[Wi-Fi] Show Pie+x Wi-Fi icon when a connected Wi-Fi is not default route

This change shows Pie+x Wi-Fi icon in Wi-Fi Details for a connected Wi-Fi
network which is not the default network when

  1. It's connection speed quality is bad.
  or
  2. It has certain internet connection problem.

Bug: 163627176
Test: make RunSettingsRoboTests ROBOTEST_FILTER=WifiDetailPreferenceController2Test
      manual visual
Change-Id: I1f102471426a55c7dabd9110afba20f802abedbe
This commit is contained in:
Arc Wang
2020-08-25 17:53:58 +08:00
parent b75d2f6009
commit 20680c254c
2 changed files with 34 additions and 10 deletions

View File

@@ -166,6 +166,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
private NetworkInfo mNetworkInfo;
private NetworkCapabilities mNetworkCapabilities;
private int mRssiSignalLevel = -1;
@VisibleForTesting boolean mShowX; // Shows the Wi-Fi signal icon of Pie+x when it's true.
private String[] mSignalStr;
private WifiInfo mWifiInfo;
private final WifiManager mWifiManager;
@@ -555,7 +556,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
}
private void refreshRssiViews() {
int signalLevel = mWifiEntry.getLevel();
final int signalLevel = mWifiEntry.getLevel();
// Disappears signal view if not in range. e.g. for saved networks.
if (signalLevel == WifiEntry.WIFI_LEVEL_UNREACHABLE) {
@@ -564,11 +565,14 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
return;
}
if (mRssiSignalLevel == signalLevel) {
final boolean showX = mWifiEntry.shouldShowXLevelIcon();
if (mRssiSignalLevel == signalLevel && mShowX == showX) {
return;
}
mRssiSignalLevel = signalLevel;
Drawable wifiIcon = mIconInjector.getIcon(mRssiSignalLevel);
mShowX = showX;
Drawable wifiIcon = mIconInjector.getIcon(mShowX, mRssiSignalLevel);
if (mEntityHeaderController != null) {
mEntityHeaderController
@@ -1006,8 +1010,8 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
mContext = context;
}
public Drawable getIcon(int level) {
return mContext.getDrawable(Utils.getWifiIconResource(level)).mutate();
public Drawable getIcon(boolean showX, int level) {
return mContext.getDrawable(Utils.getWifiIconResource(showX, level)).mutate();
}
}