Commit Graph

32 Commits

Author SHA1 Message Date
Raff Tsai
791ad4d568 Sync lastest SettingsLib interface
Test: rebuild
Change-Id: I3131f701deb47acae9f19436cbe66e077ea004ee
2019-12-26 11:58:38 +08:00
Jason Chiu
86e98bf448 Execute getting battery info on the parallel executor
Getting battery info is time consuming and may block other tasks in the
same background thread.

Executing it on the parallel executor can improve app launch performance.

Bug: 141694556
Test: robotest
Change-Id: I55517e03961929c2b288e230ed474d45915d63fd
2019-09-27 17:33:08 +08:00
Salvador Martinez
415f35b670 Update BatteryUtils to update system battery estimate cache
To try and ensure SysUI and Settings don't show different battery
estimates we have settings always push the estimate to the system
cache which will cause the status bar to update as well.

Test: manually trigger battery broadcasts and observe
Bug: 124030091
Change-Id: I07a17ecf2a42c3022673ad2aca438f8d6e81b41f
2019-04-24 10:35:41 -07:00
Salvador Martinez
6a81e41c7c Update battery stuff to use SettingsLib Estimate class
This will make the upcoming consistency Cl easier to implement.

Test: Robotests still pass
Bug: 124030091
Change-Id: Ief4989e2b5f9b83b5c3b93d17f9f9fa12136f3ee
2019-04-19 17:35:23 +00:00
Raff Tsai
deda67b7bf Revert "Revert "Change battery tip text""
This reverts commit 39beb2533f.

Reason for revert: <start to implement>

Fixes: 121042353
Test: adb shell settings put global battery_tip_constants test_low_battery_tip=true
      Then go to Settings -> battery to see the text

Change-Id: I83cc187d5bfda5312410e91ee636373f305ef449
2019-03-09 00:14:29 +08:00
Raff Tsai
39beb2533f Revert "Change battery tip text"
This reverts commit 2441b94c6d.

Reason for revert: <wrong commit>

Change-Id: I373fc065eafc81c26a8eba133255f9377d1d5d7f
2019-03-08 08:51:05 +00:00
Raff Tsai
2441b94c6d Change battery tip text
Fixes: 121042353
Test: adb shell settings put global battery_tip_constants test_low_battery_tip=true
      Then go to Settings -> battery to see the text
Change-Id: Ie3c4a89ccb7c2724840dc886a502ef919e13a856
2019-03-07 04:50:43 +08:00
Mill Chen
60f6a25af8 Add Battery slice in Contextual Settings Homepage
- Add Battery card that implements CustomSliceable in Contextual
Settings Homepage.
- Add test case for Battery slice.
- Created a loadBatteryInfo method for BatterySlice.
- Add a map in CustomSliceManager to cache CustomSliceable instances,
let existing battery slice be able to update battery info.
- Use a flag to avoid triggering an infinite loop when calling
notifyChange in the callback function.

Bug: 114796623, 115971399
Test: manual, robotests
Change-Id: I4b785708bf8456c6c4de7cae4b44f8a060bccbae
2018-10-24 20:01:53 +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
5c5e3bbd0c Refactor the BatteryInfo
Move the battery stats logic to background because it is time
consuming.

Bug: 112262502
Test: robotest still pass
Change-Id: I794bc82a4f1b5ae5a883c89d447116601a86558f
2018-08-09 18:03:18 -07:00
Fan Zhang
670ce333ae Misc clean up. move widgets from graph to widget package.
Bug: n/a
Test: robotests, rebuild
Change-Id: I910f355312d52e81a0bf57b46a3f267e1eb9882a
2018-06-11 16:05:12 -07:00
Aurimas Liutikas
e0069d332d Migrate Settings to androidx.
Test: make Settings
Bug: 76692459
Change-Id: I941dea40562170649bf056e675cc32e5163c0e39
2018-04-20 12:52:29 -07:00
Salvador Martinez
453db0cdbc Update BatteryInfo to include averageTimeToDischarge
This updates the Estimate data model class as well as the places
it is used to populate the new field when available.

