Now that separators are put into their own LogUnits, they must be handled
when going through a revert.
Bug: 9088919
Change-Id: Ibebd0752bb2fa38d74ac96001d63070dd419cee3
A LogUnit is only uncommitted if the LogUnit's word matches what is
expected. But a LogUnit never stores numbers, only scrubbed words that
replace numbers with a special character. So when uncommitting, the
text from the TextView must also be scrubbed for the comparison to pass
correctly.
Bug: 9088919
Change-Id: I9b56f10afce6d0cc84eb9ead3b9a9b1e061ae39c
Now that separators have their own LogUnits, they must be uncommitted
from the LogBuffer when backspacing over them.
Bug: 9088919
Change-Id: Ib36cc94939b93abe18850a06bced17caf8aaa5b9
The period-generating double-space adds an extra LogUnit --
it must be removed when reverting.
Bug: 9088919
Change-Id: Ic148f40b4030a9b4a0651029bda87f7b94a52252
Currently when the user reverts a batch input, a LogUnit is uncommitted
from the LogBuffer. It should not be, because the LogUnit containing the
batch input is never committed in the first place (it is only committed
to the LogBuffer when a key is pressed or a new batch input is entered).
Bug: 9088919
Change-Id: I323af453ce082437a663ccae977b21b775a964bc
It turns out giving them in the right order is not enough, you
also have to actually give them a numeric priority.
Bug: 9165928
Change-Id: I2ecff38f65b70746feeeeb0ed2cc86a586a35363
This should be done in onFinishInput rather than onFinishInputView
but for an unknown reason onFinishInput never comes.
Bug: 9113167
Change-Id: Iafb40846a3ed8fad78bfc160d17cd431f81fe891
The default implementation for preferences refuses to
cache the views for custom preferences at all. We can
do it, but the system won't do it for us, so this does it.
This makes the screen scrolling smooth again.
Incidentally it also fixes the bug where the button may
not animate on the first element.
Bug: 8882722
Bug: 8883108
Change-Id: I9b2306ac4bf93761a808ebfee3477a65f017cddf
This change renames containsCorrection to avoid confusion with
CorrectionInfo, and to better clarify its meaning.
Change-Id: I5d8f8e2b03133c15a60d4e8b0f395cda1fff5447
Word boundaries are currently logged, but only if all the
details of a word pass the privacy filter and are logged.
This change records when a word is committed in all cases,
but does not disclose the word contents or any data used in
its construction.
Addresses b/9070768
Change-Id: I573679d0685c088aca65af99e46337a2f429f816
Currently isAllowedToLog only checks the state of the
ResearchLogger, and does not consider which log the data is
going to. This causes problems with the logs for Feedback.
The Feedback log should inhibit normal logging procedures,
but the system needs to be able to write specific data
directly to it.
This change renames to isAllowedToLogTo and adds the
destination ResearchLog as a parameter. A FeedbackLog is also
added as a new class so it can be distinguished from other
ResearchLogs.
Change-Id: I5a1eea05bb040c26bf816b89179f44b3024fa2ad
Punctuation is currently put into the same LogUnit as the
following word. This is counter-intuitive and makes
post-processing more complicated.
This change causes punctuation to be put into its own
LogUnit.
A tricky case is the phantom space. A phantom space is
inserted right before other text, whose MotionEvents have
already been collected and inserted into mCurrentLogBuffer.
Phantom spaces are handled by creating their own LogUnit and
inserting it into the LogBuffer right before
mCurrentLogBuffer is shifted in.
Change-Id: I102d7cd93982ad37ba0abb6c1ac0f66b85b5f95d
When the user reverts a commit, this causes the committed
word to be changed. The user usually then goes back to edit
that word. Going back to edit causes an uncommit, so that
the editing actions are added onto the LogUnit containing
the operations used to construct the word.
But currently, reverting also involves its own
commit/uncommit pair, with the caller performing the
uncommit, and the commit happening inside the revert
command. This may have been necessary in the past, when
revert was called in different situations, but is
unnecessary now. Furthermore, the guarding conditions are
currently such that the uncommit doesn't always undo the
effects of the commit, corrupting the log output.
Change-Id: I74af41f4f1db2fcabfa496dcc4a2d7bd0af19b3a
For a while, the ResearchLogger supported comprehensive recording of the
last few words in case the user wished to upload this data to give
developers feedback. However, this mechanism was not implemented well
(keeping a separate copy of the data), did not make the collected data
clear to the user, and was not working properly in the latest build (NPEs).
The mechanism in fact was deprecated in favor of the "userRecording"
mechanism in which the user explicitly turned on comprehensive recording,
demonstrated the issue they were experiencing, and then turned it off.
This change removes the vestiges of the FeedbackLogging mechanism.
A feedback log is still used to hold the user's message, but it is created
in a local variable as-needed, and not persisted in ResearchLogger.
Change-Id: I6a09d0ed36e1eddb6e57895e7428d22107f75f49
The IS_INHIBITING_AUTO_UPLOAD flag is tested in isPossibleToUpload, so it inhibits all uploads, not
just automatic ones. Renaming to IS_INHIBITING_UPLOAD.
Change-Id: Iceed79260d4b062147f40c09f0c5bb06b2519b1b
This change registers the functional key when sliding input mode is
end at the functional key itself.
Bug: 8915171
Change-Id: I2031e2aa4ebf33684221fc44d4a808112489724f
JsonWriter requires that its clients pass it only a single top-level object.
The existing implementation tries to make code cleaner by having mJsonWriter
never be null, and instead use a global static "NULL_JSON_WRITER" that just
discards data. But because JsonWriter complains if more than one top-level
object is passed, making this a global object does not work. This change
instead copes with mJsonWriter being null.
Change-Id: Ia37ccfc8646e91f11a64713dd92d2846eb86ac54
This is an optimization. It also happens to work around what
seems to be a framework bug in JB MR1 / MR1.1.
Bug: 8771179
Change-Id: I62cc7acdc8656d75f8a50c068c4e9d8c6ceb74a0
Previously, mMainResearchLog and mMainLogBuffer were set up
when the user moved to a new TextView, and set to null when
the user left the TextView. This change causes
mMainResearchLog, mMainLogBuffer, mFeedbackLog, and
mFeedbackLogBuffer to be non-null forever after init() is
called. start() no longer sets up these fields; instead
they are cleared and reset every time stop() is called.
Checks for null values are now removed.
The earlier code just didn't initialize these variables if
the user disabled logging, but since the new version
invariantly keeps these variables valid, we add a check for
whether the user has enabled logging in publishLogUnits().
Change-Id: Ifde3517f1cf924cfa33cda95fec24529b52b3c08
This is a bug; the ResearchLogger uses ResearchSettings.readResearchLoggerEnabledFlag() instead,
which the user cannot change. (We assume they will just switch to a different keyboard.)
Change-Id: Ib5731c9eeb2bc29d9cf8608033326674f5eb6f7b
- Don't call finishComposingText when useless.
- Add safeguards against calling setComposingRegion when the
data returned by the editor is inconsistent.
- Cancel pending recorrection messages when new messages arrive.
Bug: 8842941
Bug: 8845001
Change-Id: I939701033cf5c2bbd85871ecf83e329021ddeb91