Loading packages/SettingsLib/res/values/strings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -1484,5 +1484,5 @@ <!-- Content description of the Ethernet connection when disconnected for accessibility (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_ethernet_disconnected">Ethernet disconnected.</string> <!-- Content description of the Ethernet connection when connected for accessibility (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_ethernet_connected">Ethernet connected.</string> <string name="accessibility_ethernet_connected">Ethernet.</string> </resources> packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java +79 −10 Original line number Diff line number Diff line Loading @@ -54,6 +54,9 @@ import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; import com.android.systemui.statusbar.policy.WifiIcons; import java.io.FileDescriptor; import java.io.PrintWriter; import javax.inject.Inject; /** Quick settings tile: Internet **/ Loading @@ -65,7 +68,7 @@ public class InternetTile extends QSTileImpl<SignalState> { protected final NetworkController mController; private final DataUsageController mDataController; private final QSTile.SignalState mStateBeforeClick = newTileState(); // The last updated tile state, 0: mobile, 1: wifi // The last updated tile state, 0: mobile, 1: wifi, 2: ethernet. private int mLastTileState = -1; protected final InternetSignalCallback mSignalCallback = new InternetSignalCallback(); Loading Loading @@ -140,6 +143,21 @@ public class InternetTile extends QSTileImpl<SignalState> { return string; } private static final class EthernetCallbackInfo { boolean mConnected; int mEthernetSignalIconId; String mEthernetContentDescription; @Override public String toString() { return new StringBuilder("EthernetCallbackInfo[") .append("mConnected=").append(mConnected) .append(",mEthernetSignalIconId=").append(mEthernetSignalIconId) .append(",mEthernetContentDescription=").append(mEthernetContentDescription) .append(']').toString(); } } private static final class WifiCallbackInfo { boolean mAirplaneModeEnabled; boolean mEnabled; Loading Loading @@ -212,6 +230,8 @@ public class InternetTile extends QSTileImpl<SignalState> { protected final class InternetSignalCallback implements SignalCallback { final WifiCallbackInfo mWifiInfo = new WifiCallbackInfo(); final CellularCallbackInfo mCellularInfo = new CellularCallbackInfo(); final EthernetCallbackInfo mEthernetInfo = new EthernetCallbackInfo(); @Override public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, Loading @@ -230,14 +250,12 @@ public class InternetTile extends QSTileImpl<SignalState> { } // When airplane mode is enabled, we need to refresh the Internet Tile even if the WiFi // is not the default network. if (qsIcon == null && !mWifiInfo.mAirplaneModeEnabled) { if (qsIcon == null) { return; } if (qsIcon != null) { mWifiInfo.mConnected = qsIcon.visible; mWifiInfo.mWifiSignalIconId = qsIcon.icon; mWifiInfo.mWifiSignalContentDescription = qsIcon.contentDescription; } mWifiInfo.mEnabled = enabled; mWifiInfo.mSsid = description; mWifiInfo.mActivityIn = activityIn; Loading Loading @@ -286,6 +304,20 @@ public class InternetTile extends QSTileImpl<SignalState> { refreshState(mCellularInfo); } @Override public void setEthernetIndicators(IconState icon) { if (DEBUG) { Log.d(TAG, "setEthernetIndicators: " + "icon = " + (icon == null ? "" : icon.toString())); } mEthernetInfo.mConnected = icon.visible; mEthernetInfo.mEthernetSignalIconId = icon.icon; mEthernetInfo.mEthernetContentDescription = icon.contentDescription; if (icon.visible) { refreshState(mEthernetInfo); } } @Override public void setNoSims(boolean show, boolean simDetected) { if (DEBUG) { Loading @@ -299,7 +331,6 @@ public class InternetTile extends QSTileImpl<SignalState> { mCellularInfo.mMobileSignalIconId = 0; mCellularInfo.mQsTypeIcon = 0; } refreshState(mCellularInfo); } @Override Loading @@ -310,8 +341,10 @@ public class InternetTile extends QSTileImpl<SignalState> { } mCellularInfo.mAirplaneModeEnabled = icon.visible; mWifiInfo.mAirplaneModeEnabled = icon.visible; if (!mSignalCallback.mEthernetInfo.mConnected) { refreshState(mCellularInfo); } } @Override public void setConnectivityStatus(boolean noDefaultNetwork, boolean noValidatedNetwork, Loading @@ -330,6 +363,15 @@ public class InternetTile extends QSTileImpl<SignalState> { mWifiInfo.mNoNetworksAvailable = noNetworksAvailable; refreshState(mWifiInfo); } @Override public String toString() { return new StringBuilder("InternetSignalCallback[") .append("mWifiInfo=").append(mWifiInfo) .append(",mCellularInfo=").append(mCellularInfo) .append(",mEthernetInfo=").append(mEthernetInfo) .append(']').toString(); } } @Override Loading @@ -340,6 +382,9 @@ public class InternetTile extends QSTileImpl<SignalState> { } else if (arg instanceof WifiCallbackInfo) { mLastTileState = 1; handleUpdateWifiState(state, arg); } else if (arg instanceof EthernetCallbackInfo) { mLastTileState = 2; handleUpdateEthernetState(state, arg); } else { // handleUpdateState will be triggered when user expands the QuickSetting panel with // arg = null, in this case the last updated CellularCallbackInfo or WifiCallbackInfo Loading @@ -348,6 +393,8 @@ public class InternetTile extends QSTileImpl<SignalState> { handleUpdateCellularState(state, mSignalCallback.mCellularInfo); } else if (mLastTileState == 1) { handleUpdateWifiState(state, mSignalCallback.mWifiInfo); } else if (mLastTileState == 2) { handleUpdateEthernetState(state, mSignalCallback.mEthernetInfo); } } } Loading Loading @@ -440,7 +487,6 @@ public class InternetTile extends QSTileImpl<SignalState> { Log.d(TAG, "handleUpdateCellularState: " + "CellularCallbackInfo = " + cb.toString()); } final Resources r = mContext.getResources(); // TODO(b/174753536): Use the new "Internet" string as state.label once available. state.label = r.getString(R.string.quick_settings_internet_label); state.state = Tile.STATE_ACTIVE; boolean mobileDataEnabled = mDataController.isMobileDataSupported() Loading Loading @@ -478,6 +524,18 @@ public class InternetTile extends QSTileImpl<SignalState> { } } private void handleUpdateEthernetState(SignalState state, Object arg) { EthernetCallbackInfo cb = (EthernetCallbackInfo) arg; if (DEBUG) { Log.d(TAG, "handleUpdateEthernetState: " + "EthernetCallbackInfo = " + cb.toString()); } final Resources r = mContext.getResources(); state.label = r.getString(R.string.quick_settings_internet_label); state.state = Tile.STATE_ACTIVE; state.icon = ResourceIcon.get(cb.mEthernetSignalIconId); state.secondaryLabel = cb.mEthernetContentDescription; } private CharSequence appendMobileDataType(CharSequence current, CharSequence dataType) { if (TextUtils.isEmpty(dataType)) { return Html.fromHtml((current == null ? "" : current.toString()), 0); Loading Loading @@ -519,4 +577,15 @@ public class InternetTile extends QSTileImpl<SignalState> { return d; } } /** * Dumps the state of this tile along with its name. */ @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println(this.getClass().getSimpleName() + ":"); pw.print(" "); pw.println(getState().toString()); pw.print(" "); pw.println("mLastTileState=" + mLastTileState); pw.print(" "); pw.println("mSignalCallback=" + mSignalCallback.toString()); } } packages/SystemUI/src/com/android/systemui/statusbar/policy/EthernetSignalController.java +9 −1 Original line number Diff line number Diff line Loading @@ -53,12 +53,20 @@ public class EthernetSignalController extends public void notifyListeners(SignalCallback callback) { boolean ethernetVisible = mCurrentState.connected; String contentDescription = getTextIfExists(getContentDescription()).toString(); // TODO: wire up data transfer using WifiSignalPoller. callback.setEthernetIndicators(new IconState(ethernetVisible, getCurrentIconId(), contentDescription)); } @Override public int getContentDescription() { if (mCurrentState.connected) { return getIcons().contentDesc[1]; } else { return getIcons().discContentDesc; } } @Override public State cleanState() { return new State(); Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +4 −0 Original line number Diff line number Diff line Loading @@ -524,6 +524,10 @@ public class NetworkControllerImpl extends BroadcastReceiver return mWifiSignalController.isCarrierMergedWifi(subId); } boolean isEthernetDefault() { return mConnectedTransports.get(NetworkCapabilities.TRANSPORT_ETHERNET); } String getNonDefaultMobileDataNetworkName(int subId) { MobileSignalController controller = getControllerWithSubId(subId); return controller != null ? controller.getNonDefaultCarrierName() : ""; Loading packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java +2 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,8 @@ public class WifiSignalController extends IconState statusIcon = new IconState(wifiVisible, getCurrentIconId(), contentDescription); if (mProviderModel) { IconState qsIcon = null; if (mCurrentState.isDefault) { if (mCurrentState.isDefault || (!mNetworkController.isRadioOn() && !mNetworkController.isEthernetDefault())) { qsIcon = new IconState(mCurrentState.connected, mWifiTracker.isCaptivePortal ? R.drawable.ic_qs_wifi_disconnected : getQsCurrentIconId(), contentDescription); Loading Loading
packages/SettingsLib/res/values/strings.xml +1 −1 Original line number Diff line number Diff line Loading @@ -1484,5 +1484,5 @@ <!-- Content description of the Ethernet connection when disconnected for accessibility (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_ethernet_disconnected">Ethernet disconnected.</string> <!-- Content description of the Ethernet connection when connected for accessibility (not shown on the screen). [CHAR LIMIT=NONE] --> <string name="accessibility_ethernet_connected">Ethernet connected.</string> <string name="accessibility_ethernet_connected">Ethernet.</string> </resources>
packages/SystemUI/src/com/android/systemui/qs/tiles/InternetTile.java +79 −10 Original line number Diff line number Diff line Loading @@ -54,6 +54,9 @@ import com.android.systemui.statusbar.policy.NetworkController.IconState; import com.android.systemui.statusbar.policy.NetworkController.SignalCallback; import com.android.systemui.statusbar.policy.WifiIcons; import java.io.FileDescriptor; import java.io.PrintWriter; import javax.inject.Inject; /** Quick settings tile: Internet **/ Loading @@ -65,7 +68,7 @@ public class InternetTile extends QSTileImpl<SignalState> { protected final NetworkController mController; private final DataUsageController mDataController; private final QSTile.SignalState mStateBeforeClick = newTileState(); // The last updated tile state, 0: mobile, 1: wifi // The last updated tile state, 0: mobile, 1: wifi, 2: ethernet. private int mLastTileState = -1; protected final InternetSignalCallback mSignalCallback = new InternetSignalCallback(); Loading Loading @@ -140,6 +143,21 @@ public class InternetTile extends QSTileImpl<SignalState> { return string; } private static final class EthernetCallbackInfo { boolean mConnected; int mEthernetSignalIconId; String mEthernetContentDescription; @Override public String toString() { return new StringBuilder("EthernetCallbackInfo[") .append("mConnected=").append(mConnected) .append(",mEthernetSignalIconId=").append(mEthernetSignalIconId) .append(",mEthernetContentDescription=").append(mEthernetContentDescription) .append(']').toString(); } } private static final class WifiCallbackInfo { boolean mAirplaneModeEnabled; boolean mEnabled; Loading Loading @@ -212,6 +230,8 @@ public class InternetTile extends QSTileImpl<SignalState> { protected final class InternetSignalCallback implements SignalCallback { final WifiCallbackInfo mWifiInfo = new WifiCallbackInfo(); final CellularCallbackInfo mCellularInfo = new CellularCallbackInfo(); final EthernetCallbackInfo mEthernetInfo = new EthernetCallbackInfo(); @Override public void setWifiIndicators(boolean enabled, IconState statusIcon, IconState qsIcon, Loading @@ -230,14 +250,12 @@ public class InternetTile extends QSTileImpl<SignalState> { } // When airplane mode is enabled, we need to refresh the Internet Tile even if the WiFi // is not the default network. if (qsIcon == null && !mWifiInfo.mAirplaneModeEnabled) { if (qsIcon == null) { return; } if (qsIcon != null) { mWifiInfo.mConnected = qsIcon.visible; mWifiInfo.mWifiSignalIconId = qsIcon.icon; mWifiInfo.mWifiSignalContentDescription = qsIcon.contentDescription; } mWifiInfo.mEnabled = enabled; mWifiInfo.mSsid = description; mWifiInfo.mActivityIn = activityIn; Loading Loading @@ -286,6 +304,20 @@ public class InternetTile extends QSTileImpl<SignalState> { refreshState(mCellularInfo); } @Override public void setEthernetIndicators(IconState icon) { if (DEBUG) { Log.d(TAG, "setEthernetIndicators: " + "icon = " + (icon == null ? "" : icon.toString())); } mEthernetInfo.mConnected = icon.visible; mEthernetInfo.mEthernetSignalIconId = icon.icon; mEthernetInfo.mEthernetContentDescription = icon.contentDescription; if (icon.visible) { refreshState(mEthernetInfo); } } @Override public void setNoSims(boolean show, boolean simDetected) { if (DEBUG) { Loading @@ -299,7 +331,6 @@ public class InternetTile extends QSTileImpl<SignalState> { mCellularInfo.mMobileSignalIconId = 0; mCellularInfo.mQsTypeIcon = 0; } refreshState(mCellularInfo); } @Override Loading @@ -310,8 +341,10 @@ public class InternetTile extends QSTileImpl<SignalState> { } mCellularInfo.mAirplaneModeEnabled = icon.visible; mWifiInfo.mAirplaneModeEnabled = icon.visible; if (!mSignalCallback.mEthernetInfo.mConnected) { refreshState(mCellularInfo); } } @Override public void setConnectivityStatus(boolean noDefaultNetwork, boolean noValidatedNetwork, Loading @@ -330,6 +363,15 @@ public class InternetTile extends QSTileImpl<SignalState> { mWifiInfo.mNoNetworksAvailable = noNetworksAvailable; refreshState(mWifiInfo); } @Override public String toString() { return new StringBuilder("InternetSignalCallback[") .append("mWifiInfo=").append(mWifiInfo) .append(",mCellularInfo=").append(mCellularInfo) .append(",mEthernetInfo=").append(mEthernetInfo) .append(']').toString(); } } @Override Loading @@ -340,6 +382,9 @@ public class InternetTile extends QSTileImpl<SignalState> { } else if (arg instanceof WifiCallbackInfo) { mLastTileState = 1; handleUpdateWifiState(state, arg); } else if (arg instanceof EthernetCallbackInfo) { mLastTileState = 2; handleUpdateEthernetState(state, arg); } else { // handleUpdateState will be triggered when user expands the QuickSetting panel with // arg = null, in this case the last updated CellularCallbackInfo or WifiCallbackInfo Loading @@ -348,6 +393,8 @@ public class InternetTile extends QSTileImpl<SignalState> { handleUpdateCellularState(state, mSignalCallback.mCellularInfo); } else if (mLastTileState == 1) { handleUpdateWifiState(state, mSignalCallback.mWifiInfo); } else if (mLastTileState == 2) { handleUpdateEthernetState(state, mSignalCallback.mEthernetInfo); } } } Loading Loading @@ -440,7 +487,6 @@ public class InternetTile extends QSTileImpl<SignalState> { Log.d(TAG, "handleUpdateCellularState: " + "CellularCallbackInfo = " + cb.toString()); } final Resources r = mContext.getResources(); // TODO(b/174753536): Use the new "Internet" string as state.label once available. state.label = r.getString(R.string.quick_settings_internet_label); state.state = Tile.STATE_ACTIVE; boolean mobileDataEnabled = mDataController.isMobileDataSupported() Loading Loading @@ -478,6 +524,18 @@ public class InternetTile extends QSTileImpl<SignalState> { } } private void handleUpdateEthernetState(SignalState state, Object arg) { EthernetCallbackInfo cb = (EthernetCallbackInfo) arg; if (DEBUG) { Log.d(TAG, "handleUpdateEthernetState: " + "EthernetCallbackInfo = " + cb.toString()); } final Resources r = mContext.getResources(); state.label = r.getString(R.string.quick_settings_internet_label); state.state = Tile.STATE_ACTIVE; state.icon = ResourceIcon.get(cb.mEthernetSignalIconId); state.secondaryLabel = cb.mEthernetContentDescription; } private CharSequence appendMobileDataType(CharSequence current, CharSequence dataType) { if (TextUtils.isEmpty(dataType)) { return Html.fromHtml((current == null ? "" : current.toString()), 0); Loading Loading @@ -519,4 +577,15 @@ public class InternetTile extends QSTileImpl<SignalState> { return d; } } /** * Dumps the state of this tile along with its name. */ @Override public void dump(FileDescriptor fd, PrintWriter pw, String[] args) { pw.println(this.getClass().getSimpleName() + ":"); pw.print(" "); pw.println(getState().toString()); pw.print(" "); pw.println("mLastTileState=" + mLastTileState); pw.print(" "); pw.println("mSignalCallback=" + mSignalCallback.toString()); } }
packages/SystemUI/src/com/android/systemui/statusbar/policy/EthernetSignalController.java +9 −1 Original line number Diff line number Diff line Loading @@ -53,12 +53,20 @@ public class EthernetSignalController extends public void notifyListeners(SignalCallback callback) { boolean ethernetVisible = mCurrentState.connected; String contentDescription = getTextIfExists(getContentDescription()).toString(); // TODO: wire up data transfer using WifiSignalPoller. callback.setEthernetIndicators(new IconState(ethernetVisible, getCurrentIconId(), contentDescription)); } @Override public int getContentDescription() { if (mCurrentState.connected) { return getIcons().contentDesc[1]; } else { return getIcons().discContentDesc; } } @Override public State cleanState() { return new State(); Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/NetworkControllerImpl.java +4 −0 Original line number Diff line number Diff line Loading @@ -524,6 +524,10 @@ public class NetworkControllerImpl extends BroadcastReceiver return mWifiSignalController.isCarrierMergedWifi(subId); } boolean isEthernetDefault() { return mConnectedTransports.get(NetworkCapabilities.TRANSPORT_ETHERNET); } String getNonDefaultMobileDataNetworkName(int subId) { MobileSignalController controller = getControllerWithSubId(subId); return controller != null ? controller.getNonDefaultCarrierName() : ""; Loading
packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java +2 −1 Original line number Diff line number Diff line Loading @@ -106,7 +106,8 @@ public class WifiSignalController extends IconState statusIcon = new IconState(wifiVisible, getCurrentIconId(), contentDescription); if (mProviderModel) { IconState qsIcon = null; if (mCurrentState.isDefault) { if (mCurrentState.isDefault || (!mNetworkController.isRadioOn() && !mNetworkController.isEthernetDefault())) { qsIcon = new IconState(mCurrentState.connected, mWifiTracker.isCaptivePortal ? R.drawable.ic_qs_wifi_disconnected : getQsCurrentIconId(), contentDescription); Loading