Add additional punctuations to suggestion strip. Bug: 2729632
Change-Id: I5a3d47fee2a09da06b395529c4eccce6d14ecb9d
This commit is contained in:
parent
4ee3676cf3
commit
0175d7da21
2 changed files with 15 additions and 9 deletions
|
@ -21,9 +21,9 @@
|
||||||
<!-- Symbols that are commonly considered word separators in this language -->
|
<!-- Symbols that are commonly considered word separators in this language -->
|
||||||
<string name="word_separators">.\u0009\u0020,;:!?\n()[]*&@{}/<>_+=|\u0022</string>
|
<string name="word_separators">.\u0009\u0020,;:!?\n()[]*&@{}/<>_+=|\u0022</string>
|
||||||
<!-- Symbols that are sentence separators, for purposes of making it hug the last sentence. -->
|
<!-- 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 -->
|
<!-- Symbols that are suggested between words -->
|
||||||
<string name="suggested_punctuations">!?,@_</string>
|
<string name="suggested_punctuations">!?,\u0022\u0027:()-/@_</string>
|
||||||
<!-- Accented characters related to "d" -->
|
<!-- Accented characters related to "d" -->
|
||||||
<string name="alternates_for_d"></string>
|
<string name="alternates_for_d"></string>
|
||||||
<!-- Accented characters related to "r" -->
|
<!-- Accented characters related to "r" -->
|
||||||
|
|
|
@ -221,6 +221,7 @@ public class LatinIME extends InputMethodService
|
||||||
|
|
||||||
/* package */ String mWordSeparators;
|
/* package */ String mWordSeparators;
|
||||||
private String mSentenceSeparators;
|
private String mSentenceSeparators;
|
||||||
|
private String mSuggestPuncs;
|
||||||
private VoiceInput mVoiceInput;
|
private VoiceInput mVoiceInput;
|
||||||
private VoiceResults mVoiceResults = new VoiceResults();
|
private VoiceResults mVoiceResults = new VoiceResults();
|
||||||
private long mSwipeTriggerTimeMillis;
|
private long mSwipeTriggerTimeMillis;
|
||||||
|
@ -1116,7 +1117,7 @@ public class LatinIME extends InputMethodService
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (mKeyboardSwitcher.getInputView().isShifted()) {
|
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
|
if (keyCodes == null || keyCodes[0] < Character.MIN_CODE_POINT
|
||||||
|| keyCodes[0] > Character.MAX_CODE_POINT) {
|
|| keyCodes[0] > Character.MAX_CODE_POINT) {
|
||||||
return;
|
return;
|
||||||
|
@ -1549,7 +1550,8 @@ public class LatinIME extends InputMethodService
|
||||||
}
|
}
|
||||||
|
|
||||||
// If this is a punctuation, apply it through the normal key press
|
// 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.
|
// Word separators are suggested before the user inputs something.
|
||||||
// So, LatinImeLogger logs "" as a user's input.
|
// So, LatinImeLogger logs "" as a user's input.
|
||||||
LatinImeLogger.logOnClickSuggestion(
|
LatinImeLogger.logOnClickSuggestion(
|
||||||
|
@ -1681,7 +1683,7 @@ public class LatinIME extends InputMethodService
|
||||||
return separators.contains(String.valueOf((char)code));
|
return separators.contains(String.valueOf((char)code));
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isSentenceSeparator(int code) {
|
private boolean isSentenceSeparator(int code) {
|
||||||
return mSentenceSeparators.contains(String.valueOf((char)code));
|
return mSentenceSeparators.contains(String.valueOf((char)code));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1952,14 +1954,18 @@ public class LatinIME extends InputMethodService
|
||||||
|
|
||||||
private void initSuggestPuncList() {
|
private void initSuggestPuncList() {
|
||||||
mSuggestPuncList = new ArrayList<CharSequence>();
|
mSuggestPuncList = new ArrayList<CharSequence>();
|
||||||
String suggestPuncs = mResources.getString(R.string.suggested_punctuations);
|
mSuggestPuncs = mResources.getString(R.string.suggested_punctuations);
|
||||||
if (suggestPuncs != null) {
|
if (mSuggestPuncs != null) {
|
||||||
for (int i = 0; i < suggestPuncs.length(); i++) {
|
for (int i = 0; i < mSuggestPuncs.length(); i++) {
|
||||||
mSuggestPuncList.add(suggestPuncs.subSequence(i, i + 1));
|
mSuggestPuncList.add(mSuggestPuncs.subSequence(i, i + 1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isSuggestedPunctuation(int code) {
|
||||||
|
return mSuggestPuncs.contains(String.valueOf((char)code));
|
||||||
|
}
|
||||||
|
|
||||||
private void showOptionsMenu() {
|
private void showOptionsMenu() {
|
||||||
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
AlertDialog.Builder builder = new AlertDialog.Builder(this);
|
||||||
builder.setCancelable(true);
|
builder.setCancelable(true);
|
||||||
|
|
Loading…
Reference in a new issue