Merge "When restrict, use uid inside AppInfo" into pi-dev

am: 4376993a87

Change-Id: Ib882c9b94e05e56492d7a85db55564ca91ef46e1
This commit is contained in:
Lei Yu
2018-05-21 22:27:29 -07:00
committed by android-build-merger
5 changed files with 19 additions and 9 deletions

View File

@@ -129,6 +129,7 @@ public class BackgroundActivityPreferenceController extends AbstractPreferenceCo
@VisibleForTesting @VisibleForTesting
void showDialog(boolean restricted) { void showDialog(boolean restricted) {
final AppInfo appInfo = new AppInfo.Builder() final AppInfo appInfo = new AppInfo.Builder()
.setUid(mUid)
.setPackageName(mTargetPackage) .setPackageName(mTargetPackage)
.build(); .build();
BatteryTip tip = restricted BatteryTip tip = restricted

View File

@@ -59,7 +59,7 @@ public class RestrictAppAction extends BatteryTipAction {
final AppInfo appInfo = appInfos.get(i); final AppInfo appInfo = appInfos.get(i);
final String packageName = appInfo.packageName; final String packageName = appInfo.packageName;
// Force app standby, then app can't run in the background // Force app standby, then app can't run in the background
mBatteryUtils.setForceAppStandby(mBatteryUtils.getPackageUid(packageName), packageName, mBatteryUtils.setForceAppStandby(appInfo.uid, packageName,
AppOpsManager.MODE_IGNORED); AppOpsManager.MODE_IGNORED);
if (CollectionUtils.isEmpty(appInfo.anomalyTypes)) { if (CollectionUtils.isEmpty(appInfo.anomalyTypes)) {
// Only log context if there is no anomaly type // Only log context if there is no anomaly type

View File

@@ -23,6 +23,7 @@ import android.util.Pair;
import com.android.internal.logging.nano.MetricsProto; import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.fuelgauge.BatteryUtils; import com.android.settings.fuelgauge.BatteryUtils;
import com.android.settings.fuelgauge.batterytip.AppInfo;
import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip; import com.android.settings.fuelgauge.batterytip.tips.UnrestrictAppTip;
/** /**
@@ -44,12 +45,12 @@ public class UnrestrictAppAction extends BatteryTipAction {
*/ */
@Override @Override
public void handlePositiveAction(int metricsKey) { public void handlePositiveAction(int metricsKey) {
final String packageName = mUnRestrictAppTip.getPackageName(); final AppInfo appInfo = mUnRestrictAppTip.getUnrestrictAppInfo();
// Clear force app standby, then app can run in the background // Clear force app standby, then app can run in the background
mBatteryUtils.setForceAppStandby(mBatteryUtils.getPackageUid(packageName), packageName, mBatteryUtils.setForceAppStandby(appInfo.uid, appInfo.packageName,
AppOpsManager.MODE_ALLOWED); AppOpsManager.MODE_ALLOWED);
mMetricsFeatureProvider.action(mContext, mMetricsFeatureProvider.action(mContext,
MetricsProto.MetricsEvent.ACTION_TIP_UNRESTRICT_APP, packageName, Pair.create( MetricsProto.MetricsEvent.ACTION_TIP_UNRESTRICT_APP, appInfo.packageName,
MetricsProto.MetricsEvent.FIELD_CONTEXT, metricsKey)); Pair.create(MetricsProto.MetricsEvent.FIELD_CONTEXT, metricsKey));
} }
} }

View File

@@ -46,6 +46,8 @@ import java.util.List;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
public class RestrictAppActionTest { public class RestrictAppActionTest {
private static final int UID_1 = 12345;
private static final int UID_2 = 23456;
private static final String PACKAGE_NAME_1 = "com.android.app1"; private static final String PACKAGE_NAME_1 = "com.android.app1";
private static final String PACKAGE_NAME_2 = "com.android.app2"; private static final String PACKAGE_NAME_2 = "com.android.app2";
private static final int ANOMALY_WAKEUP = 0; private static final int ANOMALY_WAKEUP = 0;
@@ -63,9 +65,11 @@ public class RestrictAppActionTest {
final List<AppInfo> mAppInfos = new ArrayList<>(); final List<AppInfo> mAppInfos = new ArrayList<>();
mAppInfos.add(new AppInfo.Builder() mAppInfos.add(new AppInfo.Builder()
.setUid(UID_1)
.setPackageName(PACKAGE_NAME_1) .setPackageName(PACKAGE_NAME_1)
.build()); .build());
mAppInfos.add(new AppInfo.Builder() mAppInfos.add(new AppInfo.Builder()
.setUid(UID_2)
.setPackageName(PACKAGE_NAME_2) .setPackageName(PACKAGE_NAME_2)
.addAnomalyType(ANOMALY_BT) .addAnomalyType(ANOMALY_BT)
.addAnomalyType(ANOMALY_WAKEUP) .addAnomalyType(ANOMALY_WAKEUP)
@@ -87,9 +91,9 @@ public class RestrictAppActionTest {
mRestrictAppAction.handlePositiveAction(METRICS_KEY); mRestrictAppAction.handlePositiveAction(METRICS_KEY);
verify(mBatteryUtils) verify(mBatteryUtils)
.setForceAppStandby(anyInt(), eq(PACKAGE_NAME_1), eq(AppOpsManager.MODE_IGNORED)); .setForceAppStandby(UID_1, PACKAGE_NAME_1, AppOpsManager.MODE_IGNORED);
verify(mBatteryUtils) verify(mBatteryUtils)
.setForceAppStandby(anyInt(), eq(PACKAGE_NAME_2), eq(AppOpsManager.MODE_IGNORED)); .setForceAppStandby(UID_2, PACKAGE_NAME_2, AppOpsManager.MODE_IGNORED);
verify(mFeatureFactory.metricsFeatureProvider).action(RuntimeEnvironment.application, verify(mFeatureFactory.metricsFeatureProvider).action(RuntimeEnvironment.application,
MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP, PACKAGE_NAME_1, Pair.create( MetricsProto.MetricsEvent.ACTION_TIP_RESTRICT_APP, PACKAGE_NAME_1, Pair.create(
MetricsProto.MetricsEvent.FIELD_CONTEXT, METRICS_KEY)); MetricsProto.MetricsEvent.FIELD_CONTEXT, METRICS_KEY));

View File

@@ -42,6 +42,7 @@ import org.robolectric.RuntimeEnvironment;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
public class UnrestrictAppActionTest { public class UnrestrictAppActionTest {
private static final int UID_1 = 12345;
private static final String PACKAGE_NAME_1 = "com.android.app1"; private static final String PACKAGE_NAME_1 = "com.android.app1";
private static final int METRICS_KEY = 1; private static final int METRICS_KEY = 1;
@@ -54,7 +55,10 @@ public class UnrestrictAppActionTest {
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
final AppInfo appInfo = new AppInfo.Builder().setPackageName(PACKAGE_NAME_1).build(); final AppInfo appInfo = new AppInfo.Builder()
.setUid(UID_1)
.setPackageName(PACKAGE_NAME_1)
.build();
mFeatureFactory = FakeFeatureFactory.setupForTest(); mFeatureFactory = FakeFeatureFactory.setupForTest();
mUnrestrictAppAction = new UnrestrictAppAction(RuntimeEnvironment.application, mUnrestrictAppAction = new UnrestrictAppAction(RuntimeEnvironment.application,
@@ -72,7 +76,7 @@ public class UnrestrictAppActionTest {
mUnrestrictAppAction.handlePositiveAction(METRICS_KEY); mUnrestrictAppAction.handlePositiveAction(METRICS_KEY);
verify(mBatteryUtils) verify(mBatteryUtils)
.setForceAppStandby(anyInt(), eq(PACKAGE_NAME_1), eq(AppOpsManager.MODE_ALLOWED)); .setForceAppStandby(UID_1, PACKAGE_NAME_1, AppOpsManager.MODE_ALLOWED);
verify(mFeatureFactory.metricsFeatureProvider).action(RuntimeEnvironment.application, verify(mFeatureFactory.metricsFeatureProvider).action(RuntimeEnvironment.application,
MetricsProto.MetricsEvent.ACTION_TIP_UNRESTRICT_APP, PACKAGE_NAME_1, Pair.create( MetricsProto.MetricsEvent.ACTION_TIP_UNRESTRICT_APP, PACKAGE_NAME_1, Pair.create(
MetricsProto.MetricsEvent.FIELD_CONTEXT, METRICS_KEY)); MetricsProto.MetricsEvent.FIELD_CONTEXT, METRICS_KEY));