Commit Graph

86 Commits

Author SHA1 Message Date
Dianne Hackborn
b5052de757 resolved conflicts for merge of a80bab37 to master
Change-Id: Id71cc68a617e1ea0dd2f3932d454be6dba336eef
2011-12-13 16:31:43 -08:00
Dianne Hackborn
33b8ee509f Fix issue #5756204: Crespo IME briefly appears shortened when...
...rotating to landscape

When doing spell checking in the same process as the spell checker, we
need to make sure it is still done asynchronously.

Putting this in I noticed quite a few threading issues in this code, so
I also addressed those (which became very obviously a problem with the
async stuff here now).

Also tweaked the service side to run spell checking at background priority.

Change-Id: I01bafe3bec6bceeca911d6bf2f61a486a2fd4c48
2011-12-13 15:15:33 -08:00
Jeff Brown
32cbc3855c Refactor InputQueue as InputEventReceiver.
This change simplifies the code associated with receiving input
events from input channels and makes it more robust.  It also
does a better job of ensuring that input events are properly
recycled (sometimes we dropped them on the floor).

This change also adds a sequence number to all events, which is
handy for determining whether we are looking at the same event or a
new one, particularly when events are recycled.

Change-Id: I4ebd88f73b5f77f3e150778cd550e7f91956aac2
2011-12-01 21:04:47 -08:00
Jeff Brown
4952dfd16a Ensure input events are processed in-order in the application.
As it turns out, it used to be possible for there to be multiple
input events simultaneously in flight in an application.  Although
it worked, it made it hard to reason about what was going on.
The problem was somewhat exacerbated by the introduction of a
queue of "InputEventMessage" objects as part of an earlier latency
optimization.

This change restores order from chaos and greatly simplifies the
invariants related to input event dispatch within the application.

Change-Id: I6de5fe61c1fe2ac3dd33edf770d949044df8a019
2011-12-01 14:13:48 -08:00
Dianne Hackborn
c0b7f65ae0 am 496f6e2a: am b54980d1: Merge "Fix issue #5588689: Black camera preview after coming back from gmail" into ics-mr1
* commit '496f6e2ad656c5bb8a277e191554d16abd290b58':
  Fix issue #5588689: Black camera preview after coming back from gmail
2011-11-28 16:57:17 -08:00
Dianne Hackborn
6d05fd3c79 Fix issue #5588689: Black camera preview after coming back from gmail
Make surface management between SurfaceView and the window manager
much more controlled, to ensure that SurfaceView always gets to report
the current surface is destroyed before the window manager actually
destroys it.

Also a small tweak to allow windows that have a wallpaper background
to still have a preview window.  This makes launching home after it
has been killed feel much more responsive.

Change-Id: I0d22cf178a499601a770cb1dbadef7487e392d85
2011-11-28 14:45:50 -08:00
satok
0dc1f648a0 add sentence level spell checker hidden apis
Change-Id: If65c89044bed064fd01a554e33176f64f7c21c0f
2011-11-22 09:18:12 +09:00
satok
74061ff904 Fix a memory leak of a Binder in SpellCheckerService
Bug: 5499490

Change-Id: I167a3e9dfdd6edd06c6ad993fbff3a535c81b09c
2011-11-03 01:22:20 +09:00
Chet Haase
a8e5a2bcd6 Optimize handling of scrolled wallpapers
Swiping the home screen causes the WindowManagerService to do
a bunch of work to keep the wallpapers in sync. First, it lays out
and places all windows. Also, it notifies the SystemUI process that
the wallpaper position has changed.

The layout/place operation is too much work - we only need to set
the position values for the wallpaper, not relayout the whole system.

The notification mechanism must exist, but should be optional. Most
wallpapers don't care (especially static ImageWallpapers). So we'll
give them a new API (WallpaperService.Engine.setWantsOffsets()) to
allow wallpapers to opt out of this process and avoid the performance
overhead.

Change-Id: I66c38375438937f14f6f5550565b28eb204b1e06
2011-10-28 14:49:23 -07:00
satok
182e4ae2f4 Add a path to HelloSpellChecker sample application for SDK build
Change-Id: I77e334f8e2b50b8609b1729edb253254d6b7360b
2011-10-28 02:27:53 +09:00
satok
44619d3e08 Update links for SampleSpellCheckerService for I938ba499
Change-Id: I528fc5ee5f9971ecb3bf47ef1c8b999546724c1f
2011-10-19 23:52:03 +09:00
Scott Main
b22723c3f6 docs: add package summary for spell checker services
Change-Id: Iaac3293f941ec117ec28e031d5e24073e1269851
2011-10-18 11:19:44 -07:00
satok
44b7503093 Add documents for the spell checker framework and the input method subtype
Bug: 4973788

