From 7423f4390c924e81db94cc20828ccdf78ef24a2f Mon Sep 17 00:00:00 2001 From: Wesley Wang Date: Tue, 13 Dec 2022 19:04:42 +0800 Subject: [PATCH] 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 --- .../settings/fuelgauge/AdvancedPowerUsageDetail.java | 2 +- .../android/settings/fuelgauge/BatteryOptimizeUtils.java | 7 ++----- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java index 3ab7e576266..3083d3193e2 100644 --- a/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +++ b/src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java @@ -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, diff --git a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java index 19286625761..ccc88925274 100644 --- a/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +++ b/src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java @@ -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(