df5af484f882ede16931a61a866f2ffefbe491ab |
|
05-Aug-2015 |
Yohei Yukawa <yukawa@google.com> |
Reduce log spam for the ease of debugging Bug 22857361. Now InputMethodManagerService generates the following log Couldn't create dir.: /data/system/inputmethod not only when it fails to create the directory but also when /data/system/inputmethod already exists, which makes it difficult for us to figure out the root cause of boot failure on emulator environments (Bug 22857361). With this CL, IMMS no longer shows the message when the directory already exists. Basically this is no risk change, which changes only the condition to show the logging message. Bug: 22857361 Change-Id: I09aaf501b19845c8309b09b57c23077f1757cd1a
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
fa6e0a80e20a4917b403fd330e01a9edd021aabc |
|
24-Jul-2015 |
Yohei Yukawa <yukawa@google.com> |
Don't rely on broadcast intent for waking up input method. Basically this is a copy of Iabef96921dd554ce3768fb18619cefc for InputMethodManagerService. As described in JavaDoc of Intent#ACTION_SCREEN_OFF and Intent#ACTION_SCREEN_ON, one can use those Intents to be notified when the device becomes non-interactive and interactive. IMMS has relied on them to enable and disable InputConnection between the IME and the application so as not to allow IMEs to update text when the user does not present. This is actually our design goal as documented in JavaDoc of InputMethodManager. An IME can never interact with an InputConnection while the screen is off. This is enforced by making all clients inactive while the screen is off, and prevents bad IMEs from driving the UI when the user can not be aware of its behavior. The goal of this CL is to improve the timeliness of above mechianism by introducing a direct communication channel from PowerManagerService to InputMethodManagerService via Notifier. Actually this is what InputManager has been doing since Iabef96921dd554ce3768fb18619cefc3230b5fb0. Reasons behind this change are: 1. There are several bugreports that imply those Intents can dispatch tens of seconds after it is enqueued. This is indeed problematic because the user cannot type password to unlock their devices until queued Intent#ACTION_SCREEN_ON is dispatched. This CL addresses such an issue without waiting for figuring out the root cause of the delay. 2. Intent#ACTION_SCREEN_OFF and Intent#ACTION_SCREEN_ON are sent as a ordered broadcast, which may not be suitable for tasks that require a certain level of timeliness, and what IMMS wants is to enable users to start typing immediately after the system. This CL was originally authored by Seigo Nonaka. Bug: 22423200 Bug: 22555778 Change-Id: I747c37ff6dd8f233faef43f2b5713a4320e848eb
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
648abe156596a5f76e6bd883c4d25d0380bbd469 |
|
22-Jun-2015 |
Yohei Yukawa <yukawa@google.com> |
Merge "Set DISABLED_UNTIL_USED for the correct user in IMMS." into mnc-dev
|
094c71fd5c0b6b7ce4cd71d097d226a6a1acfc90 |
|
20-Jun-2015 |
Yohei Yukawa <yukawa@google.com> |
Set DISABLED_UNTIL_USED for the correct user in IMMS. This CL makes If8ff1b2b95c36d33148def2ab87bd006aa520cc0 multi-user aware. It turns out that DISABLED_UNTIL_USED has not been correctly set to IMEs seen from secondary users because we have used IMMS#mContext.getPackageManager(), which always returns the PackageManager with the primary users' context, when specifying COMPONENT_ENABLED_STATE_DISABLED_UNTIL_USED. We should use IPackageManager instead as we have already done in many places of IMMS since Ib23849d352db33f0747aa9d5a178f00. Bug: 8148605 Bug: 8365223 Bug: 21953608 Change-Id: I4b9d6510bf965204bb1f68c8b527d1a4df23fac4
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
1e575a0f32a00fc6a2f9a71fe1d1eb4426c71787 |
|
20-Jun-2015 |
Svet Ganov <svetoslavganov@google.com> |
Merge "Only grant runtime permissions to special components." into mnc-dev
|
adc1cf46045ae756d3a9ccbccf6b0f894e4c1edd |
|
16-Jun-2015 |
Svet Ganov <svetoslavganov@google.com> |
Only grant runtime permissions to special components. Now runtime permissions are granted only to components that are part of the system or perform special system operations. For exmple, the shell UID gets its runtime permissions granted by default and the default phone app gets the phone permissions granted by default. bug:21764803 Change-Id: If8b8cadbd1980ffe7a6fc15bbb5f54a425f6e8f9
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
ec928651cc3e72c2e8ff6102a6c037c5119617ee |
|
10-Jun-2015 |
Seigo Nonaka <nona@google.com> |
Allow apps to hide the soft keyboard even in a transient state. Since I69b88989ae4d0fe056e9ab8d67d0a955dd10e6d9, we have asserted that the following test cases can pass with CTS. assertTrue(imm.showSoftInput( view, InputMethodManager.SHOW_IMPLICIT)); assertTrue(imm.hideSoftInputFromWindow(token, 0)); This CL fixes the test failure caused by I33dc6278fd892f26e56352722bf9449b8b102030 in the above CTS case. Note that the test failure occurs only when the application tries to close the software keyboard during IMMS#mInputShown and IMMS#mImeWindowVis are in a transiently inconsistent state. Bug: 21727232 Change-Id: I195a9f9644583cb1172f48801e87273ad8def850
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
1ce4b6d3c6cb5b2eb9c9d00472be12245db92427 |
|
11-Jun-2015 |
Chris Wren <cwren@android.com> |
remove usage of deprecated method setLatestEventInfo Bug: 18510449 Change-Id: I56a77991c729990e501f402e007dfa79ee57621e
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
d57ba675b1f767885e6d3ccd4d0f7037e634648b |
|
09-Jun-2015 |
Yohei Yukawa <yukawa@google.com> |
Do not accept an empty string in EditorInfo#packageName anymore. In the previous CL Ib871141e3381e45c2623c5f4d692da7a7e78fcc5, a null or empty EditorInfo#packageName was still allowed in case there might be applications that simply forgot to set it. However, after checking the code again, it would be safe to say that having a null or an empty string in EditorInfo#packageName would never happen unless the application intentionally clears it in View#onCreateInputConnection. If there were such applications, probably we could ask developers to stop doing that. With this CL the system no longer accepts such an empty package name. IME developers do not need to handle such an exceptional case in their side. Bug: 18931038 Change-Id: I10d579b48b59fa8ada796e92d58517c6cc5f2230
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
81482971431c91bbf63e8ad70c9f720e6bdf10b3 |
|
04-Jun-2015 |
Yohei Yukawa <yukawa@google.com> |
Make IMMS#mSettingsObserver multiuser-aware. It turns out that IMMS#SettingsObserver has monitored only main user's the secure settings. As a result, when the secondary user changes enabled IMEs in the settigs app, IMMS only updates internal enabled IME lists only when the user is switched for secondary users. If a secondary user enables or disables IMEs at the settings app, such changes are not correctly notified to IMMS. This CL addresses above inconsistency by explicitly specifying the user ID when calling ContentResolver#registerContentObserver(). This CL also allows dumpsys to contain internal state of IMMS#mSettingsObserver in case we need to diagnose problems only with bugreports. Bug: 19340792 Bug: 19587437 Bug: 21612582 Change-Id: I34b437928c147e9fdbe935f725624cc97c816cb3
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
d724886cc13990ebcf55134455ef0fa223054ae8 |
|
04-Jun-2015 |
Yohei Yukawa <yukawa@google.com> |
Include InputMethodSubtypeSwitchingController in state dump. In order to diagnose IME issues in multi-user / multi-profile environment, internal state of InputMethodSubtypeSwitchingController needs to be included in the bugreport. Bug: 19340792 Bug: 19587437 Bug: 21612582 Change-Id: I34aca2c1a4330ec08b5e40441e631809a8bb844e
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
90bf7084bf4f681383bf3329b0935de55330e782 |
|
04-Jun-2015 |
Yohei Yukawa <yukawa@google.com> |
Show more logs when switching users and IMMS#DEBUG==true. This CL changes nothing but adds more logging points in IMMS when switching users and IMMS#DEBUG==true. No impact in production code. Bug: 19340792 Bug: 19587437 Bug: 21612582 Change-Id: Ibaeb77ae50d246fc322cb023da7750d7415a58ab
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
d9eb911bb99df4d092dea00e52bcb9a1feac39a7 |
|
26-May-2015 |
Seigo Nonaka <nona@google.com> |
Hide the software input based on its state. This is a 2nd trial of I20ae2749a which is reverted due to a regression. The goals of this CL are two: - Split setImeWindowStatus method into two: keeping IMS status and updating system UI e.g. NavBar icon state. - Hide software keyboard based on a realistic IMS status. IMMS#mImeWindowVis has been used for two purpose, keeping IMS status and updating the NavBar icons, e.g. keyboard icon. However, to update NavBar icon, sometimes IMMS#mImeWindowVis value is updated without any notification from IMS. As the result, the status value becomes incosistent with the real IMS state. This patch extracts NavBar update logic into separate method and keeps IMMS#mImeWindowVis as notified status. Then, use it for hiding software input correctly in IMMS#hideCurrentInputLocked. This CL also removes refreshImeWindowVisibilityLocked method including workaround for fixing Bug 11186297. That issue is no longer reproducible with latest lock screen and almost no effect for existing users and developers. So simply remove them in this CL. BUG: 21446788 BUG: 20764441 BUG: 18722991 Change-Id: I33dc6278fd892f26e56352722bf9449b8b102030
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
54d512c9acc44484b7baa8d8cf02067d175dde11 |
|
20-May-2015 |
Yohei Yukawa <yukawa@google.com> |
Invalidate IMMS#mCurrentSubtype when upgrading the current IME. Whenever the package to which the current IME belongs is modified, IMMS#mCurrentSubtype needs to be invalidated. Otherwize, InputMethodManager#getCurrentInputMethodSubtype() continues to return the previously selected subtype. One example scenario would be to update metadata of a subtype in a new version of an IME with keeping the same subtypeId. Suppose imeSubtypeExtraValue was updated from "ABC" to "XYZ". In this scenario, the subtype in question retrieved with IMM#getInputMethodList() then InputMethodInfo#getSubtypeAt() has imeSubtypeExtraValue "XYZ", while the subtype returned from InputMethodManager#getCurrentInputMethodSubtype() still has imeSubtypeExtraValue "ABC". With this CL, IMMS#mCurrentSubtype will be invalidate when the active IME package is modified. Bug: 21310194 Bug: 20708002 Change-Id: Ifbb35034d9c8e477ebb5353d2a470dfc1627bbd5
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
6640d21b2e8d16190fdf79cb3ec4b7694a1ea90b |
|
15-May-2015 |
Yohei Yukawa <yukawa@google.com> |
Revert "Fix IMMS#mInputShown state inconsistency." This reverts commit 8d4a9117fbd0aaf03b8486ef920c73894a12cfcd. Because of a regression Bug 21161785. Bug: 21161785 Bug: 18722991 Bug: 20763994 Bug: 20764441 Bug: 20926844 Change-Id: If58612eda08764be0226832c0a73f03683889cdb
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
9e9e2e73c6ec7bece20268196dc89ad0c8bafad4 |
|
08-May-2015 |
Wojciech Staszkiewicz <staszkiewicz@google.com> |
Pass charset to XmlPullParser.setInput instead of null Passing null to XmlPullParser.setInput forces it to do additional work, which can be easily avoided if we know the charset beforehand. bug: b/20849543 Change-Id: Iaff97be9df2d0f99d7af8f19f65934439c9658e2
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
c6c7cd2736fc3b6511e329a969409622750f2a58 |
|
13-May-2015 |
Yohei Yukawa <yukawa@google.com> |
Show IME switcher also when hardware keyboard is connected. As per discussion with UX team, we start showing IME switcher UI not only when there are multiple IMEs are enabled but also when a hardware keyboard is connected. This CL also simplifies needsToShowImeSwitchOngoingNotification() by renaming it with shouldShowImeSwitcherLocked() and unifying related condition checking into that method. Bug: 19496012 Change-Id: Id44724a2a46190382c283a52ece8edffb740807d
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
8d4a9117fbd0aaf03b8486ef920c73894a12cfcd |
|
15-Apr-2015 |
Seigo Nonaka <nona@google.com> |
Fix IMMS#mInputShown state inconsistency. The goal of this CL is to keep IMMS#mInputShown consistent with the actual visibility of the software keyboard. Doing it indeed fixes many user-visible inconsistency, especially when a physical keyboards is attached. It turned out that there are much more cases where IMMS#mInputShown should have been updated. Basically every time when the software keyboard is shown or hiden by non-user actions, IMMS#mInputShown was not updated to the new state. Typical cases are: - the IME shows its Emoji keyboard when the ALT key is pressed. - the system hides software keyboard when physical keyboard is connected. With this CL, all known issues will disapper by updating IMMS#mInputShown in IMMS#setImeWindowStatus(). Note that this CL depends on following preparation CLs directly or indirectly. - I7002ff063e490928309e9a9a0f6557ce3d12e6aa - I1e50ee42838a1bf64a612da4904aa93458d44ea4 - I3decaf37198e5864a1763a059df4a36ebc70c5a7 - Id156c85535a221235737ea6dcc15a67f1c4b9f71 - I9f797d07ba02363fab58ceb9aecb3cc11fbc407e - I60963f1474457ff37cca85e262460dca8105acff Simply cherry-picking this CL into L branch is supposed to be insufficient to fix all the issues and would result in different regressions indeed. BUG: 18722991 BUG: 20763994 BUG: 20764441 BUG: 20926844 Change-Id: I20ae2749a93bc33840df560aa71d4635e9ec849a
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
14e139179be7daab6ed452105387a3922752c219 |
|
07-May-2015 |
Seigo Nonaka <nona@gogole.com> |
Retry "Always show auxiliary subtypes from NavBar keyboard icon." This CL relands I1e50ee42838a1bf64a612da4904aa93458d44ea4, which was reverted by I3decaf37198e5864a1763a059df4a36ebc70c5a7 due to the build breakage in 'layoutlib' target, with a proper fix. Hereafter the original CL description is repeated. The auxiliary subtypes should be listed if the input method picker is opened from NavBar keyboard icon. However there is only IMM#showInputMethodPicker() API to open input method picker and this is also used from LockScreen or Settings UI. Auxiliary subtypes should not be listed there(Id7cf5d122). Thus framework shows auxiliary subtypes based on IMMS#mInputShown and LockScreen state, but it is not a perfect solution. If a physical keyboard is connected, the soft input may be gone. As the result, auxiliary subtypes won't be listed even if it is opened from NavBar keyboard icon. To fix this issue, this CL introduces IMM#showInputMethodPicker(boolean) to be able to decide showing auxiliary subtypes by caller. Note that IMM#showInputMethodPicker(boolean) is still hidden with @hide. There is no public API change in this CL. Bug: 20763994 Change-Id: Id156c85535a221235737ea6dcc15a67f1c4b9f71
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
1b0888fe8e70ddb92090edbaea545f2766ee404e |
|
07-May-2015 |
Bart Sears <bsears@google.com> |
Merge "Revert "Always show auxiliary subtypes from NavBar keyboard icon."" into mnc-dev
|
d130bdc462b163f9afcaf144b477be80959e04d6 |
|
07-May-2015 |
Bart Sears <bsears@google.com> |
Revert "Always show auxiliary subtypes from NavBar keyboard icon." CL is breaking the build. Discussed with Seigo and verting until he can take a look at it. This reverts commit 80ff4ed6bb8dbdad7192d679a01096aa888e090b. Change-Id: I3decaf37198e5864a1763a059df4a36ebc70c5a7
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
7afd01e2f1c0235f5d5a95744200d6739d6fcaa4 |
|
07-May-2015 |
Seigo Nonaka <nona@google.com> |
Merge "Do nothing if hideSoftInput is called from not focused client." into mnc-dev
|
ccee75966ae00e9a2426df09c0aa8610e145ad72 |
|
06-May-2015 |
Seigo Nonaka <nona@google.com> |
Do nothing if hideSoftInput is called from not focused client. IMMS#hideSoftInput calls IMMS#setImeWindowVisibilityStatusHiddenLocked if it is called from not focused client. However this function changes IMS visibility state and also changes the back key indicator wrongly. IMMS should just ignore IMMS#hideSoftInput from not-focused client. As a preparation to fix b/20764441, this CL partially reverts Ife3a8733b1a1bf43b195ecf4b8c5082b6538d0a0 but shouldn't have any user-visible UX regressions. Bug: 20764441 Change-Id: I60963f1474457ff37cca85e262460dca8105acff
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
80ff4ed6bb8dbdad7192d679a01096aa888e090b |
|
04-May-2015 |
Seigo Nonaka <nona@google.com> |
Always show auxiliary subtypes from NavBar keyboard icon. The auxiliary subtypes should be listed if the input method picker is opened from NavBar keyboard icon. However there is only IMM#showInputMethodPicker() API to open input method picker and this is also used from LockScreen or Settings UI. Auxiliary subtypes should not be listed there(Id7cf5d122). Thus framework shows auxiliary subtypes based on IMMS#mInputShown and LockScreen state, but it is not a perfect solution. If a physical keyboard is connected, the soft input may be gone. As the result, auxiliary subtypes won't be listed even if it is opened from NavBar keyboard icon. To fix this issue, this CL introduces IMM#showInputMethodPicker(boolean) to be able to decide showing auxiliary subtypes by caller. Note that IMM#showInputMethodPicker(boolean) is still hidden with @hide. There is no public API change in this CL. Bug: 20763994 Change-Id: I1e50ee42838a1bf64a612da4904aa93458d44ea4
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
d4474cb9454c7a8b907c0be07236ffed4ecf3fd8 |
|
05-May-2015 |
Seigo Nonaka <nona@google.com> |
Remove dead code from IMMS. MSG_SHOW_IM_PICKER is no longer used. Also by removing that message, we can simplify showInputMethodMenu/showINputMethodSubtypeMenu. Change-Id: I7002ff063e490928309e9a9a0f6557ce3d12e6aa
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
d69e4c1460017062e7c36be55801cb434ad19d97 |
|
24-Apr-2015 |
Dianne Hackborn <hackbod@google.com> |
Update use of procstate for services. Now that we have a separate foreground service proc state (above a sleeping top app), update various system services to put their bindings into this state when appropriate. There are two new bind flags for this -- one that just always makes it a foreground service, another that only does it when the device is awake (useful for things like the wallpaper). And with all of that, tweak network policy manager to only include apps that are at least foreground service state when in power save and device idle modes. This will allow us to further reduce the set of apps that have network access (in particular not giving access to the current top app when the screen is off), hopefully leading to even better battery life. Change-Id: I91d85a5c5ed64e856149e9a5d94a634a7925ec7f
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
e13b15c8101471c2aae1fbdcd55da9b2d7bbf7b1 |
|
13-Apr-2015 |
Kenny Guy <kennyguy@google.com> |
Merge "Add foreground profile changed to user switch observer."
|
429796226a8831af63a6303a58329f6b68f7b100 |
|
13-Apr-2015 |
Kenny Guy <kennyguy@google.com> |
Add foreground profile changed to user switch observer. Called when the focused activity changes from one profile to another to allow sys ui to vary display based on the current profile. This reverts commit 735a3f90598be31bca5d551d781280a205a5f27f. Resubmitting with fix for build break in another package. Bug: 19531782 Change-Id: I98cd2968ade3b1d23feb90d98057f306695d569e
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
48a09a0678752eca242a5379b024da78eb36144f |
|
13-Apr-2015 |
Kenny Guy <kennyguy@google.com> |
Merge "Revert "Add foreground profile changed to user switch observer.""
|
735a3f90598be31bca5d551d781280a205a5f27f |
|
13-Apr-2015 |
Kenny Guy <kennyguy@google.com> |
Revert "Add foreground profile changed to user switch observer." This reverts commit 99b9030a3ececd9b88e5011c98be0a5b9499c776. Change-Id: If152904f298ecd9e6fd5d038797d061a5c85eec8
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
d10bd4852291f1c99d2fc011606a695d631504fe |
|
13-Apr-2015 |
Kenny Guy <kennyguy@google.com> |
Merge "Add foreground profile changed to user switch observer."
|
99b9030a3ececd9b88e5011c98be0a5b9499c776 |
|
01-Apr-2015 |
Kenny Guy <kennyguy@google.com> |
Add foreground profile changed to user switch observer. Called when the focused activity changes from one profile to another to allow sys ui to vary display based on the current profile. Bug: 19531782 Change-Id: I1f98398f4b37ce77077394546906ef4dff06cd47
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
a0f3ad1b5aabe04d9eb1df8bad34124b826ab641 |
|
07-Apr-2015 |
Yohei Yukaw <yukawa@google.com> |
Verify that EditorInfo.packageName and uid are consistent Currently EditorInfo.packageName is filled in the application process and passed to the IME without any verification. With this CL, the system makes sure that the provided package name and application's uid are consistent before establishing the input connection. In other words, the risk of spoofed EditorInfo.packageName will be mitigated with this change. This should be beneficial especially when an IME wants to have per-application settings and/or dictionaries. Bug: 18931038 Change-Id: Ib871141e3381e45c2623c5f4d692da7a7e78fcc5
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
7b9a28c7f0a7b88ed1ea777edc05002d2d2b38b7 |
|
18-Mar-2015 |
Christopher Tate <ctate@google.com> |
Back up and restore the set of enabled IMEs The restored set of enabled IMEs/subtypes is merged into the current state of the system, rather than simply replacing it. This is because we do not want to accidentally disable or reconfigure something that the user is currently relying on. There's a certain amount of repetitive activity here, rebuilding the enabled-state data structures in a different format, but it's important for maintainability that the restore code be able to rely on the core InputMethodUtils implementation of reading/writing the settings element. Bug 19822542 Change-Id: If0104151b3526da6ecc669adde3119a239ecafeb
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
4a357cd2e55293402d7172766f7f9419815fc1e8 |
|
19-Mar-2015 |
Alan Viverette <alanv@google.com> |
Replace usages of deprecated Resources.getColor() and getColorStateList() Change-Id: I8f64fe6c4c44a92ff6d07250223ba590a1d691b0
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
6aa037887800e34bd057585106609236c950ca22 |
|
20-Feb-2015 |
Yohei Yukawa <yukawa@google.com> |
Remove deprecated hidden public methods from InputMethodUtils. This is a follow up CL for a recent attempt to minimize the number of default enabled IMEs. - part1: I831502db502f4073c9c2f50ce7705a4e45e2e1e3 - part2: Ife93d909fb8a24471c425c903e2b7048826e17a3 - part3: I6571d464a46453934f0a8f5e79018a67a9a3c845 - part4: I871ccda787eb0f1099ba3574356c1da4b33681f3 This CL removes following deprecated hidden public methods from InputMethodUtils as planned. - isSystemImeThatHasEnglishKeyboardSubtype(InputMethodInfo) - isValidSystemDefaultIme(boolean, InputMethodInfo, Context) - containsSubtypeOf(InputMethodInfo, String, String) This is a pure code refactoring with preserving the current logic. Hence no behavior change is intended. Change-Id: I1ff994cbbdef83e1e907a0d88aa9ae09d45263b4
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
505e3abb8dd0d8f594280b9510adef74623630d7 |
|
25-Nov-2014 |
Alan Viverette <alanv@google.com> |
Update IME selection dialog layout for Material Also cleans up simple_list_item_2.xml formatting. BUG: 18314215 Change-Id: I12b6ff19fca891524da7137b85dd576f85ee266a
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
5baaaac7c75dbcbd1de8e4f24820f231d2077231 |
|
27-Oct-2014 |
Hyejin Kim <hyejin.kim@lge.com> |
Fix not to show a log with empty default ime It'll make reboot to show a log with empty defualt ime. Bug: 18165757 Change-Id: I7a0d55bc0da0566a60abb24123c1dbcdd03be9ed
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
e63b5fae8d099d2f5d4d5a5cf7a8d5a86266c0fe |
|
19-Sep-2014 |
Yohei Yukawa <yukawa@google.com> |
Work on issue #17506095: Plumb a new configuration to IMMS This CL makes a plumbing from SystemConfig to IMMS. Change-Id: Ia70b870723acf647e0c27f24aff91b40d6f85543
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
443c2bafd824779a75cd4b922b6839a8df9795e9 |
|
10-Sep-2014 |
Yohei Yukawa <yukawa@google.com> |
Use public APIs to instantiate InputMethodSubtype This is a groundwork for subsequent CLs that are supposed to improve default input method selection logics. Historically we have had a @hide constructor of InputMethodSubtype. However, this contructor is a bit obsolete because we can not specify some parameters that were added in recent platform releases. We should use InputMethodSubtypeBuilder instead. BUG: 17347871 Change-Id: I72ad79682a58344e14380eb20e26edf98aee37cd
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
080fa34577ea4d461c91631986ede4a25877b305 |
|
01-Sep-2014 |
Yohei Yukawa <yukawa@google.com> |
Fix illegal cast in a logging code This is a follow up CL for I19ad8542659bc092b92ee13eb9, which introduced a ClassCastException error in the logging code of MSG_SET_USER_ACTION_NOTIFICATION_SEQUENCE_NUMBER handler. With this CL, the protocol in question looks like: - what: MSG_SET_USER_ACTION_NOTIFICATION_SEQUENCE_NUMBER - arg1: sequence number to be passed to #setUserActionNotificationSequenceNumber(int) - arg2: not used - obj: ClientState BUG: 16238154 BUG: 7043015 Change-Id: I08d52d4564bae9e042a2eff359e92549a66e837b
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
255dd04271088590fedc46c8e22b2fd4ab142d39 |
|
19-Aug-2014 |
Selim Cinek <cinek@google.com> |
Added notification color to all system notifications Bug: 17128331 Change-Id: I81a94510ef51b99916f314c0dd65852426a1fbeb
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
7b5a96ba8364d5c180780b2f878f5a2b949cfdac |
|
10-Aug-2014 |
Michael Wright <michaelwr@google.com> |
Persist Show IME option. Add a new setting to persist whether to show the IME when a hard keyboard is connected. Bug: 14066881 Change-Id: I2237ded850a0d4ab43ca441d0b7df13e0958e630
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
665366a3055c7baa36242b8c92c5ff85b1c3394b |
|
08-Aug-2014 |
Michael Wright <michaelwr@google.com> |
Change 'disable hardware keyboard' to 'show input method' Previously it implied that the hardware keyboard would be disabled, but really the toggle would just enable showing the IME even if a hardware keyboard was present. Changed the string and swapped the semantics to be more clear about the behavior. Bug: 14066881 Change-Id: I9c8a7eb98b5277f1d09cc19fa7402e9b4cf51d92
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
8c6d477d30e64f3dfae20250b8274ffb37ef7bfa |
|
05-Aug-2014 |
Tadashi G. Takaoka <takaoka@google.com> |
Fix unnecessarily non-static inner class to static inner Change-Id: I0c8efda6ef0bede6b5871cd651f42db82dbfbd39
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
d130b803b0787131208bea99926dc655b124f006 |
|
01-Aug-2014 |
Tadashi G. Takaoka <takaoka@google.com> |
Fix input method picker using Material design language Note that the button text color will be fixed in the future change. Bug: 14860252 Change-Id: I8a6a4a7efce50bfaec114117e33f97f27b1ef950
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.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/services/core/java/com/android/server/InputMethodManagerService.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/services/core/java/com/android/server/InputMethodManagerService.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/services/core/java/com/android/server/InputMethodManagerService.java
|
a07557471e43226fd23f6447c1e61177726524c9 |
|
04-Jun-2014 |
Yohei Yukawa <yukawa@google.com> |
Hardening token validation in InputMethodManagerService This CL adds missing token validations in InputMethodManagerService#switchToNextInputMethod and InputMethodManagerService#shouldOfferSwitchingToNextInputMethod. This CL also fixes a possible race condition when validating the token in InputMethodManagerService#updateStatusIcon. BUG: 15420379 Change-Id: I043aa30a19c821f33effd57dfd6590b0e3ed817b
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
22c97be73b2686a4a06cf31d0b211f47e7b92595 |
|
04-Jun-2014 |
Yohei Yukawa <yukawa@google.com> |
Remove code duplication in InputMethodManagerService This is a groundwork for the subsequent fix. It should not change existing behavior. BUG: 15420379 Change-Id: I106b3f50731c799e06b26d1eab9c6a406c06d78c
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
4e02bc6f8fa64d8a8398371836e2e9abf3be3070 |
|
04-Jun-2014 |
Yohei Yukawa <yukawa@google.com> |
Remove redundant synchronization blocks from IMMS This is a groundwork for the subsequent fix. It should not change existing behavior. BUG: 15420379 Change-Id: I6f81ec77e748a8c7c26ffa1f5faf39684b210ae4
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
3d46bab02978df14354379c4b10d7f68c3b80771 |
|
30-May-2014 |
Yohei Yukawa <yukawa@google.com> |
Rebuild the enabled IMEs list when changed in Settings page With this CL, the input method switching controller is notified even when the list of enabled IMEs is changed by System Settings. Ideally we should hook every setter method in InputMethodSettings to ensure that InputMethodSettings and InputMethodSubtypeSwitchingController can share the same list. Until then, most of user visible weirdness should disappear with this CL. BUG: 15299968 Change-Id: Ie41da226d71b58d2e12057f85e4793b35e8b9f23
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
5a647b69be8ac8d40c33ed9abe63e41514699e5b |
|
21-May-2014 |
Yohei Yukawa <yukawa@google.com> |
Remove unnecessary internal lock Previously, InputMethodSubtypeSwitchingController has relied on its own internal lock for #getNextInputMethod and class has to be invalidated whenever InputMethodManagerService#mMethodMap is updated, any method of InputMethodSubtypeSwitchingController should be called under the global lock of InputMethodManagerService#mMethodMap. As a consequence, we can conclude that InputMethodSubtypeSwitchingController does not need its own internal lock. This CL also adds additional synchronization blocks into the constructor of InputMethodManagerService to address the existing inconsistency that methods with *Locked suffix are called without the lock actually. BUG: 7043015 Change-Id: I9d4d3d7232c984432185c10c13fb726a6158cac8
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
c834a2590cc7ac478ba2ef5a6d8eb7ce471df132 |
|
21-May-2014 |
Yohei Yukawa <yukawa@google.com> |
Update InputMethodSubtypeSwitchingController correctly User visible behavior is supposed to be identical with and without this CL. Previously, there is some corner cases where InputMethodSubtypeSwitchingController#resetCircularListLocked is not called but the list of enabled input method is updated. Fortunately, this corner cases are not observable for a user because we have not updated the the rotation order dynamically. However we should fix this before implementing smarter rotation algorithm that changes the rotation order dynamically. BUG: 7043015 Change-Id: I145a514dc4cde369ba50431c408c916046ab0c6e
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
d4e6d467cd61d6bec1ae25744a415a96f0a0f760 |
|
17-May-2014 |
Dianne Hackborn <hackbod@google.com> |
Delay the dispatching of non-wakeup alarms. When the screen is off, there are no guarantees about when non-wakeup alarms will be dispatched. Historically they are dispatched any time the device wakes up. With this change, we will delay the dispatch until sometime later. The amount of delay is determined by how long the screen has been off. Currently there are three possible delays: up to 2 minutes if the screen has been off for less than 5 minutes; up to 15 minutes if it has been off for less than 30 minutes; and otherwise up to an hour. When the screen is turned on or a wakeup alarm is dispatched, all delayed alarms will also be dispatched. Note that one of the things this delays is TIME_TICK, which means the in many cases we won't deliver TIME_TICK until the screen is in the process of waking up. The current implementation causes this to be delayed until the SCREEN_ON broadcast is sent; we probably want to improve this to have the power manager tell the alarm manager about the screen turning on before it sends that broadcast, to help make sure things like the lock screen can update their current time before the screen is actually turned on. In addition, switch all of the alarm stats to use the new PendingIntent "tag" identifier for its operations, instead of the old code to try to construct a pseudo-identifier by retrieving the raw Intent. Also add a new package manager command to immediately write packages.xml. Change-Id: Id4b14757cccff9cb2c6b36de994de38163abf615
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
9d91b43c8d0fa233905ecf132c6e6ee664904694 |
|
19-May-2014 |
Yohei Yukawa <yukawa@google.com> |
Do not pass null to IInputMethod#setSessionEnabled It doen't make sense to pass null as IInputMethodSession for IInputMethod#setSessionEnabled. If we do this, it causes NPE. BUG: 14980068 Change-Id: Ide48d098d5e7640890257e31f8872e79b9821eb2
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
807ef76e23e08405532a0e7e2d71e7433bf7ae9a |
|
08-May-2014 |
Jason Monk <jmonk@google.com> |
Don't show switcher button when IME switcher shown This keeps track of when the switcher is being shown and disables the IME switcher button/notification when it is up. Bug: 14631536 Change-Id: I4adf24bc5fa6377645915419583d60596b3bdde0
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
b605fecd9e4282823af754b3968b21205d64554a |
|
02-May-2014 |
Jason Monk <jmonk@google.com> |
Only show IME in navigation bar when it should Add a flag to indicate that the IME should be shown. This follows the continuous ime notification boolean, and if there are multiple input methods to choose from enabled. This way the notification and navigation button show up under the same circumstances (but not on the same devices). Change-Id: Ia6a2253061f1876f4bcc511de48c1078e9d96be5
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
e463c745ef6901121837e88ca8597d062843b9dd |
|
02-May-2014 |
Jason Monk <jmonk@google.com> |
Don't show IME Switcher not. if nav bar exists Since the navigation bar now has IME switcher icon no need for a notification about it when it is present. Bug: 14257632 Change-Id: I5511fee0dee45475d5b7949f63696b1d29acf9cc
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.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/services/core/java/com/android/server/InputMethodManagerService.java
|
2a764949c943681a4d25a17a0b203a0127a4a486 |
|
02-Apr-2014 |
Kenny Guy <kennyguy@google.com> |
Rename related users to profiles. Rename the related user concept as profiles. When returning profiles of a user include the user as a profile of itself. Change-Id: Id5d4f29017b7ca6844632ce643f10331ad733e1d
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.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/services/core/java/com/android/server/InputMethodManagerService.java
|
fd7f1e00399e53a392941928ed5a55ca77b1b721 |
|
18-Mar-2014 |
John Spurlock <jspurlock@google.com> |
Unhide notification category. Rename @hidden Notification.kind -> category, and flesh out shared values. Now a single value. Update framework references, remove unused SystemUpdateService magic value unused since 2012. Change-Id: If06d19ff3a8c3125fca1457f5d3c665e2939c66c
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
f0f94d129b6eb3c48624e915898d86d4f2de59ff |
|
18-Mar-2014 |
Dianne Hackborn <hackbod@google.com> |
Treat IME processes as hosting activities When we stop using an IME process, we still treat that process as if it is hosting activities (in the activity part of the LRU list), to try to keep it around. This is intended to help the experience of switching between IMEs, reducing the chance of your previous IME process being killed and thus requiring much more time to switch. Change-Id: Ie5793fd9b40d980fa18f80246326511ed6ae0597
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
734983fff35d9ed2b7a9848bdfbca401887d0dd8 |
|
05-Mar-2014 |
Amith Yamasani <yamasani@google.com> |
Allow related users to show activities on primary user Make ActivityManager and WindowManager understand related users. Task stack will now contain interleaved tasks for related users, but still group regular users separately from groups of related users. InputMethodManagerService permits related users to invoke IME and receive key events. Change-Id: I3bd87b32aec69c3f8d470c8b29b144f4e849c808
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|
49782e46c0eb85a25ae2abcf80880c48dbab5aea |
|
20-Dec-2013 |
Amith Yamasani <yamasani@google.com> |
am 9158825f: Move some system services to separate directories * commit '9158825f9c41869689d6b1786d7c7aa8bdd524ce': Move some system services to separate directories
|
9158825f9c41869689d6b1786d7c7aa8bdd524ce |
|
22-Nov-2013 |
Amith Yamasani <yamasani@google.com> |
Move some system services to separate directories Refactored the directory structure so that services can be optionally excluded. This is step 1. Will be followed by another change that makes it possible to remove services from the build. Change-Id: Ideacedfd34b5e213217ad3ff4ebb21c4a8e73f85
/frameworks/base/services/core/java/com/android/server/InputMethodManagerService.java
|