Commit Graph

2426 Commits

Author SHA1 Message Date
mxyyiyi
5a9c00e63e Add log for fetch data from BatteryStatsManager.
Bug: 362177550
Bug: 357978626
Test: manual
Flag: EXEMPT bug fix
Change-Id: Iec6e7ccb871cc34d5ab3d2c8d8414edef0118024
2024-08-30 14:13:22 +08:00
mxyyiyi
511b67e0b8 Get the application context and pass into to a background executor.
Bug: 360260798
Test: manual
Flag: EXEMPT bug fix
Change-Id: I77bf9a7be75257be7871714afaf1fba81787f8b1
2024-08-19 17:02:32 +08:00
mxyyiyi
05e857de6a Migrate Spinner on Battery Usage to settingsLib Spinner widget.
Bug: 359429437
Test: visual
Test: atest BatteryUsageBreakdownControllerTest
Flag: EXEMPT bug fix
Change-Id: I71bd1f31db302d407603c71d1a1163ed22fafed8
2024-08-16 13:40:07 +08:00
Wesley Wang
77ded32a49 Fix NPE in DynamicDenylistManager
Bug: 357280604
Change-Id: Ifcfe5cfea67f3ef692a865ef43db8e22de3cd68d
Test: atest DynamicDenylistManagerTest
Flag: EXEMPT for bug fix
2024-08-09 14:42:15 +00:00
Treehugger Robot
93b093033a Merge "Migrate Tips Card in battery uasge to Settings Card." into main 2024-08-08 15:09:30 +00:00
mxyyiyi
427c9c3187 Migrate Tips Card in battery uasge to Settings Card.
before:
[Dark-settings]:https://screenshot.googleplex.com/56EiS3PbtRsh5RR
[Light-app]:https://screenshot.googleplex.com/8UDuFEkkrLUt53D

after:
[Dark-settings]:https://screenshot.googleplex.com/3zKxxGi2Awa6s72
[Light-settings]:https://screenshot.googleplex.com/rsgVh9P62x7itUa
[Dark-app]:https://screenshot.googleplex.com/56EiS3PbtRsh5RR
[Light-app]:https://screenshot.googleplex.com/6bfs2u43nZpHL8y

Bug: 357603119
Test: atest BatteryTipsControllerTest
Flag: EXEMPT bug fix
Change-Id: I25e3b407378b01ef9868326a005554ceb6e94181
2024-08-08 13:59:11 +00:00
Treehugger Robot
87778221d3 Merge "Fix the charging string while charging wirelessly" into main 2024-08-07 03:55:07 +00:00
Yiling Chuang
9e2bda0c87 Fix the charging string while charging wirelessly
Move the null check of the charging remaining time after the wireless charging check, so when the time to full is not available, there's still a chance to show the customized wireless charging state.

Fixes: 342046505
Test: atest SettingsRoboTests
Flag: EXEMPT bugfix
Change-Id: I8a6104c46222e9f27d488035a218856f51e30430
2024-08-06 10:56:07 +00:00
mxyyiyi
59e5dc720a Add whether app optimization mode mutable in BatteryUsageDiff proto.
Bug: 350657779
Test: atest ConvertUtilsTest
Flag: EXEMPT bug fix
Change-Id: I80a5e6513e1bee88f85caeed7661b10204df8a51
2024-08-02 10:41:24 +08:00
mxyyiyi
9933688333 Clear cache data to recalculate usage slot after receiving timezone change intent.
- Clear usage slot & even hour calculate event.

Bug: 355084572
Test: atest BootBroadcastReceiverTest
Test: atest BatteryEventDaoTest
Flag: EXEMPT bug fix
Change-Id: I0bc8b71219ce8cea3987a7bfc39b69e0c6047e3d
2024-07-24 18:02:00 +08:00
mxyyiyi
d4965bd5cc Ignore broadcast intent from additional profile.
- Use isAdditionalProfile() to ignore intent from either work or private profile.

Bug: 354828134
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Flag: EXEMPT bug fix
Change-Id: Ic0c91d956e4bfcd53576629efab4be847c94155e
2024-07-23 19:31:05 +08:00
Pajace Chen
c0c3b65c5c [BugFix] Fix the incorrect state for dockdefend on battery settings page
Bug: 348563863
Change-Id: Ie5f0f3e380b9355f96898eeddc755a18a71917a0
Test: Manual Test
Test: http://ab/I16200010297673244
Flag: EXEMPT bug fix
2024-07-22 08:22:32 +00:00
Yiling Chuang
419a6a9079 FRP bypass defense in App battery usage page
Before the setup flow completion, don't allow the app info page in App battery usage to be launched.

