diff options
| author | 2021-12-14 17:09:34 +0800 | |
|---|---|---|
| committer | 2021-12-14 17:09:34 +0800 | |
| commit | 0b2bd16cc685d3244cc76303d122bf84fab2a5e6 (patch) | |
| tree | 22c9aa58386d5830e1dfbe1ebe9103a4572e6afe | |
| parent | 1ff5a29afd29c63db19e466192410ce03de02d6e (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.java | 12 |
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; } |