Commit Graph

52 Commits

Author SHA1 Message Date
Zaiyue Xue
680cd305a1 Optimize screen time cross power connection logic from O(N^2) to O(N)
Bug: 277844625
Fix: 277844625
Test: presubmit
Change-Id: If945e45a5eb279fd730dcc13575dd4fe45ac3ad4
2023-04-12 12:00:05 +08:00
Zaiyue Xue
06b8092fdb Refactor function to support slot size not must be two.
The function insertHourlyUsageDiffDataPerSlot() only supports the slot
has two-hour data now. This assumption is not neccessary. Refactor this
so in my next cl ag/22379150, the last-full-charge slot and now slot
could have only one-hour data.

Bug: 271214926
Test: manual
Change-Id: I57f7898ce1c92b8849baf9a44314455adf0098f4
2023-04-07 19:49:52 +08:00
Zaiyue Xue
ff11b8e307 Exclude screen on time in battery usage page when the device is in charging.
Bug: 265751163
Fix: 265751163
Test: manual
Change-Id: I4ed71e1d6fad56a7cbfc9cd47ed4d791f45261ce
2023-03-30 20:23:33 +08:00
Zaiyue Xue
9723490f63 Unify logging timestamp string.
Bug: 275278933
Fix: 275278933
Test: presubmit
Change-Id: Ifc67b9bf841f018465ee4a7b38b3a8605f60212b
2023-03-27 19:11:13 +08:00
TreeHugger Robot
db7e7d0920 Merge "Put Android Core Apps under System apps" into udc-dev 2023-03-14 08:14:09 +00:00
Zaiyue Xue
702921c9ff Put Android Core Apps under System apps
Bug: 269188405
Fix: 269188405
Test: manual
Change-Id: Ie79cdb71c48661b6b1e90b8d0e7836269cf665e7
2023-03-14 13:53:08 +08:00
Zaiyue Xue
a528f1e382 Fix b/273175976: Screen time counts the time before full charge.
Use the raw start timestamp instead of the first timestamp in the level
map to query app usage time.

Bug: 273175976
Fix: 273175976
Test: manual
Change-Id: Idb43b2bd5378e2f34ec722354408754f4a439c6d
2023-03-13 15:59:05 +08:00
Nikhil Kumar
846d1d26f4 Get profile parent's context in case of work profile
In the headless system user mode a non-system user can also have
a work profile.
Refactor DatabaseUtils to get the profile parent's context when
the user is a work profile.

Bug: 270039752
Test: make RunSettingsRoboTests
Change-Id: I1fb78c9d91d59d50880a1ea0dd5f83a3d11dd08f
2023-02-20 18:38:13 +00:00
Zaiyue Xue
d72ff28a52 Fix battery usage chart error when daylight saving.
Bug: 258000978
Fix: 258000978
Test: presubmit
Change-Id: Ia8746ec67f0f37dd35043f78f2aa55d2ef7c215b
2023-01-31 18:33:47 +08:00
Chaohui Wang
c4ee3fdf5b Update for getSystemPackageNames change
Bug: 266040895
Test: Make Settings
Change-Id: Iecdbe80861e812f58687d8509dbc1e2acee050a9
2023-01-19 16:11:48 +08:00
Zaiyue Xue
16dfab6b31 Fix b/265632782: Battery usage app list changed when entering the app details page and back
This only happens on the first time the Settings package is installed.
Discussed with Chaohui, the old showSystemApp() logic in Settings->Apps has some issues. This cl updates the logic to the new logic Chaohui provided.

Bug: 265632782
Fix: 265632782
Test: manual
Change-Id: I65ca150cc685409f69b8950b131feb198662f055
2023-01-16 18:48:13 +08:00
Kuan Wang
54d7cd8a7a Add latest battery usage data when exporting battery usage data to EBS
and Settings -> Apps

Test: manual
Bug: 265130434
Change-Id: I1c6c1a831416d596b5bd71c6499f4c4672dbcdea
2023-01-16 11:44:53 +08:00
Kuan Wang
4a6b26558d Query usage event for a longer time period and then trim the usage
events outside the expected period to make sure the app usage calculation near the boundaries are correct.

