Moving the old restricted page to the new optimization page will happen
in a follow-up CL.
Test: Unit, manual
Bug: 238026672
Change-Id: I5fee9ebe03284a013da6bfca9ada8b166c6af91c
(cherry picked from commit 5ecb1a1d69)
Merged-In: I5fee9ebe03284a013da6bfca9ada8b166c6af91c
Update the timestamp label into uppercase based on the different locale
and increase the vertical offset from UX review feedback
Test: presubmit
Change-Id: Ie5e86967e36773f1f8c4f628501514b1a7fd22f5
When the battery level chart is shown but app usage data is not ready,
the battery chart is still clickable, but the app list won't show. Once
the app usage data is ready, the app usage list of the latest selected
period will show. Please see the following screen record of forcing
loading app usage data very slow. In the real case, the app usage
loading is not that slow.
https://drive.google.com/file/d/196rlzwSa52xrQFRfF2gdHJJPZn-uecZF/view?usp=sharing&resourcekey=0-mGggQGG7IMd5-bSAG7l_LA
Bug: 243887839
Fix: 243887839
Test: manual
Change-Id: I170eb4afb46b1d0040b7971460b1b37dde5d1362
(cherry picked from commit adc36d085b)
Only calling this HAL API when BatteryDefenderTips card need to be shown
Bug: 243465597
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.*
Change-Id: Iae3c03d946ec29fe78a826ce62b6bebd893704ef
This cl is a merge of the following 5 cls:
ag/19674112 Fix b/242989581: The two battery charts have the same label
ag/19667114 Support data logging for battery usage new chart view
ag/19636171 Support data logging for battery usage new chart view
ag/19682758 Resolve insufficient contrast for system component icons
ag/19697763 Add fade in animation for battery usage chart group
Bug: 242989581
Bug: 242810430
Bug: 242989982
Test: presubmit
Change-Id: I39cd0f88ce62a280a966750082a40f8a537b9616
Merged-In: Ice30508bc20b5de631efee0db0160fe6ad710dbb
Bug: 235246949
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.*
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.widget.CardPreferenceTest
Test: manual test
Change-Id: I1dc4ab31adf85c684a4c09bd6c9bcfb54b52dc3c
This cl is a merge of the following 36 cls:
ag/19250259 Duplicate BatteryChartPreferenceController and BatteryChartView into new files for better diff review purpose
ag/19279660 Use Mockito 4.6.1 API for BatteryChartPreferenceControllerV2Test
ag/19267975 Add class BatteryLevelData used to parcel the battery timestamps and levels. It behaves as an interface between UI and data.
ag/19289086 Refactor BatteryChartView X-axis labels. Instead of only timestamps, also support any string[] labels.
ag/19238586 Add interpolation for the history data since last full charge loaded from database.
ag/19331746 Return raw history map in function getHistoryMapSinceLastFullCharge.
ag/19308838 In BatteryChartViewV2, use levels.length-1 to replace mTrapezoidCount. So the chartview could show any number of slots as the given levels length-1.
ag/19332266 Add class BatteryDiffData used to parcel battery usage data
ag/19331467 Refactor Battery Chart View State Controll
ag/19358207 Add DataProcessor to process raw history map for UI.
ag/19332276 Add battery chart view model.
ag/19394744 Update trapezoid validation in battery chart view.
ag/19379730 Support daily and hourly battery chartview.
ag/19428426 Improve X axis labels in battery chart (1)
ag/19446215 Improve X axis labels in battery chart (2)
ag/19394745 Add the async task to compute diff usage data and load labels and icons.
ag/19447624 Support showing app usage list for two battery charts
ag/19500907 Updates battery usage messages from last 24hr to last full charge. (Part1: V2 files)
ag/19505324 Update the selected period message in battery chart
ag/19500905 Updates battery usage messages from last 24hr to last full charge. (Part2: non-V2 files)
ag/19510363 Update usage data for EBS app usage list and App usage detail from 24 hours to last full charge.
ag/19523184 Update usage data for EBS app usage list and App usage detail from 24 hours to last full charge.
ag/19534864 Add margin between battery daily and hourly charts
ag/19491093 Always do interpolation for battery level data in daily chart.
ag/19565630 Avoid NullPointerException when batteryLevelData is null.
ag/19561239 Fix b/241872474 Battery usage page will crash when selecting the last hour chart bar, going to app detail page, and going back
ag/19565633 Fix b/241885070: Unexpected texts moving when going back to battery usage page
ag/19534850 New way to draw battery chart axis labels
ag/19561240 Switch Battery Usage Chart from V1 to V2.
ag/19561338 Switch Battery Usage Chart from V1 to V2.
ag/19600174 Fix b/242254055 Battery usage initial screen improvements (long data loading time)
ag/19600284 Fix b/242252080: Add padding space on the top of the battery chart
ag/19647338 Consider usage map valid even if [all][all] is null.
ag/19634227 Use new content uri everytime to avoid cache
ag/19600177 Fix b/242009481: Refine the battery usage chart timestamp label rule
ag/19647337 Fix b/242809981 Charge battery to 100% when battery usage page opened, the chart will refresh, but the app list isn't refreshed in that case.
Test: manual
Bug: 239491373
Bug: 236101166
Bug: 236101687
Fix: 236101166
Change-Id: I7de8d9dcee14627da10752534991f1ec9f616020
Merged-In: I9142c0d4e00dea3771777ba9aedeab07b635fa1a
When there are multiple accounts in the devices, the battery usage list
is shared in the current design. We will aggregate other users usage
data into a single item to support multi-user privacy requirements
Screenshot: https://screenshot.googleplex.com/AkFTUtNvnoxcuGR
Bug: 202119550
Test: make RunSettingsRoboTests
Change-Id: I6cb55f0d50a4caca83212a0a54410530a032c089
getBatteryHistory in BatteryHistoryLoader.
getBatteryHistory couldn't be changed directly as it needs to be kept
for other features.
Bug: 236101687
Test: make RunSettingsRoboTests
Change-Id: I3e3cdd3a0225228bf76f6750f6a56f031666720f
Merged-In: I3e3cdd3a0225228bf76f6750f6a56f031666720f
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
Replace FooterPreference#SetLearnMoreContentDescription() with
FooterPreference#SetLearnMoreText().
This is a requirement: All links, controls, and buttons should
also have comprehensible text or tooltip text, so users can identify its
purpose, independent of context, such as when using the URL list from
TalkBack’s local context menu.
Bug: 215045903
Test: manual & robotest
Change-Id: Ib657ba336c5688c1434a58611dea3891001afe14
Hide the running time information for "Android System" entry, since this
entry will combine multiple system components together. It will provide
incorrect running time information. The getRealUid() method maps many
UIDs to Process.SYSTEM_UID(1000), which results in combining all of
those UIDs into one "Android System" entry. This is the expected behavior.
Bug: 220717612
Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER="com.android.settings.fuelgauge"
Change-Id: I9d44fe8490ad5c684419b8ebf8d7d5576a42788a
Force use the system package for the SYSTEM_UID, since the SYSTEM_UID is
used for multiple packages. The getPackageWithHighestDrain() method may
get different packages to represent it, since it will use the highest
battery drain to represent the SYSTEM_UID if there are multiple packages
use the same UID value to make users confuse about the usage data.
_
$ adb shell pm list packages --uid 1000
package:android uid:1000
package:com.android.dynsystem uid:1000
package:com.android.frameworks.core.batterystatsviewer uid:1000
package:com.android.inputdevices uid:1000
package:com.android.keychain uid:1000
package:com.android.localtransport uid:1000
package:com.android.location.fused uid:1000
package:com.android.providers.settings uid:1000
package:com.android.server.telecom uid:1000
package:com.android.settings uid:1000
package:com.android.wallpaperbackup uid:1000
Bug: 202682426
Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER="com.android.settings.fuelgauge"
Change-Id: I447bfa1b32037763a2194c0639abcc334c7d8b78
There is a special UID for network data tethering usage, we will handle
it in a special case to avoid the current rule considering it as an
invalid UID case without showing in the usage list. We will disable the
click behavior to protect the optimization mode page first.
Bug: 227395125
Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER="com.android.settings.fuelgauge"
Change-Id: I8d96473d382ebc3253748cce8345d6f2261a233d
Add a mechanism to customize whether the summary information in the
battery entry should be set or not. We can consider is as the extension
for the ag/18062824.
Bug: 220717612
Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER="com.android.settings.fuelgauge"
Change-Id: I3c21148d288f29ce65378f59f9086dab90c14a7b
Hide the running time information for "Android System" entry, since this
entry will combine multiple system components together. It will provide
incorrect running time information. The getRealUid() method maps many
UIDs to Process.SYSTEM_UID(1000), which results in combining all of
those UIDs into one "Android System" entry. This is the expected behavior.
Bug: 220717612
Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER="com.android.settings.fuelgauge"
Change-Id: I0aece0f1e86c36e55a2b5a966b4da9fdea14c748
Refine invoke batteryUsageStats.close() timing to 1) avoid closing it before the UI is ready to ignore showing the battery usage app list data for AOSP version, and 2) avoid close the BatteryUsageStats which is passed from caller components in the BatteryInfo with unexpected behavior.
Bug: 220717612
Test: make RunSettingsRoboTests -j56 ROBOTEST_FILTER="com.android.settings.fuelgauge"
Change-Id: I0f75580ac68d72b41fa9a7f43aa6ea694f0992ff
Keep the queried name is null to use the custom provided battery attribution name (avoid to replace it with POWER_COMPONENT_ prefix name), such that we can show "TPU", "GPU" ... attribution.
old screenshot: https://screenshot.googleplex.com/8KGNxW2eHFY85zw
new screenshot: https://screenshot.googleplex.com/8KVj3jBjShfa8wK
Bug: 227749579
Test: make RunSettingsRoboTests
Change-Id: I22fba3c252a92f7d64670ad5d0f6f3548374968a
- Add low battery warning ack check to onSwitchChanged(), reset the
switch to off once it's 1st time launch, the switch should be enable
by battery saver change event at 1st instead of enable directly, will
not check this state anymore after 1st launch
Bug: 227725656
Test: make RunSettingsRoboTests
Change-Id: I79f502f567fae5dd10166d8b24fd50d59c261001
Verify the target app "REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" permission first before querying installed apps information to avoid the exposed the installed apps information and improve the performance by applying the early return flow.
Bug: 227753723
Test: make RunSettingsRoboTests
Change-Id: Ib5826b8082f4bf14f93d5ff4d2d332dc395bf9a8
- Udpate the min value to 10%, also change related preference summary
and seekbar value
- Make battery saver main page's switch support first time trigger
warning
Bug: 207470943
Test: make RunSettingsRoboTests
Change-Id: I120b9a6784ed90eacccb09bb11f079f12679e95c
We set selectable as false in the footer preference library now,
so developers don't need to customize it.
Test: Same behavior on battery saver page.
Bug: 216516546
Change-Id: I188054ef2b317e6df1f54dc89d5c57c644e20ad7
Add a config to control different design concept in the chart 1) put all apps with system UID and system components (e.g. bluetooth, display, wifi ... etc) into the system bucket or 2) separate them into two different bucket (app & system bucket) in the chart UI for better experimental testing
Bug: 202118250
Test: make RunSettingsRoboTests
Change-Id: Id6f7c07d96ad8a365e7405160a5248c57a5a008d
Use Battery Saver slice.
There is no title for preference in xml, so the preference cannot
be indexed.
Fix: 172276695
Test: manual test and see the UI
Change-Id: Ieb7836805e66515629064800e4119ca17b5ac2e0
Only show the buckets an app is allowed to be put in. With more and more
exceptions, it'll be good to make it clear to developers who are testing
what buckets they can put their app in using the developer options UI.
Bug: 156509848
Test: manual
Change-Id: Iebc6b706f274a4dd4be7e1c5c42a4b3b05b39777