Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f6d31a0a authored by Jason Monk's avatar Jason Monk
Browse files

Fix cast tile crash

Switch from support library to internal implementation of cast
dialog.

Test: send menu event to dialog
Change-Id: If9c8bf0f544e712f3835977dd45a5adeeaac0c77
Fixes: 37216170
parent 7b7e7e16
Loading
Loading
Loading
Loading
+13 −20
Original line number Diff line number Diff line
@@ -16,33 +16,33 @@

package com.android.systemui.qs.tiles;

import static android.media.MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY;

import android.app.Dialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnDismissListener;
import android.content.Intent;
import android.content.IntentFilter;
import android.media.MediaRouter;
import android.os.UserHandle;
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.View.OnClickListener;
import android.view.ViewGroup;
import android.view.WindowManager;
import android.widget.Button;

import com.android.internal.app.MediaRouteChooserDialog;
import com.android.internal.app.MediaRouteControllerDialog;
import com.android.internal.app.MediaRouteDialogPresenter;
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;
@@ -133,19 +133,12 @@ public class CastTile extends QSTileImpl<BooleanState> {
    @Override
    public void showDetail(boolean show) {
        mUiHandler.post(() -> {
            Context context = new ContextThemeWrapper(mContext,
                    R.style.Theme_AppCompat_Light_Dialog_Alert);
            if (mState.value) {
                mDialog = new MediaRouteControllerDialog(context);
            } 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);
                mDialog = dialog;
            }
            mDialog = MediaRouteDialogPresenter.createDialog(mContext, ROUTE_TYPE_REMOTE_DISPLAY,
                    v -> {
                        mDialog.dismiss();
                        Dependency.get(ActivityStarter.class)
                                .postStartActivityDismissingKeyguard(getLongClickIntent(), 0);
                    });
            mDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_STATUS_BAR_PANEL);
            mUiHandler.post(() -> mDialog.show());
            registerReceiver();