171 Commits

Author SHA1 Message Date
Satoshi Kataoka
1af0841137 Merge "Hide current soft input when a background user gains window focus." into jb-mr1.1-dev 2012-11-26 19:39:20 -08:00
John Spurlock
bc7b6fc2a4 Fix IME down caret in keyguard nav bar bug.
The input method manager service now keeps track of whether or not
the ime was shown on the keyguard.  This prevents activities behind
the keyguard from incorrectly showing the down-caret in the keyguard.

Bug:7498792
Change-Id: I0de01ec29cb544e902305b0f9d9fb94a73835e7b
2012-11-20 14:06:56 -05:00
Satoshi Kataoka
8d03305b57 Hide current soft input when a background user gains window focus.
Bug: 7507226
Change-Id: If58f68469e21eaaba8536c4b54b3aa8cf8c08eb5
2012-11-20 11:12:07 +09:00
Satoshi Kataoka
15451bd7af Fix an inconsistent state with IMMS and Settings when the hard keyboard is connected
Bug: 7540140
Change-Id: Iaac951ff457c35751b442e84ac07f1f86be93494
2012-11-16 13:30:56 +09:00
Dianne Hackborn
2ea9bae712 Fix issue #7457380: IME leaves a mark after user switching
The gnarly stuff where we keep track of the old input method
window as if it was still there was sitting around leaving things
in a stuck state.  Now we clear this out at key points in the
window manager (freezing screen, user change), and the input
method manager service is less aggressive about asking the window
manager to do it.

Also fixed a problem that was causing flickers during some
wallpaper transitions -- when we are animating two things on
top of the wallpaper and one of them disappears, we need to
make sure the wallpaper target points to whatever the current
target should be (if any), not left pointing to the old target
that has gone away.

Change-Id: I2fb9600f569a5bd5e3528aaf24cde9340af56cb0
2012-11-02 18:56:01 -07:00
Amith Yamasani
f043de93eb Fix a crash in InputMethodManagerService due to permission failure.
Clear calling identity before sending broadcast to the current user.

Bug: 7403829
Change-Id: If2b27d07d917b892470163e1303883b29a86c0e4
2012-10-24 06:45:12 -07:00
Amith Yamasani
cd75706117 System server should always send broadcasts to a specific or all users
Bug: 7368245

Log a warning if the system process calls unqualified sendBroadcast()
and other calls.

As a result of the logging above, found a few more method calls such as
bindService() that would benefit from being more explicit to avoid
future confusion and reduce the log warnings.

Change-Id: I17f15c8be9adf7becd456d6abbab606f19befdbf
2012-10-22 12:38:53 -07:00
Satoshi Kataoka
c86884cd83 Fix an issue on showInputMethodPickerFromClient
Bug: 7302748
Change-Id: Iff4345d26b3d6e4bfedf893bbd6a864c771df01d
2012-10-09 15:20:29 +09:00
Satoshi Kataoka
3ba439d648 Fix the issue on the input method switch picker
Bug: 7292731
Change-Id: I8cb51dd01e4c467fff511d4ecee79426f9b2ed80
2012-10-05 19:01:06 +09:00
Satoshi Kataoka
3573950e0b Close the current input method when attached view doesn't have a handler
Bug: 7187452
Change-Id: Iba4f7ac89f5806e871aaeb97f366935b83b95a5a
2012-10-03 12:07:23 +09:00
Satoshi Kataoka
135e5fb712 Always accept API calls from processes which have INTERACT_ACROSS_USERS_FULL in InputMethodManagerService
Bug: 6931482
Change-Id: I1620413578b9e8da6564664219f65bdc00d5ecfd
2012-10-01 16:18:05 +09:00
Satoshi Kataoka
d08a9238db Fix ime swtich issue
Bug: 7250097
Change-Id: Ibe85aaf7d60e7c3a27363eece528d19a0c8ddca2
2012-09-28 16:19:59 +09:00
Satoshi Kataoka
5ade83ba12 Treat additional inputmethod subtypes per user
Bug: 6931482
Change-Id: I4f7c7e69a80534da3a48ac508ff7a9e7511f33ce
2012-09-27 19:00:44 +09:00
Satoshi Kataoka
4e1ab15b30 Enable multi-user function for IMF
Bug: 6931482

