Commit Graph

265 Commits

Author SHA1 Message Date
jackqdyulei
f51c220e98 Hook up the new page to PowerUsageSummary
Add a menu to point to the new page

Bug: 73300636
Test: RunSettingsRoboTests
Change-Id: I9956e349cdbbe2cd752bdf65020a540a329bdee3
2018-03-06 10:59:40 -08:00
jackqdyulei
319d534975 Create new PowerUsageAdvanced page
This page contains the graph at the top and app list at the bottom

In this cl, we reused some part of the code in PowerUsageAdvancedLegacy
to construct the graph, and also used controller to construct the app
list(So glad that we extracted it to controller before..)

Bug: 73300636
Test: RunSettingsRoboTests
Change-Id: I30afbc0327a5186f8280f5e3678330b363e2dc0d
2018-03-06 10:45:44 -08: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
TreeHugger Robot
26ea60a231 Merge "Fix search non-indexable update" 2018-02-28 02:09:21 +00:00
Fan Zhang
f609cad6f0 Fix search non-indexable update
- When creating preference conotrollers, if one fail, skip that one
  instead of giving up entire operation.
- Fix BatterySaverController by providing a existing looper.

Change-Id: Iefe443b7fa91e51515c5c247fab4d9588867baef
Fixes: 73903739
Test: robotest
2018-02-27 16:15:56 -08:00
Fan Zhang
f7843adabd More renaming in DashboardFragment
getPreferenceControllers() -> createPreferenceControllers() for the same
reason as in ag/3647936

Bug: 73668763
Test: robotests
Change-Id: I97670a91a2a38d1c844d1b9d37f4222c5e6f45a0
2018-02-23 16:56:30 -08:00
Matthew Fritze
e8854ec33d Add BatterySaver as SettingSlice
Convert BatterySaverController to TogglePrefController.
This was the first MasterSwitchController, so we needed
to add the preference case to updateState.

Test: Robotests
Change-Id: I32f3dee0b183807c66c19513b8b064af8f369c2a
Fixes: 67996992
2018-02-21 11:27:09 -08:00
jackqdyulei
25fc8e4556 Remove the battery optimization menu
Change-Id: I129f2c39dba506dabef2cf543e71f70cfd1e7fdf
Fixes: 73189468
Test: Test still pass
2018-02-13 11:06:26 -08:00
Salvador Martinez
408dc41228 Update copy for battery estimate related features
Many features are using the enhanced estimates but the copy for them
has gotten out of sync. This CL moves shared strings between Settings
and SysUI to SettingsLib and also updates features that use the
strings to have consistent behavior/text.

Test: Robotests
Bug: 65656091
Bug: 66909350
Bug: 67469159
Change-Id: Ie5ef1ed65429ca9805cff374f1439e5d61eb6591
2018-02-07 10:55:15 -08:00
jackqdyulei
e5a4276912 Remove the click action for battery header
Also remove the ripple effect

Change-Id: I28c3dc928816f07a18591c0777b5b2f275715ca2
Fixes: 73018312
Test: Build
2018-02-06 18:24:38 -08:00
jackqdyulei
b8ca4980f1 Remve menu item in battery settings
Bug: 72568422
Test: robotest still pass
Change-Id: Idd9463cc31bffb2f5751b630bee85789493357dc
2018-01-26 15:45:15 -08:00
Leif Hendrik Wilden
28dee1f086 Migrate to use instrumentation classes from settingslib.
Test: Compiles. Manually tested.
Change-Id: I70a6e76cc8440547746ecc008c32bd06a7de8161
2018-01-24 12:30:39 -08:00
Leif Wilden
cab0ee611d Revert "Migrate to use instrumentation classes from settingslib."
This reverts commit 1546cca529.

Reason for revert: Broke fingerprint setup flow. b/72267201

Change-Id: I8321265ae64732c526325882ddea51080decddf5
2018-01-22 20:57:36 +00:00
Leif Hendrik Wilden
1546cca529 Migrate to use instrumentation classes from settingslib.
Test: Compiles. Manually tested.
Change-Id: Ie5515bb0fe3e621fc7723a9b04ba23e4bfa9c401
2018-01-18 11:13:24 -08:00
jackqdyulei
e682126a11 Add smart battery tip.
Also move the action method from BatteryTip to TipAction. Since it
need extra data that we don't want to store it in parcel.

