Add additional punctuations to suggestion strip. Bug: 2729632

Change-Id: I5a3d47fee2a09da06b395529c4eccce6d14ecb9d
main
Ken Wakasa 2010-06-02 20:16:38 +09:00
parent 4ee3676cf3
commit 0175d7da21
2 changed files with 15 additions and 9 deletions

View File

@ -21,9 +21,9 @@
<!-- Symbols that are commonly considered word separators in this language -->
<string name="word_separators">.\u0009\u0020,;:!?\n()[]*&amp;@{}/&lt;&gt;_+=|\u0022</string>
<!-- Symbols that are sentence separators, for purposes of making it hug the last sentence. -->
<string name="sentence_separators">.,!?</string>
<string name="sentence_separators">.,!?)</string>
<!-- Symbols that are suggested between words -->
<string name="suggested_punctuations">!?,@_</string>
<string name="suggested_punctuations">!?,\u0022\u0027:()-/@_</string>
<!-- Accented characters related to "d" -->
<string name="alternates_for_d"></string>
<!-- Accented characters related to "r" -->

View File

@ -221,6 +221,7 @@ public class LatinIME extends InputMethodService
/* package */ String mWordSeparators;
private String mSentenceSeparators;
private String mSuggestPuncs;
private VoiceInput mVoiceInput;
private VoiceResults mVoiceResults = new VoiceResults();
private long mSwipeTriggerTimeMillis;
@ -1116,7 +1117,7 @@ public class LatinIME extends InputMethodService
}
}
if (mKeyboardSwitcher.getInputView().isShifted()) {
// TODO: This doesn't work with ß, need to fix it in the next release.
// TODO: This doesn't work with [beta], need to fix it in the next release.
if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT
|| keyCodes[0] > Character.MAX_CODE_POINT) {
return;
@ -1549,7 +1550,8 @@ public class LatinIME extends InputMethodService
}
// If this is a punctuation, apply it through the normal key press
if (suggestion.length() == 1 && isWordSeparator(suggestion.charAt(0))) {
if (suggestion.length() == 1 && (isWordSeparator(suggestion.charAt(0))
|| isSuggestedPunctuation(suggestion.charAt(0)))) {
// Word separators are suggested before the user inputs something.
// So, LatinImeLogger logs "" as a user's input.
LatinImeLogger.logOnClickSuggestion(
@ -1681,7 +1683,7 @@ public class LatinIME extends InputMethodService
return separators.contains(String.valueOf((char)code));
}
public boolean isSentenceSeparator(int code) {
private boolean isSentenceSeparator(int code) {
return mSentenceSeparators.contains(String.valueOf((char)code));
}
@ -1952,14 +1954,18 @@ public class LatinIME extends InputMethodService
private void initSuggestPuncList() {
mSuggestPuncList = new ArrayList<CharSequence>();
String suggestPuncs = mResources.getString(R.string.suggested_punctuations);
if (suggestPuncs != null) {
for (int i = 0; i < suggestPuncs.length(); i++) {
mSuggestPuncList.add(suggestPuncs.subSequence(i, i + 1));
mSuggestPuncs = mResources.getString(R.string.suggested_punctuations);
if (mSuggestPuncs != null) {
for (int i = 0; i < mSuggestPuncs.length(); i++) {
mSuggestPuncList.add(mSuggestPuncs.subSequence(i, i + 1));
}
}
}
private boolean isSuggestedPunctuation(int code) {
return mSuggestPuncs.contains(String.valueOf((char)code));
}
private void showOptionsMenu() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setCancelable(true);