2536 Commits

Author SHA1 Message Date
Jeff Brown
daa1c96954 am aaf23a9a: am c3f5d694: Merge "Hang off call by power button while screen is on"
* commit 'aaf23a9a653457cccf54293b2ff76196718c7a1a':
  Hang off call by power button while screen is on
2014-03-11 00:11:10 +00:00
Jeff Brown
6212a49a94 Declare KEYCODE_SLEEP and KEYCODE_WAKEUP.
These new keys behave in similarly to KEYCODE_POWER but do not
simply toggle between awake and asleep states.

Sleep puts the device to sleep if it is awake.
Wakeup wakes up the device if it is asleep.

Bug: 12938999
Change-Id: I260fb918cc858882fe06fa880910df5763a76c5d
2014-03-07 14:02:55 -08:00
Jeff Brown
840c84749a Merge "Add config_supportAutoRotation." into klp-modular-dev 2014-03-07 04:40:10 +00:00
Jeff Brown
bcdfc62ae3 Add config_supportAutoRotation.
On some products, it may not make sense to use the accelerometer
to perform auto-rotation.  In that case, the product's config.xml
framework resource overlay should set config_supportAutoRotation
to false.

Setting this to false also disables auto-rotation settings.

Bug: 13211999
Change-Id: If9d7d72f2a2c576b14a4ff0afb61ea52c42c3357
2014-03-06 19:57:59 -08:00
Craig Mautner
f453f3a168 Merge "Show the keyguard if unsecure window on top" into klp-modular-dev 2014-03-07 01:25:50 +00:00
Will Haldean Brown
bd79652a9a Merge "Add swipe-to-dismiss support to PhoneWindow." into klp-modular-dev 2014-03-04 21:22:30 +00:00
John Spurlock
3b86923854 am c6ecac77: am 38f81ccc: am fee6f69e: Merge "Volume panel should not clear system ui flags." into klp-dev
* commit 'c6ecac77cfa35bbc72a4b7e1e3374ad00f83b305':
  Volume panel should not clear system ui flags.
2014-03-04 19:19:14 +00:00
John Spurlock
ed7d7cba9d am c3371eb5: am 49eac16e: am 8ec59a72: Merge "Show hideycling for non-primary users." into klp-dev
* commit 'c3371eb5d4bde6dc11499efb313f7529a6bf6d59':
  Show hideycling for non-primary users.
2014-03-04 19:19:10 +00:00
John Spurlock
c6ecac77cf am 38f81ccc: am fee6f69e: Merge "Volume panel should not clear system ui flags." into klp-dev
* commit '38f81ccc768958b1a9100cb2caa93ec3aedd9b5e':
  Volume panel should not clear system ui flags.
2014-03-04 19:15:56 +00:00
John Spurlock
c3371eb5d4 am 49eac16e: am 8ec59a72: Merge "Show hideycling for non-primary users." into klp-dev
* commit '49eac16ec00ea63feaafc137a1d313fcb4374b36':
  Show hideycling for non-primary users.
2014-03-04 19:15:53 +00:00
John Spurlock
fee6f69e83 Merge "Volume panel should not clear system ui flags." into klp-dev 2014-03-04 19:09:20 +00:00
Will Haldean Brown
ca6234e084 Add swipe-to-dismiss support to PhoneWindow.
This adds a new window feature -- FEATURE_SWIPE_TO_DISMISS -- and a
theme attribute to activate that feature. When the feature is
activated, a SwipeDismissLayout is inflated as the DecorView layout.
SwipeDismissLayout intercepts touch events and steals ones that are
large swipes to the right if its children don't. PhoneWindow registers
handlers that listen for these swipe events, translate the window when
necessary, and finish the activity at the end of the gesture.

Change-Id: I512e758f3c3ffd3b353dba3b911c0e80a88d6f5f
2014-03-04 09:26:15 -08:00
John Spurlock
ca4d040342 Volume panel should not clear system ui flags.
Remove private WM flag (used only by the volume panel) to force
the clearable system UI flags clear.