Test: robotests
Bug: 74020365
Change-Id: Ibcecf933819f8b8cd8514205768569e9bd7d1517
2018-03-07 10:26:59 -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
Salvador Martinez
250a79830c Fix null pointer from PowerUsageFeatureProvider
Some locations did not check if the returned value was null before
doing operations on them and could crash. This CL changes those
spots to take that into account.

Test: b/72463854 will add in follow up to unblock dogfood
Bug: 72350595
Change-Id: I0ace5c0ab4a8aa9fd5b09d41d6f986143246f059
2018-01-24 17:53:35 -08:00
jackqdyulei
92dcd78ad3 Change high usage detector logic
Based on the requirement, change it to detect:
"whether battery draining is larger than x in the last y hours"

Bug: 70570352
Test: RunSettingsRoboTests
Change-Id: I9fb1a9f2fe38d5d64681dafe26311aeab7f3fe9c
2018-01-19 20:25:07 -08:00
Salvador Martinez
12e327608b Improve messaging for enhanced notifications
The message displayed in battery settings will now more accurately
reflect when an estimate is enhanced based on our updated
definition of what that means.

Test: robotests
Bug: 64833846
Change-Id: Id635d78d8f56d10253e22df2705af93f2693db70
2018-01-08 17:38:36 -08:00
jackqdyulei
ae4b79ee6d Update strings when shortString is true
After b/64124535, battery strings in settings page use shortString
version. This cl updates the charging string in this situation to
match the mock.

Note that no matter whether we use shorString, the chargingLabel
should remain the same.

Bug: 64752046
Test: RunSettingsRoboTests
Change-Id: I4395d4660e212688cd560ca0b124acbd9c099cc9
2017-08-16 14:42:35 -07: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
Salvador Martinez
7961627680 Add some more logging to settings battery stuff
This CL adds logging to areas which are possible suspects for
the slowdown some people have been reporting in the
PowerUsageAdvanced screen. It times the time it takes for various
battery stats methods as well as the time it takes to draw things.

Test: still build (only adds logging)
Bug: 62959645
Bug: 63442960
Change-Id: I7e6c5e83e33a931057c9fdef14d3bef84f514940
2017-07-19 18:16:56 -07:00
Alex Kulesza
82dbcd973d Render enhanced battery projection curves.
BatteryInfo now supplies standard linear or enhanced projection curves,
depending on the provider.

Note that the semantics of parsing have changed slightly in that the
value of endTime supplied to onParsingStarted is now the end time of the
historical data and does not include the projection. However, as far as
I can see there is no existing code that depends on the parsing
functionality besides BatteryInfo itself.

Also slightly optimizes the updating behavior of the UsageGraph, since
we are now reconfiguring it multiple times.

Bug: 38400320
Test: make RunSettingsRoboTests, manual on device
Change-Id: Ieff26d31356b34bb38e49f54f979fd80549864b2
2017-07-05 18:56:02 -04: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
Salvador Martinez
cc7c9603db Add BatteryInfo logging to settings
This Cl adds a few log statements to BatteryInfo to try
and determine what the bottleneck in the Battery Settings
Advanced page could be.

Test: robotests still pass
Bug: 62959645
Change-Id: I1ff712d97bc8be78873c63e187edbffa8e10cd21
2017-06-29 16:53:27 -07:00
jackqdyulei
543c1f2cf5 Update the chargeLabel when battery level is full
Before this cl, it will show "100% - charging", which doesn't make
sense. This cl removes "- charging", and only show "100%" in this
case

Bug: 62559153
Test: RunSettingsRoboTests
Change-Id: Id124fe4098e21b4a69c4a7d3d522fa227faab65d
2017-06-23 14:04:45 -07:00
Salvador Martinez
cb9c53dd7c Fix BatteryInfo using enhanced estimate for charge time
Due to a typo in BatteryEstimates the enhanced estimate we use
for discharging would also be used for charging. This CL corrects
the typo and adds a simple test to catch a similar mistake in the
future. We were also always loading the enhanced estimate even when
we were not using it. As a ~*bonus*~ it should also help improve
the speed of the charging use case for this screen and fixes an
issue with the battery not switching to the charging icon in the
main battery page.

