Plumb through the necessary API features through Drawables and
ImageView but leave it hidden for now pending future API review and
plumbing through the rest of the framework Drawable implementations.
Update SeekBar assets used for keyguard transport control.
Set selected status directly instead of finding views by id.
Bug 10531608
Bug 10784913
Change-Id: Ia38bd04ad1bc26e9e6da1dda8a374c9ba3ceccb3
Migrate View.SYSTEM_UI_FLAG_TRANSPARENT_(STATUS/NAVIGATION) to
WindowManager.LayoutParams.FLAG_TRANSLUCENT_(STATUS|NAVIGATION).
Add associated public attrs for both new window flags:
windowTranslucentStatus
windowTranslucentNavigation
Introduce convenient four new themes that set translucent decor:
Theme.Holo.NoActionBar.TranslucentDecor
Theme.Holo.Light.NoActionBar.TranslucentDecor
Theme.DeviceDefault.NoActionBar.TranslucentDecor
Theme.DeviceDefault.Light.NoActionBar.TranslucentDecor
Update PhoneWindowManager mechanism to plumb these values back to
SystemUI to drive bar mode state.
The new translucent flags come from the top fullscreen window, not
the focused window, so translucency does not change when opening
dialogs.
Imply some window-level system-ui visibility if one or both of these
new flags are present, specifically:
FLAG_TRANSLUCENT_STATUS implies LAYOUT_STABLE, LAYOUT_FULLSCREEN
FLAG_TRANSLUCENT_NAVIGATION implies LAYOUT STABLE, LAYOUT_HIDE_NAV
Rename all associated variable & resource names to use the term
translucent instead of transparent. (Retain the term semi-transparent
for the transient bar style).
Recents activity allowed to inherit translucent decor state via the
new PRIVATE_FLAG_INHERIT_TRANSLUCENT_DECOR. Compensating changes
to use the full screen area more appropriately.
Update keyguard to use new WM flags.
Update docs and various api artifacts.
Sanity-check fixes:
- Toasts and alerts given stable layout.
- Suppress nu-gradient when in transient (hidey) mode.
- New translucent flags use top-fullscreen window, dialogs don't clear.
Bug:10674960
Bug:11062108
Bug:10987178
Bug:10786445
Bug:10781433
Change-Id: If667a55bea4cf5e008549524b9899197fab55ebe
Registration of a RemoteController may succeed only if:
- the caller has the MEDIA_CONTENT_CONTROL permission,
- or if the RemoteController.OnClientUpdateListener it
registers if one of the enabled notification listeners.
For using the "enabled notification listener" functionality,
the CL involved:
- making OnClientUpdateListener an interface so a 3rd-party
application may have its implementation extend
NotificationListenerService, which is required for a
listener to be enabled by the user.
- add the concept of "enabled" status in an
IRemoteControlDisplay, so a RemoteController (which
encapsulates the IRemoteControlDisplay implementation)
may be registered, but later temporarily disabled by
the user, as a result of a user action in the security
settings, or a user switch.
- making MediaFocusControl, the component tied to
AudioService, monitor changes in enabled notification
listeners, and act upon enable/disable changes.
Bug 8209392
Change-Id: Ia8dfa2156c65668b2b0d4ae92048005912652d84
Media controller now fades between different states. The code for
doing this was already there, but this CL enables them and changes
the behavior of transition's OnPreDrawListener to do the right thing.
Also, this CL fixes a bug in ChangeText found while testing this change.
Issue #11083563 ChangeText transition crashes when KEEP transition type used
Change-Id: I5e04c28e1b5faac017b0a4e49734d9faa7fe79cd
One-way calls to binder do not guarantee the call will always
occur on the originating thread. This fixes a rare case where
keyguard would crash due to dismiss() being called from the wrong
thread.
Fixes bug 11065316
Change-Id: Iddd281964231a152e3342e21b6b88527eab94caf
Switch KeyguardTransportControlView over to using RemoteController
instead of the internal API.
Guard transition animations behind a flag until we can work out some
intermittent issues.
Change-Id: Ie9f41339ce6e735c5d524db88437672f2c9859e2
The strong reference OnClickHandler caused bitmaps in keyguard to be
referenced when keyguard was not visible. This change makes the click
handler a static class with a weak reference to the hostView instance,
allowing those bitmaps to get collected and shaving ~845k off of the
heap size when the keyguard isn't showing.
Issue #10918599 SystemUI should have a round of Svelting
Change-Id: I69de8659ac14c1a4723d082dd3cd394d8b6097f1
Bug: 10918599
Shaves ~1.5MB off of Keyguard creation from usage of an
old-style Alpha animator that would create a draw cache
The animation is unseen due to screen timings, so simply remove it
Also adds a bit of de-jank to the non-svelte case by avoiding
a potential GC_FOR_ALLOC
Change-Id: Id49742d95988f670a44305e4033e7a850d20e675
Bug: 10918599
Shaves ~1-2MB of transient memory usage from setting a hardware layer
on a view that's not hardware accelerated, resulting in it falling
back to a software layer which allocates a bitmap
Also a bit of dejanking as a result of not hitting GC_FOR_ALLOC
Change-Id: Iff00d383fca710147a48f31c7eee2b728b8412dc
When the transport controls are active, set the relevant art as a
fullscreen background for the keyguard.
Change-Id: I1e8a87f242153a2a2c5bf94dbd15f0fd3e07dde3
Keyguard wasn't re-establishing a connection to the RCD after a
crash. This results in a missing transport until the session reboots.
Fixes bug 10204949
Change-Id: Ia030eacbcf1e3cfa9ee948c841c95d2040f9c1e0
By enabling KeyguardHostView to extend into the full screen area
and updating custom measure/layout in the Challenge layouts
appropriately.
Bug:10939005
Change-Id: I06fb187c4100cf0f2e48b1206cc4450afa4567dd
This fixes a bug where launching the camera would move
the camera view to the root hierarchy. In insecure mode, a
subsequent dismiss() comes in and tears down the view hierachy
before the event can be processed, which left the view in the
root hierarchy.
The fix is to remove all children when we reconstruct keyguard.
Fixes bug 10640209
Change-Id: Ia67a93cd219d2b906b6e3bdd04cc355eeffe857e
- announce when widget hovers over drop target
- announce when widget leaves drop target
Fixes bug 10151121
Change-Id: Ia36400f4e8651149590e004b82f66d43c9deaa08
- add accessibility descriptions to camera and search light
- add new onClick handler to simplify launching search and camera
- plumb camera launch through KeyguardService interface
Fixes bug 10914360
Change-Id: Ic85eda9afadba7381be78b477180f7204030cd17
This fixes a bug where TTS on all-caps items doesn't work for
Buttons. The fix is to use translation (ala. TextView.setAllCaps()),
which just affects rendering and not the original text string.
Fix bug 10912259
Change-Id: Id8cba927819c979fe699353219d45f8b0f9f5aac
Driven by a new framework config bool. Tested on all layouts,
but disabled by default. Can be enabled with a config overlay.
(Sliding/MultiPane)ChallengeLayout have custom measure/layout
logic that peeks at the root view's padding (!). So we must keep
the root view's padding = system window insets. However, we need
the scrims + the fullscreen camera widget preview to use the entire
display size if the bars are transparent.
So the approach is to maintain the root view's
(KeyguardViewManager$ViewManagerHost) padding as before via
setFitsSystemWindows(true) but allow non KeyguardHostViews to
extend into the padding if bars are transparent via a custom
measure/draw on the root view.
KeyguardHostView background + challege scrims moved up to the
root view.
Also:
- Remove logspam line for fixed bug.
- Fix status bar staying opaque on interaction on secure keyguard.
Known issues:
- Nav bar blip dismissing global actions, keyguard app widget picker
bars are opaque. Both will use the new inherit flag once it exists.
- Emergency dialer layout dance, will be fixed in the phone project.
Bug:10606085
Change-Id: I2648b4ee9a54a67324ce9dcbab976ad4da4bbcfa
- disable search gadget while interacting with camera
- clean up code that deals with warping to track both warp and swap views.
- fade camera and search icon when camera touched
- slide camera view on screen when camera is touched.
- fix fling of camera page to center in view when animation finishes.
- resolve stateful bug between edge swipe and camera button.
Bug 10332383
Change-Id: I8fc38148a01927bc7c228101308c3c4214113047
This adds a camera button on phones that can be used to show
and launch the camera.
- Minor refactoring of touch event dispatch in PagedView.
- Disables usability hints when keyguard loads.
- Only add a touch handler for camera icon once during layout.
- Update after review.
- Updated with latest UX camera and camera background assets
Change-Id: I09cd5cb0e501fd0f4659bea96d00c92b07f805c4
Face Unlock wasn't being stopped when the emergency dialer opened,
causing FUL to flash briefly after the emergency dialer appeared.
This was most noticeable on Hammerhead devices.
This change allows EmergencyButton to stop FUL by way of
KeyguardUpdateMonitor. Note that it must stop FUL immediately rather
than going through a handler. If going through a handler FUL is not
stopped in time to prevent the issue.
Change-Id: I3985969a19e909e2633d7876a3fb2d34c70e2cc1
- The HotwordRecognitionService is the only public component of
Hotword recognition allowing others to implement hotword recognition
- The client API is not available for use by all, hence the consts need
to be moved to the service class.
- Ideally we'd have retained the public consts in the client side API
(HotwordRecognizer)
Change-Id: Ibd0d1c0d0514ec4e8f7c284e22c5fa6b7ef3df26
- Try hotword detection on Pattern unlock screen as well - disabled in
this CL
- Explicitly stop hotword detection when starting the assist intent.
Change-Id: I3d22a9029abf888431113b86e4410ea9e9866c57
This attempts to fix a bug where the clock wasn't being added
when widgets are disabled.
Fixes bug 10473246
Change-Id: I63f4c04778da938b6fa1bc74de3fa0463412da0f
- Gets rid of all assumptions about the hotword service
- Fixes bug where the hotword detection would keep running accidentally
even when the screen got turned off
Change-Id: Ie86c1a4f4343bdf7e61f7c21114fd3b287bd5401
This allows disabling keyguard widgets through Settings.
On new devices, the setting is turned off by default. If the
user currently has widgets in keyguard, then we keep them
and re-enable the setting.
Change-Id: I7258921231d439925ac8627105710efa99309094
- This talks to a service that's implemented by the Search app
- The AIDL interface may be moved to the framework in a later CL
Change-Id: I26553e46f7d17ba4ac7a952c871b28b261cba975
Removes onWakeKey/Motion handling from keyguard since it's no longer used.
The legacy code was originally intended to have keyguard filter wake events
which is now done in PhoneWindowManager. Ultimately it just needs to call
PowerManager.wakeUp() since keyguard no longer filters these keys.
Change-Id: I5b8ef9b422abf850a85b57f21944e5eb09fbedc2