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

Commit c8ce1d83 authored by Nicolo' Mazzucato's avatar Nicolo' Mazzucato
Browse files

Provide correct context on cast dialog creation

The dialog context was the shade one, that is now a TYPE_NOTIFICATION_SHADE window context. We can't create dialogs from that.

This uses the context created from ShadeDialogContextInteractor (that is DIALOG_WINDOW_TYPE)

Bug: 362719719
Bug: 383294128
Test: open cast dialog from QS
Flag: com.android.systemui.shade_window_goes_around
Change-Id: I216b2a010c3260951f4a238c7771fe02744ad786
parent 4fb4149e
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -50,6 +50,8 @@ import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSHost;
import com.android.systemui.qs.QsEventLogger;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.shade.domain.interactor.FakeShadeDialogContextInteractor;
import com.android.systemui.shade.domain.interactor.ShadeDialogContextInteractor;
import com.android.systemui.statusbar.connectivity.IconState;
import com.android.systemui.statusbar.connectivity.NetworkController;
import com.android.systemui.statusbar.connectivity.SignalCallback;
@@ -107,6 +109,8 @@ public class CastTileTest extends SysuiTestCase {
    private final FakeConnectivityRepository mConnectivityRepository =
            new FakeConnectivityRepository();
    private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags();
    private final ShadeDialogContextInteractor mShadeDialogContextInteractor =
            new FakeShadeDialogContextInteractor(mContext);

    private TestableLooper mTestableLooper;
    private CastTile mCastTile;
@@ -535,7 +539,8 @@ public class CastTileTest extends SysuiTestCase {
                mDialogTransitionAnimator,
                mConnectivityRepository,
                mJavaAdapter,
                mFeatureFlags
                mFeatureFlags,
                mShadeDialogContextInteractor
        );
        mCastTile.initialize();

@@ -578,7 +583,8 @@ public class CastTileTest extends SysuiTestCase {
                mDialogTransitionAnimator,
                mConnectivityRepository,
                mJavaAdapter,
                mFeatureFlags
                mFeatureFlags,
                mShadeDialogContextInteractor
        );
        mCastTile.initialize();

+6 −2
Original line number Diff line number Diff line
@@ -54,6 +54,7 @@ import com.android.systemui.qs.QsEventLogger;
import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.res.R;
import com.android.systemui.shade.domain.interactor.ShadeDialogContextInteractor;
import com.android.systemui.statusbar.connectivity.NetworkController;
import com.android.systemui.statusbar.connectivity.SignalCallback;
import com.android.systemui.statusbar.connectivity.WifiIndicators;
@@ -89,6 +90,7 @@ public class CastTile extends QSTileImpl<BooleanState> {
    private final Callback mCallback = new Callback();
    private final TileJavaAdapter mJavaAdapter;
    private final FeatureFlags mFeatureFlags;
    private final ShadeDialogContextInteractor mShadeDialogContextInteractor;
    private boolean mCastTransportAllowed;
    private boolean mHotspotConnected;

@@ -110,7 +112,8 @@ public class CastTile extends QSTileImpl<BooleanState> {
            DialogTransitionAnimator dialogTransitionAnimator,
            ConnectivityRepository connectivityRepository,
            TileJavaAdapter javaAdapter,
            FeatureFlags featureFlags
            FeatureFlags featureFlags,
            ShadeDialogContextInteractor shadeDialogContextInteractor
    ) {
        super(host, uiEventLogger, backgroundLooper, mainHandler, falsingManager, metricsLogger,
                statusBarStateController, activityStarter, qsLogger);
@@ -120,6 +123,7 @@ public class CastTile extends QSTileImpl<BooleanState> {
        mDialogTransitionAnimator = dialogTransitionAnimator;
        mJavaAdapter = javaAdapter;
        mFeatureFlags = featureFlags;
        mShadeDialogContextInteractor = shadeDialogContextInteractor;
        mController.observe(this, mCallback);
        mKeyguard.observe(this, mCallback);
        if (!mFeatureFlags.isEnabled(SIGNAL_CALLBACK_DEPRECATION)) {
@@ -220,7 +224,7 @@ public class CastTile extends QSTileImpl<BooleanState> {
        mUiHandler.post(() -> {
            final DialogHolder holder = new DialogHolder();
            final Dialog dialog = MediaRouteDialogPresenter.createDialog(
                    mContext,
                    mShadeDialogContextInteractor.getContext(),
                    ROUTE_TYPE_REMOTE_DISPLAY,
                    v -> {
                        ActivityTransitionAnimator.Controller controller =