Loading src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java +5 −0 Original line number Diff line number Diff line Loading @@ -558,6 +558,11 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp ActivityManager am = (ActivityManager) mActivity.getSystemService( Context.ACTIVITY_SERVICE); Log.d(TAG, "Stopping package " + pkgName); if (android.app.Flags.appRestrictionsApi()) { am.noteAppRestrictionEnabled(pkgName, mAppEntry.info.uid, ActivityManager.RESTRICTION_LEVEL_FORCE_STOPPED, true, ActivityManager.RESTRICTION_REASON_USER, "settings", 0L); } am.forceStopPackage(pkgName); int userId = UserHandle.getUserId(mAppEntry.info.uid); mState.invalidatePackage(pkgName, userId); Loading src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +2 −2 Original line number Diff line number Diff line Loading @@ -345,9 +345,9 @@ public class BatteryOptimizeUtils { try { batteryUtils.setForceAppStandby(uid, packageName, appStandbyMode); if (allowListed) { powerAllowlistBackend.addApp(packageName); powerAllowlistBackend.addApp(packageName, uid); } else { powerAllowlistBackend.removeApp(packageName); powerAllowlistBackend.removeApp(packageName, uid); } } catch (Exception e) { // Error cases, set standby mode as -1 for logging. Loading src/com/android/settings/fuelgauge/BatteryUtils.java +9 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.settings.fuelgauge; import android.app.ActivityManager; import android.app.AppOpsManager; import android.content.Context; import android.content.Intent; Loading Loading @@ -386,6 +387,14 @@ public class BatteryUtils { // Control whether app could run in the background if it is pre O app mAppOpsManager.setMode(AppOpsManager.OP_RUN_IN_BACKGROUND, uid, packageName, mode); } // Notify system of reason for change if (isForceAppStandbyEnabled(uid, packageName) != (mode == AppOpsManager.MODE_IGNORED)) { mContext.getSystemService(ActivityManager.class).noteAppRestrictionEnabled( packageName, uid, ActivityManager.RESTRICTION_LEVEL_BACKGROUND_RESTRICTED, mode == AppOpsManager.MODE_IGNORED, ActivityManager.RESTRICTION_REASON_USER, "settings", 0); } // Control whether app could run jobs in the background mAppOpsManager.setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName, mode); Loading src/com/android/settings/fuelgauge/HighPowerDetail.java +2 −2 Original line number Diff line number Diff line Loading @@ -142,9 +142,9 @@ public class HighPowerDetail extends InstrumentedDialogFragment if (newValue) { mBatteryUtils.setForceAppStandby( mPackageUid, mPackageName, AppOpsManager.MODE_ALLOWED); mBackend.addApp(mPackageName); mBackend.addApp(mPackageName, mPackageUid); } else { mBackend.removeApp(mPackageName); mBackend.removeApp(mPackageName, mPackageUid); } } } Loading src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt +8 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.spa.app.appinfo import android.app.ActivityManager import android.app.settings.SettingsEnums import android.content.Context import android.content.Intent Loading Loading @@ -154,6 +155,13 @@ class PackageInfoPresenter( logAction(SettingsEnums.ACTION_APP_FORCE_STOP) coroutineScope.launch(Dispatchers.Default) { Log.d(TAG, "Stopping package $packageName") if (android.app.Flags.appRestrictionsApi()) { val uid = userPackageManager.getPackageUid(packageName, 0) context.activityManager.noteAppRestrictionEnabled( packageName, uid, ActivityManager.RESTRICTION_LEVEL_FORCE_STOPPED, true, ActivityManager.RESTRICTION_REASON_USER, "settings", 0) } context.activityManager.forceStopPackageAsUser(packageName, userId) } } Loading Loading
src/com/android/settings/applications/appinfo/AppButtonsPreferenceController.java +5 −0 Original line number Diff line number Diff line Loading @@ -558,6 +558,11 @@ public class AppButtonsPreferenceController extends BasePreferenceController imp ActivityManager am = (ActivityManager) mActivity.getSystemService( Context.ACTIVITY_SERVICE); Log.d(TAG, "Stopping package " + pkgName); if (android.app.Flags.appRestrictionsApi()) { am.noteAppRestrictionEnabled(pkgName, mAppEntry.info.uid, ActivityManager.RESTRICTION_LEVEL_FORCE_STOPPED, true, ActivityManager.RESTRICTION_REASON_USER, "settings", 0L); } am.forceStopPackage(pkgName); int userId = UserHandle.getUserId(mAppEntry.info.uid); mState.invalidatePackage(pkgName, userId); Loading
src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +2 −2 Original line number Diff line number Diff line Loading @@ -345,9 +345,9 @@ public class BatteryOptimizeUtils { try { batteryUtils.setForceAppStandby(uid, packageName, appStandbyMode); if (allowListed) { powerAllowlistBackend.addApp(packageName); powerAllowlistBackend.addApp(packageName, uid); } else { powerAllowlistBackend.removeApp(packageName); powerAllowlistBackend.removeApp(packageName, uid); } } catch (Exception e) { // Error cases, set standby mode as -1 for logging. Loading
src/com/android/settings/fuelgauge/BatteryUtils.java +9 −0 Original line number Diff line number Diff line Loading @@ -15,6 +15,7 @@ */ package com.android.settings.fuelgauge; import android.app.ActivityManager; import android.app.AppOpsManager; import android.content.Context; import android.content.Intent; Loading Loading @@ -386,6 +387,14 @@ public class BatteryUtils { // Control whether app could run in the background if it is pre O app mAppOpsManager.setMode(AppOpsManager.OP_RUN_IN_BACKGROUND, uid, packageName, mode); } // Notify system of reason for change if (isForceAppStandbyEnabled(uid, packageName) != (mode == AppOpsManager.MODE_IGNORED)) { mContext.getSystemService(ActivityManager.class).noteAppRestrictionEnabled( packageName, uid, ActivityManager.RESTRICTION_LEVEL_BACKGROUND_RESTRICTED, mode == AppOpsManager.MODE_IGNORED, ActivityManager.RESTRICTION_REASON_USER, "settings", 0); } // Control whether app could run jobs in the background mAppOpsManager.setMode(AppOpsManager.OP_RUN_ANY_IN_BACKGROUND, uid, packageName, mode); Loading
src/com/android/settings/fuelgauge/HighPowerDetail.java +2 −2 Original line number Diff line number Diff line Loading @@ -142,9 +142,9 @@ public class HighPowerDetail extends InstrumentedDialogFragment if (newValue) { mBatteryUtils.setForceAppStandby( mPackageUid, mPackageName, AppOpsManager.MODE_ALLOWED); mBackend.addApp(mPackageName); mBackend.addApp(mPackageName, mPackageUid); } else { mBackend.removeApp(mPackageName); mBackend.removeApp(mPackageName, mPackageUid); } } } Loading
src/com/android/settings/spa/app/appinfo/PackageInfoPresenter.kt +8 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package com.android.settings.spa.app.appinfo import android.app.ActivityManager import android.app.settings.SettingsEnums import android.content.Context import android.content.Intent Loading Loading @@ -154,6 +155,13 @@ class PackageInfoPresenter( logAction(SettingsEnums.ACTION_APP_FORCE_STOP) coroutineScope.launch(Dispatchers.Default) { Log.d(TAG, "Stopping package $packageName") if (android.app.Flags.appRestrictionsApi()) { val uid = userPackageManager.getPackageUid(packageName, 0) context.activityManager.noteAppRestrictionEnabled( packageName, uid, ActivityManager.RESTRICTION_LEVEL_FORCE_STOPPED, true, ActivityManager.RESTRICTION_REASON_USER, "settings", 0) } context.activityManager.forceStopPackageAsUser(packageName, userId) } } Loading