This now replaces the internal user activity timer that
keyguard maintained. We can probably simplify things a great
deal further now.
Bug: 7165399
Change-Id: Ia0d5a156a4ff0c339bbd094380b9f7ab3cec5d9b
- new flow for PUK screen
- clean up SIM and PUK screen to match UX designs
- simplified logic for showing emergency call button
Change-Id: I66fcd312f3c52dd212d9836dc020735dbc88d5ee
Issue #7211769: Crash dialog from background user has non-working "report"
The report button now launches the issue reporter for the correct user.
Also for crashes on background users, either disable the report button,
or simply don't show the dialog depending on the build config.
Issue #7244492: Bugreport button in Quick Settings doesn't actually do anything
Now they do.
Issue #7226656: second user seeing primary user's apps
I haven't had any success at reproducing this. I have tried to tighten up
the path where we create the user to ensure nothing could cause the
user's applications to be accessed before the user it fully created and thus
make them installed... but I can't convince myself that is the actual problem.
Also tightened up the user switch code to use forground broadcasts for all
of the updates about the switch (since this is really a foreground operation),
added a facility to have BOOT_COMPELTED broadcasts not get launched for
secondary users and use that on a few key system receivers, fixed some debug
output.
Change-Id: Iadf8f8e4878a86def2e495e9d0dc40c4fb347021
The hide call delays removal of mKeyguardView but the inflate call
occurred before the delay expired. The method inflateKeyguardView
would have removed it except hide() also nulled out mKeyguardView.
Consequently there were two KeyguardHostViews in the view hierarchy.
The findViewById returned the first view which got the callback
assigned. Later that view was removed from the hierarchy and when
the new view was called it had no callback assigned => NPE!
This fix removes the KeyguardHostView from the mKeyguardHost by
referncing the id rather than the null mKeyguardView.
Fixes bug 7250008.
Change-Id: Ic9da3415d72187628f06271c12d5184f9d01059b
Some monkey tests could hit a case where a posted overflow button
click event was still lingering after the menu was no longer in a
created state, which could lead apps to crash. Just drop open-overflow
requests on the floor if the menu is in a weird state when we try.
Bug 7242431
Change-Id: Ieebb1fccfeeccbf17fd7c6cff06efbcb19b11ce3
Bug: 7252218
Also lock the screen before doing the user switch. This prevents the
janky behavior of showing the target user's homescreen after the switch
and then the lock screen. This is also a privacy issue.
Change-Id: I9f8db047335d06fc93505d7b5cca71e27ca3ac39
This reverts commit 4bd149ef83c8e3e2ffb61885e71f44df9a9ccfa7
This change introduced a regression in the device rotation policy. Suppose you hold the device in landscape orientation then put it flat on a table. At this time, the accelerometer has no information about which way the device is oriented so the sensor expresses no preference over the orientation. Now switch to an application that forces portrait. Then go back to the original app that auto-rotates. We should remain portrait from this point onwards unless the device is picked up and we have accelerometer information from which to establish a new preferred orientation.
Bug: 7173556
Change-Id: I3684af3369e4ea55042081e19d96773c4d4bbe76
1. This change adds a global gesture for enabling accessibility.
To enable this gesture the user has to allow it from the
accessibility settings or use the setup wizard to enable
accessibility. When the global gesture is enabled the user
can long press on power to bring the global actions dialog
and then hold with two fingers for a few seconds to enable
accessibility. The appropriate feedback is also provided.
2. The global gesture is writing directly into the settings for
the current user if performed when the keyguard is not on. If
the keygaurd is on and the current user has no accessibility
enabled, the gesture will temporary enable accessibility
for the current user, i.e. no settings are changed, to allow
the blind user to log into his account. As soon as a user
switch happens the new user settings are inherited. If no
user change happens after temporary enabling accessibility
the temporary changes will be undone when the keyguard goes
away and the device will works as expected by the current user.
bug:6171929
3. The initialization code for the owner was not executed due
to a redundant check, thus putting the accessibility layer in
an inconsistent state which breaks pretty much everything.
bug:7240414
Change-Id: Ie7d7aba80f5867b7f88d5893b848b53fb02a7537
Various per-user settings such as rotation lock are relevant to the
singleton PhoneWindowManager object. We now listen for user-switch
broadcasts and reconfigure the active state based on the newly-
active user's settings.
The RotationPolicy toolset has also been updated to do the right
thing, as has the Quick Settings UI.
Bug 7213638
Change-Id: Iee2109e48df550b4c979d3f9c91b5d2b71a6a08e
The primary difference between the AndroidClock and Roboto-Thin fonts is that the new clock font defaults to variable width characters for better alignment on the lock screen.
Bug:7206207
Change-Id: I8509324510ce01d0a73ab1bb6b730b5d646a462c
- Go back to using old date format
- All keyguard text is now caps
- Lower brightness on emergency call text
- Fixed CR/LF issue with Owner info
- Added new alarm icon and fixed padding
- Swapped Google Now and lock icon in landscape mode
- Centered PIN/Password/Pattern help text in view in portrait
- Fixed keyboard size issue in landscape
- Merge new assets from UX
Change-Id: I7adb44b6c9a57d40cab0a77433d43291fb277568
IStatusBarService.collapseQuickSettings is gone;
collapseNotifications is now collapsePanels, which does what
collapse() used to do. Similarly,
IStatusBar.animateCollapseQuickSettings is now simply
IStatusBar.animateCollapse().
Bug: 7245229
Change-Id: Id157d2fdf34926d3c85ffa8b81c741a5359aede4
The FaceUnlock service gets onConfigurationChanged at about the same time as onDetachedFromWindow is received by the KeyguardFaceUnlockView, so we could do something beyond hiding the window there, but this approach should operate on the same thread as onPause and onResume, and thus be safe against threading issues.
Before this change, I was seeing startUi calls in FaceUnlock.java crashing the service because the ProcessingThread had already been set to null. After this change, onDetachedFromWindow gets called, followed by onPause, after a rotation. The onDetachedFromWindow call now clears the messages and shuts down the connection, which prevents the startUi call. We should also probably make sure startUi in the service exits if mThread is null for good measure.
Change-Id: I083066c9cb210e398d911e70c0f3bb5d2736cd8d
1. Added APIs for opening the quick settings to the StatusBarManagerService
and the local StatausBarManager. The new APIs are protected by the old
EXPAND_STATUS_BAR permission.
Renamed the expand* and collapse* non-public APIs that are expanding
the notifications to expandNotifications* collapseNotifications* to
better convey what they do given that this change adds
expandQuickSettings* and collapseQuickSettings*.
Added a global action to the accessibility layer to expand the quick
settings which is calling into the new status bar manager APIs.
bug:7030487
Change-Id: Ic7b46e1a132f1c0d71355f18e7c5a9a2424171c3
Fixed one setting that was migrated but not marked deprecated.
Removed a hidden setting that is no longer used by the new
power manager service.
Bug: 7231172
Change-Id: I332f020f876a18d519a1a20598a172f1c98036f7
Keyguard wasn't resetting dpm's count when a successful password
was made. The result is the device would get wiped earlier than
it should.
Also fixes a TODO left over from keyguard refactoring that
allowed face unlock to trigger the same logic (ouch!).
Fixes bug 7219258
Change-Id: I2bd13c50a9beb8225d3237e86d5e34b73d0eb3cf
This enables sending ACTION_USER_PRESENT when the user has
selected "None" for their keyguard screen. When this happens,
we delegate sending the event to onScreenTurnedOn().
Tested:
- None -> sends broadcast in onSystemReady() the first time after boot
and in onScreenTurnedOn() there after.
- Slide -> sends broadcast only once when screen is dismissed
- Pattern -> sends broadcast only once when screen is dismissed
Fixes bug 7029707
Change-Id: I785c3255b15e2ee598a10d7d3580ba5c03dd0068
Also shows the owner info and next alarm for the current user.
AppWidgetService now assumes that any widgets running in the system process are for the
current user, so that lockscreen shows widgets for the current user
Bug: 7211754
Bug: 7212421
Change-Id: Iaf0edc60e49af0afe42625c0b2dcf100c9ecc178
The Gingerbread migration case updated the password when the user
unlocked their device. This is probably not needed anymore and disturbs
multi-user, so just remove it.
Bug: 7169463
Change-Id: Ie62eb9f3fee6953b1123cb7ef3665d519632c6f7