Guest User

Untitled

a guest
Apr 29th, 2019
45
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.example.bishal.evader;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.content.Intent;
  5. import android.support.annotation.NonNull;
  6. import android.support.v7.app.AppCompatActivity;
  7. import android.os.Bundle;
  8. import android.text.TextUtils;
  9. import android.view.View;
  10. import android.widget.Button;
  11. import android.widget.EditText;
  12. import android.widget.TextView;
  13. import android.widget.Toast;
  14.  
  15. import com.example.bishal.evader.Model.Users;
  16. import com.example.bishal.evader.Prevalent.Prevalent;
  17. import com.google.firebase.database.DataSnapshot;
  18. import com.google.firebase.database.DatabaseError;
  19. import com.google.firebase.database.DatabaseReference;
  20. import com.google.firebase.database.FirebaseDatabase;
  21. import com.google.firebase.database.ValueEventListener;
  22. import com.rey.material.widget.CheckBox;
  23.  
  24. import io.paperdb.Paper;
  25.  
  26. public class LoginActivity extends AppCompatActivity
  27. {
  28.  
  29.     private EditText InputPhoneNumber, InputPassword;
  30.     private Button LoginButton;
  31.     private ProgressDialog loadingBar;
  32.     private TextView AdminLink, NotAdminLink;
  33.  
  34.     private String parentDbName = "Users";
  35.     private CheckBox chkBoxRememberMe;
  36.  
  37.  
  38.     @Override
  39.     protected void onCreate(Bundle savedInstanceState)
  40.     {
  41.         super.onCreate(savedInstanceState);
  42.         setContentView(R.layout.activity_login);
  43.  
  44.         LoginButton = (Button) findViewById(R.id.login_btn);
  45.         InputPassword = (EditText) findViewById(R.id.login_password_input);
  46.         InputPhoneNumber = (EditText) findViewById(R.id.login_phone_number_input);
  47.         AdminLink = (TextView) findViewById(R.id.admin_panel_link);
  48.         NotAdminLink = (TextView) findViewById(R.id.not_admin_panel_link);
  49.  
  50.         loadingBar = new ProgressDialog(this);
  51.  
  52.         chkBoxRememberMe = (CheckBox) findViewById(R.id.remember_me_chkb);
  53.         Paper.init(this);
  54.  
  55.         LoginButton.setOnClickListener(new View.OnClickListener() {
  56.             @Override
  57.             public void onClick(View v)
  58.             {
  59.                 LoginUser();
  60.  
  61.             }
  62.         });
  63. //admin and users buttons change accordingly if users or admin press them accidentally
  64.         AdminLink.setOnClickListener(new View.OnClickListener() {
  65.             @Override
  66.             public void onClick(View v)
  67.             {
  68.                 LoginButton.setText("Login Admin");
  69.                 AdminLink.setVisibility(View.INVISIBLE);
  70.                 NotAdminLink.setVisibility(View.VISIBLE);
  71.                 parentDbName = "Admins";
  72.             }
  73.         });
  74.  
  75.         NotAdminLink.setOnClickListener(new View.OnClickListener() {
  76.             @Override
  77.             public void onClick(View v)
  78.             {
  79.  
  80.                 LoginButton.setText("Login");
  81.                 AdminLink.setVisibility(View.VISIBLE);
  82.                 NotAdminLink.setVisibility(View.INVISIBLE);
  83.                 parentDbName = "Users";
  84.  
  85.             }
  86.         });
  87.  
  88.     }
  89.  
  90.  
  91.  
  92.     private  void LoginUser()
  93.     {
  94.         String phone = InputPhoneNumber.getText().toString();
  95.         String password = InputPassword.getText().toString();
  96.  
  97.           if (TextUtils.isEmpty(phone))
  98.     {
  99.         Toast.makeText(this, "Please type your phone number here...", Toast.LENGTH_SHORT).show();
  100.     }
  101.     else if (TextUtils.isEmpty(password))
  102.     {
  103.         Toast.makeText(this, "Please type your password here...", Toast.LENGTH_SHORT).show();
  104.     }
  105.     else
  106.           {
  107.               loadingBar.setTitle("Login Account");
  108.               loadingBar.setMessage("Please wait as the credentials are being checked");
  109.               loadingBar.setCanceledOnTouchOutside(false);
  110.               loadingBar.show();
  111.  
  112.               AllowAccessToAccount(phone, password);
  113.           }
  114.     }
  115.  
  116.  
  117.  
  118.     private void AllowAccessToAccount(final String phone, final String password)
  119.     {
  120. //ifthe checkbox for remember me is ticked it will return value
  121.         if (chkBoxRememberMe.isChecked())
  122.         {
  123.             Paper.book().write(Prevalent.UserPhoneKey, phone);
  124.             Paper.book().write(Prevalent.UserPasswordKey, password);
  125.         }
  126.  
  127.  
  128.         final DatabaseReference RootRef;
  129.         RootRef = FirebaseDatabase.getInstance().getReference();
  130.  
  131.         RootRef.addListenerForSingleValueEvent(new ValueEventListener() {
  132.             @Override
  133.             public void onDataChange(@NonNull DataSnapshot dataSnapshot)
  134.             {
  135.                 if (dataSnapshot.child(parentDbName).child(phone).exists())
  136.                 {
  137.                     Users usersData = dataSnapshot.child(parentDbName).child(phone).getValue(Users.class);
  138.  
  139.                     if (usersData.getPhone().equals(phone)) {
  140.                         if (usersData.getPassword().equals(password)) {
  141.  
  142.                             if (parentDbName.equals("Admins")) {
  143.                                 Toast.makeText(LoginActivity.this, "Welcome Admin You are logged in", Toast.LENGTH_SHORT).show();
  144.                                 loadingBar.dismiss();
  145.  
  146.                                 Intent intent = new Intent(LoginActivity.this, AdminCategoryActivity.class);
  147.                                 startActivity(intent);
  148.                             } else if (parentDbName.equals("Users")) {
  149.                                 Toast.makeText(LoginActivity.this, "You are logged in", Toast.LENGTH_SHORT).show();
  150.                                 loadingBar.dismiss();
  151.  
  152.                                 Intent intent = new Intent(LoginActivity.this, HomeActivity.class);
  153.                                 Prevalent.currentOnlineUser = usersData;
  154.                                 startActivity(intent);
  155.  
  156.                             }
  157.                         }
  158.                         else
  159.                         {
  160.                             loadingBar.dismiss();
  161.                             Toast.makeText(LoginActivity.this, "Your password is incorrect", Toast.LENGTH_SHORT).show();
  162.                         }
  163.                     }
  164.                 }
  165.                 else
  166.                 {
  167.                     Toast.makeText(LoginActivity.this, "Account on this " + phone + " number is not in database", Toast.LENGTH_SHORT).show();
  168.                     loadingBar.dismiss();
  169.                     Toast.makeText(LoginActivity.this, "Please create an Account idiot", Toast.LENGTH_SHORT).show();
  170.                 }
  171.             }
  172.  
  173.             @Override
  174.             public void onCancelled(@NonNull DatabaseError databaseError)
  175.             {
  176.  
  177.             }
  178.         });
  179.     }
  180. }
Add Comment
Please, Sign In to add comment