Commit Graph

47 Commits

Author SHA1 Message Date
jackqdyulei
ff5bd948b0 Refine BatteryInfo and battery drawable
1. Remove "m" prefix for all public field
2. Change logic about field "discharging", now it only controlled
   by whether it is plugged in.
3. Change Paint in drawable to protected
Bug: 36862496
Test: RunSettingsLibTests
Change-Id: I2908ae6868dc877d3ce6a8a63ec17826a6dcca1d
2017-04-12 12:57:55 -07:00
Jason Monk
d866b8aa03 Fix battery icon dark initialization
Test: visual
Change-Id: I333436dd0ffb4a7791a98caa53054d01e9ff18ef
Fixes: 36443516
2017-03-29 15:30:44 -04:00
Evan Laird
09ebefda2e Move percentage to left of battery
Original mocks had the percentage on the left side of the battery... So
I made it so.

Test: visual
Bug: 32539932
Change-Id: I311255777b74c2ff74e36c78cbe1b4b9743ec337
2017-03-24 10:55:29 -04:00
Evan Laird
bcf631d48b Move battery percent constant to Settings
This switch is moving to system settings so it should also be declared
by Settings. Also changed the constant's name to make sense in the
System context.

Test: runtest systemui
Bug: 32539932
Change-Id: I7cce21b50702f31465328dd8faed3fbac47528ea
2017-03-13 13:42:11 -04:00
Dan Sandler
df14c20be4 Don't show the percentage twice when charging.
The old percentage textview is now gone from the layout.
When the device is charging (but the user doesn't have
percentage display turned on all the time) use the new
percentage built-in to BatteryMeterView.

Bug: 35521962
Test: visual
Change-Id: I91f3350f6203fd007f003ca260ac0ed78e29b771
2017-02-21 16:17:09 -05:00
Jason Monk
f13413e2f3 Various QS fixes and cleanup
Test: runtest systemui
Change-Id: If87f58f2af00b23c5e1a8e38a63a6a63d903002c
2017-02-15 17:48:27 -05:00
Dan Sandler
055bb61426 Percentage text now sits alongside the battery icon.
The old embedded percentage (introduced in change I6a3e7409) is hard
to read at status bar size, so we now draw it in a separate TextView to
the left (start) of the battery gauge. (The embedded code remains so
that it can be used by other places where the battery is drawn larger.)

The old system setting "status_bar_show_battery_percent" is still used
to control whether this percentage is shown, but note that it now
applies only to BatteryMeterView (i.e., the status bar) and not other
usages of BatteryMeterDrawable.

Bug: 32539932
Test: (manual) adb shell settings put system status_bar_show_battery_percent 1
Change-Id: Id298dba544f594b11269539284a2e8042fd4780b
2017-02-14 14:47:28 -05:00
Jason Monk
aa573e9e86 Work on separating out the status bar management
Lots of stuff:
 - Make StatusBarIconController be a permanent dependency
 - Break out dark stuff into DarkIconDispatcher
 - Create StatusBarFragment
   - This bit is a bit ugly for now, but will be better later
 - Other stuff probably

Test: runtest systemui
Change-Id: I4973bc9f944e66af92731bf1edd2b39657f1782f
2017-02-08 19:51:41 -05:00
Jason Monk
de850bbcaa Fix leaks in sysui
Add support for testing for PluginManager and TunerService leaks
and add tests for the known leaks and fix them. Also port PluginManager
and TunerService to Dependency to make them easier to handle in
tests.

Test: runtest systemui
Change-Id: I5642539ee24dd72f802905106decd0c87b41b4eb
Fixes: 34846972
2017-02-02 10:58:18 -05:00
Jason Monk
9c7844cb91 Work on sysui dependencies
One of the many problems with PhoneStatusBar is that it holds
dependencies for many other parts of SysUI. Fix this by creating
a static method of grabbing dependencies that are global to sysui
this cleans up a lot of chains of interdependence.

Also add easy way to inject mocks of these dependencies for the
purpose of testing.

