Commit Graph

965 Commits

Author SHA1 Message Date
Michael Jurka
4d2bd4c9ae fixing getLocationInWindow
- takes into account mTranslationX/Y

Change-Id: I7d622fe9e8b5e021f8585894b72ffd82c087cc57
2010-12-03 18:05:12 -08:00
Chet Haase
f2f7d8f9dd Fix invalidation issue for optimized/GL case.
The bug caused intermittent artifacts where some apps would not get
repainted until some overall screen invalidation occurred.

Change-Id: I82a3294429f15fe51cc8f4b47134e3b5540cb240
2010-12-03 14:35:29 -08:00
Dianne Hackborn
189ee18d6c Implement smarter sizing of WRAP_CONTENT windows.
This extends the view hierarchy's measure pass to allow view to
propagate up to their parent additional information besides just
their measured size.  They can now report that their measured width
and/or height should be larger than the size their parent is
limiting them to (even though by definition they need to contrain
their reported measurements to the limits imposed by the parent).

ViewRoot uses this information to determine if it should remeasure
the window with a larger size limit to try to make it fit.

Change-Id: I90af3b7a8ec45d0a5c003fb009857025209d83eb
2010-12-03 10:46:18 -08:00
Jeff Brown
9065504a63 Improve support for external keyboards.
Use Vendor ID, Product ID and optionally the Version to
locate keymaps and configuration files for external devices.

Moved virtual key definition parsing to native code so that
EventHub can identify touch screens with virtual keys and load
the appropriate key layout file.

Cleaned up a lot of old code in EventHub.

Fixed a regression in ViewRoot's fallback event handling.

Fixed a minor bug in FileMap that caused it to try to munmap
or close invalid handled when released if the attempt to map
the file failed.

Added a couple of new String8 conveniences for formatting strings.

Modified Tokenizer to fall back to open+read when mmap fails since
we can't mmap sysfs files as needed to open the virtual key
definition files in /sys/board_properties/.

Change-Id: I6ca5e5f9547619fd082ddac47e87ce185da69ee6
2010-12-02 16:01:32 -08:00
Romain Guy
7d69594580 Skip DIRTY_OPAQUE optimizations when ViewRoot changes the dirty region.
Bug #3159481

Change-Id: I97d6517f4648b3efe8b13a277e0374844a4d8455
2010-12-02 00:11:12 -08:00
Michael Jurka
67f23ba649 Revert "Re-add performance optimization in View"
Found reproducible cases of Launcher freezing up due to this change

This reverts commit 62490bd358.

Change-Id: I1b10e05ee9f0c43566b53c7a11e61fc168d17a75
2010-12-02 00:06:26 -08:00
Christopher Tate
407b4e91fe API CHANGE: drags can now carry an originator-only object payload
When calling startDrag(), the app can now supply an Object to be passed
along in every DragEvent that the app winds up receiving itself.  This
object is *not* passed to any other applications; it's strictly app-
local.  The purpose is to allow state tracking/management to be done
directly through the drag mechanism rather than requiring out-of-band
code.

An example of the utility here might be TextEdit widgets.  A drag that
starts in one TextEdit but ends in a different one should be treated as
a copy/paste operation, where the originating TextEdit is not altered.
However, a drag that starts and ends in the *same* TextEdit is a 'move'
operation within that TextEdit; the text is removed from its original
position and inserted at the drop point.  To support this easily, the
drag/drop code in TextEdit can now pass a pointer to the originating
view as the local state object.  Then, the drop recipient could tell
whether the drag started within the same TextEdit without needing to
implement any other out-of-band state tracking.

This CL (and its accompanying CLs in a few other packages where the
startDrag() API is being used) adds the new local-state parameter to
the API, but does not actually change the behavior of any existing
clients.

Change-Id: Icba73b2ab4a650b7a94485a19633065b0ef9058c
2010-12-01 14:45:06 -08:00
Gilles Debunne
fff4ab09b6 Refactored OverScroller
Restored the interpolator and a constructor with 4 parameters.

New spline coefficients, spline computation moved to MagneticOverScroller, which has been
renamed SplineOverScroller.

Change-Id: If1ab2653bb998600e9c5d6f46dfd6cd30fa44efc
2010-12-01 11:41:42 -08:00
Dianne Hackborn
0f761d6b8f Implement issue #3201795: Improve transition when keyboard comes up
ViewRoot now does a fade animation between a snapshot of the previous
layout to the new one when its content rect changes.

