Root cause: RequestIgnoreBatteryOptimizations adds package in PowerWhitelistManager#addToWhitelist for intent Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS. Settings UI uses PowerAllowlistBackend to check if an APP is in power allow list. Each UI component should PowerAllowlistBackend#refreshList() or UI will get a stale result. Solution: This change fixes below display problems by refreshing allow list from DeviceIdleController service. 1. Battery optimization summary in Battery usage details. 2. Battery optimization list. BYPASS_INCLUSIVE_LANGUAGE_REASON=I need the object name to describe the root cause. Bug: 171064162 Test: make RunSettingsRoboTests ROBOTEST_FILTER=BatteryOptimizationPreferenceControllerTest manual Switch battery optimazion of a APP and observer the UI display. Change-Id: I75b269eec5d1b904dcaa71948798f169d4e4ddfa
Running Settings Robolectric tests
The full suite
$ croot
$ make RunSettingsRoboTests
Running a single test class
$ croot
$ make RunSettingsRoboTests ROBOTEST_FILTER=<ClassName>
For example:
make RunSettingsRoboTests ROBOTEST_FILTER=CodeInspectionTest
You can also use partial class name in ROBOTEST_FILTER. If the partial class name matches multiple file names, all of them will be executed.