1110 Commits

Author SHA1 Message Date
Justin Ho
b9a4b3c18a Fix lockscreen
Bug: 5391404

Change-Id: I021a37705b72ab1990f7651fecbe743a8af4e372
2011-09-29 12:33:28 -07:00
Adam Powell
e0b6cd14ac Fix bug 5386915 - Action mode is intercepting touches it shouldn't be
Standalone action mode windows should not be touch modal.

Change-Id: Ia3bab69b3ac344837093a17c4b58451bcc3471bf
2011-09-28 22:06:39 -07:00
Brian Colonna
cfdd6242eb Fix 5385186 - Face Unlock no longer shown when first booted
Face Unlock used to show on first boot via an onScreenTurnedOn()
callback.  At some point something changed and this no longer gets
called at boot time.  This left us in the state where the black box
was covering the backup method, but Face Unlock was not starting.

Instead of finding a new way to make Face Unlock start at boot, it
was decided that it is probably best for it not to start at boot
anyway.  So much is happening at boot time, including camera
initialization, that trying to make this work right might cause more
problems than it solves.

This fix moves the code that makes the black box cover the backup
method.  Instead of happening when the layout is originally created,
it now happens in the show() function, which gets called not only
when the screen is turned on, but also before the screen turns off,
such that it is ready to go when the screen turns back on.  This not
only keeps the black box from displaying on boot (because show()
doesn't get called at boot time), but also makes sure the black box is
already there before the screen is turned on, preventing any glitches
that may briefly show the underlying backup method.

Change-Id: I99bdae561a70918b5f12ea5badff08b07d74403c
2011-09-28 20:20:55 -04:00
Brian Colonna
d90172e05f Merge "Pulled out part of onScreenTurnedOn() into show() function" 2011-09-28 16:29:48 -07:00
Adam Powell
8917838b53 Merge "Fix bug 5386180 - Wire up action bar home/up for dialogs" 2011-09-28 16:02:13 -07:00
Adam Powell
915ce0d917 Fix bug 5386180 - Wire up action bar home/up for dialogs
Action bars in dialogs are largely an undocumented "feature" but they
do work - with the exception of this since it previously relied on the
host being an Activity. Make it work.

Change-Id: I52ae24c3bfdd9766e4c0f035183e7f148a4e0162
2011-09-28 15:53:55 -07:00
Brian Colonna
4284e9d19a Pulled out part of onScreenTurnedOn() into show() function
The onScreenTurnedOn() function in LockPatternKeyguardView was
actually being called in two cases - when the screen was turned on,
AND when the show() function was called in KeyguardViewManager, which
actually happens just before the screen is turned off.  Face Unlock
functionality was added to the onScreenTurnedOn() function, not
expecting that the function was also being called just before the
screen turns off.  This causes Face Unlock to run when the screen is
turned off, preventing it from running when the screen is turned on.
This was not obvious during testing because it's not a problem when
testing from the lock screen.  To reproduce the problem you must log
in successfully, then turn the screen off, wait, and turn it back on.

The solution was to pull the non-face unlock functionality from
onScreenTurnedOn() into its own function called show(), which is
called from the KeyguardViewManager show() function and also called
from onScreenTurnedOn().  In this way, the onScreenTurnedOn()
functionality is not changed, but the show() function can be used
for the onScreenTurnedOn() functionality minus the Face Unlock stuff.

One exception to note - I left setting mScreenOn inside of
onScreenTurnedOn() and didn't pull it into show()...that seems like
the correct thing to do.

Change-Id: I9dcc144c7842112c4d35eb3f8b4ab1cd42c05675
2011-09-28 12:08:58 -04:00
Brian Colonna
267cb2b284 Fix 5323545 - FaceLock no longer appears when taking a call
Prior to this fix if the screen was off and a call was received, the
onScreenTurnedOn() callback would bring up the FaceLock service,
which would cover the phone interface.  It now requires the call state
to be CALL_STATE_IDLE to start FaceLock.  When the phone interface
closes, the user is left at the backup lock screen.  Bringing FaceLock
up after a call ends does not seem like the correct thing to do.

While working near the FaceLock callback code, the sleepDevice()
callback was removed because it is no longer used (Fix 5327896).

Some cleanup was also done with regards to KeyguardViewManager.
FaceLock calls were being made from the KeyguardViewManager in
onScreenTurnedOn() and onScreenTurnedOff() via an interface to
LockPatternKeyguardView.  This level of indirection was removed
because it can just be handled inside of the corresponding calls
in LockPatternKeyguardView.  Likewise the FaceLock functionality
inside of hide() in KeyguardViewManager is now in
onDetachedFromWindow() in LockPatternKeyguardView.  Overall this
is much cleaner, especially considering interfacing through
KeyguardViewBase was a bit of a hack.

Patch Set 2:

- Now using KeyguardUpdateMonitor to get phone state

- Removed unnecessary wrapper functions for hiding / viewing
  FaceLock area
  - These were really only there because at one point I was calling
    them from KeyguardViewManager and the naming was confusing

- Removed if(DEBUG) from a couple of log messages that are actually
  warnings that shouldn't show up and I want to know if they happen
  even if I don't have DEBUG set to true

Change-Id: Id7befc47dd421156ff6cdb3aaf62fc76fe9cfad2
2011-09-27 12:45:13 -04:00
Jim Miller
a2f00da374 am b4f0a9f3: Merge "Fix 5326463: rework sim state handling in lockscreen" into ics-factoryrom
* commit 'b4f0a9f3894c1f039168ad672f4aa194999c7cdd':
  Fix 5326463: rework sim state handling in lockscreen
2011-09-26 20:40:59 -07:00
Erik Gilling
9a41ef890d allow override of HDMI rotation
This allows kiosk/demos to be given in portrait mode.  Set with:
adb shell setprop persist.demo.hdmirotation portrait

Change-Id: Ic0c858dcf6329ca34180f582d4869539dde8f69b
Signed-off-by: Erik Gilling <konkers@android.com>
2011-09-26 19:25:15 -07:00
Jim Miller
3f5f83b54f Fix 5326463: rework sim state handling in lockscreen
Previously it was possible to get an inconsistent state because there
were two paths that updated the lock screen sim state.  This reworks
the data flow to ensure the same path is always used to update the state.

KeyguardUpdateMonitor now correctly updates the entire state of the callee
whenever a new callback is registered.

In addition, KeyguardUpdateMonitor now caches the phone state in order
to avoid a round-trip binder call in updateEmergencyCallButtonState().
This avoids a condition that could make lockscreen unresponsive while
updating the emergency call button state.

KeyguardStatusViewManager also ensures the TransportControlView is
hidden when created to ensure we don't inappropriately update the carrier
line while waiting for the first callbacks to update the status lines.

Change-Id: I6b3975b703a7d90bac8d0fe29fbc0f1d9c5e0e7d
2011-09-26 15:17:05 -07:00
Brian Colonna
0e86bc0788 Merge "FaceLock is now closed if emergency dial button is pressed" 2011-09-26 06:03:02 -07:00
Jeff Brown
4c253119db Merge "Prevent unintended rotations. Bug: 4981385" 2011-09-23 18:28:01 -07:00
Jeff Brown
c0347aa19f Prevent unintended rotations.
Bug: 4981385

Changed the orientation listener to notify the policy whenever
its proposed orientation changes, and changes the window manager
to notify the orientation listener when the actual orientation
changes.  This allows us to better handle the case where the
policy has rejected a given proposal at one time (because the
current application forced orientation) but might choose
to accept the same proposal at another time.

It's important that the proposal always be up to date.  A proposal
becomes irrelevant as soon as the phone posture changes such
that we can no longer determine the orientation with confidence
(such as when a device is placed flat on a table).

Simplified the orientation filtering.  Now we just wait 200ms
for the device to be still before issuing a proposal.  The idea
is that if the device is moving around a lot, we assume that
the device is being picked up or put down or otherwise in
the process of being moved.  We don't want to change the rotation
until that's all settled down.  However, we do want to tolerate
a certain amount of environmental noise.

(The previous confidence algorithm was also designed along
these lines but it was less direct about waiting for things
to settle.  Instead it simply made orientation changes take
longer than usual while unsettled, but the extra delay was often
too much or too little.  This one should be easier to tune.)

Change-Id: I09e6befea1f0994b6b15d424f3182859c0d9a530
2011-09-23 17:26:09 -07:00
Brian Colonna
93b19cbe4b Merge "Changed result of entering credentials after forgot pattern" 2011-09-23 15:09:15 -07:00
Adam Powell
6ed1bfb1b6 Merge "Fix bug 5341139 - bottom bar stays if app wants to handle orientation change" 2011-09-23 15:06:30 -07:00
Adam Powell
a05aba9c50 Fix bug 5341139 - bottom bar stays if app wants to handle orientation
change

Let action bars move between split/unsplit mode on configuration
changes if set to split when narrow.

Change-Id: I13f5115a65247cb1878ee823493ca8e2b6ba4cf6
2011-09-23 14:23:30 -07:00
Dianne Hackborn
90c52de286 Fix issue #5173952: Opening a Notification From Lock Screen...
...Should Skip Unsecure Lockscreen (ICS)

Also while I am in there, clean up logging of intent objects to include
even less sensitive information, while showing the true Intent in dump
output (since apps can't get to that).

Change-Id: I35fed714645b21e4304ba38a11ebb9c4c963538e
2011-09-23 13:39:33 -07:00
Brian Colonna
eef1ae1d91 FaceLock is now closed if emergency dial button is pressed
Previously facelock would remain on top of the dial keypad until it
timed out.

Change-Id: Iaf1b3b0040fbfcb5c32e3db7b0466d2a6f89dc1d
2011-09-23 15:52:18 -04:00
Brian Colonna
aae641bc64 Changed result of entering credentials after forgot pattern
After pressing forgot pattern and entering credentials, it used to
bring you to the screen to choose a new pattern.  Now you are brought
to the screen to choose any unlock method.  The reason for this change
is that both Pattern and FaceLock are valid possibilities when a
pattern is forgotten since FaceLock can use a pattern as a backup
method.

Change-Id: Ide28a780771a50952e72c3c06e1f71cbcb48f834
2011-09-23 14:37:11 -04:00
John Wang
5298a8c71a am dd6d1bbd: Merge "Update PUK unlock screen." into ics-factoryrom
* commit 'dd6d1bbd15c4e5cf1b3e0ac34c96f29fb04863c6':
  Update PUK unlock screen.
2011-09-22 23:39:37 -07:00
Adam Cohen
a0c7a5765d am 08ee7fa4: Merge "Fixing emergency dialer flicker on lock screen (issue 5314293)" into ics-factoryrom
* commit '08ee7fa463aee5e83f77789e9a99f17a34ab68b4':
  Fixing emergency dialer flicker on lock screen (issue 5314293)
2011-09-22 23:39:33 -07:00
Adam Powell
d65b3b99f0 Fix bug 5355912 - SearchView in ActionBar with
Theme.Holo.Light.DarkActionBar gets black text

Make sure that menus generated for use in action bars get themed correctly.

Change-Id: I14ba676d296c785514425d40d89e62dc4ff1da1a
2011-09-22 18:53:15 -07:00
John Wang
dd6d1bbd15 Merge "Update PUK unlock screen." into ics-factoryrom 2011-09-22 15:44:40 -07:00
Dianne Hackborn
400110902e Fix issue #5355844: PowerManager does not call screenTurningOn after boot.
Be more explicit about initialization -- power manager never sends
screen update when first initializing, phone window manager retreives
current screen state and applies that itself when initializing.

Change-Id: I8294ed36d700e186c1637754df8c8183721c15dd
2011-09-22 13:37:48 -07:00
John Wang
7f3eb49ad5 Update PUK unlock screen.
1. Make Pin and Puk focusable EditText.
2. Add hint text for pin and puk.
3. Update focusEntry logic.

bug:5243771
Change-Id: I65bd52510bbbf0ebd7830ecac7e31159ae750c6c
2011-09-22 11:59:46 -07:00
Jeff Brown
b35914bb90 Merge "Disallow 180 rotation for phones. Bug: 4981385" 2011-09-21 21:09:15 -07:00
Jeff Brown
a829e16681 Merge "Handle orientation changes more systematically. Bug: 4981385" 2011-09-21 21:09:10 -07:00
Jeff Brown
d3187e39b0 Disallow 180 rotation for phones.
Bug: 4981385

Change-Id: Icaed9cfe4ee9771ca5951abcd1173024d87a024b
2011-09-21 19:26:44 -07:00
Jeff Brown
01a98ddbdf Handle orientation changes more systematically.
Bug: 4981385

Simplify the orientation changing code path in the
WindowManager.  Instead of the policy calling setRotation()
when the sensor determined orientation changes, it calls
updateRotation(), which figures everything out.  For the most
part, the rotation actually passed to setRotation() was
more or less ignored and just added confusion, particularly
when handling deferred orientation changes.

Ensure that 180 degree rotations are disallowed even when
the application specifies SCREEN_ORIENTATION_SENSOR_*.
These rotations are only enabled when docked upside-down for
some reason or when the application specifies
SCREEN_ORIENTATION_FULL_SENSOR.

Ensure that special modes like HDMI connected, lid switch,
dock and rotation lock all cause the sensor to be ignored
even when the application asks for sensor-based orientation
changes.  The sensor is not relevant in these modes because
some external factor (or the user) is determining the
preferred rotation.

Currently, applications can still override the preferred
rotation even when there are special modes in play that
might say otherwise.  We could tweak this so that some
special modes trump application choices completely
(resulting in a letter-boxed application, perhaps).
I tested this sort of tweak (not included in the patch)
and it seems to work fine, including transitions between
applications with varying orientation.

Delete dead code related to animFlags.

Handle pausing/resuming orientation changes more precisely.
Ensure that a deferred orientation change is performed when
a drag completes, even if endDragLw() is not called because the
drag was aborted before the drop happened.  We pause
the orientation change in register() and resume in unregister()
because those methods appear to always be called as needed.

Change-Id: If0a31de3d057251e581fdee64819f2b19e676e9a
2011-09-21 19:26:15 -07:00
John Wang
5dbe9228a9 am 6588bba3: Merge "Notify the sim state after callback registration." into ics-factoryrom
* commit '6588bba33fbf2756253d19764022a743e13573e9':
  Notify the sim state after callback registration.
2011-09-21 18:56:49 -07:00
Adam Powell
c3e4454fdb Merge "Fix bug 5300621 - Share menu disappears in gallery" 2011-09-21 18:26:13 -07:00
Adam Cohen
ebcd6bb1b9 Fixing emergency dialer flicker on lock screen (issue 5314293)
Change-Id: Ia9bf4acb84923e200b89ee55fc53bc92877001cf
2011-09-21 17:39:23 -07:00
Adam Powell
823f074a73 Fix bug 5300621 - Share menu disappears in gallery
ActionProviders (or action views) unfortunately had no way to report
that they had opened a sub-UI that would affect menu visibility
listeners used to hide action bars when not in use. This caused the
Gallery UI to hide its action bar when the share popup was open.

Add hidden API (to be made public later) to ActionProvider that can be
used to inform the menu system that a sub UI has opened or
closed. Account for this in menu visibility callbacks. Fix
ShareActionProvider to use this when its popup windows open and close.

Fix a regression where submenus were not properly reporting visibility
changes.

Change-Id: Ia6f45fb463ad106105c40d01f141c2e5c8b96f78
2011-09-21 17:21:47 -07:00
John Wang
6588bba33f Merge "Notify the sim state after callback registration." into ics-factoryrom 2011-09-21 15:34:28 -07:00
Dianne Hackborn
dda868cd33 Merge "Keyguard sound needs to hold wake lock." 2011-09-21 15:15:18 -07:00
John Wang
61e159504a Notify the sim state after callback registration.
Notify the register the current sim state right away in
registerSimStateCallback.Otherwise the register won't
receive any state until sim state gets changed again.
That will introduce a racing condition. If the sim state
changes to PUK_LOCKED after registering the callback, the
PUK unlock screen shows up. If the sim state changes to
PUK_LOCKED before registering, the PUK unlock screen won't
show.

bug:5243771
Change-Id: I27de1329a30adba68952cf086d2130c4cef54270
2011-09-21 14:35:34 -07:00
Adam Powell
39129cc884 Merge "Fix bug 5341804 - Unable to type into the find on page CAB" 2011-09-21 14:06:41 -07:00
Adam Powell
2301658222 Fix bug 5341804 - Unable to type into the find on page CAB
Standalone action mode windows should be focusable.

Change-Id: I7ce23f1028eb0d0d36bdb287589a6018dc178580
2011-09-21 13:39:53 -07:00
Dianne Hackborn
e47e8520fa Keyguard sound needs to hold wake lock.
We need to hold a wakelock while playing the keyguard lock sound,
so that it actually completes before the CPU goes to sleep.

Change-Id: I144c345383afeb911ea461b2eb17b31183b6d092
2011-09-21 13:34:33 -07:00
Adam Cohen
cec857d85c am 41298971: Merge "Fixing disappearing lock screen, issue 5319246" into ics-factoryrom
* commit '41298971c774a336257fff4a97ed5d5505bbfb60':
  Fixing disappearing lock screen, issue 5319246
2011-09-21 11:19:36 -07:00
Adam Cohen
51e9d5c635 Fixing disappearing lock screen, issue 5319246
Change-Id: Ia59ba6388775efc83aadf1e489b767be5624d385
2011-09-20 20:55:33 -07:00
Adam Powell
6bb68deb7d am 6724872b: Merge "Fix bug 5336495 - Silent mode icon on power dialog is wrong" into ics-factoryrom
* commit '6724872b166d84f640dfa3213e917ecd37333484':
  Fix bug 5336495 - Silent mode icon on power dialog is wrong
2011-09-20 14:36:09 -07:00
Adam Powell
093dee952f Fix bug 5336495 - Silent mode icon on power dialog is wrong
Change-Id: I384882434827a3ab57d65bb0a79e9da10315326f
TODO: Add appropriate vibrate-in-silent-mode icon when available.
2011-09-20 13:49:36 -07:00
Dianne Hackborn
bc1aa7bbc7 Fix issue #5312624: Lock screen very flickery
The key thing was to fix isVisibleOrBehindKeyguardLw() so that it
wouldn't count a window as not visible if it was just currently
in the process of drawing due to an orientation change.

Also improve logic in deciding when to turn screen on to better ensure
the screen is in a stable state, in particular treating screen off
as a frozen screen and not allowing it to turn on until the
update of the screen due to any config change is done.

Change-Id: If82199f3773270b2d07f9c7de9da2dad8c7b28d7
2011-09-20 11:20:31 -07:00
Adam Powell
d413eb3861 Merge "Fix bug 5333962 - Problems with no action bar/overlay action mode" 2011-09-18 15:39:05 -07:00
Adam Powell
8ee6d7c20e Fix bug 5333962 - Problems with no action bar/overlay action mode
Change the standalone action mode window for overlay mode to be of
TYPE_APPLICATION. (This also fixes a bug where overflow menus would
not work properly on these types of action mode bars.)

Set exitFadeDuration on btn_cab_done_holo_* drawables.

Remove no-window-focus override selector states for selectable item
backgrounds to allow proper touch feedback on windows that do not have
focus but that the user can interact with.

Change-Id: Ib504866238708150d21e6183ff7b695869c05d3e
2011-09-18 15:34:00 -07:00
Dianne Hackborn
38e29a61d0 Fix issue #5242779: Device not responding to touch on unlock screen
Rework how we decide when it is okay to turn on the screen by having
the policy call back to the power manager when it knows the lock screen
has been drawn.

Change-Id: Ie8f3f72111dcf7f168723e6dce24e0343b4afe5d
2011-09-18 14:52:52 -07:00
Brian Colonna
68a8cf4a8e Merge "Properly laying out FaceLock on lockscreen" 2011-09-16 06:08:22 -07:00
Brian Colonna
4d7cee1e4b Properly laying out FaceLock on lockscreen
- FaceLock area now specified in layout files instead of trying to
  grab an existing view, which was only practical if pattern was
  backup method

- Now fills area it is supposed to and works with pin as well as
  pattern backup

- Backup method is no longer exposed behind FaceLock just before it
  starts or just after it tells the lockscreen to unlock

- Added synchronized blocks so FaceLock cannot be told to stopUI by
  two different threads at the same time

Change-Id: I3bfad6b44dbe0e3c2ea3c87d2978451c22a7484c
2011-09-15 17:18:56 -04:00