Commit Graph

75 Commits

Author SHA1 Message Date
Wesley Wang
cf1190c7cb Update battery health state intent (2/3)
- Update the extra from overheated to longlife

Bug: 278192441
Test: make SettingsRoboTests

Change-Id: I5a906e64effbd9aaf84446c0670249afefdf7da8
2023-05-11 11:27:16 +08:00
Alex Johnston
2747dc6e8c Implement OP_SYSTEM_EXEMPT_FROM_POWER_RESTRICTIONS exemption
OP_SYSTEM_EXEMPT_FROM_POWER_RESTRICTIONS details:
* An app with this appop will be made exempt from all
  power restrictions, including app standby and doze.
* In addition, the app will be able to start fgs from
  the bg, and the user will not be able to stop fgs
  run by the app.

Changes:
* Implement the OP_SYSTEM_EXEMPT_FROM_POWER_RESTRICTIONS

Bug: 246330879
Test: atest PowerAllowlistBackendTest

Manual testing:
- Give OP_SYSTEM_EXEMPT_FROM_POWER_RESTRICTIONS appop to TestDPC app
- Verify the app can start fg services from the bg
- Verify fgs started by the app cannot be stopped
- Verify the app cannot be put into background restricted via Settings

Change-Id: If9e76076c59195f1e6e5f3eee3c8e7a0c754d8de
2023-02-10 13:37:38 +00: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
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
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
3b5c5f0d7c Change getStatsStartRealtime to getStatsStartTimestamp
Bug: 183434301
Test: make RunSettingsRoboTests
Test: make RunSettingsGoogleRoboTests
Change-Id: Ic86a04a91d910c863706a0f799c757dcd7c5262d
2021-03-22 15:51:21 -07:00
Dmitri Plotnikov
3bd707ab1a Remove unused code
Bug: 173745486
Test: make RunSettingsRoboTests
Change-Id: I9e6e32e4ad594b7d6f5f984bf1b839caf654066b
2021-03-18 12:59:15 -07:00
Dmitri Plotnikov
8f6c946c82 Transition HighUsageDetector to BatteryUsageStats API
Bug: 173745486
Test: make RunSettingsRoboTests
Test: male RunSettingsGoogleRoboTests

Change-Id: Ie8f90a67e4dd16fa67cf4f44a3678a789b3da18a
2021-03-18 03:32:43 +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
820bee81d6 Transition BatteryInfo and BatteryUtils to BatteryUsageStats API
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
2021-03-12 14:08:42 -08:00
Wesley.CW Wang
9a6aae5006 Add Battery Defender feature to Settings
- Reupload CL from ag/13108999 to fix the merge conflict
 - Adding new tips of Battery Defender, will be presented once battery is overheated
 - Launch Help Center article of battery overheat when clicking Battery Defender tip
 Screenshots: https://screenshot.googleplex.com/7jUibTJANgR6UQ6.png
 	      https://screenshot.googleplex.com/tUj2LLi87SfndBN.png

Bug: 172794045
Bug: 173497281
Bug: 173496188
Test: make RunSettingsRoboTests -j40
Change-Id: Ibb106a5d42cdf6232abf9ddf4b3225bdcebccf4a
2020-12-01 16:00:49 +08:00
Alexander Dorokhine
46e85a2fad Migrate away from deprecated Truth APIs.
This is a transitional step towards truth 1.0.1, where these APIs have
been completely removed.

Bug: 168765701
Test: m checkbuild
Change-Id: I76f9c37cb699ce6ab8715ffe35d11668ccbceea1
2020-09-24 23:09:41 +00:00
Edgar Wang
f480c1c3fc Update language to comply with Android's inclusive language guidance
Refactor PowerWhitelistBackend to PowerAllowlistBackend
See https://source.android.com/setup/contribute/respectful-code for reference

Bug: 161896447
Test: robotest & manual
Change-Id: I3d56e6dac1515b49a89f59c34edf403ecb891420
2020-08-04 15:47:57 +08:00
Mill Chen
e18e25d697 Ignore the failed test cases
Bug: 152372274
Test: robotests
Change-Id: Ideb81ac4156c35991bd7d9af4f5cba0ea803d1cc
2020-03-25 18:47:52 +08:00
Lei Yu
2148c1a207 Merge "Fix issues in battery usage accounting" into qt-dev 2019-05-31 17:17:51 +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
Salvador Martinez
12731cce3d Break infinite refresh loop in battery estimates
There was an infinite loop that could occur in BatterySaverUtils
what was caused by battery saver utils updating the battery estimate
which then told the page to check for an estimate and then it would
repeat from there. This cleans up the logic in that loop slightly
to prevent it from refreshing more than is necessary.

Test: atest BatteryUtilsTest
Bug: 132751712
Change-Id: I918484747ecd9735315570ad608489e0f61d7578
2019-05-17 15:36:55 -07:00
jackqdyulei
2def5ccb6c Fix crash in BatteryUtils
When enhanced estimation is enabled, it may still have malfunction
when getting data from it. This CL handles this case and fall back
to default estimation.

