Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit 38a580e

Browse files
saketkumartimabbott
authored andcommitted
Adds a toggle to make passwords visible in login activity
Adds a toggle to make passwords visible in login activity fixup! Adds a toggle to make passwords visible in login activity
1 parent b7bd531 commit 38a580e

File tree

13 files changed

+113
-23
lines changed

13 files changed

+113
-23
lines changed

app/src/main/java/com/zulip/android/activities/LoginActivity.java

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,17 @@
1313
import android.support.customtabs.CustomTabsIntent;
1414
import android.support.v7.app.AlertDialog;
1515
import android.support.v7.widget.Toolbar;
16+
import android.text.Editable;
17+
import android.text.InputType;
18+
import android.text.TextWatcher;
1619
import android.util.Log;
1720
import android.util.Patterns;
1821
import android.view.View;
1922
import android.view.inputmethod.InputMethodManager;
2023
import android.webkit.URLUtil;
2124
import android.widget.Button;
2225
import android.widget.EditText;
26+
import android.widget.ImageView;
2327
import android.widget.Toast;
2428

2529
import com.google.android.gms.auth.api.Auth;
@@ -62,6 +66,7 @@ public class LoginActivity extends BaseActivity implements View.OnClickListener,
6266
private EditText mServerEditText;
6367
private EditText mUserName;
6468
private EditText mPassword;
69+
private ImageView mShowPassword;
6570
private EditText serverIn;
6671
//region state-restoration
6772
static final String USERNAME = "username";
@@ -92,6 +97,7 @@ protected void onCreate(Bundle savedInstanceState) {
9297
findViewById(R.id.zulip_login).setOnClickListener(this);
9398
mUserName = (EditText) findViewById(R.id.username);
9499
mPassword = (EditText) findViewById(R.id.password);
100+
mShowPassword = (ImageView) findViewById(R.id.showPassword);
95101
serverIn = (EditText) findViewById(R.id.server_url_in);
96102
findViewById(R.id.server_btn).setOnClickListener(new View.OnClickListener() {
97103
@Override
@@ -120,6 +126,56 @@ public void onClick(View view) {
120126
mUserName.setText(savedInstanceState.getString(USERNAME));
121127
mPassword.setText(savedInstanceState.getString(PASSWORD));
122128
}
129+
130+
mShowPassword.setVisibility(View.GONE);
131+
mPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
132+
mPassword.addTextChangedListener(new TextWatcher() {
133+
@Override
134+
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
135+
136+
}
137+
138+
@Override
139+
public void onTextChanged(CharSequence s, int start, int before, int count) {
140+
141+
if (mPassword.getText().length() > 0)
142+
{
143+
mShowPassword.setVisibility(View.VISIBLE);
144+
}
145+
else
146+
{
147+
mShowPassword.setVisibility(View.GONE);
148+
}
149+
150+
}
151+
152+
@Override
153+
public void afterTextChanged(Editable s) {
154+
155+
}
156+
});
157+
158+
159+
mShowPassword.setOnClickListener(new View.OnClickListener() {
160+
@Override
161+
public void onClick(View v) {
162+
163+
if (mShowPassword.getTag().toString().equals("visible"))
164+
{
165+
mShowPassword.setTag("hide");
166+
mShowPassword.setImageResource(R.drawable.ic_visibility_off_black_24dp);
167+
mPassword.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
168+
mPassword.setSelection(mPassword.length());
169+
}
170+
else
171+
{
172+
mShowPassword.setTag("visible");
173+
mShowPassword.setImageResource(R.drawable.ic_visibility_black_24dp);
174+
mPassword.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);
175+
mPassword.setSelection(mPassword.length());
176+
}
177+
}
178+
});
123179
}
124180

125181
private void showLoginFields() {
470 Bytes
Loading
507 Bytes
Loading
309 Bytes
Loading
351 Bytes
Loading
593 Bytes
Loading
629 Bytes
Loading
868 Bytes
Loading
884 Bytes
Loading
1.13 KB
Loading

0 commit comments

Comments
 (0)