Commit Graph

256 Commits

Author SHA1 Message Date
Dianne Hackborn
93e462b79d Implement issue #1780928: Need support hiding nav keys.
This implements support for devices whose hardware can hide
their navigation keys.  It works much like the existing keyboardHidden
configuration, and for compatibility uses the same configuration
change bit.

Also add FLAG_TURN_ON_SCREEN for windows, which has the system
cause the screen to be turned on when the window is displayed.
Great fun when used with FLAG_SHOW_WHEN_LOCKED!

Change-Id: I0b867f19af85cfd8786a14cea194b34f7bdd9b7a
2009-09-15 22:50:40 -07:00
Dianne Hackborn
1cd403eaac Add SurfaceView API to put surface on top of window.
Change-Id: I9db84ee63a362e54ebc2f5b24a20ae5bdc3588bf
2009-09-15 11:29:00 -07:00
Dianne Hackborn
8d37426c75 Various fixed for back key handling.
My last change was far from perfect.  Hopefully this gets us
a little closer.

Change-Id: I413e55b6af42400b565de3040859d25d668bc9d2
2009-09-14 21:21:52 -07:00
Dianne Hackborn
83fe3f5592 Last big work on #1991910: Make swipes work with capacitive keys
This takes care of allowing us to cancel the back button.  The
back button is a bear because it is strewn all over the place --
everywhere you can close something, there is some code looking
for the back button that now needs to deal with being canceled.

The main things changed are activity (of course), dialog,
input method, search dialog.  There are some other misc places
in the framework (and some I missed here that I will get in a
second pass).

To facility all of this, the key dispatching APIs now provide
a lot more support for dealing with looking for cancelled keys,
and incidentally also provide an actual API for catching long
key presses.  This also helped clean up the code in PhoneWindow
where it deals with all of the combinations of key pressed and
releases.  (And also allows people to override
Activity.onKeyLongPress() to provide a different long press
action for a standard key like search.)

And while I was doing this, I reworked how we detect long
presses by having this be part of the key event delivered by
the window manager.  This should greatly reduce (hopefully
outright eliminate) the problems with long presses being
mis-detected when an application is being slow.

Change-Id: Ia19066b8d588d573df3eee6d96e1c90fdc19f57d
2009-09-14 17:53:52 -07:00
Android (Google) Code Review
d023f9a9a9 Merge change 24829 into eclair
* changes:
  Some optizations to wallpaper drawing/scrolling.
2009-09-14 18:45:42 -04:00
Dianne Hackborn
19382ac1a4 Some optizations to wallpaper drawing/scrolling.
First, fix some issues with the final wallpaper bitmap
we use: ensure it is always 16bpp, and make sure dithering
of its bitmap is turned off.   We take of dithering
when loading, to make sure we don't use it when drawing.

Also add new APIs to return the wallpaper with the equivalent
of Launcher's old FastBitmapDrawable.  As doing this, also load
the default wallpaper the same way as custom ones, taking care to
resize it as needed at load time.

Finally implement a mechanism for the window manager to wait
for the wallpaper to redraw at its new position before returning
from the application's call to change the offset.  This ensures
that the wallpaper better tracks the application.  Note that there
is a timeout in this wait that is relatively short, and if it
expires we will run for a while without waiting.

Change-Id: Ife449437746da85958bd447e0a6cf3d2223b398c
2009-09-14 15:29:44 -07:00
Romain Guy
8c11e31143 Fix a possible NPE in View.
Change-Id: Ieebd176e1f42c78e298aca973e9e5eed2dc3c6d9
2009-09-14 15:15:30 -07:00
Dianne Hackborn
8cae124af2 Various cleanup around resources and nine-patches.
Remove the stuff that doesn't use preloaded drawables when in
compatibility mode, since this works fine ever since we were able
to deal with drawables in a different density than the canvas.

Change the snapshot function on View to return a snapshot at
the same size that will actually be drawn on screen (when in
compatibility mode), to be able to show scaling artifacts and
all.

This change was original an attempt to fix issue #2101917: Text
field edges appears to be improperly rounded.  That turns out to
probably be something deeper in the graphics system, but also
included here is the debugging code I did to try to track down the
problem to make it easy to turn on again later.

Change-Id: I34bfca629639c7ff103f3989d88874112ef778d9
2009-09-11 13:31:45 -07:00
Mathias Agopian
6b7f1a62b5 fix [2074427] SurfaceView doesn't disappear on GONE 2009-09-09 18:32:34 -07:00
Dianne Hackborn
eb034652c2 Implement all of the infrastructure for configuring wallpapers.
Actually being able to configure a wallpaper relies on additional
work in the launcher and wallpapers that will be in another change.
Also note that this breaks all existing wallpapers, since they now
need to include a meta-data item about themselves.  This also
will be fixed in another change.

Change-Id: I97d2c2bd07237abc32f92b9147c32530a2f73c71
2009-09-07 22:48:02 -07:00
Dianne Hackborn
0586a1b77a Fix issue #2095422: Some fades from opaque to transparent don't work
ViewRoot was using Surface.clear(), which has different behavior
in different processes -- in the system process it would kill the
surface, causing all windows in that process to immediately disappear
instead of animating away.

