Loading packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java +5 −5 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ import com.android.settingslib.media.MediaOutputConstants; import com.android.systemui.broadcast.BroadcastSender; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.media.controls.util.MediaDataUtils; import com.android.systemui.media.dialog.MediaOutputDialogFactory; import com.android.systemui.media.dialog.MediaOutputDialogManager; import com.android.systemui.res.R; import com.android.systemui.statusbar.phone.SystemUIDialog; Loading @@ -69,7 +69,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { private final Context mContext; private final UiEventLogger mUiEventLogger; private final MediaOutputDialogFactory mMediaOutputDialogFactory; private final MediaOutputDialogManager mMediaOutputDialogManager; private final LocalBluetoothManager mLocalBluetoothManager; private final BroadcastSender mBroadcastSender; private final SystemUIDialog.Factory mSystemUIDialogFactory; Loading Loading @@ -157,7 +157,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { @AssistedInject BroadcastDialogDelegate( Context context, MediaOutputDialogFactory mediaOutputDialogFactory, MediaOutputDialogManager mediaOutputDialogManager, @Nullable LocalBluetoothManager localBluetoothManager, UiEventLogger uiEventLogger, @Background Executor bgExecutor, Loading @@ -166,7 +166,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { @Assisted(CURRENT_BROADCAST_APP) String currentBroadcastApp, @Assisted(OUTPUT_PKG_NAME) String outputPkgName) { mContext = context; mMediaOutputDialogFactory = mediaOutputDialogFactory; mMediaOutputDialogManager = mediaOutputDialogManager; mLocalBluetoothManager = localBluetoothManager; mSystemUIDialogFactory = systemUIDialogFactory; mCurrentBroadcastApp = currentBroadcastApp; Loading Loading @@ -218,7 +218,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { R.string.bt_le_audio_broadcast_dialog_switch_app, switchBroadcastApp), null); mSwitchBroadcast.setOnClickListener((view) -> startSwitchBroadcast()); changeOutput.setOnClickListener((view) -> { mMediaOutputDialogFactory.create(mOutputPackageName, true, null); mMediaOutputDialogManager.createAndShow(mOutputPackageName, true, null); dialog.dismiss(); }); cancelBtn.setOnClickListener((view) -> { Loading packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java +6 −6 Original line number Diff line number Diff line Loading @@ -109,7 +109,7 @@ import com.android.systemui.media.controls.util.MediaDataUtils; import com.android.systemui.media.controls.util.MediaFlags; import com.android.systemui.media.controls.util.MediaUiEventLogger; import com.android.systemui.media.controls.util.SmallHash; import com.android.systemui.media.dialog.MediaOutputDialogFactory; import com.android.systemui.media.dialog.MediaOutputDialogManager; import com.android.systemui.monet.ColorScheme; import com.android.systemui.monet.Style; import com.android.systemui.plugins.ActivityStarter; Loading Loading @@ -223,7 +223,7 @@ public class MediaControlPanel { protected int mUid = Process.INVALID_UID; private int mSmartspaceMediaItemsCount; private MediaCarouselController mMediaCarouselController; private final MediaOutputDialogFactory mMediaOutputDialogFactory; private final MediaOutputDialogManager mMediaOutputDialogManager; private final FalsingManager mFalsingManager; private MetadataAnimationHandler mMetadataAnimationHandler; private ColorSchemeTransition mColorSchemeTransition; Loading Loading @@ -304,7 +304,7 @@ public class MediaControlPanel { MediaViewController mediaViewController, SeekBarViewModel seekBarViewModel, Lazy<MediaDataManager> lazyMediaDataManager, MediaOutputDialogFactory mediaOutputDialogFactory, MediaOutputDialogManager mediaOutputDialogManager, MediaCarouselController mediaCarouselController, FalsingManager falsingManager, SystemClock systemClock, Loading @@ -324,7 +324,7 @@ public class MediaControlPanel { mSeekBarViewModel = seekBarViewModel; mMediaViewController = mediaViewController; mMediaDataManagerLazy = lazyMediaDataManager; mMediaOutputDialogFactory = mediaOutputDialogFactory; mMediaOutputDialogManager = mediaOutputDialogManager; mMediaCarouselController = mediaCarouselController; mFalsingManager = falsingManager; mSystemClock = systemClock; Loading Loading @@ -737,7 +737,7 @@ public class MediaControlPanel { mPackageName, mMediaViewHolder.getSeamlessButton()); } else { mLogger.logOpenOutputSwitcher(mUid, mPackageName, mInstanceId); mMediaOutputDialogFactory.create(mPackageName, true, mMediaOutputDialogManager.createAndShow(mPackageName, true, mMediaViewHolder.getSeamlessButton()); } } else { Loading @@ -761,7 +761,7 @@ public class MediaControlPanel { } } } else { mMediaOutputDialogFactory.create(mPackageName, true, mMediaOutputDialogManager.createAndShow(mPackageName, true, mMediaViewHolder.getSeamlessButton()); } } Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogFactory.kt→packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogManager.kt +59 −0 Original line number Diff line number Diff line Loading @@ -16,53 +16,29 @@ package com.android.systemui.media.dialog import android.app.KeyguardManager import android.content.Context import android.media.AudioManager import android.media.session.MediaSessionManager import android.os.PowerExemptionManager import android.view.View import com.android.internal.logging.UiEventLogger import com.android.settingslib.bluetooth.LocalBluetoothManager import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.flags.FeatureFlags import com.android.systemui.media.nearby.NearbyMediaDevicesManager import com.android.systemui.plugins.ActivityStarter import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection import javax.inject.Inject /** * Factory to create [MediaOutputBroadcastDialog] objects. */ class MediaOutputBroadcastDialogFactory @Inject constructor( /** Manager to create and show a [MediaOutputBroadcastDialog]. */ class MediaOutputBroadcastDialogManager @Inject constructor( private val context: Context, private val mediaSessionManager: MediaSessionManager, private val lbm: LocalBluetoothManager?, private val starter: ActivityStarter, private val broadcastSender: BroadcastSender, private val notifCollection: CommonNotifCollection, private val uiEventLogger: UiEventLogger, private val dialogTransitionAnimator: DialogTransitionAnimator, private val nearbyMediaDevicesManager: NearbyMediaDevicesManager, private val audioManager: AudioManager, private val powerExemptionManager: PowerExemptionManager, private val keyGuardManager: KeyguardManager, private val featureFlags: FeatureFlags, private val userTracker: UserTracker private val mediaOutputControllerFactory: MediaOutputController.Factory ) { var mediaOutputBroadcastDialog: MediaOutputBroadcastDialog? = null /** Creates a [MediaOutputBroadcastDialog] for the given package. */ fun create(packageName: String, aboveStatusBar: Boolean, view: View? = null) { fun createAndShow(packageName: String, aboveStatusBar: Boolean, view: View? = null) { // Dismiss the previous dialog, if any. mediaOutputBroadcastDialog?.dismiss() val controller = MediaOutputController(context, packageName, mediaSessionManager, lbm, starter, notifCollection, dialogTransitionAnimator, nearbyMediaDevicesManager, audioManager, powerExemptionManager, keyGuardManager, featureFlags, userTracker) val controller = mediaOutputControllerFactory.create(packageName) val dialog = MediaOutputBroadcastDialog(context, aboveStatusBar, broadcastSender, controller) mediaOutputBroadcastDialog = dialog Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +18 −6 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import android.view.View; import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.core.graphics.drawable.IconCompat; Loading Loading @@ -91,6 +92,10 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.phone.SystemUIDialog; import dagger.assisted.Assisted; import dagger.assisted.AssistedFactory; import dagger.assisted.AssistedInject; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; Loading @@ -105,8 +110,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.Executor; import java.util.stream.Collectors; import javax.inject.Inject; /** * Controller for media output dialog */ Loading Loading @@ -170,10 +173,13 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, ACTION_BROADCAST_INFO_ICON } @Inject public MediaOutputController(@NonNull Context context, String packageName, MediaSessionManager mediaSessionManager, LocalBluetoothManager lbm, ActivityStarter starter, @AssistedInject public MediaOutputController( Context context, @Assisted String packageName, MediaSessionManager mediaSessionManager, @Nullable LocalBluetoothManager lbm, ActivityStarter starter, CommonNotifCollection notifCollection, DialogTransitionAnimator dialogTransitionAnimator, NearbyMediaDevicesManager nearbyMediaDevicesManager, Loading Loading @@ -222,6 +228,12 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, R.dimen.media_output_dialog_selectable_margin_end); } @AssistedFactory public interface Factory { /** Construct a MediaOutputController */ MediaOutputController create(String packageName); } protected void start(@NonNull Callback cb) { synchronized (mMediaDevicesLock) { mCachedMediaDevices.clear(); Loading packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogFactory.kt→packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogManager.kt +17 −49 Original line number Diff line number Diff line Loading @@ -16,43 +16,24 @@ package com.android.systemui.media.dialog import android.app.KeyguardManager import android.content.Context import android.media.AudioManager import android.media.session.MediaSessionManager import android.os.PowerExemptionManager import android.view.View import com.android.internal.jank.InteractionJankMonitor import com.android.internal.logging.UiEventLogger import com.android.settingslib.bluetooth.LocalBluetoothManager import com.android.systemui.animation.DialogCuj import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.flags.FeatureFlags import com.android.systemui.media.nearby.NearbyMediaDevicesManager import com.android.systemui.plugins.ActivityStarter import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection import javax.inject.Inject /** Factory to create [MediaOutputDialog] objects. */ open class MediaOutputDialogFactory /** Manager to create and show a [MediaOutputDialog]. */ open class MediaOutputDialogManager @Inject constructor( private val context: Context, private val mediaSessionManager: MediaSessionManager, private val lbm: LocalBluetoothManager?, private val starter: ActivityStarter, private val broadcastSender: BroadcastSender, private val notifCollection: CommonNotifCollection, private val uiEventLogger: UiEventLogger, private val dialogTransitionAnimator: DialogTransitionAnimator, private val nearbyMediaDevicesManager: NearbyMediaDevicesManager, private val audioManager: AudioManager, private val powerExemptionManager: PowerExemptionManager, private val keyGuardManager: KeyguardManager, private val featureFlags: FeatureFlags, private val userTracker: UserTracker private val mediaOutputControllerFactory: MediaOutputController.Factory, ) { companion object { const val INTERACTION_JANK_TAG = "media_output" Loading @@ -60,8 +41,8 @@ constructor( } /** Creates a [MediaOutputDialog] for the given package. */ open fun create(packageName: String, aboveStatusBar: Boolean, view: View? = null) { createWithController( open fun createAndShow(packageName: String, aboveStatusBar: Boolean, view: View? = null) { createAndShowWithController( packageName, aboveStatusBar, controller = Loading @@ -78,12 +59,12 @@ constructor( } /** Creates a [MediaOutputDialog] for the given package. */ open fun createWithController( open fun createAndShowWithController( packageName: String, aboveStatusBar: Boolean, controller: DialogTransitionAnimator.Controller?, ) { create( createAndShow( packageName, aboveStatusBar, dialogTransitionAnimatorController = controller, Loading @@ -91,8 +72,10 @@ constructor( ) } open fun createDialogForSystemRouting(controller: DialogTransitionAnimator.Controller? = null) { create( open fun createAndShowForSystemRouting( controller: DialogTransitionAnimator.Controller? = null ) { createAndShow( packageName = null, aboveStatusBar = false, dialogTransitionAnimatorController = null, Loading @@ -100,7 +83,7 @@ constructor( ) } private fun create( private fun createAndShow( packageName: String?, aboveStatusBar: Boolean, dialogTransitionAnimatorController: DialogTransitionAnimator.Controller?, Loading @@ -109,23 +92,9 @@ constructor( // Dismiss the previous dialog, if any. mediaOutputDialog?.dismiss() val controller = MediaOutputController( context, packageName, mediaSessionManager, lbm, starter, notifCollection, dialogTransitionAnimator, nearbyMediaDevicesManager, audioManager, powerExemptionManager, keyGuardManager, featureFlags, userTracker ) val dialog = val controller = mediaOutputControllerFactory.create(packageName) val mediaOutputDialog = MediaOutputDialog( context, aboveStatusBar, Loading @@ -135,16 +104,15 @@ constructor( uiEventLogger, includePlaybackAndAppMetadata ) mediaOutputDialog = dialog // Show the dialog. if (dialogTransitionAnimatorController != null) { dialogTransitionAnimator.show( dialog, mediaOutputDialog, dialogTransitionAnimatorController, ) } else { dialog.show() mediaOutputDialog.show() } } Loading Loading
packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java +5 −5 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ import com.android.settingslib.media.MediaOutputConstants; import com.android.systemui.broadcast.BroadcastSender; import com.android.systemui.dagger.qualifiers.Background; import com.android.systemui.media.controls.util.MediaDataUtils; import com.android.systemui.media.dialog.MediaOutputDialogFactory; import com.android.systemui.media.dialog.MediaOutputDialogManager; import com.android.systemui.res.R; import com.android.systemui.statusbar.phone.SystemUIDialog; Loading @@ -69,7 +69,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { private final Context mContext; private final UiEventLogger mUiEventLogger; private final MediaOutputDialogFactory mMediaOutputDialogFactory; private final MediaOutputDialogManager mMediaOutputDialogManager; private final LocalBluetoothManager mLocalBluetoothManager; private final BroadcastSender mBroadcastSender; private final SystemUIDialog.Factory mSystemUIDialogFactory; Loading Loading @@ -157,7 +157,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { @AssistedInject BroadcastDialogDelegate( Context context, MediaOutputDialogFactory mediaOutputDialogFactory, MediaOutputDialogManager mediaOutputDialogManager, @Nullable LocalBluetoothManager localBluetoothManager, UiEventLogger uiEventLogger, @Background Executor bgExecutor, Loading @@ -166,7 +166,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { @Assisted(CURRENT_BROADCAST_APP) String currentBroadcastApp, @Assisted(OUTPUT_PKG_NAME) String outputPkgName) { mContext = context; mMediaOutputDialogFactory = mediaOutputDialogFactory; mMediaOutputDialogManager = mediaOutputDialogManager; mLocalBluetoothManager = localBluetoothManager; mSystemUIDialogFactory = systemUIDialogFactory; mCurrentBroadcastApp = currentBroadcastApp; Loading Loading @@ -218,7 +218,7 @@ public class BroadcastDialogDelegate implements SystemUIDialog.Delegate { R.string.bt_le_audio_broadcast_dialog_switch_app, switchBroadcastApp), null); mSwitchBroadcast.setOnClickListener((view) -> startSwitchBroadcast()); changeOutput.setOnClickListener((view) -> { mMediaOutputDialogFactory.create(mOutputPackageName, true, null); mMediaOutputDialogManager.createAndShow(mOutputPackageName, true, null); dialog.dismiss(); }); cancelBtn.setOnClickListener((view) -> { Loading
packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java +6 −6 Original line number Diff line number Diff line Loading @@ -109,7 +109,7 @@ import com.android.systemui.media.controls.util.MediaDataUtils; import com.android.systemui.media.controls.util.MediaFlags; import com.android.systemui.media.controls.util.MediaUiEventLogger; import com.android.systemui.media.controls.util.SmallHash; import com.android.systemui.media.dialog.MediaOutputDialogFactory; import com.android.systemui.media.dialog.MediaOutputDialogManager; import com.android.systemui.monet.ColorScheme; import com.android.systemui.monet.Style; import com.android.systemui.plugins.ActivityStarter; Loading Loading @@ -223,7 +223,7 @@ public class MediaControlPanel { protected int mUid = Process.INVALID_UID; private int mSmartspaceMediaItemsCount; private MediaCarouselController mMediaCarouselController; private final MediaOutputDialogFactory mMediaOutputDialogFactory; private final MediaOutputDialogManager mMediaOutputDialogManager; private final FalsingManager mFalsingManager; private MetadataAnimationHandler mMetadataAnimationHandler; private ColorSchemeTransition mColorSchemeTransition; Loading Loading @@ -304,7 +304,7 @@ public class MediaControlPanel { MediaViewController mediaViewController, SeekBarViewModel seekBarViewModel, Lazy<MediaDataManager> lazyMediaDataManager, MediaOutputDialogFactory mediaOutputDialogFactory, MediaOutputDialogManager mediaOutputDialogManager, MediaCarouselController mediaCarouselController, FalsingManager falsingManager, SystemClock systemClock, Loading @@ -324,7 +324,7 @@ public class MediaControlPanel { mSeekBarViewModel = seekBarViewModel; mMediaViewController = mediaViewController; mMediaDataManagerLazy = lazyMediaDataManager; mMediaOutputDialogFactory = mediaOutputDialogFactory; mMediaOutputDialogManager = mediaOutputDialogManager; mMediaCarouselController = mediaCarouselController; mFalsingManager = falsingManager; mSystemClock = systemClock; Loading Loading @@ -737,7 +737,7 @@ public class MediaControlPanel { mPackageName, mMediaViewHolder.getSeamlessButton()); } else { mLogger.logOpenOutputSwitcher(mUid, mPackageName, mInstanceId); mMediaOutputDialogFactory.create(mPackageName, true, mMediaOutputDialogManager.createAndShow(mPackageName, true, mMediaViewHolder.getSeamlessButton()); } } else { Loading @@ -761,7 +761,7 @@ public class MediaControlPanel { } } } else { mMediaOutputDialogFactory.create(mPackageName, true, mMediaOutputDialogManager.createAndShow(mPackageName, true, mMediaViewHolder.getSeamlessButton()); } } Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogFactory.kt→packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogManager.kt +59 −0 Original line number Diff line number Diff line Loading @@ -16,53 +16,29 @@ package com.android.systemui.media.dialog import android.app.KeyguardManager import android.content.Context import android.media.AudioManager import android.media.session.MediaSessionManager import android.os.PowerExemptionManager import android.view.View import com.android.internal.logging.UiEventLogger import com.android.settingslib.bluetooth.LocalBluetoothManager import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.flags.FeatureFlags import com.android.systemui.media.nearby.NearbyMediaDevicesManager import com.android.systemui.plugins.ActivityStarter import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection import javax.inject.Inject /** * Factory to create [MediaOutputBroadcastDialog] objects. */ class MediaOutputBroadcastDialogFactory @Inject constructor( /** Manager to create and show a [MediaOutputBroadcastDialog]. */ class MediaOutputBroadcastDialogManager @Inject constructor( private val context: Context, private val mediaSessionManager: MediaSessionManager, private val lbm: LocalBluetoothManager?, private val starter: ActivityStarter, private val broadcastSender: BroadcastSender, private val notifCollection: CommonNotifCollection, private val uiEventLogger: UiEventLogger, private val dialogTransitionAnimator: DialogTransitionAnimator, private val nearbyMediaDevicesManager: NearbyMediaDevicesManager, private val audioManager: AudioManager, private val powerExemptionManager: PowerExemptionManager, private val keyGuardManager: KeyguardManager, private val featureFlags: FeatureFlags, private val userTracker: UserTracker private val mediaOutputControllerFactory: MediaOutputController.Factory ) { var mediaOutputBroadcastDialog: MediaOutputBroadcastDialog? = null /** Creates a [MediaOutputBroadcastDialog] for the given package. */ fun create(packageName: String, aboveStatusBar: Boolean, view: View? = null) { fun createAndShow(packageName: String, aboveStatusBar: Boolean, view: View? = null) { // Dismiss the previous dialog, if any. mediaOutputBroadcastDialog?.dismiss() val controller = MediaOutputController(context, packageName, mediaSessionManager, lbm, starter, notifCollection, dialogTransitionAnimator, nearbyMediaDevicesManager, audioManager, powerExemptionManager, keyGuardManager, featureFlags, userTracker) val controller = mediaOutputControllerFactory.create(packageName) val dialog = MediaOutputBroadcastDialog(context, aboveStatusBar, broadcastSender, controller) mediaOutputBroadcastDialog = dialog Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +18 −6 Original line number Diff line number Diff line Loading @@ -64,6 +64,7 @@ import android.view.View; import android.view.WindowManager; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.core.graphics.drawable.IconCompat; Loading Loading @@ -91,6 +92,10 @@ import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection; import com.android.systemui.statusbar.phone.SystemUIDialog; import dagger.assisted.Assisted; import dagger.assisted.AssistedFactory; import dagger.assisted.AssistedInject; import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Collection; Loading @@ -105,8 +110,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.concurrent.Executor; import java.util.stream.Collectors; import javax.inject.Inject; /** * Controller for media output dialog */ Loading Loading @@ -170,10 +173,13 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, ACTION_BROADCAST_INFO_ICON } @Inject public MediaOutputController(@NonNull Context context, String packageName, MediaSessionManager mediaSessionManager, LocalBluetoothManager lbm, ActivityStarter starter, @AssistedInject public MediaOutputController( Context context, @Assisted String packageName, MediaSessionManager mediaSessionManager, @Nullable LocalBluetoothManager lbm, ActivityStarter starter, CommonNotifCollection notifCollection, DialogTransitionAnimator dialogTransitionAnimator, NearbyMediaDevicesManager nearbyMediaDevicesManager, Loading Loading @@ -222,6 +228,12 @@ public class MediaOutputController implements LocalMediaManager.DeviceCallback, R.dimen.media_output_dialog_selectable_margin_end); } @AssistedFactory public interface Factory { /** Construct a MediaOutputController */ MediaOutputController create(String packageName); } protected void start(@NonNull Callback cb) { synchronized (mMediaDevicesLock) { mCachedMediaDevices.clear(); Loading
packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogFactory.kt→packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogManager.kt +17 −49 Original line number Diff line number Diff line Loading @@ -16,43 +16,24 @@ package com.android.systemui.media.dialog import android.app.KeyguardManager import android.content.Context import android.media.AudioManager import android.media.session.MediaSessionManager import android.os.PowerExemptionManager import android.view.View import com.android.internal.jank.InteractionJankMonitor import com.android.internal.logging.UiEventLogger import com.android.settingslib.bluetooth.LocalBluetoothManager import com.android.systemui.animation.DialogCuj import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.broadcast.BroadcastSender import com.android.systemui.flags.FeatureFlags import com.android.systemui.media.nearby.NearbyMediaDevicesManager import com.android.systemui.plugins.ActivityStarter import com.android.systemui.settings.UserTracker import com.android.systemui.statusbar.notification.collection.notifcollection.CommonNotifCollection import javax.inject.Inject /** Factory to create [MediaOutputDialog] objects. */ open class MediaOutputDialogFactory /** Manager to create and show a [MediaOutputDialog]. */ open class MediaOutputDialogManager @Inject constructor( private val context: Context, private val mediaSessionManager: MediaSessionManager, private val lbm: LocalBluetoothManager?, private val starter: ActivityStarter, private val broadcastSender: BroadcastSender, private val notifCollection: CommonNotifCollection, private val uiEventLogger: UiEventLogger, private val dialogTransitionAnimator: DialogTransitionAnimator, private val nearbyMediaDevicesManager: NearbyMediaDevicesManager, private val audioManager: AudioManager, private val powerExemptionManager: PowerExemptionManager, private val keyGuardManager: KeyguardManager, private val featureFlags: FeatureFlags, private val userTracker: UserTracker private val mediaOutputControllerFactory: MediaOutputController.Factory, ) { companion object { const val INTERACTION_JANK_TAG = "media_output" Loading @@ -60,8 +41,8 @@ constructor( } /** Creates a [MediaOutputDialog] for the given package. */ open fun create(packageName: String, aboveStatusBar: Boolean, view: View? = null) { createWithController( open fun createAndShow(packageName: String, aboveStatusBar: Boolean, view: View? = null) { createAndShowWithController( packageName, aboveStatusBar, controller = Loading @@ -78,12 +59,12 @@ constructor( } /** Creates a [MediaOutputDialog] for the given package. */ open fun createWithController( open fun createAndShowWithController( packageName: String, aboveStatusBar: Boolean, controller: DialogTransitionAnimator.Controller?, ) { create( createAndShow( packageName, aboveStatusBar, dialogTransitionAnimatorController = controller, Loading @@ -91,8 +72,10 @@ constructor( ) } open fun createDialogForSystemRouting(controller: DialogTransitionAnimator.Controller? = null) { create( open fun createAndShowForSystemRouting( controller: DialogTransitionAnimator.Controller? = null ) { createAndShow( packageName = null, aboveStatusBar = false, dialogTransitionAnimatorController = null, Loading @@ -100,7 +83,7 @@ constructor( ) } private fun create( private fun createAndShow( packageName: String?, aboveStatusBar: Boolean, dialogTransitionAnimatorController: DialogTransitionAnimator.Controller?, Loading @@ -109,23 +92,9 @@ constructor( // Dismiss the previous dialog, if any. mediaOutputDialog?.dismiss() val controller = MediaOutputController( context, packageName, mediaSessionManager, lbm, starter, notifCollection, dialogTransitionAnimator, nearbyMediaDevicesManager, audioManager, powerExemptionManager, keyGuardManager, featureFlags, userTracker ) val dialog = val controller = mediaOutputControllerFactory.create(packageName) val mediaOutputDialog = MediaOutputDialog( context, aboveStatusBar, Loading @@ -135,16 +104,15 @@ constructor( uiEventLogger, includePlaybackAndAppMetadata ) mediaOutputDialog = dialog // Show the dialog. if (dialogTransitionAnimatorController != null) { dialogTransitionAnimator.show( dialog, mediaOutputDialog, dialogTransitionAnimatorController, ) } else { dialog.show() mediaOutputDialog.show() } } Loading