Commit Graph

230 Commits

Author SHA1 Message Date
Romain Guy
15df6703f8 Fix potential leak in ViewRoot.
The way View.post() is handled can cause potential leaks in ViewRoot. For instance,
if a View calls post(Runnable) just after being detached from the window (in an
onClickListener for instance,) it will enqueue a Runnable in ViewRoot.RunQueue.
Unfortunately the RunQueue is emptied only on the very first layout of the ViewRoot.
This change prevents the leak by rxecuting the enqueued Runnables on every layout request
The latter did not happen before and to keep views in a correct state I think it
is necessary to always ensure we run the Runnables sent via View.post().
2009-08-18 10:16:41 -07:00
Dianne Hackborn
8df8b2b405 Allow wallpapers to get touch events. 2009-08-17 21:23:05 -07:00
Mathias Agopian
317a6280cc Surface::GPU and Surface::HARDWARE are now deprecated; they will be set automatically if needed.
this also ripples into the window manager API by making some constant there deprecated as well.
2009-08-13 18:19:32 -07:00
Joe Onorato
168173a698 Don't crash when the window is closing 2009-08-12 21:42:00 -07:00
Dianne Hackborn
72c82ab992 Report wallpaper offset to the wallpaper, use this in the image wallpaper.
Wallpapers can now be just the size of the screen, and get told when their
scroll position should change to do the updating on their own.
2009-08-12 14:41:29 -07:00
Dianne Hackborn
c8a0a75e1c Implement support for scrolling a wallpaper.
This currently only works for a wallpaper that is larger than the
screen.  Set the scroll position with the new wallpaper API.  Right
now only does jump scrolls.
2009-08-11 10:03:16 -04:00
Dianne Hackborn
4c62fc0e1e Very primitive wallpapers in a surface.
This is all of the basic pieces:

- The WallpaperService now creates a surface with the window manager for its
  contents.
- There is a simple service that displays a bitmap.
- The wallpaper manager takes care of starting and stopping the service.
- The window manager knows about wallpaper windows and how to layer them with
  the windows that want to be shown on top of wallpaper.

Lots and lots of issues remain, but at this point you can actually write a
wallpaper service, select it in the UI, and see it behind an activity.
2009-08-08 22:13:46 -07:00
Dianne Hackborn
1e8dfc73fb Fix crash when MotionEvent is initialized with more than 2 fingers, and bump
its initial size to allow for up to 5 fingers.
2009-08-06 12:43:01 -07:00
Dianne Hackborn
d41ba666d1 Fix documentation. 2009-08-05 15:30:56 -07:00
Dianne Hackborn
0dd7cb4b4e Finish implementation of multiple pointer support for MotionEvent.
The major things going on here:

- The MotionEvent API is now extended to included "pointer ID" information, for
  applications to keep track of individual fingers as they move up and down.
  PointerLocation has been updated to take advantage of this.

- The input system now has logic to generate MotionEvents with the new ID
  information, synthesizing an identifier as new points are down and trying to
  keep pointer ids consistent across events by looking at the distance between
  the last and next set of pointers.

- We now support the new multitouch driver protocol, and will use that instead
  of the old one if it is available.  We do NOT use any finger id information
  coming from the driver, but always synthesize pointer ids in user space.
  (This is simply because we don't yet have a driver reporting this information
  from which to base an implementation on.)

- Increase maximum number of fingers to 10.  This code has only been used
  with a driver that reports up to 2, so no idea how more will actually work.

- Oh and the input system can now detect and report physical DPAD devices.
2009-08-04 20:53:52 -07:00
Wink Saville
7cd88e1713 Update the comment for setBackgroundResource that 0 removes the background. 2009-08-04 14:45:10 -07:00
Android (Google) Code Review
a05f75d61a Merge change 9267
* changes:
  Don't invalidate view if setEnabled doesn't change the state.
2009-07-30 16:55:04 -07:00
Amith Yamasani
a2ef00b428 Don't invalidate view if setEnabled doesn't change the state.
Check the current enabled state before setting it, in case there's
no change. Otherwise some apps are repeatedly redrawing buttons based
on validation of some text field (like gmail or mms message bodies).
Should slightly improve the performance of soft keyboard text entry.
2009-07-30 16:14:34 -07:00
Android (Google) Code Review
afcf686cb0 am 25dff70f: Merge change 9039 into donut
Merge commit '25dff70f153529b87f5ad4a92f4de21e8950b1de'

