Commit Graph

11 Commits

Author SHA1 Message Date
Jorim Jaggi
5cf17879a3 Reuse KeyguardViewMediator for new Keyguard implementation.
This change reuses KeyguardViewMediator for the new Keyguard
implementation in status bar. KeyguardViewManager is replaced by
StatusBarKeyguardManager which handles adding the view, setting the
state etc. StatusBarWindowManager is introduced to managed the window
of the status bar, which has the logic of both the old Keyguard window
and the old status bar window. In the current implementation, Keyguard
gets displayed like it would be in the bouncer state, but that's likely
to change in the future. Also, setHidden in IKeyguardService is also
renamed to setOccluded, as the word hidden interferes with the
terminology when dismissing the Keyguard.

Bug: 13635952
Change-Id: I1c5d5a49d810d8532089f464cb2efe35e577f517
2014-03-31 20:58:31 +02:00
Craig Mautner
f83324504e Focus security fields before widgets.
Focus normally proceeds top down through the view tree. Change the
order of focus so that the security fields have a chance to receive
focus before the widget fields.

Fixes bug 11203748.

Change-Id: Ie7f16e59652edbe64fa8342197fda81b53976360
2013-11-04 13:31:45 -08:00
Jim Miller
e657a82ee1 Disable the camera and search buttons while we're in bouncer mode.
Fixes 11191334

Change-Id: I035f9e4e3d033fac6e1660b2d357ddac6f36bcbf
2013-10-11 19:49:31 -07:00
Jim Miller
c162dd0490 Fit and finish for camera affordance animations in keyguard
- better timing
- animate warp back when finger is released.
- Improve on/off screen animation for warped view
- Re-use existing constants for consistent timing.
- Hide the challenge area when the camera page is settling.
- Reduce jank when camera page starts snap transition.
- Prevent warping from going to previous page
- Smoothly blend between PagedView and Warp animations when scrolling starts.

Bug 10991981

Change-Id: I84822790a040a2ce2dcea60a9486f01df9cff105
2013-10-10 18:46:46 -07:00
Jim Miller
5547b55bae Disable dragging the challenge area when there are no widgets
Fixes bug 10784855

Change-Id: Id1d752eb4bdc64a9d09fd478087d16dc17682c77
2013-10-07 19:20:56 -07: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
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
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
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
5ecd81154f Move keyguard to its own process.
This is in preparation to moving keyguard into its own process.

Moved keyguard source and resources into new .apk.

Got basic test app working.  Still need to implement MockPatternUtils
and means to pass it into KeyguardService with local binder interface.

Added new ACCESS_KEYGUARD_SECURE_STORAGE permission.

Temporarily disabled USER_PRESENT broadcast.

Remove unintentional whitespace changes in PhoneWindowManager, etc.

Checkpoint basic working version.

Move to systemui process.

Synchronize with TOT.

Sync with recent user API changes.

Fix bug with returing interface instead of stub for IKeyguardResult.  Create KeyguardServiceDelegate to allow
for runtime-selectable local or remote interface.

More keyguard crash robustness.

Keyguard crash recovery working.  Currently fails safe (locked).

Fix selector view which was still using frameworks resources.

Remove more references to internal framework variables.  Use aliases for those we should move but
currently have dependencies.

Allow runtime switching between service and local mode.

Fix layout issue on tablets where orientation was reading the incorrect constant
from the framework.  Remove more framework dependencies.

Fix PIN keyboard input.

Remove unnecessary copy of orientation attrs.

Remove unused user selector widget and attempt to get multi user working again.

Fix multi-user avatar icon by grabbing it from UserManager rather than directly since
keyguard can no longer read it.

Merge with AppWidget userId changes in master.

Change-Id: I254d6fc6423ae40f6d7fef50aead4caa701e5ad2
2013-02-27 17:27:53 -08:00
Jim Miller
25a272a9f6 Move keyguard source and resources into new package
This is part 1 of two commits.  This commit moves all keyguard
source and resources to a new com.android.keyguard package.
The second part of this change applies an overlay that makes
it work.

Change-Id: I360e9ac7783c6cb289c992733818b9535df185b9
2013-02-27 17:26:43 -08:00