From a3acdb33df7c7be7ff3d9f376ff833e4b0c1d897 Mon Sep 17 00:00:00 2001 From: Dianne Hackborn Date: Mon, 8 Jun 2015 17:07:40 -0700 Subject: 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 --- .../voiceinteraction/MainInteractionSession.java | 13 +++++- .../voiceinteraction/TestInteractionActivity.java | 54 ++++++++++++++-------- .../voiceinteraction/VoiceInteractionMain.java | 6 +++ 3 files changed, 51 insertions(+), 22 deletions(-) (limited to 'tests') 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