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);
     }