Test: make RunSettingsRoboTests + manual
Bug: 264858898
Change-Id: I9f6aa5a09a537f48a26a08b7dff8ae81e8a16e2a
2023-01-13 15:17:27 +08:00
Zaiyue Xue
43ace6ed33 Merge changes from topic "feature0"
* changes:
  Refactor processBatteryDiffData() from DataProcessor to BatteryDiffData class.
  Refactor PowerUsageFeatureProvider: Cache the config set to avoid generating the set again.
2023-01-11 08:57:29 +00:00
TreeHugger Robot
89e5b837b9 Merge "Adjust background time to avoid background + screen time larger than time slot duration." 2023-01-11 05:54:55 +00:00
Kuan Wang
a396885f5e Adjust background time to avoid background + screen time larger than
time slot duration.

Test: make RunSettingsRoboTests
Bug: 265089855
Fix: 265089855
Change-Id: Idf3fee13eccd5b1f699feb5f79bd2aa474e444b8
2023-01-11 11:44:36 +08:00
Zaiyue Xue
f080429ddb Refactor processBatteryDiffData() from DataProcessor to BatteryDiffData class.
So that only hourly battery diff data needs purgeFakeAndHiddenPackages()
and combineBatteryDiffEntry(). This is also easy to set hourly threshold
in the next cl.

Bug: 264840285
Test: manual
Change-Id: Ie0bc6d53f96285285019dd83c1f39305eca79c71
2023-01-10 20:40:13 +08:00
Zaiyue Xue
7f3ff17bcf Refactor PowerUsageFeatureProvider: Cache the config set to avoid generating the set again.
Bug: 262802531
Test: manual
Change-Id: I61b36e4e057c432d814aa104a37f0e0d552720cb
2023-01-10 19:42:09 +08:00
Kuan Wang
a708592e0a Add logging for total screen-on time and foreground usage time.
Test: manual
Bug: 260965322
Change-Id: Ia1711fb73a6390e6a91289331daf3d88675731fe
2023-01-10 14:36:01 +08:00
Zaiyue Xue
9a35838436 Revert "Fix the inverted logic to judge whether an app is system app."
This reverts commit 814eff1c24.

Reason for revert: The original logic is right.

Change-Id: I2aee0f9ab13c60d843e91056de9d409a1d84b9d4
2023-01-09 07:30:35 +00:00
Zaiyue Xue
814eff1c24 Fix the inverted logic to judge whether an app is system app.
Bug: 264626206
Fix: 264626206
Test: maunal
Change-Id: I3750e3b11e444add27243c492cf8968373cd57d0
2023-01-06 15:24:44 +08:00
Zaiyue Xue
7c987c9d98 [Battery usage U] Add an item "Others" in the app list to group small usage apps. This will make the total percetage 100%, which is easy to understand for users.
Bug: 258124173
Fix: 258124173
Test: manual
Change-Id: I5965eeb73a2071c4a9994655e4ed24ec3adf64e8
2023-01-05 11:22:33 +08:00
Zaiyue Xue
e756675e69 Combine system apps to one item in the battery usage app list.
Bug: 262952385
Test: 262952385
Test: maunal
Change-Id: I078677b13a22f5e2f8f194bb5d5259f8c54c6b1e
2023-01-04 20:32:56 +08:00
Kuan Wang
b2f8c095ac Add null check to avoid NullPointerException.
Test: make RunSettingsRoboTests
Bug: 264198981
Fix: 264198981
Change-Id: Ida2ff6beed5c0dba6329023b72e55daf1bf573f1
2023-01-04 07:08:37 +00:00
Kuan Wang
1ce97c8ebe Generate app and device screen-on time data and return back to UI for
rendering.

Test: make RunSettingsRoboTests + manually
Bug: 260964903
Change-Id: I2fd69b4686cc2e1413ad0eb43c07b6164e411411
2022-12-28 07:40:39 +00:00
Kuan Wang
120c68881c Generate intermediate app usage data after all usage data has been
loaded for further use.

Test: make RunSettingsRoboTests + manually
Bug: 260964903
Change-Id: I52d96151cab112adca68573f3b47a53b7152f2c0
2022-12-28 02:56:35 +00:00
Zaiyue Xue
daeafc8fc6 [Battery usage U] Remove 'Phone Idle' to avoid confusion
Bug: 252938706
Fix: 252938706
Test: manual
Change-Id: I0ad973718f77640839dbdf4ac5ca4241f01bdb79
2022-12-22 08:36:59 +08:00
Kuan Wang
2c7f06e9b3 Use taskRootPackageName instead of packageName to load uid when usage
resource is USAGE_SOURCE_TASK_ROOT_ACTIVITY and taskRootPackageName is
not empty.

