Loading src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +21 −0 Original line number Diff line number Diff line Loading @@ -282,6 +282,15 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements } } @Override public void onPause() { super.onPause(); if (mEnableTriState) { Log.d(TAG, "Leave with mode: " + getSelectedPreference()); mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference()); } } @Override public void onDestroy() { super.onDestroy(); Loading Loading @@ -490,6 +499,18 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode(); } private int getSelectedPreference() { if (mRestrictedPreference.isChecked()) { return BatteryOptimizeUtils.MODE_RESTRICTED; } else if (mUnrestrictedPreference.isChecked()) { return BatteryOptimizeUtils.MODE_UNRESTRICTED; } else if (mOptimizePreference.isChecked()) { return BatteryOptimizeUtils.MODE_OPTIMIZED; } else { return BatteryOptimizeUtils.MODE_UNKNOWN; } } private CharSequence getAppActiveTime(Bundle bundle) { final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME); final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME); Loading src/com/android/settings/fuelgauge/BatteryBackupHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,8 @@ import android.content.pm.ParceledListSlice; import android.content.pm.UserInfo; import android.os.Build; import android.os.IDeviceIdleController; import android.os.RemoteException; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserManager; Loading Loading @@ -230,7 +230,7 @@ public final class BatteryBackupHelper implements BackupHelper { mBatteryOptimizeUtils != null ? mBatteryOptimizeUtils /*testing only*/ : new BatteryOptimizeUtils(mContext, uid, packageName); batteryOptimizeUtils.setAppOptimizationMode(mode); batteryOptimizeUtils.setAppUsageState(mode); Log.d(TAG, String.format("restore:%s mode=%d", packageName, mode)); } Loading src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +31 −25 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.fuelgauge; import android.annotation.IntDef; import android.app.AppOpsManager; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import androidx.annotation.VisibleForTesting; Loading Loading @@ -89,36 +90,28 @@ public class BatteryOptimizeUtils { return getAppOptimizationMode(mMode, mAllowListed); } public void setAppOptimizationMode(@OptimizationMode int mode) { try { setAppUsageStateInternal(mode); } catch (Exception e) { Log.e(TAG, "setAppUsageState() is failed for " + mPackageName, e); } } /** Sets the {@link OptimizationMode} for associated app. */ public void setAppUsageStateInternal(@OptimizationMode int mode) { public void setAppUsageState(@OptimizationMode int mode) { if (getAppOptimizationMode(mMode, mAllowListed) == mode) { Log.w(TAG, "set the same optimization mode for: " + mPackageName); return; } AsyncTask.execute(() -> { switch (mode) { case MODE_RESTRICTED: mBatteryUtils.setForceAppStandby(mUid, mPackageName, AppOpsManager.MODE_IGNORED); mPowerAllowListBackend.removeApp(mPackageName); setAppOptimizationMode(AppOpsManager.MODE_IGNORED, /* allowListed */ false); break; case MODE_UNRESTRICTED: mBatteryUtils.setForceAppStandby(mUid, mPackageName, AppOpsManager.MODE_ALLOWED); mPowerAllowListBackend.addApp(mPackageName); setAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ true); break; case MODE_OPTIMIZED: mBatteryUtils.setForceAppStandby(mUid, mPackageName, AppOpsManager.MODE_ALLOWED); mPowerAllowListBackend.removeApp(mPackageName); setAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false); break; default: Log.d(TAG, "set unknown app optimization mode."); } }); } /** Loading @@ -142,6 +135,19 @@ public class BatteryOptimizeUtils { return mPackageName == null ? UNKNOWN_PACKAGE : mPackageName; } private void setAppOptimizationMode(int appStandbyMode, boolean allowListed) { try { mBatteryUtils.setForceAppStandby(mUid, mPackageName, appStandbyMode); if (allowListed) { mPowerAllowListBackend.addApp(mPackageName); } else { mPowerAllowListBackend.removeApp(mPackageName); } } catch (Exception e) { Log.e(TAG, "set OPTIMIZED failed for " + mPackageName, e); } } private void refreshState() { mPowerAllowListBackend.refreshList(); mAllowListed = mPowerAllowListBackend.isAllowlisted(mPackageName); Loading src/com/android/settings/fuelgauge/OptimizedPreferenceController.java +1 −7 Original line number Diff line number Diff line Loading @@ -73,12 +73,6 @@ public class OptimizedPreferenceController extends AbstractPreferenceController @Override public boolean handlePreferenceTreeClick(Preference preference) { if (!KEY_OPTIMIZED_PREF.equals(preference.getKey())) { return false; } mBatteryOptimizeUtils.setAppOptimizationMode(BatteryOptimizeUtils.MODE_OPTIMIZED); Log.d(TAG, "Set optimized"); return true; return getPreferenceKey().equals(preference.getKey()); } } src/com/android/settings/fuelgauge/RestrictedPreferenceController.java +1 −7 Original line number Diff line number Diff line Loading @@ -76,12 +76,6 @@ public class RestrictedPreferenceController extends AbstractPreferenceController @Override public boolean handlePreferenceTreeClick(Preference preference) { if (!KEY_RESTRICTED_PREF.equals(preference.getKey())) { return false; } mBatteryOptimizeUtils.setAppOptimizationMode(BatteryOptimizeUtils.MODE_RESTRICTED); Log.d(TAG, "Set restricted"); return true; return getPreferenceKey().equals(preference.getKey()); } } Loading
src/com/android/settings/fuelgauge/AdvancedPowerUsageDetail.java +21 −0 Original line number Diff line number Diff line Loading @@ -282,6 +282,15 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements } } @Override public void onPause() { super.onPause(); if (mEnableTriState) { Log.d(TAG, "Leave with mode: " + getSelectedPreference()); mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference()); } } @Override public void onDestroy() { super.onDestroy(); Loading Loading @@ -490,6 +499,18 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode(); } private int getSelectedPreference() { if (mRestrictedPreference.isChecked()) { return BatteryOptimizeUtils.MODE_RESTRICTED; } else if (mUnrestrictedPreference.isChecked()) { return BatteryOptimizeUtils.MODE_UNRESTRICTED; } else if (mOptimizePreference.isChecked()) { return BatteryOptimizeUtils.MODE_OPTIMIZED; } else { return BatteryOptimizeUtils.MODE_UNKNOWN; } } private CharSequence getAppActiveTime(Bundle bundle) { final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME); final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME); Loading
src/com/android/settings/fuelgauge/BatteryBackupHelper.java +2 −2 Original line number Diff line number Diff line Loading @@ -29,8 +29,8 @@ import android.content.pm.ParceledListSlice; import android.content.pm.UserInfo; import android.os.Build; import android.os.IDeviceIdleController; import android.os.RemoteException; import android.os.ParcelFileDescriptor; import android.os.RemoteException; import android.os.ServiceManager; import android.os.UserHandle; import android.os.UserManager; Loading Loading @@ -230,7 +230,7 @@ public final class BatteryBackupHelper implements BackupHelper { mBatteryOptimizeUtils != null ? mBatteryOptimizeUtils /*testing only*/ : new BatteryOptimizeUtils(mContext, uid, packageName); batteryOptimizeUtils.setAppOptimizationMode(mode); batteryOptimizeUtils.setAppUsageState(mode); Log.d(TAG, String.format("restore:%s mode=%d", packageName, mode)); } Loading
src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +31 −25 Original line number Diff line number Diff line Loading @@ -19,6 +19,7 @@ package com.android.settings.fuelgauge; import android.annotation.IntDef; import android.app.AppOpsManager; import android.content.Context; import android.os.AsyncTask; import android.util.Log; import androidx.annotation.VisibleForTesting; Loading Loading @@ -89,36 +90,28 @@ public class BatteryOptimizeUtils { return getAppOptimizationMode(mMode, mAllowListed); } public void setAppOptimizationMode(@OptimizationMode int mode) { try { setAppUsageStateInternal(mode); } catch (Exception e) { Log.e(TAG, "setAppUsageState() is failed for " + mPackageName, e); } } /** Sets the {@link OptimizationMode} for associated app. */ public void setAppUsageStateInternal(@OptimizationMode int mode) { public void setAppUsageState(@OptimizationMode int mode) { if (getAppOptimizationMode(mMode, mAllowListed) == mode) { Log.w(TAG, "set the same optimization mode for: " + mPackageName); return; } AsyncTask.execute(() -> { switch (mode) { case MODE_RESTRICTED: mBatteryUtils.setForceAppStandby(mUid, mPackageName, AppOpsManager.MODE_IGNORED); mPowerAllowListBackend.removeApp(mPackageName); setAppOptimizationMode(AppOpsManager.MODE_IGNORED, /* allowListed */ false); break; case MODE_UNRESTRICTED: mBatteryUtils.setForceAppStandby(mUid, mPackageName, AppOpsManager.MODE_ALLOWED); mPowerAllowListBackend.addApp(mPackageName); setAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ true); break; case MODE_OPTIMIZED: mBatteryUtils.setForceAppStandby(mUid, mPackageName, AppOpsManager.MODE_ALLOWED); mPowerAllowListBackend.removeApp(mPackageName); setAppOptimizationMode(AppOpsManager.MODE_ALLOWED, /* allowListed */ false); break; default: Log.d(TAG, "set unknown app optimization mode."); } }); } /** Loading @@ -142,6 +135,19 @@ public class BatteryOptimizeUtils { return mPackageName == null ? UNKNOWN_PACKAGE : mPackageName; } private void setAppOptimizationMode(int appStandbyMode, boolean allowListed) { try { mBatteryUtils.setForceAppStandby(mUid, mPackageName, appStandbyMode); if (allowListed) { mPowerAllowListBackend.addApp(mPackageName); } else { mPowerAllowListBackend.removeApp(mPackageName); } } catch (Exception e) { Log.e(TAG, "set OPTIMIZED failed for " + mPackageName, e); } } private void refreshState() { mPowerAllowListBackend.refreshList(); mAllowListed = mPowerAllowListBackend.isAllowlisted(mPackageName); Loading
src/com/android/settings/fuelgauge/OptimizedPreferenceController.java +1 −7 Original line number Diff line number Diff line Loading @@ -73,12 +73,6 @@ public class OptimizedPreferenceController extends AbstractPreferenceController @Override public boolean handlePreferenceTreeClick(Preference preference) { if (!KEY_OPTIMIZED_PREF.equals(preference.getKey())) { return false; } mBatteryOptimizeUtils.setAppOptimizationMode(BatteryOptimizeUtils.MODE_OPTIMIZED); Log.d(TAG, "Set optimized"); return true; return getPreferenceKey().equals(preference.getKey()); } }
src/com/android/settings/fuelgauge/RestrictedPreferenceController.java +1 −7 Original line number Diff line number Diff line Loading @@ -76,12 +76,6 @@ public class RestrictedPreferenceController extends AbstractPreferenceController @Override public boolean handlePreferenceTreeClick(Preference preference) { if (!KEY_RESTRICTED_PREF.equals(preference.getKey())) { return false; } mBatteryOptimizeUtils.setAppOptimizationMode(BatteryOptimizeUtils.MODE_RESTRICTED); Log.d(TAG, "Set restricted"); return true; return getPreferenceKey().equals(preference.getKey()); } }