Commit Graph

290 Commits

Author SHA1 Message Date
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
Christopher Tate
2c095f3677 Refinements to drag/drop
Thumbnail measurement & drawing has been moved out into a delegate
class called View.DragThumbnailBuilder.  This consolidates the
thumbnail-related code as well as ensuring that the drag initiator
does not have to know a priori where to place the thumbnail relative
to the touch point *before* the thumbnail measurement step, as was
previously the case.

startDrag() no longer needs to be told where the current touch point
is at the time the drag is launched.

Drag events are now dispatched only to VISIBLE views.

Dispatch shouldn't double-recycle events any more when the target
window is local to the system process.

Change-Id: I49419103765a0cad2e18ddfcdd6dacb94daf1ff1
2010-10-04 18:29:09 -07:00
Dianne Hackborn
89230e3b7b am 458fc5f5: Merge "Fix issue #3041660: Camera image flips upside down when rotating device" into gingerbread
Merge commit '458fc5f52e25d7a8b4e482010711aed66f0b4999' into gingerbread-plus-aosp

* commit '458fc5f52e25d7a8b4e482010711aed66f0b4999':
  Fix issue #3041660: Camera image flips upside down when rotating device
2010-10-04 14:55:09 -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
4d28e8c5c6 am 1fa69735: Merge "Fix issue #3037083: Problem report for Pinball" into gingerbread
Merge commit '1fa69735d9e786da4b20c3ab3da3aa66f3cf8116' into gingerbread-plus-aosp

* commit '1fa69735d9e786da4b20c3ab3da3aa66f3cf8116':
  Fix issue #3037083: Problem report for Pinball
2010-10-01 13:42:40 -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
repo sync . build/envsetup.sh lunch passion-en
8c66580759 am 4fc3d2f0: DO NOT MERGE
Merge commit '4fc3d2f0b3237390c37ccc4701bc68e4aa5f9b7a' into gingerbread-plus-aosp

* commit '4fc3d2f0b3237390c37ccc4701bc68e4aa5f9b7a':
  DO NOT MERGE
2010-09-27 17:51:45 -07:00
repo sync . build/envsetup.sh lunch passion-eng
4fc3d2f0b3 DO NOT MERGE
This is a manual cherrypick of:
Change I3a76de15: Fixing font scale in WindowManagerService. There was
a bug that causes WindowManagerService to lose the fontScale setting.

Change-Id: I9b993e11f6a3e75735d8ed05596083893543d732
2010-09-27 17:46:07 -07:00
Dianne Hackborn
405e012681 am deaa8ff1: am a7ef18fc: Merge "Some debugging support." into gingerbread
Merge commit 'deaa8ff1b10d38add4f7c276e7be2ffc19359a14'

* commit 'deaa8ff1b10d38add4f7c276e7be2ffc19359a14':
  Some debugging support.
2010-09-24 15:58:25 -07:00
Dianne Hackborn
deaa8ff1b1 am a7ef18fc: Merge "Some debugging support." into gingerbread
Merge commit 'a7ef18fca50d0db99a161d8c7e2d8979f0445503' into gingerbread-plus-aosp

* commit 'a7ef18fca50d0db99a161d8c7e2d8979f0445503':
  Some debugging support.
2010-09-24 15:32:51 -07:00
Dianne Hackborn
f123e49bf0 Some debugging support.
- New feature to "am monitor" to have it automatically launch
  gdbserv for you when a crash/ANR happens, and tell you how to
  run the client.

- Update dumpstate to match new location of binder debug logs

- Various commented out logs that are being used to track down
  issues.

Change-Id: Ia5dd0cd2df983a1fc6be697642a4590aa02a26a5
2010-09-24 13:11:55 -07:00
Dianne Hackborn
48a781a0a5 am 4b187e80: am 8e1b84e7: Merge "Some battery improvements:" into gingerbread
Merge commit '4b187e804fdfdbc825e17646e82e0218e316a339'

* commit '4b187e804fdfdbc825e17646e82e0218e316a339':
  Some battery improvements:
2010-09-20 19:33:06 -07:00
Dianne Hackborn
4b187e804f am 8e1b84e7: Merge "Some battery improvements:" into gingerbread
Merge commit '8e1b84e7654ddeeb77a03f5eca10c6669b1cb42b' into gingerbread-plus-aosp

* commit '8e1b84e7654ddeeb77a03f5eca10c6669b1cb42b':
  Some battery improvements:
