Advertisement
Guest User

Login Activity

a guest
Mar 30th, 2020
248
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.12 KB | None | 0 0
  1. package com.bnpb.selfquarantine;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.appcompat.app.AppCompatActivity;
  5. import androidx.appcompat.widget.Toolbar;
  6.  
  7. import android.app.AlertDialog;
  8. import android.app.Dialog;
  9. import android.app.ProgressDialog;
  10. import android.content.DialogInterface;
  11. import android.content.Intent;
  12. import android.os.Bundle;
  13. import android.text.InputType;
  14. import android.text.TextUtils;
  15. import android.view.View;
  16. import android.widget.Button;
  17. import android.widget.EditText;
  18. import android.widget.LinearLayout;
  19. import android.widget.TextView;
  20. import android.widget.Toast;
  21.  
  22. import com.google.android.gms.tasks.OnCompleteListener;
  23. import com.google.android.gms.tasks.OnFailureListener;
  24. import com.google.android.gms.tasks.OnSuccessListener;
  25. import com.google.android.gms.tasks.Task;
  26. import com.google.android.material.textfield.TextInputEditText;
  27. import com.google.firebase.auth.AuthResult;
  28. import com.google.firebase.auth.FirebaseAuth;
  29. import com.google.firebase.database.DatabaseReference;
  30. import com.google.firebase.database.FirebaseDatabase;
  31. import com.google.firebase.iid.FirebaseInstanceId;
  32.  
  33. import java.util.Objects;
  34.  
  35. public class LoginAdminActivity extends AppCompatActivity {
  36.  
  37.     private TextInputEditText mSigninEmail, mSigninPassword;
  38.  
  39.     //dialog
  40.     private Dialog epicDialog;
  41.     private ProgressDialog mLoginProgress;
  42.  
  43.     //firebase
  44.     private FirebaseAuth mAuth;
  45.     private DatabaseReference mUserDatabase;
  46.  
  47.     @Override
  48.     protected void onCreate(Bundle savedInstanceState) {
  49.         super.onCreate(savedInstanceState);
  50.         setContentView(R.layout.activity_login_admin);
  51.         getSupportActionBar().setTitle("Masuk Administrator");
  52.         getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  53.  
  54.         mAuth = FirebaseAuth.getInstance();
  55.         mLoginProgress = new ProgressDialog( this );
  56.         mUserDatabase = FirebaseDatabase.getInstance().getReference().child( "Admin" );
  57.  
  58.         epicDialog = new Dialog(this);
  59.         TextView mRecoverPassword = findViewById(R.id.recoverPassword);
  60.  
  61.         mSigninEmail = findViewById( R.id.signinEmail);
  62.         mSigninPassword = findViewById( R.id.signinPassword);
  63.  
  64.         Button mSignin_btn = findViewById(R.id.buttonSignin);
  65.         mSignin_btn.setOnClickListener(new View.OnClickListener() {
  66.             @Override
  67.             public void onClick(View view) {
  68.                 if (validateEmailPassword()) {
  69.                     return;
  70.                 }
  71.  
  72.                 String email = Objects.requireNonNull(mSigninEmail.getText()).toString();
  73.                 String password = Objects.requireNonNull(mSigninPassword.getText()).toString();
  74.  
  75.                 if (!TextUtils.isEmpty( email ) || !TextUtils.isEmpty( password )){
  76.  
  77.                     mLoginProgress.setTitle( "Logging In" );
  78.                     mLoginProgress.setMessage( "Please Wait While We Check Your Credentials." );
  79.                     mLoginProgress.setCanceledOnTouchOutside( false );
  80.                     mLoginProgress.show();
  81.  
  82.                     LoginAdmin(email,password);
  83.  
  84.                     epicDialog.dismiss();
  85.                 }
  86.             }
  87.         });
  88.  
  89.         mRecoverPassword.setOnClickListener(new View.OnClickListener() {
  90.             @Override
  91.             public void onClick(View view) {
  92.                 showRecoverPasswordDialog();
  93.             }
  94.         });
  95.     }
  96.  
  97.     private void LoginAdmin(String email, String password) {
  98.         mAuth.signInWithEmailAndPassword( email, password ).addOnCompleteListener( new OnCompleteListener<AuthResult>() {
  99.             @Override
  100.             public void onComplete(@NonNull Task<AuthResult> task) {
  101.  
  102.                 if (task.isSuccessful()){
  103.  
  104.                     if (Objects.requireNonNull(mAuth.getCurrentUser()).isEmailVerified()) {
  105.                         mLoginProgress.dismiss();
  106.                         String current_user_id = Objects.requireNonNull(mAuth.getCurrentUser()).getUid();
  107.                         String deviceToken = FirebaseInstanceId.getInstance().getToken();
  108.  
  109.                         mUserDatabase.child(current_user_id).child("device_token").setValue(deviceToken).addOnSuccessListener(new OnSuccessListener<Void>() {
  110.                             @Override
  111.                             public void onSuccess(Void aVoid) {
  112.                                 Intent mainIntent = new Intent(LoginAdminActivity.this, MainActivity.class);
  113.                                 mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
  114.                                 startActivity(mainIntent);
  115.                                 finish();
  116.                             }
  117.                         });
  118.  
  119.                     } else {
  120.                         mLoginProgress.hide();
  121.                         Toast.makeText(LoginAdminActivity.this, "Silahkan Verifikasi Alamat Email Anda.", Toast.LENGTH_LONG).show();
  122.                     }
  123.  
  124.                 } else {
  125.                     mLoginProgress.hide();
  126.                     Toast.makeText(LoginAdminActivity.this, "Tidak Bisa Masuk, Silahkan Cek Email dan Password Anda.", Toast.LENGTH_LONG).show();
  127.                 }
  128.             }
  129.         } );
  130.     }
  131.  
  132.     private boolean validateEmailPassword() {
  133.         String emailInput = (Objects.requireNonNull(mSigninEmail.getText()).toString().trim());
  134.         String passwordInput = (Objects.requireNonNull(mSigninPassword.getText()).toString().trim());
  135.  
  136.         if (emailInput.isEmpty() | passwordInput.isEmpty() ) {
  137.             Toast.makeText(this, "Masukkan Email dan Password Anda", Toast.LENGTH_SHORT).show();
  138.             return true;
  139.  
  140.         } else {
  141.  
  142.             mSigninEmail.setError(null);
  143.             return false;
  144.         }
  145.     }
  146.  
  147.     private void showRecoverPasswordDialog() {
  148.         //AlertDialog
  149.         AlertDialog.Builder builder = new AlertDialog.Builder(this);
  150.         builder.setTitle("Memulihkan Password");
  151.  
  152.         //set layout linear layout
  153.         LinearLayout linearLayout = new LinearLayout(this);
  154.         //views to set in dialog
  155.         final EditText emailText = new EditText(this);
  156.         emailText.setHint("Email Anda");
  157.         emailText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
  158.         emailText.setMinEms(16);
  159.  
  160.         linearLayout.addView(emailText);
  161.         linearLayout.setPadding(10,10,10,10);
  162.  
  163.         builder.setView(linearLayout);
  164.  
  165.         //buttons recover
  166.         builder.setPositiveButton("Memulihkan", new DialogInterface.OnClickListener() {
  167.             @Override
  168.             public void onClick(DialogInterface dialogInterface, int i) {
  169.                 //input email
  170.                 String email = emailText.getText().toString().trim();
  171.                 beginRecovery(email);
  172.             }
  173.         });
  174.  
  175.         //buttons cancel
  176.         builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  177.             @Override
  178.             public void onClick(DialogInterface dialogInterface, int i) {
  179.                 dialogInterface.dismiss();
  180.             }
  181.         });
  182.  
  183.         //show dialog
  184.         builder.create().show();
  185.     }
  186.  
  187.     private void beginRecovery(String email) {
  188.         mLoginProgress.setMessage("Mengirim Email...");
  189.         mLoginProgress.show();
  190.         mAuth.sendPasswordResetEmail(email).addOnCompleteListener(new OnCompleteListener<Void>() {
  191.             @Override
  192.             public void onComplete(@NonNull Task<Void> task) {
  193.                 mLoginProgress.dismiss();
  194.                 if (task.isSuccessful()) {
  195.  
  196.                     Toast.makeText(LoginAdminActivity.this, "Email Terkirim", Toast.LENGTH_SHORT).show();
  197.  
  198.                 } else {
  199.  
  200.                     Toast.makeText(LoginAdminActivity.this, "Gagal...", Toast.LENGTH_SHORT).show();
  201.  
  202.                 }
  203.  
  204.             }
  205.         }).addOnFailureListener(new OnFailureListener() {
  206.             @Override
  207.             public void onFailure(@NonNull Exception e) {
  208.                 mLoginProgress.dismiss();
  209.                 //get and show proper error message
  210.                 Toast.makeText(LoginAdminActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
  211.             }
  212.         });
  213.     }
  214. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement