Better password login experience

pull/14/head
Tim Su 13 years ago
parent 94707800ac
commit 3a407fd41c

@ -416,12 +416,7 @@
</receiver>
<!-- actfm -->
<activity android:name="com.todoroo.astrid.actfm.ActFmLoginActivity">
<intent-filter>
<action android:name="com.todoroo.astrid.SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity android:name="com.todoroo.astrid.actfm.ActFmLoginActivity" />
<activity android:name="com.todoroo.astrid.actfm.OAuthLoginActivity" />
<activity android:name="com.todoroo.astrid.actfm.ActFmPreferences"
android:theme="@android:style/Theme"

@ -24,6 +24,8 @@ import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.security.NoSuchAlgorithmException;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import org.json.JSONException;
import org.json.JSONObject;
@ -45,9 +47,7 @@ import android.text.style.ClickableSpan;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.WindowManager;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView;
@ -195,20 +195,25 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
final EditText name = addEditField(body, R.string.actfm_ALA_name_label);
final CheckBox toggle = new CheckBox(ActFmLoginActivity.this);
toggle.setOnCheckedChangeListener(new OnCheckedChangeListener() {
final AtomicReference<AlertDialog> dialog = new AtomicReference<AlertDialog>();
final AtomicBoolean isNew = new AtomicBoolean(true);
final Button toggleNew = new Button(ActFmLoginActivity.this);
toggleNew.setOnClickListener(new OnClickListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
public void onClick(View v) {
isNew.set(!isNew.get());
int nameIndex = body.indexOfChild(name);
int visibility = isChecked ? View.VISIBLE : View.GONE;
toggle.setText(isChecked ? R.string.actfm_ALA_pw_returning :
int visibility = isNew.get() ? View.VISIBLE : View.GONE;
toggleNew.setText(isNew.get() ? R.string.actfm_ALA_pw_returning :
R.string.actfm_ALA_pw_new);
dialog.get().setTitle(isNew.get() ? R.string.actfm_ALA_signup_title :
R.string.actfm_ALA_login_title);
body.getChildAt(nameIndex - 1).setVisibility(visibility);
body.getChildAt(nameIndex).setVisibility(visibility);
}
});
toggle.setChecked(true);
body.addView(toggle, 0);
toggleNew.setText(R.string.actfm_ALA_pw_returning);
body.addView(toggleNew, 0);
final EditText email = addEditField(body, R.string.actfm_ALA_email_label);
getCredentials(new OnGetCredentials() {
@ -222,26 +227,28 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
final EditText password = addEditField(body, R.string.actfm_ALA_password_label);
password.setTransformationMethod(new PasswordTransformationMethod());
new AlertDialog.Builder(ActFmLoginActivity.this)
.setTitle(R.string.actfm_ALA_login_title)
dialog.set(new AlertDialog.Builder(ActFmLoginActivity.this)
.setView(body)
.setIcon(R.drawable.icon_32)
.setTitle(R.string.actfm_ALA_signup_title)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
boolean isNew = toggle.isChecked();
String nameString = isNew ? name.getText().toString() : null;
public void onClick(DialogInterface dlg, int which) {
String nameString = isNew.get() ? name.getText().toString() : null;
authenticate(email.getText().toString(), nameString,
ActFmInvoker.PROVIDER_PASSWORD, password.getText().toString());
if(isNew)
if(isNew.get())
StatisticsService.reportEvent("actfm-login-pw"); //$NON-NLS-1$
else
StatisticsService.reportEvent("actfm-signup-pw"); //$NON-NLS-1$
}
})
.setNegativeButton(android.R.string.cancel, null)
.show().setOwnerActivity(ActFmLoginActivity.this);
.show());
dialog.get().setOwnerActivity(ActFmLoginActivity.this);
}
};

@ -168,6 +168,9 @@
<!-- share login: Password -->
<string name="actfm_ALA_password_label">Password</string>
<!-- share login: Sign Up Title -->
<string name="actfm_ALA_signup_title">Create New Account</string>
<!-- share login: Login Title -->
<string name="actfm_ALA_login_title">Login to Astrid.com</string>

Loading…
Cancel
Save