Commit Graph

166 Commits

Author SHA1 Message Date
jackqdyulei
82fcadad65 Make flag "showAllapps" persistent in PowerUsageSummary
This flag is used to decide whether to show all the apps
(including system app, service..) in battery settings

Handle it in onCreate() and onSaveInstanceState()

Bug: 62422948
Test: RunSettingsRoboTests
Change-Id: I30c0d6e1e25902f1192fc2564aa09d635b5e0f4f
Merged-In: I30c0d6e1e25902f1192fc2564aa09d635b5e0f4f
2017-06-08 21:49:15 -07:00
jackqdyulei
03539a07e4 Add method to calculate last full charge time
Bug: 38481300
Test: RunSettingsRoboTests
Change-Id: Icd551921f263352eb01d0c6ada62d277c8699507
2017-05-26 13:21:42 -07:00
TreeHugger Robot
f68bb7e75c Merge "Sort app list after smeared on screen" into oc-dev 2017-05-25 22:41:00 +00:00
jackqdyulei
f984b1e1ae Sort app list after smeared on screen
Then we could make sure the app list is sorted

Bug: 62035385
Test: RunSettingsRoboTests
Change-Id: I3fa3d6ffc5930cf011e382632143e459fdbc4369
Merged-In: I3fa3d6ffc5930cf011e382632143e459fdbc4369
2017-05-25 10:09:05 -07:00
TreeHugger Robot
987ee5338a Merge "Split loading process for battery header" into oc-dev 2017-05-24 01:22:25 +00:00
jackqdyulei
4a7c8d7125 Split loading process for battery header
This cl creates BatteryHeaderPreferenceController, which will first
load the battery level in ui thread(in displayPreference()), then
display the remaining time once we get the battery stats.

This is the best we can do to avoid ui flashing while removing the
animation

Bug: 38349587
Test: RunSettingsRoboTests

Merged-In: Ic3622bb73562ba42e69b37e5674a724c03c45f12
Change-Id: Ic3622bb73562ba42e69b37e5674a724c03c45f12
2017-05-23 16:21:33 -07:00
jackqdyulei
3b1a964629 Update the strings for "show all apps"
Bug: 38328724
Test: Screenshot
Change-Id: If48ff26f691795dcf206346af6a9a0be62bbf733
2017-05-23 15:17:41 -07:00
TreeHugger Robot
161571617b Merge "Revert "Add animation for battery asyncLoader."" into oc-dev 2017-05-23 01:49:23 +00:00
Lei Yu
78684dc049 Revert "Add animation for battery asyncLoader."
This reverts commit a3c528f64d.

Test: Build
Change-Id: Ib50221873e39dee40c5cf8e4b41dcf7aa13f6134
Merged-In: Ib50221873e39dee40c5cf8e4b41dcf7aa13f6134
2017-05-22 16:49:55 -07:00
TreeHugger Robot
28cf04d994 Merge "Add screen usage string for battery settings" into oc-dev 2017-05-18 19:10:16 +00:00
jackqdyulei
2b923ce44f Smear screen power usage based on activity time.
Bug: 38328636
Test: RunSettingsRoboTests
Change-Id: I8e7baadcd88a8e9d674f5bc8d8e42e0f3953c98a
2017-05-17 18:06:47 -07:00
jackqdyulei
7548f1fa77 Add screen usage string for battery settings
In advanced battery page we still use "Used for"

Bug: 38328647
Test: Build & Screenshot
Change-Id: Ic194bfed45a76c811c431a13b5554f5bc978bca5
2017-05-17 13:14:45 -07:00
jackqdyulei
a3c528f64d Add animation for battery asyncLoader.
When battery asyncLoader is loading batterystats, show a battery
placeholder(critical level) and animate to real status once data is
loaded.

Bug: 35917699
Test: RunSettingsRoboTests
Change-Id: Ie4ff73ff2cc0b9e17b4541e3284bf2ac34da42c4
Merged-In: Ie4ff73ff2cc0b9e17b4541e3284bf2ac34da42c4
2017-05-11 15:27:23 -07: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
Lei Yu
8f9f25c541 Merge "Add TtsSpan for formatted time." into oc-dev 2017-04-24 17:01:59 +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
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
jackqdyulei
6246fad7ff Make battery status refresh in SettingsActivity
Before this cl, the battery text in SettingsActivity is one time
update, won't refresh based on real battery status.