Also tweaked some things in the window manager to fix problems in
deciding when to animate the movement of a window and when not to.

Change-Id: I9b4b3bd53c8258bd39a2f2fc315e77cfc56a409c
2010-12-01 11:00:42 -08:00
Jeff Brown
46a5ae6dd7 Fix documentation bug.
Change-Id: Idd8857087a61e357466c8db60d56075637240c5d
2010-11-30 19:52:29 -08:00
Jeff Brown
1f2451007c Ensure the ShortcutManager uses the correct key character map.
The ShortcutManager used to only receive the key code of the key event
that triggered the shortcut.  This change now provides the shortcut
manager with the whole key event so it can look up the associated
character using the correct key character map.

To make this more efficient, added a mechanism for recycling
key events.  At the moment it is only used by key events owned by the
system process, since clients of the existing API (such as Views)
might continue to hold on to key events after dispatch has finished so
they would break if the key event were recycled by the framework.

Deprecated KeyCharacterMap.BUILT_IN_KEYBOARD.

Change-Id: I4313725dd63f2be01c350c005a41c7fde9bc67e8
2010-11-30 18:50:17 -08:00
Michael Jurka
62490bd358 Re-add performance optimization in View
- undoing change 79897

Change-Id: I52eb1247c4fead5e4203d7e7200129aa815e7c9b
2010-11-30 13:49:24 -08:00
Chet Haase
7306668586 animation bugfix plus xml resources for new View properties
There was a bug around animation duration where it was possible,
for small durations or large inter-frame times, to calculate
fractions outside of the 0-1 range, causing bad value calculations.

Unrelated: new View properties for translation, scale, and rotation
were added in this release. This commit addes XML resources for
those properties.

Change-Id: Ieaf5dd729588adb2a40656aa82beecc3576f4af5
2010-11-30 11:11:43 -08:00
Dianne Hackborn
fefc0743f8 Merge "Auto-show IME for dialogs on large screens." 2010-11-29 22:56:03 -08:00
Dianne Hackborn
7d3a5bcf30 Auto-show IME for dialogs on large screens.
On a large screen the IME is not going to as significantly
cover a pan & scan window, so allow it to auto-show if the
app hasn't otherwise specified its visibility.

Also some fixes here and there.

Change-Id: I10227ec59c43454e06e6870633f53426f4d78b83
2010-11-29 22:52:12 -08:00
satok
af4bf400ab Fix a bug of equals in InputMethodSubtype
Change-Id: I68b4726bedfb55d4737cf859ad3cb54bc19f9511
2010-11-30 14:02:49 +09:00
Dianne Hackborn
711e62a84f Fix issue #3225529: AlertDialogs are squishing their content views
ViewRoot is now smarter about measuring WRAP/WRAP windows.

Change-Id: I690fc78ddbe252d7c8070edb8e7352aec6c67ce9
2010-11-29 18:06:36 -08:00
Dianne Hackborn
f9d0be917b Implement rotation animations.
This introduces a small new feature for ScaleAnimation allowing
the scaling factor to be expressed as a percentage of the object
(which is the same as the existing float interpretation), a
percentage of the container, or a fixed dimension.  Maybe not
useful for anything else, but I needed it for this.

Also fix a bug in how transformation matrices were propagated
from the Animation to Surface Flinger, so that rotate and skew
animations will actually work. :p

Change-Id: I301f4caa2147aa35564b5e511cb9c0b368d2425d
2010-11-28 18:28:57 -08:00
satok
440aab54ca Removed InputMethodSubtypePicker
Change-Id: I08abac5d65a30c02cc671f4f70e93df25b6c8a92
2010-11-25 19:53:56 +09:00
Brad Fitzpatrick
c1a968a8ed Option to enable StrictMode flashing on userdebug builds.
Change-Id: Ifc8e733ea0e0f6bda234a18ad84bcd230879e802
2010-11-24 13:41:48 -08:00
Joe Onorato
7750c2ac61 Merge "this should be @hidden" 2010-11-24 11:15:07 -08:00
Joe Onorato
a89e903fd4 this should be @hidden
Change-Id: Ib372fa15a5284b30e2edef5a1d90544eb2166ee4
2010-11-24 11:13:44 -08:00
Dianne Hackborn
a111187a5b Change rotation freeze to all be implemented in window manager.
Lots of work for no visible change in behavior, but now we can
do some fancier stuff...

Also allow rotation in all 4 directions.

