Add debugging info for Latin IME.
Add frequency of candidates in the candidates view when the debug mode is active. Bug: 3312867 Change-Id: Ie911f14ef11b2fa02af8f3a74302129f16ed0604
This commit is contained in:
parent
d5fb0913a9
commit
8553b5ec31
2 changed files with 38 additions and 8 deletions
|
@ -54,7 +54,7 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
|
|||
private static final CharacterStyle UNDERLINE_SPAN = new UnderlineSpan();
|
||||
private static final int MAX_SUGGESTIONS = 16;
|
||||
|
||||
private static boolean DBG = LatinImeLogger.sDBG;
|
||||
private static final boolean DBG = LatinImeLogger.sDBG;
|
||||
|
||||
private final ArrayList<View> mWords = new ArrayList<View>();
|
||||
private final boolean mConfigCandidateHighlightFontColorEnabled;
|
||||
|
@ -226,10 +226,14 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
|
|||
}
|
||||
final String debugString = info.getDebugString();
|
||||
if (DBG) {
|
||||
if (!TextUtils.isEmpty(debugString)) {
|
||||
if (TextUtils.isEmpty(debugString)) {
|
||||
dv.setVisibility(GONE);
|
||||
} else {
|
||||
dv.setText(debugString);
|
||||
dv.setVisibility(VISIBLE);
|
||||
}
|
||||
} else {
|
||||
dv.setVisibility(GONE);
|
||||
}
|
||||
} else {
|
||||
dv.setVisibility(GONE);
|
||||
|
@ -249,8 +253,10 @@ public class CandidateView extends LinearLayout implements OnClickListener, OnLo
|
|||
final TextView tv = (TextView)mWords.get(1).findViewById(R.id.candidate_word);
|
||||
final Spannable word = new SpannableString(autoCorrectedWord);
|
||||
final int wordLength = word.length();
|
||||
word.setSpan(mInvertedBackgroundColorSpan, 0, wordLength, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
word.setSpan(mInvertedForegroundColorSpan, 0, wordLength, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
word.setSpan(mInvertedBackgroundColorSpan, 0, wordLength,
|
||||
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
word.setSpan(mInvertedForegroundColorSpan, 0, wordLength,
|
||||
Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
|
||||
tv.setText(word);
|
||||
mShowingAutoCorrectionInverted = true;
|
||||
}
|
||||
|
|
|
@ -64,7 +64,7 @@ public class Suggest implements Dictionary.WordCallback {
|
|||
|
||||
static final int LARGE_DICTIONARY_THRESHOLD = 200 * 1000;
|
||||
|
||||
private static boolean DBG = LatinImeLogger.sDBG;
|
||||
private static final boolean DBG = LatinImeLogger.sDBG;
|
||||
|
||||
private BinaryDictionary mMainDict;
|
||||
|
||||
|
@ -224,6 +224,7 @@ public class Suggest implements Dictionary.WordCallback {
|
|||
mLowerOriginalWord = "";
|
||||
}
|
||||
|
||||
double normalizedScore = Integer.MIN_VALUE;
|
||||
if (wordComposer.size() == 1 && (mCorrectionMode == CORRECTION_FULL_BIGRAM
|
||||
|| mCorrectionMode == CORRECTION_BASIC)) {
|
||||
// At first character typed, search only the bigrams
|
||||
|
@ -290,9 +291,9 @@ public class Suggest implements Dictionary.WordCallback {
|
|||
&& mSuggestions.size() > 0 && mPriorities.length > 0) {
|
||||
// TODO: when the normalized score of the first suggestion is nearly equals to
|
||||
// the normalized score of the second suggestion, behave less aggressive.
|
||||
final double normalizedScore = Utils.calcNormalizedScore(
|
||||
normalizedScore = Utils.calcNormalizedScore(
|
||||
typedWord, mSuggestions.get(0), mPriorities[0]);
|
||||
if (LatinImeLogger.sDBG) {
|
||||
if (DBG) {
|
||||
Log.d(TAG, "Normalized " + typedWord + "," + mSuggestions.get(0) + ","
|
||||
+ mPriorities[0] + ", " + normalizedScore
|
||||
+ "(" + mAutoCorrectionThreshold + ")");
|
||||
|
@ -354,7 +355,30 @@ public class Suggest implements Dictionary.WordCallback {
|
|||
}
|
||||
}
|
||||
removeDupes();
|
||||
return new SuggestedWords.Builder().addWords(mSuggestions, null);
|
||||
if (DBG) {
|
||||
ArrayList<SuggestedWords.SuggestedWordInfo> frequencyInfoList =
|
||||
new ArrayList<SuggestedWords.SuggestedWordInfo>();
|
||||
frequencyInfoList.add(new SuggestedWords.SuggestedWordInfo("+", false));
|
||||
final int priorityLength = mPriorities.length;
|
||||
for (int i = 0; i < priorityLength; ++i) {
|
||||
if (normalizedScore > 0) {
|
||||
final String priorityThreshold = Integer.toString(mPriorities[i]) + " (" +
|
||||
normalizedScore + ")";
|
||||
frequencyInfoList.add(
|
||||
new SuggestedWords.SuggestedWordInfo(priorityThreshold, false));
|
||||
normalizedScore = 0.0;
|
||||
} else {
|
||||
final String priority = Integer.toString(mPriorities[i]);
|
||||
frequencyInfoList.add(new SuggestedWords.SuggestedWordInfo(priority, false));
|
||||
}
|
||||
}
|
||||
for (int i = priorityLength; i < mSuggestions.size(); ++i) {
|
||||
frequencyInfoList.add(new SuggestedWords.SuggestedWordInfo("--", false));
|
||||
}
|
||||
return new SuggestedWords.Builder().addWords(mSuggestions, frequencyInfoList);
|
||||
} else {
|
||||
return new SuggestedWords.Builder().addWords(mSuggestions, null);
|
||||
}
|
||||
}
|
||||
|
||||
public int[] getNextLettersFrequencies() {
|
||||
|
|
Loading…
Reference in a new issue