Merge "Implement a callback to report HotwordDetectionService status" into sc-dev am: 822d0b7f77
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/14747457 Change-Id: I8ef75db015d1a655103ed723592676bca1044960
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user