aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod (follow)
Commit message (Expand)AuthorAgeFilesLines
* Rename to Kelar Keyboard (org.kelar.inputmethod.latin)Amin Bandali2025-01-11303-63689/+0
* Initial successful standalone buildAmin Bandali2025-01-112-2/+3
* Fix crash: NPE in SuggestionStripView in LatinIME•••The first parameter in `GestureDetector.OnGestureListener#onScroll` might be null, which indicates an incomplete event stream or error state. https://developer.android.com/reference/android/view/GestureDetector.OnGestureListener#onScroll(android.view.MotionEvent,%20android.view.MotionEvent,%20float,%20float) Bug: 383053077 Change-Id: I6e49ae353beafb6585184fa729041570991f240c Ziqi Chen2024-12-111-0/+3
* Fix bug: AOSP keyboard is shown incompletely in Android V landscape mode•••Root cause: The AOSP keyboard uses `DisplayMetrics#widthPixels` to calculate the keyboard width and draw keys. Since Android 15’s edge-to-edge enforcement, this property now returns the full screen width, including window insets. This results in an incorrectly large key width calculation. Fix: Subtract window insets including system bar and display cutout from the width. Change-Id: Iea01ba749a48145cf5b484dc22a570874b1b7ca4 Test: use `m LatinIME` to install the AOSP keyboard and test landscape mode manually Bug: 377594757 Ziqi Chen2024-11-264-8/+27
* Fully qualify @attr reference to android.R field•••Currently, Metalava has some special handling of '@attr ref R.<field>` references to make sure that they are fully qualified, i.e. `@attr ref android.R.<field>`. That special handling complicates Metalava and is blocking some flagged API work so will be removed. Before that can be done, the existing incorrect documentation needs to be cleaned up. This change cleans up those cases in this repo. Bug: 371997321 Test: Run `m offline-sdk-docs` before and after to make sure that there are no differences. Flag: DOCS_ONLY Change-Id: Ic3d959fd8e95ac4524be5feb93feae3a08389370 Paul Duffin2024-10-077-99/+99
* LatinIME: Fix Implicit PendingIntent Vulnerability•••* checkTimeAndMaybeSetupUpdateAlarm method created an Implicit PendingIntent vulnerability, which may cause security threats in the form of denial-of-service, private data theft, and privilege escalation. * PendingIntents are Intents delegated to another app to be delivered at some future time. Creating an implicit intent wrapped under a PendingIntent is a security vulnerability that might lead to denial-of-service, private data theft, and privilege escalation. * We've used FLAG_IMMUTABLE (added in SDK 23) to create PendingIntents for SDK > 23, This prevents apps that receive the PendingIntent from filling in unpopulated properties & Ensures that PendingIntent is only delivered to trusted components. Test: m Change-Id: I68a1f3f2d81138e42092cc201d36e5d29853a86e Signed-off-by: techyminati <sinha.aryan03@gmail.com> techyminati2024-06-191-1/+7
* Add required flag to receivers in LatinIME•••Android T allows apps to declare a runtime receiver as not exported by invoking registerReceiver with a new RECEIVER_NOT_EXPORTED flag; receivers registered with this flag will only receive broadcasts from the platform and the app itself. However to ensure developers can properly protect their receivers, all apps targeting U and registering a receiver for non-system broadcasts must specify either the exported or not exported flag when invoking registerReceiver; if one of these flags is not provided, the platform will throw a SecurityException. This commit updates the dictionary receivers with the RECEIVER_NOT_EXPORTED flag since these are only sent from the local app. The HIDE_SOFT_INPUT receiver is flagged with the RECEIVER_EXPORTED flag since it can be sent by any app with the corresponding permission. Bug: 234659204 Test: Build Change-Id: I2b9a1360e0eb1c1965c07cc71dca9f11eb153517 Michael Groover2023-03-091-4/+19
* Fix errorprone warnings that should be errors•••This commit is part of a large scale change to fix errorprone errors that have been downgraded to warnings in the android source tree, so that they can be promoted to errors again. The full list of changes include the following, but not all will be present in any one individual commit: BadAnnotationImplementation BadShiftAmount BanJNDI BoxedPrimitiveEquality ComparableType ComplexBooleanConstant CollectionToArraySafeParameter ConditionalExpressionNumericPromotion DangerousLiteralNull DoubleBraceInitialization DurationFrom DurationTemporalUnit EmptyTopLevelDeclaration EqualsNull EqualsReference FormatString FromTemporalAccessor GetClassOnAnnotation GetClassOnClass HashtableContains IdentityBinaryExpression IdentityHashMapBoxing InstantTemporalUnit InvalidTimeZoneID InvalidZoneId IsInstanceIncompatibleType JUnitParameterMethodNotFound LockOnBoxedPrimitive MathRoundIntLong MislabeledAndroidString MisusedDayOfYear MissingSuperCall MisusedWeekYear ModifyingCollectionWithItself NoCanIgnoreReturnValueOnClasses NonRuntimeAnnotation NullableOnContainingClass NullTernary OverridesJavaxInjectableMethod ParcelableCreator PeriodFrom PreconditionsInvalidPlaceholder ProtoBuilderReturnValueIgnored ProtoFieldNullComparison RandomModInteger RectIntersectReturnValueIgnored ReturnValueIgnored SelfAssignment SelfComparison SelfEquals SizeGreaterThanOrEqualsZero StringBuilderInitWithChar TreeToString TryFailThrowable UnnecessaryCheckNotNull UnusedCollectionModifiedInPlace XorPower See https://errorprone.info/bugpatterns for more information on the checks. Bug: 253827323 Test: m RUN_ERROR_PRONE=true javac-check Change-Id: I454a105ae82484a2d19aff1808e8d9dd55ba64f4 Cole Faust2022-10-172-2/+2
* Merge "Fix array-related errorprone warnings"Treehugger Robot2022-08-241-1/+3
|\
| * Fix array-related errorprone warnings•••The ArrayEquals, ArrayHashCode, ArrayToString, and ArraysAsListPrimitiveArray errorprone findings were demoted from errors to warnings. Fix existing occurrences of them so they can be made errors again. Bug: 242630963 Test: RUN_ERROR_PRONE=true m javac-check Change-Id: I689397a7196277de3fd301836e72f7555e2036cb Cole Faust2022-08-151-1/+3
* | Remove unused method for dictionarypack•••Remove the showDictionaryAvailableNotification method since there is no module use it. Bug: 209479751 Test: presubmit Change-Id: I4c88b4a2d0cb36761d9102ce35260f93303625d9 Wilson Wu2022-02-231-54/+0
* | Remove flag to ignore user settings from haptic feedback•••The keyboard key-press haptic feedback should follow the user settings for "Touch feedback". Bug: 185351540 Test: manual Change-Id: I718d3bf15b1ef841a869a898038d0eca1eca78f0 Lais Andrade2022-01-171-2/+1
|/
* Using IME context to inflate layout from S_V2•••With CL[1],[2] to migrate InputMethodService as the subclass of the new introduced class WindowProviderService in S_V2, IME context resources can be managed by associating the window container of IME window when its display/window configuration changed. So we can get rid of createDisplayContext logic from S_V2 with gated by SDK version and refining the method of get IME context with documentation to make it clear. [1]: Ie565e30ed5dd3f2cfe27355a6dded76dc3adc14b [2]: I64a1614f32d097785915f6105b1813a929e0fe32 Bug: 213118079 Bug: 133825283 Test: manual with below steps 1) adb install -r EditTextVariations.apk 2) tapas LatinIME 3) make 4) adb install -r out/target/product/generic/system/app/LatinIME/\ LatinIME.apk 5) adb shell ime enable com.android.inputmethod.latin/.LatinIME 6) adb shell ime set com.android.inputmethod.latin/.LatinIME 5) Enable screen auto-rotation 7) Launch EditTextVariations from launcher's shortcut 8) Tap the first EditText field to show IME 9) Rotate the device to the landscape mode 10) Expect the IME should not be shrunk Change-Id: If2cc1c5bdb257a9c0af653fa7157cf781a90bf1d Ming-Shin Lu2022-01-121-19/+37
* Fix Keyboard Theme update when device orientation changed•••As CL[1] introduces diplayContext to address IME service context's Resources / DisplayMetrics update when switching IME window to another display after onConfigurationChange. In LatinIME#onInitializeInterface, we only update keyboard theme context and displayContent when the displayId is changed, but overlooked even the displayId is the same, the display context's resource configuration might changed like the device orientation changd. It leads getDefaultKeyboardHeight will get wrong config_max_keyboard_height fraction value when rotating to landcape because the context resources didn't get updated. Add a check to update keyboard theme context when the current display configuation is changed accordingly. [1]: I0ed6a079af1ed90c75fee1d36d5ce3ef3c41f8ed Fix: 186507147 Test: manual as issue steps 1) Turn on auto-rotate 2) Open Settings 3) Rotating the device to landscape mode 4) Tap “Search settings", verify if the soft-keyboard shown and the size is expected. Change-Id: I288a31baf04fa2e63d6b4a14ad81b401cb36ece5 Merged-In: I288a31baf04fa2e63d6b4a14ad81b401cb36ece5 Ming-Shin Lu2021-06-181-1/+2
* Update LatinIME to comply with Android's inclusive language guidance•••See https://source.android.com/setup/contribute/respectful-code for reference Bug: 162536543 Change-Id: I5df9e60ec6caa2e1e3253532c2b59b74adfc1749 Adrian Roos2020-08-121-2/+2
* Update language to comply with Android's inclusive language guidance•••See https://source.android.com/setup/contribute/respectful-code for reference Bug: 161896447 Change-Id: I171bc299e660f96f20041a67a3052bd8a2ed781c Jeff Sharkey2020-07-313-3/+3
* Update language to comply with Android’s inclusive language guidance•••See https://source.android.com/setup/contribute/respectful-code for reference Bug: 161896447 Test: tapas LatinIME && m Change-Id: I2ffb39ff70f61e579b62761d3da526a545dead1f Seigo Nonaka2020-07-2212-30/+30
* Implement text entry key API for accessibility services in AOSP Keyboard•••From Android Q, Talkback supports lift-to-type feature if the node claims it is a text entry key via setTextEntryKey(). We implement this API to show how this API is applied. This CL uses AccessibilityNodeInfoCompat instead of AccessibilityNodeInfo so that the same functionality can be used even on pre-Q devices when the AccessibilityService supports it. With that, this CL removes the legacy code of lift-to-type feature, which was implemented in the AOSP Keyboard side. Bug: 131644969 Test: manual - enable Talkback suporting lift-to-type,check Talback perform click action when finger is lifted. Change-Id: I1ec2928f5a9ba0bde999b09d4c0b9c922f179a2a ryanlwlin2019-09-173-16/+4
* Create display context when switching IME to new display for AOSP IME•••To address IME service context's Resources / DisplayMetrics update when switching IME window to another display after onConfigurationChange. We use Context#createDisplayContext to create display specific context when display changed, to ensure soft keyboard can re-layout with correct resources. Bug: 126930163 Test: manual with AOSP IME as below steps: 1) Settings > Developer options > enable "Simulated Display" & "Force desktop mode". 2) Reboot device 3) Launch app (i.e. Contacts) with bluetooth or usb mouse in Simulated display. 4) Tap EditText on app to see see if IME window layout correctly on simulated display. 5) Launch app (i.e Files) on primary display. 6) Tap EditText on app to see if IME window layout correctly on primary display. Change-Id: I0ed6a079af1ed90c75fee1d36d5ce3ef3c41f8ed Merged-In: I0ed6a079af1ed90c75fee1d36d5ce3ef3c41f8ed lumark2019-09-112-9/+42
* Merge "Remove extend touchable region for AOSP keyboard"•••am: ff1db79a18 Change-Id: Ic162b5e20213a3f1b2aeaf77250bf1d7edc198c5 lumark2019-07-051-4/+1
|\
| * Remove extend touchable region for AOSP keyboard•••Remove EXTENDED_TOUCHABLE_REGION_HEIGHT from LatinIME#onComputeInsets to prevent keyboard touch region covered navigation bar when in split-window mode with display density < 240 case. Fix: 134893742 Test: manual as below steps: 1) Set window density as 240 with "adb shell wm density 240" 2) Launch a app (i.e. Messages) from recents activity, set as split-screen mode. 3) Tap Search bar to show IME keyboard. 4) Press home / back / recents key if it works, expect it works. Change-Id: I596b7276041fecc50d2bc095c7e51664f632368d lumark2019-07-051-4/+1
* | Launch AOSP Keyboard Settings on the same display•••This CL demonstrates how an IME can show an Activity on the display where the IME is shown. The key points are: * The current display ID can be obtained as follows. final int curentDisplayId = inputMethodService .getSystemService(WindowManager.class) .getDefaultDisplay() .getDisplayId(); * When launching an Activity, specify the target display ID as follows. inputMethodService.startActivity(intent, ActivityOptions .makeBasic() .setLaunchDisplayId(curentDisplayId) .toBundle()); Fix: 131718879 Test: Manually verified as follows. 1. Build aosp_blueline-userdebug and flash it. 2. adb shell settings put global force_desktop_mode_on_external_displays 1 3. adb shell settings put global overlay_display_devices 1920x1080/320 4. adb reboot 5. With a mouse, launch any application that has input field in the secondary display. 6. Click that input field to bring up AOSP Keyboard. 7. Long click the comma key then select the gear icon. 8. Select "Android Keyboard Settings (AOSP)" 9. Make sure that the AOSP Keyboard Settings is launched in the secondary display, not in the default display. 10. Go back to the step 7. 11. Select "Languages" 12. Subtype Enabler for AOSP Keyboard is shown in the secondary display, not in the default display. Change-Id: I9f89f371c38d9a7b5a06d018d4b41aa09815ea24 Yohei Yukawa2019-05-041-2/+19
* | Merge "Fix dicttool build" am: a92d0f9262 am: 438a303732•••am: 6aed05232b Change-Id: I558fb5ff22a7428d1d82eac82b4caba469ed48d4 Tadashi G. Takaoka2018-10-311-0/+3
|\|
| * Fix dicttool build•••This CL partially reverts - Id88b02b74bdfe4ca05b08181ceb6b34d5652fc0c - I05c7d8429e8d9a26139456763c77997340fea8c2 And followup (remove shortcut support) - I73b7dc008a5acaf75a31a36a2d332b5afabd82d0 Bug: 28255684 Test: make -j10 dicttool_aosp Change-Id: I2e01ed86b9517a1141aee35ea6d8ef39258981d1 Tadashi G. Takaoka2018-10-291-0/+3
* | Remove unused class PersonalDictionaryLookup•••PersonalDictionaryLookup has never been used. Usually proguard can remove this class but it also makes it difficult to run unit tests. We should just remove this unused class. Bug: 111164993 Test: compile Test: No new test failure Change-Id: I732db94cb3aac4ed9c6b5954679b896334a12a9c Yohei Yukawa2018-07-041-651/+0
* | Migrated various apps under packages/inputmethods/LatinIME/ to androidx•••Bug: 76692459 Test: mmma packages/inputmethods/LatinIME/ Change-Id: Ib76af6f6db1a0dd5cf64a06a4ea56151712e9692 vineel sadineni2018-05-1517-26/+26
* | Merge java-overridable/ into java/ again•••This CL a logical revert of a previous CL [1], which separated Java files into common ones and overridable ones. Now that that overriding concept is no longer used, there is no need to keep having separate directory structure. [1]: Ic734bd4d20aa050c688a3158b1a382ae0ac18991 fb74ab15c1343084740d65ef8744cad33a678e82 Fix: 79323502 Test: make -j aosp_taimen-userdebug && make -j Test: tapas LatinIME && make -j Change-Id: I2090bc25d18e6d4f24e91c2cbfe832755cbb4e8f Yohei Yukawa2018-05-0620-0/+940
|/
* Introduce a custom intent action to close software keyboard•••This CL introduces a custom intent action for apps to ask AOSP Keyboard to close its software keyboard with guarding it with a signature-protected permission. Any app that is signed with the same signature as AOSP Keyboard can have the following line in AndroidManifest.xml <uses-permission android:name="com.android.inputmethod.latin.HIDE_SOFT_INPUT"/> to request AOSP Keyboard to close its software keyboard as follows. sendBroadcast(new Intent("com.android.inputmethod.latin.HIDE_SOFT_INPUT") .setPackage("com.android.inputmethod.latin")); Test: Manually verified with a test app. Fixes: 65270710 Change-Id: I4fd2e3a7336ec66c70582a2f274a200cbf035a7f Yohei Yukawa2017-09-011-0/+37
* Follow class package change: LocaleList am: 156139edd8 am: 03a540cc3a•••am: 947cc7d7cd * commit '947cc7d7cd32417c016ef474889ed93114395c4e': Follow class package change: LocaleList Change-Id: I7e665d609267182bcfcf11e3fb309dbe9d02c830 Yohei Yukawa2016-05-181-1/+1
|\
| * Follow class package change: LocaleList•••In order to avoid layering violation, LocaleList needs to be moved from android.util package to android.os package [1]. This CL follows up that package change. No behavior change is intended. [1]: Ia8de2ee9df3dd0a42b1fe84574439519b680fe18 Bug: 28819696 Change-Id: Ie795c191e299358c7c463693823f309ce61cc985 Yohei Yukawa2016-05-171-1/+1
* | Calling getClass on a class will return Class.class.•••Bug introduced in 5ac4638f999db4fea8a9e24171dbceb640a10858. Bug found by error prone: Bug: 27723540 Change-Id: I4325f3bc1f1186bd24d4b0074f0c573cc5cb4e31 Ian Rogers2016-05-091-2/+2
|/
* Start full screen mode on first tap when HW keyborad is connected.•••LatinIME checks hardware keyboard presence and software keyboard visibility to decide whether to start full screen mode. This doesn't work well with the recent update on "Show input method" (Bug: 22517687, Id4d332e3909590c68345e). On the first tap, software keyboard is not shown and hardware keyboard is connected; so full screen mode is not started. However, onEvaluateInputViewShown may return true ant software keyboard may be brought up. In this care, on the second tap, software keyboard is visible so full screen mode will be started regardless of hardware keyboard presence. This CL checks onEvaluateInputViewShown to decide whether to start full screen mode. Bug: 27234709 Change-Id: I587262cc36e5fccc59620b4bd2d2c3c05c72232f Keisuke Kuroyanagi2016-03-151-1/+1
* Map "sr-Latn" to "sr_ZZ" for internal use.•••We want to expose Serbian (Latin) layout as "sr-Latn" to the system, while our internal logic may not be ready to deal with "sr-Latn" yet. As a temporary workaround, we remap "sr-Latn" into "sr_ZZ" for our internal use. Bug: 27348943 Change-Id: I93ff0c75b3687bb1b913f451b9eb5f2820beefbc Yohei Yukawa2016-03-041-1/+24
* Revert "Close FileChannels in UpdateHandler#copyFile."•••This reverts commit 3e2670265e17e91c5a8cfff01711f973dccd2a0c. It turns out that the behavior change in libcore was unintentional, and it was already fixed [1]. Let's revert our workaround back to see if the existing code is compatible with N. [1]: Ibacb192abc37870c74a2500d65b94d68f9c2318e 5e7b572c2b494ab86ddd2baca3883a40a6064c1e Bug: 26239281 Change-Id: I6cd2340492d93251231e7ee37c3d4f82c1721293 Yohei Yukawa2016-03-031-10/+2
* Merge "Close FileChannels in UpdateHandler#copyFile." into nyc-devKeisuke Kuroyanagi2016-02-251-2/+10
|\
| * Close FileChannels in UpdateHandler#copyFile.•••Bug: 26239281 Change-Id: Ib30beb3548f8fb4a8e338b5da863ae28c252bc2b Keisuke Kuroyanagi2016-02-241-2/+10
* | Fix runtime crash on KitKat and prior.•••This is a follow up CL to the previous CL [1], in which we started calling Window#setNavigationBarColor(int) when the window visibility is changed. One thing we missed is that calling Window#setNavigationBarColor(int) on KitKant or prior devices would result in a runtime crash. Hence with this CL we do not call that method unless the OS version is N or leter, because specifying Color.TRANSPARENT would make sense on N+ devices. [1]: I14d9490e00caa852035a05830e76114cbe6af8f2 6c04339c5aadb5118b0e0a8178b3d569956bbad7 Bug: 22564251 Bug: 27302540 Change-Id: Ib7299dd8c3dad4271f8fac453e690c83bda4a954 Yohei Yukawa2016-02-221-2/+8
|/
* Follow API removal of LocaleList#getPrimary().•••This follows up to a recent CL [1] that removed #getPrimary() method from LocaleList class. [1] I75f77aea6b75e38793ed8477e5e5a4420d5e6d85 fee44846376c212114223fc4259382921e6dca7a Bug: 26984092 Change-Id: Ied4678d35c4dcb380ce24e9bce9336dbbf6c16b8 Yohei Yukawa2016-02-092-5/+14
* Suppress redundant TYPE_WINDOWS_STATE_CHANGED.•••Bug: 23975618 Change-Id: I5933beaa5b28404f85e100461bdeab5496eb3c0e Yohei Yukawa2016-02-021-1/+3
* Experimental automatic language switching support.•••With this CL, LatinIME switches the current subtype from its enabled subtypes based on the first locale in EditorInfo#hintLocales. This functionality is still experimental, and will be triggered only when EditorInfo#hintLocales is specified by the application. Bug: 22859862 Change-Id: Ibd0559b370d8aa0d50d1bada8ecfdac0ed8db898 Yohei Yukawa2016-01-222-1/+70
* Support EditorInfo#hintLocales in compat library.•••This CL updates LatinIME's compatibility library so that we can access EditorInfo#hintLocales without directly depending on unreleased SDK. Bug: 22859862 Change-Id: I4ba7d294bc314002c3abf8842f097a4249783364 Yohei Yukawa2016-01-222-0/+48
* Use "languageTag" in RichInputMethodSubtype.•••With this CL, RichInputMethodSubtype#getLocale() starts returning a Locale object that is initialized with "languageTag" when it is specified. No behavior change is intended when "languageTag" attribute is not available or specified. Bug: 22858221 Change-Id: I23f2e479b8e284ce589c6950b071ba84c5dd8ce1 Yohei Yukawa2016-01-212-1/+19
* Merge "Hide settings-key until the device is unlocked."Yohei Yukawa2016-01-072-0/+91
|\
| * Hide settings-key until the device is unlocked.•••Starting in N, we are going to have new APIs to officially support the situation where apps need to run before the user has unlocked their device for the first time. For IME developers those APIs would be important not only because IMEs developers may want to support other apps that support that feature but also because IMEs developers have already needed to pay attention to the same situation where the IME is running so that the user can enter the initial password (e.g. for an encrypted device). Bug 11270326 is a perfect example of this scenario. Now we can disable settings-key until the device is unlocked by using the new API when running in Android N devices. Bug: 11270326 Change-Id: Ie1c6efa63b60b91430f1a78dde624d0f3dff3c69 Yohei Yukawa2016-01-072-0/+91
* | Merge remote-tracking branch 'goog/mnc-dr-ryu-dev'David Riley2015-12-213-99/+172
|\ \ | |/ |/|
| * Check if last shown Emoji category ID is still valid•••When upgrading to a new version of APK we may find that the stored Emoji category ID is no longer applicable. For example it happened when we brought in the new Unicode 8.0 Emojis. Also restore the "Symbols" emoji category on pre-kitkat devices which was accidentally dropped when bringing in Unicode 8.0 Emojis. b/25972978 Change-Id: I91c044603b0aac8757cb8597d3af995f84b822f3 Dmitry Torokhov2015-12-081-2/+18
| * Unicode 8.0 emoji additions to Google Keyboard.•••am: 7674a65367 * commit '7674a653678b542d795b0bd05c241654ffe1015a': Unicode 8.0 emoji additions to Google Keyboard. Chieu Nguyen2015-11-112-19/+135
| |\
| * \ Revert "Unicode 8.0 emoji changes to Google Keyboard."•••am: e1d5012683 * commit 'e1d501268396e58bfdd37a0a50dfeb2ac48139a8': Revert "Unicode 8.0 emoji changes to Google Keyboard." Ian Pedowitz2015-11-102-140/+19
| |\ \
| * \ \ Unicode 8.0 emoji changes to Google Keyboard.•••am: 9cc42549d1 * commit '9cc42549d18f1e28ffc8dae94ff36728933f53f1': Unicode 8.0 emoji changes to Google Keyboard. Chieu Nguyen2015-11-092-19/+140
| |\ \ \
| * | | | Fix AltR+1 -> ESC shortcuts bringing on-screen keyboard•••Change the way we decide whether we want to show on-screen keyboard by not only paying attention to modifiers, but also keeping track whether the key sequence started in the right state. We are still misfiring if user presses a non-modifier key and then our modifier hot-key, but such sequence is unlikely. Given the fact that we do not want to store too much state I believe this deficiency is acceptable. Bug: 25087681 Bug: 24142161 Change-Id: I1a6b5e8e903c27a87134a6c9a7cd474a0607d5c8 (cherry picked from commit 7c513455918a52bd28c1c8181cb2880db0973b4b) Dmitry Torokhov2015-11-032-97/+154