Commit Graph

1451 Commits

Author SHA1 Message Date
Bookatz
64ac70d257 Merge "Add BLE results counter to batterystats" into oc-dev am: b296697e8e
am: 9b54572992

Change-Id: Ia4ea1a7e24267457ae659c8a67ff15c24c1b0a46
2017-05-09 17:39:50 +00:00
TreeHugger Robot
b296697e8e Merge "Add BLE results counter to batterystats" into oc-dev 2017-05-09 16:03:28 +00:00
Salvador Martinez
52aa68f704 Fix null pointer error && add settings side guard
The null check for the cursor happens in the try block
which causes a null pointer error in the finally block
even though we avoid executing the other code because
we still try to close the cursor. This change moves
that outside of the try block to avoid that. Also added
a test to verify that a no-op occurs in the method that
uses the enhanced prediction that would have caught this.

Additionally, the method for checking if the enhanced
prediction was available was not being called in Settings.
This CL adds that check and a relevant tests to ensure it
is respected.

Test: Robotests
Bug: 38031439
Change-Id: I6924acb5552baf09a9ff0cdef8e30881115aa1ca
2017-05-08 16:39:38 -07:00
Jesse Evans
78e3a051d8 Properly set isInstantApp for power usage page
Previously the app header was not properly configured to be aware
it was rendering an instant app. This change properly sets the value
and adds tests to ensure it is correclty set in the future.

Test: make RunSettingsRoboTests -j30
Bug: 37919863
Change-Id: I0cbe2cb03bcd44208408f68188387e53ae98d8fb
2017-05-08 15:53:47 -07:00
jackqdyulei
0dce3c0764 Add framework for anomaly detection flags
This cl adds isAnomalyDetectorEnabled(type), which decides whether
to turn on specific check with that type.

Added method is used in AnomalyLoader.

Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: I71c6acb1c58c24453a1936c5c36f59fe4e86cfd4
2017-05-08 14:19:09 -07:00
jackqdyulei
72cce92768 Merge "Only use PROCESS_STATE_TOP as foreground time." into oc-dev am: 651261c7dd
am: 83e2511d45

Change-Id: I217d9f4a835f8352dcc7868067f09a5cd9b313ae
2017-05-05 19:35:55 +00:00
TreeHugger Robot
651261c7dd Merge "Only use PROCESS_STATE_TOP as foreground time." into oc-dev 2017-05-05 18:55:29 +00:00
jackqdyulei
01e690e377 Only use PROCESS_STATE_TOP as foreground time.
There are some miscalculations in state FOREGROUND_SERVICE and
FOREGROUND, so we move them out of the foreground time for now.

We will fix it after O and may add them back later.

Bug: 37000096
Test: RunSettingsRoboTests
Change-Id: Ic3f2f7fa69e8a213895c601630d1cca94fd32220
2017-05-05 10:23:09 -07:00
TreeHugger Robot
910f69c62a Merge "Add ability to speak to provider for enhanced estimate" 2017-05-05 04:50:14 +00:00
TreeHugger Robot
78a3f9a748 Merge "Fix randomly showing anomaly icon" 2017-05-05 03:13:58 +00:00
Salvador Martinez
126c032afa Add ability to speak to provider for enhanced estimate
Added code that checks if the provider for the enhanced battery
drain estimate is available. If it is available we use that
value instead of the one computed by BatteryStats.

Test: Robotests
Bug: 37753227
Change-Id: I7eae01b56f85d33eafc42ee0f18bb752779581b2
2017-05-04 20:05:53 -07:00
TreeHugger Robot
81586b5681 Merge "Add impl for force stop action" 2017-05-05 01:27:24 +00:00
jackqdyulei
3bd2420911 Fix randomly showing anomaly icon
Sometimes PowerGaugePreference will show anomaly icon when they
shouldn't. I think it is because PreferenceViewHolder has cache
about the previous data.

This cl fixes it by setting compound drawable as 0 when
showAnomalyIcon is false.

Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: I5ea0dc307aafcce386c84963e618d1213de5ec19
2017-05-04 18:08:31 -07:00
jackqdyulei
66242d0e3d Add impl for force stop action
Also refactor the AnomalyAction so it could take source id as
a parameter, which represents the fragment that invokes it.

Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: Ib53865f92e1a6f1e9dcc1480c0c74fbcfb0226f4
2017-05-04 10:37:42 -07:00
jackqdyulei
3dbd77e5ae Add control for the anomaly detection
Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: Id71b1324f567e7aa9b51dc25247fff9151d4e108
2017-05-04 10:11:54 -07:00
Lei Yu
5a24c1b84c Merge "Add icon in PowerUsageAnomalyDetails" 2017-05-04 16:56:21 +00:00
Android Build Merger (Role)
b1726776c6 Merge "Merge "Update "Phone idle" subtext" into oc-dev am: 3a1d6db0e7 am: 85950d5ebd" 2017-05-04 01:28:52 +00:00
jackqdyulei
5c39601738 Merge "Update "Phone idle" subtext" into oc-dev am: 3a1d6db0e7
am: 85950d5ebd

