merge in nyc-mr1-release history after reset to nyc-mr1-dev
diff --git a/res/layout/grant_permissions.xml b/res/layout/grant_permissions.xml
index abb219a..8ed9c5d 100644
--- a/res/layout/grant_permissions.xml
+++ b/res/layout/grant_permissions.xml
@@ -25,6 +25,9 @@
android:paddingBottom="32dp"
android:clipToPadding="false">
+ <ScrollView android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
+
<LinearLayout
android:id="@+id/dialog_container"
android:layout_width="wrap_content"
@@ -116,4 +119,6 @@
</LinearLayout>
+ </ScrollView>
+
</com.android.packageinstaller.permission.ui.ManualLayoutFrame>
diff --git a/src/com/android/packageinstaller/permission/ui/ManualLayoutFrame.java b/src/com/android/packageinstaller/permission/ui/ManualLayoutFrame.java
index a20c952..0b07c80 100644
--- a/src/com/android/packageinstaller/permission/ui/ManualLayoutFrame.java
+++ b/src/com/android/packageinstaller/permission/ui/ManualLayoutFrame.java
@@ -61,8 +61,13 @@
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
+ // We want to keep the content bottom at the same place to avoid movement of the "Allow"
+ // button.
+ // Try to keep the content bottom at the same height. If this would move the dialog out of
+ // the top of the screen move it down as much as possible, then keep it at that position for
+ // the rest of the sequence of permission dialogs.
View content = getChildAt(0);
- if (mContentBottom == 0) {
+ if (mContentBottom == 0 || content.getMeasuredHeight() > mContentBottom) {
mContentBottom = (getMeasuredHeight() + content.getMeasuredHeight()) / 2;
}
final int contentLeft = (getMeasuredWidth() - content.getMeasuredWidth()) / 2;