From fc137f35c8d7b03676475fbdeabdf82f89782419 Mon Sep 17 00:00:00 2001 From: Yohei Yukawa Date: Wed, 9 Jul 2014 23:40:25 +0900 Subject: [PATCH] Simplify the wrapper for TextInfo#getCharSequence This CL simplifies the wrapper method for TextInfo#getCharSequence() because in the almost all cases we want to use the result of TextInfo#getText() as the default value. BUG: 16029304 Change-Id: I62f987aed8ca42b093255e6c0703d6120fa01299 --- .../inputmethod/compat/TextInfoCompatUtils.java | 14 +++++++++++--- .../compat/TextInfoCompatUtilsTests.java | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java b/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java index 8bd919749..09f39a756 100644 --- a/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java +++ b/java/src/com/android/inputmethod/compat/TextInfoCompatUtils.java @@ -22,7 +22,6 @@ import com.android.inputmethod.annotations.UsedForTesting; import java.lang.reflect.Constructor; import java.lang.reflect.Method; -import java.util.Locale; @UsedForTesting public final class TextInfoCompatUtils { @@ -50,9 +49,18 @@ public final class TextInfoCompatUtils { sequenceNumber); } + /** + * Returns the result of {@link TextInfo#getCharSequence()} when available. Otherwise returns + * the result of {@link TextInfo#getText()} as fall back. + * @param textInfo the instance for which {@link TextInfo#getCharSequence()} or + * {@link TextInfo#getText()} is called. + * @return the result of {@link TextInfo#getCharSequence()} when available. Otherwise returns + * the result of {@link TextInfo#getText()} as fall back. If {@code textInfo} is {@code null}, + * returns {@code null}. + */ @UsedForTesting - public static CharSequence getCharSequence(final TextInfo textInfo, - final CharSequence defaultValue) { + public static CharSequence getCharSequenceOrString(final TextInfo textInfo) { + final CharSequence defaultValue = (textInfo == null ? null : textInfo.getText()); return (CharSequence) CompatUtils.invoke(textInfo, defaultValue, TEXT_INFO_GET_CHAR_SEQUENCE); } diff --git a/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java b/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java index 5721ed1ff..c399cced6 100644 --- a/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java +++ b/tests/src/com/android/inputmethod/compat/TextInfoCompatUtilsTests.java @@ -58,7 +58,7 @@ public class TextInfoCompatUtilsTests extends AndroidTestCase { final Spanned expectedSpanned = (Spanned) text.subSequence(TEST_CHAR_SEQUENCE_START, TEST_CHAR_SEQUENCE_END); final CharSequence actualCharSequence = - TextInfoCompatUtils.getCharSequence(textInfo, textInfo.getText()); + TextInfoCompatUtils.getCharSequenceOrString(textInfo); // This should be valid even if TextInfo#getCharSequence is not supported. assertTrue(TextUtils.equals(expectedSpanned, actualCharSequence));