- App usage page only use package name to launch the page, it can not
identify the different userId between normal app and work profile
app, add extra userId info into launch args
- Remove no battery usage state/string if usage time is empty
Bug: 251471047
Test: make SettingsRoboTests
Change-Id: Id06ebb0f0fcd863e423acd7839f89bc0ae2444c1
Merged-In: Id06ebb0f0fcd863e423acd7839f89bc0ae2444c1
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
Prior to this cl, we allow user to tap on those
setting items which belong to another user profile app.
However, we already observed some functional broken cases now.
Such as, device can't get the storage data/screen time/mobile data
battery, notification for those apps from another user profile.
Therefore, we decide to grey out those setting items,
and we don't allow user to tap on unsupported setting items.
Test: Download apk in different user profile, and see setting items
is disabled/enabled correctly. and run robo test.
Fix: 230303570
Change-Id: I1bb6b1d8b52f6a00088b2f0e4279b896d568f8a6
- Use user id and package name to query the battery entry list instead of uid, to handle the
cases which enter app info page without uid like launch icon -> app
info
Bug: 178197718
Test: make SettingsRoboTests
Change-Id: I665e57ff3eabf23485455fb2e1af2e0376af1e40
- Add condiction CONSUMER_TYPE_UID_BATTERY to avoid query system app data
- Add default value for uid when entering AppInfo page
Bug: 191734051
Test: make SettingsRoboTests
Change-Id: I377e0d6aaa386dd5983eb71be1248f9859728cb9
- 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
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
- Insert uid as launch variable
- Add new launch type into AppInfo page
Bug: 178197718
Test: make RunSettingsRoboTests
Change-Id: I8c68bebd02491dbbc1516bbebc14254ed06940f6
Bug: 173745486
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.BatteryHistoryPreferenceTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.BatteryInfoLoaderTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.BatteryInfoTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.BatteryUtilsTest
Test: make RunSettingsRoboTests ROBOTEST_FILTER=com.android.settings.fuelgauge.batterytip.detectors
Change-Id: I469ff8b88aa3307422c02f51943df4ef1759db56
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
Having consistent import order will reduce chance of merge
conflict between internal and external master
Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
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
Distinguish between settings which are permanently unavailable on
the device, and temporarily unavailable. This enables us to restrict
which setting slices are exposed in onSliceGetDescendants.
The primary changes in this CL are renaming:
"DISABLED_UNSUPPORTED" -> "UNSUPPORTED_ON_DEVICE"
to be more clear the the setting will cannot be accessed on the device, and,
adding a new enum to encapsulate settings which are currently unavailable, but
could be enabled in the future.
Also remove UNAVAILABLE_UNKNOWN. Devs should never need this enum.
Bug: 78910582
Bug: 79245656
Test: robotests
Change-Id: I58821a6cfd6134b3b351657b6edf5f74ead00643
This adds two flags:
config_show_app_info_settings_memory
config_show_app_info_settings_battery
Which when individually set to false, will hide them item from "App
info" which is accessed from clicking on an application in Apps &
notifications -> App info.
Bug: 62379413
Test: make RunSettingsRoboTests
ROBOTEST_FILTER=com.android.settings.applications
Change-Id: Ifb3b644901728dc7ea04d13198abddaa7b230538
- update all references to AppInfoDashboardFragment
- removed PackageUtil inner class and change the corresponding function
to be a simple method.
Bug: 69384089
Test: make RunSettingsRoboTests
Change-Id: Ief067e25a303ef16db20b2ca1d8840cb06eff5f9
After working through a prototype here: (ag/3324435)
it is clear that we don't need the controller to
provider the slice. We will build an index that
will contain sufficent UI information, and a reference
to the controller.
At Slice Bind time, we can get the curret value from the
controller, and the UI information from the Index.
Bug: 67996923
Test: robotests
Change-Id: Id43a51bcd73051bc719cd5829907583e0edf23b2
- first round for changing AppInfoDashboardFragment to inherits from
DashboardFragment instead.
- add controller for Battery, DataUsage, Memory, Notification, Storage,
Permission, Version, and Open by Default settings.
Bug: 69384089
Test: make RunSettingsRoboTests
Change-Id: I60079e5442b4eef46a178e27de96a8635e15ebde