Merge "[RESTRICT AUTOMERGE] Refactor InternetIconInjector to SettingsLib" into sc-v2-dev
This commit is contained in:
@@ -21,6 +21,7 @@ import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.getMaxNe
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
|
import android.graphics.drawable.Drawable;
|
||||||
import android.net.wifi.ScanResult;
|
import android.net.wifi.ScanResult;
|
||||||
import android.net.wifi.WifiConfiguration;
|
import android.net.wifi.WifiConfiguration;
|
||||||
import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
|
import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
|
||||||
@@ -294,6 +295,28 @@ public class WifiUtils {
|
|||||||
return noInternet ? NO_INTERNET_WIFI_PIE[level] : WIFI_PIE[level];
|
return noInternet ? NO_INTERNET_WIFI_PIE[level] : WIFI_PIE[level];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper the {@link #getInternetIconResource} for testing compatibility.
|
||||||
|
*/
|
||||||
|
public static class InternetIconInjector {
|
||||||
|
|
||||||
|
protected final Context mContext;
|
||||||
|
|
||||||
|
public InternetIconInjector(Context context) {
|
||||||
|
mContext = context;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the Internet icon for a given RSSI level.
|
||||||
|
*
|
||||||
|
* @param noInternet True if a connected Wi-Fi network cannot access the Internet
|
||||||
|
* @param level The number of bars to show (0-4)
|
||||||
|
*/
|
||||||
|
public Drawable getIcon(boolean noInternet, int level) {
|
||||||
|
return mContext.getDrawable(WifiUtils.getInternetIconResource(level, noInternet));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static boolean isMeteredOverridden(WifiConfiguration config) {
|
public static boolean isMeteredOverridden(WifiConfiguration config) {
|
||||||
return config.meteredOverride != WifiConfiguration.METERED_OVERRIDE_NONE;
|
return config.meteredOverride != WifiConfiguration.METERED_OVERRIDE_NONE;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ import static com.google.common.truth.Truth.assertThat;
|
|||||||
import static org.mockito.ArgumentMatchers.anyInt;
|
import static org.mockito.ArgumentMatchers.anyInt;
|
||||||
import static org.mockito.Mockito.any;
|
import static org.mockito.Mockito.any;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
@@ -37,6 +39,8 @@ import android.os.SystemClock;
|
|||||||
import android.text.format.DateUtils;
|
import android.text.format.DateUtils;
|
||||||
import android.util.ArraySet;
|
import android.util.ArraySet;
|
||||||
|
|
||||||
|
import androidx.test.core.app.ApplicationProvider;
|
||||||
|
|
||||||
import com.android.settingslib.R;
|
import com.android.settingslib.R;
|
||||||
|
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
@@ -45,7 +49,6 @@ import org.junit.runner.RunWith;
|
|||||||
import org.mockito.Mock;
|
import org.mockito.Mock;
|
||||||
import org.mockito.MockitoAnnotations;
|
import org.mockito.MockitoAnnotations;
|
||||||
import org.robolectric.RobolectricTestRunner;
|
import org.robolectric.RobolectricTestRunner;
|
||||||
import org.robolectric.RuntimeEnvironment;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -70,7 +73,7 @@ public class WifiUtilsTest {
|
|||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mContext = RuntimeEnvironment.application;
|
mContext = spy(ApplicationProvider.getApplicationContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -160,6 +163,21 @@ public class WifiUtilsTest {
|
|||||||
assertThat(bundle.getString(WifiUtils.KEY_CHOSEN_WIFIENTRY_KEY)).isEqualTo(key);
|
assertThat(bundle.getString(WifiUtils.KEY_CHOSEN_WIFIENTRY_KEY)).isEqualTo(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testInternetIconInjector_getIcon_returnsCorrectValues() {
|
||||||
|
WifiUtils.InternetIconInjector iconInjector = new WifiUtils.InternetIconInjector(mContext);
|
||||||
|
|
||||||
|
for (int level = 0; level <= 4; level++) {
|
||||||
|
iconInjector.getIcon(false /* noInternet */, level);
|
||||||
|
verify(mContext).getDrawable(
|
||||||
|
WifiUtils.getInternetIconResource(level, false /* noInternet */));
|
||||||
|
|
||||||
|
iconInjector.getIcon(true /* noInternet */, level);
|
||||||
|
verify(mContext).getDrawable(
|
||||||
|
WifiUtils.getInternetIconResource(level, true /* noInternet */));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private static ArrayList<ScanResult> buildScanResultCache() {
|
private static ArrayList<ScanResult> buildScanResultCache() {
|
||||||
ArrayList<ScanResult> scanResults = new ArrayList<>();
|
ArrayList<ScanResult> scanResults = new ArrayList<>();
|
||||||
for (int i = 0; i < 5; i++) {
|
for (int i = 0; i < 5; i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user