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

Commit af05a79d authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Log some actions for changing wifi hotspot config" into rvc-dev am:...

Merge "Log some actions for changing wifi hotspot config" into rvc-dev am: 0ad0a505 am: ec6828f0

Change-Id: I4e90d4b96edb74c99ad02fb52c499e66e71d3b97
parents f63c3aca ec6828f0
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -18,18 +18,22 @@ package com.android.settings.wifi.tether;

import static com.android.settings.AllInOneTetherSettings.DEDUP_POSTFIX;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.wifi.SoftApConfiguration;
import android.text.TextUtils;
import android.util.FeatureFlagUtils;

import androidx.annotation.VisibleForTesting;
import androidx.preference.EditTextPreference;
import androidx.preference.Preference;

import com.android.settings.R;
import com.android.settings.core.FeatureFlags;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.ValidatedEditTextPreference;
import com.android.settings.wifi.WifiUtils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;

import java.util.UUID;

@@ -40,9 +44,19 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer

    private String mPassword;

    private final MetricsFeatureProvider mMetricsFeatureProvider;

    @VisibleForTesting
    WifiTetherPasswordPreferenceController(Context context, OnTetherConfigUpdateListener listener,
            MetricsFeatureProvider provider) {
        super(context, listener);
        mMetricsFeatureProvider = provider;
    }

    public WifiTetherPasswordPreferenceController(Context context,
            OnTetherConfigUpdateListener listener) {
        super(context, listener);
        mMetricsFeatureProvider = FeatureFactory.getFactory(context).getMetricsFeatureProvider();
    }

    @Override
@@ -69,6 +83,10 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        if (!TextUtils.equals(mPassword, (String) newValue)) {
            mMetricsFeatureProvider.action(mContext,
                    SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_PASSWORD);
        }
        mPassword = (String) newValue;
        updatePasswordDisplay((EditTextPreference) mPreference);
        mListener.onTetherConfigUpdated(this);
+14 −0
Original line number Diff line number Diff line
@@ -22,6 +22,7 @@ import android.app.settings.SettingsEnums;
import android.content.Context;
import android.content.Intent;
import android.net.wifi.SoftApConfiguration;
import android.text.TextUtils;
import android.util.FeatureFlagUtils;
import android.util.Log;

