Merge "Merge "cec: resolve HdmiCecTvPowerToggleTest issue [1/1]" am: 96c64c020c" into stage-aosp-master

This commit is contained in:
Automerger Merge Worker
2023-05-22 18:17:43 +00:00
committed by Android (Google) Code Review
2 changed files with 18 additions and 0 deletions

View File

@@ -1125,6 +1125,16 @@ abstract class HdmiCecLocalDevice {
removeActionExcept(clazz, null); removeActionExcept(clazz, null);
} }
// Remove all running actions.
@ServiceThreadOnly
void removeAllActions() {
assertRunOnServiceThread();
for (HdmiCecFeatureAction action : mActions) {
action.finish(false);
}
mActions.clear();
}
// Remove all actions matched with the given Class type besides |exception|. // Remove all actions matched with the given Class type besides |exception|.
@ServiceThreadOnly @ServiceThreadOnly
<T extends HdmiCecFeatureAction> void removeActionExcept( <T extends HdmiCecFeatureAction> void removeActionExcept(

View File

@@ -229,6 +229,14 @@ public class HdmiCecLocalDeviceAudioSystem extends HdmiCecLocalDeviceSource {
super.disableDevice(initiatedByCec, callback); super.disableDevice(initiatedByCec, callback);
assertRunOnServiceThread(); assertRunOnServiceThread();
mService.unregisterTvInputCallback(mTvInputCallback); mService.unregisterTvInputCallback(mTvInputCallback);
// Removing actions and invoking the callback is similar to
// HdmiCecLocalDevicePlayback#disableDevice and HdmiCecLocalDeviceTv#disableDevice,
// with the difference that in those classes only specific actions are removed and
// here we remove all actions. We don't expect any issues with removing all actions
// at this time, but we have to pay attention in the future.
removeAllActions();
// Call the callback instantly or else it will be called 5 seconds later.
checkIfPendingActionsCleared();
} }
@Override @Override