Change-Id: I7e650f336ba1bb8949899e8b2355e6d492a2e4b2
2011-10-18 20:28:23 +09:00
Dianne Hackborn
9a230e01a1 Fix issue #5371530: SYSTEMUI_FLAG_HIDE_NAVIGATION reasserts itself immediately
This cleans up how ui flags are managed between the client and window manager.
It still reports the global UI mode state to the callback, but we now only clear
certain flags when the system goes out of a state (currently this just means the
hide nav bar mode), and don't corrupt other flags in the application when the
global state changes.

Also introduces a sequence number between the app and window manager, to avoid
using bad old data coming from the app during these transitions.

Change-Id: I40bbd12d9b7b69fc0ff1c7dc0cb58a933d4dfb23
2011-10-06 14:57:37 -07:00
Dianne Hackborn
9fe6cb5cc2 Fix issue #5273986: The power usage of the mp3 background playback...
...increased from ~50mA to 260mA

Change-Id: I24d7188185f4ec5ff9e1f29c15472ae56c851e5e
2011-09-09 13:02:43 -07:00
satok
117999d1f4 Make the spell checker session static
Change-Id: I66d51f33e005f46465232d3fc460cda0609609ea
2011-09-02 17:55:43 +09:00
Dianne Hackborn
9e4e727b4a Fix issues #5233826 and #5209847 -- live wallpapers.
5233826	when a live wallpaper starts, it does so regardless of its visibility

The WallpaperService is now very forceful about telling a wallpaper it is
not visible when it first starts.

5209847	Make launcher turn off the wallpaper in all apps.

Fix a bug in the window manager that would not correctly handle the wallpaper
flag changing.

Change-Id: Ie3314043a84664be72a1304a1705408efd789a15
2011-08-30 14:56:31 -07:00
Dianne Hackborn
527de8e3de Debugging for issue #5180240: Wallpaper continues to consume CPU when screen off
Add debug dump to the wallpaper service.

Change-Id: I01502b10de93b6f9d2315fd66776f3f2210e6696
2011-08-22 16:21:12 -07:00
satok
5357806980 API cleanup for the spell checker framework
Bug: 5110151

- Add a bundle to an argment of newSpellCheckerSession
- Expose SpellCheckerSessionImpl in SpellCheckerService
- Fix function names
- etc

Change-Id: Ia8ec783b7b4d5fcd18389854b445fc10fc502297
2011-08-04 12:53:56 +09:00
satok
aafd955fa8 Move SpellCheckerSession
SpellCheckerSession should be in android.view.textservice because this class will be used directly by users.

Change-Id: I0df6d7958adda421312b5f641ac4459ca4739cc9
2011-08-02 16:04:39 +09:00
satok
6be6d7548f Handle the existing binds to spell checkers correctly.
Change-Id: I32efce9f8c09b5a829b0431e8c444fc54b03b440
2011-07-29 09:57:07 +09:00
satok
142d7575b5 [step4] Change service interface
Change-Id: Iaf86065a2a7f075c670ebdaa60a33a815dcb8113
2011-07-25 11:01:49 +09:00
satok
1bedd99761 Tweak APIs for SpellChecker
1. Move getSupellcheckerInfo to SpellCheckerSession
2. Change the interface of getSpellCheckerSession
3. Remove a flag in SuggestionsInfo

Change-Id: I3debe09e213fc0ab74618eb3504383f2a9447fd9
2011-07-23 14:56:04 +09:00
satok
988323c57b Create TextServiceManager and SpellCheckerService
Bug: 4176026

This CL inherits https://android-git.corp.google.com/g/112600

Spec of TextServiceManager
- Chooses the most applicable TextService(e.g. SpellCheckerService, WordBreakIteratorService..)
    for each locale

Spec of SpellCheckerService
- Returns whether the given string is a correct word or not
- Returns Suggestions for the given string

Change-Id: Iaa425c7915fe70767ad0b17bf6c6fbcd2a1200b2
2011-07-22 14:52:21 +09:00
Dianne Hackborn
6dd005b481 I. Can. Not. Stand. ViewAncestor.
It was done so we would have the name "ViewRoot" available for a
public API.  However, the name "ViewAncestor" just makes no sense.
So instead, change it to ViewRootImpl.

Change-Id: If9599ca67896f339f6fefa7d1dde121201171d97
2011-07-18 16:16:23 -07:00
Jeff Brown
2457237532 Optimize orientation changes.
Modified setRotation to allow it to restart a rotation in
progress as long as the rotation animation has not yet started.
This enables the system to recover more quickly from mispredicted
orientation changes.

