78 Commits

Author SHA1 Message Date
Jean-Michel Trivi
bacb5422bc Merge "Also rely on enabled notification listeners for RemoteController registration" into klp-dev 2013-10-07 17:04:20 +00:00
John Spurlock
bd95740648 Transparent system ui flags -> Translucent WM flags.
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
2013-10-06 16:03:53 -04:00
Jean-Michel Trivi
f108cdd9ee Also rely on enabled notification listeners for RemoteController registration
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
2013-10-04 17:50:44 -07:00
Chet Haase
845d9192d7 Merge "Enable transitions in lockscreen media controller" into klp-dev 2013-10-04 23:26:37 +00:00
Chet Haase
aa00613322 Enable transitions in lockscreen media controller
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
2013-10-04 14:05:48 -07:00
Jim Miller
6001379bff Fix bug where dismiss() was being called from the wrong thread
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
2013-10-03 18:31:34 -07:00
Adam Powell
d6239b9229 Merge "Add a scrubber to keyguard; layout tweaks" into klp-dev 2013-10-03 22:35:35 +00:00
Jim Miller
b0da1e70ad Update default keyguard clock to new UX specification
Change-Id: I0d5f302d8bd5922acd45cfe1de42cb76cebc02e5
2013-10-03 15:19:21 -07:00
Adam Powell
f8895248e2 Add a scrubber to keyguard; layout tweaks
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
2013-10-03 14:55:18 -07:00
Chet Haase
7fc27ea451 Make onClickHandler in KeyguardHostView a weak reference
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
2013-10-01 16:37:17 -07:00
John Reck
da7af95d81 Remove old animation
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
2013-10-01 14:52:03 -07:00
John Reck
288180c244 Merge "Avoid accidentally using software layers" into klp-dev 2013-09-30 23:10:49 +00:00
John Reck
0a4079ec0c Avoid accidentally using software layers
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
2013-09-30 15:41:49 -07:00
Jim Miller
461b345886 Disable keyguard widgets on low memory devices
Fixes bug 10784493

Change-Id: I6271ea94f6832bb061ba9f64efea460d28ee5695
2013-09-29 14:00:01 -07:00
Adam Powell
43a372f38a Keyguard transport controls: fullscreen art
When the transport controls are active, set the relevant art as a
fullscreen background for the keyguard.

Change-Id: I1e8a87f242153a2a2c5bf94dbd15f0fd3e07dde3
2013-09-27 18:47:52 -07:00
Jim Miller
1ae85153c8 Merge "Fix missing transport in keyguard" into klp-dev 2013-09-28 01:30:21 +00:00
Jim Miller
90873d53fb Fix missing transport in keyguard
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
2013-09-27 18:09:43 -07:00
John Spurlock
d01a1b0473 Merge "Remove unused views when we return to keyguard" into klp-dev 2013-09-27 14:32:38 +00:00
John Spurlock
e5b14ee128 Merge "Restore scrim views to former place in view hierarchy." into klp-dev 2013-09-27 14:27:38 +00:00
John Spurlock
256ae67b9a Restore scrim views to former place in view hierarchy.
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
2013-09-27 10:19:12 -04:00
Jim Miller
1de95fb42b Remove unused views when we return to keyguard
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
2013-09-26 15:09:28 -07:00
Jim Miller
1962e26466 Fix keyguard widget pager accessibility
- announce when widget hovers over drop target
- announce when widget leaves drop target

Fixes bug 10151121

Change-Id: Ia36400f4e8651149590e004b82f66d43c9deaa08
2013-09-25 19:29:02 -07:00
Jim Miller
04b0840b2e Merge "Accessibility improvements in keyguard - add accessibility descriptions to camera and search light - add new onClick handler to simplify launching search and camera - plumb camera launch through KeyguardService interface" into klp-dev 2013-09-25 22:41:26 +00:00
Jim Miller
3264ec7ab5 Merge "Fit and finish for navbar camera affordance" into klp-dev 2013-09-25 22:04:49 +00:00
Jim Miller
138f25d756 Accessibility improvements in keyguard
- 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
2013-09-25 15:01:19 -07:00
Jim Miller
e38c8e28ba Fix accessibility for all-caps items in keyguard
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
2013-09-24 15:54:04 -07:00
Jim Miller
8de9e443d8 Fit and finish for navbar camera affordance
- fix potential event dispatch bug where camera events weren't always propagated
- fix DelegateViewHelper to always propagate events, even when disabled

Bug 10332383

