Merge "autofill: fix window location in splitwindow and dialog" into pi-dev
diff --git a/core/java/android/view/autofill/AutofillPopupWindow.java b/core/java/android/view/autofill/AutofillPopupWindow.java
index 1da998d..9b49248 100644
--- a/core/java/android/view/autofill/AutofillPopupWindow.java
+++ b/core/java/android/view/autofill/AutofillPopupWindow.java
@@ -79,6 +79,12 @@
public AutofillPopupWindow(@NonNull IAutofillWindowPresenter presenter) {
mWindowPresenter = new WindowPresenter(presenter);
+ // Here is a bit of voodoo - we want to show the window as system
+ // controlled one so it covers app windows, but at the same time it has to be
+ // an application type (so it's contained inside the application area).
+ // Hence, we set it to the application type with the highest z-order, which currently
+ // is TYPE_APPLICATION_ABOVE_SUB_PANEL.
+ setWindowLayoutType(WindowManager.LayoutParams.TYPE_APPLICATION_ABOVE_SUB_PANEL);
setTouchModal(false);
setOutsideTouchable(true);
setInputMethodMode(INPUT_METHOD_NOT_NEEDED);
diff --git a/services/autofill/java/com/android/server/autofill/ui/FillUi.java b/services/autofill/java/com/android/server/autofill/ui/FillUi.java
index 7c0671f..d29ca05 100644
--- a/services/autofill/java/com/android/server/autofill/ui/FillUi.java
+++ b/services/autofill/java/com/android/server/autofill/ui/FillUi.java
@@ -656,6 +656,8 @@
private final WindowManager mWm;
private final View mContentView;
private boolean mShowing;
+ // Used on dump only
+ private WindowManager.LayoutParams mShowParams;
/**
* Constructor.
@@ -672,16 +674,13 @@
* Shows the window.
*/
public void show(WindowManager.LayoutParams params) {
+ mShowParams = params;
if (sVerbose) {
Slog.v(TAG, "show(): showing=" + mShowing + ", params=" + paramsToString(params));
}
try {
- // Okay here is a bit of voodoo - we want to show the window as system
- // controlled one so it covers app windows - adjust the params accordingly.
- params.type = WindowManager.LayoutParams.TYPE_SYSTEM_DIALOG;
- params.token = null;
params.packageName = "android";
- params.flags |= WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN;
+ params.setTitle("Autofill UI"); // Title is set for debugging purposes
if (!mShowing) {
params.accessibilityTitle = mContentView.getContext()
.getString(R.string.autofill_picker_accessibility_title);
@@ -760,6 +759,9 @@
pw.println();
pw.print(prefix2); pw.print("showing: "); pw.println(mWindow.mShowing);
pw.print(prefix2); pw.print("view: "); pw.println(mWindow.mContentView);
+ if (mWindow.mShowParams != null) {
+ pw.print(prefix2); pw.print("params: "); pw.println(mWindow.mShowParams);
+ }
pw.print(prefix2); pw.print("screen coordinates: ");
if (mWindow.mContentView == null) {
pw.println("N/A");