Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit daea3713 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Cache filtered audio product strategies" into main

parents ed5111ee 6768ef65
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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) {
+10 −3
Original line number Diff line number Diff line
@@ -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;
@@ -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
@@ -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();
    }
@@ -775,7 +782,7 @@ public class AudioSystemAdapter implements AudioSystem.RoutingUpdateCallback,
                            + AudioSystem.audioSystemErrorToString(status));
                    return Collections.emptyList();
                }
                sAudioProductStrategies = strategies;
                sAudioProductStrategies = Collections.unmodifiableList(strategies);
            }
        }