Merge "AudioDeviceInventory: reapply preferred device roles when needed" into udc-dev am: 49d88aa34b am: db8c552ae9
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23587357 Change-Id: I4a40cf02bd7bb87a59584aa5dd3492621737dda9 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -2214,6 +2214,7 @@ import java.util.concurrent.atomic.AtomicBoolean;
|
||||
mDeviceInventory.removePreferredDevicesForStrategyInt(mAccessibilityStrategyId);
|
||||
}
|
||||
mDeviceInventory.applyConnectedDevicesRoles();
|
||||
mDeviceInventory.reapplyExternalDevicesRoles();
|
||||
} else {
|
||||
mDeviceInventory.setPreferredDevicesForStrategyInt(
|
||||
mCommunicationStrategyId, Arrays.asList(preferredCommunicationDevice));
|
||||
|
||||
@@ -361,23 +361,34 @@ public class AudioDeviceInventory {
|
||||
AudioSystem.DEVICE_STATE_AVAILABLE,
|
||||
di.mDeviceCodecFormat);
|
||||
}
|
||||
mAppliedStrategyRoles.clear();
|
||||
mAppliedStrategyRolesInt.clear();
|
||||
mAppliedPresetRoles.clear();
|
||||
mAppliedPresetRolesInt.clear();
|
||||
applyConnectedDevicesRoles_l();
|
||||
}
|
||||
reapplyExternalDevicesRoles();
|
||||
}
|
||||
|
||||
/*package*/ void reapplyExternalDevicesRoles() {
|
||||
synchronized (mDevicesLock) {
|
||||
mAppliedStrategyRoles.clear();
|
||||
mAppliedPresetRoles.clear();
|
||||
}
|
||||
synchronized (mPreferredDevices) {
|
||||
mPreferredDevices.forEach((strategy, devices) -> {
|
||||
setPreferredDevicesForStrategy(strategy, devices); });
|
||||
setPreferredDevicesForStrategy(strategy, devices);
|
||||
});
|
||||
}
|
||||
synchronized (mNonDefaultDevices) {
|
||||
mNonDefaultDevices.forEach((strategy, devices) -> {
|
||||
addDevicesRoleForStrategy(strategy, AudioSystem.DEVICE_ROLE_DISABLED,
|
||||
devices, false /* internal */); });
|
||||
devices, false /* internal */);
|
||||
});
|
||||
}
|
||||
synchronized (mPreferredDevicesForCapturePreset) {
|
||||
// TODO: call audiosystem to restore
|
||||
mPreferredDevicesForCapturePreset.forEach((capturePreset, devices) -> {
|
||||
setDevicesRoleForCapturePreset(
|
||||
capturePreset, AudioSystem.DEVICE_ROLE_PREFERRED, devices);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1163,6 +1174,7 @@ public class AudioDeviceInventory {
|
||||
return mAudioSystem.removeDevicesRoleForStrategy(s, r, d); });
|
||||
purgeRoles(mAppliedPresetRolesInt, (p, r, d) -> {
|
||||
return mAudioSystem.removeDevicesRoleForCapturePreset(p, r, d); });
|
||||
reapplyExternalDevicesRoles();
|
||||
}
|
||||
|
||||
@GuardedBy("mDevicesLock")
|
||||
|
||||
Reference in New Issue
Block a user