Commit Graph

42 Commits

Author SHA1 Message Date
ykhung
e322f02b18 Remove legacy MIN_POWER_THRESHOLD_MILLI_AMP_HOURS threshold value
in the new design, we should store all data into the databae for showing
the battery history, we should not filter the items first from the
consumed battery value threshold

Bug: 191468827
Test: make SettingsRoboTests
Change-Id: I19d971fc5cdcc40af1693dc8ba2c78586da22d49
2021-06-21 16:43:18 +08:00
Wesley.CW Wang
e1b1f67681 Make App info page support new battery entry
- Add new battery entry to app info battery preference, support both
 legacy and new args, controlled by P/H
 - Add a method to check is work profile app or not, use owner context to
 query correct context for feature provider
 - Add string for new args

Bug: 178197718
Test: make RunSettingsRoboTests
Change-Id: Ic93142a0c5e2851917cb3e224340a6e3e81fd801
2021-06-11 04:41:12 +08:00
Dmitri Plotnikov
1afe9c0ddc Fix missing time-in-foreground and time-in-background for some apps
The gist of the issue is that many apps have two UIDs associated
with them: a regular, "real" UID, e.g. 10123, and a shared group GID,
e.g. 50123, which is used for multiuser support.

Prior to this fix, the code in BatteryAppListPreferenceController,
would go over the list of all UidBatteryConsumers and would randomly
encounter either the "real" UID or the shared GID for each app first.
The UidBatteryConsumer for a shared GID does not have all of the
properties of the real UID, so some information, such as
time-in-foreground and time-in-background would be lost with
a high probability.

After this fix, we process "real" UIDs before shared GIDs ensuring
that time-in-* and other properties such as package names are obtained
for the real UID.  When we later encounter a shared GID for the same app,
we just add the consumed power and time-in-* durations to the real UID's
BatteryEntry.

Bug: 188656360
Test: make RunSettingsRoboTests
Test: make RunSettingsGoogleRoboTests
Change-Id: I4bfea813ac5eb8f866804b2c4a9153eb877fb325
2021-06-10 05:58:15 +00:00
ykhung
5b27fd923a Fix UI flashes issue when entering to the app in the cold start
1. fix the chart % info will flash issue by deferring the showing time
until the chart content is ready to show (set default as invisible)
2. fix the category title will flash issue by set the default value as
empty to avoid refresh the title twice in the start time

Bug: 177406865
Test: make SettingsRoboTests
Change-Id: If8f247cf5b01c529bc5e4d18fcf409ba296cc2f4
2021-05-09 01:56:09 +00:00
Dmitri Plotnikov
6417493b29 Replace uses of SystemBatteryConsumer with aggregate BatteryConsumers
Bug: 186006876
Test: make RunSettingsRoboTests
Test: make RunSettingsGoogleRoboTests
Change-Id: I2e240aa15c87b4b9dcbe993b4b0b1111285ec3ff
2021-05-03 11:01:36 -07:00
Dmitri Plotnikov
a485d8dfd5 Replace TIME_COMPONENT_... constants with POWER_COMPONENT_ constants
Bug: 186006876
Test: make RunSettingsRoboTests
Change-Id: I873fa5a492dfcddbb65004c30764d1bf8911f78f
2021-04-23 14:27:37 -07:00
Dmitri Plotnikov
3ac49f0a9b Merge "Remove references to POWER_COMPONENT_USAGE and TIME_COMPONENT_USAGE" into sc-dev 2021-04-14 17:50:25 +00:00
ykhung
a711199d8c Avoid load icon and label in the background for periodic job
In the original design, BatteyEntry will load icon and label in the
background thread and cache them into memory, but we don't need such
information in the periodic fetching job. Add a method to disable it to
improve the performance and memory footprint.