Bug: 71502850
Test: RunSettingsRoboTests
Change-Id: Ib658426725158d26fcdd437fa8bf6bf24e9a8c14
2018-01-12 10:32:12 -08:00
jackqdyulei
fde637ff60 Add BatteryTipDialogFragment.
This DialogFragment handles all the tip related dialogs. This cl makes:
1. All the tips parcelable.
2. Add dialog for HighUsageTip. It also need adapter to populate app
list in dialog.
3. Add and update tests

Bug: 70570352
Test: RunSettingsRoboTests
Change-Id: Ie4c986172cfc73d8746abc7457d966c8600c6145
2018-01-09 17:33:19 -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
jackqdyulei
5c56588d59 Remove toggles in battery settings.
In Android P, we only show "Battery saver" and "Power management"
in battery settings. So we need to remove other preferences.

Keep "Battery percentage" toggle for now because it is not
cross-listed in other places.

Bug: 71502850
Test: Screenshot
Change-Id: Ia3c919f61239ff71f9343f2bce961aa4b89533c0
2018-01-04 19:54:06 -08:00
jackqdyulei
fde63fc351 Add infra for battery tip
This cl adds the basic structure for battery tip:
1. BaseBatteryTip: Model class to represent the tip and build
preference and dialog
2. SummaryTip: Display a general battery summary(i.e. your battery
is good..)
3. BatteryTipLoader: AsyncLoader to load the battery tips.
4. BatteryTipPreferenceController: preference controller for
preference group to display battery tips

This cl also:
1. Remove the anomaly code in PowerUsageSummary and we will add it
to app restriction in future.
2. Add preference_category_no_title.xml to avoid the extra 32dp
blank at the top.

Bug: 70570352
Test: RunSettingsRoboTests
Change-Id: If91a553888e2eb91d55fb1d0d7bbea69652f144c
2017-12-19 13:27:33 -08:00
jackqdyulei
1240549591 Move AppListGroup to PreferenceController
Move the app list in battery settings to PreferenceController. So that
we can:
1. Clean the code in PowerUsageSummary
2. Make it easy to add/move the app list to other place in furture.

This cl:
1. Move and make it invisible since in P we don't show app list in
battery main page.
2. Move related test to BatteryAppListPreferenceControllerTest

Bug: 70234293
Test: RunSettingsRoboTests
Change-Id: Ice7a42394916ff5e71305bfe22f5c35868d87fc7
2017-12-08 10:21:54 -08:00
jackqdyulei
166102c3c0 Add feature flag for battery settings page.
Create PowerUsageSummaryLegacy and power_usage_summary_legacy, which
contains the old implementaion.

Bug: 69797586
Test: RunSettingsRoboTests
Change-Id: Icb9c25f06889462a6eedea48ae166043a6636848
2017-12-05 13:15:13 -08:00
Fan Zhang
e0b0e9f902 Refactor help menu stuff into a controller
This is a clean up to action bar menu item pattern, we will use the same
pattern to build search icon on all pages in a later change.

Bug: 68814716
Test: robotests
Change-Id: Iedd3ec263e8ccb63ed75ec7a95b28c00878b1de4
2017-11-29 15:51:04 -08:00
TreeHugger Robot
f12dbf9333 Merge changes from topic "anomaly_metric_update"
* changes:
  Add metric log for anomaly.
  Add metric id for anomaly fragments.
2017-10-31 02:09:47 +00:00
jackqdyulei
e233162c3a Add metric log for anomaly.
This cl creates metric log when anomaly surfaces in battery page or
anomaly dialog.

Each anomaly action contains two fields:
1. FIELD_CONTEXT(int): determine which fragment start this action.
2. FIELD_ANOMALY_ACTION_TYPE(int): determine action type for this
anomaly.

Bug: 68215016
Test: RunSettingsRoboTests
Change-Id: I83761e2a9c206ea7a04f7d031a6961fdab7ca9a0
2017-10-30 16:00:16 -07:00
Fan Zhang
22d53b14a8 Remove dead code and obsolete patterns
- Remove code and resource for ProcessStatsMemDetail
- Remove TintablePreference (tinting icon is not a supported
  pattern starting in Android O)

