summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2015-07-15 14:20:51 -0700
committerDianne Hackborn <hackbod@google.com>2015-07-15 14:20:51 -0700
commit1de1186d28f0ca7c0b6298edfa8ae497e651ba87 (patch)
treea2fb5d493d38c1e5879a6e37e3e9d2773d8823aa /tests
parent1d4247c4cc89c6d62e44ed3115f26579979b44b5 (diff)
downloadframeworks_base-1de1186d28f0ca7c0b6298edfa8ae497e651ba87.zip
frameworks_base-1de1186d28f0ca7c0b6298edfa8ae497e651ba87.tar.gz
frameworks_base-1de1186d28f0ca7c0b6298edfa8ae497e651ba87.tar.bz2
Implement issue #22403908: Enable assistant to refuse context sharing
New APIs allow the voice interaction service to set/retrieve a filter for which of the show flags are allowed. Change-Id: I588cbe55afee0548ad3afa22d3a7d3bc43cb54a6
Diffstat (limited to 'tests')
-rw-r--r--tests/VoiceInteraction/res/layout/voice_interaction_session.xml71
-rw-r--r--tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java42
2 files changed, 89 insertions, 24 deletions
diff --git a/tests/VoiceInteraction/res/layout/voice_interaction_session.xml b/tests/VoiceInteraction/res/layout/voice_interaction_session.xml
index 610f30b..dc4e31b 100644
--- a/tests/VoiceInteraction/res/layout/voice_interaction_session.xml
+++ b/tests/VoiceInteraction/res/layout/voice_interaction_session.xml
@@ -31,33 +31,56 @@
android:layout_height="match_parent"
android:fitsSystemWindows="true">
- <LinearLayout android:id="@+id/top_content"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_gravity="top"
- android:orientation="horizontal"
- android:background="#ffffffff"
- android:elevation="8dp"
- >
- <ImageView android:id="@+id/screenshot"
- android:layout_width="wrap_content"
- android:layout_height="46dp"
- android:adjustViewBounds="true" />
- <View android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_weight="1" />
- <Button android:id="@+id/do_tree"
- android:layout_width="wrap_content"
+ <LinearLayout
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/tree" />
- <Button android:id="@+id/do_text"
- android:layout_width="wrap_content"
+ android:layout_gravity="top"
+ android:orientation="vertical"
+ android:background="#ffffffff"
+ android:elevation="8dp"
+ >
+ <LinearLayout android:id="@+id/top_content"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/text" />
- <Button android:id="@+id/start"
- android:layout_width="wrap_content"
+ android:orientation="horizontal"
+ >
+ <ImageView android:id="@+id/screenshot"
+ android:layout_width="wrap_content"
+ android:layout_height="46dp"
+ android:adjustViewBounds="true" />
+ <View android:layout_width="0dp"
+ android:layout_height="0dp"
+ android:layout_weight="1" />
+ <CheckBox android:id="@+id/show_options"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content" />
+ <Button android:id="@+id/do_tree"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/tree" />
+ <Button android:id="@+id/do_text"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/text" />
+ <Button android:id="@+id/start"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="@string/start" />
+ </LinearLayout>
+ <LinearLayout android:id="@+id/options"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/start" />
+ android:orientation="vertical"
+ >
+ <CheckBox android:id="@+id/disallow_structure"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Disallow context" />
+ <CheckBox android:id="@+id/disallow_screenshot"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="Disallow screenshot" />
+ </LinearLayout>
</LinearLayout>
<LinearLayout android:id="@+id/bottom_content"
diff --git a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
index a6585ba..8796c9f 100644
--- a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
+++ b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
@@ -29,6 +29,7 @@ import android.service.voice.VoiceInteractionSession;
import android.util.Log;
import android.view.View;
import android.widget.Button;
+import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.TextView;
@@ -45,6 +46,10 @@ public class MainInteractionSession extends VoiceInteractionSession
Button mTreeButton;
Button mTextButton;
Button mStartButton;
+ CheckBox mOptionsCheck;
+ View mOptionsContainer;
+ CheckBox mDisallowAssist;
+ CheckBox mDisallowScreenshot;
ImageView mScreenshot;
ImageView mFullScreenshot;
Button mConfirmButton;
@@ -122,15 +127,34 @@ public class MainInteractionSession extends VoiceInteractionSession
mScreenshot = (ImageView)mContentView.findViewById(R.id.screenshot);
mScreenshot.setOnClickListener(this);
mFullScreenshot = (ImageView)mContentView.findViewById(R.id.full_screenshot);
+ mOptionsCheck = (CheckBox)mContentView.findViewById(R.id.show_options);
+ mOptionsCheck.setOnClickListener(this);
+ mOptionsContainer = mContentView.findViewById(R.id.options);
+ mDisallowAssist = (CheckBox)mContentView.findViewById(R.id.disallow_structure);
+ mDisallowAssist.setOnClickListener(this);
+ mDisallowScreenshot = (CheckBox)mContentView.findViewById(R.id.disallow_screenshot);
+ mDisallowScreenshot.setOnClickListener(this);
mConfirmButton = (Button)mContentView.findViewById(R.id.confirm);
mConfirmButton.setOnClickListener(this);
mCompleteButton = (Button)mContentView.findViewById(R.id.complete);
mCompleteButton.setOnClickListener(this);
mAbortButton = (Button)mContentView.findViewById(R.id.abort);
mAbortButton.setOnClickListener(this);
+ refreshOptions();
return mContentView;
}
+ void refreshOptions() {
+ if (mOptionsCheck.isChecked()) {
+ mOptionsContainer.setVisibility(View.VISIBLE);
+ int flags = getDisabledShowContext();
+ mDisallowAssist.setChecked((flags & SHOW_WITH_ASSIST) != 0);
+ mDisallowScreenshot.setChecked((flags & SHOW_WITH_SCREENSHOT) != 0);
+ } else {
+ mOptionsContainer.setVisibility(View.GONE);
+ }
+ }
+
public void onHandleAssist(Bundle assistBundle) {
}
@@ -202,6 +226,24 @@ public class MainInteractionSession extends VoiceInteractionSession
if (mAssistVisualizer != null) {
mAssistVisualizer.logText();
}
+ } else if (v == mOptionsCheck) {
+ refreshOptions();
+ } else if (v == mDisallowAssist) {
+ int flags = getDisabledShowContext();
+ if (mDisallowAssist.isChecked()) {
+ flags |= SHOW_WITH_ASSIST;
+ } else {
+ flags &= ~SHOW_WITH_ASSIST;
+ }
+ setDisabledShowContext(flags);
+ } else if (v == mDisallowScreenshot) {
+ int flags = getDisabledShowContext();
+ if (mDisallowScreenshot.isChecked()) {
+ flags |= SHOW_WITH_SCREENSHOT;
+ } else {
+ flags &= ~SHOW_WITH_SCREENSHOT;
+ }
+ setDisabledShowContext(flags);
} else if (v == mStartButton) {
mState = STATE_LAUNCHING;
updateState();