Instead, always lay out the volume panel as if the bars are visible,
as we do for system dialogs - and don't clear the flags.

Reverts part of I25f29af5b6518aba695b64a75977ae240b742118

Bug:11986621
Change-Id: I842729d729d2a6eb2a687d0b930ddb160c6a1b57
2014-03-04 10:12:01 -05:00
John Spurlock
a3e41e7088 Show hideycling for non-primary users.
User 0 owns the window (system_server) but should be allowed
to display on a user's behalf.

Use the corresponding private flag for this system window, since
we cannot classify it by type (TYPE_TOAST) in policy.

Bug:12015090
Change-Id: I33aedb4624288415a5e1ae937676b693024546a9
2014-03-04 10:08:56 -05:00
Craig Mautner
ab55e524b8 Show the keyguard if unsecure window on top
When traversing windows save the fact that windows above the topmost
fullscreen window do not hide the lockscreen. If there is such a
window don't show it.

Fixes bug 13225149.

Change-Id: Ib6f33cbcfb2f60d8957a9184729ecdec80c6a236
2014-03-03 13:26:03 -08:00
Craig Mautner
42bf39edbd Reset deferred task removal when app token added.
A task is scheduled for deletion after the final activity has
been removed and has animated away. But if another activity is then
added to the task the deletion flag must be reset.

Also added improved debugging.

Fixes bug 12987986.

Change-Id: I207ea6e9592a9e036d67aa5d1465b4acc5bdd120
2014-02-21 16:46:22 -08:00
Jeff Brown
2687550272 Add a new "doze mode" based on Dream components.
When a doze component has been specified in a config.xml resource
overlay, the power manager will try to start a preconfigured dream
whenever it would have otherwise gone to sleep and turned the
screen off.  The dream should render whatever it intends to show
then call startDozing() to tell the power manager to put the display
into a low power "doze" state and allow the application processor
to be suspended.  The dream may wake up periodically using the
alarm manager or other features to update the contents of the display.

Added several new config.xml resources related to dreams and dozing.
In particular for dozing there are two new resources that pertain to
decoupling auto-suspend mode and interactive mode from the display
state.  This is a requirement to enable the application processor
and other components to be suspended while dozing.  Most devices
do not support these features today.

Consolidated the power manager's NAPPING and DREAMING states into one
to simplify the logic.  The NAPPING state was mostly superfluous
and simply indicated that the power manager should attempt to start
a new dream.  This state is now tracked in the mSandmanSummoned field.

Added a new DOZING state which is analoguous to DREAMING.  The normal
state transition is now: AWAKE -> DREAMING -> DOZING -> ASLEEP.
The PowerManager.goToSleep() method now enters the DOZING state instead
of immediately going to sleep.

While in the doze state, the screen remains on.  However, we actually
tell the rest of the system that the screen is off.  This is somewhat
unfortunate but much of the system makes inappropriate assumptions
about what it means for the screen to be on or off.  In particular,
screen on is usually taken to indicate an interactive state where
the user is present but that's not at all true for dozing (and is
only sometimes true while dreaming).  We will probably need to add
some more precise externally visible states at some point.

The DozeHardware interface encapsulates a generic microcontroller
interface to allow a doze dream for off-loading rendering or other
functions while dozing.  If the device possesses an MCU HAL for dozing
then it is exposed to the DreamService here.

Removed a number of catch blocks in DreamService that caught Throwable
and attempted to cause the dream to finish itself.  We actually just
want to let the process crash.  Cleanup will happen automatically if
needed.  Catching these exceptions results in mysterious undefined
behavior and broken dreams.

Bug: 12494706
Change-Id: Ie78336b37dde7250d1ce65b3d367879e3bfb2b8b
2014-02-20 13:39:13 -08:00
Jim Miller
fb5fceaedc Fix broken homekey on devices without keyguard
Fixes bug 12447288