This cl elicits BatteryBroadcastReceiver from PowerUsageBase and
make it reusable in both SettingsActivity and battery page.

BatteryBroadcastReceiver will invoke callback if:
1. Battery level changed on integer level(100->99)
2. Battery status has changed(i.e. charging)

Bug: 29346753
Test: RunSettingsRoboTests

Change-Id: If522d15a700ccbc8bae24f5712e05ec27ea4cbfa
2017-04-14 15:08:57 -07:00
Lei Yu
c4f08120b1 Merge "Revamp battery Ui in low battery mode" into oc-dev 2017-04-13 21:43:38 +00:00
jackqdyulei
f8e6f43425 Revamp battery Ui in low battery mode
This cl refine battery icon ui in low battery mode:
1. Should show indicator(fixed in ag/2035178)
2. Show bolt icon when charging
3. When battery is low, set battery background as red and indicator
as white.

This cl also includes the field updates for battery.

Bug: 36862496
Test: RunSettingsRoboTests
Change-Id: Ifb2ed339742119bbff78712df09288b895756b1f
2017-04-12 12:47:52 -07:00
jackqdyulei
7f4c5fc1f4 Move bunch of battery methods to BatteryUtils.java
This cl moves following methods to BatteryUtils:
1. shouldHideSipper
2. removeHiddenBatterySippers
3. calculateBatteryPercent

As a result, we could use these methods in battery page as well
as app info page.

This cl also move bunch of tests to new file and add test for
method calculateBatteryPercent

Bug: 36816681
Test: RunSettingsRoboTests
Change-Id: Ic32700fe9741fbb96363db4af2d4fccb3ee8e317
2017-04-12 10:10:51 -07:00
Lei Yu
27dc9b69ac Merge "Add log for BatteryUtils" into oc-dev 2017-04-10 17:06:45 +00:00
jackqdyulei
5d2918a675 Add log for BatteryUtils
This cl add logs to get more data for app usage time.

Also refactor BatteryUtils to singleton pattern because we need
to extract package name from uid.

Bug: 36909166
Test: RunSettingsRoboTests
Change-Id: I6ede354035c46e46cb856b7cf57bd1b7ccbd6d4f
2017-04-07 11:18:39 -07:00
jackqdyulei
ab5ca9f5cd Remove misc data in battery main page.
The removed types are:
1. DrainType.UNACCOUNTED
2. DrainType.OVERCOUNTED

This cl removes the above types in PowerUsageSummary and
PowerUsageAdvanced

Bug: 36874846
Test: RunSettingsRoboTests
Change-Id: I1807c44a2c0a9c2fa124cdef962a6411ae6830ca
2017-04-06 15:09:57 -07:00
jackqdyulei
273ad50a3a Ui changes in battery main page
1. Refine the battery header view
2. Move stats section to the place above power management
3. Add last full charge battery stat
4. Add the disclaimer as a footer

Also update the method name in test file, and this ui changes
also fix the header flash problem.

Bug: 36576021
Bug: 36494178
Test: RunSettingsRoboTests
Change-Id: I9784dbbbe16e61da7287f300183347dd4eee6a2b
(cherry picked from commit edfd09d590)
2017-04-04 10:06:35 -07:00
Lei Yu
ae179f182f Merge "Hide Wifi and Systemui in settings main page" into oc-dev 2017-03-30 01:14:36 +00:00
jackqdyulei
c577ef0a75 Hide Wifi and Systemui in settings main page
Also move the systemui to category system

Fix: 36644740
Fix: 36645264
Test: RunSettingsRoboTests

Change-Id: I6b64a7dca58091f3a1d8b7d99c8bae7ddf9169f9
(cherry picked from commit 1e95b74f77)
2017-03-29 20:23:50 +00:00
jackqdyulei
f094b87661 Add summary for categories in battery advanced page
If the category only contains one app, show usage time, otherwise
show app with maximum usage.

Also add usage time for apps in battery settings page.

