diff --git a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java index d61b3d043cd..dbe62d433e9 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java +++ b/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceController.java @@ -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); + } } diff --git a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java index d2d26ab84fa..a57768bbb19 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java +++ b/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceController.java @@ -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); + } } diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceControllerTest.java index 500e31bc7d6..3dc0a1a5752 100644 --- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherPasswordPreferenceControllerTest.java @@ -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()); + } } diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java index 07d57623745..e8ef9366f06 100644 --- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSSIDPreferenceControllerTest.java @@ -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()); + } }