History log of /frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
d8636ea7ca78df83d6b04088eab7853f15f3e999 03-Sep-2014 Yohei Yukawa <yukawa@google.com> API Review: InputConnection

This CL does nothing but rename some L API candidates
in InputConnection class, as per requested.

- requestUpdateCursorAnchorInfo()
-> requestCursorUpdates()
- REQUEST_UPDATE_CURSOR_ANCHOR_INFO_IMMEDIATE
-> CURSOR_UPDATE_IMMEDIATE
- REQUEST_UPDATE_CURSOR_ANCHOR_INFO_MONITOR
-> CURSOR_UPDATE_MONITOR

BUG: 17320996
Change-Id: I772c48ff18918e48a81e807b48ff907614485c09
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
a277db28e990d1f6f74ace0c32fe92401660a840 22-Aug-2014 Yohei Yukawa <yukawa@google.com> Remove CursorAnchorInfoRequest and related stuff

This CL removes CursorAnchorInfoRequest and related stuff
in favor of InputConnection.requestUpdateCursorAnchorInfo,
which is more easy to understand. This CL also deprecates
InputMethodManager#updateCursor and related stuff.

Rationale:
1. The spec of #updateCursor says that it provides the cursor
position in local coordinates, while the input method
requires it in the screen coordinates.
2. #updateCursor has never been enabled in AOSP, because
InputMethodManager#isWatchingCursor always returned false.
3. There has been no way to let
InputMethodManager#isWatchingCursor return true.
4. In L, InputMethodManager#updateCursorAnchorInfo is
introduced to address all the issues above.

Given that we no longer need to support #updateCursor,
CursorAnchorInfoRequest is overkill when we need to convey
just a couple of parameters.

BUG: 17185263
BUG: 17182367

Change-Id: I4a577bfd02b37b9e56c80b8b41bb25afa95dd8ef
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
7360591bbfc91594f96b3169509d1ea5f2ab5c44 13-Aug-2014 Yohei Yukawa <yukawa@google.com> Suppress warnings of redundant calls of #updateCursorAnchorInfo

Warnings of redundant calls of #updateCursorAnchorInfo should be
suppressed at least until such redundant calls from
android.widget.Editor are addressed.

BUG: 16996008
Change-Id: I62b6acdab06178520473bd53e56e2cfb62fb17be
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
0023d0e0c4f5339b299d1eacbd4e7181c2fd271f 10-Jul-2014 Yohei Yukawa <yukawa@google.com> Polish new IME API for L part 2: CursorAnchorInfo

This CL addresses feedbacks from internal customers for new
input method APIs that are mainly used for physical keyboard
support in L.

For performance reasons, #onUpdateCursorAnchorInfo is not called
back by default and each input method has to enable this
event notification explicitly whenever fine-grained character
locations are needed.

In L-preview, InputMethodSession#setCursorAnchorMonitorMode was
introduced for this purpose. However, we got several feedbacks
to be addressed.
- The effect of #setCursorAnchorMonitorMode is not preserved
during focus change. IMEs need to call
#setCursorAnchorMonitorMode every time when #onStartInput is
called. This is tricky and hard to understand.
- As #onUpdateCursorAnchorInfo is a new API, not all
applications/text editors have supported it. Therefore IMEs
can't always rely on it. However, there is no way to query
if the attached target is supporting this new API or not.
It would helpful for IME authors if we can provide a
reliable way to query if the attached input target is
supporting the new API or not.

In order to address these issues, the triggering method has
moved from InputMethodSession to InputConnection in this CL,
as an analogy of existing InputConnection#getExtractedText API,
which has provided similar functionality including optional
reactive event callbacks from the application to the IME.

BUG: 15812658
BUG: 16118603
Change-Id: I3c6b69bd9d79b199afe68d838f25effa6048e5cc
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
3d1e8129ebd69db49d80e5d598f608c59b884cdf 06-Jun-2014 Yohei Yukawa <yukawa@google.com> Introduce a sequence number to avoid redundant IPCs

This CL introduces a sequence number to avoid redundant IPCs
between IMM and IMMS. The basic concept is that:
1. IMMS maintains a sequence number for #notifyUserAction.
2. IMMS increases the sequence number whenever the current
IME/subtype is changed.
3. IMMS notifies the new sequence number to IMM.
4. IMM maintains the last sent sequence number and the next
sequence number. IMM should call #notifyUserAction only
once per particular sequence number.
5. IMMS ignores #notifyUserAction if the specified sequence
number is not the expected one.

BUG: 7043015
Change-Id: I19ad8542659bc092b92ee13eb9f1d68ddd4b815a
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c1026e17c6f178dfcf9ec5c671381ccc10a87227 06-Jun-2014 Yohei Yukawa <yukawa@google.com> Naming style fix for an internal constant

This CL does nothing except for adding MSG_ prefix to
an internal constant.

Change-Id: Ic41a8f1e31f5a6a84e6ff8fe9214e9cbc92e04d9
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
0297051162193ef2b7d906409868e404f77e4c31 05-Jun-2014 Yohei Yukawa <yukawa@google.com> Trivial method renaming for notifyTextCommitted