This logic is consistent with digital wellbeing: assign the screen-on
time onto task root activity when usage resource is
USAGE_SOURCE_TASK_ROOT_ACTIVITY.

Bug: 260964679
Test: make RunSettingsRoboTests + manual
Change-Id: I4c7ed342d8c00951879f5826bf79575f330ce86e
2022-12-21 02:39:23 +00:00
Kuan Wang
a1a7cba6a6 Move the getBatteryLevelData function from DataProcessor to
DataProcessManager and start the async task in DataProcessManager when
there is no battery level data.

Test: make RunSettingsRoboTests + manually
Bug: 260964903
Change-Id: Ie36ab6d121a5596a3abc16e7f570dd0d9b32e11c
2022-12-21 02:39:11 +00:00
Kuan Wang
1e7181cfcc Remove "Other Users" entry in app usage list.
Don't show the aggregated other user entry in the app usage list to keep
consistent with screen-on time data.

Bug: 260964903
Test: make RunSettingsRoboTests
Change-Id: Id611e7222602f5ad2ea0fe27fb3f9f62fed31ff9
2022-12-20 03:00:05 +00:00
Kuan Wang
97924455ff Implement the app usage data loading from database function.
Bug: 260964903
Test: make RunSettingsRoboTests + manual
Change-Id: I459dbdebe53e6b7421642955f36976b3e7c95fcb
2022-12-20 02:31:50 +00:00
Kuan Wang
8d2a26caed Add DataProcessManager to manage the async tasks of battery usage data
processing.

Test: make RunSettingsRoboTests + manually
Bug: 260964903
Change-Id: Id3b2772a98ec2ab3b03910c8a5e81adf7ccd5646
2022-12-19 03:40:48 +00:00
Zaiyue Xue
b9b3dcc0fb Purging battery diff data before calculating perctage and sort.
Bug: 261820602
Test: manual
Change-Id: I958995721238f32d0360861559ca5e1938ce6d3a
2022-12-16 16:24:12 +08:00
Zaiyue Xue
bce700f1db Refactor getting allowlist set from feature provider.
(1) Use Set<CharSequence> for all the allowlists.
(2) The contains() method of Set<CharSequence> also works for String. No
    need an extra contains() util function.

Bug: 262802531
Fix: 262802531
Test: presubmit
Change-Id: Ib2aaf9a3b8db4618a8c46f138e8d35f15b77c104
2022-12-16 10:39:26 +08:00
Kuan Wang
6c4f83f33d Load app usage events data in the hourly job.
Test: make RunSettingsRoboTests + manual
Bug: 260964679
Change-Id: Iaccaa77bd52fb7356cdcb786c64523f21040b128
2022-12-15 06:32:54 +00:00
Zaiyue Xue
4ee99b0e05 Remove logging for count of shown / hidden apps in Battery Usage page.
Bug: 262187603
Fix: 262187603
Test: presubmit
Change-Id: Iff3bcb07f6df424c7498f128739743210d8e7951
2022-12-13 13:17:56 +08:00
Zaiyue Xue
1bf57958d2 Don't hide 1% battery usage apps but show percentage "-" instead.
Bug b/242252864 will be fixed at the same time.

screen_record: https://drive.google.com/open?id=1ycEuazqQZzNWGO8E2Fh3GdgyTEd2Z9s0&authuser=0&resourcekey=0-x9BJJE6932jIv9fFoecjeQ&usp=drive_link

Bug: 262187603
Bug: 242252864
Fix: 262187603
Fix: 242252864
Test: manual
Change-Id: Id1a8b5291d66a38fb86f168d3115ae566e6ec079
2022-12-12 14:40:56 +08:00
Zaiyue Xue
691c39b862 Merge "[Battery usage U] Calculate each item pertage for App tab and System tab separately." 2022-12-09 02:40:33 +00:00
Zaiyue Xue
5474c1849b [Battery usage U] For system comsumed power, use device comsumed power directly instead of removing app comsumed power from it.
Bug: 261826748
Fix: 261826748
Test: manual
Change-Id: Iab6eed4339fabe342835a020cadae11e6256be20
2022-12-08 19:03:27 +08:00
Zaiyue Xue
131958c8bc [Battery usage U] Calculate each item pertage for App tab and System tab separately.
Bug: 261820602
Fix: 261820602
Test: manual
Change-Id: Iaab63bd5c6459486645987524d61b69dfca20fd6
2022-12-08 18:07:47 +08:00
Zaiyue Xue
3d7b8b3bfe [Battery usage U] Show battery usage info immediately up till as close to the current moment as possible.
screen_record: https://drive.google.com/file/d/1Wdm8Wpn39k6E9Yo4bbTENf5VANP337QA/view?usp=share_link&resourcekey=0-1LNmaTaZI13DUmjNfkBehQ