* commit '25dff70f153529b87f5ad4a92f4de21e8950b1de':
  Fix #2018814: System cannot correctly render assets with "wrap_content" attribute in QVGA
2009-07-30 16:05:27 -07:00
Dianne Hackborn
0d221012ff Fix #2018814: System cannot correctly render assets with "wrap_content" attribute in QVGA
It turns out we were not returning the density for anything retrieved from a
TypedArray...  which basically means any bitmap references from a layout or style...!!!

This is now fixed.

Also fiddle with the density compatibility mode to turn on smoothing in certain situations,
helping the look of things when they need to scale and we couldn't do the scaling at
load time.
2009-07-29 19:44:01 -07:00
Android (Google) Code Review
206b7b1709 Merge change 8974
* changes:
  Fix OOB in arraycopy.
2009-07-29 18:28:12 -07:00
Android (Google) Code Review
a5d7b1b7f7 am 159e1a9a: Merge change 8883 into donut
Merge commit '159e1a9a13ccfa4d99941e21068994366e2bbc7b'

* commit '159e1a9a13ccfa4d99941e21068994366e2bbc7b':
  fix [1973755] Surface.SURACE_FROZEN spelled SURACE_FROZEN
2009-07-29 09:46:38 -07:00
Owen Lin
18a081e684 Fix OOB in arraycopy. 2009-07-29 21:27:08 +08:00
Android (Google) Code Review
f256c4001b am a62f16ac: Merge change 8877 into donut
Merge commit 'a62f16accad31e03ede5e4e6525dbe30dccc6db0'

* commit 'a62f16accad31e03ede5e4e6525dbe30dccc6db0':
  Remove warning in non-eng builds.
2009-07-28 17:57:39 -07:00
Android (Google) Code Review
159e1a9a13 Merge change 8883 into donut
* changes:
  fix [1973755] Surface.SURACE_FROZEN spelled SURACE_FROZEN
2009-07-28 16:12:58 -07:00
Marco Nelissen
69f593ccb7 Support for selection of silent ringtone from the ringtone picker.
This doesn't actually enable that, but adds the necessary code to make it work when enabled, and cleans up some ringtone related code.
2009-07-28 16:06:38 -07:00
Mathias Agopian
c87c4a3e3b fix [1973755] Surface.SURACE_FROZEN spelled SURACE_FROZEN 2009-07-28 15:59:52 -07:00
Romain Guy
e551dc76bc Remove warning in non-eng builds. 2009-07-28 15:30:11 -07:00
Adam Bliss
dac57e4ec9 Fix a bug that was causing ArrayIndexOutOfBoutExceptions when obtaining a MotionEvent from an older one that had a number of time samples. 2009-07-27 14:03:02 -07:00
Dianne Hackborn
ddca3ee3e8 Add support for power keys, improve behavior of virtual keys.
The platform now knows how to deal with a platform key, which at this
point is "just like end call, but don't end a call."

Also improve the handling of virtual keys, to allow for canceling when
sliding off into the display and providing haptic feedback.

Finally fixes a bug where the raw x and y in motion event were not
always set which caused the status bar to not work.
2009-07-24 17:30:15 -07:00
Dianne Hackborn
e2dba02441 am 11ea3347: Allow for screen density drawables in compatibility mode.
Merge commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8'

* commit '11ea33471e1a14a8594f0b2cd012d86340dd3bd8':
  Allow for screen density drawables in compatibility mode.
2009-07-24 16:08:56 -07:00
Dianne Hackborn
11ea33471e Allow for screen density drawables in compatibility mode.
This change allows us to use drawables that match the current screen
density even when being loaded in compatibility mode.  In this case,
the bitmap is loaded in the screen density, and the bitmap and
nine-patch drawables take care of accounting for the density difference.

