Commit Graph

1713 Commits

Author SHA1 Message Date
Tiffany Nguyen
032649b4f8 Move restricted apps page to new battery optimization page.
New entry: https://screenshot.googleplex.com/BbU6RnQhBbpnBc3.png
Restricted: https://screenshot.googleplex.com/5ggid7TcSsH9CUF.png
Old entry: https://screenshot.googleplex.com/7JgZpSfKs5zZb3Z.png

Bug: 240711616
Test: manual
Change-Id: I03d17beac0fb85a3d17acd7d0d581feb35e9582b
(cherry picked from commit 3acd34fe4a)
Merged-In: I03d17beac0fb85a3d17acd7d0d581feb35e9582b
2022-09-04 15:48:46 +00:00
Tiffany Nguyen
6147e0fa5c Add Apps > Battery optimization page implementation.
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
2022-09-04 15:44:18 +00:00
YK Hung
8bf872331b Merge "Update defend tips card" into tm-qpr-dev 2022-09-02 15:18:50 +00:00
Wesley
243b450428 Update defend tips card
- Update defend tips card to unclickable
 - Update secondary button's action and content description
 screenshot: https://screenshot.googleplex.com/BYU8Mh5abJ9Tirh.png

Bug: 243769797
Bug: 243641857
Bug: 244219076
Test: make SettingsRoboTests
Change-Id: I7fdf5f7404d33f0374a992c83a7653a01b9f11bc
2022-09-01 04:09:31 +00:00
ykhung
352e3a091d Update the timestamp label into uppercase and increase vertical offset
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
2022-08-31 11:03:26 +08:00
TreeHugger Robot
baa3f3a3c6 Merge "Support showing battery level chart first immediately after the battery level data is ready." into tm-qpr-dev 2022-08-30 06:22:53 +00:00
Zaiyue Xue
bae18f1386 For battery chart 7-bar case, remove the center two labels according to UX designer's suggestion.
latest screenshots: https://drive.google.com/drive/folders/1V2UoBO2tOVydVxT5Yd5ASruuzizy-s7F?resourcekey=0-z2UInYUQ3mLGG80hedO78A&usp=sharing

Test: manual
Bug: 242009481
Change-Id: I3f717add0bcce1d3697c9ff6e91032e3817e6304
(cherry picked from commit 53b816c7be)
2022-08-29 05:42:33 +00:00
Zaiyue Xue
457aaffa50 Support showing battery level chart first immediately after the battery level data is ready.
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)
2022-08-29 05:42:12 +00:00
TreeHugger Robot
6b5dc07b95 Merge "Fix b/243746796 Crash when mouse hangs over an empty battery chart" into tm-qpr-dev 2022-08-26 05:36:37 +00:00
Zaiyue Xue
fb3ebf8dc7 Fix b/243746796 Crash when mouse hangs over an empty battery chart
Bug: 243746796
Fix: 243746796
Test: manual
Change-Id: I3e595c96a55f1114b50ed5ed8e49e962cc90cbde
Merged-In: I3e595c96a55f1114b50ed5ed8e49e962cc90cbde
2022-08-26 12:32:05 +08:00
Zaiyue Xue
87db35205a Fix b/243485315: NullPointerException when getAppBatteryUsageData().
Bug: 243485315
Fix: 243485315
Test: presubmit
Change-Id: I8bb2db7976f6c8817e9ab45fe3a40456afcd8128
2022-08-25 13:36:44 +00:00
Wesley Wang
a0c76c92a1 Merge "Update extra defend layout string" into tm-qpr-dev 2022-08-24 05:11:03 +00:00
YK Hung
821c5702cd Merge "Reduce the calling times for isExtraDefend" into tm-qpr-dev 2022-08-24 05:08:48 +00:00
Pajace Chen
b00140b7a3 Reduce the calling times for isExtraDefend
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
2022-08-23 20:15:50 +08:00
Zaiyue Xue
2a57f5de8d Port battery usage bug fixing cls from master to tm-qpr-dev
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
2022-08-23 19:30:49 +08:00
wesleycwwang
27cbd5bccd Update extra defend layout string
Bug: 235246949
Test: make RunSettingsRoboTests
Change-Id: I3a3afe2e47d90882bdc4e4180ea5c6b079efd828
2022-08-22 18:51:45 +08:00
YK Hung
aa3262857c Merge "Implements the buttons layout for the extra defend" into tm-qpr-dev 2022-08-19 02:43:57 +00:00
Pajace Chen
f3496399dd Implements the buttons layout for the extra defend
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
2022-08-18 10:16:05 +00:00
Kuan Wang
4db5c6ba57 Port new version battery usage chart implementation from master to tm-qpr-dev.
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
2022-08-18 10:53:41 +08:00
TreeHugger Robot
51d087cd67 Merge "Add function getBatteryHistorySinceLastFullCharge, used to replace getBatteryHistory in BatteryHistoryLoader." into tm-qpr-dev 2022-07-12 16:47:13 +00:00
ykhung
764d513d00 Support multi-user privacy for battery usage chart
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
2022-07-12 00:17:43 +08:00
Kuan Wang
e39ecafa1f Add function getBatteryHistorySinceLastFullCharge, used to replace
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
2022-07-11 09:10:08 +00:00
xuezaiyue
ac7318419a Move battery usage files to a separate folder.
Bug: 202118250
Test: presubmit
Change-Id: I21aa58ebc02327849ed2161dbbafcdc806c007f2
2022-06-19 05:59:35 +00:00
Edgar Wang
42704ba27c Merge "Update learn more string of FooterPrefernce" into tm-dev am: 24654a3d61 am: 4d371adf7f
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/18356903

