package com.luna.anytime;
import com.avos.avoscloud.AVAnalytics;
import com.avos.avoscloud.AVException;
import com.avos.avoscloud.AVUser;
import com.avos.avoscloud.LogInCallback;
import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class LoginActivity extends AnyTimeActivity {
Button loginButton;
Button registerButton;
Button forgetPasswordButton;
EditText userNameEditText;
EditText userPasswordEditText;
private ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
AVAnalytics.trackAppOpened(getIntent());
AVService.initPushService(this);
loginButton = (Button) findViewById(R.id.button_login);
registerButton = (Button) findViewById(R.id.button_register);
forgetPasswordButton = (Button) findViewById(R.id.button_forget_password);
userNameEditText = (EditText) findViewById(R.id.editText_userName);
userPasswordEditText = (EditText) findViewById(R.id.editText_userPassword);
if (getUserId() != null) {
Intent mainIntent = new Intent(activity, MainActivity.class);
startActivity(mainIntent);
activity.finish();
}
loginButton.setOnClickListener(loginListener);
registerButton.setOnClickListener(registerListener);
forgetPasswordButton.setOnClickListener(forgetPasswordListener);
}
OnClickListener loginListener = new OnClickListener() {
@SuppressLint("NewApi")
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
public void onClick(View arg0) {
String username = userNameEditText.getText().toString();
if (username.isEmpty()) {
showUserNameEmptyError();
return;
}
if (password().isEmpty()) {
showUserPasswordEmptyError();
return;
}
progressDialogShow();
AVUser.logInInBackground(username,
password(),
new LogInCallback() {
public void done(AVUser user, AVException e) {
if (user != null) {
progressDialogDismiss();
Intent mainIntent = new Intent(activity,
MainActivity.class);
startActivity(mainIntent);
activity.finish();
} else {
progressDialogDismiss();
showLoginError();
}
}
});
}
private String password() {
return userPasswordEditText.getText().toString();
}
};
OnClickListener forgetPasswordListener = new OnClickListener() {
@Override
public void onClick(View arg0) {
Intent forgetPasswordIntent = new Intent(activity, ForgetPasswordActivity.class);
startActivity(forgetPasswordIntent);
activity.finish();
}
};
OnClickListener registerListener = new OnClickListener() {
@Override
public void onClick(View v) {
Intent registerIntent = new Intent(activity, RegisterActivity.class);
startActivity(registerIntent);
activity.finish();
}
};
private void progressDialogDismiss() {
if (progressDialog != null)
progressDialog.dismiss();
}
private void progressDialogShow() {
progressDialog = ProgressDialog
.show(activity,
activity.getResources().getText(
R.string.dialog_message_title),
activity.getResources().getText(
R.string.dialog_text_wait), true, false);
}
private void showLoginError() {
new AlertDialog.Builder(activity)
.setTitle(
activity.getResources().getString(
R.string.dialog_error_title))
.setMessage(
activity.getResources().getString(
R.string.error_login_error))
.setNegativeButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dialog.dismiss();
}
}).show();
}
private void showUserPasswordEmptyError() {
new AlertDialog.Builder(activity)
.setTitle(
activity.getResources().getString(
R.string.dialog_error_title))
.setMessage(
activity.getResources().getString(
R.string.error_register_password_null))
.setNegativeButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dialog.dismiss();
}
}).show();
}
private void showUserNameEmptyError() {
new AlertDialog.Builder(activity)
.setTitle(
activity.getResources().getString(
R.string.dialog_error_title))
.setMessage(
activity.getResources().getString(
R.string.error_register_user_name_null))
.setNegativeButton(android.R.string.ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which) {
dialog.dismiss();
}
}).show();
}
}