Change-Id: Id8d75b07316afa8a73a302b49dc7f8e8b77d4fa4
Fixes: 121213171
Test: RunSettingsRoboTests
2018-12-18 15:26:07 -08:00
James Lemieux
f1dade40d2 Use binary resource support in robolectric
The resources available to tests are now exactly the merged resources
located in the APK under test.

Bug: 74359828
Test: make -j56 RunSettingsRoboTests
Change-Id: I050db81a92decefea23314b5ec7a62f77ff4bb2b
2018-12-12 19:53:49 -08: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
6b09f54e06 Add functions for table action.
1. Insert/Update/Query/Delete
2. Update the action when app been restricted
3. Display restriction time in RestrictedAppDetails

Bug: 111366678
Test: RunSettingsRoboTests
Change-Id: I77a53f70e1ce4b612aabe28b7a1bb5df8f3ec9d5
2018-07-26 16:19:25 -07:00
jackqdyulei
f1213365fc Unrestrict SMS/PHONE app if it been set active
If an app been set default SMS/PHONE app, we need to unrestrict this
app. This CL extract a common function and invoke it when necessary.

Change-Id: Id29c5138438aa6f6f22cdd9c4ecf336de8481782
Fixes: 80305978
Test: robotests
2018-07-18 12:32:34 -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
1439c6179a Don't drop log about excessive O anomaly.
Before this CL, we will drop log for excessive bg anomaly that
target O or higher. This CL doesn't drop it however merge it to
ACTION_ANOMALY_IGNORED

Bug: 79944380
Test: RunSettingsRoboTests
Change-Id: I46d0bdb1191d8843ba373e59afb1b0ba16057661
2018-05-17 16:49:11 -07:00
Lei Yu
d257c1a2d9 Merge "Use user doze whitelist in anomaly detection" into pi-dev 2018-05-10 20:10:42 +00:00
Lei Yu
d71e8d8c87 Use user doze whitelist in anomaly detection
Bug: 77924141
Test: RunSettingsRoboTests
Change-Id: Id9503c9468292f128b76ea872d6603c49965d919
2018-05-09 19:22:57 -07:00
Lei Yu
06efc034e6 Don't check battery usage in excessive bg anomaly
We don't need it anymore because we don't auto restrict this
anomaly.

Bug: 79210436
Test: robo test still pass
Change-Id: I186213a57f9bf54a0e19985f2c92169c6dc0571c
2018-05-08 16:29:25 -07:00
Lei Yu
98eb902ead update checkbox based on FAS API
Before this CL, we assumed all the apps in this page were restricted and
didn't consider that user may uncheck one and rotate the screen.

In this CL, when we create checkbox, we will update the state through
FAS API to make sure checkbox is up-to-date.

Change-Id: I4e89908591f0688b4170806db4b6631bf921f2e9
Fixes: 78161466
Test: RunSettingsRoboTests
2018-04-18 10:58:06 -07:00
Lei Yu
7d09e2ea68 Add method to check if app has launcher activity
This method should only used for system apps.

Change-Id: Id4109d8e223933269b8dae3aaa91b8a9186c527c
Fixes: 77477987
Test: RunSettingsRoboTests
2018-04-12 10:01:42 -07:00
Lei Yu
6c4c7ba0fe Add system app check for anomaly detection.
In this CL, don't blame system app in anomaly detection and also
add log for it.

Following CL will update it to also check whether this system app
has launch entry.

Bug: 77477987
Test: RunSettingsRoboTests
Change-Id: I97490b32bc42ec2f8e03ec2d82f7c8bf89f9c66f
2018-04-11 18:02:50 -07:00
Lei Yu
c5f5b18b22 Add NullPtrCheck when smearing in settings
This only happens in new device with broken power_profile.xml, in
which it doesn't have screen power model.

This CL catches the null pointer crash and log it.

Change-Id: Iac23e3a8fc51385bdb22979c4b59000319f6fd49
Fixes: 74617269
Test: RunSettingsRoboTests
2018-04-06 15:57:44 -07:00
hughchen
18ce28ed33 Change BatteryUtils.isLegacyApp() to isPreOApp()
Bug: 73792442
Test: RunSettingsRoboTests
      make -j40 RunSettingsRoboTests
Change-Id: I770030a8f38ec6156aa2a40f4c88ac9e0673751d
2018-03-20 01:44:43 +00:00
James Lemieux
22a39c2b93 Use external/robolectric-shadows/run_robotests.mk
This allows Settings to test against the latest framework changes.

Also replaced TestConfig with traditional robolectric.properties.

Bug: 73173204
Bug: 73892008
Test: make -j56 RunSettingsRoboTests
Change-Id: I3135b4fa5f095ba79b282a76f45dd9baa2584bc7
2018-03-04 03:50:08 -08:00
jackqdyulei
457fb842eb Add special check for excessive bg anomaly
To check whether this app has battery usage more than x%