Change-Id: I70547c9094cdd200f1fa2a77272affbcbe308a34
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-20 23:52:43 +00:00
Kuan Wang
4028e6123c Reset Optimization Mode of apps when users reset app settings.
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
2022-05-16 05:01:20 +00:00
Edgar Wang
68d12953e7 Update learn more string of FooterPrefernce
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
2022-05-13 08:13:36 +00:00
ykhung
7015cd0dd9 Hide running time for "Android System" in the optimization page
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
2022-05-10 18:47:44 +08:00
ykhung
c880114dba Use system package name for SYSTEM_UID in the BatteryEntry
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
2022-05-08 23:42:38 +08:00
ykhung
be10538a09 Support special tethering and removed apps UID in the usage list
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
2022-05-05 16:17:41 +08:00
ykhung
3d1b6fd065 Add a mechanism to configure whether the summary should be set or not
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
2022-05-04 11:42:26 +08:00
ykhung
1c3cb4505c Hide running time information for "Android System" entry
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
2022-04-29 02:40:07 +00:00
ykhung
c12b9500e6 Refine the BatteryUsageStats close() method invoke timing
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
2022-04-28 17:16:04 +00:00
ykhung
0f8ee91e1e Remove the legacy getReplacingActivity() method from feature provider
Bug: 195306545
Test: make RunSettingsRoboTests
Change-Id: Ie7ae30ad671ec2ee2659e64ee4f191728edab4e8
2022-04-18 05:59:58 +00:00
ykhung
91adbd3b16 Use en-dash in the time range instead of a hyphen for different format
Expected format: 00:00–02:00 or (2pm – 4pm)

Screenshots:
https://screenshot.googleplex.com/4RvaovK6RN7kjqo
https://screenshot.googleplex.com/ADZRr2TPuuctFre

Bug: 229264053
Test: make RunSettingsRoboTests
Change-Id: Ifd9bea0ce4525c8b582778e255104e875d365563
2022-04-17 06:52:24 +00:00
ykhung
b593e00af0 Format BatteryEntry and BatteryDiffEntry class
Bug: N/A
Test: make RunSettingsRoboTests
Change-Id: I14e2ef4c455209e58edc5ccdbe064f469815cccd
2022-04-17 06:23:47 +00:00
ykhung
1c6695951f Use the custom name in the battery attribution if it is unknown item
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
2022-04-15 11:20:46 +00:00
YK Hung
3a08246bd9 Merge "Pass the activtiy launch flags into the AdvancedPowerUsageDetail" into tm-dev 2022-04-14 14:12:33 +00:00
ykhung
39972db17d Pass the activtiy launch flags into the AdvancedPowerUsageDetail
Bug: 227978302
Test: manual
Change-Id: I036bc90eb91fd59137b51817665378f218bbad1a
2022-04-14 19:57:14 +08:00
TreeHugger Robot
55aba46fe9 Merge "Unchecked battery saver switch once it's 1st launch" into tm-dev 2022-04-13 11:15:46 +00:00
Wesley Wang
d2ce1d9194 Unchecked battery saver switch once it's 1st launch
- 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
2022-04-13 17:06:52 +08:00
ykhung
42d5979f69 [Security] Verify the permission first before querying installed apps
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
2022-04-13 03:27:06 +00:00
ykhung
c5b8287f1e Replace HashSet with memory efficient ArraySet collection
https://developer.android.com/reference/android/util/ArraySet

Bug: 195306545
Test: N/A
Change-Id: I3f5831f2c5b5ec5ca50d312331c42eb90def2c61
2022-04-11 17:12:21 +00:00
Wesley Wang
878dae3db0 Merge "Update battery saver schedule min trigger value" into tm-dev 2022-03-22 06:51:52 +00:00
Wesley Wang
b26d99ac77 Update battery saver schedule min trigger value
- 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
2022-03-21 16:13:34 +08:00
Tsung-Mao Fang
17ef335938 Clean up footer preference on battery saver page.
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
2022-03-18 11:07:46 +00:00
ykhung
273d3445ee Update the categorize rule for system and app item bucket
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
2022-03-15 08:31:21 +00:00
ykhung
93a4ef67c4 Export battery usage data for EBS essential list filter mechanism
Bug: 207471193
Test: make RunSettingsRoboTests
Change-Id: I0003bbfce7428e92a2a0e144903d72fc51804dbb
2022-03-14 17:34:50 +08:00
ykhung
ffba705f8d Provide getBatteryLast24HrUsageData() method for application info
Bug: 178197718
Test: make SettingsRoboTests
Change-Id: Iaa5f0c1bdead1a5380129f63987bbae3b4461633
2022-03-14 13:35:15 +08:00
Stanley Wang
21564efa8b Fix the problem that voice search can not find the
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
2022-03-08 08:51:58 +00:00
Kweku Adams
2a1f0b7418 Indicate min allowed bucket.
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
2022-02-28 20:45:38 +00:00