summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Weng Su <wengsu@google.com> 2021-12-14 17:09:34 +0800
committer Weng Su <wengsu@google.com> 2021-12-14 17:09:34 +0800
commit0b2bd16cc685d3244cc76303d122bf84fab2a5e6 (patch)
tree22c9aa58386d5830e1dfbe1ebe9103a4572e6afe
parent1ff5a29afd29c63db19e466192410ce03de02d6e (diff)
[Provider Model] Avoid running changes to WiFi level
- Because getWifiDrawable() has avoided the WIFI_LEVEL_UNREACHABLE(-1) level design. - But it might have a chance to changes in the short time after the level checking above. - Use the local variable to avoid the risk of changes in WiFi level operation. Bug: 210369886 Test: manual test atest -c InternetAdapterTest \ InternetDialogControllerTest \ InternetDialogTest Change-Id: Id3f27ac7e4cc52fa3eea640eddd34d49863df8d2
-rw-r--r--packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java
index 99eb5b6519bc..2cc30f60574c 100644
--- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java
+++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java
@@ -133,7 +133,8 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern
}
void onBind(@NonNull WifiEntry wifiEntry) {
- mWifiIcon.setImageDrawable(getWifiDrawable(wifiEntry));
+ mWifiIcon.setImageDrawable(
+ getWifiDrawable(wifiEntry.getLevel(), wifiEntry.shouldShowXLevelIcon()));
setWifiNetworkLayout(wifiEntry.getTitle(),
Html.fromHtml(wifiEntry.getSummary(false), Html.FROM_HTML_MODE_LEGACY));
@@ -170,12 +171,13 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern
mWifiSummaryText.setText(summary);
}
- Drawable getWifiDrawable(@NonNull WifiEntry wifiEntry) {
- if (wifiEntry.getLevel() == WifiEntry.WIFI_LEVEL_UNREACHABLE) {
+ Drawable getWifiDrawable(int level, boolean hasNoInternet) {
+ // If the Wi-Fi level is equal to WIFI_LEVEL_UNREACHABLE(-1), then a null drawable
+ // will be returned.
+ if (level == WifiEntry.WIFI_LEVEL_UNREACHABLE) {
return null;
}
- final Drawable drawable = mWifiIconInjector.getIcon(wifiEntry.shouldShowXLevelIcon(),
- wifiEntry.getLevel());
+ final Drawable drawable = mWifiIconInjector.getIcon(hasNoInternet, level);
if (drawable == null) {
return null;
}