This CL does not change existing behavior but only renames
notifyTextCommitted with notifyUserAction so that we can use
not only text commit but also other actions such as just typing
a character will be used as a trigger to update the IME
rotation order for better IME switching experience.

BUG: 7043015
Change-Id: I7f3e13a7226ef0dceee82b67e8a0d8536f7e9807
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c941fedf506aa48445999c4b20a8ea8ecdcc6991 14-May-2014 Yohei Yukawa <yukawa@google.com> Use java.util.Objects

This is a follow up CL for I451544fba746a76618.

This CL replaces libcore.util.Objects with java.util.Objects as
java.util.Objects is getting more and more widely used in
Android. There should be no behavioural change anyway.

Change-Id: Id9568ee98aa3845588017c3711e7d03a3481beea
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
056ffe6d066592f19cdc6b19d246b00509dce621 13-May-2014 Yohei Yukawa <yukawa@google.com> Do not send duplicate CursorAnchorInfo to IME

This CL adds an optimization which checks if the same
CursorAnchorInfo is sent to the input method to
prevent these duplicate messages from being sent
unnecessarily.

BUG: 14579622
Change-Id: I451544fba746a766186123b9ac276221e968c8c3
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c8d31963d6af81465de9801e6a88ebcbf862da35 12-May-2014 Yohei Yukawa <yukawa@google.com> Remove an unused member.

IMM#mCursorAnchorInfoBuilder was added in I61dec2f8fa671ba891d
but not used actually.

Change-Id: If320e2814cf977305f6a0bea890d562590620348
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c2ddd6023688db5ecf6c586e05f55e262b4a802e 06-May-2014 Yohei Yukawa <yukawa@google.com> Introduce new API for floating window support

This CL introduces a new API IMM#updateCursorAnchorInfo for
floating window support.

BUG: 14579622
Change-Id: I61dec2f8fa671ba891da1d4af08975750e3acb04
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
4de04795f988cc7447feb9ad00e179273f75a6a3 16-Apr-2014 Yohei Yukawa <yukawa@google.com> Return the cursor position in screen coordinates

From its beginning, InputMethodService#onUpdateCursor has
provided the cursor position in local coordinates in the attached
view. However, the local coordinates is not useful for IMEs
to render a floating UI near the cursor because the IME is not
able to know the origin of the attached view.

With this CL, CURSOR_ANCHOR_MONITOR_MODE_CURSOR_RECT also means
that the IME will receive the cursor position in screen
coordinates. Because this is a new constant in the next release,
conditionally changing the coordinates never causes
compatibility issues as long as its behavior is well documented.

BUG: 14323360
Change-Id: I3acf2317ae1d763d11dae5ef73c2a1348b377c71
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
b7b7907fb5e4b2252b3c594a6bc4402217fe662a 25-Mar-2014 Yohei Yukawa <yukawa@google.com> Allow IMEs to start/stop receiving onUpdateCursor callback

This CL introduces an API which allows IMEs to start/stop
receiving onUpdateCursor callback upon their request.

BUG: 13388665
Change-Id: I987326872def181dda5d9d701b762f088e0d9c39
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
6b6b3fdbf5547417fde3ce56d9eb883963a54b58 24-Mar-2014 Dianne Hackborn <hackbod@google.com> Fix issue #13564072: Back button no longer dismisses IME after voice usage

Calling identity wasn't being cleared in an incoming code path.

Change-Id: Ib32060a91bf81531de049fafde69835b5382a25f
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
6fd68e0930a0260437a50b3a0e3edbac073dfcec 20-Feb-2014 Jean Chalard <jchalard@google.com> Improve doc for EditorInfo#initialSel{Start,End}

Bug: 12772035
Change-Id: I2fe444685b9d02c15d002d36b1cb1fcfce42cb37
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
d7443c83ceae0bdd20d68bf84648cf3b40115d85 15-Oct-2013 Satoshi Kataoka <satok@google.com> Notify commitText event to InputMethodManagerService

for the intelligent subtype switching

Bug: 7043015
Change-Id: I11ed9a767588f8080753cd9bce011dac7db579ad
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
658c7b896a751b971db1292d86655dbb97f00067 10-Oct-2013 Satoshi Kataoka <satok@google.com> Introduce an API to get the recommended height of the InputMethodWindow

Bug: 11035379
Bug: 5137498

Change-Id: I0e920ee79c526c3aea6872b063cf294e2ab081c8
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c743cb94770701ec20a01b57b09232f1aae5bcbb 12-Sep-2013 Jean Chalard <jchalard@google.com> Don't send the same values to onUpdateSelection repeatedly

If the IME is repeatedly changing the text in its
onUpdateSelection handler, this will crash it with a
stack overflow exception. It's better than the old behavior,
which would result in a busyloop likely to make the
device completely unresponsive.

