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

Commit 8666430e authored by Oscar Shu's avatar Oscar Shu Committed by Android (Google) Code Review
Browse files

Merge "About phone page getFactoryMacAddress"

parents 7fc9674e 6b93d833
Loading
Loading
Loading
Loading
+6 −10
Original line number Original line Diff line number Diff line
@@ -19,9 +19,7 @@ package com.android.settingslib.deviceinfo;
import android.annotation.SuppressLint;
import android.annotation.SuppressLint;
import android.content.Context;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager;
import android.provider.Settings;
import android.text.TextUtils;
import android.text.TextUtils;


import androidx.annotation.VisibleForTesting;
import androidx.annotation.VisibleForTesting;
@@ -83,15 +81,13 @@ public abstract class AbstractWifiMacAddressPreferenceController
    @SuppressLint("HardwareIds")
    @SuppressLint("HardwareIds")
    @Override
    @Override
    protected void updateConnectivity() {
    protected void updateConnectivity() {
        WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
        final String[] macAddresses = mWifiManager.getFactoryMacAddresses();
        final int macRandomizationMode = Settings.Global.getInt(mContext.getContentResolver(),
        String macAddress = null;
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED, OFF);
        if (macAddresses != null && macAddresses.length > 0) {
        final String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
            macAddress = macAddresses[0];
        }


        if (macRandomizationMode == ON && WifiInfo.DEFAULT_MAC_ADDRESS.equals(macAddress)) {
        if (TextUtils.isEmpty(macAddress)) {
            mWifiMacAddress.setSummary(R.string.wifi_status_mac_randomized);
        } else if (TextUtils.isEmpty(macAddress)
                || WifiInfo.DEFAULT_MAC_ADDRESS.equals(macAddress)) {
            mWifiMacAddress.setSummary(R.string.status_unavailable);
            mWifiMacAddress.setSummary(R.string.status_unavailable);
        } else {
        } else {
            mWifiMacAddress.setSummary(macAddress);
            mWifiMacAddress.setSummary(macAddress);
+5 −88
Original line number Original line Diff line number Diff line
@@ -27,7 +27,6 @@ import android.content.Context;
import android.net.ConnectivityManager;
import android.net.ConnectivityManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.net.wifi.WifiManager;
import android.provider.Settings;


import androidx.preference.Preference;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceScreen;
@@ -93,105 +92,23 @@ public class WifiMacAddressPreferenceControllerTest {
    }
    }


    @Test
    @Test
    public void updateConnectivity_nullWifiInfoWithMacRandomizationOff_setMacUnavailable() {
    public void updateConnectivity_null_setMacUnavailable() {
        Settings.Global.putInt(mContext.getContentResolver(),
        doReturn(null).when(mWifiManager).getFactoryMacAddresses();
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
                AbstractWifiMacAddressPreferenceController.OFF);
        doReturn(null).when(mWifiManager).getConnectionInfo();

        mController.displayPreference(mScreen);

        assertThat(mPreference.getSummary())
                .isEqualTo(mContext.getString(R.string.status_unavailable));
    }

    @Test
    public void updateConnectivity_nullMacWithMacRandomizationOff_setMacUnavailable() {
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
                AbstractWifiMacAddressPreferenceController.OFF);
        doReturn(null).when(mWifiInfo).getMacAddress();

        mController.displayPreference(mScreen);
        mController.displayPreference(mScreen);

        assertThat(mPreference.getSummary())
        assertThat(mPreference.getSummary())
                .isEqualTo(mContext.getString(R.string.status_unavailable));
                .isEqualTo(mContext.getString(R.string.status_unavailable));
    }
    }


    @Test
    @Test
    public void updateConnectivity_defaultMacWithMacRandomizationOff_setMacUnavailable() {
    public void updateConnectivity_validMac_setValidMac() {
        Settings.Global.putInt(mContext.getContentResolver(),
        final String[] macAddresses = new String[]{TEST_MAC_ADDRESS};
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
        doReturn(macAddresses).when(mWifiManager).getFactoryMacAddresses();
                AbstractWifiMacAddressPreferenceController.OFF);
        doReturn(WifiInfo.DEFAULT_MAC_ADDRESS).when(mWifiInfo).getMacAddress();

        mController.displayPreference(mScreen);
        mController.displayPreference(mScreen);

        assertThat(mPreference.getSummary())
                .isEqualTo(mContext.getString(R.string.status_unavailable));
    }

    @Test
    public void updateConnectivity_validMacWithMacRandomizationOff_setValidMac() {
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
                AbstractWifiMacAddressPreferenceController.OFF);
        doReturn(TEST_MAC_ADDRESS).when(mWifiInfo).getMacAddress();

        mController.displayPreference(mScreen);

        assertThat(mPreference.getSummary()).isEqualTo(TEST_MAC_ADDRESS);
        assertThat(mPreference.getSummary()).isEqualTo(TEST_MAC_ADDRESS);
    }

    @Test
    public void updateConnectivity_nullWifiInfoWithMacRandomizationOn_setMacUnavailable() {
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
                AbstractWifiMacAddressPreferenceController.ON);
        doReturn(null).when(mWifiManager).getConnectionInfo();


        mController.displayPreference(mScreen);

        assertThat(mPreference.getSummary())
                .isEqualTo(mContext.getString(R.string.status_unavailable));
    }

    @Test
    public void updateConnectivity_nullMacWithMacRandomizationOn_setMacUnavailable() {
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
                AbstractWifiMacAddressPreferenceController.ON);
        doReturn(null).when(mWifiInfo).getMacAddress();


        mController.displayPreference(mScreen);


        assertThat(mPreference.getSummary())
                .isEqualTo(mContext.getString(R.string.status_unavailable));
    }


    @Test
    public void updateConnectivity_defaultMacWithMacRandomizationOn_setMacRandomized() {
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
                AbstractWifiMacAddressPreferenceController.ON);
        doReturn(WifiInfo.DEFAULT_MAC_ADDRESS).when(mWifiInfo).getMacAddress();

        mController.displayPreference(mScreen);

        assertThat(mPreference.getSummary())
                .isEqualTo(mContext.getString(R.string.wifi_status_mac_randomized));
    }

    @Test
    public void updateConnectivity_validMacWithMacRandomizationOn_setValidMac() {
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED,
                AbstractWifiMacAddressPreferenceController.ON);
        doReturn(TEST_MAC_ADDRESS).when(mWifiInfo).getMacAddress();

        mController.displayPreference(mScreen);

        assertThat(mPreference.getSummary()).isEqualTo(TEST_MAC_ADDRESS);
    }
    }


    private static class ConcreteWifiMacAddressPreferenceController
    private static class ConcreteWifiMacAddressPreferenceController