Advertisement
Guest User

Login User

a guest
Mar 30th, 2020
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.79 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( "Users" );
  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.                         mLoginProgress.dismiss();
  105.                         String current_user_id = Objects.requireNonNull(mAuth.getCurrentUser()).getUid();
  106.                         String deviceToken = FirebaseInstanceId.getInstance().getToken();
  107.  
  108.                         mUserDatabase.child(current_user_id).child("device_token").setValue(deviceToken).addOnSuccessListener(new OnSuccessListener<Void>() {
  109.                             @Override
  110.                             public void onSuccess(Void aVoid) {
  111.                                 Intent mainIntent = new Intent(LoginAdminActivity.this, MainActivity.class);
  112.                                 mainIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
  113.                                 startActivity(mainIntent);
  114.                                 finish();
  115.                             }
  116.                         });
  117.  
  118.                 } else {
  119.                     mLoginProgress.hide();
  120.                     Toast.makeText(LoginAdminActivity.this, "Tidak Bisa Masuk, Silahkan Cek Email dan Password Anda.", Toast.LENGTH_LONG).show();
  121.                 }
  122.             }
  123.         } );
  124.     }
  125.  
  126.     private boolean validateEmailPassword() {
  127.         String emailInput = (Objects.requireNonNull(mSigninEmail.getText()).toString().trim());
  128.         String passwordInput = (Objects.requireNonNull(mSigninPassword.getText()).toString().trim());
  129.  
  130.         if (emailInput.isEmpty() | passwordInput.isEmpty() ) {
  131.             Toast.makeText(this, "Masukkan Email dan Password Anda", Toast.LENGTH_SHORT).show();
  132.             return true;
  133.  
  134.         } else {
  135.  
  136.             mSigninEmail.setError(null);
  137.             return false;
  138.         }
  139.     }
  140.  
  141.     private void showRecoverPasswordDialog() {
  142.         //AlertDialog
  143.         AlertDialog.Builder builder = new AlertDialog.Builder(this);
  144.         builder.setTitle("Memulihkan Password");
  145.  
  146.         //set layout linear layout
  147.         LinearLayout linearLayout = new LinearLayout(this);
  148.         //views to set in dialog
  149.         final EditText emailText = new EditText(this);
  150.         emailText.setHint("Email Anda");
  151.         emailText.setInputType(InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS);
  152.         emailText.setMinEms(16);
  153.  
  154.         linearLayout.addView(emailText);
  155.         linearLayout.setPadding(10,10,10,10);
  156.  
  157.         builder.setView(linearLayout);
  158.  
  159.         //buttons recover
  160.         builder.setPositiveButton("Memulihkan", new DialogInterface.OnClickListener() {
  161.             @Override
  162.             public void onClick(DialogInterface dialogInterface, int i) {
  163.                 //input email
  164.                 String email = emailText.getText().toString().trim();
  165.                 beginRecovery(email);
  166.             }
  167.         });
  168.  
  169.         //buttons cancel
  170.         builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  171.             @Override
  172.             public void onClick(DialogInterface dialogInterface, int i) {
  173.                 dialogInterface.dismiss();
  174.             }
  175.         });
  176.  
  177.         //show dialog
  178.         builder.create().show();
  179.     }
  180.  
  181.     private void beginRecovery(String email) {
  182.         mLoginProgress.setMessage("Mengirim Email...");
  183.         mLoginProgress.show();
  184.         mAuth.sendPasswordResetEmail(email).addOnCompleteListener(new OnCompleteListener<Void>() {
  185.             @Override
  186.             public void onComplete(@NonNull Task<Void> task) {
  187.                 mLoginProgress.dismiss();
  188.                 if (task.isSuccessful()) {
  189.  
  190.                     Toast.makeText(LoginAdminActivity.this, "Email Terkirim", Toast.LENGTH_SHORT).show();
  191.  
  192.                 } else {
  193.  
  194.                     Toast.makeText(LoginAdminActivity.this, "Gagal...", Toast.LENGTH_SHORT).show();
  195.  
  196.                 }
  197.  
  198.             }
  199.         }).addOnFailureListener(new OnFailureListener() {
  200.             @Override
  201.             public void onFailure(@NonNull Exception e) {
  202.                 mLoginProgress.dismiss();
  203.                 //get and show proper error message
  204.                 Toast.makeText(LoginAdminActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
  205.             }
  206.         });
  207.     }
  208. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement