Add check of canConnectTo5GInDsds to show NrDisabledInDsdsFooter
Bug: 152786064
Test: build and manual
Change-Id: I6194592d9a7bf4d4b7993fc344d7392bf5c296aa
Merged-In: I6194592d9a7bf4d4b7993fc344d7392bf5c296aa
diff --git a/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java b/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java
index b8cf996..4077e91 100644
--- a/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java
+++ b/src/com/android/settings/network/telephony/NrDisabledInDsdsFooterPreferenceController.java
@@ -82,13 +82,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) {