Facebook
From Speedy Penguin, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 408
  1. package com.example.garella.kchfoodtrucktrackingapps;
  2.  
  3. import android.content.DialogInterface;
  4. import android.content.Intent;
  5. import android.support.annotation.NonNull;
  6. import android.support.design.widget.Snackbar;
  7. import android.app.AlertDialog;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.os.Bundle;
  10. import android.text.TextUtils;
  11. import android.view.LayoutInflater;
  12. import android.view.View;
  13. import android.widget.Button;
  14. import android.widget.RelativeLayout;
  15.  
  16. import com.example.garella.kchfoodtrucktrackingapps.Model.User;
  17. import com.google.android.gms.tasks.OnFailureListener;
  18. import com.google.android.gms.tasks.OnSuccessListener;
  19. import com.google.firebase.auth.AuthResult;
  20. import com.google.firebase.auth.FirebaseAuth;
  21. import com.google.firebase.database.DatabaseReference;
  22. import com.google.firebase.database.FirebaseDatabase;
  23. import com.rengwuxian.materialedittext.MaterialEditText;
  24.  
  25. import dmax.dialog.SpotsDialog;
  26.  
  27. public class MainActivity extends AppCompatActivity {
  28.  
  29.     Button btnSignIn,btnRegister;
  30.     RelativeLayout rootLayout;
  31.  
  32.     FirebaseAuth auth;
  33.     FirebaseDatabase db;
  34.     DatabaseReference users;
  35.  
  36.  
  37.     @Override
  38.     protected void onCreate(Bundle savedInstanceState) {
  39.         super.onCreate (savedInstanceState);
  40.         setContentView (R.layout.activity_main);
  41.  
  42.         //init firebase
  43.         auth = FirebaseAuth.getInstance ();
  44.         db = FirebaseDatabase.getInstance ();
  45.         users = db.getReference ("Users");
  46.  
  47.         //Init view
  48.  
  49.         btnRegister = (Button)findViewById (R.id.btnRegister);
  50.         btnSignIn = (Button)findViewById (R.id.btnSignIn);
  51.         rootLayout = (RelativeLayout)findViewById (R.id.rootLayout);
  52.  
  53.         //event
  54.         btnRegister.setOnClickListener (new View.OnClickListener () {
  55.             @Override
  56.             public void onClick(View v) {
  57.                 showRegisterDialog();
  58.             }
  59.         });
  60.  
  61.         btnSignIn.setOnClickListener (new View.OnClickListener () {
  62.             @Override
  63.             public void onClick(View v) {
  64.                 showLoginDialog();
  65.             }
  66.         });
  67.     }
  68.  
  69.     private void showLoginDialog() {
  70.         final AlertDialog.Builder dialog = new AlertDialog.Builder (this);
  71.         dialog.setTitle ("SIGN IN");
  72.         dialog.setMessage ("Please use email to sign in");
  73.  
  74.         LayoutInflater inflater = LayoutInflater.from (this);
  75.         View login_layout = inflater.inflate (R.layout.layout_login,null);
  76.  
  77.         final MaterialEditText edtEmail = login_layout.findViewById (R.id.edtEmail);
  78.         final MaterialEditText edtPassword = login_layout.findViewById (R.id.edtPassword);
  79.  
  80.  
  81.         dialog.setView (login_layout);
  82.  
  83.         //set button
  84.         dialog.setPositiveButton ("SIGN IN", new DialogInterface.OnClickListener () {
  85.                     @Override
  86.                     public void onClick(DialogInterface dialogInterface, int i) {
  87.  
  88.                         dialogInterface.dismiss ();
  89.  
  90.                         //set disable button Sign In if is processing
  91.                         btnSignIn.setEnabled (false);
  92.  
  93.  
  94.                         //Check validation
  95.                         if (TextUtils.isEmpty (edtEmail.getText ().toString ())) {
  96.                             Snackbar.make (rootLayout, "Please enter email address", Snackbar.LENGTH_SHORT)
  97.                                     .show ();
  98.                             return;
  99.                         }
  100.  
  101.                         if (TextUtils.isEmpty (edtPassword.getText ().toString ())) {
  102.                             Snackbar.make (rootLayout, "Please enter password", Snackbar.LENGTH_SHORT)
  103.                                     .show ();
  104.                             return;
  105.                         }
  106.  
  107.                         if (edtPassword.getText ().toString ().length () < 6) {
  108.                             Snackbar.make (rootLayout, "Password to short !", Snackbar.LENGTH_SHORT)
  109.                                     .show ();
  110.                             return;
  111.                         }
  112.  
  113.                         final AlertDialog waitingDialog = new SpotsDialog (MainActivity.this);
  114.                         waitingDialog.show ();
  115.  
  116.                         //login
  117.                         auth.signInWithEmailAndPassword (edtEmail.getText ().toString (),edtPassword.getText ().toString ())
  118.                                 .addOnSuccessListener (new OnSuccessListener<AuthResult> () {
  119.                                     @Override
  120.                                     public void onSuccess(AuthResult authResult) {
  121.                                         waitingDialog.dismiss ();
  122.                                         startActivity (new Intent (MainActivity.this,Welcome_.class));
  123.                                         finish();
  124.                                     }
  125.                                 }).addOnFailureListener (new OnFailureListener () {
  126.                             @Override
  127.                             public void onFailure(@NonNull Exception e) {
  128.                                 waitingDialog.dismiss ();
  129.                                 Snackbar.make(rootLayout,"Failed "+e.getMessage (),Snackbar.LENGTH_SHORT)
  130.                                         .show ();
  131.  
  132.                                 //Active button
  133.                                 btnSignIn.setEnabled (true);
  134.                             }
  135.                         });
  136.                     }
  137.                 });
  138.         dialog.setNegativeButton ("CANCEL", new DialogInterface.OnClickListener () {
  139.             @Override
  140.             public void onClick(DialogInterface dialogInterface, int i) {
  141.                 dialogInterface.dismiss ();
  142.             }
  143.         });
  144.  
  145.  
  146.         dialog.show ();
  147.     }
  148.  
  149.     private void showRegisterDialog() {
  150.         final AlertDialog.Builder dialog = new AlertDialog.Builder (this);
  151.         dialog.setTitle ("REGISTER");
  152.         dialog.setMessage ("Please use email to register");
  153.  
  154.         LayoutInflater inflater = LayoutInflater.from (this);
  155.         View register_layout = inflater.inflate (R.layout.layout_register,null);
  156.  
  157.         final MaterialEditText edtEmail = register_layout.findViewById (R.id.edtEmail);
  158.         final MaterialEditText edtPassword = register_layout.findViewById (R.id.edtPassword);
  159.         final MaterialEditText edtName = register_layout.findViewById (R.id.edtName);
  160.         final MaterialEditText edtPhone = register_layout.findViewById (R.id.edtPhone);
  161.  
  162.  
  163.         dialog.setView (register_layout);
  164.  
  165.         //set button
  166.         dialog.setPositiveButton ("REGISTER", new DialogInterface.OnClickListener () {
  167.             @Override
  168.             public void onClick(DialogInterface dialogInterface, int i) {
  169.  
  170.                 dialogInterface.dismiss ();
  171.  
  172.                 //Check validation
  173.                 if(TextUtils.isEmpty (edtEmail.getText ().toString ()))
  174.                 {
  175.                     Snackbar.make(rootLayout,"Please enter email address",Snackbar.LENGTH_SHORT)
  176.                             .show ();
  177.                     return;
  178.                 }
  179.  
  180.                 if(TextUtils.isEmpty (edtPhone.getText ().toString ()))
  181.                 {
  182.                     Snackbar.make(rootLayout,"Please enter phone number",Snackbar.LENGTH_SHORT)
  183.                             .show ();
  184.                     return;
  185.                 }
  186.  
  187.                 if(TextUtils.isEmpty (edtPassword.getText ().toString ()))
  188.                 {
  189.                     Snackbar.make(rootLayout,"Please enter pssword",Snackbar.LENGTH_SHORT)
  190.                             .show ();
  191.                     return;
  192.                 }
  193.  
  194.                 if(edtPassword.getText ().toString ().length () < 6)
  195.                 {
  196.                     Snackbar.make(rootLayout,"Password to short !",Snackbar.LENGTH_SHORT)
  197.                             .show ();
  198.                     return;
  199.                 }
  200.  
  201.                 //Register new user
  202.                 auth.createUserWithEmailAndPassword (edtEmail.getText ().toString (),edtPassword.getText ().toString ())
  203.                         .addOnSuccessListener (new OnSuccessListener<AuthResult> () {
  204.                             @Override
  205.                             public void onSuccess(AuthResult authResult) {
  206.                                 //save user to db
  207.                                 User user = new User ();
  208.                                 user.setEmail (edtEmail.getText ().toString ());
  209.                                 user.setName (edtName.getText ().toString ());
  210.                                 user.setPhone (edtPhone.getText ().toString ());
  211.                                 user.setPassword (edtPassword.getText ().toString ());
  212.  
  213.                                 //use email to key
  214.                                 users.child (FirebaseAuth.getInstance ().getCurrentUser ().getUid ())
  215.                                         .setValue (user)
  216.                                         .addOnSuccessListener (new OnSuccessListener<Void> () {
  217.                                             @Override
  218.                                             public void onSuccess(Void aVoid) {
  219.                                                 Snackbar.make (rootLayout,"Register successfully !",Snackbar.LENGTH_SHORT)
  220.                                                         .show ();
  221.                                             }
  222.                                         })
  223.                                         .addOnFailureListener (new OnFailureListener () {
  224.                                             @Override
  225.                                             public void onFailure(@NonNull Exception e) {
  226.                                                 Snackbar.make (rootLayout,"Failed "+e.getMessage (),Snackbar.LENGTH_SHORT)
  227.                                                         .show ();
  228.                                             }
  229.                                         });
  230.  
  231.                             }
  232.                         })
  233.                         .addOnFailureListener (new OnFailureListener () {
  234.                             @Override
  235.                             public void onFailure(@NonNull Exception e) {
  236.                                 Snackbar.make (rootLayout,"Failed "+e.getMessage (),Snackbar.LENGTH_SHORT)
  237.                                         .show ();
  238.                             }
  239.                         });
  240.  
  241.             }
  242.         });
  243.  
  244.         dialog.setNegativeButton ("CANCEL", new DialogInterface.OnClickListener () {
  245.             @Override
  246.             public void onClick(DialogInterface dialogInterface, int i) {
  247.                 dialogInterface.dismiss ();
  248.  
  249.             }
  250.         });
  251.         dialog.show ();
  252.     }
  253. }
  254.