Commit Graph

10 Commits

Author SHA1 Message Date
jackqdyulei
5918cd5ff9 Move anomaly code to BatteryTipUtils
Then we could reuse it across settings.

Bug: 74529048
Test: robo test that cover each components still pass
Change-Id: Ied0bbc6e6a1dca9628c2c084c3284ffab2f85160
2018-07-17 12:42:57 -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
4bfbaa6047 Update insert method for battery database
1. Add conflict code to ignore the confliction and return -1 when
insert fails.
2. Add boolean return value to show whether insert sucessfully
3. Add unit test. We don't write robo test because robolectirc use
"update" to shadow "insert" operation, which returns the wrong data.

Bug: 77968649
Test: SettingsUnitTest
Change-Id: Ibd3b53cdb1796d74ea4a2ca1f067e2b302b939e9
2018-04-23 13:13:56 -07:00
Lei Yu
7caecd36f7 Change anomalyType to ArraySet in AppInfo
After this cl, in AppInfo we could store mutilple anomalyTypes, so
AppInfo list will only contain one instance for each uid(however
still keep all the anomaly data)

In this way we could remove the duplicate items in app dialog.

Bug: 74335346
Test: RunSettingsRoboTests
Change-Id: I2ef7c218df2a956eea66aa6bdf03f5ddd19948e3
2018-03-08 12:40:18 -08:00
jackqdyulei
10051afb96 Add whitelist for anomaly detection.
Even though we can add whitelist in config, we still need to have a
on device whitelist to reduce the size of config.

Use doze whitelist here because we already used it to detect whether
we can restrict the app in battery detail page.

Bug: 74241534
Test: RunSettingsRoboTests
Change-Id: I35b6f3eba9fbc8ae51bb02cd9d5416e4360c388e
2018-03-07 13:20:36 -08:00
jackqdyulei
36249c6254 Update dabase manager to store the uid
Also update the AppInfo to store the uid

Bug: 74022362
Test: RunSettingsRoboTests
Change-Id: I373242a12e9dbf48be134f2e9be30831b09f91c9
2018-03-07 04:20:13 +00:00
jackqdyulei
3ee28c810d Add auto restriction for excessive background
If it is excessive bg anomaly and auto restriction is on, then
restrict the anomaly in receiver and store it in database.

Also in this cl we move the anomaly logic to a JobService, so all
works are done in a background thread and won't interfere the main
thread.

Bug: 72385333
Test: RunSettingsRoboTests &&
Will add auto restriction test once robo framework is updated(b/73172999)
Change-Id: Id0ec5fb449ce26bf19a292bcbe63838d621cfd8e
2018-02-23 10:11:34 -08:00
jackqdyulei
c76bb78758 Make BatteryDatabaseManager singleton
In BatteryTipLoader, two threads may access BatteryDatabaseManager
simultaneously. In this case thread A may close the database thread B
holds, then settings will crash.

In this cl, we make the BatteryDatabaseManager as singleton and
synchronize all the database related method. Then it shouldn't have
the crash anymore.

Bug: 73346734
Test: RunSettingsRoboTests
Change-Id: Ib53b2894b25155cca0c6ec60d1a816663d27a578
2018-02-14 14:24:02 -08:00
jackqdyulei
fe13d2813a Add method to update "state" column in anomaly db.
This state could be "new", "handled" or "auto-handled".

Bug: 72385333
Test: RunSettingsRoboTests
Change-Id: I2e3a9d2d3457f125421467e72f5b734990273abe
2018-02-13 10:16:24 -08:00
jackqdyulei
963b7cca25 Add database to store anomaly data
1. Refactor HighUsageApp to AppInfo so it could be
reused both in dialog and app restriction
2. Add BatteryDatabaseHelper to store the anomaly log

Bug: 70570352
Test: RunSettingsRoboTests

Change-Id: I900cd9746ff7f1e19bd6f3948463588b7cf72b85
2018-01-18 14:09:30 -08:00