Bug: 327748846
Test: atest SettingsRoboTests + manual test
- factory reset + launch app battery usage app info via ADB during Setup -> verify app closes
Flag : EXEMPT bugfix

Change-Id: I486820ca2afecc02729a56a3c531fb931c1907d0
2024-07-09 08:13:49 +00:00
YK Hung
e15e2397af Avoid dump BatteryReattributeDatabaseHist if the feature is disabled
Fix: 346706894
Fix: 350798552
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Flag: EXEMPT bug fix
Change-Id: I1670e2769bc71fe91a752efeea18074d53c5a017
2024-07-04 04:59:34 +00:00
Treehugger Robot
c2c6c5d058 Merge "Update the conditions of power plugged determination." into main 2024-07-02 11:56:53 +00:00
Yiling Chuang
318636d51b Update the conditions of power plugged determination.
Under charging optimization mode, use ADAPTIVE_LONGLIFE as the additional condition to check whether a device is plugged.

Bug: 349949603
Flag: EXEMPT bugfix
Test: atest SettingsRoboTests
Change-Id: Idbdfaaa1d5c54be325b6182bcda81d4282c21ba0
2024-07-02 10:54:36 +00:00
mxyyiyi
a954e914dd Add a flag to protect overwrite app optimization mode to restricted mode.
- Skip set app optimization mode to restricted if the flag disabled.

Bug: 348192536
Fix: 348192536
Test: atest
Flag: EXEMPT bug fix
Change-Id: I92d320ce1edfe9b7044afdcd058651b0d54bd6bd
2024-07-01 17:38:50 +08:00
YK Hung
90acfa757a Merge "Exclude charging period when calculate the reattribute duration (5/5)" into main 2024-07-01 09:11:31 +00:00
YK Hung
29f73d68fe Exclude charging period when calculate the reattribute duration (5/5)
Bug: 346706894
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Flag: EXEMPT bug fix
Change-Id: Icc9a475a71f189e72bf06f9a0b4c23380a90a603
2024-07-01 06:34:46 +00:00
pajacechen
daeb06c3b0 [Bug Fix] "Dock defend string and tips in settings are incorrectly" issue
Symptom: After the dock defend was triggered, the battery tips still
show "Future-Bypass" dock defend mode. It should be the "Active" dock
defend mode.

Root Cause: The original `BatteryInfo.isBatteryDefender` was implemented
by using `longlife`, due to the charging limit also reuse `longlife`
issue, we replace the implementation of `BatteryInfo.isBatteryDefender`
with HAL API call `isTempDefend` and `isDwellDefend`. However, the
dock defend also needs `longlife`, the original
`BatteryInfo.isBatteryDefender`. So the dock defend checking failed
after replacing the implementation of `BatteryInfo.isBatteryDefender`

Solution:
- Add new property isLonglife in BatteryInfo
- Replace all isBatteryDefender reference that needs isLonglife

Bug: 348563863
Test: Manual Test and robotest
Test: http://ab/I08300010291126076 (unit test)
Test: http://ab/I67800010291096764 (robo test)
Flag: EXEMPT bugfix
Change-Id: I58424927522acc29dc49261a2c24829a5b34ef85
2024-06-27 23:19:08 +08:00
Priyanka Advani
e200279002 Merge "Revert "Fix "Dock defend string and tips in settings are incorrectly" issue"" into main 2024-06-26 20:42:45 +00:00
Chaitanya Cheemala
4cfc0d8156 Revert "Fix "Dock defend string and tips in settings are incorrectly" issue"
This reverts commit d1114107df.

Reason for revert: Likely culprit for b/349578829  - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.

Change-Id: I905a439c73e120efa094f097d59f68d0bedb0648
2024-06-26 15:47:11 +00:00
YK Hung
38f3171f56 Merge "Fix "Dock defend string and tips in settings are incorrectly" issue" into main 2024-06-26 11:11:11 +00:00
YK Hung
59f9bd0630 Merge "Fetch package uid under the corresponding user handle." into main 2024-06-26 11:10:40 +00:00
Xinyi Mao
ede7f73f20 Merge "Skip load app name from PackageManager while init the BatteryEntry." into main 2024-06-26 09:05:09 +00:00
mxyyiyi
7ff146a34a Fetch package uid under the corresponding user handle.
- Make 3p-app usage entry under work profile selectable:
[Before] https://screenshot.googleplex.com/AuD3Q8hrepmxaoS
[After]  https://screenshot.googleplex.com/ACrXLcV2RYYv9aA

