Merge "Don't cache IME surface in fullscreen mode" into sc-dev am: e81d43c1e1
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14665440 Change-Id: Ic2661790b288c179bb50ebb6bbac6b71073f2d0e
This commit is contained in:
@@ -481,6 +481,7 @@ public class InputMethodService extends AbstractInputMethodService {
|
|||||||
|
|
||||||
boolean mFullscreenApplied;
|
boolean mFullscreenApplied;
|
||||||
boolean mIsFullscreen;
|
boolean mIsFullscreen;
|
||||||
|
private boolean mLastWasInFullscreenMode;
|
||||||
@UnsupportedAppUsage
|
@UnsupportedAppUsage
|
||||||
View mExtractView;
|
View mExtractView;
|
||||||
boolean mExtractViewHidden;
|
boolean mExtractViewHidden;
|
||||||
@@ -920,8 +921,17 @@ public class InputMethodService extends AbstractInputMethodService {
|
|||||||
if (mHandler == null) {
|
if (mHandler == null) {
|
||||||
mHandler = new Handler(getMainLooper());
|
mHandler = new Handler(getMainLooper());
|
||||||
}
|
}
|
||||||
mImeSurfaceScheduledForRemoval = true;
|
|
||||||
mHandler.postDelayed(() -> removeImeSurface(), TIMEOUT_SURFACE_REMOVAL_MILLIS);
|
if (mLastWasInFullscreenMode) {
|
||||||
|
// Caching surface / delaying surface removal can cause mServedView to detach in certain
|
||||||
|
// cases in RecyclerView (b/187772544).
|
||||||
|
// TODO(b/188818557): Re-enable IME surface caching for fullscreen mode once detaching
|
||||||
|
// view issues is resolved in RecyclerView.
|
||||||
|
removeImeSurface();
|
||||||
|
} else {
|
||||||
|
mImeSurfaceScheduledForRemoval = true;
|
||||||
|
mHandler.postDelayed(() -> removeImeSurface(), TIMEOUT_SURFACE_REMOVAL_MILLIS);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void removeImeSurface() {
|
private void removeImeSurface() {
|
||||||
@@ -2350,6 +2360,7 @@ public class InputMethodService extends AbstractInputMethodService {
|
|||||||
onWindowHidden();
|
onWindowHidden();
|
||||||
mDecorViewWasVisible = false;
|
mDecorViewWasVisible = false;
|
||||||
}
|
}
|
||||||
|
mLastWasInFullscreenMode = mIsFullscreen;
|
||||||
updateFullscreenMode();
|
updateFullscreenMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user