Snap for 9284490 from 30ce9a78ee
to tm-qpr2-release
Change-Id: I69723d72ad30a240a1ac2e9732a40666f76405b6
This commit is contained in:
@@ -38,6 +38,6 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingStart="@dimen/search_bar_title_padding_start_regular_two_pane"
|
android:paddingStart="@dimen/search_bar_title_padding_start_regular_two_pane"
|
||||||
android:layout_gravity="start"
|
android:layout_gravity="start"
|
||||||
android:text="@string/search_menu"/>
|
android:text="@string/search_settings"/>
|
||||||
</Toolbar>
|
</Toolbar>
|
||||||
</com.google.android.material.card.MaterialCardView>
|
</com.google.android.material.card.MaterialCardView>
|
@@ -51,6 +51,7 @@
|
|||||||
|
|
||||||
<PreferenceCategory
|
<PreferenceCategory
|
||||||
android:key="app_data_usage_settings_category"
|
android:key="app_data_usage_settings_category"
|
||||||
|
settings:isPreferenceVisible="@bool/config_show_sim_info"
|
||||||
android:layout="@layout/preference_category_no_label">
|
android:layout="@layout/preference_category_no_label">
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
@@ -99,6 +99,7 @@
|
|||||||
android:title="@string/data_saver_title"
|
android:title="@string/data_saver_title"
|
||||||
android:icon="@drawable/ic_settings_data_usage"
|
android:icon="@drawable/ic_settings_data_usage"
|
||||||
android:order="10"
|
android:order="10"
|
||||||
|
settings:isPreferenceVisible="@bool/config_show_data_saver"
|
||||||
android:fragment="com.android.settings.datausage.DataSaverSummary"/>
|
android:fragment="com.android.settings.datausage.DataSaverSummary"/>
|
||||||
|
|
||||||
<com.android.settings.vpn2.VpnInfoPreference
|
<com.android.settings.vpn2.VpnInfoPreference
|
||||||
|
@@ -97,12 +97,14 @@
|
|||||||
android:key="premium_sms"
|
android:key="premium_sms"
|
||||||
android:title="@string/premium_sms_access"
|
android:title="@string/premium_sms_access"
|
||||||
android:fragment="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess"
|
android:fragment="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsAccess"
|
||||||
|
settings:isPreferenceVisible="@bool/config_show_premium_sms"
|
||||||
settings:controller="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsController" />
|
settings:controller="com.android.settings.applications.specialaccess.premiumsms.PremiumSmsController" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
android:key="data_saver"
|
android:key="data_saver"
|
||||||
android:title="@string/unrestricted_data_saver"
|
android:title="@string/unrestricted_data_saver"
|
||||||
android:fragment="com.android.settings.datausage.UnrestrictedDataAccess"
|
android:fragment="com.android.settings.datausage.UnrestrictedDataAccess"
|
||||||
|
settings:isPreferenceVisible="@bool/config_show_data_saver"
|
||||||
settings:controller="com.android.settings.applications.specialaccess.DataSaverController" />
|
settings:controller="com.android.settings.applications.specialaccess.DataSaverController" />
|
||||||
|
|
||||||
<Preference
|
<Preference
|
||||||
|
@@ -153,7 +153,7 @@ public class AppBatteryPreferenceController extends BasePreferenceController
|
|||||||
} else {
|
} else {
|
||||||
Log.i(TAG, "Launch : " + mPackageName + " with package name");
|
Log.i(TAG, "Launch : " + mPackageName + " with package name");
|
||||||
AdvancedPowerUsageDetail.startBatteryDetailPage(mParent.getActivity(), mParent,
|
AdvancedPowerUsageDetail.startBatteryDetailPage(mParent.getActivity(), mParent,
|
||||||
mPackageName);
|
mPackageName, UserHandle.CURRENT);
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@@ -35,6 +35,7 @@ import com.android.settings.SettingsPreferenceFragment;
|
|||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.datausage.AppDataUsage;
|
import com.android.settings.datausage.AppDataUsage;
|
||||||
import com.android.settings.datausage.DataUsageUtils;
|
import com.android.settings.datausage.DataUsageUtils;
|
||||||
|
import com.android.settings.network.SubscriptionUtil;
|
||||||
import com.android.settingslib.AppItem;
|
import com.android.settingslib.AppItem;
|
||||||
import com.android.settingslib.applications.AppUtils;
|
import com.android.settingslib.applications.AppUtils;
|
||||||
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
import com.android.settingslib.core.lifecycle.LifecycleObserver;
|
||||||
@@ -147,7 +148,8 @@ public class AppDataUsagePreferenceController extends AppInfoPreferenceControlle
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static NetworkTemplate getTemplate(Context context) {
|
private static NetworkTemplate getTemplate(Context context) {
|
||||||
if (DataUsageUtils.hasReadyMobileRadio(context)) {
|
if (SubscriptionUtil.isSimHardwareVisible(context)
|
||||||
|
&& DataUsageUtils.hasReadyMobileRadio(context)) {
|
||||||
return new NetworkTemplate.Builder(NetworkTemplate.MATCH_MOBILE).setMeteredness(
|
return new NetworkTemplate.Builder(NetworkTemplate.MATCH_MOBILE).setMeteredness(
|
||||||
NetworkStats.METERED_YES).build();
|
NetworkStats.METERED_YES).build();
|
||||||
}
|
}
|
||||||
|
@@ -659,7 +659,8 @@ public class ManageApplications extends InstrumentedFragment
|
|||||||
break;
|
break;
|
||||||
case LIST_TYPE_BATTERY_OPTIMIZATION:
|
case LIST_TYPE_BATTERY_OPTIMIZATION:
|
||||||
AdvancedPowerUsageDetail.startBatteryDetailPage(
|
AdvancedPowerUsageDetail.startBatteryDetailPage(
|
||||||
getActivity(), this, mCurrentPkgName);
|
getActivity(), this, mCurrentPkgName,
|
||||||
|
UserHandle.getUserHandleForUid(mCurrentUid));
|
||||||
break;
|
break;
|
||||||
// TODO: Figure out if there is a way where we can spin up the profile's settings
|
// TODO: Figure out if there is a way where we can spin up the profile's settings
|
||||||
// process ahead of time, to avoid a long load of data when user clicks on a managed
|
// process ahead of time, to avoid a long load of data when user clicks on a managed
|
||||||
|
@@ -45,6 +45,7 @@ import androidx.recyclerview.widget.RecyclerView;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.applications.AppInfoBase;
|
import com.android.settings.applications.AppInfoBase;
|
||||||
|
import com.android.settings.network.SubscriptionUtil;
|
||||||
import com.android.settings.widget.EntityHeaderController;
|
import com.android.settings.widget.EntityHeaderController;
|
||||||
import com.android.settingslib.AppItem;
|
import com.android.settingslib.AppItem;
|
||||||
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
import com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
|
||||||
@@ -109,6 +110,10 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
|||||||
private long mSelectedCycle;
|
private long mSelectedCycle;
|
||||||
private boolean mIsLoading;
|
private boolean mIsLoading;
|
||||||
|
|
||||||
|
public boolean isSimHardwareVisible(Context context) {
|
||||||
|
return SubscriptionUtil.isSimHardwareVisible(context);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
@@ -161,7 +166,7 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
|||||||
final UidDetailProvider uidDetailProvider = getUidDetailProvider();
|
final UidDetailProvider uidDetailProvider = getUidDetailProvider();
|
||||||
|
|
||||||
if (mAppItem.key > 0) {
|
if (mAppItem.key > 0) {
|
||||||
if (!UserHandle.isApp(mAppItem.key)) {
|
if ((!isSimHardwareVisible(mContext)) || !UserHandle.isApp(mAppItem.key)) {
|
||||||
final UidDetail uidDetail = uidDetailProvider.getUidDetail(mAppItem.key, true);
|
final UidDetail uidDetail = uidDetailProvider.getUidDetail(mAppItem.key, true);
|
||||||
mIcon = uidDetail.icon;
|
mIcon = uidDetail.icon;
|
||||||
mLabel = uidDetail.label;
|
mLabel = uidDetail.label;
|
||||||
@@ -328,6 +333,9 @@ public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceC
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void updatePrefs(boolean restrictBackground, boolean unrestrictData) {
|
private void updatePrefs(boolean restrictBackground, boolean unrestrictData) {
|
||||||
|
if (!isSimHardwareVisible(mContext)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
setBackPreferenceListAnimatorIfLoaded();
|
setBackPreferenceListAnimatorIfLoaded();
|
||||||
final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted(
|
final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted(
|
||||||
mContext, mPackageName, UserHandle.getUserId(mAppItem.key));
|
mContext, mPackageName, UserHandle.getUserId(mAppItem.key));
|
||||||
|
@@ -42,6 +42,7 @@ import androidx.preference.SwitchPreference;
|
|||||||
|
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||||
|
import com.android.settings.network.SubscriptionUtil;
|
||||||
import com.android.settings.search.BaseSearchIndexProvider;
|
import com.android.settings.search.BaseSearchIndexProvider;
|
||||||
import com.android.settingslib.NetworkPolicyEditor;
|
import com.android.settingslib.NetworkPolicyEditor;
|
||||||
import com.android.settingslib.net.DataUsageController;
|
import com.android.settingslib.net.DataUsageController;
|
||||||
@@ -102,6 +103,10 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
|
|||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
|
||||||
final Context context = getContext();
|
final Context context = getContext();
|
||||||
|
if (!SubscriptionUtil.isSimHardwareVisible(context)) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
mDataUsageController = new DataUsageController(context);
|
mDataUsageController = new DataUsageController(context);
|
||||||
|
|
||||||
Bundle args = getArguments();
|
Bundle args = getArguments();
|
||||||
@@ -498,7 +503,8 @@ public class BillingCycleSettings extends DataUsageBaseFragment implements
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isPageSearchEnabled(Context context) {
|
protected boolean isPageSearchEnabled(Context context) {
|
||||||
return DataUsageUtils.hasMobileData(context);
|
return SubscriptionUtil.isSimHardwareVisible(context)
|
||||||
|
&& DataUsageUtils.hasMobileData(context);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -59,6 +59,11 @@ public class DataSaverSummary extends SettingsPreferenceFragment
|
|||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
|
||||||
|
if (!isDataSaverVisible(getContext())) {
|
||||||
|
finishFragment();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.data_saver);
|
addPreferencesFromResource(R.xml.data_saver);
|
||||||
mUnrestrictedAccess = findPreference(KEY_UNRESTRICTED_ACCESS);
|
mUnrestrictedAccess = findPreference(KEY_UNRESTRICTED_ACCESS);
|
||||||
mApplicationsState = ApplicationsState.getInstance(
|
mApplicationsState = ApplicationsState.getInstance(
|
||||||
@@ -192,12 +197,18 @@ public class DataSaverSummary extends SettingsPreferenceFragment
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static boolean isDataSaverVisible(Context context) {
|
||||||
|
return context.getResources()
|
||||||
|
.getBoolean(R.bool.config_show_data_saver);
|
||||||
|
}
|
||||||
|
|
||||||
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
|
||||||
new BaseSearchIndexProvider(R.xml.data_saver) {
|
new BaseSearchIndexProvider(R.xml.data_saver) {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected boolean isPageSearchEnabled(Context context) {
|
protected boolean isPageSearchEnabled(Context context) {
|
||||||
return DataUsageUtils.hasMobileData(context)
|
return isDataSaverVisible(context)
|
||||||
|
&& DataUsageUtils.hasMobileData(context)
|
||||||
&& DataUsageUtils.getDefaultSubscriptionId(context)
|
&& DataUsageUtils.getDefaultSubscriptionId(context)
|
||||||
!= SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
!= SubscriptionManager.INVALID_SUBSCRIPTION_ID;
|
||||||
}
|
}
|
||||||
|
@@ -75,11 +75,19 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage
|
|||||||
return R.string.help_url_data_usage;
|
return R.string.help_url_data_usage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isSimHardwareVisible(Context context) {
|
||||||
|
return SubscriptionUtil.isSimHardwareVisible(context);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
Context context = getContext();
|
Context context = getContext();
|
||||||
|
|
||||||
|
if (!isSimHardwareVisible(context)) {
|
||||||
|
finish();
|
||||||
|
return;
|
||||||
|
}
|
||||||
enableProxySubscriptionManager(context);
|
enableProxySubscriptionManager(context);
|
||||||
|
|
||||||
boolean hasMobileData = DataUsageUtils.hasMobileData(context);
|
boolean hasMobileData = DataUsageUtils.hasMobileData(context);
|
||||||
@@ -137,6 +145,9 @@ public class DataUsageSummary extends DataUsageBaseFragment implements DataUsage
|
|||||||
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
|
||||||
final Activity activity = getActivity();
|
final Activity activity = getActivity();
|
||||||
final ArrayList<AbstractPreferenceController> controllers = new ArrayList<>();
|
final ArrayList<AbstractPreferenceController> controllers = new ArrayList<>();
|
||||||
|
if (!isSimHardwareVisible(context)) {
|
||||||
|
return controllers;
|
||||||
|
}
|
||||||
mSummaryController =
|
mSummaryController =
|
||||||
new DataUsageSummaryPreferenceController(activity, getSettingsLifecycle(), this,
|
new DataUsageSummaryPreferenceController(activity, getSettingsLifecycle(), this,
|
||||||
DataUsageUtils.getDefaultSubscriptionId(activity));
|
DataUsageUtils.getDefaultSubscriptionId(activity));
|
||||||
|
@@ -227,7 +227,8 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
|||||||
* Start packageName's battery detail page.
|
* Start packageName's battery detail page.
|
||||||
*/
|
*/
|
||||||
public static void startBatteryDetailPage(
|
public static void startBatteryDetailPage(
|
||||||
Activity caller, Instrumentable instrumentable, String packageName) {
|
Activity caller, Instrumentable instrumentable, String packageName,
|
||||||
|
UserHandle userHandle) {
|
||||||
final Bundle args = new Bundle(3);
|
final Bundle args = new Bundle(3);
|
||||||
final PackageManager packageManager = caller.getPackageManager();
|
final PackageManager packageManager = caller.getPackageManager();
|
||||||
args.putString(EXTRA_PACKAGE_NAME, packageName);
|
args.putString(EXTRA_PACKAGE_NAME, packageName);
|
||||||
@@ -243,6 +244,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
|||||||
.setTitleRes(R.string.battery_details_title)
|
.setTitleRes(R.string.battery_details_title)
|
||||||
.setArguments(args)
|
.setArguments(args)
|
||||||
.setSourceMetricsCategory(instrumentable.getMetricsCategory())
|
.setSourceMetricsCategory(instrumentable.getMetricsCategory())
|
||||||
|
.setUserHandle(userHandle)
|
||||||
.launch();
|
.launch();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -531,7 +533,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
|||||||
private CharSequence getAppActiveTime(Bundle bundle) {
|
private CharSequence getAppActiveTime(Bundle bundle) {
|
||||||
final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME);
|
final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME);
|
||||||
final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);
|
final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);
|
||||||
final int consumedPower = bundle.getInt(EXTRA_POWER_USAGE_AMOUNT);
|
|
||||||
final int uid = bundle.getInt(EXTRA_UID, 0);
|
final int uid = bundle.getInt(EXTRA_UID, 0);
|
||||||
final String slotTime = bundle.getString(EXTRA_SLOT_TIME, null);
|
final String slotTime = bundle.getString(EXTRA_SLOT_TIME, null);
|
||||||
final long totalTimeMs = foregroundTimeMs + backgroundTimeMs;
|
final long totalTimeMs = foregroundTimeMs + backgroundTimeMs;
|
||||||
@@ -543,9 +544,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
if (totalTimeMs == 0) {
|
if (totalTimeMs == 0) {
|
||||||
usageTimeSummary = getText(
|
usageTimeSummary = getText(R.string.battery_usage_without_time);
|
||||||
isChartGraphEnabled && consumedPower > 0 ? R.string.battery_usage_without_time
|
|
||||||
: R.string.battery_not_usage);
|
|
||||||
} else if (slotTime == null) {
|
} else if (slotTime == null) {
|
||||||
// Shows summary text with last full charge if slot time is null.
|
// Shows summary text with last full charge if slot time is null.
|
||||||
usageTimeSummary = getAppFullChargeActiveSummary(
|
usageTimeSummary = getAppFullChargeActiveSummary(
|
||||||
|
@@ -18,9 +18,13 @@ package com.android.settings.applications.specialaccess;
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -34,23 +38,35 @@ import org.robolectric.annotation.Config;
|
|||||||
public class DataSaverControllerTest {
|
public class DataSaverControllerTest {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private Resources mResources;
|
||||||
private DataSaverController mController;
|
private DataSaverController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
|
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
|
||||||
|
|
||||||
|
mResources = spy(mContext.getResources());
|
||||||
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
|
|
||||||
mController = new DataSaverController(mContext, "key");
|
mController = new DataSaverController(mContext, "key");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testDataSaver_byDefault_shouldBeShown() {
|
public void testDataSaver_byDefault_shouldBeShown() {
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_data_saver)).thenReturn(true);
|
||||||
assertThat(mController.isAvailable()).isTrue();
|
assertThat(mController.isAvailable()).isTrue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Config(qualifiers = "mcc999")
|
@Config(qualifiers = "mcc999")
|
||||||
|
public void testDataSaver_ifDisabledByCarrier_shouldNotBeShown() {
|
||||||
|
assertThat(mController.isAvailable()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void testDataSaver_ifDisabled_shouldNotBeShown() {
|
public void testDataSaver_ifDisabled_shouldNotBeShown() {
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_data_saver)).thenReturn(false);
|
||||||
assertThat(mController.isAvailable()).isFalse();
|
assertThat(mController.isAvailable()).isFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,8 +21,12 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
|
|||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -36,23 +40,35 @@ import org.robolectric.annotation.Config;
|
|||||||
public class PremiumSmsControllerTest {
|
public class PremiumSmsControllerTest {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private Resources mResources;
|
||||||
private PremiumSmsController mController;
|
private PremiumSmsController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
|
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
|
||||||
|
|
||||||
|
mResources = spy(mContext.getResources());
|
||||||
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
|
|
||||||
mController = new PremiumSmsController(mContext, "key");
|
mController = new PremiumSmsController(mContext, "key");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAvailability_byDefault_shouldBeShown() {
|
public void getAvailability_byDefault_shouldBeShown() {
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(true);
|
||||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Config(qualifiers = "mcc999")
|
@Config(qualifiers = "mcc999")
|
||||||
|
public void getAvailability_disabledByCarrier_returnUnavailable() {
|
||||||
|
assertThat(mController.isAvailable()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void getAvailability_disabled_returnUnavailable() {
|
public void getAvailability_disabled_returnUnavailable() {
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(false);
|
||||||
assertThat(mController.isAvailable()).isFalse();
|
assertThat(mController.isAvailable()).isFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,8 +21,12 @@ import static com.android.settings.core.BasePreferenceController.AVAILABLE;
|
|||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -36,23 +40,35 @@ import org.robolectric.annotation.Config;
|
|||||||
public class PremiumSmsScreenPreferenceControllerTest {
|
public class PremiumSmsScreenPreferenceControllerTest {
|
||||||
|
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private Resources mResources;
|
||||||
private PremiumSmsScreenPreferenceController mController;
|
private PremiumSmsScreenPreferenceController mController;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
|
mContext = spy(RuntimeEnvironment.application.getApplicationContext());
|
||||||
|
|
||||||
|
mResources = spy(mContext.getResources());
|
||||||
|
when(mContext.getResources()).thenReturn(mResources);
|
||||||
|
|
||||||
mController = new PremiumSmsScreenPreferenceController(mContext, "key");
|
mController = new PremiumSmsScreenPreferenceController(mContext, "key");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAvailability_byDefault_shouldBeShown() {
|
public void getAvailability_byDefault_shouldBeShown() {
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(true);
|
||||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(AVAILABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@Config(qualifiers = "mcc999")
|
@Config(qualifiers = "mcc999")
|
||||||
|
public void getAvailability_disabledByCarrier_returnUnavailable() {
|
||||||
|
assertThat(mController.isAvailable()).isFalse();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
public void getAvailability_disabled_returnUnavailable() {
|
public void getAvailability_disabled_returnUnavailable() {
|
||||||
|
when(mResources.getBoolean(R.bool.config_show_premium_sms)).thenReturn(false);
|
||||||
assertThat(mController.isAvailable()).isFalse();
|
assertThat(mController.isAvailable()).isFalse();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -110,7 +110,10 @@ public class AppDataUsageTest {
|
|||||||
@Test
|
@Test
|
||||||
@Config(shadows = ShadowFragment.class)
|
@Config(shadows = ShadowFragment.class)
|
||||||
public void onCreate_appUid_shouldGetAppLabelFromAppInfo() throws NameNotFoundException {
|
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));
|
final FragmentActivity activity = spy(Robolectric.setupActivity(FragmentActivity.class));
|
||||||
doReturn(mPackageManager).when(activity).getPackageManager();
|
doReturn(mPackageManager).when(activity).getPackageManager();
|
||||||
doReturn(activity).when(mFragment).getActivity();
|
doReturn(activity).when(mFragment).getActivity();
|
||||||
@@ -140,7 +143,10 @@ public class AppDataUsageTest {
|
|||||||
@Test
|
@Test
|
||||||
@Config(shadows = ShadowFragment.class)
|
@Config(shadows = ShadowFragment.class)
|
||||||
public void onCreate_notAppUid_shouldGetAppLabelFromUidDetailProvider() {
|
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",
|
ReflectionHelpers.setField(mFragment, "mDashboardFeatureProvider",
|
||||||
FakeFeatureFactory.setupForTest().dashboardFeatureProvider);
|
FakeFeatureFactory.setupForTest().dashboardFeatureProvider);
|
||||||
doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity();
|
doReturn(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity();
|
||||||
@@ -167,7 +173,10 @@ public class AppDataUsageTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void bindAppHeader_allWorkApps_shouldNotShowAppInfoLink() {
|
public void bindAppHeader_allWorkApps_shouldNotShowAppInfoLink() {
|
||||||
mFragment = spy(new AppDataUsage());
|
mFragment = spy(new AppDataUsage() {
|
||||||
|
@Override
|
||||||
|
public boolean isSimHardwareVisible(Context context) { return true; }
|
||||||
|
});
|
||||||
|
|
||||||
when(mFragment.getPreferenceManager())
|
when(mFragment.getPreferenceManager())
|
||||||
.thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS));
|
.thenReturn(mock(PreferenceManager.class, RETURNS_DEEP_STUBS));
|
||||||
@@ -184,7 +193,10 @@ public class AppDataUsageTest {
|
|||||||
throws PackageManager.NameNotFoundException {
|
throws PackageManager.NameNotFoundException {
|
||||||
final int fakeUserId = 100;
|
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<>();
|
final ArraySet<String> packages = new ArraySet<>();
|
||||||
packages.add("pkg");
|
packages.add("pkg");
|
||||||
final AppItem appItem = new AppItem(123456789);
|
final AppItem appItem = new AppItem(123456789);
|
||||||
@@ -210,7 +222,10 @@ public class AppDataUsageTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void changePreference_backgroundData_shouldUpdateUI() {
|
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 AppItem appItem = new AppItem(123456789);
|
||||||
final RestrictedSwitchPreference pref = mock(RestrictedSwitchPreference.class);
|
final RestrictedSwitchPreference pref = mock(RestrictedSwitchPreference.class);
|
||||||
final DataSaverBackend dataSaverBackend = mock(DataSaverBackend.class);
|
final DataSaverBackend dataSaverBackend = mock(DataSaverBackend.class);
|
||||||
@@ -227,7 +242,10 @@ public class AppDataUsageTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void updatePrefs_restrictedByAdmin_shouldDisablePreference() {
|
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 int testUid = 123123;
|
||||||
final AppItem appItem = new AppItem(testUid);
|
final AppItem appItem = new AppItem(testUid);
|
||||||
final RestrictedSwitchPreference restrictBackgroundPref
|
final RestrictedSwitchPreference restrictBackgroundPref
|
||||||
@@ -255,7 +273,10 @@ public class AppDataUsageTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void bindData_noAppUsageData_shouldHideCycleSpinner() {
|
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);
|
final SpinnerPreference cycle = mock(SpinnerPreference.class);
|
||||||
ReflectionHelpers.setField(mFragment, "mCycle", cycle);
|
ReflectionHelpers.setField(mFragment, "mCycle", cycle);
|
||||||
final Preference preference = mock(Preference.class);
|
final Preference preference = mock(Preference.class);
|
||||||
@@ -271,7 +292,10 @@ public class AppDataUsageTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void bindData_hasAppUsageData_shouldShowCycleSpinnerAndUpdateUsageSummary() {
|
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;
|
final Context context = RuntimeEnvironment.application;
|
||||||
ReflectionHelpers.setField(mFragment, "mContext", context);
|
ReflectionHelpers.setField(mFragment, "mContext", context);
|
||||||
final long backgroundBytes = 1234L;
|
final long backgroundBytes = 1234L;
|
||||||
@@ -300,7 +324,10 @@ public class AppDataUsageTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onCreateLoader_categoryApp_shouldQueryDataUsageUsingAppKey() {
|
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 Context context = RuntimeEnvironment.application;
|
||||||
final int testUid = 123123;
|
final int testUid = 123123;
|
||||||
final AppItem appItem = new AppItem(testUid);
|
final AppItem appItem = new AppItem(testUid);
|
||||||
@@ -323,7 +350,10 @@ public class AppDataUsageTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void onCreateLoader_categoryUser_shouldQueryDataUsageUsingAssociatedUids() {
|
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 Context context = RuntimeEnvironment.application;
|
||||||
final int testUserId = 11;
|
final int testUserId = 11;
|
||||||
final AppItem appItem = new AppItem(testUserId);
|
final AppItem appItem = new AppItem(testUserId);
|
||||||
@@ -360,7 +390,10 @@ public class AppDataUsageTest {
|
|||||||
appItem.category = AppItem.CATEGORY_APP;
|
appItem.category = AppItem.CATEGORY_APP;
|
||||||
appItem.addUid(uid);
|
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, "mContext", RuntimeEnvironment.application);
|
||||||
ReflectionHelpers.setField(mFragment, "mCycles", testCycles);
|
ReflectionHelpers.setField(mFragment, "mCycles", testCycles);
|
||||||
ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
|
ReflectionHelpers.setField(mFragment, "mAppItem", appItem);
|
||||||
@@ -393,7 +426,10 @@ public class AppDataUsageTest {
|
|||||||
builder.setStartTime(tenDaysAgo).setEndTime(now).setTotalUsage(1234L);
|
builder.setStartTime(tenDaysAgo).setEndTime(now).setTotalUsage(1234L);
|
||||||
data.add(builder.build());
|
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, "mContext", RuntimeEnvironment.application);
|
||||||
ReflectionHelpers.setField(mFragment, "mCycleAdapter", mock(CycleAdapter.class));
|
ReflectionHelpers.setField(mFragment, "mCycleAdapter", mock(CycleAdapter.class));
|
||||||
ReflectionHelpers.setField(mFragment, "mSelectedCycle", tenDaysAgo);
|
ReflectionHelpers.setField(mFragment, "mSelectedCycle", tenDaysAgo);
|
||||||
@@ -420,7 +456,10 @@ public class AppDataUsageTest {
|
|||||||
ShadowDataUsageUtils.HAS_SIM = false;
|
ShadowDataUsageUtils.HAS_SIM = false;
|
||||||
ShadowSubscriptionManager.setDefaultDataSubscriptionId(
|
ShadowSubscriptionManager.setDefaultDataSubscriptionId(
|
||||||
SubscriptionManager.INVALID_SUBSCRIPTION_ID);
|
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(Robolectric.setupActivity(FragmentActivity.class)).when(mFragment).getActivity();
|
||||||
doReturn(RuntimeEnvironment.application).when(mFragment).getContext();
|
doReturn(RuntimeEnvironment.application).when(mFragment).getContext();
|
||||||
final UidDetailProvider uidDetailProvider = mock(UidDetailProvider.class);
|
final UidDetailProvider uidDetailProvider = mock(UidDetailProvider.class);
|
||||||
|
@@ -29,12 +29,15 @@ import static org.mockito.Mockito.verify;
|
|||||||
|
|
||||||
import android.app.usage.NetworkStatsManager;
|
import android.app.usage.NetworkStatsManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Resources;
|
||||||
import android.net.NetworkPolicyManager;
|
import android.net.NetworkPolicyManager;
|
||||||
import android.telephony.SubscriptionManager;
|
import android.telephony.SubscriptionManager;
|
||||||
import android.telephony.TelephonyManager;
|
import android.telephony.TelephonyManager;
|
||||||
|
|
||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
|
|
||||||
import com.android.settings.testutils.shadow.ShadowDashboardFragment;
|
import com.android.settings.testutils.shadow.ShadowDashboardFragment;
|
||||||
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
|
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
|
||||||
import com.android.settings.testutils.shadow.ShadowUserManager;
|
import com.android.settings.testutils.shadow.ShadowUserManager;
|
||||||
@@ -70,6 +73,7 @@ public class DataUsageSummaryTest {
|
|||||||
private NetworkStatsManager mNetworkStatsManager;
|
private NetworkStatsManager mNetworkStatsManager;
|
||||||
private TelephonyManager mTelephonyManager;
|
private TelephonyManager mTelephonyManager;
|
||||||
private Context mContext;
|
private Context mContext;
|
||||||
|
private Resources mResources;
|
||||||
private FragmentActivity mActivity;
|
private FragmentActivity mActivity;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -84,13 +88,18 @@ public class DataUsageSummaryTest {
|
|||||||
ShadowUserManager.getShadow().setIsAdminUser(true);
|
ShadowUserManager.getShadow().setIsAdminUser(true);
|
||||||
shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager);
|
shadowContext.setSystemService(Context.NETWORK_POLICY_SERVICE, mNetworkPolicyManager);
|
||||||
|
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = spy(RuntimeEnvironment.application);
|
||||||
mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
|
mTelephonyManager = mContext.getSystemService(TelephonyManager.class);
|
||||||
final ShadowTelephonyManager shadowTelephonyManager = Shadows.shadowOf(mTelephonyManager);
|
final ShadowTelephonyManager shadowTelephonyManager = Shadows.shadowOf(mTelephonyManager);
|
||||||
shadowTelephonyManager.setTelephonyManagerForSubscriptionId(
|
shadowTelephonyManager.setTelephonyManagerForSubscriptionId(
|
||||||
SubscriptionManager.INVALID_SUBSCRIPTION_ID, mTelephonyManager);
|
SubscriptionManager.INVALID_SUBSCRIPTION_ID, mTelephonyManager);
|
||||||
shadowTelephonyManager.setTelephonyManagerForSubscriptionId(1, mTelephonyManager);
|
shadowTelephonyManager.setTelephonyManagerForSubscriptionId(1, mTelephonyManager);
|
||||||
mActivity = spy(Robolectric.buildActivity(FragmentActivity.class).get());
|
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);
|
doReturn(mNetworkStatsManager).when(mActivity).getSystemService(NetworkStatsManager.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -434,8 +434,7 @@ public class AdvancedPowerUsageDetailTest {
|
|||||||
|
|
||||||
ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
|
ArgumentCaptor<CharSequence> captor = ArgumentCaptor.forClass(CharSequence.class);
|
||||||
verify(mEntityHeaderController).setSummary(captor.capture());
|
verify(mEntityHeaderController).setSummary(captor.capture());
|
||||||
assertThat(captor.getValue().toString())
|
assertThat(captor.getValue().toString()).isEmpty();
|
||||||
.isEqualTo("No usage from last full charge");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -742,7 +741,8 @@ public class AdvancedPowerUsageDetailTest {
|
|||||||
public void startBatteryDetailPage_noBatteryUsage_hasBasicData() {
|
public void startBatteryDetailPage_noBatteryUsage_hasBasicData() {
|
||||||
final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
|
final ArgumentCaptor<Intent> captor = ArgumentCaptor.forClass(Intent.class);
|
||||||
|
|
||||||
AdvancedPowerUsageDetail.startBatteryDetailPage(mActivity, mFragment, PACKAGE_NAME[0]);
|
AdvancedPowerUsageDetail.startBatteryDetailPage(
|
||||||
|
mActivity, mFragment, PACKAGE_NAME[0], UserHandle.OWNER);
|
||||||
|
|
||||||
verify(mActivity).startActivity(captor.capture());
|
verify(mActivity).startActivity(captor.capture());
|
||||||
|
|
||||||
@@ -760,7 +760,8 @@ public class AdvancedPowerUsageDetailTest {
|
|||||||
PackageManager.NameNotFoundException {
|
PackageManager.NameNotFoundException {
|
||||||
doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */);
|
doReturn(UID).when(mPackageManager).getPackageUid(PACKAGE_NAME[0], 0 /* no flag */);
|
||||||
|
|
||||||
AdvancedPowerUsageDetail.startBatteryDetailPage(mActivity, mFragment, PACKAGE_NAME[0]);
|
AdvancedPowerUsageDetail.startBatteryDetailPage(
|
||||||
|
mActivity, mFragment, PACKAGE_NAME[0], UserHandle.OWNER);
|
||||||
|
|
||||||
assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID);
|
assertThat(mBundle.getInt(AdvancedPowerUsageDetail.EXTRA_UID)).isEqualTo(UID);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user