Change-Id: Ie082d3074fc6497ee3633dcc0a51a6b08bcf0037
2013-09-24 14:46:50 -07:00
Jim Miller
89e1fec9af Merge "Fit and finish for navbar camera affordance" into klp-dev 2013-09-24 01:30:59 +00:00
John Spurlock
257f283b0e Introduce transparent bars to the keyguard.
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
2013-09-23 15:59:15 -04:00
Jim Miller
f4db8f9973 Fit and finish for navbar camera affordance
- 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
2013-09-20 20:50:00 -07:00
Jim Miller
caf24fc2c4 Add camera affordance to navigation bar on phones
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
2013-09-19 17:14:59 -07:00
Brian Colonna
7fce380216 Fix 10550373: Stopping FUL when emergency dialer opens
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
2013-09-17 17:33:21 -04:00
Sandeep Siddhartha
65a6ba3478 Remove HotwordRecognition APIs
- and its usage from Keyguard

Bug: 10708010
Change-Id: Ic4a695a1d0e9312706a3b4ff01e59e2567b6ad9c
2013-09-11 11:01:13 -07:00
Sandeep Siddhartha
1f0ef2cc33 Move public consts to HotwordRecognitionService
- 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
2013-09-06 18:12:11 -07:00
Sandeep Siddhartha
4473f02003 Use the permission for hotword recognition
- Also fixes an issue with PendingIntents being launched from the
  lockscreen taking a lot of time

Change-Id: I91b44328ba68b225454322b90a5b19a0d4c9a772
2013-09-06 12:48:51 -07:00
Sandeep Siddhartha
228b35109a Merge "Move the hotword code to KeyguardHostView" into klp-dev 2013-09-05 01:08:23 +00:00
Sandeep Siddhartha
eec83dcadd Move the hotword code to KeyguardHostView
- 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
2013-09-04 17:47:34 -07:00
John Spurlock
1f0c596563 Remove unused status bar icon stat_sys_secure.
It was moved behind an undocumented setting three yrs ago.

Bug:10502089
Change-Id: Icef0e3deaa9b09afab98bbb76520b47a16da2069
2013-09-03 12:04:38 -04:00
Jim Miller
dd238b5604 Merge "Attempt to fix missing clock bug" into klp-dev 2013-08-30 19:55:42 +00:00
Jim Miller
d54281061c Disable hotword detection on low-memory devices
Change-Id: If21f852af36a8f6dea17f3a87b22f39db3d1d6e8
2013-08-29 18:58:21 -07:00
Jim Miller
2ec4ff435b Attempt to fix missing clock bug
This attempts to fix a bug where the clock wasn't being added
when widgets are disabled.

Fixes bug 10473246

Change-Id: I63f4c04778da938b6fa1bc74de3fa0463412da0f
2013-08-28 17:41:16 -07:00
Sandeep Siddhartha
42c3e02c52 Start using the Hotword recognition APIs
- 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
2013-08-28 23:40:32 +00:00
Sandeep Siddhartha
c4c330156e Temporary disable Hotword on lockscreen
Change-Id: Icdddcc0308b9f3153172e34a8f4d051c58829653
2013-08-27 13:25:40 -07:00
Jim Miller
f45bb40388 Add setting to disable keyguard widgets
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
2013-08-23 17:36:30 -07:00
Sandeep Siddhartha
f4d922b2d9 Add hotword detection in insecure keyguard
- 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
2013-08-20 14:17:02 -07:00
Jaekyun Seok
bfdad8ecad Add a keycode to switch audio tracks (1/2)
A key to switch audio tracks is general on media devices like blu-ray.

Bug: 9728155
Change-Id: Ib61822b8aa9c143a8febc3cff4707fa775119448
2013-07-12 17:23:29 +09:00
Jim Miller
cf182aac94 Minor cleanup of KeyguardViewManager
Removed unused code and redundant check for high-end graphics.

Change-Id: I750d3918e5448760e622a4b3d1781b375bdc66db
2013-06-28 16:55:56 -07:00
Jim Miller
e51cf7aeb6 Simplify wake management code in keyguard.
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
2013-06-27 15:58:29 -07:00
Jim Miller
e77737f4cd am 2542fd54: am 00d4c946: Merge "Fix keyguard issue where an incoming SMS would switch widget" into jb-mr2-dev
* commit '2542fd54ac943002cb7537029404dcc80a6491ac':
  Fix keyguard issue where an incoming SMS would switch widget
2013-06-01 09:51:40 -07:00
Jim Miller
a62996e3c5 am 2f567679: am 2f48c4a7: Merge "Check for invalid pointer index in PagedView" into jb-mr2-dev
* commit '2f567679f40ad0580928502972308ec540eeba3f':
  Check for invalid pointer index in PagedView
2013-05-23 14:08:18 -07:00