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

Reply via email to