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

Commit ccadbf77 authored by Jong Wook Kim's avatar Jong Wook Kim Committed by android-build-merger
Browse files

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

am: a6268f8c

Change-Id: I6ca9515d6c1568e5b19609cef2870cdd74859845
parents 59b22967 a6268f8c
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