Merge ""Data Warn & Limits" pref. summary should be empty." into pi-dev am: c91339b3ce

am: 151f765339

Change-Id: I91891db36fd4011a689b807469f92e33b88864c0
This commit is contained in:
Andreas Terzis
2018-04-05 17:36:34 -07:00
committed by android-build-merger
3 changed files with 72 additions and 3 deletions

View File

@@ -23,9 +23,12 @@ import android.os.Bundle;
import android.os.RemoteException; import android.os.RemoteException;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.FeatureFlagUtils;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.SubSettingLauncher; import com.android.settings.core.SubSettingLauncher;
import com.android.settings.datausage.CellDataPreference.DataStateListener; import com.android.settings.datausage.CellDataPreference.DataStateListener;
@@ -58,7 +61,9 @@ public class BillingCyclePreference extends Preference implements TemplatePrefer
mSubId = subId; mSubId = subId;
mServices = services; mServices = services;
final int cycleDay = services.mPolicyEditor.getPolicyCycleDay(mTemplate); 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)); setSummary(getContext().getString(R.string.billing_cycle_fragment_summary, cycleDay));
} else { } else {
setSummary(null); setSummary(null);

View File

@@ -31,6 +31,7 @@ import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference; import android.support.v7.preference.Preference;
import android.text.format.Formatter; import android.text.format.Formatter;
import android.text.format.Time; import android.text.format.Time;
import android.util.FeatureFlagUtils;
import android.util.Log; import android.util.Log;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@@ -41,6 +42,7 @@ import android.widget.Spinner;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R; import com.android.settings.R;
import com.android.settings.core.FeatureFlags;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment; import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
import com.android.settingslib.NetworkPolicyEditor; import com.android.settingslib.NetworkPolicyEditor;
import com.android.settingslib.net.DataUsageController; import com.android.settingslib.net.DataUsageController;
@@ -74,6 +76,21 @@ public class BillingCycleSettings extends DataUsageBase implements
private Preference mDataLimit; private Preference mDataLimit;
private DataUsageController mDataUsageController; 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 @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
super.onCreate(icicle); super.onCreate(icicle);
@@ -101,9 +118,12 @@ public class BillingCycleSettings extends DataUsageBase implements
updatePrefs(); updatePrefs();
} }
private void updatePrefs() { @VisibleForTesting
void updatePrefs() {
final int cycleDay = services.mPolicyEditor.getPolicyCycleDay(mNetworkTemplate); 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)); mBillingCycle.setSummary(getString(R.string.billing_cycle_fragment_summary, cycleDay));
} else { } else {
mBillingCycle.setSummary(null); mBillingCycle.setSummary(null);

View File

@@ -15,10 +15,15 @@
*/ */
package com.android.settings.datausage; package com.android.settings.datausage;
import static android.net.NetworkPolicy.CYCLE_NONE;
import static junit.framework.Assert.assertFalse; import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue; import static junit.framework.Assert.assertTrue;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyLong; 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.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
@@ -26,9 +31,14 @@ import android.content.Context;
import android.content.DialogInterface; import android.content.DialogInterface;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceManager; 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.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settingslib.NetworkPolicyEditor;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
@@ -47,11 +57,27 @@ public class BillingCycleSettingsTest {
BillingCycleSettings.ConfirmLimitFragment mConfirmLimitFragment; BillingCycleSettings.ConfirmLimitFragment mConfirmLimitFragment;
@Mock @Mock
PreferenceManager mMockPreferenceManager; 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; SharedPreferences mSharedPreferences;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
mConfirmLimitFragment = new BillingCycleSettings.ConfirmLimitFragment(); mConfirmLimitFragment = new BillingCycleSettings.ConfirmLimitFragment();
mConfirmLimitFragment.setTargetFragment(mMockBillingCycleSettings, 0); mConfirmLimitFragment.setTargetFragment(mMockBillingCycleSettings, 0);
mSharedPreferences = RuntimeEnvironment.application.getSharedPreferences( mSharedPreferences = RuntimeEnvironment.application.getSharedPreferences(
@@ -80,4 +106,22 @@ public class BillingCycleSettingsTest {
assertTrue(mSharedPreferences.getBoolean(BillingCycleSettings.KEY_SET_DATA_LIMIT, false)); assertTrue(mSharedPreferences.getBoolean(BillingCycleSettings.KEY_SET_DATA_LIMIT, false));
verify(mMockBillingCycleSettings).setPolicyLimitBytes(LIMIT_BYTES); 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);
}
} }