summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2015-06-08 17:07:40 -0700
committerDianne Hackborn <hackbod@google.com>2015-06-09 14:15:49 -0700
commita3acdb33df7c7be7ff3d9f376ff833e4b0c1d897 (patch)
tree452c3cd2b7a2706fcbdcd1432e820c71e31b13bb /tests
parentea7438e4a698945b3e3a7786cff726c337291a68 (diff)
downloadframeworks_base-a3acdb33df7c7be7ff3d9f376ff833e4b0c1d897.zip
frameworks_base-a3acdb33df7c7be7ff3d9f376ff833e4b0c1d897.tar.gz
frameworks_base-a3acdb33df7c7be7ff3d9f376ff833e4b0c1d897.tar.bz2
Fix issue #21621920: VI: need mechanism to get current request
Add new APIs to associate a Request with a name, get all active requests, and get active request by name. Also add a new Activity.onProvideReferrer() which will allow applications to propagate referrer information to the assistant (and other apps they launch) in a consistent way. Change-Id: I4ef74b5ed07447da9303a74a1bdf42e4966df363
Diffstat (limited to 'tests')
-rw-r--r--tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java13
-rw-r--r--tests/VoiceInteraction/src/com/android/test/voiceinteraction/TestInteractionActivity.java54
-rw-r--r--tests/VoiceInteraction/src/com/android/test/voiceinteraction/VoiceInteractionMain.java6
3 files changed, 51 insertions, 22 deletions
diff --git a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
index dae1ac3..3090a11 100644
--- a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
+++ b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
@@ -23,6 +23,7 @@ import android.app.AssistStructure;
import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
+import android.net.Uri;
import android.os.Bundle;
import android.service.voice.VoiceInteractionSession;
import android.util.Log;
@@ -79,6 +80,9 @@ public class MainInteractionSession extends VoiceInteractionSession
super.onShow(args, showFlags);
mState = STATE_IDLE;
mStartIntent = args.getParcelable("intent");
+ if (mStartIntent == null) {
+ mStartIntent = new Intent(getContext(), TestInteractionActivity.class);
+ }
if (mAssistVisualizer != null) {
mAssistVisualizer.clearAssistData();
}
@@ -119,6 +123,7 @@ public class MainInteractionSession extends VoiceInteractionSession
}
public void onHandleAssist(Bundle assistBundle) {
+ boolean hasStructure = false;
if (assistBundle != null) {
Bundle assistContext = assistBundle.getBundle(Intent.EXTRA_ASSIST_CONTEXT);
if (assistContext != null) {
@@ -126,6 +131,7 @@ public class MainInteractionSession extends VoiceInteractionSession
if (mAssistStructure != null) {
if (mAssistVisualizer != null) {
mAssistVisualizer.setAssistStructure(mAssistStructure);
+ hasStructure = true;
}
}
AssistContent content = AssistContent.getAssistContent(assistContext);
@@ -133,10 +139,13 @@ public class MainInteractionSession extends VoiceInteractionSession
Log.i(TAG, "Assist intent: " + content.getIntent());
Log.i(TAG, "Assist clipdata: " + content.getClipData());
}
- return;
+ }
+ Uri referrer = assistBundle.getParcelable(Intent.EXTRA_REFERRER);
+ if (referrer != null) {
+ Log.i(TAG, "Referrer: " + referrer);
}
}
- if (mAssistVisualizer != null) {
+ if (!hasStructure && mAssistVisualizer != null) {
mAssistVisualizer.clearAssistData();
}
}
diff --git a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/TestInteractionActivity.java b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/TestInteractionActivity.java
index 67db289..c038414 100644
--- a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/TestInteractionActivity.java
+++ b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/TestInteractionActivity.java
@@ -23,15 +23,18 @@ import android.content.Intent;
import android.os.Bundle;
import android.service.voice.VoiceInteractionService;
import android.util.Log;
-import android.view.Gravity;
import android.view.View;
-import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
public class TestInteractionActivity extends Activity implements View.OnClickListener {
static final String TAG = "TestInteractionActivity";
+ static final String REQUEST_ABORT = "abort";
+ static final String REQUEST_COMPLETE = "complete";
+ static final String REQUEST_PICK = "pick";
+ static final String REQUEST_CONFIRM = "confirm";
+
VoiceInteractor mInteractor;
VoiceInteractor.Request mCurrentRequest = null;
TextView mLog;
@@ -72,21 +75,32 @@ public class TestInteractionActivity extends Activity implements View.OnClickLis
mCancelButton.setOnClickListener(this);
mInteractor = getVoiceInteractor();
- mCurrentRequest = new VoiceInteractor.ConfirmationRequest(
- new VoiceInteractor.Prompt("This is a confirmation"), null) {
- @Override
- public void onCancel() {
- Log.i(TAG, "Canceled!");
- getActivity().finish();
- }
-
- @Override
- public void onConfirmationResult(boolean confirmed, Bundle result) {
- Log.i(TAG, "Confirmation result: confirmed=" + confirmed + " result=" + result);
- getActivity().finish();
- }
- };
- mInteractor.submitRequest(mCurrentRequest);
+
+ VoiceInteractor.Request[] active = mInteractor.getActiveRequests();
+ for (int i=0; i<active.length; i++) {
+ Log.i(TAG, "Active #" + i + " / " + active[i].getName() + ": " + active[i]);
+ }
+
+ mCurrentRequest = mInteractor.getActiveRequest(REQUEST_CONFIRM);
+ if (mCurrentRequest == null) {
+ mCurrentRequest = new VoiceInteractor.ConfirmationRequest(
+ new VoiceInteractor.Prompt("This is a confirmation"), null) {
+ @Override
+ public void onCancel() {
+ Log.i(TAG, "Canceled!");
+ getActivity().finish();
+ }
+
+ @Override
+ public void onConfirmationResult(boolean confirmed, Bundle result) {
+ Log.i(TAG, "Confirmation result: confirmed=" + confirmed + " result=" + result);
+ getActivity().finish();
+ }
+ };
+ mInteractor.submitRequest(mCurrentRequest, REQUEST_CONFIRM);
+ } else {
+ Log.i(TAG, "Restarting with active confirmation: " + mCurrentRequest);
+ }
}
@Override
@@ -112,7 +126,7 @@ public class TestInteractionActivity extends Activity implements View.OnClickLis
getActivity().finish();
}
};
- mInteractor.submitRequest(req);
+ mInteractor.submitRequest(req, REQUEST_ABORT);
} else if (v == mCompleteButton) {
VoiceInteractor.CompleteVoiceRequest req = new VoiceInteractor.CompleteVoiceRequest(
new VoiceInteractor.Prompt("Woohoo, completed!"), null) {
@@ -129,7 +143,7 @@ public class TestInteractionActivity extends Activity implements View.OnClickLis
getActivity().finish();
}
};
- mInteractor.submitRequest(req);
+ mInteractor.submitRequest(req, REQUEST_COMPLETE);
} else if (v == mPickButton) {
VoiceInteractor.PickOptionRequest.Option[] options =
new VoiceInteractor.PickOptionRequest.Option[5];
@@ -168,7 +182,7 @@ public class TestInteractionActivity extends Activity implements View.OnClickLis
}
}
};
- mInteractor.submitRequest(req);
+ mInteractor.submitRequest(req, REQUEST_PICK);
} else if (v == mJumpOutButton) {
Log.i(TAG, "Jump out");
Intent intent = new Intent(Intent.ACTION_MAIN);
diff --git a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/VoiceInteractionMain.java b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/VoiceInteractionMain.java
index 5d212a4..a7636c3 100644
--- a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/VoiceInteractionMain.java
+++ b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/VoiceInteractionMain.java
@@ -18,6 +18,7 @@ package com.android.test.voiceinteraction;
import android.app.Activity;
import android.content.Intent;
+import android.net.Uri;
import android.os.Bundle;
import android.view.View;
@@ -41,6 +42,11 @@ public class VoiceInteractionMain extends Activity {
super.onDestroy();
}
+ @Override
+ public Uri onProvideReferrer() {
+ return Uri.parse("http://www.example.com/VoiceInteractionMain");
+ }
+
View.OnClickListener mStartListener = new View.OnClickListener() {
public void onClick(View v) {
startService(new Intent(VoiceInteractionMain.this, MainInteractionService.class));