diff options
| author | 2021-04-05 20:18:52 +0000 | |
|---|---|---|
| committer | 2021-04-05 20:18:52 +0000 | |
| commit | 4b163155e54345b0bc933ffe3e565d6bb651dbc6 (patch) | |
| tree | 377163a25ea39f6464debeb48922ab9f5af2ed62 | |
| parent | dabc72e5b248b83a03df6a9c30b103d69a806bf3 (diff) | |
| parent | 8c48915e429fe991ac03109adc926140ebf8e1e9 (diff) | |
Merge "UiTranslation: Temporary fix for crash due to length increases." into sc-dev
| -rw-r--r-- | core/java/android/text/method/TranslationTransformationMethod.java | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/core/java/android/text/method/TranslationTransformationMethod.java b/core/java/android/text/method/TranslationTransformationMethod.java index 54c0ffcdbb65..7db999a89fbe 100644 --- a/core/java/android/text/method/TranslationTransformationMethod.java +++ b/core/java/android/text/method/TranslationTransformationMethod.java @@ -78,11 +78,24 @@ public class TranslationTransformationMethod implements TransformationMethod2 { if (TextUtils.isEmpty(translatedText) || isWhitespace(translatedText.toString())) { return source; } else { + // TODO(b/179693024): Remove this once we have the fix to pad the view text instead. + translatedText = ellipsize(translatedText, ((TextView) view).getText().length()); // TODO(b/174283799): apply the spans to the text return translatedText; } } + private static CharSequence ellipsize(CharSequence text, int newLength) { + if (text.length() <= newLength) { + return text; + } + String ellipsis = String.valueOf('\u2026'); + if (newLength == 1) { + return ellipsis; + } + return TextUtils.concat(TextUtils.trimToSize(text, newLength - 1), ellipsis); + } + @Override public void onFocusChanged(View view, CharSequence sourceText, boolean focused, int direction, |