[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:
@@ -166,6 +166,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
|
|||||||
private NetworkInfo mNetworkInfo;
|
private NetworkInfo mNetworkInfo;
|
||||||
private NetworkCapabilities mNetworkCapabilities;
|
private NetworkCapabilities mNetworkCapabilities;
|
||||||
private int mRssiSignalLevel = -1;
|
private int mRssiSignalLevel = -1;
|
||||||
|
@VisibleForTesting boolean mShowX; // Shows the Wi-Fi signal icon of Pie+x when it's true.
|
||||||
private String[] mSignalStr;
|
private String[] mSignalStr;
|
||||||
private WifiInfo mWifiInfo;
|
private WifiInfo mWifiInfo;
|
||||||
private final WifiManager mWifiManager;
|
private final WifiManager mWifiManager;
|
||||||
@@ -555,7 +556,7 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void refreshRssiViews() {
|
private void refreshRssiViews() {
|
||||||
int signalLevel = mWifiEntry.getLevel();
|
final int signalLevel = mWifiEntry.getLevel();
|
||||||
|
|
||||||
// Disappears signal view if not in range. e.g. for saved networks.
|
// Disappears signal view if not in range. e.g. for saved networks.
|
||||||
if (signalLevel == WifiEntry.WIFI_LEVEL_UNREACHABLE) {
|
if (signalLevel == WifiEntry.WIFI_LEVEL_UNREACHABLE) {
|
||||||
@@ -564,11 +565,14 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mRssiSignalLevel == signalLevel) {
|
final boolean showX = mWifiEntry.shouldShowXLevelIcon();
|
||||||
|
|
||||||
|
if (mRssiSignalLevel == signalLevel && mShowX == showX) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
mRssiSignalLevel = signalLevel;
|
mRssiSignalLevel = signalLevel;
|
||||||
Drawable wifiIcon = mIconInjector.getIcon(mRssiSignalLevel);
|
mShowX = showX;
|
||||||
|
Drawable wifiIcon = mIconInjector.getIcon(mShowX, mRssiSignalLevel);
|
||||||
|
|
||||||
if (mEntityHeaderController != null) {
|
if (mEntityHeaderController != null) {
|
||||||
mEntityHeaderController
|
mEntityHeaderController
|
||||||
@@ -1006,8 +1010,8 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle
|
|||||||
mContext = context;
|
mContext = context;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Drawable getIcon(int level) {
|
public Drawable getIcon(boolean showX, int level) {
|
||||||
return mContext.getDrawable(Utils.getWifiIconResource(level)).mutate();
|
return mContext.getDrawable(Utils.getWifiIconResource(showX, level)).mutate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -299,7 +299,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
.thenReturn(mMockHeaderController);
|
.thenReturn(mMockHeaderController);
|
||||||
when(mMockHeaderController.setSecondSummary(nullable(String.class)))
|
when(mMockHeaderController.setSecondSummary(nullable(String.class)))
|
||||||
.thenReturn(mMockHeaderController);
|
.thenReturn(mMockHeaderController);
|
||||||
when(mMockIconInjector.getIcon(anyInt())).thenReturn(new ColorDrawable());
|
when(mMockIconInjector.getIcon(anyBoolean(), anyInt())).thenReturn(new ColorDrawable());
|
||||||
|
|
||||||
setupMockedPreferenceScreen();
|
setupMockedPreferenceScreen();
|
||||||
}
|
}
|
||||||
@@ -500,7 +500,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
public void entityHeader_shouldHaveIconSetForConnectedNetwork() {
|
public void entityHeader_shouldHaveIconSetForConnectedNetwork() {
|
||||||
setUpForConnectedNetwork();
|
setUpForConnectedNetwork();
|
||||||
setUpSpyController();
|
setUpSpyController();
|
||||||
Drawable expectedIcon = mMockIconInjector.getIcon(LEVEL);
|
Drawable expectedIcon = mMockIconInjector.getIcon(false /* showX */, LEVEL);
|
||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
@@ -510,7 +510,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
@Test
|
@Test
|
||||||
public void entityHeader_shouldHaveIconSetForDisconnectedNetwork() {
|
public void entityHeader_shouldHaveIconSetForDisconnectedNetwork() {
|
||||||
setUpForDisconnectedNetwork();
|
setUpForDisconnectedNetwork();
|
||||||
Drawable expectedIcon = mMockIconInjector.getIcon(LEVEL);
|
Drawable expectedIcon = mMockIconInjector.getIcon(false /* showX */, LEVEL);
|
||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
@@ -615,6 +615,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
|
assertThat(mController.mShowX).isFalse();
|
||||||
verify(mMockSignalStrengthPref).setIcon(any(Drawable.class));
|
verify(mMockSignalStrengthPref).setIcon(any(Drawable.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -624,6 +625,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
|
assertThat(mController.mShowX).isFalse();
|
||||||
verify(mMockSignalStrengthPref).setIcon(any(Drawable.class));
|
verify(mMockSignalStrengthPref).setIcon(any(Drawable.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -633,6 +635,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
|
assertThat(mController.mShowX).isFalse();
|
||||||
verify(mMockSignalStrengthPref, never()).setIcon(any(Drawable.class));
|
verify(mMockSignalStrengthPref, never()).setIcon(any(Drawable.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -645,6 +648,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
|
assertThat(mController.mShowX).isFalse();
|
||||||
verify(mMockSignalStrengthPref).setSummary(expectedStrength);
|
verify(mMockSignalStrengthPref).setSummary(expectedStrength);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -656,6 +660,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
|
assertThat(mController.mShowX).isFalse();
|
||||||
verify(mMockSignalStrengthPref).setSummary(expectedStrength);
|
verify(mMockSignalStrengthPref).setSummary(expectedStrength);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -665,9 +670,24 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
|
assertThat(mController.mShowX).isFalse();
|
||||||
verify(mMockSignalStrengthPref, never()).setSummary(any(String.class));
|
verify(mMockSignalStrengthPref, never()).setSummary(any(String.class));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void signalStrengthPref_shouldShowXLevelIcon_showXTrue() {
|
||||||
|
setUpForConnectedNetwork();
|
||||||
|
setUpSpyController();
|
||||||
|
final String expectedStrength =
|
||||||
|
mContext.getResources().getStringArray(R.array.wifi_signal)[LEVEL];
|
||||||
|
when(mMockWifiEntry.shouldShowXLevelIcon()).thenReturn(true);
|
||||||
|
|
||||||
|
displayAndResume();
|
||||||
|
|
||||||
|
assertThat(mController.mShowX).isTrue();
|
||||||
|
verify(mMockSignalStrengthPref).setSummary(expectedStrength);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void linkSpeedPref_shouldNotShowIfNotSet() {
|
public void linkSpeedPref_shouldNotShowIfNotSet() {
|
||||||
setUpForConnectedNetwork();
|
setUpForConnectedNetwork();
|
||||||
@@ -1529,7 +1549,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
ArgumentCaptor<BitmapDrawable> drawableCaptor =
|
ArgumentCaptor<BitmapDrawable> drawableCaptor =
|
||||||
ArgumentCaptor.forClass(BitmapDrawable.class);
|
ArgumentCaptor.forClass(BitmapDrawable.class);
|
||||||
Drawable original = mContext.getDrawable(Utils.getWifiIconResource(LEVEL)).mutate();
|
Drawable original = mContext.getDrawable(Utils.getWifiIconResource(LEVEL)).mutate();
|
||||||
when(mMockIconInjector.getIcon(anyInt())).thenReturn(original);
|
when(mMockIconInjector.getIcon(anyBoolean(), anyInt())).thenReturn(original);
|
||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
@@ -1548,7 +1568,7 @@ public class WifiDetailPreferenceController2Test {
|
|||||||
ArgumentCaptor<BitmapDrawable> drawableCaptor =
|
ArgumentCaptor<BitmapDrawable> drawableCaptor =
|
||||||
ArgumentCaptor.forClass(BitmapDrawable.class);
|
ArgumentCaptor.forClass(BitmapDrawable.class);
|
||||||
Drawable original = mContext.getDrawable(Utils.getWifiIconResource(LEVEL)).mutate();
|
Drawable original = mContext.getDrawable(Utils.getWifiIconResource(LEVEL)).mutate();
|
||||||
when(mMockIconInjector.getIcon(anyInt())).thenReturn(original);
|
when(mMockIconInjector.getIcon(anyBoolean(), anyInt())).thenReturn(original);
|
||||||
|
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user