From 903a92535ab47bd2fb82aca9aff3e8dcc2791487 Mon Sep 17 00:00:00 2001 From: Andreas Terzis Date: Thu, 29 Mar 2018 23:19:10 -0700 Subject: [PATCH] "Data Warn & Limits" pref. summary should be empty. The "Data Warning & Limits" preference in the Data Usage screen should not have a summary. Bug: 77300376 Test: manual Test: make RunSettingsRoboTests Change-Id: Ic567e7451ac3ea102577ab96ccef3ce7de05d4ad --- .../settings/datausage/BillingCyclePreference.java | 7 +++- .../settings/datausage/BillingCycleSettings.java | 24 +++++++++++- .../datausage/BillingCycleSettingsTest.java | 44 ++++++++++++++++++++++ 3 files changed, 72 insertions(+), 3 deletions(-) diff --git a/src/com/android/settings/datausage/BillingCyclePreference.java b/src/com/android/settings/datausage/BillingCyclePreference.java index ce043cef6a..7e302c4818 100644 --- a/src/com/android/settings/datausage/BillingCyclePreference.java +++ b/src/com/android/settings/datausage/BillingCyclePreference.java @@ -23,9 +23,12 @@ import android.os.Bundle; import android.os.RemoteException; import android.support.v7.preference.Preference; import android.util.AttributeSet; +import android.util.FeatureFlagUtils; import com.android.internal.logging.nano.MetricsProto; import com.android.settings.R; + +import com.android.settings.core.FeatureFlags; import com.android.settings.core.SubSettingLauncher; import com.android.settings.datausage.CellDataPreference.DataStateListener; @@ -58,7 +61,9 @@ public class BillingCyclePreference extends Preference implements TemplatePrefer mSubId = subId; mServices = services; final int cycleDay = services.mPolicyEditor.getPolicyCycleDay(mTemplate); - if (cycleDay != CYCLE_NONE) { + if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DATA_USAGE_SETTINGS_V2)) { + setSummary(null); + } else if (cycleDay != CYCLE_NONE) { setSummary(getContext().getString(R.string.billing_cycle_fragment_summary, cycleDay)); } else { setSummary(null); diff --git a/src/com/android/settings/datausage/BillingCycleSettings.java b/src/com/android/settings/datausage/BillingCycleSettings.java index 8cec3e79e1..971d9fc51e 100644 --- a/src/com/android/settings/datausage/BillingCycleSettings.java +++ b/src/com/android/settings/datausage/BillingCycleSettings.java @@ -31,6 +31,7 @@ import android.support.v14.preference.SwitchPreference; import android.support.v7.preference.Preference; import android.text.format.Formatter; import android.text.format.Time; +import android.util.FeatureFlagUtils; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -41,6 +42,7 @@ import android.widget.Spinner; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settings.R; +import com.android.settings.core.FeatureFlags; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.net.DataUsageController; @@ -74,6 +76,21 @@ public class BillingCycleSettings extends DataUsageBase implements private Preference mDataLimit; private DataUsageController mDataUsageController; + @VisibleForTesting + void setUpForTest(NetworkPolicyEditor policyEditor, + Preference billingCycle, + Preference dataLimit, + Preference dataWarning, + SwitchPreference enableLimit, + SwitchPreference enableWarning) { + services.mPolicyEditor = policyEditor; + mBillingCycle = billingCycle; + mDataLimit = dataLimit; + mDataWarning = dataWarning; + mEnableDataLimit = enableLimit; + mEnableDataWarning = enableWarning; + } + @Override public void onCreate(Bundle icicle) { super.onCreate(icicle); @@ -101,9 +118,12 @@ public class BillingCycleSettings extends DataUsageBase implements updatePrefs(); } - private void updatePrefs() { + @VisibleForTesting + void updatePrefs() { final int cycleDay = services.mPolicyEditor.getPolicyCycleDay(mNetworkTemplate); - if (cycleDay != CYCLE_NONE) { + if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DATA_USAGE_SETTINGS_V2)) { + mBillingCycle.setSummary(null); + } else if (cycleDay != CYCLE_NONE) { mBillingCycle.setSummary(getString(R.string.billing_cycle_fragment_summary, cycleDay)); } else { mBillingCycle.setSummary(null); diff --git a/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java index 928d01e565..555f35da68 100644 --- a/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java +++ b/tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java @@ -15,10 +15,15 @@ */ package com.android.settings.datausage; +import static android.net.NetworkPolicy.CYCLE_NONE; import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertTrue; +import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyLong; +import static org.mockito.Matchers.anyObject; +import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.never; +import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; @@ -26,9 +31,14 @@ import android.content.Context; import android.content.DialogInterface; import android.content.SharedPreferences; import android.os.Bundle; +import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceManager; +import android.support.v14.preference.SwitchPreference; +import android.util.FeatureFlagUtils; +import com.android.settings.core.FeatureFlags; import com.android.settings.testutils.SettingsRobolectricTestRunner; +import com.android.settingslib.NetworkPolicyEditor; import org.junit.Before; import org.junit.Test; @@ -47,11 +57,27 @@ public class BillingCycleSettingsTest { BillingCycleSettings.ConfirmLimitFragment mConfirmLimitFragment; @Mock PreferenceManager mMockPreferenceManager; + @Mock + private NetworkPolicyEditor mNetworkPolicyEditor; + + private Context mContext; + @Mock + private Preference mBillingCycle; + @Mock + private Preference mDataWarning; + @Mock + private Preference mDataLimit; + @Mock + private SwitchPreference mEnableDataWarning; + @Mock + private SwitchPreference mEnableDataLimit; + SharedPreferences mSharedPreferences; @Before public void setUp() { MockitoAnnotations.initMocks(this); + mContext = spy(RuntimeEnvironment.application); mConfirmLimitFragment = new BillingCycleSettings.ConfirmLimitFragment(); mConfirmLimitFragment.setTargetFragment(mMockBillingCycleSettings, 0); mSharedPreferences = RuntimeEnvironment.application.getSharedPreferences( @@ -80,4 +106,22 @@ public class BillingCycleSettingsTest { assertTrue(mSharedPreferences.getBoolean(BillingCycleSettings.KEY_SET_DATA_LIMIT, false)); verify(mMockBillingCycleSettings).setPolicyLimitBytes(LIMIT_BYTES); } + + @Test + public void testDataUsageSummary_shouldBeNullWithV2() { + final BillingCycleSettings billingCycleSettings = spy(new BillingCycleSettings()); + billingCycleSettings.setUpForTest(mNetworkPolicyEditor, mBillingCycle, + mDataLimit, mDataWarning, mEnableDataLimit, mEnableDataWarning); + + FeatureFlagUtils.setEnabled(mContext, FeatureFlags.DATA_USAGE_SETTINGS_V2, true); + + doReturn("some-string").when(billingCycleSettings).getString(anyInt(), anyInt()); + when(mNetworkPolicyEditor.getPolicyCycleDay(anyObject())).thenReturn(CYCLE_NONE + 1); + when(mNetworkPolicyEditor.getPolicyLimitBytes(anyObject())).thenReturn(2000L); + when(mNetworkPolicyEditor.getPolicyWarningBytes(anyObject())).thenReturn(1000L); + + billingCycleSettings.updatePrefs(); + + verify(mBillingCycle).setSummary(null); + } } \ No newline at end of file -- 2.11.0