protected override void OnStart() { var user = new ParseUser () { Username = userName, Email = userName }; user.SetPassword (password); user.SignUpInBackground (new TabSignUpCallback (user, SignUpCallback)); }
protected override void OnCreate(Bundle bundle) { base.OnCreate (bundle); Parse.Initialize (this, ParseCredentials.ApplicationID, ParseCredentials.ClientKey); DensityExtensions.Initialize (this); // Set our view from the "main" layout resource SetContentView (Resource.Layout.Main); var signInBtn = FindViewById<Button> (Resource.Id.SignInButton); var signUpBtn = FindViewById<Button> (Resource.Id.SignUpButton); var userEntry = FindViewById<EditText> (Resource.Id.EmailEntry); var passwordEntry = FindViewById<EditText> (Resource.Id.PasswordEntry); /* If the user is already logged in, we show a blank landing page * (as there is a bit of delay when acquiring the TabPerson * so this activity content is still shown). */ if (ParseUser.CurrentUser != null) { signInBtn.Visibility = signUpBtn.Visibility = userEntry.Visibility = passwordEntry.Visibility = ViewStates.Invisible; ParseUser.CurrentUser.RefreshInBackground (null); LaunchApp (this, ParseUser.CurrentUser, null); } profile = UserProfile.Instantiate (this); SignupTimer timer = null; userEntry.AfterTextChanged += (sender, e) => { var login = userEntry.Text; if (string.IsNullOrEmpty (login)) return; if (timer != null) timer.Cancel (); timer = new SignupTimer (1000, 1000, () => { var usernameChecker = CheckLoginDisponibility (login); usernameChecker.ContinueWith (t => { if (userEntry.Text == login) signUpBtn.Enabled = t.Result; }, TaskContinuationOptions.ExecuteSynchronously); }); timer.Start (); }; var initialEmail = profile.PrimayAddress ?? (profile.Emails == null ? null : profile.Emails.FirstOrDefault ()) ?? null; if (!string.IsNullOrEmpty (initialEmail)) userEntry.Text = initialEmail; if (!string.IsNullOrEmpty (userEntry.Text)) passwordEntry.RequestFocus (); ProgressDialog spinDialog = new ProgressDialog (this) { Indeterminate = true }; spinDialog.SetCancelable (false); Action<ParseUser, ParseException> callback = (user, err) => { if (user == null || err != null) { Android.Util.Log.Debug ("Login", "User not recognized: {0}", (err != null) ? err.Message : string.Empty); spinDialog.Dismiss (); var builder = new AlertDialog.Builder (this); builder.SetMessage (Resource.String.login_error); builder.SetPositiveButton ("OK", (a, b) => passwordEntry.Text = string.Empty); builder.Create ().Show (); return; } Android.Util.Log.Debug ("Login", "User {0} successfully logged. New? {1}", user.Username, user.IsNew); LaunchApp (this, user, spinDialog.Dismiss); }; signInBtn.Click += (sender, e) => { spinDialog.SetMessage ("Signing in..."); spinDialog.Show (); ParseUser.LogInInBackground (userEntry.Text, passwordEntry.Text, new TabLoginCallback (callback)); }; signUpBtn.Click += (sender, e) => { spinDialog.SetMessage ("Signing up..."); spinDialog.Show (); var user = new ParseUser () { Username = userEntry.Text, Email = userEntry.Text }; user.SetPassword (passwordEntry.Text); user.SignUpInBackground (new TabSignUpCallback (user, callback)); }; }