diff options
| author | 2017-12-04 10:46:37 -0500 | |
|---|---|---|
| committer | 2017-12-04 11:24:42 -0500 | |
| commit | c52f0b61b411974597a87f06b4f2d46caf916cd6 (patch) | |
| tree | 0cbada72d66feb82ded9f7e3f36a7f6aeb2b86db | |
| parent | 5826e469e9d03eaa5511d413733edde0a1b99048 (diff) | |
| parent | 710b3946e5352cdd132f585fac40bb0361be2a94 (diff) | |
Resolve merge conflicts of 710b3946e535 to master
Test: runtest -x
packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java
Change-Id: I95ed65102c3d61a0afa0744663d6966c10f876e5
4 files changed, 48 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java index 652f8bb646d3..5fa6f27f4f61 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/MobileSignalController.java @@ -300,7 +300,7 @@ public class MobileSignalController extends SignalController< && !mCurrentState.carrierNetworkChangeMode && mCurrentState.activityOut; showDataIcon &= mCurrentState.isDefault || dataDisabled; - int typeIcon = showDataIcon ? icons.mDataType : 0; + int typeIcon = (showDataIcon || mConfig.alwaysShowDataRatIcon) ? icons.mDataType : 0; callback.setMobileDataIndicators(statusIcon, qsIcon, typeIcon, qsTypeIcon, activityIn, activityOut, dataContentDescription, description, icons.mIsWide, mSubscriptionInfo.getSubscriptionId(), mCurrentState.roaming); @@ -460,7 +460,7 @@ public class MobileSignalController extends SignalController< mCurrentState.roaming = isRoaming(); if (isCarrierNetworkChangeActive()) { mCurrentState.iconGroup = TelephonyIcons.CARRIER_NETWORK_CHANGE; - } else if (isDataDisabled()) { + } else if (isDataDisabled() && !mConfig.alwaysShowDataRatIcon) { mCurrentState.iconGroup = TelephonyIcons.DATA_DISABLED; } if (isEmergencyOnly() != mCurrentState.isEmergency) { 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 40ee8386e895..baf0ebf5efaa 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java @@ -29,7 +29,9 @@ import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Looper; +import android.os.PersistableBundle; import android.provider.Settings; +import android.telephony.CarrierConfigManager; import android.telephony.ServiceState; import android.telephony.SignalStrength; import android.telephony.SubscriptionInfo; @@ -245,6 +247,7 @@ public class NetworkControllerImpl extends BroadcastReceiver filter.addAction(ConnectivityManager.CONNECTIVITY_ACTION); filter.addAction(ConnectivityManager.INET_CONDITION_ACTION); filter.addAction(Intent.ACTION_AIRPLANE_MODE_CHANGED); + filter.addAction(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED); mContext.registerReceiver(this, filter, null, mReceiverHandler); mListening = true; @@ -426,6 +429,14 @@ public class NetworkControllerImpl extends BroadcastReceiver // emergency state. recalculateEmergency(); } + } else if (action.equals(CarrierConfigManager.ACTION_CARRIER_CONFIG_CHANGED)) { + mConfig = Config.readConfig(mContext); + mReceiverHandler.post(new Runnable() { + @Override + public void run() { + handleConfigurationChanged(); + } + }); } else { int subId = intent.getIntExtra(PhoneConstants.SUBSCRIPTION_KEY, SubscriptionManager.INVALID_SUBSCRIPTION_ID); @@ -969,6 +980,7 @@ public class NetworkControllerImpl extends BroadcastReceiver boolean hideLtePlus = false; boolean hspaDataDistinguishable; boolean inflateSignalStrengths = false; + boolean alwaysShowDataRatIcon = false; static Config readConfig(Context context) { Config config = new Config(); @@ -982,6 +994,14 @@ public class NetworkControllerImpl extends BroadcastReceiver 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(); + if (b != null) { + config.alwaysShowDataRatIcon = b.getBoolean( + CarrierConfigManager.KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL); + } return config; } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java index 1419e9ad43a2..22214695ab97 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerDataTest.java @@ -15,6 +15,7 @@ import android.testing.TestableLooper.RunWithLooper; import com.android.settingslib.net.DataUsageController; +import org.junit.Ignore; import org.junit.Test; import org.junit.runner.RunWith; @@ -137,6 +138,24 @@ public class NetworkControllerDataTest extends NetworkControllerBaseTest { } @Test + @Ignore("Flaky") + //TODO(evanlaird): figure out why this fails + public void testAlwaysShowDataRatIcon() { + setupDefaultSignal(); + when(mMockTm.getDataEnabled(mSubId)).thenReturn(false); + updateDataConnectionState(TelephonyManager.DATA_DISCONNECTED, + TelephonyManager.NETWORK_TYPE_GSM); + + // Switch to showing data RAT icon when data is disconnected + // and re-initialize the NetworkController. + mConfig.alwaysShowDataRatIcon = true; + mNetworkController.handleConfigurationChanged(); + + verifyDataIndicators(TelephonyIcons.ICON_G, + TelephonyIcons.QS_DATA_G); + } + + @Test public void test4gDataIconConfigChange() { setupDefaultSignal(); updateDataConnectionState(TelephonyManager.DATA_CONNECTED, diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java index 69371a18d481..e94b40c2473b 100644 --- a/telephony/java/android/telephony/CarrierConfigManager.java +++ b/telephony/java/android/telephony/CarrierConfigManager.java @@ -989,6 +989,12 @@ public class CarrierConfigManager { public static final String KEY_STK_DISABLE_LAUNCH_BROWSER_BOOL = "stk_disable_launch_browser_bool"; + /** + * Boolean indicating if show data RAT icon on status bar even when data is disabled + * @hide + */ + public static final String KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL = + "always_show_data_rat_icon_bool"; // These variables are used by the MMS service and exposed through another API, {@link // SmsManager}. The variable names and string values are copied from there. @@ -1967,6 +1973,7 @@ public class CarrierConfigManager { sDefaults.putStringArray(KEY_FEATURE_ACCESS_CODES_STRING_ARRAY, null); sDefaults.putBoolean(KEY_IDENTIFY_HIGH_DEFINITION_CALLS_IN_CALL_LOG_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); } /** |