diff options
19 files changed, 183 insertions, 215 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java b/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java index 6af0fa069dbc..66aeda63e222 100644 --- a/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java +++ b/packages/SystemUI/src/com/android/systemui/bluetooth/BroadcastDialogDelegate.java @@ -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; @@ -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; @@ -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, @@ -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; @@ -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) -> { diff --git a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java index 840b309aee39..26c63f31fa46 100644 --- a/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java +++ b/packages/SystemUI/src/com/android/systemui/media/controls/ui/controller/MediaControlPanel.java @@ -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; @@ -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; @@ -304,7 +304,7 @@ public class MediaControlPanel { MediaViewController mediaViewController, SeekBarViewModel seekBarViewModel, Lazy<MediaDataManager> lazyMediaDataManager, - MediaOutputDialogFactory mediaOutputDialogFactory, + MediaOutputDialogManager mediaOutputDialogManager, MediaCarouselController mediaCarouselController, FalsingManager falsingManager, SystemClock systemClock, @@ -324,7 +324,7 @@ public class MediaControlPanel { mSeekBarViewModel = seekBarViewModel; mMediaViewController = mediaViewController; mMediaDataManagerLazy = lazyMediaDataManager; - mMediaOutputDialogFactory = mediaOutputDialogFactory; + mMediaOutputDialogManager = mediaOutputDialogManager; mMediaCarouselController = mediaCarouselController; mFalsingManager = falsingManager; mSystemClock = systemClock; @@ -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 { @@ -761,7 +761,7 @@ public class MediaControlPanel { } } } else { - mMediaOutputDialogFactory.create(mPackageName, true, + mMediaOutputDialogManager.createAndShow(mPackageName, true, mMediaViewHolder.getSeamlessButton()); } } diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogFactory.kt b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogFactory.kt deleted file mode 100644 index b6e39372e34c..000000000000 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogFactory.kt +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright (C) 2022 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -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( - 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 -) { - var mediaOutputBroadcastDialog: MediaOutputBroadcastDialog? = null - - /** Creates a [MediaOutputBroadcastDialog] for the given package. */ - fun create(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 dialog = - MediaOutputBroadcastDialog(context, aboveStatusBar, broadcastSender, controller) - mediaOutputBroadcastDialog = dialog - - // Show the dialog. - if (view != null) { - dialogTransitionAnimator.showFromView(dialog, view) - } else { - dialog.show() - } - } - - /** dismiss [MediaOutputBroadcastDialog] if exist. */ - fun dismiss() { - mediaOutputBroadcastDialog?.dismiss() - mediaOutputBroadcastDialog = null - } -} diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogManager.kt b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogManager.kt new file mode 100644 index 000000000000..54d175c6a110 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputBroadcastDialogManager.kt @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.media.dialog + +import android.content.Context +import android.view.View +import com.android.systemui.animation.DialogTransitionAnimator +import com.android.systemui.broadcast.BroadcastSender +import javax.inject.Inject + +/** Manager to create and show a [MediaOutputBroadcastDialog]. */ +class MediaOutputBroadcastDialogManager +@Inject +constructor( + private val context: Context, + private val broadcastSender: BroadcastSender, + private val dialogTransitionAnimator: DialogTransitionAnimator, + private val mediaOutputControllerFactory: MediaOutputController.Factory +) { + var mediaOutputBroadcastDialog: MediaOutputBroadcastDialog? = null + + /** Creates a [MediaOutputBroadcastDialog] for the given package. */ + fun createAndShow(packageName: String, aboveStatusBar: Boolean, view: View? = null) { + // Dismiss the previous dialog, if any. + mediaOutputBroadcastDialog?.dismiss() + + val controller = mediaOutputControllerFactory.create(packageName) + val dialog = + MediaOutputBroadcastDialog(context, aboveStatusBar, broadcastSender, controller) + mediaOutputBroadcastDialog = dialog + + // Show the dialog. + if (view != null) { + dialogTransitionAnimator.showFromView(dialog, view) + } else { + dialog.show() + } + } + + /** dismiss [MediaOutputBroadcastDialog] if exist. */ + fun dismiss() { + mediaOutputBroadcastDialog?.dismiss() + mediaOutputBroadcastDialog = null + } +} diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java index b3b7bceea0e0..dcdac5d255dd 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputController.java @@ -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; @@ -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; @@ -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 */ @@ -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, @@ -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(); diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogFactory.kt b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogManager.kt index 02be0c1a6c2d..e7816a40bb5e 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogFactory.kt +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogManager.kt @@ -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" @@ -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 = @@ -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, @@ -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, @@ -100,7 +83,7 @@ constructor( ) } - private fun create( + private fun createAndShow( packageName: String?, aboveStatusBar: Boolean, dialogTransitionAnimatorController: DialogTransitionAnimator.Controller?, @@ -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, @@ -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() } } diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogReceiver.kt b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogReceiver.kt index 38d31ed92141..774792f5030d 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogReceiver.kt +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputDialogReceiver.kt @@ -31,8 +31,8 @@ private val DEBUG = Log.isLoggable(TAG, Log.DEBUG) * BroadcastReceiver for handling media output intent */ class MediaOutputDialogReceiver @Inject constructor( - private val mediaOutputDialogFactory: MediaOutputDialogFactory, - private val mediaOutputBroadcastDialogFactory: MediaOutputBroadcastDialogFactory + private val mediaOutputDialogManager: MediaOutputDialogManager, + private val mediaOutputBroadcastDialogManager: MediaOutputBroadcastDialogManager ) : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { when (intent.action) { @@ -42,7 +42,7 @@ class MediaOutputDialogReceiver @Inject constructor( launchMediaOutputDialogIfPossible(packageName) } MediaOutputConstants.ACTION_LAUNCH_SYSTEM_MEDIA_OUTPUT_DIALOG -> { - mediaOutputDialogFactory.createDialogForSystemRouting() + mediaOutputDialogManager.createAndShowForSystemRouting() } MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_BROADCAST_DIALOG -> { if (!legacyLeAudioSharing()) return @@ -55,7 +55,7 @@ class MediaOutputDialogReceiver @Inject constructor( private fun launchMediaOutputDialogIfPossible(packageName: String?) { if (!packageName.isNullOrEmpty()) { - mediaOutputDialogFactory.create(packageName, false) + mediaOutputDialogManager.createAndShow(packageName, false) } else if (DEBUG) { Log.e(TAG, "Unable to launch media output dialog. Package name is empty.") } @@ -63,7 +63,7 @@ class MediaOutputDialogReceiver @Inject constructor( private fun launchMediaOutputBroadcastDialogIfPossible(packageName: String?) { if (!packageName.isNullOrEmpty()) { - mediaOutputBroadcastDialogFactory.create( + mediaOutputBroadcastDialogManager.createAndShow( packageName, aboveStatusBar = true, view = null) } else if (DEBUG) { Log.e(TAG, "Unable to launch media output broadcast dialog. Package name is empty.") diff --git a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputSwitcherDialogUI.java b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputSwitcherDialogUI.java index b5b1f0ffe23d..6e7e0f241dd8 100644 --- a/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputSwitcherDialogUI.java +++ b/packages/SystemUI/src/com/android/systemui/media/dialog/MediaOutputSwitcherDialogUI.java @@ -34,15 +34,15 @@ public class MediaOutputSwitcherDialogUI implements CoreStartable, CommandQueue. private static final String TAG = "MediaOutputSwitcherDialogUI"; private final CommandQueue mCommandQueue; - private final MediaOutputDialogFactory mMediaOutputDialogFactory; + private final MediaOutputDialogManager mMediaOutputDialogManager; @Inject public MediaOutputSwitcherDialogUI( Context context, CommandQueue commandQueue, - MediaOutputDialogFactory mediaOutputDialogFactory) { + MediaOutputDialogManager mediaOutputDialogManager) { mCommandQueue = commandQueue; - mMediaOutputDialogFactory = mediaOutputDialogFactory; + mMediaOutputDialogManager = mediaOutputDialogManager; } @Override @@ -54,7 +54,7 @@ public class MediaOutputSwitcherDialogUI implements CoreStartable, CommandQueue. @MainThread public void showMediaOutputSwitcher(String packageName) { if (!TextUtils.isEmpty(packageName)) { - mMediaOutputDialogFactory.create(packageName, false, null); + mMediaOutputDialogManager.createAndShow(packageName, false, null); } else { Log.e(TAG, "Unable to launch media output dialog. Package name is empty."); } diff --git a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java index 404563087041..d7add9914a79 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java +++ b/packages/SystemUI/src/com/android/systemui/volume/VolumeDialogImpl.java @@ -120,7 +120,7 @@ import com.android.systemui.dump.DumpManager; import com.android.systemui.haptics.slider.HapticSliderViewBinder; import com.android.systemui.haptics.slider.SeekableSliderHapticPlugin; import com.android.systemui.haptics.slider.SliderHapticFeedbackConfig; -import com.android.systemui.media.dialog.MediaOutputDialogFactory; +import com.android.systemui.media.dialog.MediaOutputDialogManager; import com.android.systemui.plugins.VolumeDialog; import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.plugins.VolumeDialogController.State; @@ -265,7 +265,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, private final Object mSafetyWarningLock = new Object(); private final Accessibility mAccessibility = new Accessibility(); private final ConfigurationController mConfigurationController; - private final MediaOutputDialogFactory mMediaOutputDialogFactory; + private final MediaOutputDialogManager mMediaOutputDialogManager; private final CsdWarningDialog.Factory mCsdWarningDialogFactory; private final VolumePanelNavigationInteractor mVolumePanelNavigationInteractor; private final VolumeNavigator mVolumeNavigator; @@ -316,7 +316,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, AccessibilityManagerWrapper accessibilityManagerWrapper, DeviceProvisionedController deviceProvisionedController, ConfigurationController configurationController, - MediaOutputDialogFactory mediaOutputDialogFactory, + MediaOutputDialogManager mediaOutputDialogManager, InteractionJankMonitor interactionJankMonitor, VolumePanelNavigationInteractor volumePanelNavigationInteractor, VolumeNavigator volumeNavigator, @@ -340,7 +340,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, mAccessibilityMgr = accessibilityManagerWrapper; mDeviceProvisionedController = deviceProvisionedController; mConfigurationController = configurationController; - mMediaOutputDialogFactory = mediaOutputDialogFactory; + mMediaOutputDialogManager = mediaOutputDialogManager; mCsdWarningDialogFactory = csdWarningDialogFactory; mShowActiveStreamOnly = showActiveStreamOnly(); mHasSeenODICaptionsTooltip = @@ -1199,7 +1199,7 @@ public class VolumeDialogImpl implements VolumeDialog, Dumpable, mSettingsIcon.setOnClickListener(v -> { Events.writeEvent(Events.EVENT_SETTINGS_CLICK); dismissH(DISMISS_REASON_SETTINGS_CLICKED); - mMediaOutputDialogFactory.dismiss(); + mMediaOutputDialogManager.dismiss(); mVolumeNavigator.openVolumePanel( mVolumePanelNavigationInteractor.getVolumePanelRoute()); }); diff --git a/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java b/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java index 64a5644bc452..1f87ec8ffe02 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java +++ b/packages/SystemUI/src/com/android/systemui/volume/dagger/VolumeModule.java @@ -24,7 +24,7 @@ import android.os.Looper; import com.android.internal.jank.InteractionJankMonitor; import com.android.systemui.CoreStartable; import com.android.systemui.dump.DumpManager; -import com.android.systemui.media.dialog.MediaOutputDialogFactory; +import com.android.systemui.media.dialog.MediaOutputDialogManager; import com.android.systemui.plugins.VolumeDialog; import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.statusbar.VibratorHelper; @@ -100,7 +100,7 @@ public interface VolumeModule { AccessibilityManagerWrapper accessibilityManagerWrapper, DeviceProvisionedController deviceProvisionedController, ConfigurationController configurationController, - MediaOutputDialogFactory mediaOutputDialogFactory, + MediaOutputDialogManager mediaOutputDialogManager, InteractionJankMonitor interactionJankMonitor, VolumePanelNavigationInteractor volumePanelNavigationInteractor, VolumeNavigator volumeNavigator, @@ -116,7 +116,7 @@ public interface VolumeModule { accessibilityManagerWrapper, deviceProvisionedController, configurationController, - mediaOutputDialogFactory, + mediaOutputDialogManager, interactionJankMonitor, volumePanelNavigationInteractor, volumeNavigator, diff --git a/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaOutputActionsInteractor.kt b/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaOutputActionsInteractor.kt index 2ab59984d06f..cb16abe7e575 100644 --- a/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaOutputActionsInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/volume/panel/component/mediaoutput/domain/interactor/MediaOutputActionsInteractor.kt @@ -20,7 +20,7 @@ import com.android.internal.jank.InteractionJankMonitor import com.android.systemui.animation.DialogCuj import com.android.systemui.animation.DialogTransitionAnimator import com.android.systemui.animation.Expandable -import com.android.systemui.media.dialog.MediaOutputDialogFactory +import com.android.systemui.media.dialog.MediaOutputDialogManager import com.android.systemui.volume.panel.component.mediaoutput.domain.model.MediaDeviceSession import com.android.systemui.volume.panel.dagger.scope.VolumePanelScope import javax.inject.Inject @@ -30,20 +30,22 @@ import javax.inject.Inject class MediaOutputActionsInteractor @Inject constructor( - private val mediaOutputDialogFactory: MediaOutputDialogFactory, + private val mediaOutputDialogManager: MediaOutputDialogManager, ) { fun onBarClick(session: MediaDeviceSession, expandable: Expandable) { when (session) { is MediaDeviceSession.Active -> { - mediaOutputDialogFactory.createWithController( + mediaOutputDialogManager.createAndShowWithController( session.packageName, false, expandable.dialogController() ) } is MediaDeviceSession.Inactive -> { - mediaOutputDialogFactory.createDialogForSystemRouting(expandable.dialogController()) + mediaOutputDialogManager.createAndShowForSystemRouting( + expandable.dialogController() + ) } else -> { /* do nothing */ @@ -56,7 +58,7 @@ constructor( cuj = DialogCuj( InteractionJankMonitor.CUJ_SHADE_DIALOG_OPEN, - MediaOutputDialogFactory.INTERACTION_JANK_TAG + MediaOutputDialogManager.INTERACTION_JANK_TAG ) ) } diff --git a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/BroadcastDialogDelegateTest.java b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/BroadcastDialogDelegateTest.java index 7a18477bffdd..a569ceec32b2 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/bluetooth/BroadcastDialogDelegateTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/bluetooth/BroadcastDialogDelegateTest.java @@ -42,7 +42,7 @@ import com.android.settingslib.bluetooth.LocalBluetoothProfileManager; import com.android.systemui.SysuiTestCase; import com.android.systemui.animation.DialogTransitionAnimator; import com.android.systemui.broadcast.BroadcastSender; -import com.android.systemui.media.dialog.MediaOutputDialogFactory; +import com.android.systemui.media.dialog.MediaOutputDialogManager; import com.android.systemui.model.SysUiState; import com.android.systemui.res.R; import com.android.systemui.statusbar.phone.SystemUIDialog; @@ -77,7 +77,8 @@ public class BroadcastDialogDelegateTest extends SysuiTestCase { @Mock SysUiState mSysUiState; @Mock DialogTransitionAnimator mDialogTransitionAnimator; - @Mock MediaOutputDialogFactory mMediaOutputDialogFactory; + @Mock + MediaOutputDialogManager mMediaOutputDialogManager; private SystemUIDialog mDialog; private TextView mTitle; private TextView mSubTitle; @@ -96,7 +97,7 @@ public class BroadcastDialogDelegateTest extends SysuiTestCase { mBroadcastDialogDelegate = new BroadcastDialogDelegate( mContext, - mMediaOutputDialogFactory, + mMediaOutputDialogManager, mLocalBluetoothManager, new UiEventLoggerFake(), mFakeExecutor, diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaControlPanelTest.kt b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaControlPanelTest.kt index 2f92afa39b52..83e4d3130b67 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaControlPanelTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/media/controls/ui/controller/MediaControlPanelTest.kt @@ -84,7 +84,7 @@ import com.android.systemui.media.controls.ui.view.RecommendationViewHolder import com.android.systemui.media.controls.ui.viewmodel.SeekBarViewModel import com.android.systemui.media.controls.util.MediaFlags import com.android.systemui.media.controls.util.MediaUiEventLogger -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 @@ -160,7 +160,7 @@ public class MediaControlPanelTest : SysuiTestCase() { @Mock private lateinit var mediaDataManager: MediaDataManager @Mock private lateinit var expandedSet: ConstraintSet @Mock private lateinit var collapsedSet: ConstraintSet - @Mock private lateinit var mediaOutputDialogFactory: MediaOutputDialogFactory + @Mock private lateinit var mediaOutputDialogManager: MediaOutputDialogManager @Mock private lateinit var mediaCarouselController: MediaCarouselController @Mock private lateinit var falsingManager: FalsingManager @Mock private lateinit var transitionParent: ViewGroup @@ -266,7 +266,7 @@ public class MediaControlPanelTest : SysuiTestCase() { mediaViewController, seekBarViewModel, Lazy { mediaDataManager }, - mediaOutputDialogFactory, + mediaOutputDialogManager, mediaCarouselController, falsingManager, clock, diff --git a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputDialogReceiverTest.java b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputDialogReceiverTest.java index 087988469a49..83def8e47651 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputDialogReceiverTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/media/dialog/MediaOutputDialogReceiverTest.java @@ -42,16 +42,16 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { private MediaOutputDialogReceiver mMediaOutputDialogReceiver; - private final MediaOutputDialogFactory mMockMediaOutputDialogFactory = - mock(MediaOutputDialogFactory.class); + private final MediaOutputDialogManager mMockMediaOutputDialogManager = + mock(MediaOutputDialogManager.class); - private final MediaOutputBroadcastDialogFactory mMockMediaOutputBroadcastDialogFactory = - mock(MediaOutputBroadcastDialogFactory.class); + private final MediaOutputBroadcastDialogManager mMockMediaOutputBroadcastDialogManager = + mock(MediaOutputBroadcastDialogManager.class); @Before public void setup() { - mMediaOutputDialogReceiver = new MediaOutputDialogReceiver(mMockMediaOutputDialogFactory, - mMockMediaOutputBroadcastDialogFactory); + mMediaOutputDialogReceiver = new MediaOutputDialogReceiver(mMockMediaOutputDialogManager, + mMockMediaOutputBroadcastDialogManager); } @Test @@ -60,9 +60,10 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { intent.putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME, getContext().getPackageName()); mMediaOutputDialogReceiver.onReceive(getContext(), intent); - verify(mMockMediaOutputDialogFactory, times(1)) - .create(getContext().getPackageName(), false, null); - verify(mMockMediaOutputBroadcastDialogFactory, never()).create(any(), anyBoolean(), any()); + verify(mMockMediaOutputDialogManager, times(1)) + .createAndShow(getContext().getPackageName(), false, null); + verify(mMockMediaOutputBroadcastDialogManager, never()) + .createAndShow(any(), anyBoolean(), any()); } @Test @@ -71,8 +72,9 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { intent.putExtra("Wrong Package Name Key", getContext().getPackageName()); mMediaOutputDialogReceiver.onReceive(getContext(), intent); - verify(mMockMediaOutputDialogFactory, never()).create(any(), anyBoolean(), any()); - verify(mMockMediaOutputBroadcastDialogFactory, never()).create(any(), anyBoolean(), any()); + verify(mMockMediaOutputDialogManager, never()).createAndShow(any(), anyBoolean(), any()); + verify(mMockMediaOutputBroadcastDialogManager, never()) + .createAndShow(any(), anyBoolean(), any()); } @Test @@ -80,8 +82,9 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { Intent intent = new Intent(MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG); mMediaOutputDialogReceiver.onReceive(getContext(), intent); - verify(mMockMediaOutputDialogFactory, never()).create(any(), anyBoolean(), any()); - verify(mMockMediaOutputBroadcastDialogFactory, never()).create(any(), anyBoolean(), any()); + verify(mMockMediaOutputDialogManager, never()).createAndShow(any(), anyBoolean(), any()); + verify(mMockMediaOutputBroadcastDialogManager, never()) + .createAndShow(any(), anyBoolean(), any()); } @Test @@ -92,8 +95,9 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { intent.putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME, getContext().getPackageName()); mMediaOutputDialogReceiver.onReceive(getContext(), intent); - verify(mMockMediaOutputDialogFactory, never()).create(any(), anyBoolean(), any()); - verify(mMockMediaOutputBroadcastDialogFactory, never()).create(any(), anyBoolean(), any()); + verify(mMockMediaOutputDialogManager, never()).createAndShow(any(), anyBoolean(), any()); + verify(mMockMediaOutputBroadcastDialogManager, never()) + .createAndShow(any(), anyBoolean(), any()); } @Test @@ -104,9 +108,9 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { intent.putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME, getContext().getPackageName()); mMediaOutputDialogReceiver.onReceive(getContext(), intent); - verify(mMockMediaOutputDialogFactory, never()).create(any(), anyBoolean(), any()); - verify(mMockMediaOutputBroadcastDialogFactory, times(1)) - .create(getContext().getPackageName(), true, null); + verify(mMockMediaOutputDialogManager, never()).createAndShow(any(), anyBoolean(), any()); + verify(mMockMediaOutputBroadcastDialogManager, times(1)) + .createAndShow(getContext().getPackageName(), true, null); } @Test @@ -117,8 +121,9 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { intent.putExtra("Wrong Package Name Key", getContext().getPackageName()); mMediaOutputDialogReceiver.onReceive(getContext(), intent); - verify(mMockMediaOutputDialogFactory, never()).create(any(), anyBoolean(), any()); - verify(mMockMediaOutputBroadcastDialogFactory, never()).create(any(), anyBoolean(), any()); + verify(mMockMediaOutputDialogManager, never()).createAndShow(any(), anyBoolean(), any()); + verify(mMockMediaOutputBroadcastDialogManager, never()) + .createAndShow(any(), anyBoolean(), any()); } @Test @@ -128,8 +133,9 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { MediaOutputConstants.ACTION_LAUNCH_MEDIA_OUTPUT_BROADCAST_DIALOG); mMediaOutputDialogReceiver.onReceive(getContext(), intent); - verify(mMockMediaOutputDialogFactory, never()).create(any(), anyBoolean(), any()); - verify(mMockMediaOutputBroadcastDialogFactory, never()).create(any(), anyBoolean(), any()); + verify(mMockMediaOutputDialogManager, never()).createAndShow(any(), anyBoolean(), any()); + verify(mMockMediaOutputBroadcastDialogManager, never()) + .createAndShow(any(), anyBoolean(), any()); } @Test @@ -139,8 +145,9 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { intent.putExtra(MediaOutputConstants.EXTRA_PACKAGE_NAME, getContext().getPackageName()); mMediaOutputDialogReceiver.onReceive(getContext(), intent); - verify(mMockMediaOutputDialogFactory, never()).create(any(), anyBoolean(), any()); - verify(mMockMediaOutputBroadcastDialogFactory, never()).create(any(), anyBoolean(), any()); + verify(mMockMediaOutputDialogManager, never()).createAndShow(any(), anyBoolean(), any()); + verify(mMockMediaOutputBroadcastDialogManager, never()) + .createAndShow(any(), anyBoolean(), any()); } @Test @@ -148,7 +155,8 @@ public class MediaOutputDialogReceiverTest extends SysuiTestCase { Intent intent = new Intent("UnKnown Action"); mMediaOutputDialogReceiver.onReceive(getContext(), intent); - verify(mMockMediaOutputDialogFactory, never()).create(any(), anyBoolean(), any()); - verify(mMockMediaOutputBroadcastDialogFactory, never()).create(any(), anyBoolean(), any()); + verify(mMockMediaOutputDialogManager, never()).createAndShow(any(), anyBoolean(), any()); + verify(mMockMediaOutputBroadcastDialogManager, never()) + .createAndShow(any(), anyBoolean(), any()); } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicChildBindControllerTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicChildBindControllerTest.java index a59ba071d7e8..eb692eb1b4ac 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicChildBindControllerTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/DynamicChildBindControllerTest.java @@ -32,9 +32,9 @@ import android.util.ArrayMap; import android.view.LayoutInflater; import android.view.View; -import com.android.systemui.res.R; import com.android.systemui.SysuiTestCase; -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.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.collection.NotificationEntryBuilder; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; @@ -51,6 +51,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; + @SmallTest @RunWith(AndroidTestingRunner.class) @TestableLooper.RunWithLooper @@ -65,7 +66,7 @@ public class DynamicChildBindControllerTest extends SysuiTestCase { @Before public void setUp() throws Exception { MockitoAnnotations.initMocks(this); - mDependency.injectMockDependency(MediaOutputDialogFactory.class); + mDependency.injectMockDependency(MediaOutputDialogManager.class); allowTestableLooperAsMainThread(); when(mBindStage.getStageParams(any())).thenReturn(new RowContentBindParams()); mDynamicChildBindController = diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java index fb49499fc29d..718f99841292 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java +++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/notification/row/NotificationTestHelper.java @@ -58,7 +58,7 @@ import com.android.systemui.classifier.FalsingManagerFake; import com.android.systemui.flags.FakeFeatureFlags; import com.android.systemui.flags.FeatureFlags; import com.android.systemui.media.controls.util.MediaFeatureFlag; -import com.android.systemui.media.dialog.MediaOutputDialogFactory; +import com.android.systemui.media.dialog.MediaOutputDialogManager; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.res.R; import com.android.systemui.statusbar.NotificationMediaManager; @@ -159,7 +159,7 @@ public class NotificationTestHelper { dependency.injectTestDependency(FeatureFlags.class, mFeatureFlags); dependency.injectMockDependency(NotificationMediaManager.class); dependency.injectMockDependency(NotificationShadeWindowController.class); - dependency.injectMockDependency(MediaOutputDialogFactory.class); + dependency.injectMockDependency(MediaOutputDialogManager.class); mMockLogger = mock(ExpandableNotificationRowLogger.class); mStatusBarStateController = mock(StatusBarStateController.class); mKeyguardBypassController = mock(KeyguardBypassController.class); diff --git a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java index 3a6324d3de53..d0261ae7d256 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/volume/VolumeDialogImplTest.java @@ -69,7 +69,7 @@ import com.android.systemui.Prefs; import com.android.systemui.SysuiTestCase; import com.android.systemui.animation.AnimatorTestRule; import com.android.systemui.dump.DumpManager; -import com.android.systemui.media.dialog.MediaOutputDialogFactory; +import com.android.systemui.media.dialog.MediaOutputDialogManager; import com.android.systemui.plugins.VolumeDialogController; import com.android.systemui.plugins.VolumeDialogController.State; import com.android.systemui.res.R; @@ -130,7 +130,7 @@ public class VolumeDialogImplTest extends SysuiTestCase { @Mock DeviceProvisionedController mDeviceProvisionedController; @Mock - MediaOutputDialogFactory mMediaOutputDialogFactory; + MediaOutputDialogManager mMediaOutputDialogManager; @Mock InteractionJankMonitor mInteractionJankMonitor; @Mock @@ -196,7 +196,7 @@ public class VolumeDialogImplTest extends SysuiTestCase { mAccessibilityMgr, mDeviceProvisionedController, mConfigurationController, - mMediaOutputDialogFactory, + mMediaOutputDialogManager, mInteractionJankMonitor, mVolumePanelNavigationInteractor, mVolumeNavigator, diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/media/MediaKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/media/MediaKosmos.kt index e1b1966aed6c..e78866904dfe 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/media/MediaKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/media/MediaKosmos.kt @@ -17,7 +17,7 @@ package com.android.systemui.media import com.android.systemui.kosmos.Kosmos -import com.android.systemui.media.dialog.MediaOutputDialogFactory +import com.android.systemui.media.dialog.MediaOutputDialogManager import com.android.systemui.util.mockito.mock -var Kosmos.mediaOutputDialogFactory: MediaOutputDialogFactory by Kosmos.Fixture { mock {} } +var Kosmos.mediaOutputDialogManager: MediaOutputDialogManager by Kosmos.Fixture { mock {} } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/MediaOutputKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/MediaOutputKosmos.kt index a3b1a0eb260d..3938f77b9c54 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/volume/MediaOutputKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/volume/MediaOutputKosmos.kt @@ -24,7 +24,7 @@ import android.testing.TestableLooper import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testCase import com.android.systemui.kosmos.testScope -import com.android.systemui.media.mediaOutputDialogFactory +import com.android.systemui.media.mediaOutputDialogManager import com.android.systemui.util.mockito.any import com.android.systemui.util.mockito.mock import com.android.systemui.util.mockito.whenever @@ -42,7 +42,7 @@ val Kosmos.localMediaRepositoryFactory: LocalMediaRepositoryFactory by Kosmos.Fixture { FakeLocalMediaRepositoryFactory { localMediaRepository } } val Kosmos.mediaOutputActionsInteractor by - Kosmos.Fixture { MediaOutputActionsInteractor(mediaOutputDialogFactory) } + Kosmos.Fixture { MediaOutputActionsInteractor(mediaOutputDialogManager) } val Kosmos.mediaControllerRepository by Kosmos.Fixture { FakeMediaControllerRepository() } val Kosmos.mediaOutputInteractor by Kosmos.Fixture { |