Bug: 185207505
Test: make SettingsRoboTests
Test: make SettingsGoogleRoboTests
Change-Id: Iba759256e94159fce243ff4d700a8adf9e92f82c
2021-04-14 09:05:34 +00:00
Dmitri Plotnikov
26db6e5f8e Merge "Adjust for changing BatteryUsageStats constructor" into sc-dev 2021-04-13 23:44:29 +00:00
Dmitri Plotnikov
470839a3b7 Remove references to POWER_COMPONENT_USAGE and TIME_COMPONENT_USAGE
Bug: 184397335
Test: enable fake data, rebuild and restart Settings/Battery
Change-Id: I1a5825a0e324c7884fc900e7cea9f38a9153253c
2021-04-13 15:39:26 -07:00
Dmitri Plotnikov
f2f2fd52a2 Adjust for changing BatteryUsageStats constructor
Bug: 184207674
Test: make RunSettingsRoboTests
Change-Id: I9f2ec8ff6764100022b0580f4a7d4281062d8755
2021-04-12 11:24:05 -07:00
Wesley.CW Wang
50f314e45d Update StringUtil#formatElapsedTime method (2/3)
- Update the usage and the test case
 - Update discharging string to follow new string doc

Bug: 183689347
Test: make RunSettingsRoboTests
Change-Id: I1e14e7da8cb02755d8cf6e12626a0d94fad87121
2021-04-07 10:19:10 +00:00
ykhung
b4b302f936 Export methods from BatteryEntry and controller for battery usage
Export a method to fetch BatteryEntry for battery usage new design, and
we have to fetch the label name each time when the new UI is shown to
avoid locale is changed from database records.

Bug: 180607705
Test: make RunSettingsRoboTests
Test: make RunSettingsGoogleRoboTests
Change-Id: Iae8f0b4812beb760b690e622f707fb67388221a2
2021-03-24 07:55:08 +00:00
Dmitri Plotnikov
036dc189b6 Transition BatteryAppListPreferences to BatteryUsageStats API
Bug: 173745486
Test: make RunSettingsRoboTests
Test: male RunSettingsGoogleRoboTests

Change-Id: I7af8cbcd27433b89cb2184750c6854aa74761d0d
2021-03-17 13:23:25 -07:00
Dmitri Plotnikov
f941a684e1 Remove smearing of hidden BatterySipper power
Bug: 182598424
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.applications.appinfo.AppBatteryPreferenceControllerTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.BatteryUtilsTest

Change-Id: I78b8d7c4faafa83de198005617e99a7f54bcd174
2021-03-17 17:01:39 +00:00
Dmitri Plotnikov
656c67c01d Encapsulate BatterySipper and BatteryConsumer in BatteryEntry
Bug: 173745486
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.BatteryEntryTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.AdvancedPowerUsageDetailTest

Change-Id: I67ab825c25b85012b5713736db62e0beb4d98a16
2021-03-13 12:51:47 -08:00
Dmitri Plotnikov
97b3325ece Begin transition from BatteryStatsHelper to BatteryUsageStats API.
For now, keep both BatteryStatsHelper and BatteryUsageStats in play.
The plan is to transition from the former to the latter, one usage
at a time.  When all is said and done, all references to
BatteryStatsHelper will be gone.

Bug: 173745486
Test: atest --host SettingsRoboTests

Change-Id: I37e1dfff0043b1845992f18d72067bb547bb69ff
2021-02-18 11:56:00 -08:00
Edgar Wang
a8742aa7ab Update language to comply with Android's inclusive language guidance
See https://source.android.com/setup/contribute/respectful-code for reference

Bug: 161896447
Test: robotest & manual
Change-Id: Ia8625091a107fc3fb652d3ba3f75ea3cc1a8d9f5
2020-08-12 11:29:07 +08:00
Tsung-Mao Fang
cb8dbbeac2 Hide summary for Google app in battery usage
"Google" app is quicksearchbox which always has a foreground service running.
This causes it shows a huge usage time.
So, we make the summary invisible now.

