Loading src/com/android/settings/datausage/BillingCyclePreference.java +6 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading src/com/android/settings/datausage/BillingCycleSettings.java +22 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java +44 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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( Loading Loading @@ -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 Loading
src/com/android/settings/datausage/BillingCyclePreference.java +6 −1 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); Loading
src/com/android/settings/datausage/BillingCycleSettings.java +22 −2 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading Loading @@ -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); Loading Loading @@ -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); Loading
tests/robotests/src/com/android/settings/datausage/BillingCycleSettingsTest.java +44 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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( Loading Loading @@ -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