Change-Id: I0d3d67b274242f72fa46c157c7cee883a476a2e2
2017-05-04 01:28:37 +00:00
TreeHugger Robot
3a1d6db0e7 Merge "Update "Phone idle" subtext" into oc-dev 2017-05-04 01:11:24 +00:00
jackqdyulei
f80eaf73d9 Add icon in PowerUsageAnomalyDetails
Also add icon size in AnomalyPreference so it won't be too large.

Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: I124e99eba295d6600ffc73c05f73dd3c5c9de158
2017-05-03 17:02:18 -07:00
jackqdyulei
4cb19e74b3 Add anomaly icon for PowerGaugePreference
When the app contains anomaly, we should show anomaly icon(triangle
alert).

This cl also extracts a new method refreshAppListGroup from refreshUi.
New method is used to only refresh appListGroup. Reason for this action:

1. Improve performance(partial refresh)
2. We init AnomalyLoader in refreshUi, invoke refreshUi in
onLoadFinish will create infinite loop.

Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: If54c89349e21763ca714123ac6ae884bd0f6a377
2017-05-03 16:01:55 -07:00
jackqdyulei
995ca362c9 Update "Phone idle" subtext
Bug: 37897135
Test: RunSettingsRoboTests
Change-Id: I38a63ef9fdf574ba277ed889e7e070c36ae14b01
2017-05-03 15:27:50 -07:00
jackqdyulei
59bc0cc7e7 Add title and summary for "High usage" pref.
The logic for this pref lives in AnomalyPreferenceController.

Bug: 36924669
Test: RunSettingsRoboTest
Change-Id: Ib88d8e76e1af8a2270fcb671baf55e9f6564b96e
2017-05-03 10:48:13 -07:00
jackqdyulei
4dd126845b Merge "Hide subtitle for wifi and bluetooth" into oc-dev am: 4b50e58a1d
am: 09adbd2f3b

Change-Id: I2d620d2fecf016434886ef67a5fa88128f722a6d
2017-05-03 02:31:43 +00:00
TreeHugger Robot
4b50e58a1d Merge "Hide subtitle for wifi and bluetooth" into oc-dev 2017-05-03 02:18:53 +00:00
jackqdyulei
55a97a9ad4 Add abnormal app page for battery settings
1. Add abnormal app page
2. Add strings for abnormal app page
3. Change AnomalyPreferenceController to open abnormal app page,
when there are more than one anomaly.
4. Add AnomalyPreference, who stores a reference of anomaly.

Also rename AnomalyPreferenceController to
AnomalySummaryPreferenceController because this controller is not
used to handle AnomalyPreference.

Following cls will add summary and icon for each abnormal app.

Bug: 37681665
Test: RunSettingsRoboTests
Change-Id: I4266f906476ff8daccd962572c8cfa99f948080a
2017-05-02 15:59:22 -07:00
jackqdyulei
f68fbce16e Hide subtitle for wifi and bluetooth
Hide it for now because the usage time is not accurate. We may
revisit it in the future.

Bug: 37912143
Test: RunSettingsRoboTests
Change-Id: I37b9dca6a188f2973a7a83641d12b24001d629ae
2017-05-02 15:16:19 -07:00
jackqdyulei
4aa3358c4c Add wakelock anomaly detector
This cl detects whether apps hold wakelock for long time.
For now we use the following attribute:
1. Longest total duration time among all the wakelocks
for one app.

Following cl will:
1. Get threshold from server side.
2. Add more attributes to make the detection more robust.

Bug: 36925184
Test: RunSettingsRoboTests

Change-Id: I1946faf69c363f6aa823d0005d6e03bc9082c085
2017-05-02 14:55:33 -07:00
TreeHugger Robot
9a68befefd Merge "Framework for the anomaly detection." 2017-05-02 02:03:01 +00:00
Jesse Evans
2560e2eacd Merge "Hides app buttons for instant apps" into oc-dev am: 965508fc3e
am: 34e0c7afdf

Change-Id: I8b0624d28b43274465b9249552290fac950e9638
2017-05-02 00:36:34 +00:00
jackqdyulei
df6dd14799 Framework for the anomaly detection.
This cl adds the following components for anomaly dection:
1. AnomalyLoader: run all the anomaly checks in the background
2. Anomaly: Data class to represent what anomaly it is
3. Detector: Different kinds of anomaly detector with common interface
4. Action:  Suggestions when facing anomaly(Force stop, uninstall)
5. AnomalyDialogFragment: show the confirm dialog for action
6. AnomalyPreferenceController: handle update and click for
anomalyPreference, since it will be used in multiple fragments.
7. AnomalyUtils: utility class for anomaly

This cl also adds skeleton for the wakelock check and action. Following
cls will add real implementation about it.

Bug: 36924669
Test: RunSettingsRoboTests
Change-Id: I89fc4b6963757869b93791b4275ca53c04ab9604
2017-05-01 16:03:09 -07:00
Jesse Evans
0d7854aa43 Hides app buttons for instant apps
Hides the app buttons when the app is an instant app.

Added a todo to remove this functionality when instant apps
are properly supported by this controller.

Test: make RunSettingsRoboTests
Bug: 37313605
Change-Id: I3fca106a8e72c41b626e1182f5ba1089b90e8e2a
2017-05-01 11:12:52 -07:00
TreeHugger Robot
1e583e5d03 Merge "Add method to check whether to enable anomaly detection" 2017-04-28 18:37:38 +00:00
Bookatz
138973683e Add BLE results counter to batterystats
Bug: 37720787
Test: none

Change-Id: Ia5f781cb039256cea7747bb0b731686a7469d103
2017-04-28 09:28:01 -07:00
jackqdyulei
d1a1fede6f Add method to check whether to enable anomaly detection
Bug: 37709022
Test: RunSettingsGoogleRoboTests
Change-Id: Ie95b8899f0201d392ba06e4747a0d926d7474d68
2017-04-26 10:48:05 -07:00
TreeHugger Robot
e494a3e59b Merge "Distribute the misc among all the apps" into oc-dev 2017-04-25 21:44:55 +00:00
jackqdyulei
106dc459e0 Move battery stats loading to AsyncLoader.
It takes 3-4 seconds to load the battery settings page in Ryu. Main
reason is that it takes too long to init BatteryStatsHelper.

This cl moves loading code to AsyncLoader, and we will refresh ui once
the loading part is finished.

Following cl will add animation for the battery header to make it not
so janky

Bug: 37196170
Test: RunSettingsRoboTest
Change-Id: I40dfdde4a072e28a56c8fdf0ec6d671b5109fc6d
2017-04-25 13:26:17 -07:00
jackqdyulei
a245188a65 Distribute the misc among all the apps
Distribute it in:
1. Battery main page(PowerUsageSummary)
2. Advanced battery page(PowerUsageAdvanced)

Bug: 37487061
Test: RunSettingsRoboTests
Change-Id: Id1810b81a6b380d908bcdc18421530e938578c37
2017-04-25 11:48:24 -07:00
TreeHugger Robot
e5fa4cd4b5 Merge "Remove STATE_TOP_SLEEPING from foreground time" into oc-dev 2017-04-25 18:36:01 +00:00
jackqdyulei
7c6e6e9254 Remove STATE_TOP_SLEEPING from foreground time
That state means the time when app is on top while screen is off,
we should not count it as foreground usage time.

Bug: 37547898
Test: RunSettingsRoboTests
Change-Id: I67e0c135d0c4b71cd667037b0d5dc7673b53607e
2017-04-24 11:37:00 -07:00
Lei Yu
8f9f25c541 Merge "Add TtsSpan for formatted time." into oc-dev 2017-04-24 17:01:59 +00:00
TreeHugger Robot
1c7e25d3b6 Merge "Remove duplicates between battery and display settings" into oc-dev 2017-04-22 00:56:09 +00:00
jackqdyulei
f4c1cef322 Add TtsSpan for formatted time.
Talk back will read "Used for 3m" as "Used for 3 meters", but
it will read "Used for 3h 3m" correctly.

This cl add specific Ttsspan if the time only contains "minute"

Bug: 36379530
Test: Run SettingsRoboTests

Change-Id: I033575938cce24221980dddd9d66be4e18804541
2017-04-21 14:42:42 -07:00
TreeHugger Robot
057bd05420 Merge "Fix wrong voice call time in battery page" into oc-dev 2017-04-21 20:04:08 +00:00
jackqdyulei
34145705de Fix wrong voice call time in battery page
The voice call is belong to DrainType.PHONE, which is not an app.
This cl stop using method in BatteryUtils to calculate the time, since
that method should only be used for DrainType.APP

Bug: 37402819
Test: RunSettingsRoboTests
Change-Id: I3aa7366401e54df87ffe913af0dcb1bcd5abf110
2017-04-21 11:00:50 -07:00
TreeHugger Robot
72ca5b0bb2 Merge "Include type service as type system" into oc-dev 2017-04-21 01:45:28 +00:00
Matthew Fritze
3266e3d712 Remove duplicates between battery and display settings
Change preference keys of duplicate settings between
display and battery to avoid duplication in search.

Bug: 33701673
Test: make RunSettingsRoboTests
Change-Id: Iaad52f16ce33c478c64bcec656cc8edbe0c97283
Merged-In: I56c82e9e7f163d345065ca478849de9b14c173fe
2017-04-20 11:11:20 -07:00
TreeHugger Robot
55a3944dbf Merge "Hide User category if only one user in device" into oc-dev 2017-04-18 03:21:55 +00:00
jackqdyulei
47006d7794 Include type service as type system
Bug: 37293081
Test: RunSettingsRoboTests
Change-Id: Id9259a1a516fdf368d41f1b7205a1515d0989aab
2017-04-17 18:05:05 -07:00
jackqdyulei
cdba2e7266 Hide User category if only one user in device
Fix: 37293124
Test: RunSettingsRoboTests
Change-Id: If50548396614672b05811d37a719f8f08df3165d
2017-04-17 17:58:38 -07:00