aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/org/kelar/inputmethod/latin/DictionaryFacilitatorLruCache.java (unfollow)
Commit message (Expand)AuthorFilesLines
2025-01-11Support Direct Boot modeAmin Bandali25-30/+854
2025-01-11Use new app iconAmin Bandali21-2/+31
2025-01-11Set pref_show_setup_wizard_icon's defaultValue to trueAmin Bandali1-0/+1
2025-01-11Rename to Kelar Keyboard (org.kelar.inputmethod.latin)Amin Bandali1138-3288/+3269
2025-01-11Initial successful standalone buildAmin Bandali38-24/+1109
2025-01-08Explicitly keep default constructor in rules without members•••R8 implicitly keeps the default constructor when no member rules are specified. Future versions of R8 will require apps to explicitly keep the default constructors that are required for the build to work. This conservatively changes all keep rules that currently keep the default constructor to explicitly keep the default constructor. Future work will attempt to tighten up the rules that do not require the default constructor to be kept. Bug: 373579455 Test: existing Change-Id: Idbadcd81d516f851cc9bfa1333d76f1036803291 Christoffer Adamsen1-7/+28
2024-12-11Fix 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 Chen1-0/+3
2024-11-26Fix 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 Chen5-9/+28
2024-10-07Fully 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 Duffin7-99/+99
2024-10-03Use jni_libs to install shared library dependency•••`jni_libs` is more specific than `required`, and allows Soong to be more restrictive when creating the dependency edge from the java_binary to the cc_library. Bug: 370110572 Test: m installclean && m dicttool_aosp Test: verified that libjni_latinime gets installed in out/host/linux-x86/lib64 Change-Id: I49bde551c65e344c566decffc7f447fc4813f70b Spandan Das1-1/+1
2024-06-19LatinIME: 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> techyminati1-1/+7
2024-06-06Removed a few slurs from German word list.•••Bug: 342214572. Test: Flashed on device. Change-Id: Ice09a7ad54167e68cd2dc892692fc49a0afbabc1 Ruihao Huang1-0/+0
2024-06-03Use the global default cpp_std.•••Bug: http://b/344590580 Change-Id: Icf1f9f5559596097e156aa9f1673a438741379b3 Elliott Hughes2-4/+3
2024-05-09Update the imports to androidx.test.filters.*•••Bug: 316941721 Test: mmma . Change-Id: I131993b35a6e350c9237f9d8422c3a274988bbfb Fangqiu Su1-3/+0
2024-04-18Update the imports to androidx.test.filters.*•••Bug: 316941721 Test: mmma . Change-Id: I05a7d05dc8d0acb9baecf46357757ad2453f6dbc Fangqiu Su140-143/+174
2024-01-10Baseline NewApi issues•••NewApi is a lint check that you don't call framework methods that were introduced in versions later than your min_sdk_version. We want to make this an error, so we're baselineing all existing issues. This cl was generated automatically, by taking all the NewApi issues from the reference baselines, and all the non-NewApi issues from the existing checked in baselines. Bug: 268261262 Test: Presubmits Change-Id: If1b1214da673fec9f1e8bede86d5780a6b5f347b Cole Faust1-13/+22
2023-12-20List baseline_filename on modules that are implititly using it•••lintable modules currently pick up files named "lint-baseline.xml" to use as the lint baseline implicitly. This is confusing because you could end up using the baseline files in more modules than intended. Lint also has a feature where it requests you remove unnecessary findings from the baseline file, so something could be necessary for one module, but unnecessary for another that accidentally picked up the baseline. We're removing the implicit detection of the baseline file, which requires all modules using it to list the baseline file explicitly. Bug: 272769514 Test: Presubmits Change-Id: Ib640f0642fbb12b96309ce518a505376dda01cb4 Cole Faust1-0/+3
2023-11-15dicttoolkit: pin cpp_std to gnu++17•••This project doesn't build with gnu++20 and prevents AOSP default to be upgraded to a newer standard. Once the build failure is fixed here, this change can be reverted. Bug: 311052584 Test: m checkbuild Change-Id: If2d19c1b6d970703a1dbf7685588a4a4be5a53c1 Tomasz Wasilczyk1-0/+1
2023-08-23Fix erroneous LXX theme text color mappings•••keyTextInactivatedColor and functionalTextColor were wrongly assigned, eventhough correct definitions already exist. Change-Id: I06694447ee22fb609267aa2256a36a2585ad6b3f Georg Veichtlbauer1-2/+2
2023-03-19Remove unused variables•••Since some variables with module LatinIME are defined but not used, when compiled with build combination "sdk_pc_x86_64-userdebug" and build command "mmm packages/inputmethods/LatinIME", the following code lines will be reported that "variable 'XXX' set but not used". (should be similar for all the other build combinations) Repeated 10 times for each: terminal_position_lookup_table.cpp:74:9 removedEntryCount terminal_position_lookup_table.cpp:85:9 removedEntryCount proximity_info_state_utils.cpp:493:9 tempTime trie_map.cpp:56:9 unusedRegionSize suggestion_results.cpp:100:9 index Repeated 80+ times: proximity_info_utils.h:75:25 proximityChar With this patch we are removing some of the unused variables and putting the C++ 17 attribute [[maybe_unused]] to the others which are used for logging. Then all the related build warnings have been eliminated. Test: mmm packages/inputmethods/LatinIME, presubmit check. Change-Id: Ia66766322d6ae8a010b1cb55cc22993fbc6d012c Signed-off-by: Jing Mike <jingyangliu@eswincomputing.com> Jing Mike6-11/+3
2023-03-09Baseline NewApi issues•••NewApi was recently updated to support linting methods in the system, module_lib, and system_server sdks, and was demoted to a warning due to the new issues it finds. Baseline all the new issues that NewApi can be made an error again. These cls were generated automatically by a script that copied the NewApi issues from the reference baselines. Bug: 268261262 Test: m lint-check Change-Id: I99bb901018da30f39cf799ac6c939863266cee34 Cole Faust1-32/+12
2023-03-09Add 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 Groover1-4/+19
2022-12-12Update preparers to align across everything•••Carry the exact same options. Test: presubmit Bug: 261855411 Change-Id: Ic48ffa4fec4ebf2027525476bf346abce3f0a1b0 Julien Desprez1-1/+1
2022-10-17Fix 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 Faust6-6/+7
2022-09-21Declaring package visibility needs for LatinIME•••Bug: 179783492 Bug: 179783499 Bug: 216823971 Test: atest LatinIMETests Change-Id: I309ffefe261049a5d3abce8e16829cd66f9123dc Rhed Jao1-1/+9
2022-08-15Fix 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 Faust1-1/+3
2022-08-10Make DownloadOverMeteredDialog not exported•••The DownloadOverMeteredDialog is exported which may allow a app to prompt this dialog to ask the user to download dictionary. Since the app can control the download dictionary size and may show an incorrect size for user to make security concern. Make the activity not exported for apps to launch. Bug: 236688064 Test: Manual test as follow steps: 1. lunch aosp_bramble-userdebug and flash 2. Verify the AOSP keyboard work properly 3. Launch the PoC test app 4. Verify the DownloadOverMeteredDialog cannot be launched Change-Id: I9be92ba2813e7aaad0ef10555f585c5c8a25361f Wilson Wu1-1/+1
2022-04-21EditTextVariations: create a IME focusable overlay for test•••Bug: 228766370 Test: manual by using EditorTextVariations tool 1) make and install EditTextVariations 2) Enable "Settings > Display over other apps" for EditTextVariations 3) Launch EditTextVariations from all apps 4) Menu -> Show IME focuable overlay 5) Go to home screen by gesture or pressing home key 6) Launch any app (e.g. Chrome) and tap the editor 7) Expect IME can show up Change-Id: Ib4b72e0a277d8b2fb78837bed5d2e9cccd819a07 Ming-Shin Lu3-1/+64
2022-02-23Remove unused method for dictionarypack•••Remove the showDictionaryAvailableNotification method since there is no module use it. Bug: 209479751 Test: presubmit Change-Id: I4c88b4a2d0cb36761d9102ce35260f93303625d9 Wilson Wu1-54/+0
2022-02-10Update OWNERS file•••Fix: 218752122 Test: presubmit Change-Id: Ia4948d81f3f13518428375d635154c58c7fe9628 Yohei Yukawa1-6/+2
2022-01-26Add Notification Permission for T•••From T, apps need POST_NOTIFICATION permission to send the notification. -. Add the permission into Manifest. -. Request runtime permission when it's needed. Bug: 209479751 Test: Manual test as following steps: 1. Open EditTextVariations at T device. 2. Tap direct reply to send notification. 3. Verify the permission dialog show up. 4. Send the notification if permission granted. Change-Id: Iadae00f635ee556d1d1de9abbb9da0498b4070f1 Wilson Wu2-1/+41
2022-01-17Remove 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 Andrade1-2/+1
2022-01-12Using 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 Lu1-19/+37
2021-12-08add post_notification permission to manifest•••so the package can send notifications on T+ Bug: 194833441 Change-Id: Iafb56ebd788f1dcd98320dc6c250ca8f585fcab3 Steve Elliott1-0/+1
2021-06-18Fix 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 Lu1-1/+2
2021-06-15Bump targetSdkVersion to "30"•••With this CL, versionCode, targetSdkVersion and minSdkVersion will be bumped/set as follows: versionCode: 28 -> 30 targetSdkVersion: 28 -> 30 minSdkVersion: 21 As far as we know, there should be no user-visible behavior change on supported OS versions. Fix: 189558760 Test: manually verified that LatinIME still is functional Change-Id: I3a7deb452960b370f5290f3d1bac9c79fe935303 Merged-In: I4bf7588c62fb77bf78d4afcb665e9bfbbef53966 (cherry picked from commit 360052f3044eee612af1cbfcd1f2e202096e3541) Yohei Yukawa4-7/+7
2021-06-14Bump targetSdkVersion to "30"•••With this CL, versionCode, targetSdkVersion and minSdkVersion will be bumped/set as follows: versionCode: 28 -> 30 targetSdkVersion: 28 -> 30 minSdkVersion: 21 As far as we know, there should be no user-visible behavior change on supported OS versions. Fix: 189558760 Test: manually verified that LatinIME still is functional Change-Id: I4bf7588c62fb77bf78d4afcb665e9bfbbef53966 Yohei Yukawa4-7/+7
2021-06-10Make direct-reply notification as HUN in EditTextVariations•••Also, set the content intent to launch an editorActivity as the message notifiation when tapping the notification. Bug: 190057993 Test: make EditTextVariations, manual test by using EditTextVariations app to simulate the issue step. Change-Id: I1a4463dc44031eaebb286ad2a289870e97a1c475 Ming-Shin Lu3-1/+43
2021-05-28Fix 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 Ming-Shin Lu1-1/+2