Test: Rebuild and visual
Change-Id: Iba8083cc058e1d391dc20610fb6eb140c2c25350
Fix: 144063003
2019-12-10 14:20:29 +08:00
Raff Tsai
1ade809ff9 Filter invalid uid from Battery list
- Normally uid is start from 0. That was a bug in framework during
some time period, and was not reproduced later. We just remove this
kind of invalid item from UI.

Fixes: 141404334
Test: manual
Change-Id: I964a8b8af18ac6a5d8d2dea89722ea466e27e6ad
2019-11-08 08:30:38 +00:00
Lei Yu
c89ba29e92 Fix issues in battery usage accounting
1. In High usage dialog, show top apps based on battery usage, not app
time.
2. Refactor the check for hidden system modules into ShouldHideSipper,
however don't smear it, this is also the current logic before this CL.

Bug: 133445008
Test: RunSettingsRoboTests
Change-Id: I851a1c9ef9b79a934ba0501cd96001f2e450bda4
2019-05-29 13:57:04 -07:00
Fan Zhang
7db118e367 Mass clean up: don't cast class when not needed.
Bug: none
Test: rebuild
Change-Id: Ie3f58a3d5ae99ade28a33dcac80c18de90d4d5b2
2019-02-14 12:26:09 -08:00
Doris Ling
538accf058 Hide mainline module apps in settings.
- check whether an app is system hidden module and do not show them in
recent apps list and battery usage list.

Bug: 120546598
Test: make RunSettingsRoboTests
Change-Id: I9080c9d39095890f3a3ebc7fce839dcf984a92d6
2019-01-14 17:53:32 -08:00
Lei Yu
32cbfe9cf2 Merge "Increase battery app list maximum size to 20" 2018-11-07 00:54:22 +00:00
Fan Zhang
23f8d59d02 Sort imports
Having consistent import order will reduce chance of merge
conflict between internal and external master

Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
2018-08-28 22:13:15 +00:00
jackqdyulei
5d33270094 Increase battery app list maximum size to 20
In P, we only show 10 app that used most battery, in some case it may
make battery percentage counting inaccurate. Increase the size to
mitigate this issue.

Bug: 112406521
Test: Build
Change-Id: I5a4ddc90d5f33af5fe66bc1129ae3ed6f8fc3fcd
2018-08-09 12:41:29 -07:00
jackqdyulei
dd9b8af6b9 Remove the anomaly detection added in O-DR
1. Remove unused class and resources
2. Update function in AdvancedPowerUsageDetail since
we don't need pass in anomaly anymore

Change-Id: I96fbe5ddaae902b34b756c7aae0338e49afef1f3
Bug: 74529048
Test: 1. manual test in settings page. 2. robo test still pass
2018-07-17 12:42:43 -07:00
Fan Zhang
c7162cd24d Reorder and clean up imports.
Test: rebuild
Change-Id: I178485c84ae7146f991fd77b6d7504b029942a68
2018-06-18 15:45:09 -07:00
Lei Yu
c6b50f1d77 Merge "Update strings in battery settings." into pi-dev am: faa5c2281e
am: 37a0f5cf7d

Change-Id: I55da31048dd2804198272f8016e135860a5433ee
2018-05-10 16:54:00 -07:00
Lei Yu
bc54cedabd Update strings in battery settings.
1. Message in high usage dialog
2. Title in app usage list

Change-Id: Iac610483e10e8d2a93a18ca664aec17d9561aaf8
Fixes: 78638843
Test: RunSettingsRoboTests
2018-05-10 11:31:29 -07:00
Aurimas Liutikas
e0069d332d Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
2018-04-20 12:52:29 -07:00
Yvonne Yang
7ac7d7b660 Make the preference not selectable
"Battery usage data isn't available" should not respond to taps

