Merge "add is_opportunistic into related atoms" into main
diff --git a/proto/src/persist_atoms.proto b/proto/src/persist_atoms.proto
index c2385ae..d6dff87 100644
--- a/proto/src/persist_atoms.proto
+++ b/proto/src/persist_atoms.proto
@@ -441,6 +441,7 @@
     optional bool is_iwlan_cross_sim = 15;
     optional bool is_ntn = 16;
     optional bool is_nb_iot_ntn = 17;
+    optional bool is_opportunistic = 18;
 
     // Internal use only
     optional int64 last_used_millis = 10001;
@@ -453,6 +454,7 @@
     optional bool is_multi_sim = 4;
     optional int32 carrier_id = 5;
     optional int32 switch_count = 6;
+    optional bool is_opportunistic = 7;
 
     // Internal use only
     optional int64 last_used_millis = 10001;
diff --git a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
index 31f4738..1bbfddb 100644
--- a/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
+++ b/src/java/com/android/internal/telephony/metrics/MetricsCollector.java
@@ -1064,7 +1064,8 @@
                 serviceSwitch.simSlotIndex,
                 serviceSwitch.isMultiSim,
                 serviceSwitch.carrierId,
-                serviceSwitch.switchCount);
+                serviceSwitch.switchCount,
+                serviceSwitch.isOpportunistic);
     }
 
     private static StatsEvent buildStatsEvent(CellularServiceState state) {
@@ -1087,7 +1088,8 @@
                 state.isDataEnabled,
                 state.isIwlanCrossSim,
                 state.isNtn,
-                state.isNbIotNtn);
+                state.isNbIotNtn,
+                state.isOpportunistic);
     }
 
     private static StatsEvent buildStatsEvent(VoiceCallRatUsage usage) {
diff --git a/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java b/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
index 9408ffa..b353078 100644
--- a/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
+++ b/src/java/com/android/internal/telephony/metrics/PersistAtomsStorage.java
@@ -2013,7 +2013,8 @@
                     && state.isDataEnabled == key.isDataEnabled
                     && state.isIwlanCrossSim == key.isIwlanCrossSim
                     && state.isNtn == key.isNtn
-                    && state.isNbIotNtn == key.isNbIotNtn) {
+                    && state.isNbIotNtn == key.isNbIotNtn
+                    && state.isOpportunistic == key.isOpportunistic) {
                 return state;
             }
         }
@@ -2030,7 +2031,8 @@
                     && serviceSwitch.ratTo == key.ratTo
                     && serviceSwitch.simSlotIndex == key.simSlotIndex
                     && serviceSwitch.isMultiSim == key.isMultiSim
-                    && serviceSwitch.carrierId == key.carrierId) {
+                    && serviceSwitch.carrierId == key.carrierId
+                    && serviceSwitch.isOpportunistic == key.isOpportunistic) {
                 return serviceSwitch;
             }
         }