Test: runtest systemui
Change-Id: Ia0e947faea62d15b665facada47ac9916c99f895
2017-01-23 12:55:53 -05:00
Jason Monk
3250885c9f Visual refresh for QS
Adds circles and things

Test: visual
Change-Id: I7d974fcfe6257357abfd1a7d0ee521f0e6cee588
2017-01-20 11:29:25 -05:00
Jason Monk
8852905b0b Unit testing for fragments.
Set up a base class for testing fragments that will generate the host
and run the fragment through some lifecycle checks to make sure it
does ok with standard lifecycle.

Fragment tests will also automatically check for any sort of leaks
related to bindings, receivers, or other callbacks in sysui. This
requires changing the statusbar.policy classes with callbacks to
have a common interface.

Lastly also fixes a few lifecycle bugs in QS found from the above
tests.

Bug: 32609190
Test: runtest systemui
Change-Id: I52007c696c2fd41914bba4ba9d8055f2b564a7d8
2016-11-11 11:20:10 -05:00
Geoffrey Pitsch
959ee2278c Add tests for BatteryMeterDrawable
Not meant to be an attempt at full coverage, just an example of
testing a Drawable.
To go farther with this, I would wrap the "logic" of the battery
appearance in a separate class for testing and this class would
reduce to the drawing operations, which are strongly coupled to
design and don't need much testing.

Test: runtest systemui
Change-Id: I5630e25face9a3ab5e30935fb3d7bab8f162d107
2016-10-03 09:37:06 -04:00
Adrian Roos
70dcf8392c A11y: Fix battery icon and clock descriptions
Now announces charging state on the battery icon
and AM/PM on the clock.

Change-Id: Ib8d249e60b555834e5e224287ea332178ce7c165
Fixes: 27552350
2016-04-20 15:51:59 -07:00
Winson
c0d7058b14 Referencing static interpolators.
Change-Id: I5d2292016e869ed533f5873e373a1eccce651fc5
2016-01-29 11:15:43 -08:00
Jason Monk
3e189877ab SysUI Tuner: Status bar work
Improve general status bar goodness, more exactness, less breakage.

Extra extra icons, disabled by default.

Control all the status bar things!

Probably other stuff (10000).

Change-Id: I5d6282a4dcbcefea9f0880042cdf6293cb693712
2016-01-19 18:58:05 -05:00
Jason Monk
c06fbb1298 Move battery saver notification to QS
Remove the battery saver notification and instead create a detail
panel within QS that allows it to be turned on and off.

Change-Id: I54654d26183586fa171fda04877a840701f8ef33
2016-01-11 14:29:23 -05:00
Jason Monk
abe1974a11 Add more QS tiles
(only for paging prototype)

Change-Id: Ifb09e3262540a486c9ee7e83a904f96cc4e33fec
2015-09-29 16:47:15 -04:00
John Spurlock
f40d08f8a3 Tuner: add battery pct preference.
And fix questionable code organization choices in BatteryMeterView.

Change-Id: I7c13197892b33aa0df9af51fbabb81e0ad0e00e1
2015-05-29 10:52:29 -04:00
Chris Craik
6a49ddef62 Revert "Fix build - Revert "Revert "Use default constructor to get anti-aliasing"""
Fix import

This reverts commit 7ed1431c83.

Change-Id: Id93eba3ed1d47a90384ba20dea6f74d78755792b
2015-05-12 10:44:30 -07:00
Chris Craik
7ed1431c83 Fix build - Revert "Revert "Use default constructor to get anti-aliasing""
This reverts commit dfe0a66cec.

Change-Id: I58a1bae649a284f3d3b6213064d903ea7fcf185a
2015-05-12 17:22:22 +00:00
Chris Craik
dfe0a66cec Revert "Use default constructor to get anti-aliasing"
bug:20948129

This reverts commit 58fc522a69.