Change-Id: Ib23849d352db33f0747aa9d5a178f00ac726c13b
2012-09-26 19:22:04 +09:00
Satoshi Kataoka
e62e6d8731 Add subtypeId for keeping enabled "InputMethodSubtype"s even if subtype parameters are changed
Bug: 6752230
Change-Id: I3a2d512e395fe8645edf6ab82108948b927c629a
2012-09-04 15:29:03 +09:00
Svetoslav Ganov
758143ecfe Window position not reported if the window is not moved.
1.If a window is shown but never moved the window window
  is never notified for its current location. Therefore,
  accessibility nodes do not contain correct bounds in
  screen coordinates.

bug:6926295

Change-Id: I7df18b095d33ecafffced75aba9e4f4693b0c393
2012-08-06 23:49:38 -07:00
Dianne Hackborn
39606a007a Make AtomicFile a public API. It's about time!
Change-Id: Ib34e294747405b7ab709cb0bbb2d9a0cc80ce86a
2012-07-31 17:54:52 -07:00
satok
4c0e7152e7 Workaround: Never reset the default IME if the system is not ready
Bug: 6685037
Change-Id: Ifb311f85154beadd4787ec73669bedfdf1f5172d
2012-06-21 02:22:24 +09:00
Daniel Sandler
590d515d91 Show even fewer notifications in Setup.
Restricting to pkg="android" didn't filter out things like
open wifi networks, etc. So now we have a whitelist:
notifications must be sent the "android" pseudo-package,
*and* they must have one of these "kind" tags:

  - android.system.imeswitcher (IME switcher, needed by SUW)
  - android.system.update (OTAs)

Note that OTAs currently use a fullScreenIntent, so they
bypass this logic anyway, but for consistency's sake we now
allow OTA icons in the status bar explicitly.

Bug: 6645469
Change-Id: Ib2e2f22d7a0817a1acaf8137ed4f3c7d3ddf8af5
2012-06-14 16:10:13 -04:00
Dianne Hackborn
a6e41342e2 Fix issue #5680541: onStartInputView called upon focus loss
We should tell the app that it is inactive, before unbinding.
Otherwise when it is told to unbind it will see that it is still
supposed to be active and immediately re-bind.

Also change the calls to set the active state to go through the
message dispatch path, to ensure ordering is correct.

Change-Id: I246241eac8f7521f42c4c1eee7f46097337e7303
2012-05-22 16:30:34 -07:00
Dianne Hackborn
ac92087a9a Fix issue #6499411: Characters not displayed (but suggestion bar is working)
The problem was that when dismissing the lock screen, the window manager
would briefly turn off force hiding when it started animating the transition
and then turn it back on until the transition was done.

This would cause it to briefly switch focus to the app behind and then
take focus off it.  The app would find out it got focus, and re-start
input on itself, asking the input method service to do so.  At this
point the input method service would ask the window manager if the
caller really had focus, and it may or may not be told no depending
on the timing.  If it is told no, then it doesn't allow the focus
switch to happen at that point, ignoring the new input connection,
and ultimately when focus does really switch the IME is left talking
with an old dead input connection.

I added some code to the input connection to make sure when we are
no longer using one that we mark it inactive and can't use it.  This
bug was especially difficult to track down because it would only
visibly break when a GC happened during this time, causing the weak
reference on the input connection to become null.  With this change
it will now always break (though in the scenario here only if you
hit the race condition correctly).

Change-Id: I81a6164dc140c548da1a9736e42cd253e8238a80
2012-05-22 12:15:15 -07:00
satok
d81e950265 Fix the issue on the inconsistent condition of InputMethodSubtype
Bug: 6510104
Change-Id: I67790e5f59d0d05340b74eca1029c60f381061b8
2012-05-21 18:30:14 +09:00
satok
0a1bcf4e0d Consolidate the initialization of InputMethodManagerService not to use resource values until system ready
Bug: 6477193
InputMethodManagerService have used the resource value of "isDefault" in the constructor. We should wait to use that value until system ready.
Change-Id: I682fc109c303d8c7fd33d494c59e8e28d6dc6fa5
2012-05-18 16:00:40 +09:00
satok
e0a99414bd Fix the issue that the insets linger after closing the voice input
Bug: 6456954
Change-Id: Idf7700271cf882dfbf35c9d16f0f173a791221bc
2012-05-10 02:57:11 +09:00
satok
93d744deb1 Fix sort order of the input method switcher in IMMS
Bug: 6333988
Change-Id: Ief392c9157f2a37600e517ec9caf586ffb9d5f0d
2012-05-09 17:14:08 +09:00
satok
fdf419e81d Do not return stale subtypes
Bug: 6294329
Change-Id: I3f0713f94c291298dfd447d1b65bd7c6d2858492
2012-05-08 17:05:46 +09:00
satok
5b927c431f Reset the default system ime to the proper one when the system locale is changed
The framework automatically enables only valid system default IMEs and IMEs that have at least one English subtype at the initial boot and system locale changes.

