391 Commits

Author SHA1 Message Date
Joe Onorato
d37870af20 Don't crash if there is no phone app and someone presses the phone button.
The phone button probably doesn't exist on products without phone apps,
but the monkeys still know how to find it.

Change-Id: I36aca53506c8d7d7565df8674aff9d59745139e0
2010-10-07 12:22:56 -04:00
Dianne Hackborn
38014763a2 am 89230e3b: am 458fc5f5: Merge "Fix issue #3041660: Camera image flips upside down when rotating device" into gingerbread
Merge commit '89230e3b7b9ec455373e3f60b62ff65589a9c57d'

* commit '89230e3b7b9ec455373e3f60b62ff65589a9c57d':
  Fix issue #3041660: Camera image flips upside down when rotating device
2010-10-05 12:54:41 -07:00
Dianne Hackborn
e5439f228f Fix issue #3041660: Camera image flips upside down when rotating device
Apps now must explicitly opt in to having their rotation changed while
forcing landscape mode.  Also add some new orientation constants for other
things apps may want to do.

Change-Id: If64d84b5ef54793ee717ebda9b4c76408efc9bfd
2010-10-04 14:01:39 -07:00
Dianne Hackborn
27dec99148 resolved conflicts for merge of 4d28e8c5 to master
Change-Id: I2449488a84e44b3fb5f820b50951b2b2bfa3bcbf
2010-10-01 16:44:12 -07:00
Dianne Hackborn
6493e64c2a Fix issue #3037083: Problem report for Pinball
The app was toggling between hiding and showing the status bar, because
the dialog was large enough to fill the screen but didn't set to hide
the status bar.

It turns out that the code to determine the top fullscreen window is
intrinsically unstable, since it relies on comparing a window's frame
with the screen, yet the window frame can change as a result of changes
such as hiding the status bar.

Instead, we now simplify all of this to just say that the top fillxfill
window gets to control the status bar.

Change-Id: I22913adf7235fe0d52612f6738c7c94351274e38
2010-10-01 13:06:30 -07:00
Christopher Tate
a53146c556 Drag/drop APIs and infrastructure
A View initiates a drag-and-drop operation (hereafter just called a "drag")
by calling its startDrag(ClipData) method.  Within the processing of that
call, two callbacks are made into the originating View.  The first is to
onMeasureDragThumbnail().  Similarly to the core onMeasure() method, this
callback must respond by calling setDragThumbnailDimension(width, height) to
declare the size of the drag thumbnail image that should be used.  Following
this, the View's onDrawDragThumbnail(canvas) method will be invoked to
actually produce the bits of the thumbnail image.

If all goes well, startDrag() will return 'true', and the drag is off and
running.  (The other arguments to startDrag() provide reconciliation between
the current finger position and where the thumbnail should be placed on
the screen relative to it.)

Potential receipients of the ClipData behind the drag are notified by a
new dispatch mechanism, roughly parallel to motion event dispatch.  The core
routine is the View's onDragEvent(event) callback, with the mechanics of
dispatch itself being routed through dispatchDragEvent(event) -- as in
the case of motion events, the dispatch logic is in ViewGroup, with leaf
View objects not needing to consider the dispatch flow.

Several different event 'actions' are delivered through this dispatch
mechanism:

ACTION_DRAG_STARTED: this event is propagated to every View in every window
(including windows created during the course of a drag).  It serves as a
global notification that a drag has started with a payload whose matching
ClipDescription is supplied with the event.  A View that is prepared to
consume the data described in this event should return 'true' from their
onDragEvent() method, and ideally will also make some visible on-screen
indication that they are a potential target of the drop.

ACTION_DRAG_ENTERED: this event is sent once when the drag point
enters the View's bounds.  It is an opportunity for the View to set up
feedback that they are the one who will see the drop if the finger goes
up now.

ACTION_DRAG_LOCATION: when the drag point is over a given View, that
View will receive a stream of DRAG_LOCATION events, providing an
opportunity for the View to show visual feedback tied to the drag point.

ACTION_DRAG_EXITED: like DRAG_ENTERED, but called when the drag point
leaves the View's bounds.  The View should undo any visuals meant to
emphasize their being the hovered-over target.

ACTION_DROP: when the drag ends at a given point, the View under that
point is sent this event, with the full ClipData of the payload.

