Start using CarrierConfig for 4G/LTE icon
We have moved configuration of show4gForLte from resource
to CarrierConfig, adapt to this in Settings.
Test: Added carrier configs in vendor.xml and swap sim cards.
Bug: 113309356
Change-Id: Ib87efdf233ba7fc2be1cda446e741def84be9519
diff --git a/src/com/android/phone/MobileNetworkSettings.java b/src/com/android/phone/MobileNetworkSettings.java
index 3d37c4d..67f6992 100644
--- a/src/com/android/phone/MobileNetworkSettings.java
+++ b/src/com/android/phone/MobileNetworkSettings.java
@@ -423,7 +423,7 @@
CdmaOptions mCdmaOptions;
private Preference mClickedPreference;
- private boolean mShow4GForLTE;
+ private boolean mShow4GForLTE = true;
private boolean mIsGlobalCdma;
private boolean mOnlyAutoSelectInHomeNW;
private boolean mUnavailable;
@@ -804,16 +804,6 @@
mMobileDataPref = (MobileDataPreference) findPreference(BUTTON_MOBILE_DATA_ENABLE_KEY);
mDataUsagePref = (DataUsagePreference) findPreference(BUTTON_DATA_USAGE_KEY);
- try {
- Context con = activity.createPackageContext("com.android.systemui", 0);
- int id = con.getResources().getIdentifier("config_show4GForLTE",
- "bool", "com.android.systemui");
- mShow4GForLTE = con.getResources().getBoolean(id);
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(LOG_TAG, "NameNotFoundException for show4GFotLTE");
- mShow4GForLTE = false;
- }
-
//get UI object references
PreferenceScreen prefSet = getPreferenceScreen();
@@ -1217,6 +1207,8 @@
void updateEnabledNetworksEntries() {
final int phoneType = mTelephonyManager.getPhoneType();
final PersistableBundle carrierConfig = mCarrierConfigManager.getConfigForSubId(mSubId);
+ mShow4GForLTE = carrierConfig != null ? carrierConfig.getBoolean(
+ CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL) : true;
if (phoneType == PhoneConstants.PHONE_TYPE_CDMA) {
final int lteForced = android.provider.Settings.Global.getInt(
getContext().getContentResolver(),
diff --git a/src/com/android/phone/NetworkSelectSetting.java b/src/com/android/phone/NetworkSelectSetting.java
index 66cd8a1..d0ab87a 100644
--- a/src/com/android/phone/NetworkSelectSetting.java
+++ b/src/com/android/phone/NetworkSelectSetting.java
@@ -18,16 +18,17 @@
import android.app.ActionBar;
import android.app.Activity;
import android.content.Context;
-import android.content.pm.PackageManager;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
+import android.os.PersistableBundle;
import android.preference.Preference;
import android.preference.PreferenceCategory;
import android.preference.PreferenceFragment;
import android.preference.PreferenceScreen;
import android.telephony.AccessNetworkConstants;
+import android.telephony.CarrierConfigManager;
import android.telephony.CellIdentity;
import android.telephony.CellInfo;
import android.telephony.NetworkRegistrationState;
@@ -83,7 +84,7 @@
private NetworkOperatorPreference mSelectedNetworkOperatorPreference;
private TelephonyManager mTelephonyManager;
private List<String> mForbiddenPlmns;
- private boolean mShow4GForLTE;
+ private boolean mShow4GForLTE = true;
private NetworkScanHelper mNetworkScanHelper;
private final ExecutorService mNetworkScanExecutor = Executors.newFixedThreadPool(1);
@@ -120,14 +121,11 @@
mTelephonyManager = TelephonyManager.from(getContext()).createForSubscriptionId(mSubId);
mNetworkScanHelper = new NetworkScanHelper(
mTelephonyManager, mCallback, mNetworkScanExecutor);
- try {
- Context con = getActivity().createPackageContext("com.android.systemui", 0);
- int id = con.getResources().getIdentifier("config_show4GForLTE",
- "bool", "com.android.systemui");
- mShow4GForLTE = con.getResources().getBoolean(id);
- } catch (PackageManager.NameNotFoundException e) {
- Log.e(TAG, "NameNotFoundException for show4GFotLTE");
- mShow4GForLTE = false;
+ PersistableBundle bundle = ((CarrierConfigManager) getContext().getSystemService(
+ Context.CARRIER_CONFIG_SERVICE)).getConfigForSubId(mSubId);
+ if (bundle != null) {
+ mShow4GForLTE = bundle.getBoolean(
+ CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL);
}
setRetainInstance(true);
}