Bug: 35396770
Test: RunSettingsRoboTests
Change-Id: I43fe9c2289535be2c1b95ffded6b52b0ff099589
(cherry picked from commit 3bbaca9c7c)
2017-03-29 20:23:22 +00:00
jackqdyulei
ddba966700 Revamp the battery usage details page.
This cl adds AdvancedPowerUsageDetail to show the usage details page.
The AdvancedPowerUsageDetail contains all the needed ui components:
1. App Header
2. Two buttons
3. Usage breakdown preference category
4. Power management preference category

This cl also adds preference controller for two buttons but the
detail implementation will be added in the following cl.

Following cl will also remove previous detail page.

Bug: 35810915
Test: RunSettingsRoboTests
Change-Id: I17f95d1288762094671c0f148fa73367e51f175e
2017-03-24 20:58:44 -07:00
Evan Laird
3822f122a7 Add battery percentage switch to display settings
Test: mmma packages/apps/Settings/tests/robotests
Bug:32539932
Change-Id: I08c1d0f3b6cb8be7d1456268498356f7ed833e5c
2017-03-10 14:35:40 -05:00
Doris Ling
f2cf2aea37 Remove code that check for dashboard feature.
- remove DashboardFeatureProvider.isEnabled() and all relating code
and tests.

Bug: 35764802
Test: make RunSettingsRoboTests
Change-Id: If7796677abc8904b7436525836d50cdef38e37a4
2017-03-07 11:15:03 -08:00
jackqdyulei
b0b45c3225 Add metric enums for menu in battery settings page.
Bug: 35063415
Test: RunSettingsRoboTests
Change-Id: I23f58a73f7e17da56796687209610165dd688aa6
2017-03-02 11:24:17 -08:00
jackqdyulei
44e8968662 Hide bluetooth and media in battery settings page.
Media is a bundled process which contains the following packages:

com.android.providers.downloads
com.android.mtp
com.android.providers.media
com.android.providers.downloads.ui

This cl moves them to advanced battery page.
1. Bluetooth lives in category bluetooth
2. Media lives in category system

Bug: 35811926
Test: RunSettingsRoboTests
Change-Id: Ie229fa15e2e62b67d571988f7f4e7788a665bcdd
2017-03-01 13:22:12 -08:00
jackqdyulei
238c1c000b Add batterysipper type check in PowerUsageFeatureProvider
This cl adds isTypeSystem to PowerUsageFeatureProvider and
changes isTypeService. After this cl, the following items will
be moved to advanced battery page:
1. Calendar Storage(Move to System)
2. MediaServer(Move to System)

Create this check in FeatureProvider to make sure this check
is flexible in different cases. Also refactor the PowerUsageSummary
to use same test fragment

Bug: 35629871
Bug: 35628690
Bug: 35317876
Test: RunSettingsRoboTest
Change-Id: I8c083cb2557a7e900aea01e682c13a000bacb7a9
2017-02-27 19:42:22 -08:00
Lei Yu
0497ee9731 Merge "Add NPE check for battery header update." 2017-02-27 17:56:24 +00:00
jackqdyulei
166d25abb1 Add NPE check for battery header update.
Battery header uses AsyncTask to update the label. So if user
press back button before the update completes, the "getContext()"
in AsyncTask callback will return null, which causes the crash.

It seems there is no good way to fix it expect adding a NPE check.

Bug: 35650224
Test: RunSettingsRoboTests
Change-Id: I7bd9fd87caa13614fe1896cf72557a09744691c1
2017-02-24 14:17:58 -08:00
jackqdyulei
906055e383 Add NPE check for screen and cellular update.
When battery is full of charge, usageList in BatteryStatsHelper
will be empty. As a result, we cannot find BatterySipper with
type screen and cell, which creates the null pointer error.

In this cl, I add NPE check for sipper. When sipper is null, all
data will be set to default value. I also add check for totalPower
so we won't have divided by zero error.

Bug: 35757789
Test: RunSettingsRoboTests
Change-Id: I80f3c0c542e0a50868e7c314a8d9b3c17999d8c6
2017-02-24 13:47:14 -08:00
jackqdyulei
3934722439 Add battery stats perference in battery settings page.
Add a preferenceGroup at the bottom of the page, which contains
Screen and Cell usage data.

Bug: 35305983
Test: RunSettingsRoboTests & Screenshot
Change-Id: Ida6e92ddbd7155ec974a2f04c6d6d02ab9dab210
2017-02-21 20:47:40 -08:00
jackqdyulei
5115265a50 Add toggle in menu to show/hide hidden apps
In the previous cl we hide unrelated apps and distribute hidden
battery usage among other apps. Now we add a toggle in menu to
show old power accounting as well.

