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 Original line Diff line number Diff line
@@ -356,8 +356,9 @@ public final class AudioProductStrategy implements Parcelable {
     */
     */
    public static List<AudioProductStrategy> filterNonInternalStrategies(
    public static List<AudioProductStrategy> filterNonInternalStrategies(
            List<AudioProductStrategy> strategies) {
            List<AudioProductStrategy> strategies) {
        strategies.removeIf(AudioProductStrategy::isInternalStrategy);
        List<AudioProductStrategy> filteredStrategies = new ArrayList<>(strategies);
        return Collections.unmodifiableList(strategies);
        filteredStrategies.removeIf(AudioProductStrategy::isInternalStrategy);
        return Collections.unmodifiableList(filteredStrategies);
    }
    }


    private static boolean isDefaultMatchScore(int matchScore) {
    private static boolean isDefaultMatchScore(int matchScore) {
+10 −3
Original line number Original line Diff line number Diff line
@@ -29,7 +29,6 @@ import android.media.ISoundDoseCallback;
import android.media.audiopolicy.AudioMix;
import android.media.audiopolicy.AudioMix;
import android.media.audiopolicy.AudioMixingRule;
import android.media.audiopolicy.AudioMixingRule;
import android.media.audiopolicy.AudioProductStrategy;
import android.media.audiopolicy.AudioProductStrategy;
import android.media.audiopolicy.Flags;
import android.os.IBinder;
import android.os.IBinder;
import android.os.RemoteCallbackList;
import android.os.RemoteCallbackList;
import android.os.RemoteException;
import android.os.RemoteException;
@@ -88,6 +87,8 @@ public class AudioSystemAdapter implements AudioSystem.RoutingUpdateCallback,
    private static final Object sAudioProductStrategiesLock = new Object();
    private static final Object sAudioProductStrategiesLock = new Object();
    @GuardedBy("sAudioProductStrategiesLock")
    @GuardedBy("sAudioProductStrategiesLock")
    private static List<AudioProductStrategy> sAudioProductStrategies;
    private static List<AudioProductStrategy> sAudioProductStrategies;
    @GuardedBy("sAudioProductStrategiesLock")
    private static List<AudioProductStrategy> sAudioProductStrategiesWithoutInternal;
    private int[] mMethodCacheHit;
    private int[] mMethodCacheHit;
    /**
    /**
     * Map that stores all attributes + forVolume pairs that are registered for
     * 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) {
    public List<AudioProductStrategy> getAudioProductStrategies(boolean filterInternal) {
        if (filterInternal) {
        if (filterInternal) {
            return AudioProductStrategy.filterNonInternalStrategies(getAllProductStrategies());
            synchronized (sAudioProductStrategiesLock) {
                if (sAudioProductStrategiesWithoutInternal == null) {
                    sAudioProductStrategiesWithoutInternal = AudioProductStrategy
                            .filterNonInternalStrategies(getAllProductStrategies());
                }
            }
            return sAudioProductStrategiesWithoutInternal;
        }
        }
        return getAllProductStrategies();
        return getAllProductStrategies();
    }
    }
@@ -775,7 +782,7 @@ public class AudioSystemAdapter implements AudioSystem.RoutingUpdateCallback,
                            + AudioSystem.audioSystemErrorToString(status));
                            + AudioSystem.audioSystemErrorToString(status));
                    return Collections.emptyList();
                    return Collections.emptyList();
                }
                }
                sAudioProductStrategies = strategies;
                sAudioProductStrategies = Collections.unmodifiableList(strategies);
            }
            }
        }
        }