Skip to content

Commit

Permalink
SystemUI: Enable cast tile without Wi-Fi connection
Browse files Browse the repository at this point in the history
* Match Settings behaviour
* Miracast does not need Wi-Fi connection, it's Wi-Fi Direct

Change-Id: I46c1394f35f993875beaaad547c9709a4355a342
  • Loading branch information
nift4 authored and basamaryan committed Aug 11, 2023
1 parent d4d6e40 commit 231ca73
Showing 1 changed file with 12 additions and 15 deletions.
27 changes: 12 additions & 15 deletions packages/SystemUI/src/com/android/systemui/qs/tiles/CastTile.java
Expand Up @@ -78,8 +78,8 @@ public class CastTile extends QSTileImpl<BooleanState> {
private final NetworkController mNetworkController;
private final DialogLaunchAnimator mDialogLaunchAnimator;
private final Callback mCallback = new Callback();
private boolean mWifiConnected;
private boolean mHotspotConnected;
private boolean mWifiEnabled;
private boolean mHotspotEnabled;

@Inject
public CastTile(
Expand Down Expand Up @@ -288,19 +288,17 @@ private String getDeviceName(CastDevice device) {
}

private boolean canCastToWifi() {
return mWifiConnected || mHotspotConnected;
return mWifiEnabled || mHotspotEnabled;
}

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 ? false : indicators.qsIcon.visible);
if (enabledAndConnected != mWifiConnected) {
mWifiConnected = enabledAndConnected;
// Hotspot is not connected, so changes here should update
if (!mHotspotConnected) {
boolean enabled = indicators.enabled;
if (enabled != mWifiEnabled) {
mWifiEnabled = enabled;
// Hotspot is not enabled, so changes here should update
if (!mHotspotEnabled) {
refreshState();
}
}
Expand All @@ -311,11 +309,10 @@ public void setWifiIndicators(@NonNull WifiIndicators indicators) {
new HotspotController.Callback() {
@Override
public void onHotspotChanged(boolean enabled, int numDevices) {
boolean enabledAndConnected = enabled && numDevices > 0;
if (enabledAndConnected != mHotspotConnected) {
mHotspotConnected = enabledAndConnected;
// Wifi is not connected, so changes here should update
if (!mWifiConnected) {
if (enabled != mHotspotEnabled) {
mHotspotEnabled = enabled;
// Wifi is not enabled, so changes here should update
if (!mWifiEnabled) {
refreshState();
}
}
Expand Down

0 comments on commit 231ca73

Please sign in to comment.