ACTION_DRAG_ENDED: paralleling the DRAG_STARTED action, this is the global
broadcast that the drag has ended and all Views should return to their
normal visual state.  This happens after the DROP event.

Change-Id: Ia8d0fb1516bce8c735d87ffd101af0976d7e84b6
2010-09-30 16:29:07 -07:00
Steve Howard
04e79051dc am 56d60903: am a7bfe6ad: Support "seascape" rotation for "landscape-only" apps
Merge commit '56d6090380027efc7910537a2c2b99097ca36778'

* commit '56d6090380027efc7910537a2c2b99097ca36778':
  Support "seascape" rotation for "landscape-only" apps
2010-09-23 21:40:48 -07:00
Steve Howard
a7bfe6ad76 Support "seascape" rotation for "landscape-only" apps
Change-Id: Ibbbd850dc2bfb741b39c04c982fbdd98f3fa4a67
2010-09-23 17:46:41 -07:00
Jim Miller
3060421045 Add new WaveView widget to framework and integrate into LockScreen.
This adds a new "Energy Wave" widget to the internal widgets and
integrates it into LockScreen.

ValueAnimator needed a slight modification since it expects to
be run inside of Activities with a Looper. Additionally, this adds
an API, removeAllUpdateListeners(), which is needed to properly
recycle ValueAnimator objects.

Some minor code cleanup and UI tweaks after review.

Changed delay timeout from 1.3s to 0.5s.

Change-Id: Ibcf015e61fa8ba79d62f2019f1b29ace7caa00c8
2010-09-23 17:14:48 -07:00
Jeff Brown
5bd069fe1e am 27917946: am de04fb0a: Merge "Enforce serial ordering of MotionEvents." into gingerbread
Merge commit '279179461edccaa4217fe752a9abf6fcc2efa5a1'

* commit '279179461edccaa4217fe752a9abf6fcc2efa5a1':
  Enforce serial ordering of MotionEvents.
2010-09-23 14:57:14 -07:00
Jeff Brown
93ed4e3052 Enforce serial ordering of MotionEvents.
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
2010-09-23 13:56:30 -07:00
Jeff Brown
8d20f6b8cb am 40e3af61: am 8abc9e9b: Merge "Don\'t play a sound if a volume key press is canceled." into gingerbread
Merge commit '40e3af61dcbf7e49979a67410f37c4b4523a0bd6'

* commit '40e3af61dcbf7e49979a67410f37c4b4523a0bd6':
  Don't play a sound if a volume key press is canceled.
2010-09-12 18:16:32 -07:00
Jeff Brown
8b7a982d29 Don't play a sound if a volume key press is canceled.
Change-Id: I8e45af20ec83a81565e10be3648b95686fa897af
2010-09-12 18:09:11 -07:00
Joe Onorato
9305647eb6 Plumb lights out mode through from the window manager to the status bar running in the system ui process.
Lights out mode itself isn't implemented.

Change-Id: Ieeef0eb9ae5be23000f770e74e8ee66472f4c673
2010-09-12 13:25:06 -04:00
Jim Miller
bc4603b0b1 Fix 2579224: Add a separate timeout for lockscreen vs display
This change adds a second timeout to the SecuritySettings page
separate from the standard display timeout.

Change-Id: I41fe10e31688308f52695ad3ee30a4b0507112bd
2010-09-01 21:00:30 -07:00
Jim Miller
ee969aa850 Fix 2797185: Show 3D Recents on xlarge device
This fixes a bug where some xlarge devices weren't showing 3D recent apps.
The cause was that the config wasn't guaranteed to be loaded by
the time we reach init() in PhoneWindowManager.

The fix looks at the property on-demand, which can't happen
until after the user sees the home screen, which guarantees the
configuration is loaded.

Change-Id: Ic41196f7a15218033b831e6e9cf9d536e0712844
2010-08-26 20:17:43 -07:00
Jim Miller
e6ad1a8ba2 Fix 2797185: Integrate 3D RecentApps View into system.
This adds 3D recents to the platform.  Enabling it is a
matter of setting 'config_enableRecentApps3D' on devices
capable of supporting it (those with OGLES2.0 at the moment).

