Merge "Hide password for wifi tether" into pi-dev

am: 9bb2efa0ff

Change-Id: I7f82bf71672b6e966bf699ca17a215547c0dc8d9
This commit is contained in:
Lei Yu
2018-03-23 18:51:42 +00:00
committed by android-build-merger
3 changed files with 40 additions and 0 deletions

View File

@@ -19,6 +19,7 @@ package com.android.settings.widget;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.content.Context; import android.content.Context;
import android.support.annotation.VisibleForTesting; import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.PreferenceViewHolder;
import android.text.Editable; import android.text.Editable;
import android.text.InputType; import android.text.InputType;
import android.text.TextUtils; import android.text.TextUtils;
@@ -27,6 +28,7 @@ import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
import android.view.View; import android.view.View;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView;
import com.android.settingslib.CustomEditTextPreference; import com.android.settingslib.CustomEditTextPreference;
@@ -42,6 +44,7 @@ public class ValidatedEditTextPreference extends CustomEditTextPreference {
private final EditTextWatcher mTextWatcher = new EditTextWatcher(); private final EditTextWatcher mTextWatcher = new EditTextWatcher();
private Validator mValidator; private Validator mValidator;
private boolean mIsPassword; private boolean mIsPassword;
private boolean mIsSummaryPassword;
public ValidatedEditTextPreference(Context context, AttributeSet attrs, public ValidatedEditTextPreference(Context context, AttributeSet attrs,
int defStyleAttr, int defStyleRes) { int defStyleAttr, int defStyleRes) {
@@ -78,10 +81,25 @@ public class ValidatedEditTextPreference extends CustomEditTextPreference {
} }
} }
@Override
public void onBindViewHolder(PreferenceViewHolder holder) {
super.onBindViewHolder(holder);
final TextView textView = (TextView) holder.findViewById(android.R.id.summary);
if (textView != null && mIsSummaryPassword) {
textView.setInputType(
InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
}
}
public void setIsPassword(boolean isPassword) { public void setIsPassword(boolean isPassword) {
mIsPassword = isPassword; mIsPassword = isPassword;
} }
public void setIsSummaryPassword(boolean isPassword) {
mIsSummaryPassword = isPassword;
}
@VisibleForTesting(otherwise = VisibleForTesting.NONE) @VisibleForTesting(otherwise = VisibleForTesting.NONE)
public boolean isPassword() { public boolean isPassword() {
return mIsPassword; return mIsPassword;

View File

@@ -51,6 +51,7 @@ public class WifiTetherPasswordPreferenceController extends WifiTetherBasePrefer
Log.d(TAG, "Updating password in Preference, " + mPassword); Log.d(TAG, "Updating password in Preference, " + mPassword);
} }
((ValidatedEditTextPreference) mPreference).setValidator(this); ((ValidatedEditTextPreference) mPreference).setValidator(this);
((ValidatedEditTextPreference) mPreference).setIsSummaryPassword(true);
updatePasswordDisplay((EditTextPreference) mPreference); updatePasswordDisplay((EditTextPreference) mPreference);
} }

View File

@@ -17,6 +17,7 @@
package com.android.settings.widget; package com.android.settings.widget;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any; import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt; import static org.mockito.Matchers.anyInt;
import static org.mockito.Mockito.never; import static org.mockito.Mockito.never;
@@ -24,10 +25,12 @@ import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when; import static org.mockito.Mockito.when;
import android.support.v7.preference.PreferenceViewHolder;
import android.text.InputType; import android.text.InputType;
import android.text.TextWatcher; import android.text.TextWatcher;
import android.view.View; import android.view.View;
import android.widget.EditText; import android.widget.EditText;
import android.widget.TextView;
import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.testutils.SettingsRobolectricTestRunner;
@@ -37,6 +40,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock; import org.mockito.Mock;
import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations;
import org.robolectric.RuntimeEnvironment; import org.robolectric.RuntimeEnvironment;
import org.robolectric.util.ReflectionHelpers;
@RunWith(SettingsRobolectricTestRunner.class) @RunWith(SettingsRobolectricTestRunner.class)
public class ValidatedEditTextPreferenceTest { public class ValidatedEditTextPreferenceTest {
@@ -46,11 +50,15 @@ public class ValidatedEditTextPreferenceTest {
@Mock @Mock
private ValidatedEditTextPreference.Validator mValidator; private ValidatedEditTextPreference.Validator mValidator;
private PreferenceViewHolder mViewHolder;
private ValidatedEditTextPreference mPreference; private ValidatedEditTextPreference mPreference;
@Before @Before
public void setUp() { public void setUp() {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
mViewHolder = spy(PreferenceViewHolder.createInstanceForTests(
new View(RuntimeEnvironment.application)));
mPreference = new ValidatedEditTextPreference(RuntimeEnvironment.application); mPreference = new ValidatedEditTextPreference(RuntimeEnvironment.application);
} }
@@ -111,4 +119,17 @@ public class ValidatedEditTextPreferenceTest {
& (InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT)) & (InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT))
.isNotEqualTo(0); .isNotEqualTo(0);
} }
@Test
public void bindViewHolder_isPassword_shouldSetInputType() {
final TextView textView = spy(new TextView(RuntimeEnvironment.application));
when(mViewHolder.findViewById(android.R.id.summary)).thenReturn(textView);
mPreference.setIsSummaryPassword(true);
mPreference.onBindViewHolder(mViewHolder);
assertThat(textView.getInputType()
& (InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT))
.isNotEqualTo(0);
}
} }