Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 903a9253 authored by Andreas Terzis's avatar Andreas Terzis Committed by Jan Nordqvist
Browse files

"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
parent 220a6a00
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -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);
+22 −2
Original line number Diff line number Diff line
@@ -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);
+44 −0
Original line number Diff line number Diff line
@@ -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