Bug: 252407178
Fix: 252407178
Test: maunal
Change-Id: Ia08dea791bb72113719fd1316e8e9587a96eaef1
2022-12-06 17:36:55 +08:00
Kuan Wang
ec1c9d94f2 Remove foreground_service_usage_time_in_ms field which has been merged
into background_usage_time_in_ms in the BatteryUsageStats (b/257392992).

Test: make RunSettingsRoboTests + manual
Bug: 258124768
Bug: 253553141
Change-Id: I0967eec0cbe6d0cb7a0535d744a1046dec1d267b
2022-12-06 01:04:48 +00:00
Kuan Wang
53a761f55b Populate new fields foreground_service_usage_time_in_ms,
foreground_usage_consume_power, foreground_service_usage_consume_power,
background_usage_consume_power and cached_usage_consume_power into
database and pass them to UI.

Test: make RunSettingsRoboTests + manual
Bug: 256123455
Bug: 258124768
Change-Id: Ic46032f67eff5898f9d4182c517bbebe478eca01
2022-11-29 11:42:26 +08:00
Zaiyue Xue
7a30768503 Clean up BatteryAppListPreferenceController
Bug: 256123455
Bug: 258576047
Fix: 258576047
Test: presubmit
Change-Id: I8c3d05f76e7a6995fccc34b2cc60ee126bb3d350
2022-11-17 11:28:06 +08:00
Kuan Wang
6e23499e98 Remove the timestamps of last day for battery level chart if last day has less than 2 hours data. am: 57cb76428e am: 28bdf84b5a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/20309948

Change-Id: I748c1247a96b3d4ae9160d76c768e2db7af2611a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-11-10 11:46:43 +00:00
Kuan Wang
57cb76428e Remove the timestamps of last day for battery level chart if last day has less than 2 hours data.
Test: make RunSettingsRoboTests
Bug: 256525782
Change-Id: I3f735f8f3ec10b2952b93111f0243e44117ff58a
2022-11-10 08:56:39 +00:00
Kuan Wang
c7afa45eac Clean up unused function getHideApplicationSummary in
PowerUsageFeatureProvider.

Bug: 253395332
Bug: 254769892
Bug: 254769770
Test: make RunSettingsRoboTests
Change-Id: I6acf0cbdb7321934e85939e0acee567001107a17
2022-10-21 04:42:06 +00:00
Kuan Wang
56d1c2fa55 Extract the logic of loading battery usage data form BatteryUsageStats
in DataProcessor to make it reusable by BatteryUsageLoaderService.

Bug: 246233366
Test: make RunSettingsRoboTests + manually
Change-Id: I5c721120cc4005044def63937506cc64339a3e6b
2022-09-26 10:45:30 +00:00
Kuan Wang
bd9042c47f Show app list in Battery Usage page when there is no battery level data.
https://drive.google.com/file/d/1iQxKmEp_weNYdT4JnsiZgYy9mCdn7SRv/view?usp=sharing

Bug: 246233366
Test: make RunSettingsRoboTests + manually
Change-Id: If536c93652506c8009f5cabf3d0ae373b6825bfc
Merged-In: If536c93652506c8009f5cabf3d0ae373b6825bfc
2022-09-20 12:11:25 +08:00
Kuan Wang
1051fb16d8 Show app list in Battery Usage page when there is no battery level data.
https://drive.google.com/file/d/1mZ2Sn3dmjQcCxnhKqDPxfLJDyiTe6mEk/view?usp=sharing

Bug: 246233366
Test: make RunSettingsRoboTests + manually
Change-Id: If536c93652506c8009f5cabf3d0ae373b6825bfc
2022-09-19 07:09:37 +00:00