Change-Id: I580dbeac03b56c01d33844f094eaac20d7aba119
2014-01-11 02:33:04 +00:00
Craig Mautner
4504de5d5a Implement ActivityView.
With an existing ActivityContainer a caller can now create an
ActivityView which consists of a new VirtualDisplay immediately
attached to the ActivityContainer.

Change-Id: Id70333dcbef55d524a87df8f8c92d72ca5579364
2014-01-10 10:54:55 -08:00
shower
3ac2f66f4c Hang off call by power button while screen is on
Enable power button end call and screen is off.  User use power button
to turn on screen will end call.  Should turn on screen and not end call

Change-Id: Idf34f7724dbf1796205332c5c7ef663102f8a30c
Signed-off-by: shower <shower929@gmail.com>
2014-01-03 15:33:50 +08:00
Mike Lockwood
e63f6f7c8d DO NOT MERGE: Remove obsolete "headless" support
Change-Id: I829fe48e6ebcb819e260646bb19ac6ddfcf07f83
2013-12-09 15:14:37 -08:00
Jim Miller
fdf7c36daa am 378c804d: am c8867b28: Merge "Report keyguard as initially showing and secure until we know" into klp-dev
* commit '378c804d652f32547d3fe460842e5720b57bd9f1':
  Report keyguard as initially showing and secure until we know
2013-11-13 17:54:04 -08:00
Jim Miller
e5f17ab5a6 Report keyguard as initially showing and secure until we know
This fixes a bug where an app calls KeyguardManager.isLocked()
before keyguard has had a chance to show.  The fix is to assume
keyguard is showing and secure until we know otherwise.

Fixes bug 11670159

Change-Id: Ifbe4cdf40e3b76d2069ecace940f85fa58f31187
2013-11-13 15:40:48 -08:00
John Spurlock
bb3adc44df am da721a99: am 778eaf4b: Merge "Disallow transient status bar on the keyguard." into klp-dev
* commit 'da721a99febae345d28f9afa5b9679a1c54a2f6b':
  Disallow transient status bar on the keyguard.
2013-11-11 18:05:07 -08:00
John Spurlock
f92b6161b8 Disallow transient status bar on the keyguard.
FLAG_FULLSCREEN on the app under the keyguard was keeping
the transient status bar visible if the user locked while
revealing it.

Bug:11629810
Change-Id: I034d3a4f4fe5463702253a1fca6d32debd520c3c
2013-11-11 15:01:16 -05:00
John Spurlock
9f6e8e0361 am 94cab389: am 1e45fd78: Merge "Fix improperly hidden status bar." into klp-dev
* commit '94cab389e4f81d454316789fb0a6fbe954080a08':
  Fix improperly hidden status bar.
2013-11-07 16:51:19 -08:00
John Spurlock
f25706fc3e Fix improperly hidden status bar.
An app lib exposed a possible timing problem, causing the bars
to remain hidden after screen rotation during immersive mode.

Bug:11440463
Change-Id: I5166bdce78a876bc08b18f8b9a340366fbbbb70a
2013-11-07 18:02:43 -05:00
Craig Mautner
a2dad41e75 am 8ed10cff: am def34eb7: Merge "Ensure bar window state is SHOWING after rotate if visible." into klp-dev
* commit '8ed10cff78460a0cc426dc5c1426a9edaafe3e67':
  Ensure bar window state is SHOWING after rotate if visible.
2013-11-06 15:26:49 -08:00
John Spurlock
c23bd80b38 Ensure bar window state is SHOWING after rotate if visible.
Bug:11544694
Change-Id: Ied56f01a931f33437bdc05d026006cabcdef0149
2013-11-06 17:09:51 -05:00
Craig Mautner
e2f7463867 am 1dbaf904: am 18612840: Merge "Force relayout at completion of status bar animation" into klp-dev
* commit '1dbaf9044dcb8a9bb6300e438a05324189bd4d02':
  Force relayout at completion of status bar animation
2013-10-30 07:02:39 -07:00
Craig Mautner
81defc794b Force relayout at completion of status bar animation
A final layout pass should be done whenever the status bar has
completed its incoming animation.

