Merge "When restrict, use uid inside AppInfo" into pi-dev
am: 4376993a87
Change-Id: Ib882c9b94e05e56492d7a85db55564ca91ef46e1
This commit is contained in:
@@ -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
|
||||||
|
@@ -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
|
||||||
|
@@ -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));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -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));
|
||||||
|
@@ -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));
|
||||||
|
Reference in New Issue
Block a user