diff options
| -rw-r--r-- | core/java/android/service/autofill/augmented/FillWindow.java | 5 | ||||
| -rw-r--r-- | core/java/android/view/autofill/AutofillManager.java | 10 |
2 files changed, 8 insertions, 7 deletions
diff --git a/core/java/android/service/autofill/augmented/FillWindow.java b/core/java/android/service/autofill/augmented/FillWindow.java index 27df845ca3e0..bad7ddd3193b 100644 --- a/core/java/android/service/autofill/augmented/FillWindow.java +++ b/core/java/android/service/autofill/augmented/FillWindow.java @@ -163,14 +163,15 @@ public final class FillWindow implements AutoCloseable { final int height = rect.bottom - rect.top; final int width = rect.right - rect.left; final WindowManager.LayoutParams windowParams = window.getAttributes(); - windowParams.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL; - windowParams.y = rect.top - height; + windowParams.gravity = Gravity.TOP | Gravity.LEFT; + windowParams.y = rect.top + height; windowParams.height = height; windowParams.x = rect.left; windowParams.width = width; window.setAttributes(windowParams); window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND); + window.setBackgroundDrawableResource(android.R.color.transparent); mDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); final ViewGroup.LayoutParams diagParams = new ViewGroup.LayoutParams(width, height); diff --git a/core/java/android/view/autofill/AutofillManager.java b/core/java/android/view/autofill/AutofillManager.java index 699b34abd45d..56f973eb9e46 100644 --- a/core/java/android/view/autofill/AutofillManager.java +++ b/core/java/android/view/autofill/AutofillManager.java @@ -77,7 +77,6 @@ import java.util.List; import java.util.Objects; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; - //TODO: use java.lang.ref.Cleaner once Android supports Java 9 import sun.misc.Cleaner; @@ -2966,12 +2965,13 @@ public final class AutofillManager { if (afm == null) return null; final View view = afm.getClient().autofillClientFindViewByAutofillIdTraversal(id); - // TODO(b/111330312): optimize (for example, use temp rect from attach info) and - // fix (for example, take system status bar height into account) logic below + final Rect windowVisibleDisplayFrame = new Rect(); + view.getWindowVisibleDisplayFrame(windowVisibleDisplayFrame); final int[] location = new int[2]; view.getLocationOnScreen(location); - final Rect rect = new Rect(location[0], location[1], location[0] + view.getWidth(), - location[1] + view.getHeight()); + final Rect rect = new Rect(location[0], location[1] - windowVisibleDisplayFrame.top, + location[0] + view.getWidth(), + location[1] - windowVisibleDisplayFrame.top + view.getHeight()); if (sVerbose) { Log.v(TAG, "Coordinates for " + id + ": " + rect); } |