Merge "Reset HotwordDetectionConnection when VoiceInteractionService crashes" into sc-dev am: a687e13ff3

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

Change-Id: I4338b8db488e2aa35293bd1fbb7f5e225b7cb3ef
This commit is contained in:
TreeHugger Robot
2021-07-17 01:56:18 +00:00
committed by Automerger Merge Worker

View File

@@ -126,6 +126,9 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
final ServiceConnection mConnection = new ServiceConnection() {
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
if (DEBUG) {
Slog.d(TAG, "onServiceConnected to " + name + " for user(" + mUser + ")");
}
synchronized (mServiceStub) {
mService = IVoiceInteractionService.Stub.asInterface(service);
try {
@@ -137,7 +140,13 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
@Override
public void onServiceDisconnected(ComponentName name) {
mService = null;
if (DEBUG) {
Slog.d(TAG, "onServiceDisconnected to " + name);
}
synchronized (mServiceStub) {
mService = null;
resetHotwordDetectionConnectionLocked();
}
}
};
@@ -575,6 +584,20 @@ class VoiceInteractionManagerServiceImpl implements VoiceInteractionSessionConne
mHotwordDetectionConnection.forceRestart();
}
void resetHotwordDetectionConnectionLocked() {
if (DEBUG) {
Slog.d(TAG, "resetHotwordDetectionConnectionLocked");
}
if (mHotwordDetectionConnection == null) {
if (DEBUG) {
Slog.w(TAG, "reset, but no hotword detection connection");
}
return;
}
mHotwordDetectionConnection.cancelLocked();
mHotwordDetectionConnection = null;
}
public void dumpLocked(FileDescriptor fd, PrintWriter pw, String[] args) {
if (!mValid) {
pw.print(" NOT VALID: ");