Bug: 72385333
Test: RunSettingsRoboTests
Change-Id: I87e6b01c866a053658f84ce3486120ae82963fd9
2018-02-23 10:12:05 -08:00
jackqdyulei
99a2de41ef Add restrict and unrestrict dialog
Add a fake unrestrict tip so we could reuse the BatteryTipDialogFragment
to build the unrestrict dialog.

After this cl, restrict dialog has two types:
1. dialog to only restrict one app
2. dialog to restrict more than one app

Will add dialog to restrict more than 5 apps when strings are finalized.

Bug: 72385333
Bug: 72227981
Test: RunSettingsRoboTests
Change-Id: Ib0328f0386efad525b331fd713dd15d060a1a649
2018-02-05 19:37:03 -08:00
jackqdyulei
0fb2d68f97 Add restrict app detail page
1. Move force standby action to BatteryUtils
2. Add click action for restricted preference(go to detail page)
3. Build app list in detail page using packageOps list

Bug: 71502850
Test: RunSettingsRoboTests
Change-Id: I1e6733e5402e7a854b07a8bbb43a86255276bfaa
2018-01-19 09:59:53 -08:00
jackqdyulei
ca102facf0 Add high usage battery tip
1. Add both model and detector
2. Move the screen usage method to BatteryUtils
so we could reuse it.
3. Add and update the tests

Bug: 70570352
Test: RunSettingsRoboTests

Change-Id: I6a7248d9d48ee8cb6fc2c18c8c225210d49b6bc9
2018-01-09 15:00:41 -08:00
jeffreyhuang
cbfb099a40 Rename SDK_VERSION_O to SDK_VERSION
Test: make RunSettingsRoboTests -j40
Change-Id: I6715062d8addadda441e32809db1af55f15e3a90
2017-12-05 16:43:54 -08:00
Fan Zhang
dff6dd687e Move away from deprecated FakeFeatureFactory.setupForTest()
Test: rerun
Change-Id: I896ba414315ddb1664c0499264f4992f0554ef98
2017-12-05 10:12:10 -08:00
jeffreyhuang
a79417487c Move fuelgauge test package to sdk 26
Test: make RunSettingsRoboTests -j40
Change-Id: I8122a41132821a42c4ec8c5995a1a11833b686cd
2017-11-29 10:57:54 -08:00
Michael Wachenschwanz
987711712c Add Foreground Service time to battery usage
Add foreground service time to foreground usage time of apps. This will
account for app usage that user is aware of but is not being displayed
on screen, such as playing music while screen is locked.

Change-Id: Ica9fe0819e46b50299eb2eab7f0483ea01441fb0
Fixes: 38313557
Test: RunSettingsRoboTests
2017-07-21 17:37:00 -07:00
jackqdyulei
bfc2b11b93 Update Anomaly detection framework
This cl make it could have multiple actions for each anomaly type.

This includes:
1. Add field "targetSdkVersion", "bgRestrictionEnabled" in Anomaly
2. Add new action which includes "force stop" and "background check"
3. Add "sdkVersion" and "bgRestrictionEnabled" method in BatteryUtils
4. Update BackgroundCheckAction to check sdkVersion first
5. Update serveral tests and add new test

Bug: 63037765
Test: RunSettingsRoboTests
Change-Id: Iea7a131ee57d501f7737ae4a3ba672d948d05cd8
2017-07-06 15:53:28 -07:00
TreeHugger Robot
55ad60d1ff Merge "Add util method to get battery stats" into oc-dr1-dev 2017-07-06 21:58:33 +00:00
Matthew Fritze
bfe82cab89 Add util method to get battery stats
Bug:62271803
Test: make RunSettingsRoboTests
Change-Id: I91089c24c7cd5f7329be052c50859e049e70e9b1
2017-07-05 14:54:20 -07:00
jackqdyulei
43cbee6914 Update the method about foreground time.
For now it uses MIN(STATE_TOP_TIME, FOREGROUND_ACTIVITY_TIME) and this
method is used in both display and screen smearing.

Bug: 63080621
Test: RunSettingsRoboTests
Change-Id: I2ca3109697aa66fae67d8b2f4f10c4d08bb99d59
2017-06-30 16:18:29 -07:00
TreeHugger Robot
33c9b7a111 Merge "Fix the getForegroundActivityTotalTimeMs" into oc-dr1-dev 2017-06-29 00:43:09 +00:00
TreeHugger Robot
9a30ceab83 Merge "Hide the IDLE in "app list"" into oc-dr1-dev 2017-06-28 19:38:20 +00:00
jackqdyulei
85e25e34fd Fix the getForegroundActivityTotalTimeMs
The parameter in timer should be microseconds, not milliseconds

Bug: 63073847
Test: RunSettingsRoboTests
Change-Id: I5e451aee9eb30815fbefe12c0bfdc85dff884b8e
2017-06-28 12:33:20 -07:00