Bug: 10301239
Change-Id: I170cfb8ef20fc056d4725931890a987aefcaea8b
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
15ab6b016c0cabda502c97d248b45f5c617f0428 26-Aug-2013 satok <satok@google.com> Improve the API document for supportsSwitchingToNextInputMethod

Bug: 10461455
Change-Id: I0d3c5d3cd40f7ad057970fddd141bfd838e246f4
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
2b10b52f6c08eb79f48f7388e2f1c69f58a9c96d 21-Aug-2013 Satoshi Kataoka <satok@google.com> Add new API shouldOfferSwitchingToNextInputMethod

Bug: 8364845
Change-Id: I6767f5640a07aa515a930645b0cf0b36fbe94831
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
b3c21ac7c661022534135bf688a75ec35fe3a8f2 07-Aug-2013 Satoshi Kataoka <satok@google.com> Reduce the transaction fee of getEnabledInputMethodSubtypeList

Bug: 8467480
Change-Id: If18cce8fbe567df51f29adcdcedff3f743460b8b
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c3a1914bd777575cee1917d99d14f05bfd128717 07-Aug-2013 Ken Wakasa <kwakasa@google.com> Revert "Reduce the transaction fee of getEnabledInputMethodSubtypeList"

This reverts commit e9a6f9713ca48aab9a6c87e0645cb0a0af946a11.

Change-Id: I611d31086d4f02aae5c7021ac92975bd92a59f34
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
e9a6f9713ca48aab9a6c87e0645cb0a0af946a11 07-Aug-2013 Satoshi Kataoka <satok@google.com> Reduce the transaction fee of getEnabledInputMethodSubtypeList

Bug: 8467480
Change-Id: Ic1fddfe433e097041fcb09d1fd341d77d7d8b13b
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
f9e989d5f09e72f5c9a59d713521f37d3fdd93dd 05-Apr-2013 Jeff Brown <jeffbrown@google.com> Queues, queues, queues and input.

Redesigned how ViewRootImpl delivers input events to views,
the IME and to native activities to fix several issues.

The prior change to make IME input event delegation use
InputChannels failed to take into account that InputMethodManager
is a singleton attached to the main looper whereas UI may be
attached to any looper. Consequently interactions with the
InputChannel might occur on the wrong thread. Fixed this
problem by checking the current thread and posting input
events or callbacks to the correct looper when necessary.

NativeActivity has also been broken for a while because the
default event handling logic for joysticks and touch navigation
was unable to dispatch events back into the native activity.
In particular, this meant that DPad synthesis from touch navigation
would not work in any native activity. The plan is to fix
this problem by passing all events through ViewRootImpl as usual
then forwarding them to native activity as needed. This should
greatly simplify IME pre-dispatch and system key handling
and make everything more robust overall.

Fixed issues related to when input events are synthesized.
In particular, added a more robust mechanism to ensure that
synthetic events are canceled appropriately when we discover
that events are no longer being resynthesized (because the
application or IME is handling or dropping them).

The new design is structured as a pipeline with a chain of
responsibility consisting of InputStage objects. Each InputStage
is responsible for some part of handling each input event
such as dispatching to the view hierarchy or to the IME.
As a stage processes an input event, it has the option of
finishing the event, forwarding the event to the next stage
or handling the event asynchronously. Some queueing logic
takes care to ensure that events are forwarded downstream in
the correct order even if they are handled out of order
by a given stage.

Cleaned up the InputMethodManager singleton initialization logic
to make it clearer that it must be attached to the main looper.
We don't actually need to pass this looper around.

Deleted the LatencyTimer class since no one uses it and we have
better ways of measuring latency these days using systrace.

Added a hidden helper to Looper to determine whether the current
thread is the indicated Looper thread.

Note: NativeActivity's IME dispatch is broken by this patch.
This will be fixed later in another patch.

Bug: 8473020
Change-Id: Iac2a1277545195a7a0137bbbdf04514c29165c60
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
4d656885ed9afec7d758c1862df6f040f5fe16a9 03-Apr-2013 Jeff Brown <jeffbrown@google.com> Clear mCurSender when mCurChannel is modified.

This fixed an issue where an InputEventSender might outlive
its usefulness and continue to be used well after it should
have been disposed or recreated.

Also improves the queue management somewhat.

Bug: 8493879
Change-Id: I7e0b6a3c43cbe72f8762991f5d36560feebd214b
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
ef17e8710e1d55d1c34dd46a48c4d0eb36b15117 01-Apr-2013 Michael Wright <michaelwr@google.com> Flush pending input events immediately upon channel dispose

Change-Id: I949326423f733376aa8d3121bfed24fd76ca0784
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c28867a1d67121ce5963de135e3ae2b1dbd9a33d 26-Mar-2013 Jeff Brown <jeffbrown@google.com> Use input transport for communications between app and IME.

The input method manager service now supplies an input channel for
communication while creating an IME session on behalf of the
application.

This change significanly reduces the overhead of IME event dispatch
by using a standard input channel to send input events rather than
using binder. This results in fewer thread context switches
and fewer object allocations.

What's more, the IME may perform additional batching of the motion
events that it receives which may help it catch up if it is
getting behind while processing them.