Change-Id: I7e5e9537c5e359f69b83c10f65cc1ce95f371461
2010-11-24 10:41:07 -08:00
Joe Onorato
29fc2c9705 Allow status bar panels to be on top of the status bar.
Change-Id: I3c74ece5f7042e6302717f4263746d59d5447ec9
2010-11-24 10:26:50 -08:00
satok
2820351489 Add an API to set InputMethodAndSubtype
Change-Id: I66f1a4c8e0d98705614f12a737e7efcd0263b72a
2010-11-24 12:28:45 +09:00
satok
f3db1af8d5 Change return type of getShortcutInputMethodsAndSubtypes to Map<InputMethodInfo, List<InputMethodSubtype>>
bug: 3201828

- Brushed up the code

Change-Id: I11ad9d1d749bd8947144ca7f1676bab3cf777fd6
2010-11-24 06:32:44 +09:00
Adam Powell
637d337b58 Merge overscrolling from gingerbread.
Change-Id: I3eb4413261b38ddd8c609d6153bdfd4ae46c6a0f
2010-11-23 09:30:10 -08:00
Brad Fitzpatrick
6804433b0a StrictMode visual notification support.
Change-Id: I64a5adb683060d9649f1132414547bb3c346a2a8
2010-11-22 19:39:52 -08:00
satok
4e4569dab5 Add an API to get shortcut IMEs
- If there are no selected shortcut IMEs, the most applicable voice input will be selected as a shortcut IME

Change-Id: Ibd0f7ef5101013569c303820a3adc9038a97356d
2010-11-23 10:26:11 +09:00
Brian Carlstrom
8c62c1d6b9 Merge "Adding CloseGuard to Animation to find forgotten animations" 2010-11-19 16:28:30 -08:00
Brian Carlstrom
877e0b99ee Adding CloseGuard to Animation to find forgotten animations
Change-Id: I90df2c8a88dd75550431b7db63242db1a1b2f16a
2010-11-19 16:16:46 -08:00
Christopher Tate
855e4c9884 Hide DragEvent pool implementation and add docs
Change-Id: Idaead8ab604c69d6dbc1bd5de3afa86e1fae8396
2010-11-19 15:32:09 -08:00
Dianne Hackborn
8e11ef0d94 Some work on issue #3201795: Improve transition when keyboard comes up
Now try to slide dialogs if they end up moving due to the IME (or
other system things) showing/hiding.  Pretty hackish, but seems to
work.

Change-Id: Icd297e941cf847fa920c9605145c46be63043d52
2010-11-18 19:57:49 -08:00
Jeff Brown
6b53e8daa6 Added support for full PC-style keyboards.
BREAKING CHANGE: Redesigned the key character map format to
accomodate full keyboards with more comprehensive suite of modifiers.
Old key character maps will not work anymore and must be updated.
The new format is plain text only and it not compiled to a binary
file (so the "kcm" tool will be removed in a subsequent check-in).

Added FULL keyboard type to support full PC-style keyboards.

Added SPECIAL_FUNCTION keyboard type to support special function
keypads that do not have any printable keys suitable for typing
and only have keys like HOME and POWER

Added a special VIRTUAL_KEYBOARD device id convention that maps
to a virtual keyboard with a fixed known layout.  This is designed
to work around issues injecting input events on devices whose
built-in keyboard does not have a useful key character map (ie.
when the built-in keyboard is a special function keyboard only.)

Modified several places where events were being synthesized
to use the virtual keyboard.

Removed support for the "qwerty" default layout.
The new default layout is "Generic".  For the most part "qwerty"
was being used as a backstop in case the built-in keyboard did
not have a key character map (probably because it was a special
function keypad) and the framework needed to be able to inject
key events anyways.  The latter issue is resolved by using the
special VIRTUAL_KEYBOARD device instead of BUILT_IN_KEYBOARD.

Added the concept of a key modifier behavior so that
MetaKeyKeyListener can distinguish between keyboards that use
chorded vs. toggled modifiers.

Wrote more robust key layout and key character map parsers
to enable support for new keyboard features and user installable
key maps.

Fixed a bug in InputReader generating key ups when keys
are released out of sequence.

Updated tons of documentation.

Currently QwertyKeyListener is being used for full keyboards
with autotext and capitalization disabled.  This mostly works
but causes some problems with character pickers, etc.
These issues will be resolved in subsequent changes.

