Merge "Add check of canConnectTo5GInDsds to show NrDisabledInDsdsFooter" into rvc-dev
diff --git a/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java b/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java
index e024788..ca944da 100644
--- a/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java
+++ b/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java
@@ -52,13 +52,18 @@
         final TelephonyManager teleManager = ((TelephonyManager)
                 mContext.getSystemService(Context.TELEPHONY_SERVICE))
                 .createForSubscriptionId(mSubId);
+        final SubscriptionManager subManager = ((SubscriptionManager)
+                mContext.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE));
+        final int[] activeSubIdList = subManager.getActiveSubscriptionIdList();
+        final int activeSubCount = activeSubIdList == null ? 0 : activeSubIdList.length;
         // Show the footer only when DSDS is enabled, and mobile data is enabled on this SIM, and
         // 5G is supported on this device.
-        if (!teleManager.isDataEnabled() || teleManager.getActiveModemCount() < 2
-                || !is5GSupportedByRadio(teleManager)) {
+        if (teleManager.isDataEnabled() && activeSubCount >= 2 && is5GSupportedByRadio(teleManager)
+                && !teleManager.canConnectTo5GInDsdsMode()) {
+            return AVAILABLE;
+        } else {
             return CONDITIONALLY_UNAVAILABLE;
         }
-        return AVAILABLE;
     }
 
     private boolean is5GSupportedByRadio(TelephonyManager tm) {