package com.nitsilchar.hp.passwordStorage.activity; import android.content.Context; import android.content.Intent; import android.graphics.Rect; import android.os.Bundle; import android.support.annotation.NonNull; import android.support.v7.app.AppCompatActivity; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; import android.view.inputmethod.InputMethodManager; import android.widget.Button; import android.widget.EditText; import android.widget.ProgressBar; import android.widget.TextView; import android.widget.Toast; import com.crashlytics.android.Crashlytics; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.AuthResult; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; import com.nitsilchar.hp.passwordStorage.R; import com.nitsilchar.hp.passwordStorage.model.AppStatus; import java.util.Properties; import io.fabric.sdk.android.Fabric; public class LoginActivity extends AppCompatActivity implements View.OnClickListener { String str_Email; String str_Password, str_getEmail, str_getPass; EditText edt_Email, edt_Password; Button login, newuser; boolean b=false; Properties prop; private FirebaseAuth auth; private ProgressBar progressBar; SplashActivity splashActivity; AppStatus appStatus; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Fabric.with(this, new Crashlytics()); setContentView(R.layout.activity_login); splashActivity=new SplashActivity(); prop=new Properties(); auth = FirebaseAuth.getInstance(); appStatus=new AppStatus(getApplicationContext()); str_getEmail = SplashActivity.sh.getString("email", null); str_getPass = SplashActivity.sh.getString("password", null); login = (Button) findViewById(R.id.btn_login); newuser = (Button) findViewById(R.id.newuser); edt_Email = (EditText) findViewById(R.id.edt_email); edt_Password = (EditText) findViewById(R.id.edt_password); progressBar=(ProgressBar)findViewById(R.id.progressBar); b=splashActivity.containsPass("password"); if(b==true){ } login.setOnClickListener(this); newuser.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { startActivity(new Intent(LoginActivity.this,RegistrationActivity.class)); } }); } @Override public void onClick(View v) { if (appStatus.isOnline()) { try { str_Email = edt_Email.getText().toString(); str_Password = edt_Password.getText().toString(); if (str_Email.length() == 0 & str_Password.length() == 0) { Toast.makeText(getApplicationContext(), R.string.login_enter_email_password, Toast.LENGTH_LONG).show(); } else if (str_Email.length() == 0) { Toast.makeText(getApplicationContext(), R.string.login_enter_emailid, Toast.LENGTH_LONG).show(); } else if (str_Password.length() == 0) { Toast.makeText(getApplicationContext(), R.string.login_enter_password, Toast.LENGTH_LONG).show(); } else if (str_getEmail.matches("") && str_getPass.matches("")) { Toast.makeText(getApplicationContext(), R.string.login_details_invalid, Toast.LENGTH_LONG).show(); } else if (!(str_Email.matches(str_getEmail))) { Toast.makeText(getApplicationContext(), R.string.login_email_password_invalid, Toast.LENGTH_LONG) .show(); } else if (!(str_getPass.matches(str_Password))) { Toast.makeText(getApplicationContext(), R.string.login_email_password_invalid, Toast.LENGTH_LONG) .show(); } else if ((str_getEmail.matches(str_Email)) && (str_getPass.matches(str_Password))) { SplashActivity.editor.putString("loginTest", "true"); SplashActivity.editor.commit(); progressBar.setVisibility(View.VISIBLE); auth.signInWithEmailAndPassword(str_getEmail, str_getPass) .addOnCompleteListener(LoginActivity.this, new OnCompleteListener<AuthResult>() { @Override public void onComplete(@NonNull Task<AuthResult> task) { progressBar.setVisibility(View.GONE); checkIfEmailVerified(); } }).addOnFailureListener(LoginActivity.this, new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { Toast.makeText(LoginActivity.this, R.string.login_authentication_failed, Toast.LENGTH_LONG).show(); } }); } } catch (Exception e) { Toast.makeText(getApplicationContext(), R.string.login_email_not_found_in_device, Toast.LENGTH_LONG).show(); } } else { Toast.makeText(getApplicationContext(),R.string.appstatus_no_connection,Toast.LENGTH_LONG).show(); } } private void checkIfEmailVerified(){ FirebaseUser user=FirebaseAuth.getInstance().getCurrentUser(); if (user.isEmailVerified()){ Toast.makeText(getApplicationContext(), R.string.login_successful_login, Toast.LENGTH_SHORT).show(); Intent sendToLogout = new Intent(getApplicationContext(), MainActivity.class); sendToLogout.putExtra("email", str_Email); startActivity(sendToLogout); } else { Toast.makeText(getApplicationContext(), R.string.login_email_notverified,Toast.LENGTH_SHORT).show(); } } @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { Intent intent = new Intent(LoginActivity.this, SplashActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); intent.putExtra("EXIT", true); startActivity(intent); } return super.onKeyDown(keyCode, event); } @Override public boolean dispatchTouchEvent(MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocus(); if ( v instanceof EditText) { Rect outRect = new Rect(); v.getGlobalVisibleRect(outRect); if (!outRect.contains((int)event.getRawX(), (int)event.getRawY())) { v.clearFocus(); InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); } } } return super.dispatchTouchEvent( event ); } }