Loading packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java +113 −36 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.widget.Switch; import androidx.annotation.Nullable; import com.android.internal.annotations.GuardedBy; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settingslib.graph.SignalDrawable; Loading Loading @@ -174,6 +175,15 @@ public class InternetTile extends QSTileImpl<SignalState> { @Nullable String mEthernetContentDescription; public void copyTo(EthernetCallbackInfo ethernetCallbackInfo) { if (ethernetCallbackInfo == null) { throw new IllegalArgumentException(); } ethernetCallbackInfo.mConnected = this.mConnected; ethernetCallbackInfo.mEthernetSignalIconId = this.mEthernetSignalIconId; ethernetCallbackInfo.mEthernetContentDescription = this.mEthernetContentDescription; } @Override public String toString() { return new StringBuilder("EthernetCallbackInfo[") Loading @@ -200,6 +210,23 @@ public class InternetTile extends QSTileImpl<SignalState> { boolean mNoValidatedNetwork; boolean mNoNetworksAvailable; public void copyTo(WifiCallbackInfo wifiCallbackInfo) { if (wifiCallbackInfo == null) { throw new IllegalArgumentException(); } wifiCallbackInfo.mAirplaneModeEnabled = this.mAirplaneModeEnabled; wifiCallbackInfo.mEnabled = this.mEnabled; wifiCallbackInfo.mConnected = this.mConnected; wifiCallbackInfo.mWifiSignalIconId = this.mWifiSignalIconId; wifiCallbackInfo.mSsid = this.mSsid; wifiCallbackInfo.mWifiSignalContentDescription = this.mWifiSignalContentDescription; wifiCallbackInfo.mIsTransient = this.mIsTransient; wifiCallbackInfo.mStatusLabel = this.mStatusLabel; wifiCallbackInfo.mNoDefaultNetwork = this.mNoDefaultNetwork; wifiCallbackInfo.mNoValidatedNetwork = this.mNoValidatedNetwork; wifiCallbackInfo.mNoNetworksAvailable = this.mNoNetworksAvailable; } @Override public String toString() { return new StringBuilder("WifiCallbackInfo[") Loading Loading @@ -232,6 +259,23 @@ public class InternetTile extends QSTileImpl<SignalState> { boolean mNoValidatedNetwork; boolean mNoNetworksAvailable; public void copyTo(CellularCallbackInfo cellularCallbackInfo) { if (cellularCallbackInfo == null) { throw new IllegalArgumentException(); } cellularCallbackInfo.mAirplaneModeEnabled = this.mAirplaneModeEnabled; cellularCallbackInfo.mDataSubscriptionName = this.mDataSubscriptionName; cellularCallbackInfo.mDataContentDescription = this.mDataContentDescription; cellularCallbackInfo.mMobileSignalIconId = this.mMobileSignalIconId; cellularCallbackInfo.mQsTypeIcon = this.mQsTypeIcon; cellularCallbackInfo.mNoSim = this.mNoSim; cellularCallbackInfo.mRoaming = this.mRoaming; cellularCallbackInfo.mMultipleSubs = this.mMultipleSubs; cellularCallbackInfo.mNoDefaultNetwork = this.mNoDefaultNetwork; cellularCallbackInfo.mNoValidatedNetwork = this.mNoValidatedNetwork; cellularCallbackInfo.mNoNetworksAvailable = this.mNoNetworksAvailable; } @Override public String toString() { return new StringBuilder("CellularCallbackInfo[") Loading @@ -251,8 +295,11 @@ public class InternetTile extends QSTileImpl<SignalState> { } protected final class InternetSignalCallback implements SignalCallback { @GuardedBy("mWifiInfo") final WifiCallbackInfo mWifiInfo = new WifiCallbackInfo(); @GuardedBy("mCellularInfo") final CellularCallbackInfo mCellularInfo = new CellularCallbackInfo(); @GuardedBy("mEthernetInfo") final EthernetCallbackInfo mEthernetInfo = new EthernetCallbackInfo(); Loading @@ -261,6 +308,7 @@ public class InternetTile extends QSTileImpl<SignalState> { if (DEBUG) { Log.d(TAG, "setWifiIndicators: " + indicators); } synchronized (mWifiInfo) { mWifiInfo.mEnabled = indicators.enabled; mWifiInfo.mSsid = indicators.description; mWifiInfo.mIsTransient = indicators.isTransient; Loading @@ -269,13 +317,16 @@ public class InternetTile extends QSTileImpl<SignalState> { mWifiInfo.mConnected = indicators.qsIcon.visible; mWifiInfo.mWifiSignalIconId = indicators.qsIcon.icon; mWifiInfo.mWifiSignalContentDescription = indicators.qsIcon.contentDescription; refreshState(mWifiInfo); } else { mWifiInfo.mConnected = false; mWifiInfo.mWifiSignalIconId = 0; mWifiInfo.mWifiSignalContentDescription = null; } } if (indicators.qsIcon != null) { refreshState(mWifiInfo); } } @Override public void setMobileDataIndicators(@NonNull MobileDataIndicators indicators) { Loading @@ -286,6 +337,7 @@ public class InternetTile extends QSTileImpl<SignalState> { // Not data sim, don't display. return; } synchronized (mCellularInfo) { mCellularInfo.mDataSubscriptionName = indicators.qsDescription == null ? mController.getMobileDataNetworkName() : indicators.qsDescription; mCellularInfo.mDataContentDescription = indicators.qsDescription != null Loading @@ -294,6 +346,7 @@ public class InternetTile extends QSTileImpl<SignalState> { mCellularInfo.mQsTypeIcon = indicators.qsType; mCellularInfo.mRoaming = indicators.roaming; mCellularInfo.mMultipleSubs = mController.getNumberSubscriptions() > 1; } refreshState(mCellularInfo); } Loading @@ -303,9 +356,11 @@ public class InternetTile extends QSTileImpl<SignalState> { Log.d(TAG, "setEthernetIndicators: " + "icon = " + (icon == null ? "" : icon.toString())); } synchronized (mEthernetInfo) { mEthernetInfo.mConnected = icon.visible; mEthernetInfo.mEthernetSignalIconId = icon.icon; mEthernetInfo.mEthernetContentDescription = icon.contentDescription; } if (icon.visible) { refreshState(mEthernetInfo); } Loading @@ -318,6 +373,7 @@ public class InternetTile extends QSTileImpl<SignalState> { + "show = " + show + "," + "simDetected = " + simDetected); } synchronized (mCellularInfo) { mCellularInfo.mNoSim = show; if (mCellularInfo.mNoSim) { // Make sure signal gets cleared out when no sims. Loading @@ -325,6 +381,7 @@ public class InternetTile extends QSTileImpl<SignalState> { mCellularInfo.mQsTypeIcon = 0; } } } @Override public void setIsAirplaneMode(IconState icon) { Loading @@ -335,8 +392,12 @@ public class InternetTile extends QSTileImpl<SignalState> { if (mCellularInfo.mAirplaneModeEnabled == icon.visible) { return; } synchronized (mCellularInfo) { mCellularInfo.mAirplaneModeEnabled = icon.visible; } synchronized (mWifiInfo) { mWifiInfo.mAirplaneModeEnabled = icon.visible; } if (!mSignalCallback.mEthernetInfo.mConnected) { // Always use mWifiInfo to refresh the Internet Tile if airplane mode is enabled, // because Internet Tile will show different information depending on whether WiFi Loading @@ -363,12 +424,16 @@ public class InternetTile extends QSTileImpl<SignalState> { + "noValidatedNetwork = " + noValidatedNetwork + "," + "noNetworksAvailable = " + noNetworksAvailable); } synchronized (mCellularInfo) { mCellularInfo.mNoDefaultNetwork = noDefaultNetwork; mCellularInfo.mNoValidatedNetwork = noValidatedNetwork; mCellularInfo.mNoNetworksAvailable = noNetworksAvailable; } synchronized (mWifiInfo) { mWifiInfo.mNoDefaultNetwork = noDefaultNetwork; mWifiInfo.mNoValidatedNetwork = noValidatedNetwork; mWifiInfo.mNoNetworksAvailable = noNetworksAvailable; } if (!noDefaultNetwork) { return; } Loading Loading @@ -403,11 +468,23 @@ public class InternetTile extends QSTileImpl<SignalState> { // arg = null, in this case the last updated CellularCallbackInfo or WifiCallbackInfo // should be used to refresh the tile. if (mLastTileState == LAST_STATE_CELLULAR) { handleUpdateCellularState(state, mSignalCallback.mCellularInfo); CellularCallbackInfo cellularInfo = new CellularCallbackInfo(); synchronized (mSignalCallback.mCellularInfo) { mSignalCallback.mCellularInfo.copyTo(cellularInfo); } handleUpdateCellularState(state, cellularInfo); } else if (mLastTileState == LAST_STATE_WIFI) { handleUpdateWifiState(state, mSignalCallback.mWifiInfo); WifiCallbackInfo mifiInfo = new WifiCallbackInfo(); synchronized (mSignalCallback.mWifiInfo) { mSignalCallback.mWifiInfo.copyTo(mifiInfo); } handleUpdateCellularState(state, mifiInfo); } else if (mLastTileState == LAST_STATE_ETHERNET) { handleUpdateEthernetState(state, mSignalCallback.mEthernetInfo); EthernetCallbackInfo ethernetInfo = new EthernetCallbackInfo(); synchronized (mSignalCallback.mEthernetInfo) { mSignalCallback.mEthernetInfo.copyTo(ethernetInfo); } handleUpdateCellularState(state, ethernetInfo); } } } Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java +113 −36 Original line number Diff line number Diff line Loading @@ -35,6 +35,7 @@ import android.widget.Switch; import androidx.annotation.Nullable; import com.android.internal.annotations.GuardedBy; import com.android.internal.logging.MetricsLogger; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; import com.android.settingslib.graph.SignalDrawable; Loading Loading @@ -174,6 +175,15 @@ public class InternetTile extends QSTileImpl<SignalState> { @Nullable String mEthernetContentDescription; public void copyTo(EthernetCallbackInfo ethernetCallbackInfo) { if (ethernetCallbackInfo == null) { throw new IllegalArgumentException(); } ethernetCallbackInfo.mConnected = this.mConnected; ethernetCallbackInfo.mEthernetSignalIconId = this.mEthernetSignalIconId; ethernetCallbackInfo.mEthernetContentDescription = this.mEthernetContentDescription; } @Override public String toString() { return new StringBuilder("EthernetCallbackInfo[") Loading @@ -200,6 +210,23 @@ public class InternetTile extends QSTileImpl<SignalState> { boolean mNoValidatedNetwork; boolean mNoNetworksAvailable; public void copyTo(WifiCallbackInfo wifiCallbackInfo) { if (wifiCallbackInfo == null) { throw new IllegalArgumentException(); } wifiCallbackInfo.mAirplaneModeEnabled = this.mAirplaneModeEnabled; wifiCallbackInfo.mEnabled = this.mEnabled; wifiCallbackInfo.mConnected = this.mConnected; wifiCallbackInfo.mWifiSignalIconId = this.mWifiSignalIconId; wifiCallbackInfo.mSsid = this.mSsid; wifiCallbackInfo.mWifiSignalContentDescription = this.mWifiSignalContentDescription; wifiCallbackInfo.mIsTransient = this.mIsTransient; wifiCallbackInfo.mStatusLabel = this.mStatusLabel; wifiCallbackInfo.mNoDefaultNetwork = this.mNoDefaultNetwork; wifiCallbackInfo.mNoValidatedNetwork = this.mNoValidatedNetwork; wifiCallbackInfo.mNoNetworksAvailable = this.mNoNetworksAvailable; } @Override public String toString() { return new StringBuilder("WifiCallbackInfo[") Loading Loading @@ -232,6 +259,23 @@ public class InternetTile extends QSTileImpl<SignalState> { boolean mNoValidatedNetwork; boolean mNoNetworksAvailable; public void copyTo(CellularCallbackInfo cellularCallbackInfo) { if (cellularCallbackInfo == null) { throw new IllegalArgumentException(); } cellularCallbackInfo.mAirplaneModeEnabled = this.mAirplaneModeEnabled; cellularCallbackInfo.mDataSubscriptionName = this.mDataSubscriptionName; cellularCallbackInfo.mDataContentDescription = this.mDataContentDescription; cellularCallbackInfo.mMobileSignalIconId = this.mMobileSignalIconId; cellularCallbackInfo.mQsTypeIcon = this.mQsTypeIcon; cellularCallbackInfo.mNoSim = this.mNoSim; cellularCallbackInfo.mRoaming = this.mRoaming; cellularCallbackInfo.mMultipleSubs = this.mMultipleSubs; cellularCallbackInfo.mNoDefaultNetwork = this.mNoDefaultNetwork; cellularCallbackInfo.mNoValidatedNetwork = this.mNoValidatedNetwork; cellularCallbackInfo.mNoNetworksAvailable = this.mNoNetworksAvailable; } @Override public String toString() { return new StringBuilder("CellularCallbackInfo[") Loading @@ -251,8 +295,11 @@ public class InternetTile extends QSTileImpl<SignalState> { } protected final class InternetSignalCallback implements SignalCallback { @GuardedBy("mWifiInfo") final WifiCallbackInfo mWifiInfo = new WifiCallbackInfo(); @GuardedBy("mCellularInfo") final CellularCallbackInfo mCellularInfo = new CellularCallbackInfo(); @GuardedBy("mEthernetInfo") final EthernetCallbackInfo mEthernetInfo = new EthernetCallbackInfo(); Loading @@ -261,6 +308,7 @@ public class InternetTile extends QSTileImpl<SignalState> { if (DEBUG) { Log.d(TAG, "setWifiIndicators: " + indicators); } synchronized (mWifiInfo) { mWifiInfo.mEnabled = indicators.enabled; mWifiInfo.mSsid = indicators.description; mWifiInfo.mIsTransient = indicators.isTransient; Loading @@ -269,13 +317,16 @@ public class InternetTile extends QSTileImpl<SignalState> { mWifiInfo.mConnected = indicators.qsIcon.visible; mWifiInfo.mWifiSignalIconId = indicators.qsIcon.icon; mWifiInfo.mWifiSignalContentDescription = indicators.qsIcon.contentDescription; refreshState(mWifiInfo); } else { mWifiInfo.mConnected = false; mWifiInfo.mWifiSignalIconId = 0; mWifiInfo.mWifiSignalContentDescription = null; } } if (indicators.qsIcon != null) { refreshState(mWifiInfo); } } @Override public void setMobileDataIndicators(@NonNull MobileDataIndicators indicators) { Loading @@ -286,6 +337,7 @@ public class InternetTile extends QSTileImpl<SignalState> { // Not data sim, don't display. return; } synchronized (mCellularInfo) { mCellularInfo.mDataSubscriptionName = indicators.qsDescription == null ? mController.getMobileDataNetworkName() : indicators.qsDescription; mCellularInfo.mDataContentDescription = indicators.qsDescription != null Loading @@ -294,6 +346,7 @@ public class InternetTile extends QSTileImpl<SignalState> { mCellularInfo.mQsTypeIcon = indicators.qsType; mCellularInfo.mRoaming = indicators.roaming; mCellularInfo.mMultipleSubs = mController.getNumberSubscriptions() > 1; } refreshState(mCellularInfo); } Loading @@ -303,9 +356,11 @@ public class InternetTile extends QSTileImpl<SignalState> { Log.d(TAG, "setEthernetIndicators: " + "icon = " + (icon == null ? "" : icon.toString())); } synchronized (mEthernetInfo) { mEthernetInfo.mConnected = icon.visible; mEthernetInfo.mEthernetSignalIconId = icon.icon; mEthernetInfo.mEthernetContentDescription = icon.contentDescription; } if (icon.visible) { refreshState(mEthernetInfo); } Loading @@ -318,6 +373,7 @@ public class InternetTile extends QSTileImpl<SignalState> { + "show = " + show + "," + "simDetected = " + simDetected); } synchronized (mCellularInfo) { mCellularInfo.mNoSim = show; if (mCellularInfo.mNoSim) { // Make sure signal gets cleared out when no sims. Loading @@ -325,6 +381,7 @@ public class InternetTile extends QSTileImpl<SignalState> { mCellularInfo.mQsTypeIcon = 0; } } } @Override public void setIsAirplaneMode(IconState icon) { Loading @@ -335,8 +392,12 @@ public class InternetTile extends QSTileImpl<SignalState> { if (mCellularInfo.mAirplaneModeEnabled == icon.visible) { return; } synchronized (mCellularInfo) { mCellularInfo.mAirplaneModeEnabled = icon.visible; } synchronized (mWifiInfo) { mWifiInfo.mAirplaneModeEnabled = icon.visible; } if (!mSignalCallback.mEthernetInfo.mConnected) { // Always use mWifiInfo to refresh the Internet Tile if airplane mode is enabled, // because Internet Tile will show different information depending on whether WiFi Loading @@ -363,12 +424,16 @@ public class InternetTile extends QSTileImpl<SignalState> { + "noValidatedNetwork = " + noValidatedNetwork + "," + "noNetworksAvailable = " + noNetworksAvailable); } synchronized (mCellularInfo) { mCellularInfo.mNoDefaultNetwork = noDefaultNetwork; mCellularInfo.mNoValidatedNetwork = noValidatedNetwork; mCellularInfo.mNoNetworksAvailable = noNetworksAvailable; } synchronized (mWifiInfo) { mWifiInfo.mNoDefaultNetwork = noDefaultNetwork; mWifiInfo.mNoValidatedNetwork = noValidatedNetwork; mWifiInfo.mNoNetworksAvailable = noNetworksAvailable; } if (!noDefaultNetwork) { return; } Loading Loading @@ -403,11 +468,23 @@ public class InternetTile extends QSTileImpl<SignalState> { // arg = null, in this case the last updated CellularCallbackInfo or WifiCallbackInfo // should be used to refresh the tile. if (mLastTileState == LAST_STATE_CELLULAR) { handleUpdateCellularState(state, mSignalCallback.mCellularInfo); CellularCallbackInfo cellularInfo = new CellularCallbackInfo(); synchronized (mSignalCallback.mCellularInfo) { mSignalCallback.mCellularInfo.copyTo(cellularInfo); } handleUpdateCellularState(state, cellularInfo); } else if (mLastTileState == LAST_STATE_WIFI) { handleUpdateWifiState(state, mSignalCallback.mWifiInfo); WifiCallbackInfo mifiInfo = new WifiCallbackInfo(); synchronized (mSignalCallback.mWifiInfo) { mSignalCallback.mWifiInfo.copyTo(mifiInfo); } handleUpdateCellularState(state, mifiInfo); } else if (mLastTileState == LAST_STATE_ETHERNET) { handleUpdateEthernetState(state, mSignalCallback.mEthernetInfo); EthernetCallbackInfo ethernetInfo = new EthernetCallbackInfo(); synchronized (mSignalCallback.mEthernetInfo) { mSignalCallback.mEthernetInfo.copyTo(ethernetInfo); } handleUpdateCellularState(state, ethernetInfo); } } } Loading