Bug: 7984576
Bug: 8473020
Change-Id: Ibe26311edd0060cdcae80194f1753482e635786f
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c8a7e54fefbb70341427fe5b384447f30e1816f2 21-Mar-2013 Michael Wright <michaelwr@google.com> Add pipelining optimization to IME dispatching

Rather than wait for the IME to return before sending it the next input event,
send all available input events as soon as we receive them.

Bug: 7984576
Change-Id: Ie0b1086efc4f9e1ececac22afd997829304bf180
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
52a53526265c801b70eaf6dab1acf5c3f628f8a6 14-Mar-2013 Michael Wright <michaelwr@google.com> Separate sessionCreated and finishedEvents callbacks

Bug: 8276952
Change-Id: If7051086c060fcce5d1e958ebbddec0784c851da
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
29c0ed2c130521ce1b648dd517a0d25457004de3 14-Jan-2013 Jeff Brown <jeffbrown@google.com> Optimize focused input event dispatch in view root.

The efficiency of key, trackball and generic motion event
dispatch is greatly influenced by the IME dispatch cycle.
This change simplifies the dispatch of focused input events
and avoids causing event processing to be requeued on the
handler and delayed unnecessarily.

Bug: 7984576
Change-Id: Id82624a3f32c05efe6ee5c322bd55bf2ab21525d
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
3573950e0b30178dc963de3fa00aba2ebcfd552d 02-Oct-2012 Satoshi Kataoka <satok@google.com> Close the current input method when attached view doesn't have a handler

Bug: 7187452
Change-Id: Iba4f7ac89f5806e871aaeb97f366935b83b95a5a
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
b38070caa5143ab9fd1883e0c7c879533a480bc7 24-Aug-2012 Victoria Lease <violets@google.com> IME support for trackball and generic motion events

Trackball and generic motion events now pass through the IME in case
it would like to handle them before passing them on to the view
hierarchy.

While I was at it, I also...
...fixed the documentation on InputMethodService.onKeyUp()
...added documentation to InputMethodService.onTrackballEvent()
...added trackball and generic motion events to the "input" command
...fixed input consistency verification involving ACTION_OUTSIDE

Bug: 7050005
Change-Id: I40ab68df4a9542af6df25de6ec2ec500e4c02902
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
b570c64ad18735b47df053dd79bfb79a74106236 24-Aug-2012 Victoria Lease <violets@google.com> avert 2500ms wait in InputMethodManager

When dispatching input events to the main thread, the event is
handled directly rather than queued. If we have a timeout waiting for
the event to happen, it has to be registered before we call the
dispatcher, otherwise we'll wait for the timeout even though the event
has already been handled.

Bug: 6734044
Change-Id: I6826163dbc6133b385cf1076bb077fb4e82870a1
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
758143ecfedbe08cc6c4fed0ad8ad7a854194ca4 07-Aug-2012 Svetoslav Ganov <svetoslavganov@google.com> 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
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
4e5184f929d2498714bc7734fe10b9b8810cb071 13-Jul-2012 Satoshi Kataoka <satok@google.com> Fix a crash in InputMethodManager when switching the IME in the system process

Bug: 6789252
Change-Id: I66f51da1299532793ef8fa700f35b0811670f235
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
2499bbecc26ef14a57339b7b8540fce6df280cb1 13-Jul-2012 Jeff Brown <jeffbrown@google.com> Fix bug in IME handling of pending key events.

Bug: 6812529
Change-Id: I7195a4346d44d65a79969a1bb5daa3bb8a018600
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
04ddf3c0508f3d50e6ab82cecc0adc92f52b7803 14-Jun-2012 Jeff Brown <jeffbrown@google.com> Allow applications to recover from IME related ANRs.

Timeout after 2.5 seconds.

Because communication with an IME occurs asynchronously
using oneway binder calls, it's possible for an input event
that was delegated to the IME to be dropped on the floor.
When this happens, the app (not the IME!) will get blamed
for the problem and will ANR forever.

Even if an event is not dropped on the floor, we should
eventually time out event dispatch to the IME if it's
being too slow.

This patch implements a timeout on all events delegated
to the IME. When the timeout expires, the event is marked
as having not been handled by the IME and the application
gets a crack at it. We also write a message to the log when
this occurs.

Ensure that we do not invoke the event finished callback
while holding the InputMethodManager's lock to avoid
potential deadlocks.

Fixed a minor bug where the InputMethodManager would not
remember the id of the current input method. This caused
the log messages and dumpsys state to print "null" as the
current input method id.

Bug: 6662465
Change-Id: Ibb3ddeb087ee6998996b0b845134e16a18aa3057
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
ac92087a9a1c464d4b0a58c82dae01cbaa088e89 22-May-2012 Dianne Hackborn <hackbod@google.com> 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
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
4478de3c02c1fb2f4f888e696ee1b13721e936d9 28-Apr-2012 Jeff Sharkey <jsharkey@android.com> Clear IMM references when window dismissed.

