Add data usage header to mobile network details page

As a part of the work for subscriptions UI improvements, we want to show
data usage information at the top of the mobile network details page,
and those details need to be specific to the particular subscription
we're showing details for, even if that SIM isn't the current default
one. This is useful for seeing data usage across your SIMs in dual-SIM
devices.

This CL adapts our already existing DataUsageSummaryPreferenceController
class so that if can be used on any fragment instead of just the
DataUsageSummary one, and changes it to take an explicit subscription
id instead of assuming it should use the default one.

Bug: 122670283
Test: make RunSettingsRoboTests
Change-Id: I41e307b0f32580c73b08adec7cabf01c96d7e835
This commit is contained in:
Antony Sargent
2019-01-17 12:59:30 -08:00
parent a96d56c83a
commit 625787b391
6 changed files with 336 additions and 37 deletions

View File

@@ -34,11 +34,11 @@ import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkTemplate;
import android.telephony.SubscriptionInfo;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import androidx.fragment.app.FragmentActivity;
import androidx.preference.PreferenceFragmentCompat;
import androidx.recyclerview.widget.RecyclerView;
import com.android.internal.logging.nano.MetricsProto;
@@ -92,7 +92,7 @@ public class DataUsageSummaryPreferenceControllerTest {
@Mock(answer = Answers.RETURNS_DEEP_STUBS)
private EntityHeaderController mHeaderController;
@Mock
private DataUsageSummary mDataUsageSummary;
private PreferenceFragmentCompat mPreferenceFragment;
@Mock
private TelephonyManager mTelephonyManager;
@Mock
@@ -104,6 +104,7 @@ public class DataUsageSummaryPreferenceControllerTest {
private FragmentActivity mActivity;
private Context mContext;
private DataUsageSummaryPreferenceController mController;
private int mDefaultSubscriptionId;
@Before
public void setUp() {
@@ -125,6 +126,7 @@ public class DataUsageSummaryPreferenceControllerTest {
.thenReturn(mConnectivityManager);
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_READY);
when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(false);
mDefaultSubscriptionId = 1234;
mController = new DataUsageSummaryPreferenceController(
mDataUsageController,
mDataInfoController,
@@ -133,7 +135,7 @@ public class DataUsageSummaryPreferenceControllerTest {
R.string.cell_data_template,
true,
null,
mActivity, null, null, null);
mActivity, null, null, null, mDefaultSubscriptionId);
}
@After
@@ -355,11 +357,7 @@ public class DataUsageSummaryPreferenceControllerTest {
R.string.cell_data_template,
true,
mSubscriptionManager,
mActivity, null, null, null);
final SubscriptionInfo subInfo = new SubscriptionInfo(0, "123456", 0, "name", "carrier",
0, 0, "number", 0, null, "123", "456", "ZX", false, null, null);
when(mSubscriptionManager.getDefaultDataSubscriptionInfo()).thenReturn(subInfo);
mActivity, null, null, null, mDefaultSubscriptionId);
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
}
@@ -373,7 +371,7 @@ public class DataUsageSummaryPreferenceControllerTest {
R.string.cell_data_template,
true,
mSubscriptionManager,
mActivity, null, null, null);
mActivity, null, null, null, mDefaultSubscriptionId);
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(false);
@@ -390,7 +388,7 @@ public class DataUsageSummaryPreferenceControllerTest {
R.string.cell_data_template,
true,
mSubscriptionManager,
mActivity, null, null, null);
mActivity, null, null, null, mDefaultSubscriptionId);
when(mTelephonyManager.getSimState()).thenReturn(TelephonyManager.SIM_STATE_ABSENT);
when(mConnectivityManager.isNetworkSupported(TYPE_WIFI)).thenReturn(true);
@@ -409,9 +407,10 @@ public class DataUsageSummaryPreferenceControllerTest {
R.string.cell_data_template,
true,
mSubscriptionManager,
mActivity, mLifecycle, mHeaderController, mDataUsageSummary);
mActivity, mLifecycle, mHeaderController, mPreferenceFragment,
mDefaultSubscriptionId);
when(mDataUsageSummary.getListView()).thenReturn(recyclerView);
when(mPreferenceFragment.getListView()).thenReturn(recyclerView);
mController.onStart();