Change-Id: Iddeccb4ad15b843bb3e610bd3673a0c7abc1bf46
2015-05-12 16:36:49 +00:00
Chris Craik
58fc522a69 Use default constructor to get anti-aliasing
Change-Id: I3e078a3bc91a2fd703984ba18b5e7e98069b32f1
2015-04-28 11:49:27 -07:00
Xiyuan Xia
b07ce17328 Use fillColor for battery bolt color.
Bug: 20178901
Change-Id: I19b1de98ece6681f5dd0a15a35f55fb88e4c2cfc
2015-04-24 13:53:33 -07:00
Jorim Jaggi
5443cc563c Change light status bar tint color to spec
Bug: 19233606
Change-Id: I0586e006b6783d3af23defb67da666477484c1ee
2015-04-02 11:44:16 -07:00
Alan Viverette
4a357cd2e5 Replace usages of deprecated Resources.getColor() and getColorStateList()
Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
2015-03-18 18:37:18 -07:00
John Spurlock
08c7116ab9 Remove unused imports in frameworks/base.
Change-Id: I031443de83f93eb57a98863001826671b18f3b17
2015-02-28 14:47:49 -05:00
Jorim Jaggi
dd0107a0db Add ability to colorize status bar
Bug: 19233606
Change-Id: I756599395c202c4d0dd04c44beac706fc19bfe17
2015-02-04 12:44:22 +01:00
Jorim Jaggi
a0221f3a9f Improve subpixel rendering of battery icon on all densities
Bug: 16161255
Change-Id: I97abc6a7a5cafb581e3f7c3d7509fdbf6d8542d5
2014-09-03 16:37:06 +02:00
Jorim Jaggi
5172dc2f36 Status bar iconography updates
- Use new assets for location, flightmode and "more" notifications
  icon.
- Update icon size and clock to spec.
- Change from fixed width of the icons to WRAP_CONTENT, so they look
  more evenly distributed.
- Adjust subpixel rendering of battery icon to match other vector
  icons.

Bug: 16161255
Change-Id: I0a80f223b7d532bc53a201cff37b8f1cb09f08c2
2014-09-02 23:52:48 +02:00
Jorim Jaggi
708f7721e9 Remove battery color when in power save
Also changes to color to our consistent warning color.

Bug: 16849393
Change-Id: I71737c1b7c18af569b5f4e957b006db579266cd1
2014-08-20 20:54:02 +02:00
Jorim Jaggi
0d266899da Fix status icon reappearing for legacy activities
When closing the shade, and underneath was an activity without
colored status bars, the animation for letting the status icons
reappear was strange and the icons faded from 0% alpha. The cause was
possibly that we set hasOverlappingRendering on the whole group but
but inner views used layers for setting the alpha value which
violated the contract in the documentation of
hasOverlappingRendering: "The current implementation of the saveLayer
and saveLayerAlpha methods in Canvas necessitates that a View return
true if it uses the methods internally without passing the
CLIP_TO_LAYER_SAVE_FLAG."

Change-Id: I4b0accc8ec3fb8cb553c6860eb7dba8a12d04364
2014-07-28 15:05:15 +02:00
John Spurlock
3332ba54ae Heads-up notifications for low battery warnings.
Falls back to dialogs when heads-up are N/A.

Add new ongoing notification if battery saver mode
is active.  Offer to start battery saver on warnings,
if not already started.

True up BatteryMeterView's levels to the latest threshold
levels.  15% for first warning.

Bug:13329308
Change-Id: Id8ad11a1997079ee7165ae003a8fa1c744462ab3
2014-06-11 19:38:00 -04:00
John Spurlock
876e359b48 Merge "Make QS battery composite color match others." 2014-02-07 19:25:20 +00:00
John Spurlock
1fd0b933b8 Remove need for software layer drawing percentage text.
When the text is transparent, use the same approach as the bolt
to punch it through the rest of the shape - by first rendering the
text into a path.

When the text is opaque, draw the text on top as before.

Change-Id: I50f201b1bf0f92164728e3237ec45e22eb788d52
2014-02-05 11:56:17 -05:00
John Spurlock
29786fc72d Make QS battery composite color match others.
Change-Id: I2a906cd997d2372f5740532a159f04ad857d393d
2014-02-04 17:55:47 -05:00
John Spurlock
4b786ff4b5 Battery meter: remove bolt color compromise & improve pct.
- Bolt remains opaque (white) below a threshold level, otherwise
   transparent.
 - Draw the entire shape using a path, removing the need for a
   software layer.
 - Use a similar approach to make the percentage text readable,
   but this still requires a software layer (since text is involved).