Change-Id: Ife7bfe8ca02e7657821b68f915e31b0dab50cd2c
2010-08-25 20:43:00 -07:00
Adam Powell
f4a6ec4e93 Disable FEATURE_ACTION_BAR on windows with incompatible feature sets.
Change-Id: I70c860c72eb9e1f1f123764202334ab714f4f830
2010-08-24 14:18:10 -07:00
Adam Powell
6c6f575423 More ActionBar/config change tweaks. Preserve open overflow menus
Change-Id: Ic8ad2b1e3909fbf84ff4d852ae046a9f9508477c
2010-08-23 10:24:49 -07:00
Steve Howard
dfc8cde5c8 am 1f442104: am e0c8582e: Merge "Improve orientation sensing when waking up while flat." into gingerbread
Merge commit '1f4421048206ca1745ddd6366588759c9c5c38f9'

* commit '1f4421048206ca1745ddd6366588759c9c5c38f9':
  Improve orientation sensing when waking up while flat.
2010-08-21 09:40:22 -07:00
Steve Howard
5eb49583e2 Improve orientation sensing when waking up while flat.
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
2010-08-18 14:22:19 -07:00
Adam Powell
04253aa134 Back button closes ActionModes
Change-Id: I763782706ce7aa65a5a11129450d97a2bcb3a625
2010-08-18 11:59:16 -07:00
Dianne Hackborn
291905e34a Maybe fix #2925641: calling onCreateOptionsMenu before attached activity
Also add some APIs to PreferenceActivity.

Change-Id: I85894a3eb9cd3e5adb78b82e85454c0d74773178
2010-08-17 18:53:19 -07:00
Adam Powell
266b1008cf Fix some ActionBar bugs.
* Fix a bug where the options panel would not open on non-xlarge
  screens to show overflow menu items.

* Fix a bug where ActionBarView would try to add a custom nav view
  twice.

* Fix a bug where ActionBarView would expand too far in wrap_content mode

Change-Id: I433ea56524aad885d813ae8743fe2fcefa9649fa
2010-08-16 17:26:11 -07:00
Jae Yong Sung
8171b5182f lock screen for xlarge
Change-Id: Iab9f53609bf24be774752a9960aaaa654d7a614f
2010-08-13 15:08:05 -07:00
Adam Powell
b047208b3b Cleanup on CL 61012
Change-Id: I394909c65a4978be26db063c9f69f1098ab028b3
2010-08-12 10:44:33 -07:00
Adam Powell
f6148c53f9 Fix bug 2911311 and bug 2911700
Integrate the action bar overflow menu better with the options menu lifecycle.

Change-Id: I1e3fdba04b01718c3ee3367f92e5dabe7bc84b5c
2010-08-11 21:56:27 -07:00
Adam Powell
943fbb4f40 Merge "ActionBar overlay mode, height fetching, show/hide" 2010-08-11 17:26:10 -07:00
Jeff Brown
b219a83ff6 am f66f8a58: am 95af0c14: Merge "Add support for the PointerLocation overlay." into gingerbread
Merge commit 'f66f8a58cc4412bd258e1d5b11cac17a617bdc58'

* commit 'f66f8a58cc4412bd258e1d5b11cac17a617bdc58':
  Add support for the PointerLocation overlay.
2010-08-11 16:22:47 -07:00
Adam Powell
6b336f835d ActionBar overlay mode, height fetching, show/hide
Change-Id: Ie931ed26ec885d891d6733132b517a53d95f8491
2010-08-11 16:17:57 -07:00
Jeff Brown
a41ca77fab Add support for the PointerLocation overlay.
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
2010-08-11 14:46:32 -07:00
Adam Powell
f75eeb28de Fix bug 2908822 - open/closePanel should do the right thing with ActionBars
Change-Id: Ic77f9dee864d17046f69c78a1e6d96a49b5c6180
2010-08-10 15:59:40 -07:00
Adam Powell
6dd73b45a4 Fix some lifecycle issues with populating the action bar's menu
Change-Id: I5f63df3260392b09fbb7120986702d01dac5906c
2010-08-06 11:30:35 -07:00
Adam Powell
8e552630e7 Let action modes overlay window content
Change-Id: Ic0512c3e6338e1de15facec0a6650f9da9808a24
2010-08-04 17:42:44 -07:00
Adam Powell
5d27977f9d Action modes without action bar
Change-Id: I0367ab35e598a17980bd373b30828175f6283acc
2010-07-27 21:04:52 -07:00
Romain Guy
ac670c0433 Generate shaders to cover all possible cases.
With this change, all the vertex and fragment shaders used by the GL
renderer are now generated based on a program description supplied
by the caller. This allows the renderer to generate a large number
of shaders without having to write all the possible combinations by
hand. The generated shaders are stored in a program cache.

