Add GnssLocationFlag enum

Enum created using constants from gps.h that was missed during
original conversion.

Bug: 31974439
Test: mm
Change-Id: I5ce7bd25c5fac9860ac352f8bc873feddfb31062
diff --git a/gnss/1.0/types.hal b/gnss/1.0/types.hal
index 7d7b427..ea104c5 100644
--- a/gnss/1.0/types.hal
+++ b/gnss/1.0/types.hal
@@ -37,11 +37,24 @@
     GALILEO = 6,
 };
 
+/** Bit mask to indicate which values are valid in a GnssLocation object. */
+enum GnssLocationFlags : uint16_t {
+    /** GnssLocation has valid latitude and longitude. */
+    HAS_LAT_LONG = 0x0001,
+    /** GnssLocation has valid altitude. */
+    HAS_ALTITUDE = 0x0002,
+    /** GnssLocation has valid speed. */
+    HAS_SPEED    = 0x0004,
+    /** GnssLocation has valid bearing. */
+    HAS_BEARING  = 0x0008,
+    /** GnssLocation has valid accuracy. */
+    HAS_ACCURACY = 0x0010
+};
+
 /* Represents a location. */
 struct GnssLocation {
     /* Contains GnssLocationFlags bits. */
-    // TODO bitfield?
-    uint16_t gnssLocationFlags;
+    bitfield<GnssLocationFlags> gnssLocationFlags;
 
     /* Represents latitude in degrees. */
     double latitudeDegrees;
@@ -65,5 +78,4 @@
 
     /* Timestamp for the location fix. */
     GnssUtcTime timestamp;
-
 };