2010-09-20 16:34:45 -07:00
Dianne Hackborn
ce2ef766ca Some battery improvements:
- New API for iterating over history that will allow a better implementation
  in the future.
- Now do writes asynchronously.

Also improve the documentation for Activity.onRetainNonInstanceState().

Change-Id: Idf67f2796a8868eb62f288bcbb2bad29876c8554
2010-09-20 16:25:01 -07:00
Jeff Brown
fa8186c716 am 7642c82c: am f4d788c9: Merge "Make input dispatcher only ANR for foreground windows." into gingerbread
Merge commit '7642c82c291051919aad87c797e2dc1d77ed55e1'

* commit '7642c82c291051919aad87c797e2dc1d77ed55e1':
  Make input dispatcher only ANR for foreground windows.
2010-09-15 21:42:28 -07:00
Jeff Brown
7642c82c29 am f4d788c9: Merge "Make input dispatcher only ANR for foreground windows." into gingerbread
Merge commit 'f4d788c9309bc5480100d980608472e4cb04f309' into gingerbread-plus-aosp

* commit 'f4d788c9309bc5480100d980608472e4cb04f309':
  Make input dispatcher only ANR for foreground windows.
2010-09-15 18:57:48 -07:00
Jeff Brown
519e024d1e Make input dispatcher only ANR for foreground windows.
Redesigned the input dispatcher's ANR timeout mechanism so it is much
closer to Froyo's policy.  ANR is only ever signalled if the dispatcher
is waiting on a window to finish processing its previous event(s) and
there is new pending input.

In the old code, we tracked the dispatch timeout separately for each
input channel.  This was somewhat complicated and also resulted in the
situation where applications could ANR long after the user had pushed
them into the background.

Change-Id: I666ecada0952d4b95f1d67b9f733842b745c7f4b
2010-09-15 18:52:08 -07:00
Jeff Brown
b3787d57ff am 0f0541e4: am b88102f5: Input dispatcher ANR handling enhancements.
Merge commit '0f0541e40cfef51eb5c3769e53c1aa853b53aaf6'

* commit '0f0541e40cfef51eb5c3769e53c1aa853b53aaf6':
  Input dispatcher ANR handling enhancements.
2010-09-12 17:15:19 -07:00
Jeff Brown
0f0541e40c am b88102f5: Input dispatcher ANR handling enhancements.
Merge commit 'b88102f5b7e51552a3576cf197b4c8cf96f193d1' into gingerbread-plus-aosp

* commit 'b88102f5b7e51552a3576cf197b4c8cf96f193d1':
  Input dispatcher ANR handling enhancements.
2010-09-12 17:05:38 -07:00
Jeff Brown
b88102f5b7 Input dispatcher ANR handling enhancements.
This change is essentially a rewrite of the main input dispatcher loop
with the target identification folded in.  Since the input dispatcher now
has all of the window state, it can make better decisions about
when to ANR.

Added a .5 second deadline for processing app switch keys.  This behavior
predates Gingerbread but had not previously been ported.

Fixed some timing inaccuracies in the ANR accounting that could cause
applications to ANR sooner than they should have.

Added a mechanism for tracking key and motion events that have been
dispatched to a window so that appropriate cancelation events can be
synthesized when recovering from ANR.  This change helps to keep
applications in sync so they don't end up with stuck buttons upon
recovery from ANRs.

Added more comments to describe the tricky parts of PollLoop.

Change-Id: I13dffca27acb436fc383980db536abc4d8b9e6f1
2010-09-12 16:52:03 -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
Jean-Baptiste Queru
2088fb0191 am 03821dc6: am 962e4826: Merge "Allow two SurfaceViews inbetween the app and the wallpaper."
Merge commit '03821dc6ea9f96e2b420ab327b727fdcefd880d3'

* commit '03821dc6ea9f96e2b420ab327b727fdcefd880d3':
  Allow two SurfaceViews inbetween the app and the wallpaper.
2010-09-10 16:23:17 -07:00
Jean-Baptiste Queru
03821dc6ea am 962e4826: Merge "Allow two SurfaceViews inbetween the app and the wallpaper."
Merge commit '962e482606e3f8f8c0b8e540888eaef56a1c8603' into gingerbread-plus-aosp

* commit '962e482606e3f8f8c0b8e540888eaef56a1c8603':
  Allow two SurfaceViews inbetween the app and the wallpaper.