Bug: 346982931
Fix: 346982931
Test: atest BatteryDiffEntryTest
Flag: EXEMPT bug fix
Change-Id: Ib54df4c6d343dd32057e741b448596357ec2c12f
2024-06-26 17:03:29 +08:00
pajacechen
d1114107df Fix "Dock defend string and tips in settings are incorrectly" issue
Symptom: After the dock defend was triggered, the battery tips still
show "Future-Bypass" dock defend mode. It should be the "Active" dock
defend mode.

Root Cause: The original `BatteryInfo.isBatteryDefender` was implemented
by using `longlife`, due to the charging limit also reuse `longlife`
issue, we replace the implementation of `BatteryInfo.isBatteryDefender`
with HAL API call `isTempDefend` and `isDwellDefend`. However, the
dock defend also needs `longlife`, the original
`BatteryInfo.isBatteryDefender`. So the dock defend checking failed
after replacing the implementation of `BatteryInfo.isBatteryDefender`

Solution: Add new property isLonglife in BatteryInfo

Bug: 348563863
Test: Manual Test and robotest
Test: http://ab/I55100010289930405
Flag: EXEMPT bugfix
Change-Id: I180cde7a193d75243893471634bab5f354c1623b
2024-06-26 16:38:14 +08:00
mxyyiyi
13988cec01 Skip load app name from PackageManager while init the BatteryEntry.
- getApplicationLabel is time-consuming.
[Before]
https://pprof.corp.google.com/?id=bade2601da25f6169b0685a3e2a3e5cc
https://screenshot.googleplex.com/86R5DhMgcyQakys
[After]
https://pprof.corp.google.com/?id=2ccb1e88222e96db1fbcc072470a254c
https://screenshot.googleplex.com/7QviDFSpgzoQcg6

Bug: 349120408
Fix: 349120408
Test: atest + pprof
Flag: EXEMPT bug fix
Change-Id: I1eed60cea9c5bd3f77f38993f7d04906aa811da5
2024-06-26 15:49:30 +08:00
YK Hung
bc93a6a146 Reattribute data into other apps as the final result (4/5)
Bug: 346706894
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Flag: EXEMPT bug fix
Change-Id: I8b8a988df2718b64cd752915205db687ffe9d559
2024-06-26 06:25:15 +00:00
YK Hung
c16e835884 Public processAndSortEntries API for battery reattribution work
Bug: 346706894
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Flag: EXEMPT bug fix
Change-Id: I09429eac563016a0a709b73ee4feab761ffe47dd
2024-06-24 05:55:42 +00:00
YK Hung
871b2b7a85 Update the database filename and the version number as the same time
Fix: 348156270
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Flag: EXEMPT bug fix
Change-Id: I26d7e1bf0d1766374359b6c6f12e96d78726ed85
2024-06-21 07:12:46 +00:00
YK Hung
df43d049d4 Merge "Load and process the battery reattribute data in the periodic job (3/5)" into main 2024-06-20 16:28:03 +00:00
YK Hung
98319ac0f5 Load and process the battery reattribute data in the periodic job (3/5)
Bug: 346706894
Fix: 348156270
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Flag: EXEMPT bug fix
Change-Id: Ibaa1d9d960aa6a885307fbb3dd3a62aaeb32de23
2024-06-20 11:20:16 +00:00
YK Hung
bf38bed803 Merge "Dump the BatteryReattribute from the database into bugreport (2/5)" into main 2024-06-19 02:29:31 +00:00
YK Hung
d226a97617 Dump the BatteryReattribute from the database into bugreport (2/5)
Example:

    BatteryReattributeEntity{
    	Jun 18, 2024, 16:22:51
    	Jun 18, 2024, 16:23:01
    reattribute_data {
      key: 1001
      value: 0.1
    }
    reattribute_data {
      key: 1002
      value: 0.99
    }
    timestamp_end: 1718727781368
    timestamp_start: 1718727771368
    }

    BatteryReattributeEntity{
    	Jun 18, 2024, 16:22:31
    	Jun 18, 2024, 16:22:51
    reattribute_data {
      key: 1003
      value: 1.0
    }
    timestamp_end: 1718727771368
    timestamp_start: 1718727751368
    }

