Merge "Add talkback hint to Wi-Fi hotspot preferences" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
1d0c7054b4
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
}
|
||||
}
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
@@ -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());
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user