Add a StatusBarManager flag to control the visibility of system icons
such as connectivity info, battery, etc. Note that the clock is
controlled separately through DISABLE_CLOCK.
Also note that this flag differs from DISABLE_SYSTEM_INFO, which
controls the system icons and the clock as a whole, but only works for
the collapsed status bar (CollapsedStatusBarFragment).
Bug: 65813398
Test: runtest systemui
Test: manual, by using a modified version of TestDPC and
DevicePolicyManagerService
Change-Id: Icb61c7bb1a625edd818be7a66d7f15c3e812237b
The view wasn't actually setting the new text size when there was a
display scale or font size change. But now it does.
Test: visual
Change-Id: I3a38c779fe75e4fe29e962bb7d46cdef4da9e829
Fixes: 37919352
This updates some of the names of the colors to make them more general
for non-battery usage.
Bug: 35245772
Test: Manual
Change-Id: I048f673037c4bd7279fd7c55f2d55be6b3618b41
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
Original mocks had the percentage on the left side of the battery... So
I made it so.
Test: visual
Bug: 32539932
Change-Id: I311255777b74c2ff74e36c78cbe1b4b9743ec337
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
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
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
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
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
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
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
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
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
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
- 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
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
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
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
- 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
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
Match the style implicit in the battery assets: if charging,
show the bolt, not the exclamation point.
Bug:10651062
Change-Id: I3edd822326ad611972e791cf4acc8c395e51a74d