OSDN Git Service

"Data Warn & Limits" pref. summary should be empty.
authorAndreas Terzis <aterzis@google.com>
Fri, 30 Mar 2018 06:19:10 +0000 (23:19 -0700)
committerJan Nordqvist <jannq@google.com>
Thu, 5 Apr 2018 22:22:31 +0000 (15:22 -0700)
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

src/com/android/settings/datausage/BillingCyclePreference.java
src/com/android/settings/datausage/BillingCycleSettings.java
tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java

index ce043ce..7e302c4 100644 (file)
@@ -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);
index 8cec3e7..971d9fc 100644 (file)
@@ -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);
index 928d01e..555f35d 100644 (file)
  */
 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