Commit Graph

94 Commits

Author SHA1 Message Date
Dianne Hackborn
5c58de3a52 Add system insets to windows.
This will be used to determine which parts of a window a completely
hidden by system UI elements (status bar, nav bar, system bar) so
that they can be clipped out from rendering.

Change-Id: I2c6c6ac67dbdfeed82d2c089ef806fb483165bd9
2012-04-30 12:11:43 -07:00
Jeff Sharkey
eb4cc492c9 Protect system services with DUMP permission.
Change-Id: I5e53859f8b8e5473e54eca43ebd7de841f1a05ff
2012-04-26 18:17:29 -07:00
Jeff Sharkey
35be756030 Move SystemUI out of system UID.
Add permissions for various things it pokes.  Create new permission
to control launching non-exported activities from recents.  Hidden
API to relax WallpaperService checks.

Change-Id: I547fdcd7c213dd153ae101533ce7c56cd8f86a0d
2012-04-19 11:54:34 -07:00
satok
c7ee1b9369 Get rid of "isSentenceLevelSpellCheckSupported"
Bug: 6320351
Change-Id: I0e931b7248f8c65268b60af599c07432d58d2f1f
2012-04-16 20:02:37 +09:00
Daniel Sandler
7d276c377c New Android Dreams architecture, disabled for now.
Rather than normal Activities (which have a host of problems
when used for this purpose), screen savers are now a
special kind of Service that can add views to its own
special window (TYPE_DREAM, in the SCREENSAVER layer).

Dreams are now launched by the power manager; whenever it is
about to turn the screen off, it asks the window manager if
it wants to run a screen saver instead. (http://b/5677408)

Also, the new config_enableDreams bool allows the entire
feature to be switched on or off in one place. It is
currently switched off (and the APIs are all @hidden).

Change-Id: Idfe9d430568471d15f4b463cb70586a899a331f7
2012-04-09 15:33:26 -04:00
satok
431ea84e1f Add document to SpellCheckerService
Bug: 6136149

Change-Id: I93f0127878372006a240a9a34823f873bcc09927
2012-03-29 18:36:23 +09:00
satok
6183cd64a9 Take sentence-level spell checking APIs public
Bug: 6136149

Change-Id: I772164d9c67e95876c228efcce2356a81a06be4f
2012-03-29 18:16:32 +09:00
satok
d404fe1105 Refactor sentence level spell checking APIs
Support sentence level spell checking APIs: Step 1

Change-Id: I31c0b88e7885f33a0694ab60b8f2dbceeffe42f1
2012-02-22 15:35:46 +09:00
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