Match behavior of removeViewLocked(), where InputMethodManager clears
any strong references to Views, and also clear mCurRootView. Without
this, IMM can leak a DecorView instance after the user has left the
application.

Bug: 6413553
Change-Id: Iad09cf5dbb7f6f156fd39ed243431432e00f8945
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
05a6cbe2863614a1761adc033c905458b27be47e 05-Apr-2012 satok <satok@google.com> Fix a bug with IME blinking just after leaving the lock screen

Bug: 6286786
Change-Id: I9ee42482f7abffaefec31f0c4a661bef7c230137
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
31e4e149941e34cd135dfa0b6d918cc0b3dabbbc 22-Mar-2012 satok <satok@google.com> Re-start input when the IME is deactivated but window is focused

Bug: 6188159
Change-Id: I9189e6d2ac90aa8c621fdb44989728101e00329d
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
384f8bad60037855d2a43d7c661ca1b75ccd08ba 10-Mar-2012 Ken Wakasa <kwakasa@google.com> Add missing bullet points in javadoc of InputMethodManager.java

Change-Id: I2e9c04569b52705972d5a67b17d48405315dd3d3
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
1b3d01de3837b7710dfccc06af37ffaec2cf8ecf 29-Feb-2012 Gilles Debunne <debunne@google.com> Merge "InputConnection is warned when finished"
9d69ecbf61a4a142c3f4cbb9d5659faa6f85e832 25-Feb-2012 Gilles Debunne <debunne@google.com> InputConnection is warned when finished

As said in https://android-git.corp.google.com/g/#/c/155992
finishComposingText is indeed too broad of a method.

Introducing a new dedicated method to warn the InputConnection.

Should solve the problems with a negative counter value.

Change-Id: I5525d776916f0c42d5e6d4a4282aed590d7f0e9a
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
0aec3ea6defdee1ee4a9c0d6c4a3c13df3e7b812 25-Feb-2012 Dianne Hackborn <hackbod@google.com> 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
7663d80f6b6fd6ca7a736c3802013a09c0abdeb9 24-Feb-2012 Dianne Hackborn <hackbod@google.com> 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
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
50eb3b9bf9bf0b014ad19066951b6c1dffd4e3f3 17-Feb-2012 Jeff Brown <jeffbrown@google.com> Merge "Encapsulate the ViewRootImpl's handler."
a3b5f6c29b44d6409e44317c6469a119ba547608 16-Feb-2012 Dianne Hackborn <hackbod@google.com> am 804aa297: am 01810bbb: am 06a591cd: Fix last change -- don\'t call startInputInner() with lock held.

* commit '804aa297950949985882e4841303cd6e12fae06e':
Fix last change -- don't call startInputInner() with lock held.
06a591cdd6d90600db006906d5d1524d156d6529 16-Feb-2012 Dianne Hackborn <hackbod@google.com> Fix last change -- don't call startInputInner() with lock held.

Change-Id: Ie7a145c5a07f08ae8a3f5954a1c389bfbd946b69
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
9d7b99976f1571cf398808038abc1d69fb897967 16-Feb-2012 Justin Ho <justinho@google.com> am 09170888: am cc1bd4bb: am c470b2dd: Merge "Part of fixing issue #6006757: Keyboard dismissal lags" into ics-mr1

* commit '09170888cbc501cd9819b1caccc99592bc6dd73f':
Part of fixing issue #6006757: Keyboard dismissal lags
a175a5b7ea3682cb58cca7f9726d0b8171cd549d 16-Feb-2012 Jeff Brown <jeffbrown@google.com> Encapsulate the ViewRootImpl's handler.

This change makes it much easier to make sense of the messages that
get posted to the ViewRootImpl's handler by encapsulating their point
of dispatch within the ViewRootImpl itself.

As part of this change, the View.AttachInfo now carries a reference
to the ViewRootImpl itself, which simplifies some code that used
to try to find the ViewRootImpl by getting the root view's parent.

In principle, it might have been nice to hide the ViewRootImpl from
the View hierarchy but in practice the two were coupled in many ways.

Change-Id: I51ebccdf5f8c8c505cd6f17cdf594174d041dc54
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
a82ba54b0bbc3ff41f29db3998806cb45b261d58 16-Feb-2012 Dianne Hackborn <hackbod@google.com> Part of fixing issue #6006757: Keyboard dismissal lags

This adjust various paths through InputMethodManager so that the flow
in switching focus from one application to another is cleaner, resulting
in less work being done, resulting in it being able to happen quicker.

Some of the changes here avoid doing stuff when not needed, such as when
we are told to unbind but are not currently the active input. A big part
is also a change to the flow when a window receives input. Previously
this would first do a checkFocus() which would tell the input method to
switch focus to whatever view has focus in the window, followed by the
windowGainedFocus() call telling it the window had gained focus. This
would result in extra work because the input method service would first
handle the focus switch, seeing the IME is currently displayed, so the IME
would remain up and reset its focus to the new view. The app would
immediately then tell it about the window, causing the service to find out
the IME should be hidden and telling the IME, but the IME couldn't hide
itself until it had first take care of switching its input.

