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.content.Context;
|
||||||
import android.net.wifi.SoftApConfiguration;
|
import android.net.wifi.SoftApConfiguration;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
|
import android.widget.EditText;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.EditTextPreference;
|
import androidx.preference.EditTextPreference;
|
||||||
import androidx.preference.Preference;
|
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.
|
* Controller for logic pertaining to the password of Wi-Fi tethering.
|
||||||
*/
|
*/
|
||||||
public class WifiTetherPasswordPreferenceController extends WifiTetherBasePreferenceController
|
public class WifiTetherPasswordPreferenceController extends WifiTetherBasePreferenceController
|
||||||
implements ValidatedEditTextPreference.Validator {
|
implements ValidatedEditTextPreference.Validator,
|
||||||
|
EditTextPreference.OnBindEditTextListener {
|
||||||
|
|
||||||
private static final String PREF_KEY = "wifi_tether_network_password";
|
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).setValidator(this);
|
||||||
((ValidatedEditTextPreference) mPreference).setIsPassword(true);
|
((ValidatedEditTextPreference) mPreference).setIsPassword(true);
|
||||||
((ValidatedEditTextPreference) mPreference).setIsSummaryPassword(true);
|
((ValidatedEditTextPreference) mPreference).setIsSummaryPassword(true);
|
||||||
|
((EditTextPreference) mPreference).setOnBindEditTextListener(this);
|
||||||
updatePasswordDisplay((EditTextPreference) mPreference);
|
updatePasswordDisplay((EditTextPreference) mPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -143,4 +147,9 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer
|
|||||||
pref.setVisible(false);
|
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.net.wifi.SoftApConfiguration;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
import android.widget.EditText;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
import androidx.preference.EditTextPreference;
|
import androidx.preference.EditTextPreference;
|
||||||
import androidx.preference.Preference;
|
import androidx.preference.Preference;
|
||||||
|
|
||||||
|
import com.android.settings.R;
|
||||||
import com.android.settings.overlay.FeatureFactory;
|
import com.android.settings.overlay.FeatureFactory;
|
||||||
import com.android.settings.widget.ValidatedEditTextPreference;
|
import com.android.settings.widget.ValidatedEditTextPreference;
|
||||||
import com.android.settings.wifi.dpp.WifiDppUtils;
|
import com.android.settings.wifi.dpp.WifiDppUtils;
|
||||||
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
import com.android.settingslib.core.instrumentation.MetricsFeatureProvider;
|
||||||
|
|
||||||
public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreferenceController
|
public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreferenceController
|
||||||
implements ValidatedEditTextPreference.Validator {
|
implements ValidatedEditTextPreference.Validator,
|
||||||
|
EditTextPreference.OnBindEditTextListener {
|
||||||
|
|
||||||
private static final String TAG = "WifiTetherSsidPref";
|
private static final String TAG = "WifiTetherSsidPref";
|
||||||
private static final String PREF_KEY = "wifi_tether_network_name";
|
private static final String PREF_KEY = "wifi_tether_network_name";
|
||||||
@@ -93,6 +97,7 @@ public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreference
|
|||||||
((WifiTetherSsidPreference) mPreference).setButtonVisible(false);
|
((WifiTetherSsidPreference) mPreference).setButtonVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
((EditTextPreference) mPreference).setOnBindEditTextListener(this);
|
||||||
updateSsidDisplay((EditTextPreference) mPreference);
|
updateSsidDisplay((EditTextPreference) mPreference);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -138,4 +143,9 @@ public class WifiTetherSSIDPreferenceController extends WifiTetherBasePreference
|
|||||||
boolean isQrCodeButtonAvailable() {
|
boolean isQrCodeButtonAvailable() {
|
||||||
return ((WifiTetherSsidPreference) mPreference).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 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.ArgumentMatchers.anyString;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -32,6 +35,7 @@ import android.content.Context;
|
|||||||
import android.net.TetheringManager;
|
import android.net.TetheringManager;
|
||||||
import android.net.wifi.SoftApConfiguration;
|
import android.net.wifi.SoftApConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.widget.EditText;
|
||||||
|
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
@@ -81,7 +85,7 @@ public class WifiTetherPasswordPreferenceControllerTest {
|
|||||||
when(featureFactory.getWifiFeatureProvider().getWifiHotspotRepository())
|
when(featureFactory.getWifiFeatureProvider().getWifiHotspotRepository())
|
||||||
.thenReturn(mWifiHotspotRepository);
|
.thenReturn(mWifiHotspotRepository);
|
||||||
|
|
||||||
mPreference = new ValidatedEditTextPreference(RuntimeEnvironment.application);
|
mPreference = spy(new ValidatedEditTextPreference(RuntimeEnvironment.application));
|
||||||
mConfig = new SoftApConfiguration.Builder().setSsid("test_1234")
|
mConfig = new SoftApConfiguration.Builder().setSsid("test_1234")
|
||||||
.setPassphrase(INITIAL_PASSWORD, SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)
|
.setPassphrase(INITIAL_PASSWORD, SoftApConfiguration.SECURITY_TYPE_WPA2_PSK)
|
||||||
.build();
|
.build();
|
||||||
@@ -179,4 +183,20 @@ public class WifiTetherPasswordPreferenceControllerTest {
|
|||||||
mController.updateDisplay();
|
mController.updateDisplay();
|
||||||
assertThat(mPreference.isPassword()).isTrue();
|
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 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.ArgumentMatchers.anyString;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.mock;
|
||||||
import static org.mockito.Mockito.never;
|
import static org.mockito.Mockito.never;
|
||||||
|
import static org.mockito.Mockito.spy;
|
||||||
import static org.mockito.Mockito.times;
|
import static org.mockito.Mockito.times;
|
||||||
import static org.mockito.Mockito.verify;
|
import static org.mockito.Mockito.verify;
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
@@ -32,6 +35,7 @@ import android.content.Context;
|
|||||||
import android.net.TetheringManager;
|
import android.net.TetheringManager;
|
||||||
import android.net.wifi.SoftApConfiguration;
|
import android.net.wifi.SoftApConfiguration;
|
||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
|
import android.widget.EditText;
|
||||||
|
|
||||||
import androidx.preference.PreferenceScreen;
|
import androidx.preference.PreferenceScreen;
|
||||||
|
|
||||||
@@ -68,7 +72,7 @@ public class WifiTetherSSIDPreferenceControllerTest {
|
|||||||
@Before
|
@Before
|
||||||
public void setUp() {
|
public void setUp() {
|
||||||
MockitoAnnotations.initMocks(this);
|
MockitoAnnotations.initMocks(this);
|
||||||
mPreference = new WifiTetherSsidPreference(RuntimeEnvironment.application);
|
mPreference = spy(new WifiTetherSsidPreference(RuntimeEnvironment.application));
|
||||||
|
|
||||||
doReturn(mock(DevicePolicyManager.class)).when(mContext)
|
doReturn(mock(DevicePolicyManager.class)).when(mContext)
|
||||||
.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
.getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
@@ -147,12 +151,19 @@ public class WifiTetherSSIDPreferenceControllerTest {
|
|||||||
assertThat(mPreference.getSummary()).isEqualTo(config.getSsid());
|
assertThat(mPreference.getSummary()).isEqualTo(config.getSsid());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void updateDisplay_shouldSetOnBindEditTextListener() {
|
||||||
|
mController.displayPreference(mScreen);
|
||||||
|
|
||||||
|
verify(mPreference).setOnBindEditTextListener(any());
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void displayPreference_wifiApDisabled_shouldHideQrCodeIcon() {
|
public void displayPreference_wifiApDisabled_shouldHideQrCodeIcon() {
|
||||||
when(mWifiManager.isWifiApEnabled()).thenReturn(false);
|
when(mWifiManager.isWifiApEnabled()).thenReturn(false);
|
||||||
final SoftApConfiguration config = new SoftApConfiguration.Builder()
|
final SoftApConfiguration config = new SoftApConfiguration.Builder()
|
||||||
.setSsid("test_1234").setPassphrase("test_password",
|
.setSsid("test_1234").setPassphrase("test_password",
|
||||||
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
|
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
|
||||||
when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
|
when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
|
||||||
|
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
@@ -164,10 +175,19 @@ public class WifiTetherSSIDPreferenceControllerTest {
|
|||||||
when(mWifiManager.isWifiApEnabled()).thenReturn(true);
|
when(mWifiManager.isWifiApEnabled()).thenReturn(true);
|
||||||
final SoftApConfiguration config = new SoftApConfiguration.Builder()
|
final SoftApConfiguration config = new SoftApConfiguration.Builder()
|
||||||
.setSsid("test_1234").setPassphrase("test_password",
|
.setSsid("test_1234").setPassphrase("test_password",
|
||||||
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
|
SoftApConfiguration.SECURITY_TYPE_WPA2_PSK).build();
|
||||||
when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
|
when(mWifiManager.getSoftApConfiguration()).thenReturn(config);
|
||||||
|
|
||||||
mController.displayPreference(mScreen);
|
mController.displayPreference(mScreen);
|
||||||
assertThat(mController.isQrCodeButtonAvailable()).isEqualTo(true);
|
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