Bug: 69312966
Test: Manual test
Change-Id: Id450c5a6089a4fb78a5c48a0f460992dc89f49ec
2018-03-20 08:41:46 +00:00
jackqdyulei
094278e636 Hook up the new page to PowerUsageSummary
Add a menu to point to the new page

Bug: 73300636
Test: RunSettingsRoboTests
Change-Id: I9956e349cdbbe2cd752bdf65020a540a329bdee3
Merged-In: I9956e349cdbbe2cd752bdf65020a540a329bdee3
2018-03-06 17:20:06 -08:00
jackqdyulei
31a5960424 Create new PowerUsageAdvanced page
This page contains the graph at the top and app list at the bottom

In this cl, we reused some part of the code in PowerUsageAdvancedLegacy
to construct the graph, and also used controller to construct the app
list(So glad that we extracted it to controller before..)

Bug: 73300636
Test: RunSettingsRoboTests
Change-Id: I30afbc0327a5186f8280f5e3678330b363e2dc0d
Merged-In: I30afbc0327a5186f8280f5e3678330b363e2dc0d
2018-03-06 16:10:30 -08:00
Fan Zhang
be45f9c865 Migrate more settings to SubSettingsLauncher
Bug: 73250851
Test: robotests
Change-Id: I4100bef20e2ed477e4e31c9b7816f1b03f3f2809
2018-02-19 13:36:57 -08:00
jackqdyulei
88c86f73bb Don't use debug data in app list controller
This is a bug, USE_FAKE_DATA should never be true in build

Change-Id: I14059cd243380c754ca0cff09f088d62828ec755
Fixes: 73117246
Test: Build
2018-02-08 10:25:24 -08:00
Salvador Martinez
408dc41228 Update copy for battery estimate related features
Many features are using the enhanced estimates but the copy for them
has gotten out of sync. This CL moves shared strings between Settings
and SysUI to SettingsLib and also updates features that use the
strings to have consistent behavior/text.

Test: Robotests
Bug: 65656091
Bug: 66909350
Bug: 67469159
Change-Id: Ie5ef1ed65429ca9805cff374f1439e5d61eb6591
2018-02-07 10:55:15 -08:00
Leif Hendrik Wilden
28dee1f086 Migrate to use instrumentation classes from settingslib.
Test: Compiles. Manually tested.
Change-Id: I70a6e76cc8440547746ecc008c32bd06a7de8161
2018-01-24 12:30:39 -08:00
Leif Wilden
cab0ee611d Revert "Migrate to use instrumentation classes from settingslib."
This reverts commit 1546cca529.

Reason for revert: Broke fingerprint setup flow. b/72267201

Change-Id: I8321265ae64732c526325882ddea51080decddf5
2018-01-22 20:57:36 +00:00
Leif Hendrik Wilden
1546cca529 Migrate to use instrumentation classes from settingslib.
Test: Compiles. Manually tested.
Change-Id: Ie5515bb0fe3e621fc7723a9b04ba23e4bfa9c401
2018-01-18 11:13:24 -08:00
jackqdyulei
8f73968308 Add feature flag to control battery app list.
If feature flag is on, then display the app list. Otherwise disable
it.

Bug: 70234293
Test: RunSettingsRoboTests
Change-Id: I1663f925abf95e0e4c1a46d98ca165303a76e979
2017-12-08 13:02:13 -08:00
jackqdyulei
1240549591 Move AppListGroup to PreferenceController
Move the app list in battery settings to PreferenceController. So that
we can:
1. Clean the code in PowerUsageSummary
2. Make it easy to add/move the app list to other place in furture.

This cl:
1. Move and make it invisible since in P we don't show app list in
battery main page.
2. Move related test to BatteryAppListPreferenceControllerTest

Bug: 70234293
Test: RunSettingsRoboTests
Change-Id: Ice7a42394916ff5e71305bfe22f5c35868d87fc7
2017-12-08 10:21:54 -08:00