Move setup optimization mode to main thread

- Due to unclear root cause of optimization mode being reset after
   reboot, update the setup logic from deferred background thread to
   main thread, to avoid any possible background task unexecuted case.

Bug: 241735485
Test: make SettingsRoboTests
Change-Id: I2de2181321712f89fadc04bf5000aea91a01485a
This commit is contained in:
Wesley Wang
2022-12-13 19:04:42 +08:00
parent 82789d15ce
commit 7423f4390c
2 changed files with 3 additions and 6 deletions

View File

@@ -296,7 +296,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
BatteryHistoricalLogUtil.getPackageNameWithUserId(
mBatteryOptimizeUtils.getPackageName(), UserHandle.myUserId()),
mLogStringBuilder.toString());
mBatteryOptimizeUtils.setAppUsageState(selectedPreference, Action.APPLY);
Log.d(TAG, "Leave with mode: " + selectedPreference);
}
@@ -424,6 +423,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
updatePreferenceState(mUnrestrictedPreference, selectedKey);
updatePreferenceState(mOptimizePreference, selectedKey);
updatePreferenceState(mRestrictedPreference, selectedKey);
mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference(), Action.APPLY);
}
private void updatePreferenceState(SelectorWithWidgetPreference preference,

View File

@@ -24,7 +24,6 @@ import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.ParceledListSlice;
import android.content.pm.UserInfo;
import android.os.AsyncTask;
import android.os.UserHandle;
import android.os.UserManager;
import android.util.ArraySet;
@@ -227,10 +226,8 @@ public class BatteryOptimizeUtils {
mode == MODE_RESTRICTED ? AppOpsManager.MODE_IGNORED : AppOpsManager.MODE_ALLOWED;
final boolean allowListed = mode == MODE_UNRESTRICTED;
AsyncTask.execute(() -> {
setAppOptimizationModeInternal(context, appOpsManagerMode, allowListed, uid,
packageName, batteryUtils, powerAllowlistBackend, action);
});
setAppOptimizationModeInternal(context, appOpsManagerMode, allowListed, uid,
packageName, batteryUtils, powerAllowlistBackend, action);
}
private static void setAppOptimizationModeInternal(