package bg.mentormate.academy.radarapp.activities;
import android.content.Intent;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ProgressBar;
import android.widget.TextView;
import com.parse.LogInCallback;
import com.parse.ParseException;
import com.parse.ParseUser;
import bg.mentormate.academy.radarapp.R;
import bg.mentormate.academy.radarapp.data.LocalDb;
import bg.mentormate.academy.radarapp.models.User;
import bg.mentormate.academy.radarapp.tools.NotificationHelper;
public class LoginActivity extends ActionBarActivity implements View.OnClickListener {
private EditText mEtUsername;
private EditText mEtPassword;
private Button mBtnLogin;
private TextView mTvRegister;
private ProgressBar mProgressBar;
private LocalDb mLocalDb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
getSupportActionBar().hide();
init();
}
private void init() {
mLocalDb = LocalDb.getInstance();
mEtUsername = (EditText) findViewById(R.id.etUsername);
mEtPassword = (EditText) findViewById(R.id.etPassword);
mBtnLogin = (Button) findViewById(R.id.btnLogin);
mTvRegister = (TextView) findViewById(R.id.tvRegister);
mProgressBar = (ProgressBar) findViewById(R.id.progressBar);
mBtnLogin.setOnClickListener(this);
mTvRegister.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int id = v.getId();
switch (id) {
case R.id.btnLogin:
login();
break;
case R.id.tvRegister:
goToRegister();
break;
}
}
private void login() {
String username = mEtUsername.getText().toString().trim();
String password = mEtPassword.getText().toString().trim();
if (username.isEmpty() || password.isEmpty()) {
// The input are empty, show an alert
NotificationHelper.alert(this, getString(R.string.dialog_error_title),
getString(R.string.login_invalid_inputs_message));
} else {
showProgressBar();
// Log the new user in Parse.com
User.logInInBackground(username, password, new LogInCallback() {
@Override
public void done(ParseUser parseUser, ParseException e) {
hideProgressBar();
if (e == null) {
// Logged in successfully
mLocalDb.setCurrentUser((User) parseUser);
goToMain();
} else {
NotificationHelper.alert(LoginActivity.this, getString(R.string.dialog_error_title),
e.getMessage());
}
}
});
}
}
private void showProgressBar() {
mProgressBar.setVisibility(View.VISIBLE);
}
private void hideProgressBar() {
mProgressBar.setVisibility(View.GONE);
}
private void goToMain() {
Intent homeIntent = new Intent(this, MainActivity.class);
homeIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
homeIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(homeIntent);
}
private void goToRegister() {
Intent registerIntent = new Intent(this, RegisterActivity.class);
startActivity(registerIntent);
}
}