Removed the call to System.gc() when freezing the display, which
added 60-80ms before we even started the orientation change.
We used to need this to make it less likely that an upcoming GC
would cause a pause during the window animation, but this is
not longer a concern with the concurrent GC in place.

Changed the wallpaper surface to be 32bit.  This accelerates
drawing and improves the overall appearance slightly.

Reduced code duplication in the WallpaperManager.

Change-Id: Ic6e5e8bdce4b970b11badddd0355baaed40df88a
2011-06-10 18:13:30 -07:00
Joe Onorato
c6cc0f8c19 Rename ViewRoot to ViewAncestor.
ViewRoot is about to be a new public class for poking at ViewAncestor.

Change-Id: Ie95d707c6d8bbb48f78d093d7b2667851812a7d5
2011-05-04 14:08:11 -07:00
Jeff Brown
33bbfd2232 Add support for mouse hover and scroll wheel.
Dispatch ACTION_HOVER_MOVE and ACTION_SCROLL through the View
hierarchy as onGenericTouchEvent.  Pointer events dispatched
this way are delivered to the view under the pointer.  Non-pointer
events continue to be delivered to the focused view.

Added scroll wheel support to AbsListView, ScrollView,
HorizontalScrollView and WebView.  Shift+VSCROLL is translated
to HSCROLL as appropriate.

Added logging of new pointer events in PointerLocationView.

Fixed a problem in EventHub when a USB device is removed that
resulted in a long stream of ENODEV errors being logged until INotify
noticed the device was gone.

Note that the new events are not supported by wallpapers at this time
because the wallpaper engine only delivers touch events.

Make all mouse buttons behave identically.  (Effectively we only
support one button.)

Change-Id: I9ab445ffb63c813fcb07db6693987b02475f3756
2011-02-25 17:06:07 -08:00
Michael Jurka
3b723ace40 am 46ab5e13: Merge "add missing call to superclass method" into honeycomb
* commit '46ab5e13f27324d634ff27b7fd75c5d432b915bf':
  add missing call to superclass method
2011-02-01 20:55:15 -08:00
Michael Jurka
b8f939fb57 add missing call to superclass method 2011-02-01 20:50:30 -08:00
Dianne Hackborn
d48ba867d6 am e77f9914: Merge "Whoops, need to put this check back." into honeycomb
* commit 'e77f99144f015d9044909a4c128fa916465b0671':
  Whoops, need to put this check back.
2011-02-01 16:53:09 -08:00
Dianne Hackborn
a48a37f025 Whoops, need to put this check back.
We still don't want third party wallpapers to be able to do this,
since it can't work with all window animations.

Change-Id: I97c8ef78c36bd89bf47a7c4533ed1c244dcff4a6
2011-02-01 16:30:38 -08:00
Dianne Hackborn
2a70a1e349 am bd77ed7f: Merge "Make image wallpaper use a big surface." into honeycomb
* commit 'bd77ed7fff87b79008e3b071115674dff2721994':
  Make image wallpaper use a big surface.
2011-02-01 16:26:12 -08:00
Dianne Hackborn
f185552f63 Make image wallpaper use a big surface.
Change-Id: I119f2bfee5fde08040520bd0da8574194a893ab5
2011-02-01 16:20:20 -08:00
Jeff Brown
391ef42c92 am 3168a137: Merge "Fix surface frame size reporting." into honeycomb
* commit '3168a13723ff0f3f87937457fe33c3518caa4bb9':
  Fix surface frame size reporting.
2011-01-25 14:48:14 -08:00
Jeff Brown
30bc34f191 Fix surface frame size reporting.
The SurfaceHolder provided by the wallpaper service was not reporting
the correct size in getSurfaceFrame().  This broke an optimization in
the ImageWallpaper.  The old code happened to work because calling
lockCanvas on the SurfaceHolder with a null dirty rectangle happened
to have the side-effect of updating the SurfaceHolder's surface frame
size field because it passed mSurfaceFrame as the dirty rect, causing
mSurfaceFrame to be set to the size of the region to be drawn.

However, relying on this side-effect is wrong.  Among other things,
the dirty region could actually be smaller than the surface frame.

This patch fixes WallpaperService, SurfaceView and ViewRoot to ensure
that the surface frame size is always set explicitly and is not modified
by calls to lockCanvas.

Change-Id: I10948f5ec269409ceaf0f7d32b3f6731e9499ebc
2011-01-25 13:10:30 -08:00
Brad Fitzpatrick
b841fa6302 am 54f428a6: am bdb7aee0: Merge "Fix for crash when setting live wallpaper."
* commit '54f428a63f33f4722c09b7688e6ca7960394f81f':
  Fix for crash when setting live wallpaper.
