diff options
author | timhypeng <timhypeng@google.com> | 2020-09-22 11:41:43 +0800 |
---|---|---|
committer | tim peng <timhypeng@google.com> | 2020-12-02 03:29:37 +0000 |
commit | 29ae958b76f76646dc42010954f47808e46fb76f (patch) | |
tree | 13de8dbfc353618a6ebea49b131badb7b37d493f /packages/SystemUI/src | |
parent | a4a79765e8021f8b3b60c09f43c1a48da7c5a7fe (diff) |
Update OutputSwitcher from SettingsPanel to MediaOutputDialog in SystemUI
-Put MediaOutputDialogFactory in Dependency provider
-Inject MediaOutputDialogFactory in MediaControlPanel
-Use Dependency.get() to get MediaOutputDialogFactory in MediaTransferManager
-Use MediaOutputDialogFactory.create() to launch dialog in MediaControlPanel and MediaTransferManager
Bug: 155822415
Test: atest MediaControlPanelTest DependencyTest
Merged-In: I1b393d43bf4c7c869a3066404c9755ebef5f9c76
Change-Id: I1b393d43bf4c7c869a3066404c9755ebef5f9c76
Diffstat (limited to 'packages/SystemUI/src')
3 files changed, 14 insertions, 21 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/Dependency.java b/packages/SystemUI/src/com/android/systemui/Dependency.java index 59580bbf1ae2..ded129defe07 100644 --- a/packages/SystemUI/src/com/android/systemui/Dependency.java +++ b/packages/SystemUI/src/com/android/systemui/Dependency.java @@ -46,6 +46,7 @@ import com.android.systemui.dump.DumpManager; import com.android.systemui.fragments.FragmentService; import com.android.systemui.keyguard.ScreenLifecycle; import com.android.systemui.keyguard.WakefulnessLifecycle; +import com.android.systemui.media.dialog.MediaOutputDialogFactory; import com.android.systemui.model.SysUiState; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.DarkIconDispatcher; @@ -324,6 +325,7 @@ public class Dependency { @Inject Lazy<RecordingController> mRecordingController; @Inject Lazy<ProtoTracer> mProtoTracer; @Inject Lazy<Divider> mDivider; + @Inject Lazy<MediaOutputDialogFactory> mMediaOutputDialogFactory; @Inject public Dependency() { @@ -522,6 +524,8 @@ public class Dependency { mProviders.put(RecordingController.class, mRecordingController::get); mProviders.put(Divider.class, mDivider::get); + mProviders.put(MediaOutputDialogFactory.class, mMediaOutputDialogFactory::get); + sDependency = this; } diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java index d853e3d4a57c..bffe05085887 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java +++ b/packages/SystemUI/src/com/android/systemui/media/MediaControlPanel.java @@ -42,10 +42,10 @@ import androidx.annotation.UiThread; import androidx.constraintlayout.widget.ConstraintSet; import com.android.settingslib.Utils; -import com.android.settingslib.media.MediaOutputSliceConstants; import com.android.settingslib.widget.AdaptiveIcon; import com.android.systemui.R; import com.android.systemui.dagger.qualifiers.Background; +import com.android.systemui.media.dialog.MediaOutputDialogFactory; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.statusbar.phone.KeyguardDismissUtil; import com.android.systemui.util.animation.TransitionLayout; @@ -93,7 +93,7 @@ public class MediaControlPanel { private int mAlbumArtRadius; // This will provide the corners for the album art. private final ViewOutlineProvider mViewOutlineProvider; - + private final MediaOutputDialogFactory mMediaOutputDialogFactory; /** * Initialize a new control panel * @param context @@ -104,7 +104,8 @@ public class MediaControlPanel { public MediaControlPanel(Context context, @Background Executor backgroundExecutor, ActivityStarter activityStarter, MediaViewController mediaViewController, SeekBarViewModel seekBarViewModel, Lazy<MediaDataManager> lazyMediaDataManager, - KeyguardDismissUtil keyguardDismissUtil) { + KeyguardDismissUtil keyguardDismissUtil, MediaOutputDialogFactory + mediaOutputDialogFactory) { mContext = context; mBackgroundExecutor = backgroundExecutor; mActivityStarter = activityStarter; @@ -112,6 +113,7 @@ public class MediaControlPanel { mMediaViewController = mediaViewController; mMediaDataManagerLazy = lazyMediaDataManager; mKeyguardDismissUtil = keyguardDismissUtil; + mMediaOutputDialogFactory = mediaOutputDialogFactory; loadDimens(); mViewOutlineProvider = new ViewOutlineProvider() { @@ -274,13 +276,7 @@ public class MediaControlPanel { setVisibleAndAlpha(collapsedSet, R.id.media_seamless, true /*visible */); setVisibleAndAlpha(expandedSet, R.id.media_seamless, true /*visible */); mViewHolder.getSeamless().setOnClickListener(v -> { - final Intent intent = new Intent() - .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT) - .putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME, - data.getPackageName()) - .putExtra(MediaOutputSliceConstants.KEY_MEDIA_SESSION_TOKEN, mToken); - mActivityStarter.startActivity(intent, false, true /* dismissShade */, - Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + mMediaOutputDialogFactory.create(data.getPackageName(), true); }); ImageView iconView = mViewHolder.getSeamlessIcon(); diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/MediaTransferManager.java b/packages/SystemUI/src/com/android/systemui/statusbar/MediaTransferManager.java index ac3523b2fffd..1b1a51b8a57b 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/MediaTransferManager.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/MediaTransferManager.java @@ -17,7 +17,6 @@ package com.android.systemui.statusbar; import android.content.Context; -import android.content.Intent; import android.content.res.ColorStateList; import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; @@ -36,10 +35,9 @@ import com.android.settingslib.bluetooth.LocalBluetoothManager; import com.android.settingslib.media.InfoMediaManager; import com.android.settingslib.media.LocalMediaManager; import com.android.settingslib.media.MediaDevice; -import com.android.settingslib.media.MediaOutputSliceConstants; import com.android.settingslib.widget.AdaptiveIcon; import com.android.systemui.Dependency; -import com.android.systemui.plugins.ActivityStarter; +import com.android.systemui.media.dialog.MediaOutputDialogFactory; import com.android.systemui.statusbar.notification.collection.NotificationEntry; import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow; @@ -51,7 +49,7 @@ import java.util.List; */ public class MediaTransferManager { private final Context mContext; - private final ActivityStarter mActivityStarter; + private final MediaOutputDialogFactory mMediaOutputDialogFactory; private MediaDevice mDevice; private List<View> mViews = new ArrayList<>(); private LocalMediaManager mLocalMediaManager; @@ -74,12 +72,7 @@ public class MediaTransferManager { ViewParent parent = view.getParent(); StatusBarNotification statusBarNotification = getRowForParent(parent).getEntry().getSbn(); - final Intent intent = new Intent() - .setAction(MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT) - .putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME, - statusBarNotification.getPackageName()); - mActivityStarter.startActivity(intent, false, true /* dismissShade */, - Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); + mMediaOutputDialogFactory.create(statusBarNotification.getPackageName(), true); return true; } }; @@ -107,7 +100,7 @@ public class MediaTransferManager { public MediaTransferManager(Context context) { mContext = context; - mActivityStarter = Dependency.get(ActivityStarter.class); + mMediaOutputDialogFactory = Dependency.get(MediaOutputDialogFactory.class); LocalBluetoothManager lbm = Dependency.get(LocalBluetoothManager.class); InfoMediaManager imm = new InfoMediaManager(mContext, null, null, lbm); mLocalMediaManager = new LocalMediaManager(mContext, lbm, imm, null); |