Bug: 35366708
Test: RunSettingsRoboTests
Change-Id: I6918b7095cf84d9756ad3972ff50a62aeae1de0e
2017-02-21 16:00:20 -08:00
Lei Yu
aba2c95ae0 Merge "Refine battery text in battery header" 2017-02-21 18:40:53 +00:00
jackqdyulei
e2fbdfefef Refine battery text in battery header
1. When there exists estimate time, show it, otherwise
show battery status label.
2. Change the summary based on whether it is charging.
(Estimated time left vs Time to full charge)

Bug: 35328749
Test: RunSettingsRoboTests
Change-Id: I64ee8acd248062b4effcfc58ed908be7d89621a3
2017-02-17 13:57:43 -08:00
Fan Zhang
c6ca314c0b Log source with visibility change
- Add a method in VisibilityLoggerMixin to log visible event using
  LogMaker, which allows logging additional FIELD_CONTEXT field.
- In Utils.startFragment, add current page's metricsCategory as an extra
  to next page.
- In next page's onResume(), extract the previous page's metricsCategory
  and send it to VisibilityLoggerMixin.visible()
- Update all caller with additional paramters

Change-Id: I8e1f2597fa465b7d3aa16fa1d21c052a3219694a
Fix: 35359289
Test: RunSettingsRoboTests
2017-02-15 17:17:19 -08:00
TreeHugger Robot
85de8ad126 Merge "Add BatteryMeterView in Settings" 2017-02-13 20:45:17 +00:00
jackqdyulei
51967c0e6a Add BatteryMeterView in Settings
1. Show gauge icon at the top of battery main page instead of
battery usage graph.
2. Move the click action from battery usage graph to gauge icon.

Bug: 34387464
Test: RunSettingsRoboTest

Change-Id: Ib182619d6805b401cde03a50e2ae907cf4df7b94
2017-02-13 11:03:07 -08:00
jackqdyulei
ef48c131c7 Distribute all the hidden items to apps
1. Add screen check in the shouldHideSipper()
2. remove all the battery usage for hiddenSipper from
percentage calculation, in this way we can distribute
hidden sippers to all the apps

Bug: 35153599
Test: RunSettingsRoboTests
Change-Id: I82673b282c14c92269d7f8bc71e07de90a37720c
2017-02-09 09:43:43 -08:00
jackqdyulei
a224b010b9 Create Advanced battery page
The advanced page shows two major parts, one is the battery usage
graph and the other is battery usage list. In usage list, each item
shows basic info of battery usage of one type(e.g. Apps, System)

Bug: 34385770
Test: RunSettingsRoboTests

Change-Id: I22475a489285787afa775af8d5ae3340eff1eed9
2017-02-06 13:44:59 -08:00
jackqdyulei
3ee22131a4 Add summary for items in App Usage List in Battery page
This summary shows the active time of the app. For example
"Used for 27m".

Bug: 34467139
Test: RunSettingsRoboTests & Take screenshots
Change-Id: I0ef48427ad21be4dacd290fffb2c5d519ef58506
2017-01-27 14:15:38 -08:00
TreeHugger Robot
a40d72b9e9 Merge "Making "Battery Saver" use MasterSwitchPreference." 2017-01-25 19:31:29 +00:00
jackqdyulei
66cce1f9e9 Making "Battery Saver" use MasterSwitchPreference.
By using MasterSwitchPreference, we make "battery saver" to have
two parts: left part is the clickable summary jumping to other
fragment while right part is a switch toggle.

Also remove the previous battery saver preference.

Bug: 34279051
Test: RunSettingsRoboTests

Change-Id: If36fa9741e413a9bbdd57fa67a2c15b6e457afd7
2017-01-24 17:34:14 -08:00
Fan Zhang
7e6df837ee Remove getCategoryKey() from DashboardFragment children.
Use the centralized registry to look up category key instead.

Bug: 32936784
Test: make RunSettingsRoboTests -j40
Change-Id: I0b8c72d70f93e4b5c58871ac90de41f69ad15653
2017-01-24 14:51:15 -08:00