FOODY
unknown
plain_text
3 years ago
9.7 kB
8
Indexable
package com.cmbpizza.razor.colombopizza;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Point;
import android.graphics.drawable.Animatable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.os.Handler;
import android.util.Patterns;
import android.view.Display;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.Toast;
public class LoginScreen extends Activity implements View.OnClickListener, GestureDetector.OnGestureListener{
Button LoginAccessButton, MainLoginButton, RegisterButton;
AutoCompleteTextView LoginEmail;
EditText FirstName, LastName, Mobile, Email, Password, ConfirmPassword, LoginPassword;
CheckBox CheckTnC;
ImageView LoginBackgroundImage, LoginBottomImage;
GestureDetector gestureDetector;
private static SQLLiteHelperProducts sqLiteHelper;
public Dialog loginDialog; //creating a new instance of the Dialog class object, and specifying its context as the current class
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login_screen);
//this is to prevent the keyboard from showing when the app starts
this.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
initializeComponents();
initializeListeners();
initializeAnimators();
initializeGestures();
sqlLiteDB();
setBackgroundImage();
}
//initializing the buttons and views that is being used in this class
private void initializeComponents(){
//initializing and declaring button to this java class by referring to the button ID specified in the XML
LoginAccessButton = findViewById(R.id.btnLogin);
RegisterButton = findViewById(R.id.btnRegister);
LoginBottomImage = findViewById(R.id.login_bottom_image);
LoginBackgroundImage = findViewById(R.id.loginBackgroundImage);
//used to initialize the animations that is used in this activity
private void initializeAnimators(){
Drawable drawable = LoginBottomImage.getDrawable();
if(drawable instanceof Animatable){
((Animatable)drawable).start();
}
}
//setting a click event listener to these buttons
private void initializeListeners(){
LoginAccessButton.setOnClickListener(this);
RegisterButton.setOnClickListener(this);
MainLoginButton.setOnClickListener(this);
}
//used to initialize the gestures used in this activity
private void initializeGestures(){
//this gesture detector will monitor for any gestures performed in this activity
//the on touch listener is used to restrain the gesture monitoring activity to
//be constrained to a particular view in this case the bottom of the screen layout)
gestureDetector = new GestureDetector(LoginScreen.this ,this);
findViewById(R.id.login_bottom_image).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return gestureDetector.onTouchEvent(motionEvent);
}
});
}
@Override
public boolean onScroll(MotionEvent motionEvent, MotionEvent motionEvent1, float v, float v1) {
return false;
}
@Override
public void onLongPress(MotionEvent motionEvent) {
}
//this event will fire when the user does the fling motion on the screen
//when a user drags and lifts their finger quickly
@Override
public boolean onFling(MotionEvent start, MotionEvent end, float v, float v1) {
if(start.getY() > end.getY()){
//if the user flings from bottom to top (slide up)
Intent newIntent = new Intent(LoginScreen.this, UserMenu.class);
startActivity(newIntent);
overridePendingTransition(R.anim.layout_slide_up, R.anim.back_layout_slide_up);
return true;
} else if(start.getX() > end.getX() || start.getY() < end.getY() || start.getX() < end.getX()){
//ignore other fling motions in other directions
return false;
} else{
return false;
}
}
//this method is used to create a database
private void sqlLiteDB() {
sqLiteHelper = new SQLLiteHelperProducts(LoginScreen.this, "ProductDB", null, 1);
sqLiteHelper.dataQuery("CREATE TABLE IF NOT EXISTS userTable (userId INTEGER PRIMARY KEY AUTOINCREMENT, userFirstName VARCHAR, userLastName VARCHAR, userMobile VARCHAR, userEmail VARCHAR, userPassword VARCHAR)");
}
private void checkUser(){
String AdminEmail = "admin";
String AdminPass = "pass";
if(inputLoginValidation()){
String Email = LoginEmail.getText().toString();
String Password = LoginPassword.getText().toString();
if(Email.equals(AdminEmail) && Password.equals(AdminPass)){
Intent newIntent = new Intent(LoginScreen.this, AdminMenu.class);
startActivity(newIntent);
clearEditTextValues();
loginDialog.cancel();
} else {
if(sqLiteHelper.checkEmail(Email)){
if(sqLiteHelper.checkPassword(Email, Password)){
int UserId = sqLiteHelper.getUserId(Email);
Intent newIntent = new Intent(LoginScreen.this, UserMenu.class);
newIntent.putExtra("userId", UserId);
startActivity(newIntent);
clearEditTextValues();
loginDialog.cancel();
} else {
Toast.makeText(LoginScreen.this, "Your password is incorrect, please try again", Toast.LENGTH_SHORT).show();
LoginPassword.requestFocus();
}
} else {
Toast.makeText(LoginScreen.this, "Your email does not exist", Toast.LENGTH_SHORT).show();
LoginEmail.requestFocus();
}
}
}
}
private void clearEditTextValues(){
LoginEmail.getText().clear();
LoginPassword.getText().clear();
}
private void registerUser(){
if(inputValidation()){
String UserFirstName = FirstName.getText().toString();
String UserLastName = LastName.getText().toString();
String UserMobile = Mobile.getText().toString();
String UserEmail = Email.getText().toString();
String UserPassword = Password.getText().toString();
sqLiteHelper.registerUser(UserFirstName, UserLastName, UserMobile, UserEmail, UserPassword);
Toast.makeText(this, "Registration Successful", Toast.LENGTH_SHORT).show();
clearRegistrationForm();
int UserId = sqLiteHelper.getUserId(UserEmail);
Intent newIntent = new Intent(LoginScreen.this, UserMenu.class);
newIntent.putExtra("userId", UserId);
startActivity(newIntent);
overridePendingTransition(R.anim.layout_slide_up, R.anim.back_layout_slide_up);
}
}
private void clearRegistrationForm() {
FirstName.getText().clear();
LastName.getText().clear();
Mobile.getText().clear();
Email.getText().clear();
Password.getText().clear();
ConfirmPassword.getText().clear();
CheckTnC.setSelected(false);
}
//this method will check the input fields and validate them before submitting them
private boolean inputValidation() {
boolean valid;
String UserFirstName = FirstName.getText().toString();
String UserLastName = LastName.getText().toString();
String UserMobile = Mobile.getText().toString();
String UserEmail = Email.getText().toString();
String UserPassword = Password.getText().toString();
String UserConfirmPassword = ConfirmPassword.getText().toString();
Boolean TnCConfirmed = CheckTnC.isChecked();
if (UserFirstName.isEmpty()) {
valid = false;
FirstName.requestFocus();
Toast.makeText(this, "Please enter your First Name", Toast.LENGTH_SHORT).show();
} else if (UserLastName.isEmpty()) {
valid = false;
LastName.requestFocus();
Toast.makeText(this, "Please enter your Last Name", Toast.LENGTH_SHORT).show();
} else if (UserMobile.isEmpty()) {
valid = false;
Mobile.requestFocus();
Toast.makeText(this, "Please enter Mobile Number", Toast.LENGTH_SHORT).show();
} else if (UserEmail.isEmpty()) {
valid = false;
Email.requestFocus();
Toast.makeText(this, "Please enter your Email Address", Toast.LENGTH_SHORT).show();
} else if (!Patterns.EMAIL_ADDRESS.matcher(UserEmail).matches()) {
valid = false;
LoginEmail.requestFocus();
return valid;
}
}Editor is loading...