Skip to content
Snippets Groups Projects
  1. Aug 22, 2023
  2. Aug 19, 2023
  3. Aug 18, 2023
  4. Aug 15, 2023
  5. Aug 14, 2023
  6. Jul 06, 2023
  7. Oct 17, 2022
    • Cole Faust's avatar
      Fix errorprone warnings that should be errors · 91cb9a6a
      Cole Faust authored
      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
      91cb9a6a
  8. Aug 16, 2022
    • Cole Faust's avatar
      Fix array-related errorprone warnings · 7ad99e34
      Cole Faust authored
      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
      7ad99e34
  9. Feb 23, 2022
    • Wilson Wu's avatar
      Remove unused method for dictionarypack · 0d93961d
      Wilson Wu authored
      Remove the showDictionaryAvailableNotification
      method since there is no module use it.
      
      Bug: 209479751
      Test: presubmit
      Change-Id: I4c88b4a2d0cb36761d9102ce35260f93303625d9
      0d93961d
  10. Jan 17, 2022
  11. Jan 12, 2022
    • Ming-Shin Lu's avatar
      Using IME context to inflate layout from S_V2 · 6c752d8e
      Ming-Shin Lu authored
      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
      6c752d8e
  12. Jun 18, 2021
    • Ming-Shin Lu's avatar
      Fix Keyboard Theme update when device orientation changed · 6ae09365
      Ming-Shin Lu authored
      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
      6ae09365
  13. May 28, 2021
    • Ming-Shin Lu's avatar
      Fix Keyboard Theme update when device orientation changed · 407f8a32
      Ming-Shin Lu authored
      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
      407f8a32
  14. Aug 12, 2020
  15. Jul 31, 2020
  16. Jul 22, 2020
  17. Sep 17, 2019
    • ryanlwlin's avatar
      Implement text entry key API for accessibility services in AOSP Keyboard · 389e849a
      ryanlwlin authored
      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
      389e849a
  18. Sep 11, 2019
    • lumark's avatar
      Create display context when switching IME to new display for AOSP IME · 87f14f1e
      lumark authored
      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
      87f14f1e
  19. Jul 09, 2019
    • lumark's avatar
      Create display context when switching IME to new display for AOSP IME · 4d464ec0
      lumark authored
      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
      4d464ec0
  20. Jul 05, 2019
    • lumark's avatar
      Remove extend touchable region for AOSP keyboard · b4360e65
      lumark authored
      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
      b4360e65
  21. May 04, 2019
    • Yohei Yukawa's avatar
      Launch AOSP Keyboard Settings on the same display · d7628414
      Yohei Yukawa authored
      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
      d7628414
  22. Oct 29, 2018
    • Tadashi G. Takaoka's avatar
      Fix dicttool build · 6a1b3735
      Tadashi G. Takaoka authored
      This CL partially reverts
        - Id88b02b74bdfe4ca05b08181ceb6b34d5652fc0c
        - I05c7d8429e8d9a26139456763c77997340fea8c2
      And followup (remove shortcut support)
        - I73b7dc008a5acaf75a31a36a2d332b5afabd82d0
      
      Bug: 28255684
      Test: make -j10 dicttool_aosp
      Change-Id: I2e01ed86b9517a1141aee35ea6d8ef39258981d1
      6a1b3735
  23. Jul 05, 2018
    • Yohei Yukawa's avatar
      Remove unused class PersonalDictionaryLookup · 28022504
      Yohei Yukawa authored
      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
      28022504
  24. Jun 24, 2018
    • Yohei Yukawa's avatar
      Merge inputmethodcommon into LatinIME repo · 733a0ea4
      Yohei Yukawa authored
      This is a preparation to deprecate frameworks/opt/inputmethodcommon
      repository.
      
      Currently repository 'inputmethodcommon' is used only from LatinIME.
      Having such a repository only for one project is overkill.  Also, to
      add gradle build support to LatinIME project, it would be much easier
      LatinIME didn't have such a dependency.
      
      This CL mechanically copies files in 'inputmethodcommon' repository to
      'LatinIME' repository.  In theory there should be no behavior change.
      
      Bug: 110741521
      Test: tapas LatinIME && make -j
      Change-Id: I3fabb038be9a944dcd9ef79ffcc89800a5f0bf5a
      733a0ea4
  25. May 15, 2018
  26. May 07, 2018
    • Yohei Yukawa's avatar
      Merge java-overridable/ into java/ again · 7a2459ca
      Yohei Yukawa authored
      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
            fb74ab15
      
      Fix: 79323502
      Test: make -j aosp_taimen-userdebug && make -j
      Test: tapas LatinIME && make -j
      Change-Id: I2090bc25d18e6d4f24e91c2cbfe832755cbb4e8f
      7a2459ca
  27. Sep 01, 2017
    • Yohei Yukawa's avatar
      Introduce a custom intent action to close software keyboard · fdfc55d3
      Yohei Yukawa authored
      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
      fdfc55d3
  28. May 17, 2016
    • Yohei Yukawa's avatar
      Follow class package change: LocaleList · 156139ed
      Yohei Yukawa authored
      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
      156139ed
  29. May 10, 2016
  30. Mar 15, 2016
    • Keisuke Kuroyanagi's avatar
      Start full screen mode on first tap when HW keyborad is connected. · 48adccf3
      Keisuke Kuroyanagi authored
      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
      48adccf3
Loading