Merge "[Settings] Hide data usage when SIM support is turn OFF"

This commit is contained in:
Bonian Chen
2022-11-10 11:21:20 +00:00
committed by Android (Google) Code Review
7 changed files with 93 additions and 17 deletions

View File

@@ -110,7 +110,10 @@ public class AppDataUsageTest {
@Test
@Config(shadows = ShadowFragment.class)
public void onCreate_appUid_shouldGetAppLabelFromAppInfo() throws NameNotFoundException {
mFragment = spy(new AppDataUsage());
mFragment = spy(new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
});
final FragmentActivity activity = spy(Robolectric.setupActivity(FragmentActivity.class));
doReturn(mPackageManager).when(activity).getPackageManager();
doReturn(activity).when(mFragment).getActivity();
@@ -140,7 +143,10 @@ public class AppDataUsageTest {
@Test
@Config(shadows = ShadowFragment.class)
public void onCreate_notAppUid_shouldGetAppLabelFromUidDetailProvider() {
mFragment = spy(new AppDataUsage());
mFragment = spy(new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
});
ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider",
FakeFeatureFactory.setupForTest().dashboardFeatureProvider);
doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity();
@@ -167,7 +173,10 @@ public class AppDataUsageTest {
@Test
public void bindAppHeader_allWorkApps_shouldNotShowAppInfoLink() {
mFragment = spy(new AppDataUsage());
mFragment = spy(new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
});
when(mFragment.getPreferenceManager())
.thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS));
@@ -184,7 +193,10 @@ public class AppDataUsageTest {
throws PackageManager.NameNotFoundException {
final int fakeUserId = 100;
mFragment = spy(new AppDataUsage());
mFragment = spy(new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
});
final ArraySet<String> packages = new ArraySet<>();
packages.add("pkg");
final AppItem appItem = new AppItem(123456789);
@@ -210,7 +222,10 @@ public class AppDataUsageTest {
@Test
public void changePreference_backgroundData_shouldUpdateUI() {
mFragment = spy(new AppDataUsage());
mFragment = spy(new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
});
final AppItem appItem = new AppItem(123456789);
final RestrictedSwitchPreference pref = mock(RestrictedSwitchPreference.class);
final DataSaverBackend dataSaverBackend = mock(DataSaverBackend.class);
@@ -227,7 +242,10 @@ public class AppDataUsageTest {
@Test
public void updatePrefs_restrictedByAdmin_shouldDisablePreference() {
mFragment = spy(new AppDataUsage());
mFragment = spy(new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
});
final int testUid = 123123;
final AppItem appItem = new AppItem(testUid);
final RestrictedSwitchPreference restrictBackgroundPref
@@ -255,7 +273,10 @@ public class AppDataUsageTest {
@Test
public void bindData_noAppUsageData_shouldHideCycleSpinner() {
mFragment = spy(new AppDataUsage());
mFragment = spy(new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
});
final SpinnerPreference cycle = mock(SpinnerPreference.class);
ReflectionHelpers.setField(mFragment, "mCycle", cycle);
final Preference preference = mock(Preference.class);
@@ -271,7 +292,10 @@ public class AppDataUsageTest {
@Test
public void bindData_hasAppUsageData_shouldShowCycleSpinnerAndUpdateUsageSummary() {
mFragment = spy(new AppDataUsage());
mFragment = spy(new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
});
final Context context = RuntimeEnvironment.application;
ReflectionHelpers.setField(mFragment, "mContext", context);
final long backgroundBytes = 1234L;
@@ -300,7 +324,10 @@ public class AppDataUsageTest {
@Test
public void onCreateLoader_categoryApp_shouldQueryDataUsageUsingAppKey() {
mFragment = new AppDataUsage();
mFragment = new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
};
final Context context = RuntimeEnvironment.application;
final int testUid = 123123;
final AppItem appItem = new AppItem(testUid);
@@ -323,7 +350,10 @@ public class AppDataUsageTest {
@Test
public void onCreateLoader_categoryUser_shouldQueryDataUsageUsingAssociatedUids() {
mFragment = new AppDataUsage();
mFragment = new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
};
final Context context = RuntimeEnvironment.application;
final int testUserId = 11;
final AppItem appItem = new AppItem(testUserId);
@@ -360,7 +390,10 @@ public class AppDataUsageTest {
appItem.category = AppItem.CATEGORY_APP;
appItem.addUid(uid);
mFragment = new AppDataUsage();
mFragment = new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
};
ReflectionHelpers.setField(mFragment, "mContext", RuntimeEnvironment.application);
ReflectionHelpers.setField(mFragment, "mCycles", testCycles);
ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
@@ -393,7 +426,10 @@ public class AppDataUsageTest {
builder.setStartTime(tenDaysAgo).setEndTime(now).setTotalUsage(1234L);
data.add(builder.build());
mFragment = new AppDataUsage();
mFragment = new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
};
ReflectionHelpers.setField(mFragment, "mContext", RuntimeEnvironment.application);
ReflectionHelpers.setField(mFragment, "mCycleAdapter", mock(CycleAdapter.class));
ReflectionHelpers.setField(mFragment, "mSelectedCycle", tenDaysAgo);
@@ -420,7 +456,10 @@ public class AppDataUsageTest {
ShadowDataUsageUtils.HAS_SIM = false;
ShadowSubscriptionManager.setDefaultDataSubscriptionId(
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
mFragment = spy(new AppDataUsage());
mFragment = spy(new AppDataUsage() {
@Override
public boolean isSimHardwareVisible(Context context) { return true; }
});
doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity();
doReturn(RuntimeEnvironment.application).when(mFragment).getContext();
final UidDetailProvider uidDetailProvider = mock(UidDetailProvider.class);

View File

@@ -29,12 +29,15 @@ import static org.mockito.Mockito.verify;
import android.app.usage.NetworkStatsManager;
import android.content.Context;
import android.content.res.Resources;
import android.net.NetworkPolicyManager;
import android.telephony.SubscriptionManager;
import android.telephony.TelephonyManager;
import androidx.fragment.app.FragmentActivity;
import com.android.settings.R;
import com.android.settings.testutils.shadow.ShadowDashboardFragment;
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
import com.android.settings.testutils.shadow.ShadowUserManager;
@@ -70,6 +73,7 @@ public class DataUsageSummaryTest {
private NetworkStatsManager mNetworkStatsManager;
private TelephonyManager mTelephonyManager;
private Context mContext;
private Resources mResources;
private FragmentActivity mActivity;
/**
@@ -84,13 +88,18 @@ public class DataUsageSummaryTest {
ShadowUserManager.getShadow().setIsAdminUser(true);
shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager);
mContext = RuntimeEnvironment.application;
mContext = spy(RuntimeEnvironment.application);
mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
final ShadowTelephonyManager shadowTelephonyManager = Shadows.shadowOf(mTelephonyManager);
shadowTelephonyManager.setTelephonyManagerForSubscriptionId(
SubscriptionManager.INVALID_SUBSCRIPTION_ID, mTelephonyManager);
shadowTelephonyManager.setTelephonyManagerForSubscriptionId(1, mTelephonyManager);
mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
mResources = spy(mContext.getResources());
doReturn(mResources).when(mContext).getResources();
doReturn(true).when(mResources).getBoolean(R.bool.config_show_sim_info);
doReturn(mNetworkStatsManager).when(mActivity).getSystemService(NetworkStatsManager.class);
}