Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java +3 −13 Original line number Diff line number Diff line Loading @@ -132,9 +132,6 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern final Context mContext; final InternetDialogController mInternetDialogController; @VisibleForTesting protected WifiUtils.InternetIconInjector mWifiIconInjector; InternetViewHolder(View view, InternetDialogController internetDialogController) { super(view); mContext = view.getContext(); Loading @@ -146,12 +143,10 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern mWifiTitleText = view.requireViewById(R.id.wifi_title); mWifiSummaryText = view.requireViewById(R.id.wifi_summary); mWifiEndIcon = view.requireViewById(R.id.wifi_end_icon); mWifiIconInjector = mInternetDialogController.getWifiIconInjector(); } void onBind(@NonNull WifiEntry wifiEntry) { mWifiIcon.setImageDrawable( getWifiDrawable(wifiEntry.getLevel(), wifiEntry.shouldShowXLevelIcon())); mWifiIcon.setImageDrawable(getWifiDrawable(wifiEntry)); setWifiNetworkLayout(wifiEntry.getTitle(), Html.fromHtml(wifiEntry.getSummary(false), Html.FROM_HTML_MODE_LEGACY)); Loading Loading @@ -213,13 +208,8 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern } @Nullable 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(hasNoInternet, level); Drawable getWifiDrawable(@NonNull WifiEntry wifiEntry) { Drawable drawable = mInternetDialogController.getWifiDrawable(wifiEntry); if (drawable == null) { return null; } Loading packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +22 −9 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.qs.tiles.dialog; import static com.android.settingslib.mobile.MobileMappings.getIconKey; import static com.android.settingslib.mobile.MobileMappings.mapIconSets; import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource; import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_CONNECTED; import android.animation.Animator; Loading Loading @@ -89,6 +90,7 @@ import com.android.systemui.toast.SystemUIToast; import com.android.systemui.toast.ToastFactory; import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.settings.GlobalSettings; import com.android.wifitrackerlib.HotspotNetworkEntry; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.wifitrackerlib.WifiEntry; Loading Loading @@ -454,11 +456,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi @Nullable Drawable getInternetWifiDrawable(@NonNull WifiEntry wifiEntry) { if (wifiEntry.getLevel() == WifiEntry.WIFI_LEVEL_UNREACHABLE) { return null; } final Drawable drawable = mWifiIconInjector.getIcon(wifiEntry.shouldShowXLevelIcon(), wifiEntry.getLevel()); Drawable drawable = getWifiDrawable(wifiEntry); if (drawable == null) { return null; } Loading @@ -466,6 +464,25 @@ public class InternetDialogController implements AccessPointController.AccessPoi return drawable; } /** * Returns a Wi-Fi icon {@link Drawable}. * * @param wifiEntry {@link WifiEntry} */ @Nullable Drawable getWifiDrawable(@NonNull WifiEntry wifiEntry) { if (wifiEntry instanceof HotspotNetworkEntry) { int deviceType = ((HotspotNetworkEntry) wifiEntry).getDeviceType(); return mContext.getDrawable(getHotspotIconResource(deviceType)); } // If the Wi-Fi level is equal to WIFI_LEVEL_UNREACHABLE(-1), then a null drawable // will be returned. if (wifiEntry.getLevel() == WifiEntry.WIFI_LEVEL_UNREACHABLE) { return null; } return mWifiIconInjector.getIcon(wifiEntry.shouldShowXLevelIcon(), wifiEntry.getLevel()); } Drawable getSignalStrengthDrawable(int subId) { Drawable drawable = mContext.getDrawable( R.drawable.ic_signal_strength_zero_bar_no_internet); Loading Loading @@ -1314,10 +1331,6 @@ public class InternetDialogController implements AccessPointController.AccessPoi mDefaultDataSubId = defaultDataSubId; } public WifiUtils.InternetIconInjector getWifiIconInjector() { return mWifiIconInjector; } interface InternetDialogCallback { void onRefreshCarrierInfo(); Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetAdapterTest.java +7 −24 Original line number Diff line number Diff line Loading @@ -5,14 +5,9 @@ import static com.android.systemui.qs.tiles.dialog.InternetDialogController.MAX_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -25,7 +20,6 @@ import android.widget.LinearLayout; import androidx.test.filters.SmallTest; import com.android.settingslib.wifi.WifiUtils; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.wifitrackerlib.WifiEntry; Loading Loading @@ -66,7 +60,7 @@ public class InternetAdapterTest extends SysuiTestCase { @Mock private InternetDialogController mInternetDialogController; @Mock private WifiUtils.InternetIconInjector mWifiIconInjector; private Drawable mWifiDrawable; @Mock private Drawable mGearIcon; @Mock Loading @@ -90,7 +84,6 @@ public class InternetAdapterTest extends SysuiTestCase { mInternetAdapter = new InternetAdapter(mInternetDialogController); mViewHolder = mInternetAdapter.onCreateViewHolder(new LinearLayout(mContext), 0); mInternetAdapter.setWifiEntries(Arrays.asList(mWifiEntry), 1 /* wifiEntriesCount */); mViewHolder.mWifiIconInjector = mWifiIconInjector; } @Test Loading Loading @@ -125,31 +118,21 @@ public class InternetAdapterTest extends SysuiTestCase { } @Test public void onBindViewHolder_wifiLevelUnreachable_shouldNotGetWifiIcon() { reset(mWifiIconInjector); when(mWifiEntry.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_UNREACHABLE); public void onBindViewHolder_getWifiDrawableNull_noCrash() { when(mInternetDialogController.getWifiDrawable(any())).thenReturn(null); mInternetAdapter.onBindViewHolder(mViewHolder, 0); verify(mWifiIconInjector, never()).getIcon(anyBoolean(), anyInt()); assertThat(mViewHolder.mWifiIcon.getDrawable()).isNull(); } @Test public void onBindViewHolder_shouldNotShowXLevelIcon_getIconWithInternet() { when(mWifiEntry.shouldShowXLevelIcon()).thenReturn(false); public void onBindViewHolder_getWifiDrawableNotNull_setWifiIconDrawable() { when(mInternetDialogController.getWifiDrawable(any())).thenReturn(mWifiDrawable); mInternetAdapter.onBindViewHolder(mViewHolder, 0); verify(mWifiIconInjector).getIcon(eq(false) /* noInternet */, anyInt()); } @Test public void onBindViewHolder_shouldShowXLevelIcon_getIconWithNoInternet() { when(mWifiEntry.shouldShowXLevelIcon()).thenReturn(true); mInternetAdapter.onBindViewHolder(mViewHolder, 0); verify(mWifiIconInjector).getIcon(eq(true) /* noInternet */, anyInt()); assertThat(mViewHolder.mWifiIcon.getDrawable()).isEqualTo(mWifiDrawable); } @Test Loading packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +34 −3 Original line number Diff line number Diff line package com.android.systemui.qs.tiles.dialog; import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_PHONE; import static android.provider.Settings.Global.AIRPLANE_MODE_ON; import static android.telephony.SignalStrength.NUM_SIGNAL_STRENGTH_BINS; import static android.telephony.SignalStrength.SIGNAL_STRENGTH_GREAT; import static android.telephony.SignalStrength.SIGNAL_STRENGTH_POOR; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource; import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_HORIZONTAL_WEIGHT; import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_VERTICAL_WEIGHT; import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_MAX; Loading Loading @@ -75,6 +77,7 @@ import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.time.FakeSystemClock; import com.android.wifitrackerlib.HotspotNetworkEntry; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.wifitrackerlib.WifiEntry; Loading Loading @@ -511,12 +514,40 @@ public class InternetDialogControllerTest extends SysuiTestCase { } @Test public void getInternetWifiDrawable_withWifiLevelUnreachable_returnNull() { public void getWifiDrawable_withWifiLevelUnreachable_returnNull() { when(mConnectedEntry.getLevel()).thenReturn(WIFI_LEVEL_UNREACHABLE); Drawable drawable = mInternetDialogController.getInternetWifiDrawable(mConnectedEntry); assertThat(mInternetDialogController.getWifiDrawable(mConnectedEntry)).isNull(); } @Test public void getWifiDrawable_withHotspotNetworkEntry_returnHotspotDrawable() { HotspotNetworkEntry entry = mock(HotspotNetworkEntry.class); when(entry.getDeviceType()).thenReturn(DEVICE_TYPE_PHONE); Drawable hotspotDrawable = mock(Drawable.class); mTestableResources.addOverride(getHotspotIconResource(DEVICE_TYPE_PHONE), hotspotDrawable); assertThat(mInternetDialogController.getWifiDrawable(entry)).isEqualTo(hotspotDrawable); } @Test public void getWifiDrawable_withWifiEntryNotShowXLevelIcon_getIconWithInternet() { when(mWifiEntry1.getLevel()).thenReturn(WIFI_LEVEL_MAX); when(mWifiEntry1.shouldShowXLevelIcon()).thenReturn(false); mInternetDialogController.getWifiDrawable(mWifiEntry1); verify(mWifiIconInjector).getIcon(eq(false) /* noInternet */, anyInt()); } @Test public void getWifiDrawable_withWifiEntryShowXLevelIcon_getIconWithNoInternet() { when(mWifiEntry1.getLevel()).thenReturn(WIFI_LEVEL_MAX); when(mWifiEntry1.shouldShowXLevelIcon()).thenReturn(true); mInternetDialogController.getWifiDrawable(mWifiEntry1); assertThat(drawable).isNull(); verify(mWifiIconInjector).getIcon(eq(true) /* noInternet */, anyInt()); } @Test Loading Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetAdapter.java +3 −13 Original line number Diff line number Diff line Loading @@ -132,9 +132,6 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern final Context mContext; final InternetDialogController mInternetDialogController; @VisibleForTesting protected WifiUtils.InternetIconInjector mWifiIconInjector; InternetViewHolder(View view, InternetDialogController internetDialogController) { super(view); mContext = view.getContext(); Loading @@ -146,12 +143,10 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern mWifiTitleText = view.requireViewById(R.id.wifi_title); mWifiSummaryText = view.requireViewById(R.id.wifi_summary); mWifiEndIcon = view.requireViewById(R.id.wifi_end_icon); mWifiIconInjector = mInternetDialogController.getWifiIconInjector(); } void onBind(@NonNull WifiEntry wifiEntry) { mWifiIcon.setImageDrawable( getWifiDrawable(wifiEntry.getLevel(), wifiEntry.shouldShowXLevelIcon())); mWifiIcon.setImageDrawable(getWifiDrawable(wifiEntry)); setWifiNetworkLayout(wifiEntry.getTitle(), Html.fromHtml(wifiEntry.getSummary(false), Html.FROM_HTML_MODE_LEGACY)); Loading Loading @@ -213,13 +208,8 @@ public class InternetAdapter extends RecyclerView.Adapter<InternetAdapter.Intern } @Nullable 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(hasNoInternet, level); Drawable getWifiDrawable(@NonNull WifiEntry wifiEntry) { Drawable drawable = mInternetDialogController.getWifiDrawable(wifiEntry); if (drawable == null) { return null; } Loading
packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +22 −9 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package com.android.systemui.qs.tiles.dialog; import static com.android.settingslib.mobile.MobileMappings.getIconKey; import static com.android.settingslib.mobile.MobileMappings.mapIconSets; import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource; import static com.android.wifitrackerlib.WifiEntry.CONNECTED_STATE_CONNECTED; import android.animation.Animator; Loading Loading @@ -89,6 +90,7 @@ import com.android.systemui.toast.SystemUIToast; import com.android.systemui.toast.ToastFactory; import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.settings.GlobalSettings; import com.android.wifitrackerlib.HotspotNetworkEntry; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.wifitrackerlib.WifiEntry; Loading Loading @@ -454,11 +456,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi @Nullable Drawable getInternetWifiDrawable(@NonNull WifiEntry wifiEntry) { if (wifiEntry.getLevel() == WifiEntry.WIFI_LEVEL_UNREACHABLE) { return null; } final Drawable drawable = mWifiIconInjector.getIcon(wifiEntry.shouldShowXLevelIcon(), wifiEntry.getLevel()); Drawable drawable = getWifiDrawable(wifiEntry); if (drawable == null) { return null; } Loading @@ -466,6 +464,25 @@ public class InternetDialogController implements AccessPointController.AccessPoi return drawable; } /** * Returns a Wi-Fi icon {@link Drawable}. * * @param wifiEntry {@link WifiEntry} */ @Nullable Drawable getWifiDrawable(@NonNull WifiEntry wifiEntry) { if (wifiEntry instanceof HotspotNetworkEntry) { int deviceType = ((HotspotNetworkEntry) wifiEntry).getDeviceType(); return mContext.getDrawable(getHotspotIconResource(deviceType)); } // If the Wi-Fi level is equal to WIFI_LEVEL_UNREACHABLE(-1), then a null drawable // will be returned. if (wifiEntry.getLevel() == WifiEntry.WIFI_LEVEL_UNREACHABLE) { return null; } return mWifiIconInjector.getIcon(wifiEntry.shouldShowXLevelIcon(), wifiEntry.getLevel()); } Drawable getSignalStrengthDrawable(int subId) { Drawable drawable = mContext.getDrawable( R.drawable.ic_signal_strength_zero_bar_no_internet); Loading Loading @@ -1314,10 +1331,6 @@ public class InternetDialogController implements AccessPointController.AccessPoi mDefaultDataSubId = defaultDataSubId; } public WifiUtils.InternetIconInjector getWifiIconInjector() { return mWifiIconInjector; } interface InternetDialogCallback { void onRefreshCarrierInfo(); Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetAdapterTest.java +7 −24 Original line number Diff line number Diff line Loading @@ -5,14 +5,9 @@ import static com.android.systemui.qs.tiles.dialog.InternetDialogController.MAX_ import static com.google.common.truth.Truth.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyInt; import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.anyString; import static org.mockito.Mockito.doNothing; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.never; import static org.mockito.Mockito.reset; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; Loading @@ -25,7 +20,6 @@ import android.widget.LinearLayout; import androidx.test.filters.SmallTest; import com.android.settingslib.wifi.WifiUtils; import com.android.systemui.R; import com.android.systemui.SysuiTestCase; import com.android.wifitrackerlib.WifiEntry; Loading Loading @@ -66,7 +60,7 @@ public class InternetAdapterTest extends SysuiTestCase { @Mock private InternetDialogController mInternetDialogController; @Mock private WifiUtils.InternetIconInjector mWifiIconInjector; private Drawable mWifiDrawable; @Mock private Drawable mGearIcon; @Mock Loading @@ -90,7 +84,6 @@ public class InternetAdapterTest extends SysuiTestCase { mInternetAdapter = new InternetAdapter(mInternetDialogController); mViewHolder = mInternetAdapter.onCreateViewHolder(new LinearLayout(mContext), 0); mInternetAdapter.setWifiEntries(Arrays.asList(mWifiEntry), 1 /* wifiEntriesCount */); mViewHolder.mWifiIconInjector = mWifiIconInjector; } @Test Loading Loading @@ -125,31 +118,21 @@ public class InternetAdapterTest extends SysuiTestCase { } @Test public void onBindViewHolder_wifiLevelUnreachable_shouldNotGetWifiIcon() { reset(mWifiIconInjector); when(mWifiEntry.getLevel()).thenReturn(WifiEntry.WIFI_LEVEL_UNREACHABLE); public void onBindViewHolder_getWifiDrawableNull_noCrash() { when(mInternetDialogController.getWifiDrawable(any())).thenReturn(null); mInternetAdapter.onBindViewHolder(mViewHolder, 0); verify(mWifiIconInjector, never()).getIcon(anyBoolean(), anyInt()); assertThat(mViewHolder.mWifiIcon.getDrawable()).isNull(); } @Test public void onBindViewHolder_shouldNotShowXLevelIcon_getIconWithInternet() { when(mWifiEntry.shouldShowXLevelIcon()).thenReturn(false); public void onBindViewHolder_getWifiDrawableNotNull_setWifiIconDrawable() { when(mInternetDialogController.getWifiDrawable(any())).thenReturn(mWifiDrawable); mInternetAdapter.onBindViewHolder(mViewHolder, 0); verify(mWifiIconInjector).getIcon(eq(false) /* noInternet */, anyInt()); } @Test public void onBindViewHolder_shouldShowXLevelIcon_getIconWithNoInternet() { when(mWifiEntry.shouldShowXLevelIcon()).thenReturn(true); mInternetAdapter.onBindViewHolder(mViewHolder, 0); verify(mWifiIconInjector).getIcon(eq(true) /* noInternet */, anyInt()); assertThat(mViewHolder.mWifiIcon.getDrawable()).isEqualTo(mWifiDrawable); } @Test Loading
packages/SystemUI/tests/src/com/android/systemui/qs/tiles/dialog/InternetDialogControllerTest.java +34 −3 Original line number Diff line number Diff line package com.android.systemui.qs.tiles.dialog; import static android.net.wifi.sharedconnectivity.app.NetworkProviderInfo.DEVICE_TYPE_PHONE; import static android.provider.Settings.Global.AIRPLANE_MODE_ON; import static android.telephony.SignalStrength.NUM_SIGNAL_STRENGTH_BINS; import static android.telephony.SignalStrength.SIGNAL_STRENGTH_GREAT; import static android.telephony.SignalStrength.SIGNAL_STRENGTH_POOR; import static com.android.dx.mockito.inline.extended.ExtendedMockito.mockitoSession; import static com.android.settingslib.wifi.WifiUtils.getHotspotIconResource; import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_HORIZONTAL_WEIGHT; import static com.android.systemui.qs.tiles.dialog.InternetDialogController.TOAST_PARAMS_VERTICAL_WEIGHT; import static com.android.wifitrackerlib.WifiEntry.WIFI_LEVEL_MAX; Loading Loading @@ -75,6 +77,7 @@ import com.android.systemui.util.CarrierConfigTracker; import com.android.systemui.util.concurrency.FakeExecutor; import com.android.systemui.util.settings.GlobalSettings; import com.android.systemui.util.time.FakeSystemClock; import com.android.wifitrackerlib.HotspotNetworkEntry; import com.android.wifitrackerlib.MergedCarrierEntry; import com.android.wifitrackerlib.WifiEntry; Loading Loading @@ -511,12 +514,40 @@ public class InternetDialogControllerTest extends SysuiTestCase { } @Test public void getInternetWifiDrawable_withWifiLevelUnreachable_returnNull() { public void getWifiDrawable_withWifiLevelUnreachable_returnNull() { when(mConnectedEntry.getLevel()).thenReturn(WIFI_LEVEL_UNREACHABLE); Drawable drawable = mInternetDialogController.getInternetWifiDrawable(mConnectedEntry); assertThat(mInternetDialogController.getWifiDrawable(mConnectedEntry)).isNull(); } @Test public void getWifiDrawable_withHotspotNetworkEntry_returnHotspotDrawable() { HotspotNetworkEntry entry = mock(HotspotNetworkEntry.class); when(entry.getDeviceType()).thenReturn(DEVICE_TYPE_PHONE); Drawable hotspotDrawable = mock(Drawable.class); mTestableResources.addOverride(getHotspotIconResource(DEVICE_TYPE_PHONE), hotspotDrawable); assertThat(mInternetDialogController.getWifiDrawable(entry)).isEqualTo(hotspotDrawable); } @Test public void getWifiDrawable_withWifiEntryNotShowXLevelIcon_getIconWithInternet() { when(mWifiEntry1.getLevel()).thenReturn(WIFI_LEVEL_MAX); when(mWifiEntry1.shouldShowXLevelIcon()).thenReturn(false); mInternetDialogController.getWifiDrawable(mWifiEntry1); verify(mWifiIconInjector).getIcon(eq(false) /* noInternet */, anyInt()); } @Test public void getWifiDrawable_withWifiEntryShowXLevelIcon_getIconWithNoInternet() { when(mWifiEntry1.getLevel()).thenReturn(WIFI_LEVEL_MAX); when(mWifiEntry1.shouldShowXLevelIcon()).thenReturn(true); mInternetDialogController.getWifiDrawable(mWifiEntry1); assertThat(drawable).isNull(); verify(mWifiIconInjector).getIcon(eq(true) /* noInternet */, anyInt()); } @Test Loading