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
This commit is contained in:
timhypeng
2020-11-02 12:19:31 +08:00
committed by tim peng
parent 6472c98ffa
commit 7207584d6c
3 changed files with 15 additions and 17 deletions

View File

@@ -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) {

View File

@@ -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

View File

@@ -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);
}
}