This change modifies ViewRoot to wait until the MotionEvent has been
delivered before telling the input dispatcher that it is finished.
The serial ordering guarantee will be required by new features that
may need to transfer touch focus from one window to another.
Change-Id: I0a64d1f0c8bc3f08846f213d6e28ce48b1d48e58
This change makes the window manager pass the currently displayed
orientation to the WindowOrientationListener each time to calls to get
the currently sensed orientation. Now, when the
WindowOrientationListener doesn't know for sure what the orientation
of the device should be (for example, if the sensed orientation is
flat on a table), then it trusts the already-displayed orientation,
rather than trusting whatever sensors reading it most recently
received.
The main use case this addresses is:
* user uses device in portrait
* user turns off device, puts it in pocket
* while in pocket, screen gets turned on, activating orientaiton
sensor, which senses landscape orientation
* screen timed out
* user takes device out, places it on a table (or looks down at it,
holding it flat), and unlocks it
Previously, when the device was unlocked, the
WindowOrientationListener would return landscape orientation based on
its previous sensor readings. Now, it will override those previous
readings because it knows they never actually took effect and the
device is presently flat.
This change also slightly modifies the way we handle flat orientation,
now completely ignoring data when the tilt distrust is nonzero (even
if the current sensor reading shows non-tilted).
Change-Id: Ia4950a41827f8c53a80487d0c2e83b556df781b9
This change involves adding a new method to IWindowManager,
monitorInput() that returns an InputChannel to receive a copy of all
input that is dispatched to applications. The caller must have
the READ_INPUT_STATE permission to make this request (similar to
other window manager methods such as getKeycodeState).
Change-Id: Icd14d810174a5b2928671ef16de73af88302aea0
And also:
- APIs to show and hide the IME, and control its interaction with the app.
- APIs to tell the app when its window resizes and needs to be redrawn.
- API to tell the app the content rectangle of its window (to layout
around the IME or status bar).
There is still a problem with IME interaction -- we need a way for the
app to deliver events to the IME before it handles them, so that for
example the back key will close the IME instead of finishing the app.
Change-Id: I37b75fc2ec533750ef36ca3aedd2f0cc0b5813cd
Removed old input dispatch code.
Refactored the policy callbacks.
Pushed a tiny bit of the power manager state down to native.
Fixed long press on MENU.
Made the virtual key detection and cancelation a bit more precise.
Change-Id: I5d8c1062f7ea0ab3b54c6fadb058c4d5f5a9e02e
Provides the basic infrastructure for a
NativeActivity's native code to get an object representing
its event stream that can be used to read input events.
Still work to do, probably some API changes, and reasonable
default key handling (so that for example back will still
work).
Change-Id: I6db891bc35dc9683181d7708eaed552b955a077e
Previously tests/framework-tests contained a quarantined set of test classes
that needed access to package-private framework api. Running these tests
normally would cause the dalvik verifier to throw errors.
runtest now has support for turning off the dalvik verifier for frameworks
tests, so move this tests into their recommended location, close to the source
being tested.
Also move policy source into a 'src' folder to accommodate the tests move.
Change-Id: I62f839da185a55bc553b653bf583fd99da438512
The old dispatch mechanism has been left in place and continues to
be used by default for now. To enable native input dispatch,
edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.
Includes part of the new input event NDK API. Some details TBD.
To wire up input dispatch, as the ViewRoot adds a window to the
window session it receives an InputChannel object as an output
argument. The InputChannel encapsulates the file descriptors for a
shared memory region and two pipe end-points. The ViewRoot then
provides the InputChannel to the InputQueue. Behind the
scenes, InputQueue simply attaches handlers to the native PollLoop object
that underlies the MessageQueue. This way MessageQueue doesn't need
to know anything about input dispatch per-se, it just exposes (in native
code) a PollLoop that other components can use to monitor file descriptor
state changes.
There can be zero or more targets for any given input event. Each
input target is specified by its input channel and some parameters
including flags, an X/Y coordinate offset, and the dispatch timeout.
An input target can request either synchronous dispatch (for foreground apps)
or asynchronous dispatch (fire-and-forget for wallpapers and "outside"
targets). Currently, finding the appropriate input targets for an event
requires a call back into the WindowManagerServer from native code.
In the future this will be refactored to avoid most of these callbacks
except as required to handle pending focus transitions.
End-to-end event dispatch mostly works!
To do: event injection, rate limiting, ANRs, testing, optimization, etc.
Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25
Fix 2662816: Move UI update from async callback to ui thread.
This fixes a bug where the view hierarchy in AccountUnlockScreen was being
modified by the async callback thread from AccountManager.
Change-Id: I5f1b4e04a7e4af68a5705545765f294cdbd0f17b
Fix issue #2574016: Preferred activity setting is not persistent 14/48014/1
author Dianne Hackborn <hackbod@google.com>
Wed, 7 Apr 2010 03:24:15 +0000 (20:24 -0700)
committer Dianne Hackborn <hackbod@google.com>
Wed, 7 Apr 2010 03:24:15 +0000 (20:24 -0700)
commit 3cce600614c2a2643ae9a38c6ed87c06c7bab0b6
tree 394f330634ab83a97b244fbd214d5edbbd44fa52 tree | snapshot
parent 7d8866f9ef026870d4735d6f2ede49525150e53e commit | diff
Fix issue #2574016: Preferred activity setting is not persistent
The recent tasks UI was trying to retrieve the current home activity
in the wrong way, causing it to be a different match of activities and
thus clearing any preferred activity that was set.
In the future we should look at what the package manager is doing here
and make it more robust in how it clears the list... but for now,
this is the safest thing.
Change-Id: Idc917dffa7d05d62671213414387e8bdb2e34bea
Fix issue #2555171: Switching to app immediately after unmounting SD card causes... 28/48128/1
author Dianne Hackborn <hackbod@google.com>
Thu, 8 Apr 2010 01:15:32 +0000 (18:15 -0700)
committer Dianne Hackborn <hackbod@google.com>
Thu, 8 Apr 2010 01:15:32 +0000 (18:15 -0700)
commit 31abd7f677190edfa67cb96fb4ddb166e974cb3e
tree 7cc1059c3c6689ba3f2af5161585b3e7241e0580 tree | snapshot
parent 3cce600614c2a2643ae9a38c6ed87c06c7bab0b6 commit | diff
Fix issue #2555171: Switching to app immediately after unmounting SD card causes reboot.
Change-Id: I509162e136dd721fecfaabc45a046537b2d19077
Fix issue #2586349: Accelerometer is enabled when in car mode 61/48361/1
author Dianne Hackborn <hackbod@google.com>
Fri, 9 Apr 2010 23:40:33 +0000 (16:40 -0700)
committer Dianne Hackborn <hackbod@google.com>
Fri, 9 Apr 2010 23:40:33 +0000 (16:40 -0700)
commit b0d3a2371f92d19d01aa2ca8e4f382738273f2dd
tree e134d055ce8efb4ef48a74c45da0325ed55852ea tree | snapshot
parent eeb2497f92b8d1466918990d536e2d31b5a85c07 commit | diff
Fix issue #2586349: Accelerometer is enabled when in car mode
Change-Id: Iab5ca4ea9f69bd54f815fc7463df808d81c61ffd
Fix issue #2555171: Switching to app immediately after unmounting... 65/48665/1 dalvik-dev froyo froyo-plus-aosp froyo-release stage-korg-froyo stage-korg-master
author Dianne Hackborn <hackbod@google.com>
Tue, 13 Apr 2010 19:48:30 +0000 (12:48 -0700)
committer Dianne Hackborn <hackbod@google.com>
Tue, 13 Apr 2010 19:52:10 +0000 (12:52 -0700)
commit cddfd77b45662d7316aaed3d0159d0f42d284cfc
tree c52d612ada1f85d3d38b3e776bc520b7a0b22256 tree | snapshot
parent 5fa04b55a94b5cd98f1e6e1197cc4e6ef26a7061 commit | diff
Fix issue #2555171: Switching to app immediately after unmounting...
...SD card causes reboot.
Deal with unavailable apps in recent tasks UI.
Change-Id: Ib85b773c5c6df7afb12db551b6cef63edbc6df64
Fix 2572446: Also watch keyboard changes in PIN/Password unlock.
The PIN/Password unlock screen was monitoring orientation changes.
However, while docked, this isn't useful since orientation remains
fixed. This change makes PasswordUnlockScreen also looks for
changes to config.hardKeyboardHidden.
Tested:
WVGA device while docked and opening/closing the keyboard.
Change-Id: Iaadb277028f2dd1f85fd0f627a686a86ac51a2ed
Fix 2575838: Update emergency button in AccountUnlockScreen DO NOT MERGE
AccountUnlockScreen wasn't registered to receive updates from
UpdateMonitor. It now correctly updates the Emergency call button
to allow the user to return to the call in progress (InCallScreen).
Tested on WVGA device with keyboard:
- hitting Home during call, observing state, and pressing button to return to call.
- hitting Home while not in call to ensure it still invokes EmergencyDialer.
- above in various keyboard states.
Change-Id: Ic4480ff69ff4479557ddb7f76c751b005b1c60bf
I6872c3ad135bc34348adafa76e08a3878f1b506f
"Add emergency call button to PUK'd lockscreen."
Bug: 2568732
I5ad8745443fc97225af9efb938e4640cfc29b5d7
"Restore text field used by sliding tab to give ringer
mode feedback."
Bug: 2587358
Change-Id: Ide3ad839aaf029930c0bf7ba4b9f6587efbd811d
Merge commit '7d8866f9ef026870d4735d6f2ede49525150e53e' into kraken
* commit '7d8866f9ef026870d4735d6f2ede49525150e53e':
Redo the look of the recent apps switcher.
This fixes a bug introduced in change 46594 that prevents showing
the tab unlock screen before PIN & password entry.
Change-Id: Ibd603921f6a22b603652c4751fa0f2f7d9129bb2
The emergency call button has been removed (since the user
can disable the keyguard, open the phone app, and enter the
emergency number there).
This change also restores a number of the informational &
help messages that were previously removed from the lock
screen.
Bug: 2421380
Change-Id: I4dda16be5d54c1e0ab4e26914c63d1f5b922cfe8
do the long-press haptic feedback first, to avoid any slowdown
in the responsiveness of that.
Fixes http://b/2526697
Change-Id: I607063b67bdde92303ee112663b76d6e4e9a369b
The password unlock wasn't abiding by the 30s lockout rule.
This change adds the necessary logic and countdown timer to
disable text entry while in lockout mode. After 30s, text entry
is re-enabled until the next lockout count is reached.
Change-Id: I4d860565cad91cb88c36615b40d1837a5d97fe21
Added in I0e08a952904cc4728621953a42806edf26eb8e46, but
takes up too much room.
An undocumented system setting, "show_status_bar_lock", can
be set to 1 (e.g. in Spare Parts) to bring this back.
Bug: 2511090
Change-Id: I8869ac18c303a786eeb7f1a0c4ae08529b45d59c
This change removes the legacy notification of orientation and configuration changed events
from KeyguardUpdateMonitor and moves them into the individual activities. This was necessary
to guarantee order of events.
In addition, to minimize discrepencies due to notification lag, Keyguard screens (LockScreen,
PatternUnlock, etc.) are now responsible for handling onConfigurationChanged() notification and
forwarding them to LockPatternKeyguardView by a call to recreateMe() with the new configuration.
This also removes the hack that used to prevent drawing while the configuration was in flux.
Change-Id: I6b72e8c06cebb2c5c83e2debeb478e89b6f6f386
This is part 2 of the fix for bug 2364220 "Accessibility improvements for
ending calls".
This change updates the POWER key logic in interceptKeyTq() to check the
value of Settings.Secure.INCALL_POWER_BUTTON_BEHAVIOR, which allows the
user to specify that the Power button should hang up while in-call,
instead of just turning off the screen.
Bug: 2364220
Change-Id: If6d8e3155f7d60142ab6fd61f0a9db7f0b0d95ab
Now does lock screen and status bar management in the animation pass, to better
match actual changes on screen.
Change-Id: I9a68fcfa1968dfa71961bc164a6fda15b2cd7d47