From 3f46c5f685447b750cbd8515fe12085a95739c84 Mon Sep 17 00:00:00 2001 From: Zoey Chen Date: Tue, 31 Aug 2021 20:28:41 +0800 Subject: [PATCH] [Provider Model] Add cutout for signal icon if the mobile data is disabled Bug: 198233143 Test: manual, atest ProviderModelSliceHelperTest and SubscriptionsPreferenceControllerTest Change-Id: I8714c9ff4c0c3aa5bad51ad5d41207d50ccca8ef Merged-In: I3caefc7e1ca10dadcad114273edf35d9309502e1 --- .../android/settings/network/ProviderModelSliceHelper.java | 2 +- .../network/SubscriptionsPreferenceController.java | 3 ++- .../settings/network/ProviderModelSliceHelperTest.java | 7 +++++-- .../network/SubscriptionsPreferenceControllerTest.java | 5 ++++- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/src/com/android/settings/network/ProviderModelSliceHelper.java b/src/com/android/settings/network/ProviderModelSliceHelper.java index 32a475a7d00..d264fd69d3b 100644 --- a/src/com/android/settings/network/ProviderModelSliceHelper.java +++ b/src/com/android/settings/network/ProviderModelSliceHelper.java @@ -140,7 +140,7 @@ public class ProviderModelSliceHelper { numLevels += 1; } return MobileNetworkUtils.getSignalStrengthIcon(mContext, level, numLevels, - NO_CELL_DATA_TYPE_ICON, false); + NO_CELL_DATA_TYPE_ICON, !mTelephonyManager.isDataEnabled()); } /** diff --git a/src/com/android/settings/network/SubscriptionsPreferenceController.java b/src/com/android/settings/network/SubscriptionsPreferenceController.java index 8e9e946820c..36c55e2805e 100644 --- a/src/com/android/settings/network/SubscriptionsPreferenceController.java +++ b/src/com/android/settings/network/SubscriptionsPreferenceController.java @@ -311,7 +311,8 @@ public class SubscriptionsPreferenceController extends AbstractPreferenceControl numLevels += 1; } - Drawable icon = mSubsPrefCtrlInjector.getIcon(mContext, level, numLevels, false); + Drawable icon = mSubsPrefCtrlInjector.getIcon(mContext, level, numLevels, + !mTelephonyManager.isDataEnabled()); final boolean isActiveCellularNetwork = mSubsPrefCtrlInjector.isActiveCellularNetwork(mContext); if (isActiveCellularNetwork || (mWifiPickerTrackerHelper != null) diff --git a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java index 7d4323051c3..d06426d43b4 100644 --- a/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java +++ b/tests/unit/src/com/android/settings/network/ProviderModelSliceHelperTest.java @@ -224,8 +224,9 @@ public class ProviderModelSliceHelperTest { public void getMobileDrawable_noCarrierData_getMobileDrawable() throws Throwable { mockConnections(false, ServiceState.STATE_OUT_OF_SERVICE, "", false, true); - when(mConnectivityManager.getActiveNetwork()).thenReturn(null); Drawable expectDrawable = mock(Drawable.class); + when(mConnectivityManager.getActiveNetwork()).thenReturn(null); + when(mTelephonyManager.isDataEnabled()).thenReturn(false); assertThat(mProviderModelSliceHelper.getMobileDrawable(expectDrawable)).isEqualTo( expectDrawable); @@ -236,8 +237,9 @@ public class ProviderModelSliceHelperTest { throws Throwable { mockConnections(true, ServiceState.STATE_IN_SERVICE, "", true, true); - addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); Drawable drawable = mock(Drawable.class); + addNetworkTransportType(NetworkCapabilities.TRANSPORT_CELLULAR); + when(mTelephonyManager.isDataEnabled()).thenReturn(true); assertThat(mProviderModelSliceHelper.getMobileDrawable(drawable)).isEqualTo( mDrawableWithSignalStrength); @@ -252,6 +254,7 @@ public class ProviderModelSliceHelperTest { true); Drawable drawable = mock(Drawable.class); addNetworkTransportType(NetworkCapabilities.TRANSPORT_WIFI); + when(mTelephonyManager.isDataEnabled()).thenReturn(true); assertThat(mProviderModelSliceHelper.getMobileDrawable(drawable)).isEqualTo( mDrawableWithSignalStrength); diff --git a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java index cb78d19714c..7cffb76f983 100644 --- a/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java +++ b/tests/unit/src/com/android/settings/network/SubscriptionsPreferenceControllerTest.java @@ -665,6 +665,7 @@ public class SubscriptionsPreferenceControllerTest { doReturn(true).when(sInjector).isProviderModelEnabled(mContext); doReturn(sub.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); Drawable icon = mock(Drawable.class); + when(mTelephonyManager.isDataEnabled()).thenReturn(true); doReturn(icon).when(sInjector).getIcon(any(), anyInt(), anyInt(), eq(false)); setupGetIconConditions(sub.get(0).getSubscriptionId(), true, true, true, ServiceState.STATE_IN_SERVICE); @@ -683,6 +684,7 @@ public class SubscriptionsPreferenceControllerTest { doReturn(true).when(sInjector).isProviderModelEnabled(mContext); doReturn(subs.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); Drawable icon = mock(Drawable.class); + when(mTelephonyManager.isDataEnabled()).thenReturn(true); doReturn(icon).when(sInjector).getIcon(any(), anyInt(), anyInt(), eq(false)); setupGetIconConditions(subId, false, true, true, ServiceState.STATE_IN_SERVICE); @@ -701,7 +703,8 @@ public class SubscriptionsPreferenceControllerTest { doReturn(true).when(sInjector).isProviderModelEnabled(mContext); doReturn(subs.get(0)).when(mSubscriptionManager).getDefaultDataSubscriptionInfo(); Drawable icon = mock(Drawable.class); - doReturn(icon).when(sInjector).getIcon(any(), anyInt(), anyInt(), eq(false)); + when(mTelephonyManager.isDataEnabled()).thenReturn(false); + doReturn(icon).when(sInjector).getIcon(any(), anyInt(), anyInt(), eq(true)); setupGetIconConditions(subId, false, false, false, ServiceState.STATE_IN_SERVICE);