Brion VIBBER has submitted this change and it was merged. Change subject: Add 'showPassword' functionality to Create Account ......................................................................
Add 'showPassword' functionality to Create Account Checkboxes for now, will replace with fancier designs later on Change-Id: I1709b399ddbba6d6fa4c7b23e36868c022db09de --- M wikipedia/res/layout/activity_create_account.xml M wikipedia/src/main/java/org/wikipedia/Utils.java M wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java M wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java 4 files changed, 65 insertions(+), 33 deletions(-) Approvals: Brion VIBBER: Verified; Looks good to me, approved diff --git a/wikipedia/res/layout/activity_create_account.xml b/wikipedia/res/layout/activity_create_account.xml index 7491f22..25c5d43 100644 --- a/wikipedia/res/layout/activity_create_account.xml +++ b/wikipedia/res/layout/activity_create_account.xml @@ -20,23 +20,44 @@ android:inputType="textNoSuggestions" /> - <org.wikipedia.styledviews.StyledEditText - android:id="@+id/create_account_password" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="@string/create_account_password_hint" - android:singleLine="true" - android:inputType="textPassword" - /> + android:orientation="horizontal"> + <org.wikipedia.styledviews.StyledEditText + android:id="@+id/create_account_password" + android:layout_width="0dp" + android:layout_weight="1" + android:layout_height="wrap_content" + android:hint="@string/create_account_password_hint" + android:singleLine="true" + android:inputType="textPassword" + /> + <org.wikipedia.styledviews.StyledCheckBox + android:id="@+id/create_account_show_password" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + </LinearLayout> - <org.wikipedia.styledviews.StyledEditText - android:id="@+id/create_account_password_repeat" + <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" - android:hint="@string/create_account_password_repeat_hint" - android:singleLine="true" - android:inputType="textPassword" - /> + android:orientation="horizontal"> + <org.wikipedia.styledviews.StyledEditText + android:id="@+id/create_account_password_repeat" + android:layout_width="0dp" + android:layout_weight="1" + android:layout_height="wrap_content" + android:hint="@string/create_account_password_repeat_hint" + android:singleLine="true" + android:inputType="textPassword" + /> + + <org.wikipedia.styledviews.StyledCheckBox + android:id="@+id/create_account_show_password_repeat" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + </LinearLayout> <org.wikipedia.styledviews.StyledEditText android:id="@+id/create_account_email" diff --git a/wikipedia/src/main/java/org/wikipedia/Utils.java b/wikipedia/src/main/java/org/wikipedia/Utils.java index 88f74ff..a669489 100644 --- a/wikipedia/src/main/java/org/wikipedia/Utils.java +++ b/wikipedia/src/main/java/org/wikipedia/Utils.java @@ -3,24 +3,24 @@ import android.animation.*; import android.app.*; import android.content.*; +import android.content.pm.*; import android.os.*; +import android.text.*; import android.text.format.*; import android.util.*; import android.view.*; import android.view.inputmethod.*; +import android.widget.*; +import com.squareup.otto.*; import org.json.*; +import org.mediawiki.api.json.*; +import org.wikipedia.events.*; +import org.wikipedia.zero.*; import java.io.*; import java.security.*; import java.text.*; import java.util.*; - -import org.mediawiki.api.json.ApiResult; -import org.wikipedia.events.WikipediaZeroStateChangeEvent; -import android.content.pm.PackageManager; -import android.content.pm.PackageInfo; -import org.wikipedia.zero.WikipediaZeroTask; -import com.squareup.otto.*; /** * Contains utility methods that Java doesn't have because we can't make code look too good, can we? @@ -195,6 +195,22 @@ } } + public static void setupShowPasswordCheck(final CheckBox check, final EditText edit) { + check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { + // EditText loses the cursor position when you change the InputType + int curPos = edit.getSelectionStart(); + if (isChecked) { + edit.setInputType(InputType.TYPE_CLASS_TEXT); + } else { + edit.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); + } + edit.setSelection(curPos); + } + }); + } + /* Inspect an API response, and fire an event to update the UI for Wikipedia Zero On/Off. * * @param app The application object diff --git a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java index c053ac5..5a24d18 100644 --- a/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java +++ b/wikipedia/src/main/java/org/wikipedia/createaccount/CreateAccountActivity.java @@ -23,6 +23,9 @@ @Email(order=5, messageResId=R.string.create_account_email_error) private EditText emailEdit; + private CheckBox showPasswordCheck; + private CheckBox showPasswordRepeatCheck; + private View primaryContainer; private WikipediaApp app; @@ -50,6 +53,8 @@ passwordRepeatEdit = (EditText) findViewById(R.id.create_account_password_repeat); emailEdit = (EditText) findViewById(R.id.create_account_email); primaryContainer = findViewById(R.id.create_account_primary_container); + showPasswordCheck = (CheckBox) findViewById(R.id.create_account_show_password); + showPasswordRepeatCheck = (CheckBox) findViewById(R.id.create_account_show_password_repeat); progressDialog = new ProgressDialog(this); progressDialog.setIndeterminate(true); @@ -83,6 +88,9 @@ } }, usernameEdit, passwordEdit, passwordRepeatEdit); + Utils.setupShowPasswordCheck(showPasswordCheck, passwordEdit); + Utils.setupShowPasswordCheck(showPasswordRepeatCheck, passwordRepeatEdit); + if (savedInstanceState != null && savedInstanceState.containsKey("result")) { createAccountResult = savedInstanceState.getParcelable("result"); if (createAccountResult instanceof CreateAccountTokenResult) { diff --git a/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java b/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java index eab0e91..0c79919 100644 --- a/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java +++ b/wikipedia/src/main/java/org/wikipedia/login/LoginActivity.java @@ -4,7 +4,6 @@ import android.content.*; import android.os.*; import android.support.v7.app.*; -import android.text.*; import android.util.*; import android.view.*; import android.view.inputmethod.*; @@ -56,19 +55,7 @@ } }); - showPassword.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - // EditText loses the cursor position when you change the InputType - int curPos = passwordText.getSelectionStart(); - if (isChecked) { - passwordText.setInputType(InputType.TYPE_CLASS_TEXT); - } else { - passwordText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); - } - passwordText.setSelection(curPos); - } - }); + Utils.setupShowPasswordCheck(showPassword, passwordText); createAccountLink.setOnClickListener(new View.OnClickListener() { @Override -- To view, visit https://gerrit.wikimedia.org/r/115245 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I1709b399ddbba6d6fa4c7b23e36868c022db09de Gerrit-PatchSet: 2 Gerrit-Project: apps/android/wikipedia Gerrit-Branch: master Gerrit-Owner: Yuvipanda <yuvipa...@gmail.com> Gerrit-Reviewer: Brion VIBBER <br...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits