Merge "Only use system gesture insets for exclusion rects with root ime view"
This commit is contained in:
@@ -102,6 +102,7 @@ import android.view.ViewRootImpl;
|
||||
import android.view.ViewTreeObserver;
|
||||
import android.view.Window;
|
||||
import android.view.WindowInsets.Side;
|
||||
import android.view.WindowInsets.Type;
|
||||
import android.view.WindowManager;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.view.inputmethod.CompletionInfo;
|
||||
@@ -135,7 +136,7 @@ import java.io.FileDescriptor;
|
||||
import java.io.PrintWriter;
|
||||
import java.lang.annotation.Retention;
|
||||
import java.lang.annotation.RetentionPolicy;
|
||||
import java.util.Collections;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
@@ -883,10 +884,19 @@ public class InputMethodService extends AbstractInputMethodService {
|
||||
|
||||
/** Set region of the keyboard to be avoided from back gesture */
|
||||
private void setImeExclusionRect(int visibleTopInsets) {
|
||||
View inputFrameRootView = mInputFrame.getRootView();
|
||||
Rect r = new Rect(0, visibleTopInsets, inputFrameRootView.getWidth(),
|
||||
inputFrameRootView.getHeight());
|
||||
inputFrameRootView.setSystemGestureExclusionRects(Collections.singletonList(r));
|
||||
View rootView = mInputFrame.getRootView();
|
||||
android.graphics.Insets systemGesture =
|
||||
rootView.getRootWindowInsets().getInsets(Type.systemGestures());
|
||||
ArrayList<Rect> exclusionRects = new ArrayList<>();
|
||||
exclusionRects.add(new Rect(0,
|
||||
visibleTopInsets,
|
||||
systemGesture.left,
|
||||
rootView.getHeight()));
|
||||
exclusionRects.add(new Rect(rootView.getWidth() - systemGesture.right,
|
||||
visibleTopInsets,
|
||||
rootView.getWidth(),
|
||||
rootView.getHeight()));
|
||||
rootView.setSystemGestureExclusionRects(exclusionRects);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user