Merge "Add talkback hint to Wi-Fi hotspot preferences" into main

This commit is contained in:
Treehugger Robot
2025-01-02 05:11:03 -08:00
committed by Android (Google) Code Review
4 changed files with 65 additions and 6 deletions

View File

@@ -20,7 +20,9 @@ import android.app.settings.SettingsEnums;
import android.content.Context;
import android.net.wifi.SoftApConfiguration;
import android.text.TextUtils;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.preference.EditTextPreference;
import androidx.preference.Preference;
@@ -36,7 +38,8 @@ import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
* Controller for logic pertaining to the password of Wi-Fi tethering.
*/
public class WifiTetherPasswordPreferenceController extends WifiTetherBasePreferenceController
implements ValidatedEditTextPreference.Validator {
implements ValidatedEditTextPreference.Validator,
EditTextPreference.OnBindEditTextListener {
private static final String PREF_KEY = "wifi_tether_network_password";
@@ -80,6 +83,7 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer
((ValidatedEditTextPreference) mPreference).setValidator(this);
((ValidatedEditTextPreference) mPreference).setIsPassword(true);
((ValidatedEditTextPreference) mPreference).setIsSummaryPassword(true);
((EditTextPreference) mPreference).setOnBindEditTextListener(this);
updatePasswordDisplay((EditTextPreference) mPreference);
}
@@ -143,4 +147,9 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer
pref.setVisible(false);
}
}
@Override
public void onBindEditText(@NonNull EditText editText) {
editText.setHint(R.string.wifi_hotspot_password_title);
}
}

View File

@@ -22,18 +22,22 @@ import android.content.Intent;
import android.net.wifi.SoftApConfiguration;
import android.text.TextUtils;
import android.util.Log;
import android.widget.EditText;
import androidx.annotation.NonNull;
import androidx.annotation.VisibleForTesting;
import androidx.preference.EditTextPreference;
import androidx.preference.Preference;
import com.android.settings.R;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.widget.ValidatedEditTextPreference;
import com.android.settings.wifi.dpp.WifiDppUtils;
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreferenceController
implements ValidatedEditTextPreference.Validator {
implements ValidatedEditTextPreference.Validator,
EditTextPreference.OnBindEditTextListener {
private static final String TAG = "WifiTetherSsidPref";
private static final String PREF_KEY = "wifi_tether_network_name";
@@ -93,6 +97,7 @@ public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreference
((WifiTetherSsidPreference) mPreference).setButtonVisible(false);
}
((EditTextPreference) mPreference).setOnBindEditTextListener(this);
updateSsidDisplay((EditTextPreference) mPreference);
}
@@ -138,4 +143,9 @@ public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreference
boolean isQrCodeButtonAvailable() {
return ((WifiTetherSsidPreference) mPreference).isQrCodeButtonAvailable();
}
@Override
public void onBindEditText(@NonNull EditText editText) {
editText.setHint(R.string.wifi_hotspot_name_title);
}
}

View File

@@ -18,10 +18,13 @@ package com.android.settings.wifi.tether;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -32,6 +35,7 @@ import android.content.Context;
import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager;
import android.widget.EditText;
import androidx.preference.PreferenceScreen;
@@ -81,7 +85,7 @@ public class WifiTetherPasswordPreferenceControllerTest {
when(featureFactory.getWifiFeatureProvider().getWifiHotspotRepository())
.thenReturn(mWifiHotspotRepository);
mPreference = new ValidatedEditTextPreference(RuntimeEnvironment.application);
mPreference = spy(new ValidatedEditTextPreference(RuntimeEnvironment.application));
mConfig = new SoftApConfiguration.Builder().setSsid("test_1234")
.setPassphrase(INITIAL_PASSWORD, SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)
.build();
@@ -179,4 +183,20 @@ public class WifiTetherPasswordPreferenceControllerTest {
mController.updateDisplay();
assertThat(mPreference.isPassword()).isTrue();
}
@Test
public void updateDisplay_shouldSetOnBindEditTextListener() {
mController.displayPreference(mScreen);
verify(mPreference).setOnBindEditTextListener(any());
}
@Test
public void onBindEditText_shouldSetHint() {
EditText editText = mock(EditText.class);
mController.onBindEditText(editText);
verify(editText).setHint(anyInt());
}
}

View File

@@ -18,10 +18,13 @@ package com.android.settings.wifi.tether;
import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
@@ -32,6 +35,7 @@ import android.content.Context;
import android.net.TetheringManager;
import android.net.wifi.SoftApConfiguration;
import android.net.wifi.WifiManager;
import android.widget.EditText;
import androidx.preference.PreferenceScreen;
@@ -68,7 +72,7 @@ public class WifiTetherSSIDPreferenceControllerTest {
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
mPreference = new WifiTetherSsidPreference(RuntimeEnvironment.application);
mPreference = spy(new WifiTetherSsidPreference(RuntimeEnvironment.application));
doReturn(mock(DevicePolicyManager.class)).when(mContext)
.getSystemService(Context.DEVICE_POLICY_SERVICE);
@@ -147,12 +151,19 @@ public class WifiTetherSSIDPreferenceControllerTest {
assertThat(mPreference.getSummary()).isEqualTo(config.getSsid());
}
@Test
public void updateDisplay_shouldSetOnBindEditTextListener() {
mController.displayPreference(mScreen);
verify(mPreference).setOnBindEditTextListener(any());
}
@Test
public void displayPreference_wifiApDisabled_shouldHideQrCodeIcon() {
when(mWifiManager.isWifiApEnabled()).thenReturn(false);
final SoftApConfiguration config = new SoftApConfiguration.Builder()
.setSsid("test_1234").setPassphrase("test_password",
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
mController.displayPreference(mScreen);
@@ -164,10 +175,19 @@ public class WifiTetherSSIDPreferenceControllerTest {
when(mWifiManager.isWifiApEnabled()).thenReturn(true);
final SoftApConfiguration config = new SoftApConfiguration.Builder()
.setSsid("test_1234").setPassphrase("test_password",
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
mController.displayPreference(mScreen);
assertThat(mController.isQrCodeButtonAvailable()).isEqualTo(true);
}
@Test
public void onBindEditText_shouldSetHint() {
EditText editText = mock(EditText.class);
mController.onBindEditText(editText);
verify(editText).setHint(anyInt());
}
}