package ;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.content.res.AppCompatResources;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.util.Patterns;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.google.android.material.textfield.TextInputLayout;
import java.net.CookieHandler;
import java.net.CookieManager;
import java.net.CookiePolicy;
import java.net.CookieStore;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
public class Login extends AppCompatActivity {
TextView forgot, register;
EditText email_edit, password_edit;
CheckBox checkBox;
String remember = "nein";
Button login_btn;
ImageView done;
SharedPreferences sharedPreferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
sharedPreferences = getSharedPreferences("Login", Context.MODE_PRIVATE);
String loginState = sharedPreferences.getString("prefLoginStat", "");
if (loginState.equals("loggendin")) {
startActivity(new Intent(Login.this, Fragment_Steuerung.class));
}
email_edit = (EditText)findViewById(R.id.email_input);
password_edit = (EditText) findViewById(R.id.password_login);
checkBox = (CheckBox)findViewById(R.id.remember_me);
done = (ImageView)findViewById(R.id.imageView2);
login_btn = (Button)findViewById(R.id.login_btn);
login_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LoginPrüfung();
}
});
register = (TextView)findViewById(R.id.register_login);
forgot = (TextView) findViewById(R.id.forgot_password);
forgot.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Login.this, Reset_Passwort.class));
}
});
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(Login.this, Registration.class));
}
});
}
private void LoginPrüfung(){
String emailadresse = email_edit.getText().toString().trim();
String password = password_edit.getText().toString().trim();
Boolean all_right = true;
if (emailadresse.isEmpty()){
email_edit.setError("Email is Empty");
email_edit.requestFocus();
done.setImageDrawable(getResources().getDrawable(R.drawable.done_icon));
all_right = false;
}else if (!Patterns.EMAIL_ADDRESS.matcher(emailadresse).matches()){
email_edit.setError("Email is not right");
email_edit.requestFocus();
done.setImageDrawable(getResources().getDrawable(R.drawable.done_icon));
all_right = false;
}
if(!emailadresse.isEmpty()){
done.setImageDrawable(getResources().getDrawable(R.drawable.true_done));
}
if (password.isEmpty()){
password_edit.setError("Password is Empty");
password_edit.requestFocus();
all_right = false;
}
if (all_right){
ProgressDialog progressDialog = new ProgressDialog(Login.this);
progressDialog.setTitle("LogIn");
progressDialog.setMessage("Please Wait");
progressDialog.setCancelable(false);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
if(checkBox.isChecked()){
remember = "Ja";
}
RequestQueue queue = Volley.newRequestQueue(Login.this);
String url = "";
StringRequest stringRequest = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
progressDialog.dismiss();
if(response.equals("LogIn")){
if(checkBox.isChecked()){
SiCookieStore2 siCookieStore = new SiCookieStore2(Login.this);
CookieManager cookieManager = new CookieManager((CookieStore) siCookieStore, CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(cookieManager);
sharedPreferences = getApplicationContext().getSharedPreferences("Login", 0);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("prefLoginStat", "loggendin");
editor.apply();
startActivity(new Intent(Login.this, Fragment_Steuerung.class));
}else{
CookieManager cookieManager = new CookieManager();
cookieManager.setCookiePolicy(CookiePolicy.ACCEPT_ORIGINAL_SERVER);
CookieHandler.setDefault(cookieManager);
startActivity(new Intent(Login.this, Fragment_Steuerung.class));
}
}else{
AlertDialog alertDialog = new AlertDialog.Builder(Login.this).create();
alertDialog.setTitle("Login Error");
alertDialog.setMessage(response);
alertDialog.setCancelable(false);
alertDialog.setButton(DialogInterface.BUTTON_NEUTRAL, "Okay", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
alertDialog.show();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
progressDialog.dismiss();
AlertDialog alertDialog = new AlertDialog.Builder(Login.this).create();
alertDialog.setTitle("Volly Error");
alertDialog.setMessage(error.toString());
alertDialog.setCancelable(false);
alertDialog.setButton(DialogInterface.BUTTON_NEUTRAL, "Okay", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
alertDialog.dismiss();
}
});
alertDialog.show();
}
}){
@Nullable
@Override
protected Map<String, String> getParams() throws AuthFailureError {
HashMap<String, String> param = new HashMap<>();
param.put("email", emailadresse);
param.put("pass", password);
param.put("rem", "" + remember);
return param;
}
};
queue.add(stringRequest);
}
}
@Override
public void onBackPressed() {
Log.e("BackPressed", "Reset Password");
}
}