Settings: I9af4065e4b9f933

Bug: 6422666
Bug: 6422390
Change-Id: I0b86ddba692144521f30e0b9086ddd67bfb9a793
2012-05-03 12:38:34 +09:00
Dianne Hackborn
d0d7503fd3 Move handling of package changes to a background thread.
Helps get rid of some jank when installing applications.

Change-Id: I97d0022f82d67796e334d37086e5911dd6ca6b62
2012-04-19 23:12:09 -07:00
Jeff Brown
6ec6f79e1a Support loading keyboard layout overlays from resources.
Added the concept of a keyboard layout overlay, which is
a key character map file that has "type OVERLAY".

Added support for loading keyboard layout overlays from
resources dynamically.  The layouts are reloaded whenever they
are changed in the Settings application or an application
is installed.  This is somewhat more aggressive than necessary
so we might want to optimize it later.

Before system-ready, the input system uses just the generic
keyboard layouts that are included on the device system image.
After system-ready, it considers the user's selected keyboard
layout overlay and attempts to load it as necessary.  We need to
wait until system-ready before doing this because we need to
be in a state where it is safe to start applications or access
their resources.

Bug: 6110399
Change-Id: Iae0886d3356649b0d2440aa00910a888cedd8323
2012-04-17 17:56:32 -07:00
satok
01038492ff Show physical keyboard control button on the input method switch dialog
Bug: 5240095
Change-Id: Ica768083f95c33dc1e494a28ba7d8b6eb989b0ef
2012-04-11 15:49:35 +09:00
satok
2c93efc9eb Hide ongoing notification icon when the screen is locked.
Bug: 5858903
Change-Id: Ibee9123f4a520e77f4baf8bdd3d75364ab451100
2012-04-02 19:54:28 +09:00
Dianne Hackborn
0aec3ea6de am 911b505f: am dc5fa185: am 133dc2d7: Merge "Fix issue #6048808: sometimes auto-correct is inactive" into ics-mr1
* commit '911b505f11c719906985f169a4f45930bdec8695':
  Fix issue #6048808: sometimes auto-correct is inactive
2012-02-24 15:44:55 -08:00
Dianne Hackborn
7663d80f6b Fix issue #6048808: sometimes auto-correct is inactive
My previous change to speed up the time the IME is dismissed was
fundamentally flawed.  That change basically switched the order
the application called the input method manager service from doing
startInput() and then windowGainedFocus(), to first windowGainedFocus()
and then startInput().

The problem is that the service relies on startInput() being done
first, since this is the mechanism to set up the new input focus,
and windowGainedFocus() is just updating the IME visibility state
after that is done.  However, by doing the startInput() first, that
means in the case where we are going to hide the IME we must first
wait for the IME to re-initialize editing on whatever input has
focus in the new window.

To address this, the change here tries to find a half-way point
between the two.  We now do startInput() after windowGainedFocus()
only when this will result in the window being hidden.

It is not as easy as that, though, because these are calls on to
the system service from the application.  So being able to do that
meant a fair amount of re-arranging of this part of the protocol
with the service.  Now windowGainedFocus() is called with all of
the information also needed for startInput(), and takes care of
performing both operations.  The client-side code is correspondingly
rearranged so that the guts of it where startInput() is called can
instead call the windowGainedFocus() entry if appropriate.

So...  in theory this is safer than the previous change, since it
should not be impacting the behavior as much.  In practice, however,
we are touching and re-arranging a lot more code, and "should" is
not a promise.

Change-Id: Icb58bef75ef4bf9979f3e2ba88cea20db2e2c3fb
2012-02-24 13:18:23 -08:00
satok
688bd47fcc Add an api to switch to the next IME and subtype
Bug: 5975302

