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
diff --git a/src/com/android/settings/panel/MediaOutputPanel.java b/src/com/android/settings/panel/MediaOutputPanel.java
index 7caf7dd..4bfe3ca 100644
--- a/src/com/android/settings/panel/MediaOutputPanel.java
+++ b/src/com/android/settings/panel/MediaOutputPanel.java
@@ -44,6 +44,7 @@
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 @@
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 6f2d59b..57585eb 100644
--- a/src/com/android/settings/panel/PanelFragment.java
+++ b/src/com/android/settings/panel/PanelFragment.java
@@ -436,12 +436,14 @@
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 54f1894..f924d7a 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 @@
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 @@
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);
- }
}