Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.demo.parking.ui;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.os.Bundle;
- import android.support.v7.app.AlertDialog;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
- import com.demo.parking.ApiHelper;
- import com.demo.parking.Constants;
- import com.demo.parking.R;
- import com.demo.parking.model.User;
- import com.demo.parking.util.PrefsUtil;
- import org.json.JSONException;
- import org.json.JSONObject;
- import java.io.IOException;
- import okhttp3.ResponseBody;
- import retrofit2.Call;
- import retrofit2.Callback;
- import retrofit2.Response;
- import retrofit2.Retrofit;
- import retrofit2.converter.gson.GsonConverterFactory;
- public class LoginActivity extends AppCompatActivity {
- private EditText inputEmail;
- private EditText inputPassword;
- private Button btnLogin;
- private ProgressBarWidget progressBarWidget;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_login);
- inputEmail = (EditText) findViewById(R.id.inputEmail);
- inputPassword = (EditText) findViewById(R.id.inputPassword);
- btnLogin = (Button) findViewById(R.id.btnLogin);
- progressBarWidget = new ProgressBarWidget(LoginActivity.this);
- btnLogin.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (validLoginEntries()) {
- login(inputEmail.getText().toString(), inputPassword.getText().toString());
- }
- }
- });
- }
- public void gotoRegistration(View v) {
- Intent i = new Intent(this, RegistrationActivity.class);
- startActivity(i);
- finish();
- }
- public boolean validLoginEntries() {
- boolean valid = true;
- String email = inputEmail.getText().toString();
- String password = inputPassword.getText().toString();
- if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {
- inputEmail.setError(getString(R.string.text_invalid_email));
- valid = false;
- } else {
- inputEmail.setError(null);
- }
- if (password.isEmpty() || password.length() < 4 || password.length() > 10) {
- inputPassword.setError(getString(R.string.text_invalid_password));
- valid = false;
- } else {
- inputPassword.setError(null);
- }
- return valid;
- }
- private void login(String email, String password) {
- // show progress bar
- progressBarWidget.show();
- Retrofit retrofit = new Retrofit.Builder()
- .baseUrl(Constants.API_BASE_URL)
- .addConverterFactory(GsonConverterFactory.create())
- .build();
- ApiHelper helper = retrofit.create(ApiHelper.class);
- Call<ResponseBody> call = helper.login(email, password);
- call.enqueue(new Callback<ResponseBody>() {
- @Override
- public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
- try {
- final String body = response.body().string();
- JSONObject loginResponse = new JSONObject(body);
- if (loginResponse.has("success") && loginResponse.getInt("success") == 200) {
- // create user object
- User user = new User();
- user.setSessionID(loginResponse.getString("session_id"));
- user.setUsername(loginResponse.getString("username"));
- // save session_id into SharedPreferences
- PrefsUtil.getInstance(getApplicationContext()).setSessionID(user.getSessionID());
- // show toast
- Toast.makeText(getApplicationContext(), R.string.text_success_alert_login_message, Toast.LENGTH_LONG);
- // redirect back to main screen
- Intent i = new Intent(getApplicationContext(), MainActivity.class);
- Bundle bundle = new Bundle();
- bundle.putParcelable(Constants.BUNDLE_USER, user);
- i.putExtras(bundle);
- startActivity(i);
- finish();
- } else {
- showErrorDialog(getString(R.string.text_error_alert_title), loginResponse.getString("message"));
- }
- } catch (IOException e) {
- e.printStackTrace();
- } catch (JSONException e) {
- e.printStackTrace();
- }
- }
- @Override
- public void onFailure(Call<ResponseBody> call, Throwable t) {
- t.printStackTrace();
- showErrorDialog(getString(R.string.text_error_alert_title), getString(R.string.text_error_alert_login_message));
- }
- });
- }
- private void showErrorDialog(String title, String message) {
- // hide progress bar
- progressBarWidget.hide();
- AlertDialog.Builder dialog = new AlertDialog.Builder(LoginActivity.this);
- dialog.setCancelable(false);
- dialog.setTitle(title);
- dialog.setMessage(message);
- dialog.setPositiveButton(getString(R.string.button_ok), new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int id) {
- dialog.dismiss();
- }
- });
- final AlertDialog alert = dialog.create();
- alert.show();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement