diff --git a/src/com/android/settings/network/ProviderModelSlice.java b/src/com/android/settings/network/ProviderModelSlice.java index 3d4c4de8004..84581d7a6af 100644 --- a/src/com/android/settings/network/ProviderModelSlice.java +++ b/src/com/android/settings/network/ProviderModelSlice.java @@ -43,6 +43,7 @@ import com.android.settings.network.telephony.NetworkProviderWorker; import com.android.settings.slices.CustomSliceable; import com.android.settings.slices.SliceBackgroundWorker; import com.android.settings.slices.SliceBuilderUtils; +import com.android.settings.wifi.WifiUtils; import com.android.settings.wifi.slice.WifiSlice; import com.android.settings.wifi.slice.WifiSliceItem; import com.android.wifitrackerlib.WifiEntry; @@ -255,7 +256,8 @@ public class ProviderModelSlice extends WifiSlice { final @ColorInt int tint = Utils.getColorAttrDefaultColor(mContext, android.R.attr.colorControlNormal); final Drawable drawable = mContext.getDrawable( - Utils.getWifiIconResource(wifiSliceItem.getLevel())); + WifiUtils.getInternetIconResource( + wifiSliceItem.getLevel(), wifiSliceItem.shouldShowXLevelIcon())); drawable.setTint(tint); return Utils.createIconWithDrawable(drawable); } diff --git a/src/com/android/settings/wifi/WifiUtils.java b/src/com/android/settings/wifi/WifiUtils.java index d05260afe1f..6f955b2120a 100644 --- a/src/com/android/settings/wifi/WifiUtils.java +++ b/src/com/android/settings/wifi/WifiUtils.java @@ -35,7 +35,8 @@ import com.android.wifitrackerlib.WifiEntry; import java.nio.charset.StandardCharsets; -public class WifiUtils { +/** A utility class for Wi-Fi functions. */ +public class WifiUtils extends com.android.settingslib.wifi.WifiUtils { private static final int SSID_ASCII_MIN_LENGTH = 1; private static final int SSID_ASCII_MAX_LENGTH = 32; diff --git a/src/com/android/settings/wifi/slice/WifiSlice.java b/src/com/android/settings/wifi/slice/WifiSlice.java index e4a571d13e2..1374e767fad 100644 --- a/src/com/android/settings/wifi/slice/WifiSlice.java +++ b/src/com/android/settings/wifi/slice/WifiSlice.java @@ -49,6 +49,7 @@ import com.android.settings.slices.SliceBackgroundWorker; import com.android.settings.slices.SliceBuilderUtils; import com.android.settings.wifi.WifiDialogActivity; import com.android.settings.wifi.WifiSettings; +import com.android.settings.wifi.WifiUtils; import com.android.settings.wifi.details2.WifiNetworkDetailsFragment2; import com.android.wifitrackerlib.WifiEntry; @@ -176,7 +177,8 @@ public class WifiSlice implements CustomSliceable { } final Drawable drawable = mContext.getDrawable( - com.android.settingslib.Utils.getWifiIconResource(wifiSliceItem.getLevel())); + WifiUtils.getInternetIconResource(wifiSliceItem.getLevel(), + wifiSliceItem.shouldShowXLevelIcon())); drawable.setTint(tint); return Utils.createIconWithDrawable(drawable); } diff --git a/src/com/android/settings/wifi/slice/WifiSliceItem.java b/src/com/android/settings/wifi/slice/WifiSliceItem.java index 7a0f0d73a20..9fe54d3a340 100644 --- a/src/com/android/settings/wifi/slice/WifiSliceItem.java +++ b/src/com/android/settings/wifi/slice/WifiSliceItem.java @@ -34,6 +34,7 @@ public class WifiSliceItem { private final int mSecurity; private final int mConnectedState; private final int mLevel; + private final boolean mShouldShowXLevelIcon; private final boolean mShouldEditBeforeConnect; private final String mSummary; @@ -53,6 +54,7 @@ public class WifiSliceItem { mSecurity = wifiEntry.getSecurity(); mConnectedState = wifiEntry.getConnectedState(); mLevel = wifiEntry.getLevel(); + mShouldShowXLevelIcon = wifiEntry.shouldShowXLevelIcon(); mShouldEditBeforeConnect = wifiEntry.shouldEditBeforeConnect(); mSummary = wifiEntry.getSummary(false /* concise */); } @@ -73,6 +75,9 @@ public class WifiSliceItem { if (getLevel() != otherItem.getLevel()) { return false; } + if (shouldShowXLevelIcon() != otherItem.shouldShowXLevelIcon()) { + return false; + } if (!TextUtils.equals(getSummary(), otherItem.getSummary())) { return false; } @@ -99,6 +104,13 @@ public class WifiSliceItem { return mLevel; } + /** + * Returns whether the level icon for this network should show an X or not. + */ + public boolean shouldShowXLevelIcon() { + return mShouldShowXLevelIcon; + } + /** * In Wi-Fi picker, when users click a saved network, it will connect to the Wi-Fi network. * However, for some special cases, Wi-Fi picker should show Wi-Fi editor UI for users to edit