[Provider Model] Show "!" icon when Wi-Fi is not validated (panel)

- Screenshot:
  https://screenshot.googleplex.com/BLNcfXiJFnuoT9N

Bug: 185454486
Bug: 185637977
Bug: 186543071
Test: manual test
atest -c ProviderModelSliceTest
make RunSettingsRoboTests ROBOTEST_FILTER=WifiSliceTest

Change-Id: Idff6bb8b394db5553cf399d2020aa28d9dedfc74
This commit is contained in:
Weng Su
2021-05-11 03:55:22 +08:00
parent e966debfd5
commit a0d4c657c7
4 changed files with 20 additions and 3 deletions

View File

@@ -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);
}

View File

@@ -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;

View File

@@ -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);
}

View File

@@ -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