2010-09-10 15:47:34 -07:00
Jeff Brown
b380c4d7ed resolved conflicts for merge of a05088c1 to master
Change-Id: I7973f9f28586dec9b9659f8f662f40db7997a521
2010-09-08 13:02:55 -07:00
Jeff Brown
85a3176704 Add support for secure views.
Added the MotionEvent.FLAG_WINDOW_IS_OBSCURED flag which is set by the
input manager whenever another visible window is partly or wholly obscured
the target of a touch event so that applications can filter touches
accordingly.

Added a "filterTouchesWhenObscured" attribute to View which can be used to
enable filtering of touches when the view's window is obscured.

Change-Id: I936d9c85013fd2d77fb296a600528d30a29027d2
2010-09-08 11:50:55 -07:00
Pal Szasz
73dc2592be Allow two SurfaceViews inbetween the app and the wallpaper.
When two SurfaceViews are used by an application, which is
transparent and uses the wallpaper, only one of the SurfaceViews
will be visible.

The problem is that when trying to find the correct location
for the wallpaper, the window manager locates the activity
window and skips every window below it which is related.
For the first SurfaceView this will be ok, since the
SurfaceViews's attached window is the previous window.
However for the second SurfaceView this condition will fail
(the 2nd SurfaceViews attached window is not the previous
window (which is the 1st SurfaceView)).

The fix adds an extra check which detects this usecase
(the windows are related if the attached window is the same
as the attached window of the previous window).

Change-Id: I368e9dd53455dc310f48d6d8c0be68350ff2b79e
2010-09-03 11:46:26 +02:00
Jeff Brown
22f5ee9374 am 36f0cb26: am 8d60866e: Input device calibration and capabilities.
Merge commit '36f0cb26cbb4ef62995ff2e5a540cf8814e7f030'

* commit '36f0cb26cbb4ef62995ff2e5a540cf8814e7f030':
  Input device calibration and capabilities.
2010-08-30 18:29:12 -07:00
Jeff Brown
8d60866e21 Input device calibration and capabilities.
Finished the input device capability API.
Added a mechanism for calibrating touch devices to obtain more
accurate information about the touch contact area.
Improved pointer location to show new coordinates and capabilities.
Optimized pointer location display and formatting to avoid allocating large
numbers of temporary objects.  The GC churn was causing the application to
stutter very badly when more than a couple of fingers were down).
Added more diagnostics.

Change-Id: Ie25380278ed6f16c5b04cd9df848015850383498
2010-08-30 18:16:43 -07:00
Konstantin Lopyrev
261d509270 am 5a54e980: am 6947cc59: Merge "Preventing the hierarchy viewer from getting stuck, once when trying to load the window data for SurfaceView and the Wallpaper, and in the case the captured node has disappeared." into gingerbread
Merge commit '5a54e98022d640900f94102c077d8dff447f3c76'

* commit '5a54e98022d640900f94102c077d8dff447f3c76':
  Preventing the hierarchy viewer from getting stuck, once when trying to load the window data for SurfaceView and the Wallpaper, and in the case the captured node has disappeared.
2010-08-25 17:41:02 -07:00
Konstantin Lopyrev
43b9b48f79 Preventing the hierarchy viewer from getting stuck, once when trying to load the window data for SurfaceView and the Wallpaper, and in the case the captured node has disappeared.
Change-Id: Iaff6bd501a2bb3faa7a394fff740479f6a95e899
2010-08-25 13:38:27 -07:00
Dianne Hackborn
773b769a7e am 6e549d1c: am f467ca08: Merge "More watermark work." into gingerbread
Merge commit '6e549d1c99ac41e44f30c8408f4b5382a0d281cb'

* commit '6e549d1c99ac41e44f30c8408f4b5382a0d281cb':
  More watermark work.
2010-08-24 11:54:49 -07:00
Dianne Hackborn
b9fb1705e8 More watermark work.
Change-Id: I1d20bc1f8679a9750b247126436e8ef7e47a77be
2010-08-23 16:51:56 -07:00
Dianne Hackborn
0a56fdc140 am 66b0343e: am a8d9291d: Merge "Various battery info things:" into gingerbread
Merge commit '66b0343e9e32203cdd39b854852cf575ca2fcd6b'

* commit '66b0343e9e32203cdd39b854852cf575ca2fcd6b':
  Various battery info things:
2010-08-16 15:17:46 -07:00
Dianne Hackborn
9adb9c3b10 Various battery info things:
- Now track wake locks in battery history.
- Now track sensors in battery history.
- Some filtering of sensory data.
- Fixes to some data that wasn't cleared when resetting battery stats.
- Print amount discharged since last charge.