2011-01-13 10:26:19 -08:00
Mattias Petersson
d9463f50c8 Fix for crash when setting live wallpaper.
This fix prevents a crash that sometimes happens when setting a
live wallpaper. It happened when pressing "Set wallpaper" button
in the live wallpaper preview activity, before the preview was
fully loaded.

The crash happened in native code while updating the wallpaper
surface when calling mInputChannel.registerInputChannel(),
because the previous call to
mSession.add(mWindow, mLayout, View.VISIBLE, mContentInsets,
             mInputChannel)
had failed. The fix aborts the surface update when it is not
possible to add the window.

Change-Id: I0e79a851e5c7f7b15eb07043c63d1f4d78f14616
2011-01-12 15:41:55 +01:00
Jeff Brown
9f3bdfe3eb Add method for sending wallpaper commands directly to an engine.
This enables the livewallpaper preview activity to send tap commands to the
wallpaper so that the preview is more interactive.

Also add a command for sending secondary pointer taps for multitouch
enabled wallpapers.

Change-Id: I9fa10cc47d92dfa9f1a1208aba44c66943eee3ec
2010-12-03 11:35:42 -08:00
Jeff Brown
3915bb845b Tell system server whether the app handled input events.
Refactored ViewRoot, NativeActivity and related classes to tell the
dispatcher whether an input event was actually handled by the application.

This will be used to move more of the global default key processing
into the system server instead of the application.

Change-Id: If06b98b6f45c543e5ac5b1eae2b3baf9371fba28
2010-11-08 12:49:43 -08:00
Joe Onorato
f04c8816f9 am dbf9a02b: am ed3c7be8: Merge "Report the new size to wallpapers when the requested size changed." into gingerbread
* commit 'dbf9a02b0abe7cac3c15f7cc36b95d5998927ad8':
  Report the new size to wallpapers when the requested size changed.
2010-10-29 08:20:42 -07:00
Joe Onorato
dcfae5c0fd Report the new size to wallpapers when the requested size changed.
We were telling the app, but we weren't saving the data for ourselves.
This also tells them to re-scroll when there's a new size.

Bug: 3144373
Change-Id: I9d12b714119ff02dd7d7f1cfa997d8a44475b9e9
2010-10-28 18:04:10 -07:00
Jeff Brown
4924aee9cb am 482284ad: am 6b3178a6: Merge "Fix a race condition in wallpaper move throttling." into gingerbread
Merge commit '482284ad0e3226b49c27bf41442c1cb150853226'

* commit '482284ad0e3226b49c27bf41442c1cb150853226':
  Fix a race condition in wallpaper move throttling.
2010-10-21 18:10:24 -07:00
Jeff Brown
840db1f678 Fix a race condition in wallpaper move throttling.
Bug: 3099316
Change-Id: Ia3221975b5be7fae8359d6ab531bbecd0e29aee9
2010-10-21 17:36:54 -07:00
Bjorn Bringert
25108167fd Remove the unused UrlRendererService
Change-Id: I48af718d9753b475bd041147f0d18bee60da84ec
2010-10-12 15:14:27 +01:00
Mathias Agopian
62bf4a0283 Force wallpaper surface to 565.
This is to maintain backward compatibility with badly programmed
GL wallpapers. Wallpapers can call SurfaceHolder.setFormat() to
request a different format.

Change-Id: Ib42b0cf6c7040d1300cad239c3acfd5c4c6cd326
2010-09-08 16:32:27 -07:00
Jeff Brown
c5ed5910c9 Add support for new input sources.
Added several new coordinate values to MotionEvents to capture
touch major/minor area, tool major/minor area and orientation.

Renamed NDK input constants per convention.

Added InputDevice class in Java which will eventually provide
useful information about available input devices.

Added APIs for manufacturing new MotionEvent objects with multiple
pointers and all necessary coordinate data.

Fixed a bug in the input dispatcher where it could get stuck with
a pointer down forever.

Fixed a bug in the WindowManager where the input window list could
end up containing stale removed windows.

Fixed a bug in the WindowManager where the input channel was being
removed only after the final animation transition had taken place
which caused spurious WINDOW DIED log messages to be printed.

Change-Id: Ie55084da319b20aad29b28a0499b8dd98bb5da68
2010-07-15 18:32:33 -07:00
Dianne Hackborn
1d28f9c0aa Fix docs build.
Change-Id: Ibb8e1e4b18ec1e92e28d354cdcce37676056b348
2010-07-13 20:38:06 -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
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