Change-Id: I48aa4220159c65f456d61a324efcdf0a1ceec91c
2012-02-10 16:44:12 +09:00
satok
c36905673a Enable subtypes when the implicitly enabled subtype is not ascii capable keyboard
Bug: 5806103

Change-Id: I1a83b227498073c47567f73566043c273809adc9
2012-01-11 17:03:03 +09:00
satok
3afd6c0d4d Hide/show ime switch icon properly
Bug: 5481999
Change-Id: I4b3dde7285a9ac49da8d5d1133fddd0807b03f4d
2011-11-18 09:15:18 +09:00
Dianne Hackborn
2c84cfc001 Various performance and other work.
- IME service now switches between visible and perceptible depending on
  whether it is being showm, allowing us to more aggressively free its
  memory when not shown.

- The activity display time is no longer delayed by the activity
  transition animation.

- New -R (repeat) option for launching activities with the am command.

- Improved some documentation on Loader to be clear about some methods
  that apps should not normally call.

- FrameworkPerf test now allows you to select individual tests to run.

Change-Id: Id1f73de66dc93d63212183958a72119ad174318b
2011-10-31 16:52:34 -07:00
satok
15452a487a Hide ime switcher when the screen is turned off.
Bug: 5481999
Change-Id: Ifc870f1350db2a67405c05f6de447a69dc050408
2011-10-28 19:42:58 +09:00
Jean Chalard
e0d32a60da Fix a warning from the binder, step 3.
This patch fixes the following warning:
W/Binder: The following Binder class should be static or
  leaks might occur: com.android.server
  .InputMethodManagerService.MethodCallback

...in hope of removing a possible memory leaks.

Bugs: 5481376, 5461066
Change-Id: I1764090a7059d9bf9e5d90683d7ac190c83415de
2011-10-20 20:45:21 +09:00
satok
dc9ddaee9a Fix the behavior for choosing new default IME not to choose an auxiliary IME as the default IME
Bug: 5420127

Change-Id: I3649de36806fc24e1c85c2b15db5e37acad1f120
2011-10-10 15:49:22 +09:00
satok
4a553e3a70 Prioritize the order of subtypes in method.xml for implicitly enabled subtypes
Bug: 5401115
Change-Id: I6d9229cd266e27b68a6b9a2892aabfba4fe4de00
2011-10-03 17:49:57 +09:00
satok
59b424c3b6 Fix a logic to recconect IME in InputMethodManagerService
Bug: 5380216

Change-Id: I7af67265eebbd28f002210d7ac90dd18f1858f66
2011-09-30 19:26:01 +09:00
satok
9747f8977c Fix the visiblity of the ime switcher icon.
Bug: 5288866
Change-Id: I99b4aee36c337b2fab1116e9245ddecd826c840c
2011-09-12 15:56:40 +09:00
satok
38aac04743 Do not show the label for auto subtypes
Change-Id: Ie62d0b83f2fcb2c93d3935bcaa5121d2adc56b7d
2011-09-06 14:41:33 +09:00
Ken Wakasa
05dbb65dfa Two line item for the IME switcher dialog.
bug: 5098770
Change-Id: I2b955973e7f223d8c98d8dac6aaa657a7a31b555
2011-09-06 00:07:03 +09:00
satok
bffb83e96c Merge "Add an option for the implicitly selected subtype" 2011-09-02 04:44:41 -07:00
satok
a86f5e448c Add an option for the implicitly selected subtype
Bug: 5057886
Change-Id: Iddde4724891501b4f18cade6a3d2c64b6124e58a
2011-09-02 20:27:38 +09:00
satok
ee5e77cafe Make setAdditionalInputMethodSubtypes async
Bug: 5120261
Change-Id: Ic7869cfaa5361531e08d58d7dfa5ba0feab0613e
2011-09-02 19:22:50 +09:00
satok
c593380d1b Fix crash in setAdditionalInputMethodSubtypes
Bug: 5142455
Change-Id: I5eca4c1a3d9a964db04c819fc671670ef1b81817
2011-08-31 21:26:04 +09:00
satok
ed2b24ecc7 Fix set additional subtypes.
Bug: 5102787
Change-Id: Ic38db8c33b6496a083e8158cd79fb54c21187b04
2011-08-31 18:03:21 +09:00