Change-Id: Ica48f6097a551141c215bc0d2c6f7b3fb634d354
2010-11-18 09:49:03 -08:00
satok
67ddf9cbd5 Add a function to get enabledInputMethodAndSubtype
Change-Id: Ie97635343249aa63e33028c2843cab103125ca92
2010-11-17 13:59:56 +09:00
Dianne Hackborn
d9b3b7e8e1 Fix issue #3202866: system server crash
Change-Id: Ied92164bea70f6cb8afe2c1c6ff4fc3836a209ab
2010-11-16 19:35:20 -08:00
Adam Powell
debf3bed9e Fix bug 2948913 - provide lifecycle notifications for action modes
Change-Id: I432e29a7bddb18bc32dfbe21a8ecd7d83158e3a0
2010-11-15 20:59:29 -08:00
Michael Jurka
f942b7cbca Merge "Fix issue where Launcher was not getting redrawn" 2010-11-15 17:01:54 -08:00
Michael Jurka
ebefea4658 Fix issue where Launcher was not getting redrawn
This is a temporary fix; will submit a change later that restores the performance improvement but fixes the drawing issue
2010-11-15 16:04:01 -08:00
Adam Powell
759dc706ba Fix bug 3176330 - Improve documentation around MenuItem.setShowAsAction
Change-Id: Ibc8babd3668d0d8e1ed50ac330aac06a4f57dc1e
2010-11-15 15:12:20 -08:00
Dianne Hackborn
7eec10e6c9 Get rid of the extended themes.
We now decide whether to use a bitmap background based on whether the
window's drawing is hardware accelerated.  To do this, there is a new
"state_accelerated" that state list drawables can be parameterized on,
and the standard window background uses this to select a solid color
or bitmap drawable as appropriate.

Introduces a little hackery to have wm preview windows pretend like
they are hardware accelerated even if they aren't, so the preview looks
closer to the actual app.

Also Add a DialogWhenLarge variation for the light theme.

Change-Id: I215a79d5df65ba3eed52ab363cade9d8218a6588
2010-11-14 14:23:42 -08:00
satok
b66d287e30 Add a setter of InputMethodSubtype to InputMethodManager
- Public API: void setCurrentInputMethodSubtype(int pos)

Change-Id: I55daa19ba924999def544bf841f00bf54852f3e1
2010-11-13 09:49:59 +09:00
satok
735cf38b8c Add a function to switch back to the last used IME
Change-Id: Iac7bcc2ee16dd04d91a3e75b160622d246788c9a
2010-11-13 08:00:25 +09:00
Jason Bayer
3adf490a5a Add new keycodes initially used for GoogleTV devices.
Change-Id: I1b901037d6d401931dd3ec6f7d5e1e6ad165d1c9
2010-11-11 18:36:11 -08:00
Chet Haase
449bb119c9 Merge "Add invalidation to Drawable when its properties change" 2010-11-11 14:04:10 -08:00
Chet Haase
9891e1fce5 Add invalidation to Drawable when its properties change
invalidateSelf() already exists on Drawable. This triggers a call to
callback listeners so that they know the drawable has been invalidated.
For example, the background drawable on View will cause the View itself
to be invalidated.

Change-Id: I45b231a7600dcf3bc139e4059b7c9940ff49f60c
2010-11-11 13:20:08 -08:00
Chet Haase
0d200833fd Fix GL rendering of translucent surfaces
GL renderer was not initializing scissor correctly for translucent
surfaces, resulting in invisible window backgrounds in some cases
like fading popup windows

Change-Id: I87a964986e1ba2c4f59708c8892c5fa71903e6fc
2010-11-09 06:38:56 -08:00
Adam Powell
848ae6e48b am 6bb4f67a: am 26153a33: Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
* commit '6bb4f67ac29b916b8ea4f08b79a7bc46c5844646':
  Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
2010-11-08 19:25:54 -08:00
Mathias Agopian
0440f023dc am f704645b: am 5fd30540: Merge "possibly fix [2265804] OpenGL GLSurfaceView apps don\'t draw status bar drop shadow correctly" into gingerbread
* commit 'f704645b0ccf6feac9f41c82caf0ec34370a3bd0':
  possibly fix [2265804] OpenGL GLSurfaceView apps don't draw status bar drop shadow correctly
2010-11-08 19:24:13 -08:00
Adam Powell
6bb4f67ac2 am 26153a33: Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
* commit '26153a33df8e6608bd37da7d44214b2a0db3195f':
  Fix bug 3163052 - always use 32-bit drawing caches when destination window is 32-bit
2010-11-08 18:35:22 -08:00