Add a mechanism to add package name into the allowlist to avoid users
change the battery optimization modes for specific apps in the list
https://screenshot.googleplex.com/8hrHCcTh5bNYXqp
Bug: 281566984
Test: make test RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.*
Change-Id: I8efa6a55646d761f5bee3667a59b38ab68c74bc1
OP_SYSTEM_EXEMPT_FROM_POWER_RESTRICTIONS details:
* An app with this appop will be made exempt from all
power restrictions, including app standby and doze.
* In addition, the app will be able to start fgs from
the bg, and the user will not be able to stop fgs
run by the app.
Changes:
* Implement the OP_SYSTEM_EXEMPT_FROM_POWER_RESTRICTIONS
Bug: 246330879
Test: atest PowerAllowlistBackendTest
Manual testing:
- Give OP_SYSTEM_EXEMPT_FROM_POWER_RESTRICTIONS appop to TestDPC app
- Verify the app can start fg services from the bg
- Verify fgs started by the app cannot be stopped
- Verify the app cannot be put into background restricted via Settings
Change-Id: If9e76076c59195f1e6e5f3eee3c8e7a0c754d8de
This bug is due to the instance fields state is not refreshed after setAppUsageState(). When setting back to the original mode in the same page, getAppOptimizationMode(mMode, mAllowListed) still returns the original mode. So the setting back action is ignored.
Bug: 264582296
Fix: 264582296
Test: manual
Change-Id: I4da5dd7f1ca2660661f842a67b7d799aabd1ba05
- 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
- Impl optimize mode log mechanism to record optimize setup flow
- Log optimize action with MANUAL, APPLY, RESET and RESTORE
- Use proto file to serialize logs
sample result: https://screenshot.googleplex.com/5KPrHVGb4pMvS7V.png
Bug: 241735485
Test: make SettingsRoboTests
Change-Id: I879663de4cf45d0cfb9cd7eee957eeb65addfbe1
Fix the issue that Optimization Mode is not reset when users click the
"Reset apps" button in the setting.
Bug: 222037028
Test: make RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings.fuelgauge" + emulator
Change-Id: I22fb8aa19e284e11882b2920b77b544dee4cc33c
- Post the setup logic into background and setup once only when leaving
this page, this can improve the performance since we won't setup
every time when switching preference
Bug: 195306545
Bug: 199892006
Test: make SettingsRoboTests
Change-Id: I1c3ee4673cf5cdba0abe39f208dfb1412082c579
- Reverts commit e7cca4cd81
- Add try-catch to handle unexpected operate
Reason for revert: Previous fix will cause a side effect which makes app stuck at Optimize mode after switching state from Unrestricted to Optimize, add a try catch to handle previous issue first
BYPASS_INCLUSIVE_LANGUAGE_REASON=legacy naming, not edit by this code change
Bug: 199892006
Test: make SettingsRoboTests
Change-Id: I3b1850ab66bbf4cd605f14152a244a8ed7edd578
Merged-In: I3b1850ab66bbf4cd605f14152a244a8ed7edd578
- Check PowerSaveWhitelistExceptIdle list before update each apps
optimizaton mode to avoid duplicate remove action
- Make those apps which under PowerSaveWhitelistExceptIdle list keep at
optimized mode only
BYPASS_INCLUSIVE_LANGUAGE_REASON=legacy naming, not edit by this code change
Bug: 199892006
Test: make SettingsRoboTests
Change-Id: I3cd10cf51b5132fc12a83e9554801ec4e8578cd1
Merged-In: I3cd10cf51b5132fc12a83e9554801ec4e8578cd1
Add a checking condition to avoid setting the same optimization mode again to improve the performance, since setting the optimization mode is a heavy operation when binding with system service.
Bug: 192523697
Test: make SettingsRoboTests
Change-Id: I4065e3c56201c1c9285d9cebedf670bc0c42c614
Based on the Android API Council guideline, we should avoid using the
Enum structure to define the constant definition.
go/android-api-guidelines#avoid-enum
Bug: 197595292
Test: make SettingsRoboTests
Change-Id: I4b22f0abde7f4ce2c3a0b076db786e619783d93e
Merged-In: I4b22f0abde7f4ce2c3a0b076db786e619783d93e