This should be safe for existing applications, for the most part, since
they shouldn't really be pulling the bitmap out of the drawable.  For
the small rare chance of them breaking, it worth getting the correct
graphics.  Also this will only happen when there is actually a resource
of the matching density, and no existing apps should have resources for
anything besides the default density (though of course all of the
framework resources will be available in the native density).

As part of this, the bitmap density API has been changed to a single
integer provider the DPI unit density.
2009-07-24 10:47:15 -07:00
Mitsuru Oshima
30b06eb8b9 am 589cebe2: * Use the scaled size for surface view instead of native. The surface will be always scaled by surface flinger in compatiblity mode. The original approach confused the app because the surface size and the view size were different. * a few clean up. remo
Merge commit '589cebe2d58591403de4a77077941c0454bc91bc'

* commit '589cebe2d58591403de4a77077941c0454bc91bc':
  * Use the scaled size for surface view instead of native. The surface will be always scaled
2009-07-23 23:58:16 -07:00
Android (Google) Code Review
08f89ed9a4 am e0ef973b: Merge change 8323 into donut
Merge commit 'e0ef973b1358585d039989ee5572e16751078aaf'

* commit 'e0ef973b1358585d039989ee5572e16751078aaf':
  * a best effort fix for apps that uses get/set Matrix API on canvas.
2009-07-23 23:58:11 -07:00
Mitsuru Oshima
589cebe2d5 * Use the scaled size for surface view instead of native. The surface will be always scaled
by surface flinger in compatiblity mode. The original approach confused the app because
 the surface size and the view size were different.
* a few clean up. removed unsed arguments, obsolete conditions from getTranslator()
 (expandable check was a bug)
2009-07-23 13:38:01 -07:00
Mitsuru Oshima
240f8a7532 * a best effort fix for apps that uses get/set Matrix API on canvas.
- scale the matrix
  - but don't scale if the matrix *looks* like obtained from the canvas itself. (typically to set it back to original matrix)

This is best effort change and not perfect (not even close), but works for one game,
and hopes it can handle many other apps that uses set/get Matrix. If you have an alternative idea, please let me know.
2009-07-23 13:31:00 -07:00
Android (Google) Code Review
2c33bb19f7 am 98a44df4: Merge change 8235 into donut
Merge commit '98a44df4b4cc8cd28276ad888a7e17f81353ae44'

* commit '98a44df4b4cc8cd28276ad888a7e17f81353ae44':
  * Revert the change that I introduced while refactroing in SurfaceView#dispatchTouchEvent
2009-07-22 15:09:23 -07:00
Mitsuru Oshima
424f668545 * Revert the change that I introduced while refactroing in SurfaceView#dispatchTouchEvent
* Don't scale back the event if the canvas is used in SurfaceView.
2009-07-22 13:54:26 -07:00
Dianne Hackborn
9822d2b273 First stab at poly-finger support.
The MotionEvent API should be fairly solid, but there is still a lot of
work to do in the input device code.  In particular, right now we are
really stupid about watching how fingers change -- we just take whatever
the driver reports as down and dump that directly into the motion event.

The big remaning work is to assign pointer IDs so that applications have
help in determine which fingers go up and down, and adding support for
the official multi-touch driver protocol.
2009-07-21 19:02:12 -07:00
Mitsuru Oshima
d5d967fbd9 am 38ed7d77: * Adjust canvas size under compatibility mode.
Merge commit '38ed7d7701514ee7127d0430e952930854608c4f'

* commit '38ed7d7701514ee7127d0430e952930854608c4f':
  * Adjust canvas size under compatibility mode.
2009-07-21 18:14:19 -07:00
Mitsuru Oshima
38ed7d7701 * Adjust canvas size under compatibility mode. 2009-07-21 17:41:16 -07:00
Android (Google) Code Review
fead9b8ad0 am fe6f45c8: Merge change 8098 into donut
Merge commit 'fe6f45c81463d2d28e11ac6083f2653e1286c5ef'

* commit 'fe6f45c81463d2d28e11ac6083f2653e1286c5ef':
  cast is floor. Use round instead.
