"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
diff --git a/src/com/android/settings/datausage/BillingCyclePreference.java b/src/com/android/settings/datausage/BillingCyclePreference.java
index ce043ce..7e302c4 100644
--- a/src/com/android/settings/datausage/BillingCyclePreference.java
+++ b/src/com/android/settings/datausage/BillingCyclePreference.java
@@ -23,9 +23,12 @@
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 @@
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 8cec3e7..971d9fc 100644
--- a/src/com/android/settings/datausage/BillingCycleSettings.java
+++ b/src/com/android/settings/datausage/BillingCycleSettings.java
@@ -31,6 +31,7 @@
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 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 @@
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 @@
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 928d01e..555f35d 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.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 @@
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 @@
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