@@ -48,6 +49,15 @@ public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreference

    private final MetricsFeatureProvider mMetricsFeatureProvider;

    // This constructor is used for testing.
    @VisibleForTesting
    WifiTetherSSIDPreferenceController(Context context, OnTetherConfigUpdateListener listener,
            MetricsFeatureProvider provider) {
        super(context, listener);
        mWifiDeviceNameTextValidator = new WifiDeviceNameTextValidator();
        mMetricsFeatureProvider = provider;
    }

    public WifiTetherSSIDPreferenceController(Context context,
            OnTetherConfigUpdateListener listener) {
        super(context, listener);
@@ -93,6 +103,10 @@ public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreference

    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        if (!TextUtils.equals(mSSID, (String) newValue)) {
            mMetricsFeatureProvider.action(mContext,
                    SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_NAME);
        }
        mSSID = (String) newValue;
        updateSsidDisplay((EditTextPreference) preference);
        mListener.onTetherConfigUpdated(this);
+26 −2
Original line number Diff line number Diff line
@@ -19,10 +19,12 @@ package com.android.settings.wifi.tether;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.SoftApConfiguration;
@@ -31,6 +33,7 @@ import android.net.wifi.WifiManager;
import androidx.preference.PreferenceScreen;

import com.android.settings.widget.ValidatedEditTextPreference;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;

import org.junit.Before;
import org.junit.Test;
@@ -46,6 +49,7 @@ public class WifiTetherPasswordPreferenceControllerTest {

    private static final String VALID_PASS = "12345678";
    private static final String VALID_PASS2 = "23456789";
    private static final String INITIAL_PASSWORD = "test_password";
    @Mock(answer = Answers.RETURNS_DEEP_STUBS)
    private Context mContext;
    @Mock
@@ -56,6 +60,8 @@ public class WifiTetherPasswordPreferenceControllerTest {
    private WifiTetherBasePreferenceController.OnTetherConfigUpdateListener mListener;
    @Mock
    private PreferenceScreen mScreen;
    @Mock
    private MetricsFeatureProvider mMetricsFeatureProvider;

    private WifiTetherPasswordPreferenceController mController;
    private ValidatedEditTextPreference mPreference;
@@ -66,7 +72,8 @@ public class WifiTetherPasswordPreferenceControllerTest {
        MockitoAnnotations.initMocks(this);
        mPreference = new ValidatedEditTextPreference(RuntimeEnvironment.application);
        mConfig = new SoftApConfiguration.Builder().setSsid("test_1234")
                .setPassphrase("test_password", SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
                .setPassphrase(INITIAL_PASSWORD, SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)
                .build();

        when(mContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mWifiManager);
        when(mWifiManager.getSoftApConfiguration()).thenReturn(mConfig);
@@ -76,7 +83,8 @@ public class WifiTetherPasswordPreferenceControllerTest {
        when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
        when(mScreen.findPreference(anyString())).thenReturn(mPreference);

        mController = new WifiTetherPasswordPreferenceController(mContext, mListener);
        mController = new WifiTetherPasswordPreferenceController(mContext, mListener,
                mMetricsFeatureProvider);
    }

    @Test
@@ -101,6 +109,22 @@ public class WifiTetherPasswordPreferenceControllerTest {
        verify(mListener, times(2)).onTetherConfigUpdated(mController);
    }

    @Test
    public void changePreference_shouldLogActionWhenChanged() {
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference, VALID_PASS);
        verify(mMetricsFeatureProvider).action(mContext,
                SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_PASSWORD);
    }

    @Test
    public void changePreference_shouldNotLogActionWhenNotChanged() {
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference, INITIAL_PASSWORD);
        verify(mMetricsFeatureProvider, never()).action(mContext,
                SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_PASSWORD);
    }

    @Test
    public void updateDisplay_shouldUpdateValue() {
        // Set controller password to anything and verify is set.
+25 −2
Original line number Diff line number Diff line
@@ -19,10 +19,12 @@ package com.android.settings.wifi.tether;
import static com.google.common.truth.Truth.assertThat;

import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;

import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.wifi.SoftApConfiguration;
@@ -30,6 +32,8 @@ import android.net.wifi.WifiManager;

import androidx.preference.PreferenceScreen;

import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;

import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -52,6 +56,8 @@ public class WifiTetherSSIDPreferenceControllerTest {
    private WifiTetherBasePreferenceController.OnTetherConfigUpdateListener mListener;
    @Mock
    private PreferenceScreen mScreen;
    @Mock
    private MetricsFeatureProvider mMetricsFeatureProvider;

    private WifiTetherSSIDPreferenceController mController;
    private WifiTetherSsidPreference mPreference;
@@ -67,8 +73,8 @@ public class WifiTetherSSIDPreferenceControllerTest {
        when(mConnectivityManager.getTetherableWifiRegexs()).thenReturn(new String[]{"1", "2"});
        when(mContext.getResources()).thenReturn(RuntimeEnvironment.application.getResources());
        when(mScreen.findPreference(anyString())).thenReturn(mPreference);

        mController = new WifiTetherSSIDPreferenceController(mContext, mListener);
        mController = new WifiTetherSSIDPreferenceController(mContext, mListener,
                mMetricsFeatureProvider);
    }

    @Test
@@ -102,6 +108,23 @@ public class WifiTetherSSIDPreferenceControllerTest {
        verify(mListener, times(2)).onTetherConfigUpdated(mController);
    }

    @Test
    public void changePreference_shouldLogActionWhenChanged() {
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference, "1");
        verify(mMetricsFeatureProvider).action(mContext,
                SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_NAME);
    }

    @Test
    public void changePreference_shouldNotLogActionWhenNotChanged() {
        mController.displayPreference(mScreen);
        mController.onPreferenceChange(mPreference,
                WifiTetherSSIDPreferenceController.DEFAULT_SSID);
        verify(mMetricsFeatureProvider, never()).action(mContext,
                SettingsEnums.ACTION_SETTINGS_CHANGE_WIFI_HOTSPOT_NAME);
    }

    @Test
    public void updateDisplay_shouldUpdateValue() {
        // Set controller ssid to anything and verify is set.