Bug: 68426851
Test: robotests
Change-Id: Ib9c2fc8332255fe29c8f3dce378456403d7af8a3
2017-10-28 11:08:19 -07:00
Fan Zhang
a8cac7a409 Move ManageApplications to sub package and remove dead code
Bug: 64804294
Test: rerun test
Change-Id: I23cbd8da9b65f52470030ba3b9b676ece2bada11
2017-10-12 13:48:54 -07:00
Salvador Martinez
42f7dcc0fb remove old anomaly code
This is dead code that should no longer be around. Note: we can't
remove the metrics constant from the proto because then someone
might try reusing it.

Test: Robotests Pass
Bug: 65599785
Change-Id: Idda679eeca739e34c2371b7aafec23a3339b7f1a
2017-09-13 20:43:20 +00:00
Roozbeh Pournader
4de9df2943 Define Utils.formatRelativeTime() and use it
Previously, relative times were formatted using formatElapsedTime()
(appending translations of "ago" to them), sometimes resulting in
grammatically hard-to-understand or unnatural localizations. Now we
use ICU's RelativeDateTimeFormatter, which uses grammatically correct
and natural localizations from CLDR data.

Bug: 64507689
Bug: 64605781
Bug: 64556849
Bug: 64550172
Test: make -j RunSettingsRoboTests
Change-Id: Ia2d098b190ab99e7748ef6f03b919f5c6174ba7d
2017-09-12 20:48:00 +00:00
Tony Mak
49aea6af1f Fix power usage detail page is launched in wrong user
Two issues:
1. UID of settings app == system UID. But isSystemUid failed to recognize
Settings in secondary user is also a system uid.
2. For USER drain type, we should launch the detail page in current
   user.

Fix: 64506728
Test: make ROBOTEST_FILTER=AdvancedPowerUsageDetailTest -j40 RunSettingsRoboTests
Test: Switch to seconday user. Go to Settings->Battery, tap owner user
      battery entry, observe that detail page is shown.
Test: Stay long enough in Settings app, make sure no
      either Settings nor Android Framework battery entry.

Change-Id: I8d66ad55f18fcb3d9567b3bf753f737f5b98c609
2017-08-29 11:38:29 +01:00
jackqdyulei
44dc63ec7b Add userId to key when type is USER
Before this cl, the app list couldn't distinguish different users
because all of them have the same key: USER.

This cl adds userId into key, to make sure the preference key
is unique.

Bug: 64605854
Test: RunSettingsRoboTests
Change-Id: Ia4de2ff85b214465a35f1983ca69a9280d053154
2017-08-14 18:36:31 +00:00
Salvador Martinez
dcb96058ef Shorten main settings battery string
This string will be too long in other languages so we're shortening
it for the main settings screen.

Test: robotests updated
Bug: 64124535
Change-Id: I5ccad99b1023f84ee72a144e07b1ea60f3fc01d5
2017-08-01 10:29:44 -07:00
jackqdyulei
8541d8905a Merge "Don't update the header when toggle menu" into oc-dr1-dev
am: 4ab4966e7a

Change-Id: I3a814981c648d9b777d2fbf5a2d243864aaaee3c
2017-07-27 18:21:16 +00:00
jackqdyulei
bc86e4747f Don't update the header when toggle menu
If we only toggle the app type in battery settings, don't update
the header. Then it won't have flicker in battery header.

Bug: 64065456
Test: RunSettingsRoboTest
Change-Id: If1cfa745f723f808ad9c5fd921be797acd3199ba
2017-07-26 15:28:59 -07:00
Michael Wachenschwanz
a47a3f58bf Merge "Add Foreground Service time to battery usage" into oc-mr1-dev 2017-07-24 19:02:12 +00: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
Lei Yu
ab7a4db9df Merge "Make anomaly item refresh in battery" into oc-dr1-dev
am: 0ec3e4e626

Change-Id: Ie3e4b7ead145b22c44383443229043722b9e86d9
2017-07-22 00:32:21 +00:00
jackqdyulei
88b27fdeac Make anomaly item refresh in battery
Bug: 63908155
Test: RunSettingsRoboTest
Change-Id: I3e220001ca989020447403641360fade4d09e969
2017-07-21 10:37:14 -07:00
Alex Kulesza
2f0e60ccda Make time remaining estimate debug mode more reliable.
Previously, the long click handler was unregistered on first use and
never re-registered. This meant that, e.g., on plugging and unplugging
the phone, debug mode stopped working. This change moves long click
activation into restartBatteryInfoLoader().

