summaryrefslogtreecommitdiffstats
path: root/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
diff options
context:
space:
mode:
Diffstat (limited to 'tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java')
-rw-r--r--tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java106
1 files changed, 68 insertions, 38 deletions
diff --git a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
index 97c1e85..a6585ba 100644
--- a/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
+++ b/tests/VoiceInteraction/src/com/android/test/voiceinteraction/MainInteractionSession.java
@@ -60,7 +60,7 @@ public class MainInteractionSession extends VoiceInteractionSession
static final int STATE_COMMAND = 4;
static final int STATE_ABORT_VOICE = 5;
static final int STATE_COMPLETE_VOICE = 6;
- static final int STATE_DONE=7;
+ static final int STATE_DONE = 7;
int mState = STATE_IDLE;
VoiceInteractor.PickOptionRequest.Option[] mPendingOptions;
@@ -72,8 +72,8 @@ public class MainInteractionSession extends VoiceInteractionSession
}
@Override
- public void onCreate(Bundle args, int startFlags) {
- super.onCreate(args, startFlags);
+ public void onCreate() {
+ super.onCreate();
ActivityManager am = getContext().getSystemService(ActivityManager.class);
am.setWatchHeapLimit(40 * 1024 * 1024);
}
@@ -163,8 +163,8 @@ public class MainInteractionSession extends VoiceInteractionSession
if (screenshot != null) {
mScreenshot.setImageBitmap(screenshot);
mScreenshot.setAdjustViewBounds(true);
- mScreenshot.setMaxWidth(screenshot.getWidth()/3);
- mScreenshot.setMaxHeight(screenshot.getHeight()/3);
+ mScreenshot.setMaxWidth(screenshot.getWidth() / 3);
+ mScreenshot.setMaxHeight(screenshot.getHeight() / 3);
mFullScreenshot.setImageBitmap(screenshot);
} else {
mScreenshot.setImageDrawable(null);
@@ -207,11 +207,12 @@ public class MainInteractionSession extends VoiceInteractionSession
updateState();
startVoiceActivity(mStartIntent);
} else if (v == mConfirmButton) {
- if (mState == STATE_CONFIRM) {
- mPendingRequest.sendConfirmResult(true, null);
+ if (mPendingRequest instanceof ConfirmationRequest) {
+ ((ConfirmationRequest)mPendingRequest).sendConfirmationResult(true, null);
mPendingRequest = null;
mState = STATE_LAUNCHING;
- } else if (mState == STATE_PICK_OPTION) {
+ } else if (mPendingRequest instanceof PickOptionRequest) {
+ PickOptionRequest pick = (PickOptionRequest)mPendingRequest;
int numReturn = mPendingOptions.length/2;
if (numReturn <= 0) {
numReturn = 1;
@@ -223,23 +224,25 @@ public class MainInteractionSession extends VoiceInteractionSession
}
mPendingOptions = picked;
if (picked.length <= 1) {
- mPendingRequest.sendPickOptionResult(true, picked, null);
+ pick.sendPickOptionResult(picked, null);
mPendingRequest = null;
mState = STATE_LAUNCHING;
} else {
- mPendingRequest.sendPickOptionResult(false, picked, null);
+ pick.sendIntermediatePickOptionResult(picked, null);
updatePickText();
}
- } else if (mPendingRequest != null) {
- mPendingRequest.sendCommandResult(true, null);
+ } else if (mPendingRequest instanceof CommandRequest) {
+ Bundle result = new Bundle();
+ result.putString("key", "a result!");
+ ((CommandRequest)mPendingRequest).sendResult(result);
mPendingRequest = null;
mState = STATE_LAUNCHING;
}
- } else if (v == mAbortButton) {
- mPendingRequest.sendAbortVoiceResult(null);
+ } else if (v == mAbortButton && mPendingRequest instanceof AbortVoiceRequest) {
+ ((AbortVoiceRequest)mPendingRequest).sendAbortResult(null);
mPendingRequest = null;
- } else if (v == mCompleteButton) {
- mPendingRequest.sendCompleteVoiceResult(null);
+ } else if (v == mCompleteButton && mPendingRequest instanceof CompleteVoiceRequest) {
+ ((CompleteVoiceRequest)mPendingRequest).sendCompleteResult(null);
mPendingRequest = null;
} else if (v == mScreenshot) {
if (mFullScreenshot.getVisibility() != View.VISIBLE) {
@@ -261,29 +264,45 @@ public class MainInteractionSession extends VoiceInteractionSession
}
@Override
- public boolean[] onGetSupportedCommands(Caller caller, String[] commands) {
- return new boolean[commands.length];
+ public boolean[] onGetSupportedCommands(String[] commands) {
+ boolean[] res = new boolean[commands.length];
+ for (int i=0; i<commands.length; i++) {
+ if ("com.android.test.voiceinteraction.COMMAND".equals(commands[i])) {
+ res[i] = true;
+ }
+ }
+ return res;
}
+ void setPrompt(VoiceInteractor.Prompt prompt) {
+ if (prompt == null) {
+ mText.setText("(null)");
+ mPendingPrompt = "";
+ } else {
+ mText.setText(prompt.getVisualPrompt());
+ mPendingPrompt = prompt.getVisualPrompt();
+ }
+ }
+
@Override
- public void onConfirm(Caller caller, Request request, CharSequence prompt, Bundle extras) {
- Log.i(TAG, "onConfirm: prompt=" + prompt + " extras=" + extras);
- mText.setText(prompt);
+ public void onRequestConfirmation(ConfirmationRequest request) {
+ Log.i(TAG, "onConfirm: prompt=" + request.getVoicePrompt() + " extras="
+ + request.getExtras());
+ setPrompt(request.getVoicePrompt());
mConfirmButton.setText("Confirm");
mPendingRequest = request;
- mPendingPrompt = prompt;
mState = STATE_CONFIRM;
updateState();
}
@Override
- public void onPickOption(Caller caller, Request request, CharSequence prompt,
- VoiceInteractor.PickOptionRequest.Option[] options, Bundle extras) {
- Log.i(TAG, "onPickOption: prompt=" + prompt + " options=" + options + " extras=" + extras);
+ public void onRequestPickOption(PickOptionRequest request) {
+ Log.i(TAG, "onPickOption: prompt=" + request.getVoicePrompt() + " options="
+ + request.getOptions() + " extras=" + request.getExtras());
mConfirmButton.setText("Pick Option");
mPendingRequest = request;
- mPendingPrompt = prompt;
- mPendingOptions = options;
+ setPrompt(request.getVoicePrompt());
+ mPendingOptions = request.getOptions();
mState = STATE_PICK_OPTION;
updatePickText();
updateState();
@@ -303,27 +322,33 @@ public class MainInteractionSession extends VoiceInteractionSession
}
@Override
- public void onCompleteVoice(Caller caller, Request request, CharSequence message, Bundle extras) {
- Log.i(TAG, "onCompleteVoice: message=" + message + " extras=" + extras);
- mText.setText(message);
+ public void onRequestCompleteVoice(CompleteVoiceRequest request) {
+ Log.i(TAG, "onCompleteVoice: message=" + request.getVoicePrompt() + " extras="
+ + request.getExtras());
+ setPrompt(request.getVoicePrompt());
mPendingRequest = request;
mState = STATE_COMPLETE_VOICE;
updateState();
}
@Override
- public void onAbortVoice(Caller caller, Request request, CharSequence message, Bundle extras) {
- Log.i(TAG, "onAbortVoice: message=" + message + " extras=" + extras);
- mText.setText(message);
+ public void onRequestAbortVoice(AbortVoiceRequest request) {
+ Log.i(TAG, "onAbortVoice: message=" + request.getVoicePrompt() + " extras="
+ + request.getExtras());
+ setPrompt(request.getVoicePrompt());
mPendingRequest = request;
mState = STATE_ABORT_VOICE;
updateState();
}
@Override
- public void onCommand(Caller caller, Request request, String command, Bundle extras) {
- Log.i(TAG, "onCommand: command=" + command + " extras=" + extras);
- mText.setText("Command: " + command);
+ public void onRequestCommand(CommandRequest request) {
+ Bundle extras = request.getExtras();
+ if (extras != null) {
+ extras.getString("arg");
+ }
+ Log.i(TAG, "onCommand: command=" + request.getCommand() + " extras=" + extras);
+ mText.setText("Command: " + request.getCommand() + ", " + extras);
mConfirmButton.setText("Finish Command");
mPendingRequest = request;
mState = STATE_COMMAND;
@@ -331,8 +356,13 @@ public class MainInteractionSession extends VoiceInteractionSession
}
@Override
- public void onCancel(Request request) {
+ public void onCancelRequest(Request request) {
Log.i(TAG, "onCancel");
- request.sendCancelResult();
+ if (mPendingRequest == request) {
+ mPendingRequest = null;
+ mState = STATE_LAUNCHING;
+ updateState();
+ }
+ request.cancel();
}
}