Add check of canConnectTo5GInDsds to show NrDisabledInDsdsFooter

Bug: 152786064
Test: build and manual
Change-Id: I6194592d9a7bf4d4b7993fc344d7392bf5c296aa
This commit is contained in:
Malcolm Chen
2020-04-14 11:26:23 -07:00
parent f97c675cde
commit c67a0d853b

View File

@@ -52,13 +52,18 @@ public class NrDisabledInDsdsFooterPreferenceController extends BasePreferenceCo
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) {