2009-07-21 17:41:10 -07:00
Mitsuru Oshima
61324e58c5 cast is floor. Use round instead.
This fixes a few layout issues (that was due to smaller widnow size)
2009-07-21 16:42:41 -07:00
Mitsuru Oshima
a065b01904 am 841f13c8: * Reverted the change in PackageParser that I checked by accident * More surface view fix. - correct event translation on surface view. - use compatible window * removed FLAG_NO_COMPATIBILITY_SCALE. It was my misunderstanding of how SurfaceView works,
Merge commit '841f13c8e9ff3f7695b6c18a8abcec3c947983ff'

* commit '841f13c8e9ff3f7695b6c18a8abcec3c947983ff':
  * Reverted the change in PackageParser that I checked by accident
2009-07-19 21:14:56 -07:00
Mitsuru Oshima
841f13c8e9 * Reverted the change in PackageParser that I checked by accident
* More surface view fix.
  - correct event translation on surface view.
  - use compatible window
* removed FLAG_NO_COMPATIBILITY_SCALE. It was my misunderstanding of how SurfaceView works, and this was not necessary.
* Added compatibility related info to package dumpsys
2009-07-19 19:17:06 -07:00
Android (Google) Code Review
97900afa9f am e96bd129: Merge change 7707 into donut
Merge commit 'e96bd1291482175ac1740780cbd0f42bbe9ff746'

* commit 'e96bd1291482175ac1740780cbd0f42bbe9ff746':
  * scale surface view's canvas
2009-07-17 17:13:20 -07:00
Android (Google) Code Review
0fde7de9d6 am 54f09101: Merge change 7613 into donut
Merge commit '54f09101381fa63dca35ae4ea0ba3802ee863236'

* commit '54f09101381fa63dca35ae4ea0ba3802ee863236':
  * Use Fede In/Out animation if one of opening/closing apps is in compatibility mode.
2009-07-17 13:58:40 -07:00
Mitsuru Oshima
34bf2ee9e6 * scale surface view's canvas
This will not affect GL/Video views as they're directly using surfce but not canvas.
2009-07-17 10:11:05 -07:00
Mitsuru Oshima
5a2b91dc14 * Use Fede In/Out animation if one of opening/closing apps is in compatibility mode.
* preserve compatibility window flag when the app updates window's layout params.
 * Added assertion in DEFAULT_COMPATIBILITY_INFO object to prevent unintentional modification.
 * A few minor updates
    * log/dump message improvement
    * Removed unnecessary method in FadeInOutAnimator
    * Fixed 100 char issue in WindwoManagerServer.java
2009-07-17 09:53:40 -07:00
Romain Guy
e9dcb803a0 Fixes merge conflict. 2009-07-16 14:46:55 -07:00
Android (Google) Code Review
6630e4a1dc am b5c735d3: Merge change 7106 into donut
Merge commit 'b5c735d35c8c1d2fb4e4654fbffcdb62d5acab4d'

* commit 'b5c735d35c8c1d2fb4e4654fbffcdb62d5acab4d':
  Return adjusted display for WindowManager.getDefaultDisplay()
2009-07-14 16:18:34 -07:00
Android (Google) Code Review
b5c735d35c Merge change 7106 into donut
* changes:
  Return adjusted display for WindowManager.getDefaultDisplay()
2009-07-14 16:13:38 -07:00
Android (Google) Code Review
5b2e50cbe1 am 30d86e51: Merge change 7124 into donut
Merge commit '30d86e5143d01815763f8c28b0fc72b0493ea9f8'

* commit '30d86e5143d01815763f8c28b0fc72b0493ea9f8':
  Fixes #1977685. Prevent crash when the soft keyboard is brought up.
2009-07-14 15:38:19 -07:00
Romain Guy
e8b165253d Fixes #1977685. Prevent crash when the soft keyboard is brought up.
ViewRoot keeps a reference to the previously focused View and use this reference
when trying to scroll the window to the focused rect. There situations however
in which the previously focused view might have been removed from the view
hierarchy. This happens on Home for instance when you trash an icon, or with
ListView's items. This change ensures the previously focused view is still part
of the view hierarchy.
2009-07-14 13:06:42 -07:00
Mitsuru Oshima
ddd12535f0 Return adjusted display for WindowManager.getDefaultDisplay() 2009-07-14 11:11:17 -07:00