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
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
This will make the upcoming consistency Cl easier to implement.
Test: Robotests still pass
Bug: 124030091
Change-Id: Ief4989e2b5f9b83b5c3b93d17f9f9fa12136f3ee
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
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
- 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
Having consistent import order will reduce chance of merge
conflict between internal and external master
Test: rebuild
Change-Id: I0b1a170967ddcce7f388603fd521f6ed1eeba30b
Move the battery stats logic to background because it is time
consuming.
Bug: 112262502
Test: robotest still pass
Change-Id: I794bc82a4f1b5ae5a883c89d447116601a86558f
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
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
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
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
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
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
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
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
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
BatteryUtils.convertUsToMs and .convertMsToUs should be static, and now
they are.
Bug: 63347148
Test: make RunSettingsRoboTests
Change-Id: If652e2d3e1260df9a933805d7da670fbb26b2c25
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
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
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
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
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
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
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
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
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