package org.azavea.otm.ui;
import org.azavea.otm.App;
import org.azavea.otm.LoginManager;
import org.azavea.otm.R;
import org.azavea.otm.rest.handlers.RestHandler;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.inputmethod.EditorInfo;
import android.widget.EditText;
import android.widget.Toast;
public class LoginActivity extends Activity {
private final LoginManager loginManager = App.getLoginManager();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_activity);
EditText password = (EditText) findViewById(R.id.login_password);
password.setOnEditorActionListener((textView, actionId, event) -> {
if (actionId == EditorInfo.IME_ACTION_DONE) {
login(textView);
return true;
}
return false;
});
}
private boolean validate(String user, String pass) {
if ("".equals(user) || "".equals(pass)) {
String msg = "Please enter both a Username and a Password";
Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
return false;
}
return true;
}
public void login(View view) {
String username = ((EditText) findViewById(R.id.login_username)).getText().toString().trim();
String password = ((EditText) findViewById(R.id.login_password)).getText().toString().trim();
if (validate(username, password)) {
requestLogin(username, password);
}
}
private void requestLogin(String username, String password) {
final ProgressDialog dialog = ProgressDialog.show(this, "", "Logging in...", true, true);
loginManager.logIn(this, username, password, msg -> {
dialog.cancel();
Bundle data = msg.getData();
if (data.getBoolean(RestHandler.SUCCESS_KEY)) {
setResult(RESULT_OK);
finish();
return true;
} else {
Toast.makeText(App.getAppInstance(), data.getString("message"), Toast.LENGTH_LONG).show();
return false;
}
});
}
public void register(View view) {
startActivity(new Intent(this, Register.class));
}
}