diff options
| author | 2018-09-21 14:01:57 +0200 | |
|---|---|---|
| committer | 2018-10-08 11:56:13 +0200 | |
| commit | a02964d26f0aa832e98f99227c59b7d0a7184602 (patch) | |
| tree | 99ed73272997719fc2ab06e726d5b138efbc8596 | |
| parent | 9b1db24f6e0ce1bea68a834d5ea21bea0f9bf374 (diff) | |
Add dynamic support for 4G/LTE/LTE+ icons
Move configuration of show4gForLte and hideLtePlus from resource
to CarrierConfig, to better support MVNOs.
These icons will be updated upon receiving CarrierConfigChange or
in case the default data SIM changes.
Test: Add different carrier config values for a carrier and change carrier.
Tested on both single and dual sim devices.
Bug: 113309357
Bug: 113309356
Change-Id: Ibd34e8948cc5d519626b935545d2c2fb1f771220
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java | 13 | ||||
| -rw-r--r-- | telephony/java/android/telephony/CarrierConfigManager.java | 16 |
2 files changed, 26 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java index c984579f5f9a..330ee8f9ab81 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java @@ -458,6 +458,8 @@ public class NetworkControllerImpl extends BroadcastReceiver MobileSignalController controller = mMobileSignalControllers.valueAt(i); controller.handleBroadcast(intent); } + mConfig = Config.readConfig(mContext); + mReceiverHandler.post(this::handleConfigurationChanged); break; case TelephonyIntents.ACTION_SIM_STATE_CHANGED: // Avoid rebroadcast because SysUI is direct boot aware. @@ -1038,18 +1040,23 @@ public class NetworkControllerImpl extends BroadcastReceiver config.showAtLeast3G = res.getBoolean(R.bool.config_showMin3G); config.alwaysShowCdmaRssi = res.getBoolean(com.android.internal.R.bool.config_alwaysUseCdmaRssi); - config.show4gForLte = res.getBoolean(R.bool.config_show4GForLTE); config.hspaDataDistinguishable = res.getBoolean(R.bool.config_hspa_data_distinguishable); - config.hideLtePlus = res.getBoolean(R.bool.config_hideLtePlus); config.inflateSignalStrengths = res.getBoolean(R.bool.config_inflateSignalStrength); CarrierConfigManager configMgr = (CarrierConfigManager) context.getSystemService(Context.CARRIER_CONFIG_SERVICE); - PersistableBundle b = configMgr.getConfig(); + // Handle specific carrier config values for the default data SIM + int defaultDataSubId = SubscriptionManager.from(context) + .getDefaultDataSubscriptionId(); + PersistableBundle b = configMgr.getConfigForSubId(defaultDataSubId); if (b != null) { config.alwaysShowDataRatIcon = b.getBoolean( CarrierConfigManager.KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL); + config.show4gForLte = b.getBoolean( + CarrierConfigManager.KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL); + config.hideLtePlus = b.getBoolean( + CarrierConfigManager.KEY_HIDE_LTE_PLUS_DATA_ICON_BOOL); } return config; } diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 6eaecc6760bc..5f52f016fdfb 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -1202,6 +1202,20 @@ public class CarrierConfigManager { "always_show_data_rat_icon_bool"; /** + * Boolean indicating if default data account should show LTE or 4G icon + * @hide + */ + public static final String KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL = + "show_4g_for_lte_data_icon_bool"; + + /** + * Boolean indicating if lte+ icon should be shown if available + * @hide + */ + public static final String KEY_HIDE_LTE_PLUS_DATA_ICON_BOOL = + "hide_lte_plus_data_icon_bool"; + + /** * Boolean to decide whether to show precise call failed cause to user * @hide */ @@ -2466,6 +2480,8 @@ public class CarrierConfigManager { sDefaults.putBoolean(KEY_SHOW_PRECISE_FAILED_CAUSE_BOOL, false); sDefaults.putBoolean(KEY_SPN_DISPLAY_RULE_USE_ROAMING_FROM_SERVICE_STATE_BOOL, false); sDefaults.putBoolean(KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL, false); + sDefaults.putBoolean(KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL, true); + sDefaults.putBoolean(KEY_HIDE_LTE_PLUS_DATA_ICON_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_CONFIG_APPLIED_BOOL, false); sDefaults.putBoolean(KEY_CHECK_PRICING_WITH_CARRIER_FOR_DATA_ROAMING_BOOL, false); sDefaults.putIntArray(KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY, |