Change-Id: If54d286e77ae021c724d42090da476df12a18ebb
2010-07-27 19:52:29 -07:00
Adam Powell
6e34636749 Moved context modes into view, renamed to action modes
ContextualMode renamed to ActionMode. Adds a reference to the action
bar and reduces confusion around things named "Context".

Change-Id: Ia5098b1d0799a0ece0810c34e6696eda039fb005
2010-07-26 17:28:45 -07:00
Daniel Sandler
4042744bf8 Disable hiding of the system bar on xlarge devices.
We treat the system bar as "outside" the available screen,
so activities will never be able to draw over (or under!)
that space.

Change-Id: I287a0b1e837e415cf08fc94053c4cc14a7753848
2010-07-21 14:44:52 -04:00
Adam Powell
8028dd32a4 Overflow menu for action bars.
The overflow menu replaces the normal options menu panel for
activities with an action bar. It always appears as the rightmost
action button and is displayed as a dropdown menu. The menu key
summons and dismisses the overflow menu instead of the options panel
where applicable.

Change-Id: I0b4fa7e36f35ab12e2f0c1d12bec79ccab8cc4b1
2010-07-16 10:22:31 -07:00
Adam Powell
e92ea3474d Fix bug 2835056 - ActionBar doesn't update title properly when set in onCreate
Change-Id: I593315db8df0190c2702a87ebef293e5f798823d
2010-07-14 14:46:37 -07:00
Dianne Hackborn
2388ad9eef am f8d9379b: am d76b67c3: IME events are now dispatched to native applications.
Merge commit 'f8d9379bd834573feca085284970cf686993c330'

* commit 'f8d9379bd834573feca085284970cf686993c330':
  IME events are now dispatched to native applications.
2010-07-13 19:50:36 -07:00
Dianne Hackborn
d76b67c340 IME events are now dispatched to native applications.
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
2010-07-13 18:36:46 -07:00
Adam Powell
4267534d1c Action Bar now supports submenus as popups.
Change-Id: I1691c16081b3474ed6d6e406f91f5f74a2dc8fcb
2010-07-13 18:14:11 -07:00
Jeff Brown
1a33274d28 resolved conflicts for merge of 167449e5 to master
Change-Id: Ib448e69a726eb45b5c9099d2574e40b8345eee67
2010-07-08 19:01:13 -07:00
Joe Onorato
34bcebca70 Let the window manager place the rest of the windows on screen when the status bar is at the bottom.
Change-Id: I29c43beee047bb99695a34e6b202ff3f8400c8c2
2010-07-07 18:33:14 -04:00
Jeff Brown
00fa7bdd69 More native input dispatch work.
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
2010-07-03 19:23:01 -07:00
Adam Powell
89e0645b41 Added context modes to ActionBar API.
Change-Id: I7c3e782cbf01be7bc671b377fb4d706040888833
2010-06-29 14:04:58 -07:00
Dianne Hackborn
f92f8686f9 am 98f7aed6: am 1e4b9f39: Remove InputConsumer, replacing with InputQueue.
Merge commit '98f7aed66b54c365f816fe990de978f61155cde1'

* commit '98f7aed66b54c365f816fe990de978f61155cde1':
  Remove InputConsumer, replacing with InputQueue.
2010-06-23 14:43:31 -07:00
Dianne Hackborn
1e4b9f3936 Remove InputConsumer, replacing with InputQueue.
Change-Id: Ib06907278457aaee842b123adc072840ca3602d8
2010-06-23 14:37:30 -07:00
Dianne Hackborn
320742b15a am e3e2883f: am e24a60aa: Merge "First stab at attaching native event dispatching." into gingerbread
Merge commit 'e3e2883f2232007174ead562610eb01201890d9b'

* commit 'e3e2883f2232007174ead562610eb01201890d9b':
  First stab at attaching native event dispatching.
2010-06-23 10:32:25 -07:00