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

Commit 44e59417 authored by Jan Nordqvist's avatar Jan Nordqvist Committed by Android (Google) Code Review
Browse files

Merge "In Network & internet screen, hide summary under Data usage when there...

Merge "In Network & internet screen, hide summary under Data usage when there is No SIM" into pi-dev
parents 895f7854 637dc29f
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.support.v7.preference.PreferenceScreen;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.SubscriptionPlan;
import android.telephony.TelephonyManager;
import android.text.BidiFormatter;
import android.text.Spannable;
import android.text.SpannableString;
@@ -302,8 +303,18 @@ public class DataUsageSummary extends DataUsageBaseFragment implements Indexable
        @Override
        public void setListening(boolean listening) {
            if (listening) {
                TelephonyManager telephonyManager = (TelephonyManager) mActivity
                        .getSystemService(Context.TELEPHONY_SERVICE);
                final int simState = telephonyManager.getSimState();
                // Note that pulling the SIM card returns UNKNOWN, not ABSENT.
                if (simState == TelephonyManager.SIM_STATE_ABSENT
                        || simState == TelephonyManager.SIM_STATE_UNKNOWN) {
                    mSummaryLoader.setSummary(this, null);
                } else {
                    mSummaryLoader.setSummary(this,
                        mActivity.getString(R.string.data_usage_summary_format, formatUsedData()));
                            mActivity.getString(R.string.data_usage_summary_format,
                                    formatUsedData()));
                }
            }
        }

+34 −0
Original line number Diff line number Diff line
@@ -18,13 +18,20 @@ package com.android.settings.datausage;

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Matchers.endsWith;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.Activity;
import android.content.Context;
import android.net.ConnectivityManager;
import android.telephony.TelephonyManager;
import android.text.format.Formatter;

import com.android.settings.R;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.testutils.SettingsRobolectricTestRunner;
import com.android.settings.testutils.shadow.SettingsShadowResources;

@@ -33,6 +40,7 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.Robolectric;
import org.robolectric.shadows.ShadowApplication;

@RunWith(SettingsRobolectricTestRunner.class)
@@ -41,6 +49,12 @@ public class DataUsageSummaryTest {
    @Mock
    private ConnectivityManager mManager;
    private Context mContext;
    @Mock
    TelephonyManager mTelephonyManager;
    @Mock
    private SummaryLoader mSummaryLoader;
    private Activity mActivity;
    private SummaryLoader.SummaryProvider mSummaryProvider;

    /**
     * This set up is contrived to get a passing test so that the build doesn't block without tests.
@@ -54,6 +68,12 @@ public class DataUsageSummaryTest {
        shadowContext.setSystemService(Context.CONNECTIVITY_SERVICE, mManager);
        mContext = shadowContext.getApplicationContext();
        when(mManager.isNetworkSupported(anyInt())).thenReturn(true);

        mActivity = spy(Robolectric.buildActivity(Activity.class).get());
        when(mActivity.getSystemService(Context.TELEPHONY_SERVICE)).thenReturn(mTelephonyManager);

        mSummaryProvider = DataUsageSummary.SUMMARY_PROVIDER_FACTORY
                .createSummaryProvider(mActivity, mSummaryLoader);
    }

    @Test
@@ -66,4 +86,18 @@ public class DataUsageSummaryTest {
        final String formattedAsFileSize = Formatter.formatFileSize(mContext, usage);
        assertThat(formattedUsage).isEqualTo(formattedAsFileSize);
    }

    @Test
    public void setListening_shouldBlankSummaryWithNoSim() {
        when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
        mSummaryProvider.setListening(true);
        verify(mSummaryLoader).setSummary(mSummaryProvider, null);
    }

    @Test
    public void setListening_shouldSetSummaryWithSim() {
        when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY);
        mSummaryProvider.setListening(true);
        verify(mSummaryLoader).setSummary(anyObject(), endsWith(" of data used"));
    }
}