Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d0a15902 authored by Dianne Hackborn's avatar Dianne Hackborn
Browse files

Fix issue #22124996: VI: Command Request not Active

This stupid thing wasn't even completely implemented
in HandlerCaller!  D'oh!

Change-Id: I0dac42c208fa0f08a6e20a6cb17b072f51efcaa7
parent 1d4247c4
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -650,7 +650,7 @@ public class VoiceInteractionSession implements KeyEvent.Callback, ComponentCall
    class MyCallbacks implements HandlerCaller.Callback, SoftInputWindow.Callback {
        @Override
        public void executeMessage(Message msg) {
            SomeArgs args;
            SomeArgs args = null;
            switch (msg.what) {
                case MSG_START_CONFIRMATION:
                    if (DEBUG) Log.d(TAG, "onConfirm: req=" + msg.obj);
@@ -676,6 +676,8 @@ public class VoiceInteractionSession implements KeyEvent.Callback, ComponentCall
                    args = (SomeArgs)msg.obj;
                    if (DEBUG) Log.d(TAG, "onGetSupportedCommands: cmds=" + args.arg1);
                    args.arg1 = onGetSupportedCommands((String[]) args.arg1);
                    args.complete();
                    args = null;
                    break;
                case MSG_CANCEL:
                    if (DEBUG) Log.d(TAG, "onCancel: req=" + ((Request)msg.obj));
@@ -723,6 +725,9 @@ public class VoiceInteractionSession implements KeyEvent.Callback, ComponentCall
                    doHide();
                    break;
            }
            if (args != null) {
                args.recycle();
            }
        }

        @Override
+10 −0
Original line number Diff line number Diff line
@@ -73,6 +73,16 @@ public final class SomeArgs {
        }
    }

    public void complete() {
        synchronized (this) {
            if (mWaitState != WAIT_WAITING) {
                throw new IllegalStateException("Not waiting");
            }
            mWaitState = WAIT_FINISHED;
            notifyAll();
        }
    }

    public void recycle() {
        if (mInPool) {
            throw new IllegalStateException("Already recycled.");
+8 −0
Original line number Diff line number Diff line
@@ -103,6 +103,14 @@ public class TestInteractionActivity extends Activity implements View.OnClickLis
                }
            };
            mInteractor.submitRequest(mCurrentRequest, REQUEST_CONFIRM);
            String[] cmds = new String[] {
                    "com.android.test.voiceinteraction.COMMAND",
                    "com.example.foo.bar"
            };
            boolean sup[] = mInteractor.supportsCommands(cmds);
            for (int i=0; i<cmds.length; i++) {
                mLog.append(cmds[i] + ": " + (sup[i] ? "SUPPORTED" : "NOT SUPPORTED") + "\n");
            }
        } else {
            Log.i(TAG, "Restarting with active confirmation: " + mCurrentRequest);
        }