Loading media/java/android/media/audiopolicy/AudioProductStrategy.java +3 −2 Original line number Diff line number Diff line Loading @@ -356,8 +356,9 @@ public final class AudioProductStrategy implements Parcelable { */ public static List<AudioProductStrategy> filterNonInternalStrategies( List<AudioProductStrategy> strategies) { strategies.removeIf(AudioProductStrategy::isInternalStrategy); return Collections.unmodifiableList(strategies); List<AudioProductStrategy> filteredStrategies = new ArrayList<>(strategies); filteredStrategies.removeIf(AudioProductStrategy::isInternalStrategy); return Collections.unmodifiableList(filteredStrategies); } private static boolean isDefaultMatchScore(int matchScore) { Loading services/core/java/com/android/server/audio/AudioSystemAdapter.java +10 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.media.ISoundDoseCallback; import android.media.audiopolicy.AudioMix; import android.media.audiopolicy.AudioMixingRule; import android.media.audiopolicy.AudioProductStrategy; import android.media.audiopolicy.Flags; import android.os.IBinder; import android.os.RemoteCallbackList; import android.os.RemoteException; Loading Loading @@ -88,6 +87,8 @@ public class AudioSystemAdapter implements AudioSystem.RoutingUpdateCallback, private static final Object sAudioProductStrategiesLock = new Object(); @GuardedBy("sAudioProductStrategiesLock") private static List<AudioProductStrategy> sAudioProductStrategies; @GuardedBy("sAudioProductStrategiesLock") private static List<AudioProductStrategy> sAudioProductStrategiesWithoutInternal; private int[] mMethodCacheHit; /** * Map that stores all attributes + forVolume pairs that are registered for Loading Loading @@ -755,7 +756,13 @@ public class AudioSystemAdapter implements AudioSystem.RoutingUpdateCallback, */ public List<AudioProductStrategy> getAudioProductStrategies(boolean filterInternal) { if (filterInternal) { return AudioProductStrategy.filterNonInternalStrategies(getAllProductStrategies()); synchronized (sAudioProductStrategiesLock) { if (sAudioProductStrategiesWithoutInternal == null) { sAudioProductStrategiesWithoutInternal = AudioProductStrategy .filterNonInternalStrategies(getAllProductStrategies()); } } return sAudioProductStrategiesWithoutInternal; } return getAllProductStrategies(); } Loading @@ -775,7 +782,7 @@ public class AudioSystemAdapter implements AudioSystem.RoutingUpdateCallback, + AudioSystem.audioSystemErrorToString(status)); return Collections.emptyList(); } sAudioProductStrategies = strategies; sAudioProductStrategies = Collections.unmodifiableList(strategies); } } Loading Loading
media/java/android/media/audiopolicy/AudioProductStrategy.java +3 −2 Original line number Diff line number Diff line Loading @@ -356,8 +356,9 @@ public final class AudioProductStrategy implements Parcelable { */ public static List<AudioProductStrategy> filterNonInternalStrategies( List<AudioProductStrategy> strategies) { strategies.removeIf(AudioProductStrategy::isInternalStrategy); return Collections.unmodifiableList(strategies); List<AudioProductStrategy> filteredStrategies = new ArrayList<>(strategies); filteredStrategies.removeIf(AudioProductStrategy::isInternalStrategy); return Collections.unmodifiableList(filteredStrategies); } private static boolean isDefaultMatchScore(int matchScore) { Loading
services/core/java/com/android/server/audio/AudioSystemAdapter.java +10 −3 Original line number Diff line number Diff line Loading @@ -29,7 +29,6 @@ import android.media.ISoundDoseCallback; import android.media.audiopolicy.AudioMix; import android.media.audiopolicy.AudioMixingRule; import android.media.audiopolicy.AudioProductStrategy; import android.media.audiopolicy.Flags; import android.os.IBinder; import android.os.RemoteCallbackList; import android.os.RemoteException; Loading Loading @@ -88,6 +87,8 @@ public class AudioSystemAdapter implements AudioSystem.RoutingUpdateCallback, private static final Object sAudioProductStrategiesLock = new Object(); @GuardedBy("sAudioProductStrategiesLock") private static List<AudioProductStrategy> sAudioProductStrategies; @GuardedBy("sAudioProductStrategiesLock") private static List<AudioProductStrategy> sAudioProductStrategiesWithoutInternal; private int[] mMethodCacheHit; /** * Map that stores all attributes + forVolume pairs that are registered for Loading Loading @@ -755,7 +756,13 @@ public class AudioSystemAdapter implements AudioSystem.RoutingUpdateCallback, */ public List<AudioProductStrategy> getAudioProductStrategies(boolean filterInternal) { if (filterInternal) { return AudioProductStrategy.filterNonInternalStrategies(getAllProductStrategies()); synchronized (sAudioProductStrategiesLock) { if (sAudioProductStrategiesWithoutInternal == null) { sAudioProductStrategiesWithoutInternal = AudioProductStrategy .filterNonInternalStrategies(getAllProductStrategies()); } } return sAudioProductStrategiesWithoutInternal; } return getAllProductStrategies(); } Loading @@ -775,7 +782,7 @@ public class AudioSystemAdapter implements AudioSystem.RoutingUpdateCallback, + AudioSystem.audioSystemErrorToString(status)); return Collections.emptyList(); } sAudioProductStrategies = strategies; sAudioProductStrategies = Collections.unmodifiableList(strategies); } } Loading