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

Commit 3ee84533 authored by Caitlin Shkuratov's avatar Caitlin Shkuratov Committed by Android (Google) Code Review
Browse files

Merge changes I6da0e90b,Ie54c08a4 into main

* changes:
  [SB] Remove old SignalCallback from CastTile.java.
  [SB] Remove old InternetTile.java.
parents 14e0bbec 0ca355d0
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -36,7 +36,7 @@ import com.android.systemui.qs.tiles.DreamTile
import com.android.systemui.qs.tiles.FlashlightTile
import com.android.systemui.qs.tiles.FontScalingTile
import com.android.systemui.qs.tiles.HotspotTile
import com.android.systemui.qs.tiles.InternetTile
import com.android.systemui.qs.tiles.InternetTileNewImpl
import com.android.systemui.qs.tiles.LocationTile
import com.android.systemui.qs.tiles.MicrophoneToggleTile
import com.android.systemui.qs.tiles.ModesTile
@@ -64,7 +64,7 @@ import org.mockito.MockitoAnnotations

private val specMap =
    mapOf(
        "internet" to InternetTile::class.java,
        "internet" to InternetTileNewImpl::class.java,
        "bt" to BluetoothTile::class.java,
        "dnd" to ModesTile::class.java,
        "inversion" to ColorInversionTile::class.java,
@@ -102,7 +102,7 @@ class QSFactoryImplTest : SysuiTestCase() {
    @Mock private lateinit var customTileFactory: CustomTile.Factory
    @Mock private lateinit var customTile: CustomTile

    @Mock private lateinit var internetTile: InternetTile
    @Mock private lateinit var internetTile: InternetTileNewImpl
    @Mock private lateinit var bluetoothTile: BluetoothTile
    @Mock private lateinit var modesTile: ModesTile
    @Mock private lateinit var colorInversionTile: ColorInversionTile
+48 −169
Original line number Diff line number Diff line
@@ -14,10 +14,6 @@

package com.android.systemui.qs.tiles;

import static com.android.systemui.flags.Flags.SIGNAL_CALLBACK_DEPRECATION;

import static com.google.common.truth.Truth.assertThat;

import static junit.framework.Assert.assertTrue;
import static junit.framework.TestCase.assertEquals;

@@ -46,7 +42,6 @@ import com.android.internal.logging.MetricsLogger;
import com.android.systemui.SysuiTestCase;
import com.android.systemui.animation.DialogTransitionAnimator;
import com.android.systemui.classifier.FalsingManagerFake;
import com.android.systemui.flags.FakeFeatureFlags;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.statusbar.StatusBarStateController;
import com.android.systemui.qs.QSHost;
@@ -55,10 +50,6 @@ import com.android.systemui.qs.logging.QSLogger;
import com.android.systemui.qs.tiles.dialog.CastDetailsViewModel;
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;
import com.android.systemui.statusbar.connectivity.WifiIndicators;
import com.android.systemui.statusbar.pipeline.shared.data.repository.FakeConnectivityRepository;
import com.android.systemui.statusbar.policy.CastController;
import com.android.systemui.statusbar.policy.CastDevice;
@@ -89,12 +80,8 @@ public class CastTileTest extends SysuiTestCase {
    @Mock
    private KeyguardStateController mKeyguard;
    @Mock
    private NetworkController mNetworkController;
    @Mock
    private QSHost mHost;
    @Mock
    SignalCallback mSignalCallback;
    @Mock
    private MetricsLogger mMetricsLogger;
    @Mock
    private StatusBarStateController mStatusBarStateController;
@@ -114,7 +101,6 @@ public class CastTileTest extends SysuiTestCase {
    private final TileJavaAdapter mJavaAdapter = new TileJavaAdapter();
    private final FakeConnectivityRepository mConnectivityRepository =
            new FakeConnectivityRepository();
    private final FakeFeatureFlags mFeatureFlags = new FakeFeatureFlags();
    private final ShadeDialogContextInteractor mShadeDialogContextInteractor =
            new FakeShadeDialogContextInteractor(mContext);

@@ -137,71 +123,10 @@ public class CastTileTest extends SysuiTestCase {

    // -------------------------------------------------
    // All these tests for enabled/disabled wifi have hotspot not enabled
    @Test
    public void testStateUnavailable_wifiDisabled() {
        createAndStartTileOldImpl();
        IconState qsIcon = new IconState(false, 0, "");
        WifiIndicators indicators = new WifiIndicators(
                false, mock(IconState.class),
                qsIcon, false, false, "",
                false, "");
        mSignalCallback.setWifiIndicators(indicators);
        mTestableLooper.processAllMessages();

        assertEquals(Tile.STATE_UNAVAILABLE, mCastTile.getState().state);
    }

    @Test
    public void testStateUnavailable_wifiNotConnected() {
        createAndStartTileOldImpl();
        IconState qsIcon = new IconState(false, 0, "");
        WifiIndicators indicators = new WifiIndicators(
                true, mock(IconState.class),
                qsIcon, false, false, "",
                false, "");
        mSignalCallback.setWifiIndicators(indicators);
        mTestableLooper.processAllMessages();

        assertEquals(Tile.STATE_UNAVAILABLE, mCastTile.getState().state);
    }

    private void enableWifiAndProcessMessages() {
        IconState qsIcon = new IconState(true, 0, "");
        WifiIndicators indicators = new WifiIndicators(
                true, mock(IconState.class),
                qsIcon, false, false, "",
                false, "");
        mSignalCallback.setWifiIndicators(indicators);
        mTestableLooper.processAllMessages();
    }

    @Test
    public void testStateActive_wifiEnabledAndCasting() {
        createAndStartTileOldImpl();
        CastDevice device = createConnectedCastDevice();
        List<CastDevice> devices = new ArrayList<>();
        devices.add(device);
        when(mController.getCastDevices()).thenReturn(devices);

        enableWifiAndProcessMessages();
        assertEquals(Tile.STATE_ACTIVE, mCastTile.getState().state);
    }

    @Test
    public void testStateInactive_wifiEnabledNotCasting() {
        createAndStartTileOldImpl();
        enableWifiAndProcessMessages();
        assertEquals(Tile.STATE_INACTIVE, mCastTile.getState().state);
    }
    // -------------------------------------------------

    // -------------------------------------------------
    // All these tests for enabled/disabled wifi have hotspot not enabled, and have the
    // SIGNAL_CALLBACK_DEPRECATION flag set to true

    @Test
    public void stateUnavailable_noDefaultNetworks_newPipeline() {
        createAndStartTileNewImpl();
        createAndStartTile();
        mTestableLooper.processAllMessages();

        assertEquals(Tile.STATE_UNAVAILABLE, mCastTile.getState().state);
@@ -209,7 +134,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void stateUnavailable_mobileConnected_newPipeline() {
        createAndStartTileNewImpl();
        createAndStartTile();
        mConnectivityRepository.setMobileConnected(true);
        mTestableLooper.processAllMessages();

@@ -218,7 +143,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void stateInactive_wifiConnected_newPipeline() {
        createAndStartTileNewImpl();
        createAndStartTile();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

@@ -227,7 +152,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void stateInactive_ethernetConnected_newPipeline() {
        createAndStartTileNewImpl();
        createAndStartTile();
        mConnectivityRepository.setEthernetConnected(true);
        mTestableLooper.processAllMessages();

@@ -236,7 +161,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void stateActive_wifiConnectedAndCasting_newPipeline() {
        createAndStartTileNewImpl();
        createAndStartTile();
        CastDevice device = createConnectedCastDevice();
        List<CastDevice> devices = new ArrayList<>();
        devices.add(device);
@@ -251,7 +176,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void stateActive_ethernetConnectedAndCasting_newPipeline() {
        createAndStartTileNewImpl();
        createAndStartTile();
        CastDevice device = createConnectedCastDevice();
        List<CastDevice> devices = new ArrayList<>();
        devices.add(device);
@@ -270,7 +195,7 @@ public class CastTileTest extends SysuiTestCase {
    // All these tests for enabled/disabled hotspot have wifi not enabled
    @Test
    public void testStateUnavailable_hotspotDisabled() {
        createAndStartTileOldImpl();
        createAndStartTile();
        mHotspotCallback.onHotspotChanged(false, 0);
        mTestableLooper.processAllMessages();

@@ -279,7 +204,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testStateUnavailable_hotspotEnabledNotConnected() {
        createAndStartTileOldImpl();
        createAndStartTile();
        mHotspotCallback.onHotspotChanged(true, 0);
        mTestableLooper.processAllMessages();

@@ -288,7 +213,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testStateActive_hotspotEnabledAndConnectedAndCasting() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice device = createConnectedCastDevice();
        List<CastDevice> devices = new ArrayList<>();
        devices.add(device);
@@ -301,7 +226,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testStateInactive_hotspotEnabledAndConnectedAndNotCasting() {
        createAndStartTileOldImpl();
        createAndStartTile();
        mHotspotCallback.onHotspotChanged(true, 1);
        mTestableLooper.processAllMessages();
        assertEquals(Tile.STATE_INACTIVE, mCastTile.getState().state);
@@ -310,7 +235,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testHandleClick_castDevicePresent() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice device = new CastDevice(
                "id",
                /* name= */ null,
@@ -323,7 +248,9 @@ public class CastTileTest extends SysuiTestCase {
        when(mController.getCastDevices()).thenReturn(devices);
        when(mKeyguard.isShowing()).thenReturn(true);

        enableWifiAndProcessMessages();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        mCastTile.handleClick(null /* view */);
        mTestableLooper.processAllMessages();

@@ -332,7 +259,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testHandleClick_projectionOnly() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice device = new CastDevice(
                "id",
                /* name= */ null,
@@ -344,7 +271,9 @@ public class CastTileTest extends SysuiTestCase {
        devices.add(device);
        when(mController.getCastDevices()).thenReturn(devices);

        enableWifiAndProcessMessages();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        mCastTile.handleClick(null /* view */);
        mTestableLooper.processAllMessages();

@@ -354,7 +283,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testUpdateState_projectionOnly() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice device = new CastDevice(
                "id",
                /* name= */ "Test Projection Device",
@@ -366,7 +295,9 @@ public class CastTileTest extends SysuiTestCase {
        devices.add(device);
        when(mController.getCastDevices()).thenReturn(devices);

        enableWifiAndProcessMessages();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        assertEquals(Tile.STATE_ACTIVE, mCastTile.getState().state);
        assertTrue(mCastTile.getState().secondaryLabel.toString()
                .startsWith("Test Projection Device"));
@@ -374,7 +305,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testUpdateState_castingAndProjection() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice casting = new CastDevice(
                "id1",
                /* name= */ "Test Casting Device",
@@ -395,7 +326,8 @@ public class CastTileTest extends SysuiTestCase {
        devices.add(projection);
        when(mController.getCastDevices()).thenReturn(devices);

        enableWifiAndProcessMessages();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        // Note here that the tile should be active, and should choose casting over projection.
        assertEquals(Tile.STATE_ACTIVE, mCastTile.getState().state);
@@ -405,7 +337,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testUpdateState_connectedAndConnecting() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice connecting = new CastDevice(
                "id",
                /* name= */ "Test Connecting Device",
@@ -425,7 +357,8 @@ public class CastTileTest extends SysuiTestCase {
        devices.add(connected);
        when(mController.getCastDevices()).thenReturn(devices);

        enableWifiAndProcessMessages();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        // Tile should be connected and always prefer the connected device.
        assertEquals(Tile.STATE_ACTIVE, mCastTile.getState().state);
@@ -435,7 +368,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testExpandView_wifiNotConnected() {
        createAndStartTileOldImpl();
        createAndStartTile();
        mCastTile.refreshState();
        mTestableLooper.processAllMessages();

@@ -444,28 +377,30 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testExpandView_wifiEnabledNotCasting() {
        createAndStartTileOldImpl();
        enableWifiAndProcessMessages();
        createAndStartTile();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        assertTrue(mCastTile.getState().forceExpandIcon);
    }

    @Test
    public void testExpandView_casting_projection() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice device = createConnectedCastDevice();
        List<CastDevice> devices = new ArrayList<>();
        devices.add(device);
        when(mController.getCastDevices()).thenReturn(devices);

        enableWifiAndProcessMessages();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        assertFalse(mCastTile.getState().forceExpandIcon);
    }

    @Test
    public void testExpandView_connecting_projection() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice connecting = new CastDevice(
                "id",
                /* name= */
@@ -479,14 +414,15 @@ public class CastTileTest extends SysuiTestCase {
        devices.add(connecting);
        when(mController.getCastDevices()).thenReturn(devices);

        enableWifiAndProcessMessages();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        assertFalse(mCastTile.getState().forceExpandIcon);
    }

    @Test
    public void testExpandView_casting_mediaRoute() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice device = new CastDevice(
                "id",
                /* name= */ "Test Router Device",
@@ -499,14 +435,15 @@ public class CastTileTest extends SysuiTestCase {
        devices.add(device);
        when(mController.getCastDevices()).thenReturn(devices);

        enableWifiAndProcessMessages();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        assertTrue(mCastTile.getState().forceExpandIcon);
    }

    @Test
    public void testExpandView_connecting_mediaRoute() {
        createAndStartTileOldImpl();
        createAndStartTile();
        CastDevice connecting = new CastDevice(
                "id",
                /* name= */ "Test Router Device",
@@ -518,14 +455,15 @@ public class CastTileTest extends SysuiTestCase {
        devices.add(connecting);
        when(mController.getCastDevices()).thenReturn(devices);

        enableWifiAndProcessMessages();
        mConnectivityRepository.setWifiConnected(true);
        mTestableLooper.processAllMessages();

        assertTrue(mCastTile.getState().forceExpandIcon);
    }

    @Test
    public void testDetailsViewUnavailableState_returnsNull() {
        createAndStartTileNewImpl();
        createAndStartTile();
        mTestableLooper.processAllMessages();

        assertEquals(Tile.STATE_UNAVAILABLE, mCastTile.getState().state);
@@ -534,7 +472,7 @@ public class CastTileTest extends SysuiTestCase {

    @Test
    public void testDetailsViewAvailableState_returnsNotNull() {
        createAndStartTileNewImpl();
        createAndStartTile();
        CastDevice device = createConnectedCastDevice();
        List<CastDevice> devices = new ArrayList<>();
        devices.add(device);
@@ -546,63 +484,7 @@ public class CastTileTest extends SysuiTestCase {
        mCastTile.getDetailsViewModel(Assert::assertNotNull);
    }

    @Test
    public void testStateInactive_emptyStateDescription() {
        createAndStartTileOldImpl();
        enableWifiAndProcessMessages();
        assertThat(mCastTile.getState().stateDescription.isEmpty()).isTrue();
    }

    /**
     * For simplicity, let this method still set the field even though that's kind of gross
     */
    private void createAndStartTileOldImpl() {
        mFeatureFlags.set(SIGNAL_CALLBACK_DEPRECATION, false);
        mCastTile = new CastTile(
                mHost,
                mUiEventLogger,
                mTestableLooper.getLooper(),
                new Handler(mTestableLooper.getLooper()),
                new FalsingManagerFake(),
                mMetricsLogger,
                mStatusBarStateController,
                mActivityStarter,
                mQSLogger,
                mController,
                mKeyguard,
                mNetworkController,
                mHotspotController,
                mDialogTransitionAnimator,
                mConnectivityRepository,
                mJavaAdapter,
                mFeatureFlags,
                mShadeDialogContextInteractor,
                mCastDetailsViewModelFactory
        );
        mCastTile.initialize();

        // We are not setting the mocks to listening, so we trigger a first refresh state to
        // set the initial state
        mCastTile.refreshState();

        mTestableLooper.processAllMessages();

        mCastTile.handleSetListening(true);
        ArgumentCaptor<SignalCallback> signalCallbackArgumentCaptor =
                ArgumentCaptor.forClass(SignalCallback.class);
        verify(mNetworkController).observe(any(LifecycleOwner.class),
                signalCallbackArgumentCaptor.capture());
        mSignalCallback = signalCallbackArgumentCaptor.getValue();

        ArgumentCaptor<HotspotController.Callback> hotspotCallbackArgumentCaptor =
                ArgumentCaptor.forClass(HotspotController.Callback.class);
        verify(mHotspotController).observe(any(LifecycleOwner.class),
                hotspotCallbackArgumentCaptor.capture());
        mHotspotCallback = hotspotCallbackArgumentCaptor.getValue();
    }

    private void createAndStartTileNewImpl() {
        mFeatureFlags.set(SIGNAL_CALLBACK_DEPRECATION, true);
    private void createAndStartTile() {
        mCastTile = new CastTile(
                mHost,
                mUiEventLogger,
@@ -615,19 +497,16 @@ public class CastTileTest extends SysuiTestCase {
                mQSLogger,
                mController,
                mKeyguard,
                mNetworkController,
                mHotspotController,
                mDialogTransitionAnimator,
                mConnectivityRepository,
                mJavaAdapter,
                mFeatureFlags,
                mShadeDialogContextInteractor,
                mCastDetailsViewModelFactory
        );
        mCastTile.initialize();

        // Since we do not capture the callbacks like in the old impl, set the state to RESUMED
        // So that TileJavaAdapter is collecting on flows
        // Set the state to RESUMED so that TileJavaAdapter is collecting on flows
        mCastTile.setListening(new Object(), true);

        mTestableLooper.processAllMessages();
+0 −225

File deleted.

Preview size limit exceeded, changes collapsed.

+0 −5
Original line number Diff line number Diff line
@@ -151,11 +151,6 @@ object Flags {
    @JvmField
    val ENABLE_NEW_QS_EDIT_MODE = unreleasedFlag("enable_new_qs_edit_mode", teamfood = false)

    // 600- status bar

    // TODO(b/291315866): Tracking Bug
    @JvmField val SIGNAL_CALLBACK_DEPRECATION = releasedFlag("signal_callback_deprecation")

    // TODO(b/311222557): Tracking bug
    val ROAMING_INDICATOR_VIA_DISPLAY_INFO = releasedFlag("roaming_indicator_via_display_info")

+5 −35
Original line number Diff line number Diff line
@@ -18,9 +18,6 @@ package com.android.systemui.qs.tiles;

import static android.media.MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY;

import static com.android.systemui.flags.Flags.SIGNAL_CALLBACK_DEPRECATION;

import android.annotation.NonNull;
import android.app.Dialog;
import android.content.Intent;
import android.media.MediaRouter.RouteInfo;
@@ -45,7 +42,6 @@ import com.android.systemui.animation.DialogTransitionAnimator;
import com.android.systemui.animation.Expandable;
import com.android.systemui.dagger.qualifiers.Background;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.flags.FeatureFlags;
import com.android.systemui.plugins.ActivityStarter;
import com.android.systemui.plugins.FalsingManager;
import com.android.systemui.plugins.qs.QSTile.BooleanState;
@@ -58,9 +54,6 @@ import com.android.systemui.qs.tileimpl.QSTileImpl;
import com.android.systemui.qs.tiles.dialog.CastDetailsViewModel;
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;
import com.android.systemui.statusbar.phone.SystemUIDialog;
import com.android.systemui.statusbar.pipeline.shared.data.model.DefaultConnectionModel;
import com.android.systemui.statusbar.pipeline.shared.data.repository.ConnectivityRepository;
@@ -83,16 +76,11 @@ public class CastTile extends QSTileImpl<BooleanState> {

    private static final String INTERACTION_JANK_TAG = TILE_SPEC;

    private static final Intent CAST_SETTINGS =
            new Intent(Settings.ACTION_CAST_SETTINGS);

    private final CastController mController;
    private final KeyguardStateController mKeyguard;
    private final NetworkController mNetworkController;
    private final DialogTransitionAnimator mDialogTransitionAnimator;
    private final Callback mCallback = new Callback();
    private final TileJavaAdapter mJavaAdapter;
    private final FeatureFlags mFeatureFlags;
    private final ShadeDialogContextInteractor mShadeDialogContextInteractor;
    private boolean mCastTransportAllowed;
    private boolean mHotspotConnected;
@@ -111,12 +99,10 @@ public class CastTile extends QSTileImpl<BooleanState> {
            QSLogger qsLogger,
            CastController castController,
            KeyguardStateController keyguardStateController,
            NetworkController networkController,
            HotspotController hotspotController,
            DialogTransitionAnimator dialogTransitionAnimator,
            ConnectivityRepository connectivityRepository,
            TileJavaAdapter javaAdapter,
            FeatureFlags featureFlags,
            ShadeDialogContextInteractor shadeDialogContextInteractor,
            CastDetailsViewModel.Factory castDetailsViewModelFactory
    ) {
@@ -124,23 +110,17 @@ public class CastTile extends QSTileImpl<BooleanState> {
                statusBarStateController, activityStarter, qsLogger);
        mController = castController;
        mKeyguard = keyguardStateController;
        mNetworkController = networkController;
        mDialogTransitionAnimator = dialogTransitionAnimator;
        mJavaAdapter = javaAdapter;
        mFeatureFlags = featureFlags;
        mShadeDialogContextInteractor = shadeDialogContextInteractor;
        mCastDetailsViewModelFactory = castDetailsViewModelFactory;
        mController.observe(this, mCallback);
        mKeyguard.observe(this, mCallback);
        if (!mFeatureFlags.isEnabled(SIGNAL_CALLBACK_DEPRECATION)) {
            mNetworkController.observe(this, mSignalCallback);
        } else {
        mJavaAdapter.bind(
                this,
                connectivityRepository.getDefaultConnections(),
                mNetworkModelConsumer
        );
        }
        hotspotController.observe(this, mHotspotCallback);
    }

@@ -381,16 +361,6 @@ public class CastTile extends QSTileImpl<BooleanState> {
        setCastTransportAllowed((isWifiDefault || isEthernetDefault) && !hasCellularTransport);
    };

    private final SignalCallback mSignalCallback = new SignalCallback() {
        @Override
        public void setWifiIndicators(@NonNull WifiIndicators indicators) {
            // statusIcon.visible has the connected status information
            boolean enabledAndConnected = indicators.enabled
                    && (indicators.qsIcon != null && indicators.qsIcon.visible);
            setCastTransportAllowed(enabledAndConnected);
        }
    };

    private final HotspotController.Callback mHotspotCallback =
            new HotspotController.Callback() {
                @Override
Loading