aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/research/ResearchLogger.java (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Uncommit an extra LogUnit"Kurt Partridge2013-06-031-1/+6
|\
| * Uncommit an extra LogUnitKurt Partridge2013-06-021-1/+6
| | | | | | | | | | | | | | | | | | The period-generating double-space adds an extra LogUnit -- it must be removed when reverting. Bug: 9088919 Change-Id: Ic148f40b4030a9b4a0651029bda87f7b94a52252
* | Merge "Compare scrubbed strings when uncommitting LogUnits"Kurt Partridge2013-06-031-1/+4
|\ \
| * | Compare scrubbed strings when uncommitting LogUnitsKurt Partridge2013-06-021-1/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | 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
* | Merge "Uncommit separator LogUnits"Kurt Partridge2013-06-031-3/+14
|\ \
| * | Uncommit separator LogUnitsKurt Partridge2013-06-021-3/+14
| |/ | | | | | | | | | | | | | | | | Now that separators have their own LogUnits, they must be uncommitted from the LogBuffer when backspacing over them. Bug: 9088919 Change-Id: Ib36cc94939b93abe18850a06bced17caf8aaa5b9
* / Uncommit LogUnits when reverting textInputKurt Partridge2013-06-011-0/+10
|/ | | | | | Bug: 9088919 Change-Id: I17187aa0afc1c3e9d32269c65f66cfb3a08663cb
* Merge "Remove unused method"Kurt Partridge2013-05-291-19/+0
|\
| * Remove unused methodKurt Partridge2013-05-281-19/+0
| | | | | | | | | | | | The removed method was used in old versions of ALK, never in master. Change-Id: I607009d4fcca7c7c8493fee51ecd923e6a6b3890
* | Rename containsCorrection to containsUserDeletionsKurt Partridge2013-05-281-7/+7
|/ | | | | | | This change renames containsCorrection to avoid confusion with CorrectionInfo, and to better clarify its meaning. Change-Id: I5d8f8e2b03133c15a60d4e8b0f395cda1fff5447
* Log reasons for punting n-gram loggingKurt Partridge2013-05-231-2/+24
| | | | | | Addresses b/9074239 Change-Id: I91a3bfcbd32b03e4891ff5f65be01383a3fb8975
* Merge "Always record word boundaries"Kurt Partridge2013-05-221-2/+14
|\
| * Always record word boundariesKurt Partridge2013-05-211-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | Modify isAllowedToLogKurt Partridge2013-05-211-6/+28
|/ | | | | | | | | | | | | | | | 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
* Fix punctuation loggingKurt Partridge2013-05-171-10/+36
| | | | | | | | | | | | | | | | | | 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
* Remove unnecessary commit/uncommitKurt Partridge2013-05-141-1/+0
| | | | | | | | | | | | | | | | | | | 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
* Remove FeedbackLog instance variables.Kurt Partridge2013-05-131-42/+7
| | | | | | | | | | | | | | | | | 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
* Avoid JsonWriter multi-write errorKurt Partridge2013-05-101-2/+10
| | | | | | | | | | | 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
* Merge "Remove unused code"Kurt Partridge2013-05-101-11/+1
|\
| * Remove unused codeKurt Partridge2013-05-091-11/+1
| | | | | | | | Change-Id: I192c67e9e8de44f073abc70ec85ebcdb36356c2e
* | Merge "Remove ref to LatinImeLogger preference."Kurt Partridge2013-05-101-5/+0
|\ \
| * | Remove ref to LatinImeLogger preference.Kurt Partridge2013-05-091-5/+0
| |/ | | | | | | | | | | | | 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
* / Avoid NPE by fixing ResearchLogger initializationKurt Partridge2013-05-091-93/+62
|/ | | | | | | | | | | | | | | | | | 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
* Allow LogUnits to hold >1 wordKurt Partridge2013-04-191-18/+21
| | | | | | | | | | | | | | LogUnits have been annotated with the autocorrected words, but until now this was assumed to be a single word without spaces. But spaceless typing can result in spaces in the LogUnit label. With this change, the LogUnit inspects the autocorrected text to determine how many words were inserted, and counts them accurately. This change corrects a privacy problem, which was that if the word sampling algorithm chose a LogUnit that actually contained multiple words, then more than two successive words would be included in the log. Change-Id: I7c01c3dd3ac33d7e96c00836256bae9c14b124ed
* Merge "Label logUnits after LatinImeOnEndBatchInput"Kurt Partridge2013-04-171-0/+3
|\
| * Label logUnits after LatinImeOnEndBatchInputKurt Partridge2013-04-171-0/+3
| | | | | | | | | | | | | | | | | | | | | | Previously only a commitText would cause a LogUnit to be labeled with the word that the data generates. In the case of gestured text, this information is available when LatinIME#onEndBatchInput is called. Labeling the LogUnit at this time means that the Log will have labeled words even if stop() is called before commit. Change-Id: Idb2f99a9c159a1b1aa00448a2ecddeca6c351c3e
* | Merge "Fix NPE"Kurt Partridge2013-04-171-1/+1
|\ \
| * | Fix NPEKurt Partridge2013-04-161-1/+1
| |/ | | | | | | Change-Id: I8a091fb63dab12a0d2ba69e2fe393249bc68d103
* | Merge "Fix logic error"Kurt Partridge2013-04-171-1/+1
|\ \
| * | Fix logic errorKurt Partridge2013-04-161-1/+1
| |/ | | | | | | Change-Id: Ia36660c66504ba2fbb7f125704926a08726df87a
* | Merge "Small dot in corner was not visible"Kurt Partridge2013-04-171-1/+1
|\ \
| * | Small dot in corner was not visibleKurt Partridge2013-04-161-1/+1
| |/ | | | | | | | | | | Framework change perhaps? Even if not, this makes it more visible Change-Id: Ib6d36b5a30136c4516adac666bdff36d1cd9b337
* / Include nanoTime in filenameKurt Partridge2013-04-161-3/+3
|/ | | | | | | System is fast enough that sometimes SystemClock.currentTimeMillis() is duplicated when used to make a unique filename. Change-Id: I9454fbb5e10265d36b8e17cba183a1591d52cc7b
* Merge "Avoid NPE"Kurt Partridge2013-04-121-3/+3
|\
| * Avoid NPEKurt Partridge2013-03-261-3/+3
| | | | | | | | | | | | Initialize FeedbackLog earlier to avoid NPE Change-Id: I646944c68a7d092345def16060b2a4edd8c7dbef
* | Restart suggestions when the cursor moves.Jean Chalard2013-04-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | This uses the old suggestions. It does not try to recompute new suggestions if there are no old suggestions yet: this is coming in a later change. If there are no suggestions, this shows the word itself as a suggestion. Bug: 8084810 Change-Id: I4c2e25df0ff3673be1825f57a0c19a9d23d47a48
* | Better isolate ResearchLogging dataKurt Partridge2013-04-101-0/+3
| | | | | | | | | | | | | | | | | | | | Calls to LatinIME#onStartInputViewInternal log important information about the context in which an IME is used. This is reported as a single LogStatement. Previously, this was not placed into a separate LogUnit, and was mixed in with general word data. This change wraps this LogStatement in its own LogUnit. Change-Id: I0fecd41c8a1de622a764cc4b5d6902336697046c
* | Better release build reportingKurt Partridge2013-04-101-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | The ResearchLogger reports whether a build is a release build or not to avoid polluting data with IME debugging work by developers. Previously this was done by checking a constant flag, which was also serving the dual purpose of masking out debug code in release builds. This change introduces a heuristic to determine whether a build was created by a developer (using the package versionName), and annotating the data sent to the server appropriately. Change-Id: Icbad17c66b703cabf6d23d05e2c7c41bcceaae45
* | Merge "[FileEncap18] Clean up uploading scheduling"Kurt Partridge2013-04-091-29/+2
|\ \
| * | [FileEncap18] Clean up uploading schedulingKurt Partridge2013-03-251-29/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Move scheduling logic from ResearchLogger.java to UploaderService.java - Switch to a one-shot timer. Previously the uploader was scheduled on an inexact repeating schedule. It's better to reschedule the next upload after the current one is finished to reduce the chances of multiple uploads happening at the same time. - Avoid double-execution - Previously a scheduled upload might run right after an explicit one if they occured at the same time. This change reduces the chances of this. - Some method extraction and naming Change-Id: I9efda11be77d334c7f61bd40a36d65f0421ebde4
* | Merge "Allow logging while replaying"Kurt Partridge2013-04-091-2/+1
|\ \
| * | Allow logging while replayingKurt Partridge2013-04-011-2/+1
| | | | | | | | | | | | | | | | | | | | | Previously logging was disabled during replay. This makes it impossible to use logged data as a regression test, since the new log was unavailable. This change corrects this problem. Change-Id: I19dc31def2f2f87fd219dc561c739d18e4ab9c9c
* | | Merge "Split LogUnits differently."Kurt Partridge2013-04-011-2/+1
|\ \ \ | |/ / |/| |
| * | Split LogUnits differently.Kurt Partridge2013-03-261-2/+1
| |/ | | | | | | | | | | | | | | | | Previously an autocorrection caused a new LogUnit to be started, splitting off the previous LogUnit right at the autocorrection method time. This change causes the split to happen before the MotionEvents that led to the autocorrection being called. Change-Id: I2504df8eb47ee77e5f46bac34a8450636c03fd9f
* / Close ResearchLogger upon onFinishInputViewKurt Partridge2013-03-251-12/+14
|/ | | | | | | | | | | | Previously, ResearchLogger#stop() was called both in LatinIME#onFinishInputView() and in LatinIME#onWindowHidden(). This resulted in multiple logs being written. Since onFinishInputView is the more reliable of the two (it is called in InputMethodService#onDestroy; onWindowHidden is not), the code now uses onFinishInputView as a stopping signal. Change-Id: Iae4b8c3bdab226027624eeab19b3737367e4a108
* resolved conflicts for merge of 5b048292 to masterTadashi G. Takaoka2013-03-191-9/+11
|\ | | | | | | Change-Id: I67ebab46954cd7b8e3e79e7fed523bafb15f8835
| * Rename ProductionFlag.IS_EXPERIMENTAL to USES_DEVELOPMENT_ONLY_DIAGNOSTICSKen Wakasa2013-03-181-9/+11
| | | | | | | | | | bug: 8393568 Change-Id: Ie5edf44a3627aca9416145aff56bf05bbf2a05f3
* | [FileEncap9] Extract ResearchLogDirectory classKurt Partridge2013-03-141-68/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously used a monotonically increasing int. Now uses uuid and nanoseconds. squashed in: [FileEncap11] Read preference from ResearchSettings Change-Id: Ic779e0a69db6b16e92c6f4b63dbe7b7add566ab6 [FileEncap12] Simplify directory cleanup invocation Change-Id: I688047409c0343d32b11447fb625dfb726c731ec [FileEncap14] Change log filename syntax Change-Id: I9243b20b2eb392f81ab8c5c3d19315211240e0bc Change-Id: I5c9d70e0cb7b0965158e17dd71dfab796bd9a440
* | [Lazy1] Switch to blocking log closuresJean Chalard2013-03-121-27/+13
| | | | | | | | Change-Id: I4daec20b7b47b0d71c5aab6e17cd660015e19e71
* | Little cleanupsKurt Partridge2013-03-051-7/+4
| | | | | | | | Change-Id: I2ded3d0a29610941fac27c9b26168dd6c06ceccc