Loading services/core/java/com/android/server/media/AudioManagerRouteController.java +15 −3 Original line number Original line Diff line number Diff line Loading @@ -51,6 +51,7 @@ import java.util.HashMap; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.Objects; import java.util.Objects; import java.util.concurrent.CopyOnWriteArrayList; /** /** * Maintains a list of all available routes and supports transfers to any of them. * Maintains a list of all available routes and supports transfers to any of them. Loading Loading @@ -90,7 +91,11 @@ import java.util.Objects; @NonNull private final Context mContext; @NonNull private final Context mContext; @NonNull private final AudioManager mAudioManager; @NonNull private final AudioManager mAudioManager; @NonNull private final Handler mHandler; @NonNull private final Handler mHandler; @NonNull private final OnDeviceRouteChangedListener mOnDeviceRouteChangedListener; @NonNull private final CopyOnWriteArrayList<OnDeviceRouteChangedListener> mOnDeviceRouteChangedListeners = new CopyOnWriteArrayList<>(); @NonNull private final BluetoothDeviceRoutesManager mBluetoothRouteController; @NonNull private final BluetoothDeviceRoutesManager mBluetoothRouteController; @NonNull private final AudioProductStrategy mStrategyForMedia; @NonNull private final AudioProductStrategy mStrategyForMedia; Loading Loading @@ -131,7 +136,7 @@ import java.util.Objects; mAudioManager = Objects.requireNonNull(audioManager); mAudioManager = Objects.requireNonNull(audioManager); mHandler = new Handler(Objects.requireNonNull(looper)); mHandler = new Handler(Objects.requireNonNull(looper)); mStrategyForMedia = Objects.requireNonNull(strategyForMedia); mStrategyForMedia = Objects.requireNonNull(strategyForMedia); mOnDeviceRouteChangedListener = Objects.requireNonNull(onDeviceRouteChangedListener); mOnDeviceRouteChangedListeners.add(Objects.requireNonNull(onDeviceRouteChangedListener)); mBuiltInSpeakerSuitabilityStatus = mBuiltInSpeakerSuitabilityStatus = DeviceRouteController.getBuiltInSpeakerSuitabilityStatus(mContext); DeviceRouteController.getBuiltInSpeakerSuitabilityStatus(mContext); Loading @@ -144,6 +149,11 @@ import java.util.Objects; rebuildAvailableRoutes(); rebuildAvailableRoutes(); } } public void registerRouteChangeListener( @NonNull OnDeviceRouteChangedListener onDeviceRouteChangedListener) { mOnDeviceRouteChangedListeners.add(onDeviceRouteChangedListener); } @RequiresPermission( @RequiresPermission( anyOf = { anyOf = { Manifest.permission.MODIFY_AUDIO_ROUTING, Manifest.permission.MODIFY_AUDIO_ROUTING, Loading Loading @@ -281,7 +291,9 @@ import java.util.Objects; }) }) private void rebuildAvailableRoutesAndNotify() { private void rebuildAvailableRoutesAndNotify() { rebuildAvailableRoutes(); rebuildAvailableRoutes(); mOnDeviceRouteChangedListener.onDeviceRouteChanged(); for (OnDeviceRouteChangedListener listener : mOnDeviceRouteChangedListeners) { listener.onDeviceRouteChanged(); } } } @RequiresPermission( @RequiresPermission( Loading Loading
services/core/java/com/android/server/media/AudioManagerRouteController.java +15 −3 Original line number Original line Diff line number Diff line Loading @@ -51,6 +51,7 @@ import java.util.HashMap; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.Objects; import java.util.Objects; import java.util.concurrent.CopyOnWriteArrayList; /** /** * Maintains a list of all available routes and supports transfers to any of them. * Maintains a list of all available routes and supports transfers to any of them. Loading Loading @@ -90,7 +91,11 @@ import java.util.Objects; @NonNull private final Context mContext; @NonNull private final Context mContext; @NonNull private final AudioManager mAudioManager; @NonNull private final AudioManager mAudioManager; @NonNull private final Handler mHandler; @NonNull private final Handler mHandler; @NonNull private final OnDeviceRouteChangedListener mOnDeviceRouteChangedListener; @NonNull private final CopyOnWriteArrayList<OnDeviceRouteChangedListener> mOnDeviceRouteChangedListeners = new CopyOnWriteArrayList<>(); @NonNull private final BluetoothDeviceRoutesManager mBluetoothRouteController; @NonNull private final BluetoothDeviceRoutesManager mBluetoothRouteController; @NonNull private final AudioProductStrategy mStrategyForMedia; @NonNull private final AudioProductStrategy mStrategyForMedia; Loading Loading @@ -131,7 +136,7 @@ import java.util.Objects; mAudioManager = Objects.requireNonNull(audioManager); mAudioManager = Objects.requireNonNull(audioManager); mHandler = new Handler(Objects.requireNonNull(looper)); mHandler = new Handler(Objects.requireNonNull(looper)); mStrategyForMedia = Objects.requireNonNull(strategyForMedia); mStrategyForMedia = Objects.requireNonNull(strategyForMedia); mOnDeviceRouteChangedListener = Objects.requireNonNull(onDeviceRouteChangedListener); mOnDeviceRouteChangedListeners.add(Objects.requireNonNull(onDeviceRouteChangedListener)); mBuiltInSpeakerSuitabilityStatus = mBuiltInSpeakerSuitabilityStatus = DeviceRouteController.getBuiltInSpeakerSuitabilityStatus(mContext); DeviceRouteController.getBuiltInSpeakerSuitabilityStatus(mContext); Loading @@ -144,6 +149,11 @@ import java.util.Objects; rebuildAvailableRoutes(); rebuildAvailableRoutes(); } } public void registerRouteChangeListener( @NonNull OnDeviceRouteChangedListener onDeviceRouteChangedListener) { mOnDeviceRouteChangedListeners.add(onDeviceRouteChangedListener); } @RequiresPermission( @RequiresPermission( anyOf = { anyOf = { Manifest.permission.MODIFY_AUDIO_ROUTING, Manifest.permission.MODIFY_AUDIO_ROUTING, Loading Loading @@ -281,7 +291,9 @@ import java.util.Objects; }) }) private void rebuildAvailableRoutesAndNotify() { private void rebuildAvailableRoutesAndNotify() { rebuildAvailableRoutes(); rebuildAvailableRoutes(); mOnDeviceRouteChangedListener.onDeviceRouteChanged(); for (OnDeviceRouteChangedListener listener : mOnDeviceRouteChangedListeners) { listener.onDeviceRouteChanged(); } } } @RequiresPermission( @RequiresPermission( Loading