Bug: 63133793
Test: make RunSettingsRoboTests
Merged-In: I4c25a1f05ab3718bf06faf455cf670b5460a7306
Change-Id: I4c25a1f05ab3718bf06faf455cf670b5460a7306
2017-07-19 01:04:08 +00:00
Alex Kulesza
120e7a71c6 Make time remaining estimate debug mode more reliable.
Previously, the long click handler was unregistered on first use and
never re-registered. This meant that, e.g., on plugging and unplugging
the phone, debug mode stopped working. This change moves long click
activation into restartBatteryInfoLoader().

Bug: 63133793
Test: make RunSettingsRoboTests
Change-Id: I4c25a1f05ab3718bf06faf455cf670b5460a7306
2017-07-18 14:58:51 -04:00
jackqdyulei
d2d524d958 Merge "Update summary for "Voice Calls"" into oc-dr1-dev am: 69d6f2840f
am: d8b92b4d82

Change-Id: Ic8a6bc7312c1a464104867e87daecf72bdcffaa9
2017-07-07 23:59:46 +00:00
TreeHugger Robot
69d6f2840f Merge "Update summary for "Voice Calls"" into oc-dr1-dev 2017-07-07 23:52:58 +00:00
jackqdyulei
85e771da78 Update summary for "Voice Calls"
Change it from "Screen usage 2m" to "2m", since this is not a screen
usage. This cl has effect on all non-app batterySipper.

Bug: 63443732
Test: RunSettingsRoboTests
Change-Id: I027b3234bd7b56738ab31c5dfbc0d8bd7f19186e
2017-07-07 14:52:27 -07:00
Andrew Sapperstein
512dc80a42 Duplicate ambient display setting in battery settings.
Also fixed a bug where ambient display was duplicated
in search results.

Change-Id: I71e8d9ff12e59ad7b9eb309d1093df1ba67abaae
Merged-In: Iacdb53c70e90f8240da1ed9acec7e382ed1df5de
Fixes: 62298578
Test: robotests
2017-07-07 20:10:09 +00:00
Andrew Sapperstein
fedae393ef Duplicate ambient display setting in battery settings.
Also fixed a bug where ambient display was duplicated
in search results.

Change-Id: Iacdb53c70e90f8240da1ed9acec7e382ed1df5de
Fixes: 62298578
Test: robotests
2017-07-07 13:07:54 -07:00
Alex Kulesza
f30915e860 Make utility methods static. am: 43d4fefb36
am: cc56b1aa04

Change-Id: Ia1ebdff4fcd82f829e90f76bf7d49b0adbc8febc
2017-07-06 01:36:33 +00:00
Alex Kulesza
43d4fefb36 Make utility methods static.
BatteryUtils.convertUsToMs and .convertMsToUs should be static, and now
they are.

Bug: 63347148
Test: make RunSettingsRoboTests
Change-Id: If652e2d3e1260df9a933805d7da670fbb26b2c25
2017-07-05 18:53:22 -04:00
jackqdyulei
051fb19dd4 Merge "Add quickUpdate method to BatteryHeaderPrefCtrl" into oc-dr1-dev am: 7ea8ecdae1
am: fc55a3cef1

Change-Id: I7d23a1bab37417064a1ffc358f9856d711426c19
2017-06-28 17:20:04 +00:00
TreeHugger Robot
7ea8ecdae1 Merge "Add quickUpdate method to BatteryHeaderPrefCtrl" into oc-dr1-dev 2017-06-28 17:08:46 +00:00
jackqdyulei
19648756cb Add quickUpdate method to BatteryHeaderPrefCtrl
This cl adds a method called quickUpdateHeaderPreference, which will
update the following items immediately without waiting for the
BatteryInfo:
1. Battery level
2. Battery charging status(whether to show lighting bolt)
3. Clear the charging summary

Note: this cl doesn't optimize the BatteryInfo loading time.

This cl also rename "TimeText" to "BatteryPercentText" because in
new UI that textview is used to display battery percentage.

Bug: 63029231
Test: RunSettingsRoboTests
Change-Id: I8cc886b35e937d73b46e47e303ff0994ccdcb61c
2017-06-27 13:35:41 -07:00
jackqdyulei
8ce27bc37c resolve merge conflicts of 758b2d4ae6 to master
Test: I solemnly swear I tested this conflict resolution.
Change-Id: Ic82e244ad1485bdd1f73cff628e0e343bfdb1c53
2017-06-26 18:30:40 -07:00