Merge "Implement a callback to report HotwordDetectionService status" into sc-dev am: 822d0b7f77 am: 12b3ebd8bb

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14747457

Change-Id: I22be3807228a0cdcf9c3737d97d0d6bdb8cdb77e
This commit is contained in:
TreeHugger Robot
2021-06-03 09:32:42 +00:00
committed by Automerger Merge Worker

View File

@@ -22,6 +22,7 @@ import static com.android.internal.util.function.pooled.PooledLambda.obtainMessa
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.hardware.soundtrigger.SoundTrigger;
import android.media.AudioFormat;
import android.os.Handler;
import android.os.Looper;
@@ -31,6 +32,7 @@ import android.os.RemoteException;
import android.os.SharedMemory;
import android.util.Slog;
import com.android.internal.app.IHotwordRecognitionStatusCallback;
import com.android.internal.app.IVoiceInteractionManagerService;
import java.io.PrintWriter;
@@ -64,7 +66,8 @@ class SoftwareHotwordDetector extends AbstractHotwordDetector {
mAudioFormat = audioFormat;
mCallback = callback;
mHandler = new Handler(Looper.getMainLooper());
updateStateLocked(options, sharedMemory, null /* callback */);
updateStateLocked(options, sharedMemory,
new InitializationStateListener(mHandler, mCallback));
}
@RequiresPermission(RECORD_AUDIO)
@@ -133,6 +136,58 @@ class SoftwareHotwordDetector extends AbstractHotwordDetector {
}
}
private static class InitializationStateListener
extends IHotwordRecognitionStatusCallback.Stub {
private final Handler mHandler;
private final HotwordDetector.Callback mCallback;
InitializationStateListener(Handler handler, HotwordDetector.Callback callback) {
this.mHandler = handler;
this.mCallback = callback;
}
@Override
public void onKeyphraseDetected(SoundTrigger.KeyphraseRecognitionEvent recognitionEvent)
throws RemoteException {
}
@Override
public void onGenericSoundTriggerDetected(
SoundTrigger.GenericRecognitionEvent recognitionEvent) throws RemoteException {
}
@Override
public void onRejected(HotwordRejectedResult result) throws RemoteException {
}
@Override
public void onError(int status) throws RemoteException {
}
@Override
public void onRecognitionPaused() throws RemoteException {
}
@Override
public void onRecognitionResumed() throws RemoteException {
}
@Override
public void onStatusReported(int status) {
Slog.v(TAG, "onStatusReported" + (DEBUG ? "(" + status + ")" : ""));
mHandler.sendMessage(obtainMessage(
HotwordDetector.Callback::onHotwordDetectionServiceInitialized,
mCallback,
status));
}
}
/** @hide */
public void dump(String prefix, PrintWriter pw) {
// TODO: implement this