There is the definite potential of this breaking IME showing/hiding in
cases depending on the order things may be relying on them to happen. I
haven't seen any problems with a brief trip through the UI.

Change-Id: I8494cbd6e19e2ab6db03f2463d9906680dda058b
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
688bd47fccf1a1373e6287bc49b5b33fad12b7f3 09-Feb-2012 satok <satok@google.com> Add an api to switch to the next IME and subtype

Bug: 5975302

Change-Id: I48aa4220159c65f456d61a324efcdf0a1ceec91c
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c478c171e92b2f255e9699d9c9306b001368ac20 20-Dec-2011 Gilles Debunne <debunne@google.com> Unbalanced batch edit begin and end leave TextView unresponsive

This is a fix for http://code.google.com/p/android/issues/detail?id=17508

Adding some logs and a forced GC, I'm now reliably able to reproduce it. Here is the scenario.

1. The IME handles an event. It retrieves the current InputConnection (IC) using
ic = getCurrentInputConnection() and calls ic.beginBatchEdit();
2. The call is propagated to the UI thread and TextView's mBatchEditNesting
is correctly increased through beginBatchEdit()
3. A listener calls setText(), which imm.restartInput(this);
4. As a result, the InputMethodManager creates a new ControlledInputConnectionWrapper
with a new InputConnection from the TextView
5. A GC happens at that point. The previous InputConnection is no longeri
referenced by the InputMethodManager's mServedInputConnection.
The weak reference in the previous ControlledInputConnectionWrapper is nulled.
6. The IME thread finishes its process and calls ic.endBatchEdit(); on its version
of the original InputConnection.
7. The message is passed through the InputConnect, but when the weak reference in the
original IInputConnectionWrapper is dereferenced, we get a null InputConnection in
executeMessage().
8. As a result, the TextView's endBatchEdit() method is not called, leaving this TextView
with a non zero mBatchEditNesting.
9. From now on, all edit actions on this TextView will be considered part of a nested edition
and no invalidation is performed, which is the visible manifestation of this bug.

