|
|
|
@ -24,6 +24,7 @@ import java.io.IOException;
|
|
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
|
|
import java.net.MalformedURLException;
|
|
|
|
|
import java.security.NoSuchAlgorithmException;
|
|
|
|
|
import java.util.Random;
|
|
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
|
import java.util.concurrent.atomic.AtomicReference;
|
|
|
|
|
|
|
|
|
@ -63,6 +64,7 @@ import com.todoroo.andlib.service.Autowired;
|
|
|
|
|
import com.todoroo.andlib.service.ContextManager;
|
|
|
|
|
import com.todoroo.andlib.service.DependencyInjectionService;
|
|
|
|
|
import com.todoroo.andlib.service.ExceptionService;
|
|
|
|
|
import com.todoroo.andlib.utility.DateUtilities;
|
|
|
|
|
import com.todoroo.andlib.utility.DialogUtilities;
|
|
|
|
|
import com.todoroo.andlib.utility.Preferences;
|
|
|
|
|
import com.todoroo.astrid.actfm.sync.ActFmInvoker;
|
|
|
|
@ -91,6 +93,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
|
|
|
|
|
@Autowired
|
|
|
|
|
protected ActFmPreferenceService actFmPreferenceService;
|
|
|
|
|
private final ActFmInvoker actFmInvoker = new ActFmInvoker();
|
|
|
|
|
private Random rand;
|
|
|
|
|
|
|
|
|
|
private Facebook facebook;
|
|
|
|
|
private AsyncFacebookRunner facebookRunner;
|
|
|
|
@ -134,6 +137,8 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
|
|
|
|
|
setContentView(getContentViewResource());
|
|
|
|
|
setTitle(getTitleResource());
|
|
|
|
|
|
|
|
|
|
rand = new Random(DateUtilities.now());
|
|
|
|
|
|
|
|
|
|
noSync = getIntent().getBooleanExtra(EXTRA_DO_NOT_SYNC, false);
|
|
|
|
|
|
|
|
|
|
facebook = new Facebook(APP_ID);
|
|
|
|
@ -233,6 +238,7 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
|
|
|
|
|
isNew.set(!isNew.get());
|
|
|
|
|
int nameIndex = body.indexOfChild(name);
|
|
|
|
|
int visibility = isNew.get() ? View.VISIBLE : View.GONE;
|
|
|
|
|
int passwordVisibility = isNew.get() ? View.GONE : View.VISIBLE;
|
|
|
|
|
toggleNew.setText(isNew.get() ? R.string.actfm_ALA_pw_returning
|
|
|
|
|
: R.string.actfm_ALA_pw_new);
|
|
|
|
|
dialog.get().setTitle(
|
|
|
|
@ -240,6 +246,12 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
|
|
|
|
|
: R.string.actfm_ALA_login_title);
|
|
|
|
|
body.getChildAt(nameIndex - 1).setVisibility(visibility);
|
|
|
|
|
body.getChildAt(nameIndex).setVisibility(visibility);
|
|
|
|
|
|
|
|
|
|
EditText password = (EditText) body.getChildAt(nameIndex + 4);
|
|
|
|
|
String passwordText = isNew.get() ? generateRandomPassword() : ""; //$NON-NLS-1$
|
|
|
|
|
password.setText(passwordText);
|
|
|
|
|
body.getChildAt(nameIndex + 3).setVisibility(passwordVisibility);
|
|
|
|
|
body.getChildAt(nameIndex + 4).setVisibility(passwordVisibility);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
toggleNew.setText(R.string.actfm_ALA_pw_returning);
|
|
|
|
@ -259,6 +271,10 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
|
|
|
|
|
R.string.actfm_ALA_password_label);
|
|
|
|
|
password.setTransformationMethod(new PasswordTransformationMethod());
|
|
|
|
|
|
|
|
|
|
password.setText(generateRandomPassword());
|
|
|
|
|
body.getChildAt(body.indexOfChild(password) - 1).setVisibility(View.GONE);
|
|
|
|
|
password.setVisibility(View.GONE);
|
|
|
|
|
|
|
|
|
|
dialog.set(new AlertDialog.Builder(ActFmLoginActivity.this).setView(
|
|
|
|
|
body).setIcon(R.drawable.icon_32).setTitle(
|
|
|
|
|
R.string.actfm_ALA_signup_title).setPositiveButton(
|
|
|
|
@ -282,6 +298,16 @@ public class ActFmLoginActivity extends Activity implements AuthListener {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
private String generateRandomPassword() {
|
|
|
|
|
String acceptable = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*(),."; //$NON-NLS-1$
|
|
|
|
|
char[] chars = new char[8];
|
|
|
|
|
for (int i = 0; i < chars.length; i++) {
|
|
|
|
|
char r = acceptable.charAt(rand.nextInt(acceptable.length()));
|
|
|
|
|
chars[i] = r;
|
|
|
|
|
}
|
|
|
|
|
return new String(chars);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private EditText addEditField(LinearLayout body, int hint) {
|
|
|
|
|
TextView label = new TextView(ActFmLoginActivity.this);
|
|
|
|
|
label.setText(hint);
|
|
|
|
|