This change makes Surface.release() public and uses that instead.  It
also renames Surface.clear() to Surface.destroy().

Also fixed some issues in the window manager that were causing the
wallpaper to not get immediately resized when the orientation changes
and its target window is removed and re-added.

Change-Id: I2a992e365cf5747511f0bf1193db32dc2525b218
2009-09-07 01:01:15 -07:00
Dianne Hackborn
25994b4306 Wallpapers: new transitions, hiding when not visible, other cleanup.
This is work on the transitions with wallpapers.  There are now new
animations specifically for leaving the wallpaper and returning to
it, which allow us to have a consistent animation when entering home
and returning to it.  I also renamed the existing animations across
wallpapers, and cleaned up some junk in the various interpolators.

This also now hides the wallpaper surface when it is not visible,
to get rid of the wallpaper flickers people complained about albeit
in a somewhat brutal way. :)  (Though really returning us to the
previous behavior with the same previous bugs and name back to them
not being very visible, yay!)  There is are also some bug fixes
here and there about managing the wallpaper visibility that this
change revealed.

Change-Id: I913990a9a81651728122ed2e1101b75ed2c36fcb
2009-09-04 14:28:42 -07:00
Mike Reed
e8853fc570 also expose onDrawHorizontalScrollBar() in View
retool WebView's calculations to correctly compute scrollbar height and parameters
2009-09-04 15:05:27 -04:00
Mike Reed
4d6fe5ffdc allow subclassing for drawing vertical scrollbar, so that clients (e.g. webview) can resize/position 2009-09-03 13:29:05 -04:00
Romain Guy
6198ae8468 Prevent ListView from scrolling/flinging its content when the content fits on screen.
Change-Id: Id46313bca3ae53b0717cd74a4a6f889a01f9fcb1
2009-08-31 17:45:55 -07:00
Android (Google) Code Review
6391830d10 Merge change 22958 into eclair
* changes:
  Don't activate keyguard if screen is turned off while proximity sensor is active.
2009-08-27 14:31:06 -07:00
Mike Lockwood
ddfe879b78 Don't activate keyguard if screen is turned off while proximity sensor is active.
Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-08-27 13:27:08 -07:00
Dianne Hackborn
6ccd2aff3e resolved conflicts for merge of 301b97ac to eclair
Change-Id: I0fb70cbe0a52006ad14f43a02c30b72aad457c48
2009-08-27 12:26:44 -07:00
Romain Guy
e55e1a7885 Change fade to use a gradient from opaque color to transparent color.
Previously the fade was using a gradient from opaque color to transparent black.
2009-08-27 10:42:26 -07:00
Dianne Hackborn
fd12af4e76 Various tweaks to try to improve low memory behavior.
- Reduce the amount that we ask processes to GC after a significant
  operation occurs, but introducing a minimum time between GCs and
  using this in various ways to schedule them.

- Don't spam all of the processes with onLowMemory().  Now deliver
  these using the same gc facility, so we do the processes one at a
  time, and don't allow the same process to get this call more than
  once a minute.

- Increase the time a service must run before we will reset its
  restart delay to 30 minutes (from 10).

- Increase the restart delay multiplication factor from 2 to 4.

- Ensure that we don't restart more than one service every 10 seconds
  (unless some external event causes a service's process to be started
  for some other reason of course).

- Increase the amount of time that a service must run before we
  decide to lower it to a background process.

And some other things:

- Catch IllegalArgumentException in ViewRoot like we do for no
  resources to avoid the system process crashing.

- Fix a number of places where we were missing breaks between the
  activity manager's message dispatch func(!!).

- Fix reason printed for processes in the background.

- Print the list of processing waiting to GC.
2009-08-27 01:03:24 -07:00
Dianne Hackborn
4a51c20ce6 I am getting tired of the java doc warnings, so fix them.
Change-Id: I2205eebae419eaf4a0992c9f5b7cd807eb843fe1
2009-08-24 17:37:32 -07:00
Mike Lockwood
391305e740 Add resources to specify display rotation when in keyboard open or docked state.
Also added constant for SW_LID input event.

Signed-off-by: Mike Lockwood <lockwood@android.com>
2009-08-24 15:38:47 -07:00
Dianne Hackborn
3be63c0930 Infrastructure for supporting wallpaper previews.
Various things that will allow us to show previews of wallpapers.
Also some fixes to animations across wallpapers.
2009-08-20 20:34:42 -07:00
Android (Google) Code Review
789de3a824 Merge change 22003 into eclair
* changes:
  Add wallpaper transition animations.
2009-08-19 18:35:53 -07:00
Dianne Hackborn
f8fbdb6b92 Add wallpaper transition animations.
The window manager now detects when a transition between two
wallpaper activities is happening, and switches to a new set
of animations for that.  The animations I defined here are just
an arbitrary something that can work in this case.
2009-08-19 17:45:56 -07:00
Mathias Agopian
b2f8450db8 fix [2063336] Surface.lockSurface throws IllegalArgumentException when out of memory 2009-08-19 17:10:18 -07:00
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