From 1cbf5fbd7ac47a3cbcb4a8910a1dcdd7b7845373 Mon Sep 17 00:00:00 2001 From: Jason Monk Date: Thu, 30 Mar 2017 15:23:43 -0400 Subject: [PATCH] Switch cast over to support library dialog Makes UI more consistent and removes the cast detail panel from QS. Test: visual Change-Id: I9a70b9695511c5f1e4235a838a071079506963a6 Fixes: 35407111 --- packages/SystemUI/Android.mk | 1 + .../android/systemui/qs/tiles/CastTile.java | 33 +++++++++++++++++-- packages/SystemUI/tests/Android.mk | 1 + 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/packages/SystemUI/Android.mk b/packages/SystemUI/Android.mk index 635c96f237788..53c5b1b6b2bc6 100644 --- a/packages/SystemUI/Android.mk +++ b/packages/SystemUI/Android.mk @@ -34,6 +34,7 @@ LOCAL_STATIC_ANDROID_LIBRARIES := \ android-support-v7-recyclerview \ android-support-v7-preference \ android-support-v7-appcompat \ + android-support-v7-mediarouter \ android-support-v14-preference \ android-support-v17-leanback diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java index 22b6a634cb9a8..2725a329f6e05 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java @@ -20,22 +20,29 @@ import android.content.Context; import android.content.Intent; import android.provider.Settings; import android.service.quicksettings.Tile; +import android.support.v7.app.MediaRouteChooserDialog; +import android.support.v7.app.MediaRouteControllerDialog; +import android.support.v7.media.MediaControlIntent; +import android.support.v7.media.MediaRouteSelector; import android.util.Log; +import android.view.ContextThemeWrapper; import android.view.View; import android.view.View.OnAttachStateChangeListener; import android.view.ViewGroup; +import android.view.WindowManager; import android.widget.Button; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.systemui.Dependency; import com.android.systemui.R; +import com.android.systemui.R.style; import com.android.systemui.plugins.ActivityStarter; import com.android.systemui.plugins.qs.DetailAdapter; +import com.android.systemui.plugins.qs.QSTile.BooleanState; import com.android.systemui.qs.QSDetailItems; import com.android.systemui.qs.QSDetailItems.Item; import com.android.systemui.qs.QSHost; -import com.android.systemui.plugins.qs.QSTile.BooleanState; import com.android.systemui.qs.tileimpl.QSTileImpl; import com.android.systemui.statusbar.policy.CastController; import com.android.systemui.statusbar.policy.CastController.CastDevice; @@ -109,13 +116,35 @@ public class CastTile extends QSTileImpl { if (mKeyguard.isSecure() && !mKeyguard.canSkipBouncer()) { mActivityStarter.postQSRunnableDismissingKeyguard(() -> { showDetail(true); - mHost.openPanels(); }); return; } showDetail(true); } + @Override + public void showDetail(boolean show) { + mUiHandler.post(() -> { + Context context = new ContextThemeWrapper(mContext, + R.style.Theme_AppCompat_Light_Dialog_Alert); + if (mState.value) { + MediaRouteControllerDialog dialog = new MediaRouteControllerDialog(context); + dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL); + dialog.show(); + } else { + // Instead of showing detail, show standard media routing UI. + MediaRouteChooserDialog dialog = new MediaRouteChooserDialog(context); + MediaRouteSelector selector = new MediaRouteSelector.Builder() + .addControlCategory(MediaControlIntent.CATEGORY_LIVE_VIDEO) + .build(); + dialog.setRouteSelector(selector); + dialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL); + dialog.show(); + } + mHost.collapsePanels(); + }); + } + @Override public CharSequence getTileLabel() { return mContext.getString(R.string.quick_settings_cast_title); diff --git a/packages/SystemUI/tests/Android.mk b/packages/SystemUI/tests/Android.mk index ddd8d7b3002f5..8eedf3145e614 100644 --- a/packages/SystemUI/tests/Android.mk +++ b/packages/SystemUI/tests/Android.mk @@ -41,6 +41,7 @@ LOCAL_STATIC_ANDROID_LIBRARIES := \ android-support-v7-recyclerview \ android-support-v7-preference \ android-support-v7-appcompat \ + android-support-v7-mediarouter \ android-support-v14-preference \ android-support-v17-leanback