aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/LatinIME.java (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Rename to Kelar Keyboard (org.kelar.inputmethod.latin)Amin Bandali2025-01-111-2033/+0
|
* Add required flag to receivers in LatinIMEMichael Groover2023-03-091-4/+19
| | | | | | | | | | | | | | | | | | | | 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
* Using IME context to inflate layout from S_V2Ming-Shin Lu2022-01-121-19/+37
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix Keyboard Theme update when device orientation changedMing-Shin Lu2021-06-181-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Create display context when switching IME to new display for AOSP IMElumark2019-07-091-3/+31
| | | | | | | | | | | | | | | | | | | 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
* Merge "Remove extend touchable region for AOSP keyboard"lumark2019-07-051-4/+1
|\ | | | | | | | | | | am: ff1db79a18 Change-Id: Ic162b5e20213a3f1b2aeaf77250bf1d7edc198c5
| * Remove extend touchable region for AOSP keyboardlumark2019-07-051-4/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Launch AOSP Keyboard Settings on the same displayYohei Yukawa2019-05-041-2/+19
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Introduce a custom intent action to close software keyboardYohei Yukawa2017-09-011-0/+37
| | | | | | | | | | | | | | | | | | | | | 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
* Start full screen mode on first tap when HW keyborad is connected.Keisuke Kuroyanagi2016-03-151-1/+1
| | | | | | | | | | | | | | | | | | | | 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
* Fix runtime crash on KitKat and prior.Yohei Yukawa2016-02-221-2/+8
| | | | | | | | | | | | | | | | | | 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
* Experimental automatic language switching support.Yohei Yukawa2016-01-221-1/+29
| | | | | | | | | | | 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
* Merge remote-tracking branch 'goog/mnc-dr-ryu-dev'David Riley2015-12-211-0/+5
|\
| * Fix AltR+1 -> ESC shortcuts bringing on-screen keyboardDmitry Torokhov2015-11-031-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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)
* | Change NavigationBar invisible if the input view is not shown.Seigo Nonaka2015-12-081-0/+13
|/ | | | | | | | | | | | | The opaque navigation bar guard view does not make much sense when the IME does not show software keyboard at all. LatinIME does not show any UI when the hardware keyboard is connected. With Iea77915ecc55eedaf19899e72c44f704ba9d852c, input method can change the navigation bar visibility. This CL changes navigation bar invisible when the hardware keyboard is connected. Bug:22564251 Change-Id: I14d9490e00caa852035a05830e76114cbe6af8f2
* Define shortcuts for toggling IME layouts.Dan Zivkovic2015-10-151-11/+16
| | | | | | | | | | | Out of the box, we want Alt-Left to toggle Emojis, while Alt-Right toggles the shifted symbols layout. Bug: 23954008 Bug: 24369173 Change-Id: I93dd66fb469e5d0a831359ff3a786fe68e1d73ea (cherry picked from commit 411841b374aa04e333ea5a438dfd539f49ec589a)
* [LatinIME] Support MNC permissions.Mohammadinamul Sheik2015-07-151-10/+8
| | | | | | | | | | | | | | | | | | | This build has been compiled against API 23 This build is approved to go out with the M OTA, but may NOT be released to the public until the Play Store has enabled API level 23 apps Version: 4.1.2300x.build_id 1. Replaces the personalization is on information with the suggest contacts. 2. Enables "Use Contacts" only if the app has permission to read contacts. 3. Disables the contacts dictionary in the Facilitator. 4. Do not register/read the contacts in the contact observer. Bug: 22236416 Change-Id: I9674e13d0d0f4a2014c5024fde0178de684c07e7
* Look up thresholds during decoder reset.Dan Zivkovic2015-05-041-1/+1
| | | | | | Bug 20701628. Change-Id: I4de89587776a0859aeda5d2ed76ab1eb4f918458
* Resolve some InputLogic todo comments.Dan Zivkovic2015-03-201-3/+1
| | | | Change-Id: Ic3d7d11ad90cc09edf62f48aa5362e71d692f7dd
* Notify the facilitator on IME start/finish.Dan Zivkovic2015-03-201-0/+3
| | | | | | | | Allows the facilitator to flush language models without a recurring task. Bug 19773937. Change-Id: I01a3c10da26f9df38fee05df33387eb082e2ff33
* Pass DictionaryFacilitator to GestureConsumer#onImeSuggestionsProcessed.David Faden2015-03-191-1/+2
| | | | | Bug: 19712589 Change-Id: I81f9bf09b37487450780d85a1e4f752a9ba49370
* Disable message if personalization is disabled.Chieu Nguyen2015-03-181-1/+1
| | | | | Bug: 19087415. Change-Id: I3974f1b676aa4a9bb04ab7f609b6daf1860c64f1
* Revert "Next-word suggestion bit in keyboard settings."Dan Zivkovic2015-03-161-1/+5
| | | | | | | | This reverts commit 1ae16dc3db170802d1b38273f477125a2a969d32. Bug 19596067. Change-Id: Ie7286acbb70b215d7bd08e271bcf14526b68576f
* Add StatsUtils.onSettingsActivity to collect the settings page stats.Mohammadinamul Sheik2015-03-131-4/+4
| | | | | Bug:19214944 Change-Id: I113f47c49d638790d770fe2781afe7cd1565619d
* Remove ALS from LatinIME.Dan Zivkovic2015-03-111-27/+26
| | | | | | This fixes unit tests and brings us closer to a green build. Change-Id: Iffcc392eda4a7671a238b79cc7367320ca648725
* Remove deprecated distractor filtering methods.Dan Zivkovic2015-03-111-9/+1
| | | | Change-Id: I10ccf75d9c00d66b4e85de6c3c019242f2e90b0e
* Delete user history files.Dan Zivkovic2015-03-111-3/+2
| | | | | | Bug 19669016. Change-Id: I8069fe561347851bf3c27423dbd8ba99d38c049e
* Log from LatinIME.Dan Zivkovic2015-03-061-6/+4
| | | | | | | | | When the DEBUG setting is on, log from this critical class. This will make it easier to diagnose issues. Bug 19632709. Change-Id: I5e14b3705f50cd021ad3d64af106ad28dc8b9321
* Next-word suggestion bit in keyboard settings.Dan Zivkovic2015-03-041-5/+1
| | | | | | | | | This feature works in supported languages. We don't need a user setting. Bug 19596067. Change-Id: Icdded772745f9816da47f8a5e3b87b733083b121
* Add DictionaryFacilitator dump().Chieu Nguyen2015-03-031-0/+1
| | | | Change-Id: I8b75aded3fc2b9b33128b6ba5a3e8d943dfca352
* Move dictionary facilitator handling.Chieu Nguyen2015-03-021-3/+2
| | | | Change-Id: Ibd42982996a36ac52b4c916035491b835f8d14f9
* Ignore the Emoji key when not connected.Dan Zivkovic2015-02-261-1/+1
| | | | | | | | | When the LatinIME does not have an active InputConnection, it will not try to toggle the Emoji keyboard. Bug 19513415. Change-Id: I31f928cd7db1cddd771c548cd3dc42f8af64d0e2
* Merge "Share decoders among latinime components."Jatin Matani2015-02-261-1/+2
|\
| * Share decoders among latinime components.Jatin Matani2015-02-251-1/+2
| | | | | | | | Change-Id: I6c8d3cf10e05e606308cea42d1e935a415ada9f8
* | Stop waking up to decay dynamic dictionaries.Dan Zivkovic2015-02-251-3/+0
| | | | | | | | | | | | Bug 19516048. Change-Id: Ibc27a792b4fa80fa8c6af4721c47a617526e9584
* | Use Keyboard in several interfaces.Mario Tanev2015-02-251-3/+2
|/ | | | | | | | | Simplify interfaces by passing Keyboard instead of KeyboardLayout and ProximityInfo directly. Also require the Keyboard passed be non-null and change the SpellChecker to bail out if there is no keyboard for the locale. Change-Id: I960f15ff60171f55d3e0a96fd6469b7dc3a045e2
* Merge "Add StatsUtils method for handling subtype change."Chieu Nguyen2015-02-231-0/+2
|\
| * Add StatsUtils method for handling subtype change.Chieu Nguyen2015-02-181-0/+2
| | | | | | | | Change-Id: I0f334ab5e6f5aa41ad780641276dc3d2aa232f48
* | Rename in preparation of caching an instance.Dan Zivkovic2015-02-191-1/+1
|/ | | | Change-Id: I112c957e20d4573daaa71aa218b575037585385c
* Remove shortcut support from LatinIME.Dan Zivkovic2015-02-111-5/+0
| | | | | | Note this change does not affect the native decoder interface. Change-Id: I73b7dc008a5acaf75a31a36a2d332b5afabd82d0
* Remove distracter filter from client.Dan Zivkovic2015-02-091-3/+1
| | | | | | Bug 19296201. Change-Id: Ic834e5956347cd86a96bd14024c42ad8ee258659
* Cleanup in preparation of distracter change.Dan Zivkovic2015-02-061-4/+4
| | | | | | Bug 19296201. Change-Id: If016da2b7f4b3ecb9afd6d7aed9d19fbd4938758
* AOSP changes to use KeyboardLayout to support the new DictionaryFacilitatorMohammadinamul Sheik2015-02-041-1/+2
| | | | Change-Id: Ie0c9ce805d9ad009fc9bbaac37b715aff90cd844
* LatinIME portion of "green plus" feature.Dan Zivkovic2015-02-031-107/+0
| | | | | | | | | Removes the feature that adds strings to the user dictionary, aka the "green highlight with a plus sign". Bug 19237189. Change-Id: I2387129a3add2d69d625f2ff16ed8cab3f10a735
* Nuke AmanattoJatin Matani2015-02-021-22/+2
| | | | Change-Id: Ieff2cd37f869dca69abf53ac32a576c2e45cc1e3
* Change DictionaryFacilitator.java to an interface, create itsMario Tanev2015-01-271-2/+2
| | | | | | | | implementation DictionaryFacilitatorImpl.java and add a java-overridable factory DictionaryFacilitatorProvider.java used to create a DictionaryFacilitator. Change-Id: Id4a58ae31feaa4d12a048a772c8d76ff82fdee45
* [3]Ping dictionary stats:Pass DictionaryFacilitatorJatin Matani2014-12-181-1/+2
| | | | | | | | Pass dictionaryFacilitator to StatsUtilsManager from LatinIME Bug:16553957 Change-Id: I912a0b447e5684909ff67e3653a4bd8649cd03c5
* Merge "[2]Pass context to StatsUtilsManager for alarms."Jatin Matani2014-12-181-2/+2
|\
| * [2]Pass context to StatsUtilsManager for alarms.Jatin Matani2014-12-171-2/+2
| | | | | | | | | | | | | | | | Change corresponding to ag/605384 Bug:16553957 Change-Id: I77024957b9497c45296bbbb24ca972b26348a8c3
* | Merge "Remove SubtypeSwitcher"Tadashi G. Takaoka2014-12-171-9/+0
|\ \ | |/ |/|