Merge "Add last connected device concept"

This commit is contained in:
Treehugger Robot
2019-12-07 00:39:13 +00:00
committed by Gerrit Code Review

View File

@@ -35,7 +35,6 @@ import android.os.RemoteCallbackList;
import android.os.RemoteException; import android.os.RemoteException;
import android.os.UserHandle; import android.os.UserHandle;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.ArrayMap;
import android.util.ArraySet; import android.util.ArraySet;
import android.util.Log; import android.util.Log;
import android.util.Slog; import android.util.Slog;
@@ -45,6 +44,7 @@ import com.android.internal.annotations.VisibleForTesting;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.Set; import java.util.Set;
/** /**
@@ -58,7 +58,7 @@ public class AudioDeviceInventory {
// Actual list of connected devices // Actual list of connected devices
// Key for map created from DeviceInfo.makeDeviceListKey() // Key for map created from DeviceInfo.makeDeviceListKey()
private final ArrayMap<String, DeviceInfo> mConnectedDevices = new ArrayMap<>(); private final LinkedHashMap<String, DeviceInfo> mConnectedDevices = new LinkedHashMap<>();
private @NonNull AudioDeviceBroker mDeviceBroker; private @NonNull AudioDeviceBroker mDeviceBroker;
@@ -148,8 +148,7 @@ public class AudioDeviceInventory {
*/ */
/*package*/ void onRestoreDevices() { /*package*/ void onRestoreDevices() {
synchronized (mConnectedDevices) { synchronized (mConnectedDevices) {
for (int i = 0; i < mConnectedDevices.size(); i++) { for (DeviceInfo di : mConnectedDevices.values()) {
DeviceInfo di = mConnectedDevices.valueAt(i);
AudioSystem.setDeviceConnectionState( AudioSystem.setDeviceConnectionState(
di.mDeviceType, di.mDeviceType,
AudioSystem.DEVICE_STATE_AVAILABLE, AudioSystem.DEVICE_STATE_AVAILABLE,
@@ -799,11 +798,10 @@ public class AudioDeviceInventory {
} }
int delay = 0; int delay = 0;
Set<Integer> devices = new HashSet<>(); Set<Integer> devices = new HashSet<>();
for (int i = 0; i < mConnectedDevices.size(); i++) { for (DeviceInfo di : mConnectedDevices.values()) {
int dev = mConnectedDevices.valueAt(i).mDeviceType; if (((di.mDeviceType & AudioSystem.DEVICE_BIT_IN) == 0)
if (((dev & AudioSystem.DEVICE_BIT_IN) == 0) && BECOMING_NOISY_INTENT_DEVICES_SET.contains(di.mDeviceType)) {
&& BECOMING_NOISY_INTENT_DEVICES_SET.contains(dev)) { devices.add(di.mDeviceType);
devices.add(dev);
} }
} }
if (musicDevice == AudioSystem.DEVICE_NONE) { if (musicDevice == AudioSystem.DEVICE_NONE) {