Add a config to hide the 3G option at preferred network mode UI
Add a config config_display_network_mode_3g_option to hide the 3G
option at preferred network mode UI
Bug: 261615630
Test: build pass. local test pass.
atest EnabledNetworkModePreferenceControllerTest
Change-Id: I4f94971add1d1eddc9f7c7458b8fc8fdcec3935e
(cherry picked from commit f7685dd715
)
Merged-In: I4f94971add1d1eddc9f7c7458b8fc8fdcec3935e
This commit is contained in:
committed by
SongFerng Wang
parent
a48f8944f9
commit
e85bb5058d
@@ -101,6 +101,7 @@ public class EnabledNetworkModePreferenceController extends
|
||||
|
||||
return visible ? AVAILABLE : CONDITIONALLY_UNAVAILABLE;
|
||||
}
|
||||
|
||||
protected boolean isCallStateIdle() {
|
||||
return mCallState == TelephonyManager.CALL_STATE_IDLE;
|
||||
}
|
||||
@@ -198,6 +199,9 @@ public class EnabledNetworkModePreferenceController extends
|
||||
private boolean mIs5gEntryDisplayed;
|
||||
private boolean mShow4gForLTE;
|
||||
private boolean mSupported5gRadioAccessFamily;
|
||||
private boolean mDisplay2gOptions;
|
||||
private boolean mDisplay3gOptions;
|
||||
private boolean mLteEnabled;
|
||||
private int mSelectedEntry;
|
||||
private int mSubId;
|
||||
private String mSummary;
|
||||
@@ -224,23 +228,32 @@ public class EnabledNetworkModePreferenceController extends
|
||||
mSupported5gRadioAccessFamily = checkSupportedRadioBitmask(
|
||||
mTelephonyManager.getSupportedRadioAccessFamily(),
|
||||
TelephonyManager.NETWORK_TYPE_BITMASK_NR);
|
||||
mIsGlobalCdma = mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled()
|
||||
&& carrierConfig != null
|
||||
&& carrierConfig.getBoolean(CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
|
||||
mShow4gForLTE = carrierConfig != null && carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
|
||||
if (carrierConfig != null) {
|
||||
mIsGlobalCdma = mTelephonyManager.isLteCdmaEvdoGsmWcdmaEnabled()
|
||||
&& carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_SHOW_CDMA_CHOICES_BOOL);
|
||||
mShow4gForLTE = carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
|
||||
mDisplay2gOptions = carrierConfig.getBoolean(
|
||||
CarrierConfigManager.KEY_PREFER_2G_BOOL);
|
||||
// TODO: Using the carrier config.
|
||||
mDisplay3gOptions = getResourcesForSubId().getBoolean(
|
||||
R.bool.config_display_network_mode_3g_option);
|
||||
mLteEnabled = carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL);
|
||||
}
|
||||
Log.d(LOG_TAG, "PreferenceEntriesBuilder: subId" + mSubId
|
||||
+ ",Supported5gRadioAccessFamily :" + mSupported5gRadioAccessFamily
|
||||
+ ",mAllowed5gNetworkType :" + mAllowed5gNetworkType
|
||||
+ ",IsGlobalCdma :" + mIsGlobalCdma
|
||||
+ ",Show4gForLTE :" + mShow4gForLTE);
|
||||
+ " ,Supported5gRadioAccessFamily :" + mSupported5gRadioAccessFamily
|
||||
+ " ,mAllowed5gNetworkType :" + mAllowed5gNetworkType
|
||||
+ " ,IsGlobalCdma :" + mIsGlobalCdma
|
||||
+ " ,Display2gOptions:" + mDisplay2gOptions
|
||||
+ " ,Display3gOptions:" + mDisplay3gOptions
|
||||
+ " ,Display4gOptions" + mLteEnabled
|
||||
+ " ,Show4gForLTE :" + mShow4gForLTE);
|
||||
}
|
||||
|
||||
void setPreferenceEntries() {
|
||||
mTelephonyManager = mTelephonyManager.createForSubscriptionId(mSubId);
|
||||
final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(mSubId);
|
||||
final boolean display2gOptions = carrierConfig
|
||||
.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL);
|
||||
|
||||
clearAllEntries();
|
||||
UiOptions.Builder uiOptions = UiOptions.newBuilder();
|
||||
uiOptions.setType(getEnabledNetworkType());
|
||||
@@ -316,6 +329,16 @@ public class EnabledNetworkModePreferenceController extends
|
||||
.addFormat(UiOptions.PresentFormat.addWorldModeCdmaEntry)
|
||||
.addFormat(UiOptions.PresentFormat.addWorldModeGsmEntry);
|
||||
break;
|
||||
case ENABLED_NETWORKS_4G_CHOICES_EXCEPT_GSM_3G:
|
||||
uiOptions = uiOptions
|
||||
.setChoices(R.array.enabled_networks_except_gsm_3g_values)
|
||||
.addFormat(UiOptions.PresentFormat.add5gAnd4gEntry);
|
||||
break;
|
||||
case ENABLED_NETWORKS_CHOICES_EXCEPT_GSM_3G:
|
||||
uiOptions = uiOptions
|
||||
.setChoices(R.array.enabled_networks_values)
|
||||
.addFormat(UiOptions.PresentFormat.add5gAndLteEntry);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Not supported enabled network types.");
|
||||
}
|
||||
@@ -331,53 +354,55 @@ public class EnabledNetworkModePreferenceController extends
|
||||
// Compose options based on given values and formats.
|
||||
IntStream.range(0, formatList.size()).forEach(entryIndex -> {
|
||||
switch (formatList.get(entryIndex)) {
|
||||
case add1xEntry:
|
||||
if (display2gOptions) {
|
||||
add1xEntry(entryValuesInt[entryIndex]);
|
||||
}
|
||||
break;
|
||||
case add2gEntry:
|
||||
if (display2gOptions) {
|
||||
add2gEntry(entryValuesInt[entryIndex]);
|
||||
}
|
||||
break;
|
||||
case add3gEntry:
|
||||
add3gEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case addGlobalEntry:
|
||||
addGlobalEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case addWorldModeCdmaEntry:
|
||||
addCustomEntry(
|
||||
getResourcesForSubId().getString(
|
||||
R.string.network_world_mode_cdma_lte),
|
||||
entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case addWorldModeGsmEntry:
|
||||
addCustomEntry(
|
||||
getResourcesForSubId().getString(
|
||||
R.string.network_world_mode_gsm_lte),
|
||||
entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case add4gEntry:
|
||||
add4gEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case addLteEntry:
|
||||
addLteEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case add5gEntry:
|
||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex]));
|
||||
break;
|
||||
case add5gAnd4gEntry:
|
||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex]));
|
||||
add4gEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case add5gAndLteEntry:
|
||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex]));
|
||||
addLteEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Not supported ui options format.");
|
||||
case add1xEntry:
|
||||
if (mDisplay2gOptions) {
|
||||
add1xEntry(entryValuesInt[entryIndex]);
|
||||
}
|
||||
break;
|
||||
case add2gEntry:
|
||||
if (mDisplay2gOptions) {
|
||||
add2gEntry(entryValuesInt[entryIndex]);
|
||||
}
|
||||
break;
|
||||
case add3gEntry:
|
||||
if (mDisplay3gOptions) {
|
||||
add3gEntry(entryValuesInt[entryIndex]);
|
||||
}
|
||||
break;
|
||||
case addGlobalEntry:
|
||||
addGlobalEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case addWorldModeCdmaEntry:
|
||||
addCustomEntry(
|
||||
getResourcesForSubId().getString(
|
||||
R.string.network_world_mode_cdma_lte),
|
||||
entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case addWorldModeGsmEntry:
|
||||
addCustomEntry(
|
||||
getResourcesForSubId().getString(
|
||||
R.string.network_world_mode_gsm_lte),
|
||||
entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case add4gEntry:
|
||||
add4gEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case addLteEntry:
|
||||
addLteEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case add5gEntry:
|
||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex]));
|
||||
break;
|
||||
case add5gAnd4gEntry:
|
||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex]));
|
||||
add4gEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
case add5gAndLteEntry:
|
||||
add5gEntry(addNrToLteNetworkType(entryValuesInt[entryIndex]));
|
||||
addLteEntry(entryValuesInt[entryIndex]);
|
||||
break;
|
||||
default:
|
||||
throw new IllegalArgumentException("Not supported ui options format.");
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -397,7 +422,6 @@ public class EnabledNetworkModePreferenceController extends
|
||||
private EnabledNetworks getEnabledNetworkType() {
|
||||
EnabledNetworks enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_UNKNOWN;
|
||||
final int phoneType = mTelephonyManager.getPhoneType();
|
||||
final PersistableBundle carrierConfig = mCarrierConfigCache.getConfigForSubId(mSubId);
|
||||
|
||||
if (phoneType == TelephonyManager.PHONE_TYPE_CDMA) {
|
||||
final int lteForced = android.provider.Settings.Global.getInt(
|
||||
@@ -432,17 +456,17 @@ public class EnabledNetworkModePreferenceController extends
|
||||
} else if (phoneType == TelephonyManager.PHONE_TYPE_GSM) {
|
||||
if (MobileNetworkUtils.isTdscdmaSupported(mContext, mSubId)) {
|
||||
enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_TDSCDMA_CHOICES;
|
||||
} else if (carrierConfig != null
|
||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)
|
||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
|
||||
} else if (!mDisplay2gOptions && !mDisplay3gOptions) {
|
||||
enabledNetworkType = mShow4gForLTE
|
||||
? EnabledNetworks.ENABLED_NETWORKS_4G_CHOICES_EXCEPT_GSM_3G
|
||||
: EnabledNetworks.ENABLED_NETWORKS_CHOICES_EXCEPT_GSM_3G;
|
||||
} else if (!mDisplay2gOptions && !mLteEnabled) {
|
||||
enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_EXCEPT_GSM_LTE_CHOICES;
|
||||
} else if (carrierConfig != null
|
||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_PREFER_2G_BOOL)) {
|
||||
} else if (!mDisplay2gOptions) {
|
||||
enabledNetworkType = mShow4gForLTE
|
||||
? EnabledNetworks.ENABLED_NETWORKS_EXCEPT_GSM_4G_CHOICES
|
||||
: EnabledNetworks.ENABLED_NETWORKS_EXCEPT_GSM_CHOICES;
|
||||
} else if (carrierConfig != null
|
||||
&& !carrierConfig.getBoolean(CarrierConfigManager.KEY_LTE_ENABLED_BOOL)) {
|
||||
} else if (!mLteEnabled) {
|
||||
enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_EXCEPT_LTE_CHOICES;
|
||||
} else if (mIsGlobalCdma) {
|
||||
enabledNetworkType = EnabledNetworks.ENABLED_NETWORKS_CDMA_CHOICES;
|
||||
@@ -457,6 +481,13 @@ public class EnabledNetworkModePreferenceController extends
|
||||
enabledNetworkType = EnabledNetworks.PREFERRED_NETWORK_MODE_CHOICES_WORLD_MODE;
|
||||
}
|
||||
|
||||
if (phoneType == TelephonyManager.PHONE_TYPE_NONE) {
|
||||
Log.d(LOG_TAG, "phoneType: PHONE_TYPE_NONE");
|
||||
enabledNetworkType = mShow4gForLTE
|
||||
? EnabledNetworks.ENABLED_NETWORKS_4G_CHOICES_EXCEPT_GSM_3G
|
||||
: EnabledNetworks.ENABLED_NETWORKS_CHOICES_EXCEPT_GSM_3G;
|
||||
}
|
||||
|
||||
Log.d(LOG_TAG, "enabledNetworkType: " + enabledNetworkType);
|
||||
return enabledNetworkType;
|
||||
}
|
||||
|
Reference in New Issue
Block a user