summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Feng Cao <fengcao@google.com> 2018-12-21 18:57:13 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2018-12-21 18:57:13 +0000
commitc5cd1325fc05d3569cab56ff04fb1475355c78e7 (patch)
tree1638e0ce7029e83371ab3c84ff720ceba69faaa4
parentf445d59c11294e77dc8b0266091ca7eacea4ab97 (diff)
parent023b84c35f591626f1244e87ce5738827e6572e0 (diff)
Merge "Fix augmented autofill window positioning to be right below the input field."
-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);
}