diff options
| author | 2023-10-09 23:26:18 +0000 | |
|---|---|---|
| committer | 2023-10-09 23:26:18 +0000 | |
| commit | e15bddd16ccd9f7c7703123d39a48a3f57878bb7 (patch) | |
| tree | f2f1b7a15d627df67fd0b14355993e3257b531c4 | |
| parent | b784d24f32276e057c27c9e4f23ad64e04b2c7ee (diff) | |
| parent | e1fa64a73f75768d3fba17beb280ac795a6b2eaf (diff) | |
Merge "Update EditorInfo if servedView's orientation changes" into main
| -rw-r--r-- | core/java/android/widget/TextView.java | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 2c413300ef17..e8281eac5928 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -567,6 +567,8 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener private float mShadowDy; private int mShadowColor; + private int mLastOrientation; + private boolean mPreDrawRegistered; private boolean mPreDrawListenerDetached; @@ -1193,6 +1195,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mBreakStrategy = Layout.BREAK_STRATEGY_SIMPLE; mHyphenationFrequency = Layout.HYPHENATION_FREQUENCY_NONE; mJustificationMode = Layout.JUSTIFICATION_MODE_NONE; + mLastOrientation = getResources().getConfiguration().orientation; final Resources.Theme theme = context.getTheme(); @@ -4591,6 +4594,15 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mFontWeightAdjustment = newConfig.fontWeightAdjustment; setTypeface(getTypeface()); } + + InputMethodManager imm = getInputMethodManager(); + // if orientation changed and this TextView is currently served. + if (mLastOrientation != newConfig.orientation + && imm != null && imm.hasActiveInputConnection(this)) { + // EditorInfo.internalImeOptions are out of date. + imm.restartInput(this); + } + mLastOrientation = newConfig.orientation; } /** |