Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0c9b9a1e authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Refactor InternetIconInjector to SettingsLib"

parents 2c32f0e0 a9c846a5
Loading
Loading
Loading
Loading
+23 −0
Original line number Original line Diff line number Diff line
@@ -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 −2
Original line number Original line Diff line number Diff line
@@ -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++) {