Fixes bug 10387660.

Change-Id: I48c19015c53116b58cf73e20be32d1f64dd682ca
2013-10-29 11:32:30 -07:00
John Spurlock
759bc4f421 am 7539a5af: am 2f566900: Merge "Ensure the simple CAB appears below the status bar." into klp-dev
* commit '7539a5afa73e9d7bc77803295368542ef535f28c':
  Ensure the simple CAB appears below the status bar.
  Add 'no system permission' test app.
2013-10-23 10:20:09 -07:00
John Spurlock
a81736a74d Ensure the simple CAB appears below the status bar.
When the contextual action bar is not in overlay mode,
the screen layout is a linear layout.  (screen_simple.xml)

Ensure the standalone CAB appears below the status bar,
consumes the top offset (to avoid content application below it)
and fill in the status area with a guard view for background
protection.

Bug:10014069
Change-Id: I614f16dfa77367a94808aef54710ffebd66e1ca8
2013-10-22 13:51:52 -04:00
John Spurlock
a5217f09c5 am 1eeb5ff2: am d4595bd1: Merge "Move the IME navigation guard view up to decor." into klp-dev
* commit '1eeb5ff203a4aea5a4cfbe6c9982dc77cabd1f2b':
  Move the IME navigation guard view up to decor.
2013-10-19 10:07:48 -07:00
John Spurlock
ae3349e1c3 Move the IME navigation guard view up to decor.
Although the IME windows are now allowed to extend into
the nav bar, some IMEs were making assumptions about
computed insets based on the height of the content view.

So our navigation bar view (opaque view blocking the nav bar
area to avoid the island effect when transparent) needs to live
above the content view in the hierarchy, making the content view
the same height as it was before.

A surgical spot to put the guard view is up at the root view
(PhoneWindow.DecorView).  fitSystemWindows is always called since
this view is not recreated, and the layout is stable: waiting until
the IME is attached to the window is too late to add a guard view.

This is above the screen_* layouts, so will work without having to
touch all of them.  And it only affects windows of TYPE_INPUT_METHOD.

Bug:11237795
Change-Id: I6a93f30aec83f1cecfb854073046cbc87ab4aa66
2013-10-18 18:41:22 -04:00
John Spurlock
18e82e7928 am 0945bc15: am ac2d61a2: Merge "Do not show immersive mode help in touch exploration mode." into klp-dev
* commit '0945bc15034ac05d2ca803f6297b03dcbcbea2d8':
  Do not show immersive mode help in touch exploration mode.
2013-10-18 14:15:29 -07:00
John Spurlock
ac2d61a2d7 Merge "Do not show immersive mode help in touch exploration mode." into klp-dev 2013-10-18 21:08:58 +00:00
Daniel Sandler
900ece502f Do not show immersive mode help in touch exploration mode.
Bug: 11277364
Change-Id: Ifafcbff38e34c0ef08d9a466d93ce591369183a3
2013-10-18 16:05:07 -04:00
Daniel Sandler
06e75cf4ed am 62c19871: am da35dded: Relayout the immersive cling in the correct thread.
* commit '62c198719afa30eaaa0fe52caed5ed8c520ba6ce':
  Relayout the immersive cling in the correct thread.
2013-10-18 11:43:14 -07:00
Daniel Sandler
da35dded4d Relayout the immersive cling in the correct thread.
Bug: 11266364
Change-Id: Ia629262ff0c362a5a45b6c5822be080cefcb8c56
2013-10-18 12:05:04 -04:00
Jim Miller
53caf87531 am 01491271: am 53cb242f: Merge "Fix issue where keyguard adds widgets before the system is ready" into klp-dev
* commit '0149127198f9fc46a3a4f0b7f4e9579b72273b46':
  Fix issue where keyguard adds widgets before the system is ready