And the big part -- keep track of wake locks held per process,
and kill processes that hold wake locks too much while they are in
the background.  This includes information in the battery stats
about the process being killed, which will be available to the
developer if the app is reported.

Change-Id: I97202e94d00aafe0526ba2db74a03212e7539c54
2010-08-13 15:17:49 -07:00
Dianne Hackborn
5caaf378d8 am 9185e26a: am fb86ce93: Add watermark support.
Merge commit '9185e26a8f06dd7013a528ffa2fe6b3f4aa58b7e'

* commit '9185e26a8f06dd7013a528ffa2fe6b3f4aa58b7e':
  Add watermark support.
2010-08-11 22:10:07 -07:00
Dianne Hackborn
fb86ce9307 Add watermark support.
Use these system properties:

ro.watermark.text
ro.watermark.height
ro.watermark.x
ro.watermark.y
ro.watermark.color
ro.watermark.shadow.radius
ro.watermark.shadow.dx
ro.watermark.shadow.dy
ro.watermark.shadow.color

If ro.watermark.text is not set, no watermark will be shown.  All others
have reasonable defaults if they are not set.

Change-Id: Ibe4a01e6f1c576494ae2462e2688cdfaa8c62cb8
2010-08-11 18:15:29 -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
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
Konstantin Lopyrev
ebd2f0ae82 am 8cdf4d92: am 6c6d57c6: Merge "Fix focus notification" into gingerbread
Merge commit '8cdf4d92ec93b7ba1ea6d7aaf3540283edfc6925'

* commit '8cdf4d92ec93b7ba1ea6d7aaf3540283edfc6925':
  Fix focus notification
2010-08-09 20:00:48 -07:00
Konstantin Lopyrev
5e7833a571 Fix focus notification
Change-Id: I51d73100695ceb70620754a1897ace681a26d839
2010-08-09 17:01:11 -07:00
Konstantin Lopyrev
d07476aee5 am 443f9baf: am 3b0d3d51: Merge "Adding a way for Hierarchy Viewer to get the focused window." into gingerbread
Merge commit '443f9bafb02c6a5a7311c7069995e5a3bdd875f8'

* commit '443f9bafb02c6a5a7311c7069995e5a3bdd875f8':
  Adding a way for Hierarchy Viewer to get the focused window.
2010-08-06 19:06:44 -07:00
Konstantin Lopyrev
f962476471 Adding a way for Hierarchy Viewer to get the focused window.
Change-Id: I01e6ab4aa24d632fba586cb9e112d8d9df1a681a
2010-08-06 13:27:31 -07:00
Konstantin Lopyrev
2bf8028a23 am b59b1209: am 321f7fad: Making sure that there is no notification when focus changes from something to nothing.
Merge commit 'b59b120929f10c1501d27ebab2f69180868e9776'

* commit 'b59b120929f10c1501d27ebab2f69180868e9776':
  Making sure that there is no notification when focus changes from something to nothing.
2010-08-04 11:12:13 -07:00
Casey Burkhardt
0920ba5ef1 Fixing font scale in WindowManagerService.
There was a bug that causes WindowManagerService to lose
the fontScale setting.

This fix submitted on behalf of Casey Burkhardt.

Change-Id: I3a76de15adf13badc5efca8d620d14c972a96ec4
2010-08-03 12:22:47 -07:00
Konstantin Lopyrev
321f7fad5c Making sure that there is no notification when focus changes from something to nothing.
Change-Id: Ib8b3bdd7f5dd999c933a017fe1b34263afe38e4a
2010-08-03 11:21:55 -07:00
Christopher Tate
1f4c67a4b1 am 79f2d005: am a213ce02: Merge "Mute a common-case progress log about input injection" into gingerbread
Merge commit '79f2d00596b7e24a285443c8e9e77bece3f5e9e2'

* commit '79f2d00596b7e24a285443c8e9e77bece3f5e9e2':
  Mute a common-case progress log about input injection
2010-08-02 15:27:26 -07:00
Christopher Tate
09e85dc027 Mute a common-case progress log about input injection
Change-Id: I37c9f5cb239ab93fde3a42f71f2782d8734c53ce
2010-08-02 11:59:11 -07:00
Dianne Hackborn
154db5f635 Maybe fix issue #2881233: reboot loop at boot on stingray
Change-Id: I4bd88fdd506d061146c441143d39b796a8df2f49
2010-07-29 19:15:19 -07:00