Merge "[Wi-Fi] Show Pie+x Wi-Fi icon when a connected Wi-Fi is not default route" into rvc-qpr-dev am: db667a8971

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/12444567

Change-Id: I655406b69ef689a1b604ed6fc6c9e4d2bbf8bf82
This commit is contained in:
Quang Luong
2020-09-11 18:57:42 +00:00
committed by Automerger Merge Worker
2 changed files with 34 additions and 10 deletions

View File

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

View File

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