Bug: 346706894
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage.bugreport
Flag: EXEMPT bug fix
Change-Id: Ie2544b9f43e399d87eb29354b401834372c3a9f7
2024-06-18 16:37:55 +00:00
Chaohui Wang
80a81431f4 Use Kotlin List & NonNull String
To avoid Room compiler error / warning.

Bug: 332487783
Test: m Settings
Flag: EXEMPT refactor
Change-Id: I79a4991c1a0009e347f0916f4f204229dc07581a
2024-06-18 14:51:07 +08:00
Treehugger Robot
a3894e6761 Merge "Add new database table and proto for battery usage reattribution (2/5)" into main 2024-06-17 11:28:54 +00:00
YK Hung
f5cf54bcc7 Add new database table and proto for battery usage reattribution (2/5)
Bug: 346706894
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Flag: EXEMPT bug fix
Change-Id: If360246d974abdea7004023aedcf1a4be7b63633
2024-06-17 10:13:34 +00:00
mxyyiyi
08907935df Add flag to force expire the app optimization mode event.
Bug: 347444433
Test: atest
Change-Id: Id502607ed6c07870d14346656a65ceccb756b78f
2024-06-17 17:04:05 +08:00
Chaohui Wang
b3f2e4d517 Migrate battery usage DAO to Kotlin
To better support null type safety, and fix build
warnings.

Bug: 332487783
Test: m Settings
Change-Id: I00f3add356e3f825ab76aae4f81129eba348eca8
2024-06-17 12:26:20 +08:00
YK Hung
5a52e7068c Merge "Help talkback to read the hyphen of time frame '{day}{time}-{time}' in PreferenceCategory Title." into main 2024-06-12 16:20:11 +00:00
mxyyiyi
d047b6da10 Help talkback to read the hyphen of time frame '{day}{time}-{time}' in PreferenceCategory Title.
Bug: 346707823
Test: atest + manual
Change-Id: I3098ccaffd6396fb1f00e3b57c326980250651f2
2024-06-12 17:09:04 +08:00
YK Hung
1fe85991e8 Disable explicit gc method invocation in V
Disable the gc() method explicit invocation due to the new policy in the
android to avoid android.os.strictmode.ExplicitGcViolation

Test: presubmit
Fix: 345577704
Flag: EXEMPT strictmode fix
Change-Id: I6ec7dac6735499c40a7ab6d135108e4c5013a4a4
2024-06-11 15:00:26 +00:00
YK Hung
06ee9cdb27 Merge "Allow wireless charging label to customize content descriptions" into main 2024-06-07 10:55:26 +00:00
Yiling Chuang
6dc8193d81 Allow wireless charging label to customize content descriptions
Fixes: 343616480
Test: atest SettingsRoboTests
Change-Id: I0d87b50fd88167b57ce9d9b06d776ba2ebe304ea
2024-06-07 07:20:22 +00:00
mxyyiyi
35282888d9 Clear app optimized mode sharedpreferences when Reset all app preferences.
- Clear events when user click Settings > Apps > All apps > top-right button > "Reset app preferences"
- Update AppOptModeSharedPreferencesUtilsTest from robotest to unit test.

Bug: 338965652
Test: atest + manual
Change-Id: Ib0a1bd113ab31fea247e5a5430ab35b252c6e1f5
2024-06-05 18:43:41 +08:00
YK Hung
855681fa8f Merge "Fetch the original battery optimization mode in backup & restore process." into main 2024-06-04 10:28:37 +00:00
mxyyiyi
00507a47ec Fix post-comment in ag/27593647 to improve the readability.
Bug: 338965652
Test: atest + manual
Change-Id: I8e4c8a4508dd8c5afd1f16c6129146ba6e13bde2
2024-06-04 15:48:36 +08:00
mxyyiyi
1767a6ebb8 Fetch the original battery optimization mode in backup & restore process.
- Battery optimization mode maybe temporary updated by turbo.

Bug: 338965652
Test: atest + manual
Change-Id: Ibea7ecc85ee7d042058f1bccc043fa501be2b8db
2024-06-04 15:43:58 +08:00
mxyyiyi
8eaf8edf7e Add AppOptimizationModeEventsUtils to save & update app optimization mode expiration events.
- [Update] Save app optimizaiton mode set & expire events from turbo.
- [Reset ] Restore optimization mode for expired events in Periodic job.
- [Delete] Cancel expiration event if user updates mode in app usage page.

Bug: 338965652
Test: atest + manual
Change-Id: I3fb7311207da1bdb1146ea1ff041aca6adb66052
2024-06-03 19:42:26 +08:00