2013-10-17 16:23:13 -07:00
Jim Miller
e5f910a667 Fix issue where keyguard adds widgets before the system is ready
While under heavy system load,  keyguard was able to create widgets before
before ActivityManagerService was ready.  The result was a race
between keyguard adding widgets and ActivityManagerService being
ready to send broadcasts.

This fix provides keyguard with an additional signal to know when
the system is booted and widgets are safe to load.

Fixes bug b/11217169

Change-Id: I7a714d65b068678f961e52bdde4e1c20f9c287f0
2013-10-16 19:42:34 -07:00
Craig Mautner
0e10dfebf1 am 2c345435: am 79a0ed58: Merge "Move the wallpaper beneath the keyguard." into klp-dev
* commit '2c345435458b8b6ad105bf14d3655e0f6836278b':
  Move the wallpaper beneath the keyguard.
2013-10-14 19:00:35 -07:00
Daniel Sandler
c963dfb27a am 596b1f86: am dd73ee4d: Add a config resource to enable translucent bars globally.
* commit '596b1f86ff1a3457a514e1d383d14ef0defc4d53':
  Add a config resource to enable translucent bars globally.
2013-10-14 19:00:10 -07:00
Craig Mautner
79a0ed5848 Merge "Move the wallpaper beneath the keyguard." into klp-dev 2013-10-14 22:24:44 +00:00
Craig Mautner
5800443e2d Move the wallpaper beneath the keyguard.
If the keyguard is the wallpaper target the wallpaper cannot sit at
the bottom of the stack and must be directly beneath the keyguard.
Otherwise keep it at the bottom of the window stack.

App animations when the keyguard is showing should not be disabled if
the keyguard is also animating.

Fixes bug 10858941.
Fixes bug 10932680.

Change-Id: I8399837f6510ea16003f68b165e67439f3571ef4
2013-10-14 13:52:28 -07:00
Daniel Sandler
dd73ee4d0a Add a config resource to enable translucent bars globally.
Setting config_enableTranslucentDecor to false will not
prevent clients from adding FLAG_TRANSLUCENT_NAVIGATION or
STATUS to the window or using the TransluentDecor themes,
but it will prevent View.STATUS_BAR_TRANSLUCENT and
View.NAVIGATION_BAR_TRANSLUCENT from being propagated to the
SystemUI so these requests will not be honored.

Bug: 11182618
Change-Id: I8be6a3a565acf0987ff12f18f1c7e67c96d563c3
2013-10-14 14:52:44 -04:00
John Spurlock
f1dd32c84f am fc2ecd5e: am 774e8ad8: Merge "Implement new SYSTEM_UI_FLAG_IMMERSIVE_STICKY." into klp-dev
* commit 'fc2ecd5e3f5b336f7955f4c02521ba6faad1e93c':
  Implement new SYSTEM_UI_FLAG_IMMERSIVE_STICKY.
2013-10-14 10:29:12 -07:00
John Spurlock
f1a36648ca Implement new SYSTEM_UI_FLAG_IMMERSIVE_STICKY.
Migrate transient bar mode to IMMERSIVE_STICKY, and
introduce new behavior for IMMERSIVE: namely the
opaque bars are revealed by clearing the flags on swipe.

Remove low-profile optimization that confuses api demos
and other apps using low-profile as a signal.

TransientNavigationConfirmation renamed to
ImmersiveModeConfirmation, and its associated resources,
since the confirmation is now shown when the nav bar is
shown in either of the two immersive modes.

Remove unused Toast.makeBar and associated hidden framework
bits now that the confirmation uses a cling instead.

Bug:11062108
Change-Id: Iae49d31973940b9bee9f5b1827756db5eaa76aa3
2013-10-14 13:11:21 -04:00
Daniel Sandler
5fa473cd47 am 782dbb85: am 69f49434: Merge "Limit transient nav cling to 380dp on large/land devices." into klp-dev
* commit '782dbb8580ba70c4d6d40b31e2a65665ebec9fee':
  Limit transient nav cling to 380dp on large/land devices.
2013-10-14 06:56:34 -07:00