Skip to content
Snippets Groups Projects
  1. Feb 20, 2014
    • Jean Chalard's avatar
      Change a heuristic and add a log. · 3b4c1d30
      Jean Chalard authored
      The heuristic in RichInputConnection makes little sense
      when textLength > mExpectedSelStart but we have
      more than 1024 characters of text. If there are that many,
      it's about 100% sure that 1024 is not the correct cursor
      position. With no good guess, we'll just continue trusting
      the app, even though we know it's lying : at least it will
      make the problem visible to the app author.
      
      Also, there have been a lot of confusion about initialSelStart
      and initialSelEnd. The keyboard should log them so that
      it helps us and editor authors debug more easily these
      common problems.
      
      Issue #65170 in AOSP and
      Bug: 12772035
      Change-Id: I6665a16c9f2832d33ee323f033bb38bcc092a3b4
      3b4c1d30
    • Jean Chalard's avatar
      Don't distrust the cursor pos so much as to bug on IPC delay · 3c84eb88
      Jean Chalard authored
      When the cursor is moved by the user, the RichInputConnection
      is told about it. However, to work around a framework bug, it
      also looks at how many characters are in the buffer before the
      cursor, and if that's more than the value it's been passed, it
      deduces that's a framework bug and there are at least as many
      characters as seen before the cursor, so it puts the expected
      cursor position there.
      
      When you move the cursor, TextView calls onUpdateSelection,
      and when you move it fast, you'll get rapid-fire calls to
      onUpdateSelection. This is fine, the RIC is equipped to
      deal with that.
      
      However, these calls take some time to make it to the IME. In
      this instance, when the first call gets through and the IME
      calls TextView (synchronously) for text before the cursor, the
      cursor has already moved in the app, and TextView returns more
      characters than the cursor position was declared to be in this
      instance, so the RIC sets that as the expected cursor position.
      Sure enough, a split second later, the second call to
      onUpdateSelection arrives, with the new cursor position set
      where the RIC had found it too early. The RIC takes that as an
      "expected" cursor move, and the input does not get reset.
      
      Luckily, we have a way out. As far as we know, the framework bug
      only manifests itself upon rotation, which means we should only
      have to adjust for it in onStartInputView. Doing it in
      onUpdateSelection is too zealous (and probably too distrustful of
      the app to send the correct cursor positions).
      
      So we should just take care of the rotation case (by calling
      tryFixLyingCursorPosition in onStartInputView) and remove the
      compensating code in resetCachesUponCursorMoves.
      
      Bug: 12982502
      Change-Id: Ic3c1408a1ec45deaea63b01d98376a79ae567d77
      3c84eb88
    • Jean Chalard's avatar
      Comments improvements · be8ad77e
      Jean Chalard authored
      Typo fixes and clarifications
      
      Change-Id: I0f7e0b6e665232bb995172fff10521c7f17599eb
      be8ad77e
  2. Feb 18, 2014
    • Jean Chalard's avatar
      Fix a bug where the cache would be out of sync · fe92c174
      Jean Chalard authored
      During recorrection, the cursor position when calling
      commitText is not necessarily at the end of the
      composing text.
      Besides, RichInputConnection assumes the cursor is
      always after any composing text. This is not correct,
      but in the practice, it seems all code paths work.
      We should fix this in the future.
      
      Bug: 13060691
      Change-Id: I15f71fff62d36e80cf6e4a022c5e78af634b199d
      fe92c174
  3. Feb 17, 2014
  4. Jan 27, 2014
  5. Jan 20, 2014
  6. Jan 17, 2014
  7. Jan 10, 2014
    • Jean Chalard's avatar
      [IL54] Add a mirror method to fix the cursor pos estimate · ecf46df2
      Jean Chalard authored
      This just mirrors what InputLogic#tryFixLyingCursorPosition
      is doing. That method will go away in the next change.
      
      Change-Id: Ifa2827dbc1f1d20e2c642d6f2d23514a01ed9203
      ecf46df2
    • Jean Chalard's avatar
      [IL53] Fix a wrong test. · 6fbe83be
      Jean Chalard authored
      This test was intended only for cases without a selection, and as
      a safety net for cases where the app would pretend the cursor
      is at N but we can get P chars from the editor where P > N.
      
      When there is a selection, this is wrong. In the practice it works
      because these values are not used in this case, but it's still wrong.
      
      The case where P > N is arguable, but actually I see little reason
      to trust the getTextBeforeCursor() method more than the
      onUpdate selection method. Plus in the practice, I don't think
      we are aware of any app with this bug, and it's probably not a
      great idea to be too robust about this as it may encourage wrong
      values sent to onUpdateSelection.
      
      Change-Id: I42f2065d7aee668074e6b8e40b259da7e88e16e1
      6fbe83be
  8. Jan 09, 2014
  9. Jan 08, 2014
    • Jean Chalard's avatar
      Fix a race condition, take 2. · e5cdcaff
      Jean Chalard authored
      Don't use absolute cursor positions when making edits,
      this leads to race conditions.
      This is a bit ugly and will need to be fixed soon. Plans are
      underway to clean this up.
      
      Bug: 12390573
      Change-Id: I69c09fc41b979880d0800c55a710e39373287cff
      e5cdcaff
    • Jean Chalard's avatar
      Revert "Fix a race condition, take 2." · a247264d
      Jean Chalard authored
      Conflicts prevent this to be cherry-picked.
      
      This reverts commit dd3d697a.
      
      Change-Id: Ib97fae2234633b4bb27d611f48a79060db9ab16f
      a247264d
    • Jean Chalard's avatar
      Fix a race condition, take 2. · dd3d697a
      Jean Chalard authored
      Don't use absolute cursor positions when making edits,
      this leads to race conditions.
      This is a bit ugly and will need to be fixed soon. Plans are
      underway to clean this up.
      
      Bug: 12390573
      Change-Id: Ib42d4149343c642b1b5c1937b424e8afdbd4cc1f
      dd3d697a
  10. Dec 27, 2013
    • Jean Chalard's avatar
      [IL52] Remove a useless method. · 1e50c681
      Jean Chalard authored
      This old method doesn't even re-read the old suggestions. It used to
      recompute them without the coordinates.
      Re-using the recorrection code, which is much more advanced, is
      the right thing to do here.
      
      Also, refining the test. It's no use trying to resume suggestion
      if we don't have a suggestion strip, since we aren't going to
      auto-correct anything anyway.
      
      Not the motivation for this change, but this also fixes
      Bug: 11620256
      Change-Id: Id49efa32e293c49837c61fdc752c86bbac1d2c88
      1e50c681
  11. Dec 13, 2013
    • Ken Wakasa's avatar
      Reset to 9bd6dac4 · 2fa3693c
      Ken Wakasa authored
      The bulk merge from -bayo to klp-dev should not have been merged to master.
      
      Change-Id: I527a03a76f5247e4939a672f27c314dc11cbb854
      2fa3693c
  12. Nov 28, 2013
    • Jean Chalard's avatar
      Fix getNthPreviousWord. · da459787
      Jean Chalard authored
      This should take into accounts word connectors.
      
      Change-Id: Ic7fa5c837cd65a43ba43d7ae9d299b8d20019892
      da459787
  13. Nov 27, 2013
  14. Nov 25, 2013
  15. Nov 16, 2013
  16. Nov 14, 2013
  17. Nov 13, 2013
    • Jean Chalard's avatar
      Fix many small nits. · 3a9b2430
      Jean Chalard authored
      ...the interaction of which results in a very bad bug.
      
      Bug: 11648854
      Change-Id: I774489e384388f187e72b9ac091ab387c5e1a79a
      3a9b2430
    • Jean Chalard's avatar
      Fix many small nits. · 5a0bc6ac
      Jean Chalard authored
      ...the interaction of which results in a very bad bug.
      
      Bug: 11648854
      Change-Id: I774489e384388f187e72b9ac091ab387c5e1a79a
      5a0bc6ac
  18. Nov 07, 2013
  19. Oct 22, 2013
    • Jean Chalard's avatar
      Stopgap solution for a crash. · 8a167537
      Jean Chalard authored
      This returns the wrong string, but since it's used for getting the
      previous word for bigrams, it only results in slightly worse
      suggestions quality.
      
      Bug: 11273655
      Change-Id: I6ce5de2f76effc453ca691a654ab6bf17445b9e7
      8a167537
    • Jean Chalard's avatar
      Stopgap solution for a crash. · 1875860d
      Jean Chalard authored
      This returns the wrong string, but since it's used for getting the
      previous word for bigrams, it only results in slightly worse
      suggestions quality.
      Cherry-pick of I6ce5de2f
      
      Bug: 11273655
      Change-Id: I17fb6d74f18fb31bd8f8518f80456d74ae30a2c3
      1875860d
    • Jean Chalard's avatar
      Stopgap solution for a crash. · 729abe63
      Jean Chalard authored
      This returns the wrong string, but since it's used for getting the
      previous word for bigrams, it only results in slightly worse
      suggestions quality.
      
      Bug: 11273655
      Change-Id: I6ce5de2f76effc453ca691a654ab6bf17445b9e7
      729abe63
  20. Oct 08, 2013
  21. Sep 25, 2013
  22. Sep 24, 2013
    • Jean Chalard's avatar
      Copy only the spans we are interested in. · 3d68b066
      Jean Chalard authored
      The PARAGRAPH type of span is dangerous, as concatenating
      CharSequences that contain it may crash. We also don't use
      other spans than SuggestionSpans, so we don't copy them.
      
      Bug: 10622489
      Change-Id: If4e44eca3cdc5bb02cf2e0c8c44ecd4bf27fae57
      3d68b066
  23. Sep 20, 2013
  24. Aug 22, 2013
    • Kurt Partridge's avatar
      Fix cursor state bug · 6c94a18a
      Kurt Partridge authored
      InputConnection#finishComposingText() should not change the position of the cursor,
      so neither should it change its internal expectation of the cursor's position.
      
      Change-Id: Ib3d39a5743cd1e8e356f438b04a5c30279430b2a
      6c94a18a
  25. Aug 08, 2013
  26. Jul 31, 2013
  27. Jul 26, 2013
Loading