From 7207584d6ce5edf6eb21a10b1614f89fc265ff0d Mon Sep 17 00:00:00 2001 From: timhypeng Date: Mon, 2 Nov 2020 12:19:31 +0800 Subject: [PATCH] Redirect to output switcher panel to the new dialog -Redirect for Cast button -Send intent when call MediaOutputPanel::create() -Return null to finish the activity Bug: 172178632 Test: make -j50 RunSettingsRoboTests Merged-In: I1038e237113f433c847aff98a45b1dd6089d80a8 Change-Id: I1038e237113f433c847aff98a45b1dd6089d80a8 --- .../android/settings/panel/MediaOutputPanel.java | 8 +++++++- src/com/android/settings/panel/PanelFragment.java | 14 ++++++++------ .../panel/PanelFeatureProviderImplTest.java | 10 ---------- 3 files changed, 15 insertions(+), 17 deletions(-) diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java index 7caf7dda7e5..4bfe3ca6940 100644 --- a/src/com/android/settings/panel/MediaOutputPanel.java +++ b/src/com/android/settings/panel/MediaOutputPanel.java @@ -44,6 +44,7 @@ import com.android.settings.Utils; import com.android.settingslib.media.InfoMediaDevice; import com.android.settingslib.media.LocalMediaManager; import com.android.settingslib.media.MediaDevice; +import com.android.settingslib.media.MediaOutputSliceConstants; import java.util.ArrayList; import java.util.List; @@ -72,7 +73,12 @@ public class MediaOutputPanel implements PanelContent, LocalMediaManager.DeviceC private MediaController mMediaController; public static MediaOutputPanel create(Context context, String packageName) { - return new MediaOutputPanel(context, packageName); + // Redirect to new media output dialog + context.sendBroadcast(new Intent() + .setPackage(MediaOutputSliceConstants.SYSTEMUI_PACKAGE_NAME) + .setAction(MediaOutputSliceConstants.ACTION_LAUNCH_MEDIA_OUTPUT_DIALOG) + .putExtra(MediaOutputSliceConstants.EXTRA_PACKAGE_NAME, packageName)); + return null; } private MediaOutputPanel(Context context, String packageName) { diff --git a/src/com/android/settings/panel/PanelFragment.java b/src/com/android/settings/panel/PanelFragment.java index 6f2d59b53bc..57585eb7173 100644 --- a/src/com/android/settings/panel/PanelFragment.java +++ b/src/com/android/settings/panel/PanelFragment.java @@ -436,12 +436,14 @@ public class PanelFragment extends Fragment { if (mLayoutView != null) { mLayoutView.getViewTreeObserver().removeOnGlobalLayoutListener(mPanelLayoutListener); } - mMetricsProvider.action( - 0 /* attribution */, - SettingsEnums.PAGE_HIDE, - mPanel.getMetricsCategory(), - mPanelClosedKey, - 0 /* value */); + if (mPanel != null) { + mMetricsProvider.action( + 0 /* attribution */, + SettingsEnums.PAGE_HIDE, + mPanel.getMetricsCategory(), + mPanelClosedKey, + 0 /* value */); + } } @VisibleForTesting diff --git a/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java b/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java index 54f18948cb7..f924d7a01d2 100644 --- a/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java +++ b/tests/robotests/src/com/android/settings/panel/PanelFeatureProviderImplTest.java @@ -19,7 +19,6 @@ package com.android.settings.panel; import static com.android.settings.panel.SettingsPanelActivity.KEY_MEDIA_PACKAGE_NAME; import static com.android.settings.panel.SettingsPanelActivity.KEY_PANEL_TYPE_ARGUMENT; -import static com.android.settingslib.media.MediaOutputSliceConstants.ACTION_MEDIA_OUTPUT; import static com.google.common.truth.Truth.assertThat; @@ -67,13 +66,4 @@ public class PanelFeatureProviderImplTest { assertThat(panel).isInstanceOf(VolumePanel.class); } - - @Test - public void getPanel_mediaOutputKey_returnsCorrectPanel() { - mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, ACTION_MEDIA_OUTPUT); - - final PanelContent panel = mProvider.getPanel(mContext, mBundle); - - assertThat(panel).isInstanceOf(MediaOutputPanel.class); - } }