Test: robotest
Bug: 62738028
Bug: 62873396
Bug: 62784575
Bug: 62736144
Change-Id: Ib2cbdeea22afb7da590b701b84f526bdac243410
2017-06-22 09:42:36 -07:00
Alex Kulesza
c57ceaaa8c Implement general projection curve support for UsageGraph.
Previously, projections were hard-coded in UsageGraph as lines from the
last known point to the corner of the graph. This change replaces that
with support for arbitrary projection curves. Logic for hiding/showing
the projection is now gone; if the client does not want a projection,
it simply does not supply one.

There are two active clients of this code: the data usage graph and the
battery usage graph. The data graph does not use projections and is
essentially unchanged. The battery graph now implements its linear
extrapolation directly in BatteryInfo.

Bug: 38400320
Test: make SettingsUnitTests SettingsGoogleUnitTests
Test: manual (screenshots in comments)
Change-Id: I754e66f6b18ecb8b936143399f8e9e3368fc1ce4
2017-06-08 16:59:14 +00:00
TreeHugger Robot
90ef8cea69 Merge "Add ability to see both battery estimates on long press" 2017-06-06 01:58:17 +00:00
Salvador Martinez
f4727ea07f Add ability to see both battery estimates on long press
If the enhanced estimate is being used in battery settings
it is now possible to long press on the text to have it display
both instead of the string that is normally used.

Adds another loader to enable this since it needs both the old
and the new estimates simultaneously.

Feature is hidden behind a feature flag that only googlers will
have enabled.

Test: robotests
Bug: 38399275
Change-Id: I5caf26513baada27efd50ddb0e72d3868da47150
2017-06-05 16:26:32 -07:00
Alex Kulesza
c661098ab8 Move UsageGraph from SettingsLib to Settings.
In preparation for modifying the graph code to show detailed projections
(see bug), this change moves it into Settings along with related tests
and resources.

Bug: 38400320
Test: manual, make SettingsUnitTests, make SettingsGoogleUnitTests
Change-Id: I88e5336c15827727b3427e29b10954bba9cfba7d
2017-06-05 15:43:18 -04:00
jackqdyulei
214372be19 Use new time format in BatteryInfo
1. Using "h" and "m" instead of "hrs" and "min"
2. Refactor the string to CharSequence so it won't have
TTS issue(i.e read "m" as "meter")
3. Update tests related to this part.

Bug: 37201139
Test: RunSettingsRoboTests
Change-Id: I9cadb511572b2d522d26ab337c171fa69da87475
2017-06-02 15:15:16 -07:00
Salvador Martinez
9cfa7720f4 Make BatterySettings Asynchronous and use enhanced estimate
this CL changes BatteryInfo methods to all use the async style
callback approach it had for one of the methods. Non-async methods
are now annotated to only be used in worker threads. BatteryInfo
can now be obtained via callback by calling one of the async
methods. Alternatively if there is a worker thread available
the synchronous methods similar to the old ones can be used.

The callback methods have all been changed so that they cascade to a
async method that takes all the required info as paremeters. This
will minimize the amount of churn in files that currently use
BatteryInfo.

A new loader was created that can be used to get BatteryInfo in
places that wish to get it. This loader is used in
PowerUsageSummary to get the BatteryInfo.

Test: Robotests
Bug: 38399275
Bug: 38398949
Bug: 38399654
Change-Id: Ic5a82d8ca4c85fad1b883226327ec083badf861d
2017-06-01 18:03:53 -07:00
Salvador Martinez
0e8c88376c Move BatteryInfo to settings from settingslib
This CL simply moves BatteryInfo from settingslib to settings and
makes sure the tests still pass. No other changes are made other than
imports or minor changes needed to make sure existing code does not
break.

Test: Robotests still pass
Bug: 38399275
Bug: 38398949
Bug: 38399654
Change-Id: I59803348e2780b7676ccc6c43234a586c184d71f
2017-06-01 11:34:08 -07:00