The core problem is that the begin/end batch edit contract is broken when:
1. These are initiated by the IME thread (as opposed to the UI thread)
2. The input connection is reset between these calls
3. A GC happens in the mean time and the WeakReference is lost (otherwise
calling endBatchEdit on a no longer active InputConnection is fine

Solution to keep TextView's mBatchEditNesting balanced:

- The IMM should notify the IC when it is no longer used. We're using the
existing FINISH_INPUT_CONNECTION to do that.
- The InputConnection should keep track of its nesting contribution to the TextView.
When finished the IC makes sure its contribution is reset to 0.
Moreover, further asynchonous calls to begin/endBatchEdit that may arrive from the IME
should be ignored. This is achieved using a negative value as a flag.

Notes:

- finishComposingText may be too broad of a method to perform such a cleaning step
but is seems to only be called in cases where the IC will not be used anymore.
If that's too broad, we have to introduce a new method in the IC interface.

- This is has been implemented in EditableInputConnection and not in a more general
BaseInputConnection because this is where we have a notion of TextEdit, and the
nesting problem is here specific to TextView.
However, the same unbalanced begin/end problem will happen in these classes. They
should override finishComposingText as has been done here if that matters.

- We cannot re-use the TextView's mBatchEditNesting since it may take into account
batch edit from various sources and resetting it on InputConnection close could
then lead to an inconsistent negative count value.

Patch Set 2: added synchronized blocks around mBatchEditNesting

Change-Id: I1ec5518fdc16fb0551fbce9d13f5d92eb4bc78c0
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
de9dbb05ce57a1617efc131f6a724c2a2b164bf7 20-Oct-2011 Jean Chalard <jchalard@google.com> Fix a warning from the binder, step 2.

This patch fixes the following warning:
W/Binder: The following Binder class should be static or
leaks might occur: android.view.inputmethod
.InputMethodManager.ControlledInputConnectionWrapper

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

Change-Id: I081d10fd839f2985d7081492f4f5cf0b4da42fd2
Bugs: 5481376, 5461066
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
ee5e77cafec2eae70890abdcc1646ed39b06eddd 02-Sep-2011 satok <satok@google.com> Make setAdditionalInputMethodSubtypes async

Bug: 5120261
Change-Id: Ic7869cfaa5361531e08d58d7dfa5ba0feab0613e
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
75917b603fe83a87c0fe3902e1a768fc31f8d120 31-Aug-2011 satok <satok@google.com> Add a comment for setAdditionalInputMethodSubtypes

Change-Id: I3a19471b80a6f8a68473cba6f0fc934bd052af10
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
4273ed652ae9ea2af0a77b6d59a183ebce53a680 19-Jul-2011 satok <satok@google.com> Merge "Enable IMEs to set additional subtypes in background"
6dd005b48138708762bfade0081d031a2a4a3822 18-Jul-2011 Dianne Hackborn <hackbod@google.com> 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
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
91e88122cf28a48fd2e2260da7d3d87dd437227a 18-Jul-2011 satok <satok@google.com> Enable IMEs to set additional subtypes in background

Bug: 4591792

Change-Id: I7e61a576c56d1a3a56001bdf2fd51ad3801add01
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
863fcd62171e55bc9f2105d9fb5877df982454d8 21-Jun-2011 satok <satok@google.com> Add onClickView to InputMethodService

Bug: 4697141

- onClickView is called everytime the user taps EditText

Change-Id: Ia71ad325e50a20e9e1001def662ef992bb50a9d0
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
e7c6998e0a953ae55487d4fe122739646f9280aa 03-Jun-2011 satok <satok@google.com> API to set additional subtypes

Bug: 4321667

- Due to the voice team's strong request

Change-Id: Ia8bbc277c0987bde996e6f65541877cec96a3ca1
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
560bcb34fad8bfe642d9ab6f38d973185d253af5 02-Jun-2011 satok <satok@google.com> Update internal states stored in InputMethodManager properly

Bug: 4517456

"startInputInner" in InputMethodManager.java will call "startInput" in InputMethodManagerService.java
In startInputLocked in IMMS, mCurSeq (Bind sequence) is incremented, but if mCurMethod stored in
InputMethodManager.java is not null, mBindSequence in InputMethodManager.java will not be updated
to the incremented sequence.

Hence, after this procedure, unbinding IME will be cancelled by the mismatch of the bind sequence.

This situation happens when user changes the focused text view.
If I remember correctly, some behaviors of showing or hiding IME at switching text view were changed.
And I think this bug appeared because of that change.

Change-Id: Icec380f3ca05cf798cc4b82155d0cecf178633a5
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
f9f01008624e2d28c15a90d942fa36f98c8c967d 19-May-2011 satok <satok@google.com> Add Apis to send notifications when the suggestion was picked

- Due to a strong request from VoiceIME

Bug: 4443922

Change-Id: Ia539de0acf66053e0349daec459d75e36805f6bf
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c6cc0f8c19d9eccf408a443fa2bf668af261dcd0 12-Apr-2011 Joe Onorato <joeo@google.com> Rename ViewRoot to ViewAncestor.

ViewRoot is about to be a new public class for poking at ViewAncestor.

Change-Id: Ie95d707c6d8bbb48f78d093d7b2667851812a7d5
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
d4fce2b7f1a861590ce84afcf2f569189251bc59 10-Apr-2011 satok <satok@google.com> Add comments for APIs of InputMethodManager added to Honeycomb

Change-Id: I89501889c612aaeca503d0c11f14e23c67a0ca39
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
68f1b78b7b9139a0e34285ff641a664e664a14b8 11-Apr-2011 satok <satok@google.com> Add an API to get the last used input method subtype

Bug: 4075039

- Voice input requires to know the last used input method subtype.

Change-Id: I603a4fb88a2af5195e52188adfa6585ad80304fa
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
ad8484b3799ba7046e57388e34ba9a4c0a971b42 18-Feb-2011 Gilles Debunne <debunne@google.com> Cursor does not jump back to its previous position when IME is showed up.

Bug 3441308

This behavior may be restored for phones if appropriate.

Change-Id: Ibc2de587d64d372521da2d54f239cab56f04b407
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
857fd9b8562c29913e03ed29288bd1802d37dc60 28-Jan-2011 Joe Onorato <joeo@google.com> Plumb whether an input view is actually visible or not through from the IME
to the status bar.

Bug: 3391067
Change-Id: I049531155bf7ee0b29874916c0b5b0a45b73c09e
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
7c8c6d689280ecfbd151a2e0cb40341768470676 24-Jan-2011 Gilles Debunne <debunne@google.com> Typo in InputMethodManager's documentation

Change-Id: I711e6d24462e336546b789fac0b9c6f529ebe260
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
8cbb4c6e30cff706a243599634aeb8fd9a818d92 24-Jan-2011 Gilles Debunne <debunne@google.com> NULL inputType text fields should never show the IME.

Bug 3381317

Changes made in https://android-git.corp.google.com/g/#change,91880
displayed the IME onFocus. However, the test was not consistent to what
is done in touch event. textIsEditable is now checked too.

Change-Id: If11382c1c90a557839b87d62494253470c42b621
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
16331c8a1d33defccc5cbb18694def79196c921b 20-Dec-2010 satok <satok@google.com> Add a parameter to InputMethodManagerService.getEnabledSubtype for allowing to select subtypes implicitly if no subtype is enabled.

Bug: 3142286

Change-Id: I92d019d0648c552e6d7695c3530aa81ae054d702
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
440aab54cab106030f1edafea4dec1f9d8624f9b 25-Nov-2010 satok <satok@google.com> Removed InputMethodSubtypePicker

Change-Id: I08abac5d65a30c02cc671f4f70e93df25b6c8a92
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
2820351489537698ad153c6397edf3270455edc5 24-Nov-2010 satok <satok@google.com> Add an API to set InputMethodAndSubtype

Change-Id: I66f1a4c8e0d98705614f12a737e7efcd0263b72a
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
f3db1af8d55ab247b6db67baf4fe772c18f33cab 23-Nov-2010 satok <satok@google.com> Change return type of getShortcutInputMethodsAndSubtypes to Map<InputMethodInfo, List<InputMethodSubtype>>

bug: 3201828

- Brushed up the code

Change-Id: I11ad9d1d749bd8947144ca7f1676bab3cf777fd6
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
4e4569dab5c75804b01a19b2d6e6101b445c1c68 19-Nov-2010 satok <satok@google.com> 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
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
67ddf9cbd5d7133c7f443cd3c55841ed1109c3a0 17-Nov-2010 satok <satok@google.com> Add a function to get enabledInputMethodAndSubtype

Change-Id: Ie97635343249aa63e33028c2843cab103125ca92
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
b66d287e3003a0934d5714fbf15e554b3c814906 09-Nov-2010 satok <satok@google.com> Add a setter of InputMethodSubtype to InputMethodManager

- Public API: void setCurrentInputMethodSubtype(int pos)

Change-Id: I55daa19ba924999def544bf841f00bf54852f3e1
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
735cf38b8c7f8f91ad087511e44fe79018fa61d6 11-Nov-2010 satok <satok@google.com> Add a function to switch back to the last used IME

Change-Id: Iac7bcc2ee16dd04d91a3e75b160622d246788c9a
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
06487a58be22b100daf3f950b9a1d25c3ea42aa2 29-Oct-2010 satok <satok@google.com> Add a functionarity for showing / hiding IME button on the system bar

Bug: 3077030

- IME communicates with status bar directly.

Change-Id: Ic5b6b5b7a2b8ea62372dcc9b9c36d81b9f2db651
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
04d50204705c9da52b218f11972da4e7d7a9cb84 25-Oct-2010 satok <satok@google.com> Show Subtype Icon properly in the system status bar

- Added API for getting the current subtype
- Added functions for show/hide status icon

Change-Id: Ifcaad00f7f4c658cdb3af367387476bbf316eb19
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
47a44916e2fb33cf4751906386d5f5c903b28d8b 06-Oct-2010 satok <satok@google.com> Add InputMethodEnabler for enabling input methods and subtypes

- Copyed functionarity from LanguageSettings.java

TODO: Save enabled InputMethodSubtypes

Change-Id: I7b4fb1a79cb8b3229f88773d261430e23ba7aae2
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
ab751aa085433e9f735d2e7603459c6c7e9d2fb0 14-Sep-2010 satok <satok@google.com> Add methods for managing subtypes

- added showInputMethodSubtypePicker to public API
-- show the selector dialog for subtypes
- added getter, setter and event handler to InputMethodManagerService
- extract InputMethodSubtype to the top level class for using it in aidl
- TODO: make an enabler for input method subtypes
- TODO: handle the event of changing an input method subtype in LatinIME

Change-Id: I49f8c6675ac4b06511635d14a37bd398738eff33
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
d4723bb415dc70008c744d1027c3e3d9473adfe1 03-Sep-2010 Gilles Debunne <debunne@google.com> Revert "Merge "InputMethodManager showSoftInput return documentation." into gingerbread"

This reverts commit 26d708d93624d2d060529b7e33e0a20172e85efd, reversing
changes made to 3ac85d31de6cab5a468b7728b3340cf1b57bc8fe.

Change-Id: Ifc19f837bee7437707ddddf0b19cb6bce53dd2c5
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
a18cf547317d3602b5476ee4b9e206fe4c12d7b5 01-Sep-2010 Gilles Debunne <debunne@google.com> InputMethodManager showSoftInput return documentation.

Change-Id: I12b1fe6d224e1b44377fb9152a33a818b1974925
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
4c62fc0e1e5ea9c69a12a7d1cf8b3ec8b2d114a3 09-Aug-2009 Dianne Hackborn <hackbod@google.com> 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.
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
4eba271a64b98a5fc38227f40190b879f807acf5 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/master/...@141043,141043
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
51bf077883df4f5cc816fbfec6d19eedffc26d70 25-Mar-2009 Dianne Hackborn <> Automated import from //branches/master/...@141004,141004
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
c39a6e0c51e182338deb8b63d07933b585134929 11-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137873
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
b2a3dd88a53cc8c6d19f6dc8ec4f3d6c4abd9b54 09-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@137197
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
4df2423a947bcd3f024cc3d3a1a315a8dc428598 05-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@136594
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
076357b8567458d4b6dfdcf839ef751634cd2bfb 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
3dec7d563a2f3e1eb967ce2054a00b6620e3558c 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
3001a035439d8134a7d70d796376d1dfbff3cdcd 19-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@132276
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
da996f390e17e16f2dfa60e972e7ebc4f868f37e 13-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@131421
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
f1e484acb594a726fb57ad0ae4cfe902c7f35858 22-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127436
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
22f7dfd23490a3de2f21ff96949ba47003aac8f8 20-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127101
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
9266c558bf1d21ff647525ff99f7dadbca417309 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/core/java/android/view/inputmethod/InputMethodManager.java