Bug: 12131168
Change-Id: Ifde5e99121155bf1be171f44b2c80c116b17c9e7
2014-01-08 15:04:50 -05:00
John Spurlock
6090995951 Remove unused imports from frameworks/base.
Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
2013-11-20 11:31:47 -05:00
John Spurlock
d8595fd8fe Battery icon tweaks.
Fix bottom padding, better bolt placement on non-HH devices.

Bug:11412369
Change-Id: I102a5ece73b2fcb5f78305c925fc2ed5fe9b2884
2013-11-05 11:55:04 -05:00
Daniel Sandler
05021e5e47 Don't show [!] battery at boot.
Defense in depth:
 1. If there's a sticky battery broadcast waiting around for
    us, apply its information immediately.
 2. If for some reason there is no battery information,
    just don't draw anything.

Bug: 11208146
Change-Id: I43e4b55a90a4ca619816ad0315e329f88b529581
2013-10-14 10:27:45 -04:00
John Spurlock
cfab990053 New battery meter view bolt shape + color.
Bug:10785785
Change-Id: Ia122bcaec1137ba45648ab3c97d8ec832fd26c85
2013-09-25 18:08:52 -04:00
John Spurlock
d19877f8a3 BatteryMeterView: Charging trumps empty.
Match the style implicit in the battery assets: if charging,
show the bolt, not the exclamation point.

Bug:10651062
Change-Id: I3edd822326ad611972e791cf4acc8c395e51a74d
2013-09-17 11:03:03 -04:00
John Spurlock
fceb7eddde Draw status bar battery icon bolt in code.
Use high-res polygon points, punching a hole in the rest of drawing
with PorterDuff.Mode.CLEAR.

Remove the now obsolete lightning.png and associated color filters.

Bug:10640891
Change-Id: I8f2d4dd157f9866f37ed9b3480bb79ee9f109975
2013-09-08 10:29:11 -04:00
John Spurlock
21efa9ade3 Update signal, wifi, battery assets + global dimming.
Global status bar dimming is now 75%.

Signal/wifi: use problem color if not fully connected.

Battery: frame 40% white, charge level = white, new hollow bolt.
  (hollow bolt simulated for now until we can draw it in code)

Update ic_notification_overlay, all sizes.

Workaround animation bug on tablets.

Bug:10502089
Change-Id: I10f979b7a48ccb1bc94022d8c189ec216283dbe6
2013-09-06 18:35:50 -04:00
John Spurlock
3c87566c11 SystemUI demo mode.
Control the status bar visuals via a simple intent protocol.
Useful for comprehensive visual testing reachable assets
and the various bar modes.

Protected behind a global system setting.  To enable:
  adb shell settings put global sysui_demo_allowed 1

Remove obsolete sync failing asset, and tighten up
BluetoothController to represent reality.

Bug:10502089
Change-Id: I28443af3d6b22fcb7b367ef70e1d95fc23ebd407
2013-09-04 14:09:17 -04:00
John Spurlock
e189f662df Update system bar assets to new style.
Update to new system bar assets (ic_*, stat_*).

Update color resources driving style for battery meter + clock.

Add new xxhdpi versions.

Bug:10502089
Change-Id: Ic957ad9886fbb05ed0ca1765fb9e324bfd8ab609
2013-08-27 10:52:08 -04:00
Daniel Sandler
dfaf3bdeeb Toward regularizing color & level across battery indicators.
Each of our existing assets is slightly incorrect in some
way: inconsistent pixel jumps from one percent to the next,
inconsistent color change, etc. The only way to get it
perfectly right is to draw it programmatically.

Bug: 8504254 // inconsistent color change threshold
-- previously --
Bug: 3136046 // in Gingerbread
Bug: 3387973 // Honeycomb
Bug: 5070948 // ICS
Change-Id: I6a3e7409ecec55e10328541ecb1e9d54aebdbe96
2013-08-13 23:21:08 -07:00