Merge changes If41d957f,I5c49d195 into 24D1-dev

* changes:
  Fix empty network scan result
  Create NetworkScanRepository
diff --git a/src/com/android/settings/network/telephony/MobileNetworkUtils.java b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
index 603d915..db95d70 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkUtils.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkUtils.java
@@ -708,12 +708,13 @@
         return tm.getNetworkOperatorName();
     }
 
-    private static int[] getActiveSubscriptionIdList(Context context) {
+    @VisibleForTesting
+    static int[] getActiveSubscriptionIdList(Context context) {
         final SubscriptionManager subscriptionManager = context.getSystemService(
                 SubscriptionManager.class).createForAllUserProfiles();
         final List<SubscriptionInfo> subInfoList =
-                subscriptionManager.getActiveSubscriptionInfoList();
-        if (subInfoList == null) {
+                SubscriptionUtil.getActiveSubscriptions(subscriptionManager);
+        if (subInfoList == null || subInfoList.isEmpty()) {
             return new int[0];
         }
         int[] activeSubIds = new int[subInfoList.size()];
diff --git a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
index 947ba75..570a320 100644
--- a/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
+++ b/tests/unit/src/com/android/settings/network/telephony/MobileNetworkUtilsTest.java
@@ -240,6 +240,33 @@
     }
 
     @Test
+    public void getActiveSubscriptionIdList_nonActive_returnEmptyArray() {
+        int[] expectedList = new int[0];
+        when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>());
+
+        assertThat(MobileNetworkUtils.getActiveSubscriptionIdList(mContext))
+                .isEqualTo(expectedList);
+    }
+
+    @Test
+    public void getActiveSubscriptionIdList_normalCaseTwoActiveSims_returnValidSubId() {
+        int[] expectedList = {SUB_ID_1, SUB_ID_2};
+
+        assertThat(MobileNetworkUtils.getActiveSubscriptionIdList(mContext))
+                .isEqualTo(expectedList);
+    }
+
+    @Test
+    public void getActiveSubscriptionIdList_TwoActiveSimsAndOneIsNtn_returnOneSubId() {
+        int[] expectedList = {SUB_ID_2};
+        when(mSubscriptionInfo1.isEmbedded()).thenReturn(true);
+        when(mSubscriptionInfo1.isOnlyNonTerrestrialNetwork()).thenReturn(true);
+
+        assertThat(MobileNetworkUtils.getActiveSubscriptionIdList(mContext))
+                .isEqualTo(expectedList);
+    }
+
+    @Test
     public void shouldDisplayNetworkSelectOptions_HideCarrierNetwork_returnFalse() {
         mCarrierConfig.putBoolean(CarrierConfigManager.KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL,
                 true);