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

Commit a6268f8c authored by Jong Wook Kim's avatar Jong Wook Kim Committed by Android (Google) Code Review
Browse files

Merge "Display that MAC is randomized in About Phones" into pi-dev

parents 65a84caf 0c3904eb
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -1051,6 +1051,9 @@
    <!-- About phone, status item value if the actual value is not available. -->
    <string name="status_unavailable">Unavailable</string>

    <!-- About phone, status value for MAC address when MAC randomization feature is enabled and the device is disconnected. -->
    <string name="wifi_status_mac_randomized">MAC is randomized</string>

    <!-- Summary to show how many devices are connected in wifi hotspot [CHAR LIMIT=NONE] -->
    <plurals name="wifi_tether_connected_summary">
        <item quantity="one">%1$d device connected</item>
+10 −4
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.provider.Settings;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;
@@ -78,11 +79,16 @@ public abstract class AbstractWifiMacAddressPreferenceController
    @Override
    protected void updateConnectivity() {
        WifiInfo wifiInfo = mWifiManager.getConnectionInfo();
        String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();
        if (!TextUtils.isEmpty(macAddress)) {
            mWifiMacAddress.setSummary(macAddress);
        } else {
        final int macRandomizationMode = Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED, 0);
        final String macAddress = wifiInfo == null ? null : wifiInfo.getMacAddress();

        if (TextUtils.isEmpty(macAddress)) {
            mWifiMacAddress.setSummary(R.string.status_unavailable);
        } else if (macRandomizationMode == 1 && WifiInfo.DEFAULT_MAC_ADDRESS.equals(macAddress)) {
            mWifiMacAddress.setSummary(R.string.wifi_status_mac_randomized);
        } else {
            mWifiMacAddress.setSummary(macAddress);
        }
    }
}
+13 −3
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package com.android.settingslib.deviceinfo;
import static com.google.common.truth.Truth.assertWithMessage;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;

import android.annotation.SuppressLint;
@@ -26,6 +27,7 @@ import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;

@@ -54,6 +56,8 @@ public class WifiMacAddressPreferenceControllerTest {
    @Mock
    private Preference mPreference;

    private static final String TEST_MAC_ADDRESS = "00:11:22:33:44:55";

    @Before
    public void setUp() {
        MockitoAnnotations.initMocks(this);
@@ -80,7 +84,6 @@ public class WifiMacAddressPreferenceControllerTest {
    public void testWifiMacAddress() {
        final WifiManager wifiManager = mock(WifiManager.class);
        final WifiInfo wifiInfo = mock(WifiInfo.class);
        doReturn("00:11:22:33:44:55").when(wifiInfo).getMacAddress();

        doReturn(null).when(wifiManager).getConnectionInfo();
        doReturn(wifiManager).when(mContext).getSystemService(WifiManager.class);
@@ -89,14 +92,21 @@ public class WifiMacAddressPreferenceControllerTest {
                new ConcreteWifiMacAddressPreferenceController(mContext, mLifecycle);

        wifiMacAddressPreferenceController.displayPreference(mScreen);

        verify(mPreference).setSummary(R.string.status_unavailable);

        doReturn(wifiInfo).when(wifiManager).getConnectionInfo();
        doReturn(TEST_MAC_ADDRESS).when(wifiInfo).getMacAddress();
        wifiMacAddressPreferenceController.displayPreference(mScreen);
        verify(mPreference).setSummary(TEST_MAC_ADDRESS);

        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.WIFI_CONNECTED_MAC_RANDOMIZATION_ENABLED, 1);
        wifiMacAddressPreferenceController.displayPreference(mScreen);
        verify(mPreference, times(2)).setSummary(TEST_MAC_ADDRESS);

        verify(mPreference).setSummary("00:11:22:33:44:55");
        doReturn(WifiInfo.DEFAULT_MAC_ADDRESS).when(wifiInfo).getMacAddress();
        wifiMacAddressPreferenceController.displayPreference(mScreen);
        verify(mPreference).setSummary(R.string.wifi_status_mac_randomized);
    }

    private static class ConcreteWifiMacAddressPreferenceController