summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/service/autofill/augmented/FillWindow.java5
-rw-r--r--core/java/android/view/autofill/AutofillManager.java10
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);
}