new: swap button moves dialog to bottom of screen Bug: 285450365
Change-Id: I795e773f33cde68723c7519a9d9d5d7ab36d34c4
diff --git a/common/device-side/interactive/src/main/java/com/android/interactive/Step.java b/common/device-side/interactive/src/main/java/com/android/interactive/Step.java
index 07d0f03..abe25f1 100644
--- a/common/device-side/interactive/src/main/java/com/android/interactive/Step.java
+++ b/common/device-side/interactive/src/main/java/com/android/interactive/Step.java
@@ -256,6 +256,21 @@
}
/**
+ * Adds small button with a single up/down arrow, used for moving the text box to the
+ * bottom of the screen in case it covers some critical area of the app
+ */
+
+ protected void addSwapButton() {
+ Button btn = new Button(TestApis.context().instrumentedContext());
+ // up/down arrow
+ btn.setText("\u21F5");
+ btn.setOnClickListener(v -> swap());
+
+ GridLayout layout = mInstructionView.findViewById(R.id.buttons);
+ layout.addView(btn);
+ }
+
+ /**
* Adds a button to immediately mark the test as failed and request the tester to provide the
* reason for failure.
*/
@@ -296,6 +311,19 @@
});
}
+ /**
+ * Swaps the prompt from the top to the bottom of the user screen
+ */
+ protected void swap() {
+ WindowManager.LayoutParams params = (WindowManager.LayoutParams) mInstructionView.getLayoutParams();
+ if (params.gravity == Gravity.TOP) {
+ params.gravity = Gravity.BOTTOM;
+ } else {
+ params.gravity = Gravity.TOP;
+ }
+ sWindowManager.updateViewLayout(mInstructionView, params);
+ }
+
protected void close() {
if (mInstructionView != null) {
TestApis.context().instrumentationContext().getMainExecutor().execute(() -> {
diff --git a/common/device-side/interactive/src/main/java/com/android/interactive/steps/ActAndConfirmStep.java b/common/device-side/interactive/src/main/java/com/android/interactive/steps/ActAndConfirmStep.java
index 1333a6e..9ce5549 100644
--- a/common/device-side/interactive/src/main/java/com/android/interactive/steps/ActAndConfirmStep.java
+++ b/common/device-side/interactive/src/main/java/com/android/interactive/steps/ActAndConfirmStep.java
@@ -36,5 +36,6 @@
addButton("Done", this::pass);
addFailButton();
+ addSwapButton();
}
}
diff --git a/common/device-side/interactive/src/main/java/com/android/interactive/steps/ActAndWaitStep.java b/common/device-side/interactive/src/main/java/com/android/interactive/steps/ActAndWaitStep.java
index 22873cd..944ec8c 100644
--- a/common/device-side/interactive/src/main/java/com/android/interactive/steps/ActAndWaitStep.java
+++ b/common/device-side/interactive/src/main/java/com/android/interactive/steps/ActAndWaitStep.java
@@ -45,6 +45,7 @@
public void interact() {
show(mInstruction);
addFailButton();
+ addSwapButton();
}
@Override
diff --git a/common/device-side/interactive/src/main/java/com/android/interactive/steps/MultipleChoiceStep.java b/common/device-side/interactive/src/main/java/com/android/interactive/steps/MultipleChoiceStep.java
index 0f94ecf..5625781 100644
--- a/common/device-side/interactive/src/main/java/com/android/interactive/steps/MultipleChoiceStep.java
+++ b/common/device-side/interactive/src/main/java/com/android/interactive/steps/MultipleChoiceStep.java
@@ -46,5 +46,6 @@
});
}
addFailButton();
+ addSwapButton();
}
}
diff --git a/common/device-side/interactive/src/main/java/com/android/interactive/steps/YesNoStep.java b/common/device-side/interactive/src/main/java/com/android/interactive/steps/YesNoStep.java
index 6f78875..bd5cd72 100644
--- a/common/device-side/interactive/src/main/java/com/android/interactive/steps/YesNoStep.java
+++ b/common/device-side/interactive/src/main/java/com/android/interactive/steps/YesNoStep.java
@@ -43,5 +43,6 @@
close();
});
addFailButton();
+ addSwapButton();
}
}