Advertisement
Ryggs

Login Activity

Sep 18th, 2019
542
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 10.14 KB | None | 0 0
  1. package com.beingdev.magicprint;
  2.  
  3. import android.content.Intent;
  4. import android.graphics.Typeface;
  5. import android.os.Bundle;
  6. import androidx.core.content.res.ResourcesCompat;
  7. import androidx.appcompat.app.AppCompatActivity;
  8. import android.util.Log;
  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.android.volley.NetworkError;
  16. import com.android.volley.RequestQueue;
  17. import com.android.volley.Response;
  18. import com.android.volley.ServerError;
  19. import com.android.volley.TimeoutError;
  20. import com.android.volley.VolleyError;
  21. import com.android.volley.toolbox.Volley;
  22. import com.beingdev.magicprint.networksync.CheckInternetConnection;
  23. import com.beingdev.magicprint.networksync.LoginRequest;
  24. import com.beingdev.magicprint.usersession.UserSession;
  25. import com.google.firebase.database.DataSnapshot;
  26. import com.google.firebase.database.DatabaseError;
  27. import com.google.firebase.database.DatabaseReference;
  28. import com.google.firebase.database.FirebaseDatabase;
  29. import com.google.firebase.database.ValueEventListener;
  30. import com.kaopiz.kprogresshud.KProgressHUD;
  31.  
  32. import org.json.JSONException;
  33. import org.json.JSONObject;
  34.  
  35.  
  36. public class LoginActivity extends AppCompatActivity {
  37.  
  38.     private EditText edtemail,edtpass;
  39.     private String email,pass,sessionmobile;
  40.     private TextView appname,forgotpass,registernow;
  41.     private RequestQueue requestQueue;
  42.     private UserSession session;
  43.     public static final String TAG = "MyTag";
  44.     private int cartcount, wishlistcount;
  45.  
  46.     //Getting reference to Firebase Database
  47.     FirebaseDatabase database = FirebaseDatabase.getInstance();
  48.     DatabaseReference mDatabaseReference = database.getReference();
  49.  
  50.     @Override
  51.     protected void onCreate(Bundle savedInstanceState) {
  52.         super.onCreate(savedInstanceState);
  53.         setContentView(R.layout.activity_login);
  54.         Log.e("Login CheckPoint","LoginActivity started");
  55.         //check Internet Connection
  56.         new CheckInternetConnection(this).checkConnection();
  57.  
  58.         Typeface typeface = ResourcesCompat.getFont(this, R.font.blacklist);
  59.         appname = findViewById(R.id.appname);
  60.         appname.setTypeface(typeface);
  61.  
  62.         edtemail= findViewById(R.id.email);
  63.         edtpass= findViewById(R.id.password);
  64.  
  65.         Bundle registerinfo=getIntent().getExtras();
  66.         if (registerinfo!=null) {
  67.                 edtemail.setText(registerinfo.getString("email"));
  68.         }
  69.  
  70.         session= new UserSession(getApplicationContext());
  71.  
  72.         requestQueue = Volley.newRequestQueue(LoginActivity.this);//Creating the RequestQueue
  73.  
  74.         //if user wants to register
  75.         registernow= findViewById(R.id.register_now);
  76.         registernow.setOnClickListener(new View.OnClickListener() {
  77.             @Override
  78.             public void onClick(View view) {
  79.                 startActivity(new Intent(LoginActivity.this,Register.class));
  80.                 finish();
  81.             }
  82.         });
  83.  
  84.         //if user forgets password
  85.         forgotpass=findViewById(R.id.forgot_pass);
  86.         forgotpass.setOnClickListener(new View.OnClickListener() {
  87.  
  88.             @Override
  89.             public void onClick(View view) {
  90.  
  91.                 startActivity(new Intent(LoginActivity.this,ForgotPassword.class));
  92.             }
  93.         });
  94.  
  95.  
  96.         //Validating login details
  97.         Button button=findViewById(R.id.login_button);
  98.  
  99.         button.setOnClickListener(new View.OnClickListener() {
  100.             @Override
  101.             public void onClick(View view) {
  102.  
  103.                 Intent loginSuccess = new Intent(LoginActivity.this, MainActivity.class);
  104.                 startActivity(loginSuccess);
  105.                 finish();
  106.  
  107.   /*              email=edtemail.getText().toString();
  108.                 pass=edtpass.getText().toString();
  109.  
  110.                 if (validateUsername(email) && validatePassword(pass)) { //Username and Password Validation
  111.  
  112.                     //Progress Bar while connection establishes
  113.  
  114.                           final KProgressHUD progressDialog=  KProgressHUD.create(LoginActivity.this)
  115.                             .setStyle(KProgressHUD.Style.SPIN_INDETERMINATE)
  116.                             .setLabel("Please wait")
  117.                             .setCancellable(false)
  118.                             .setAnimationSpeed(2)
  119.                             .setDimAmount(0.5f)
  120.                             .show();
  121.  
  122.  
  123.                     LoginRequest loginRequest = new LoginRequest(email, pass, new Response.Listener<String>() {
  124.                         @Override
  125.                         public void onResponse(String response) {
  126.  
  127.                             progressDialog.dismiss();
  128.                             // Response from the server is in the form if a JSON, so we need a JSON Object
  129.                             try {
  130.                                 JSONObject jsonObject = new JSONObject(response);
  131.                                 if (jsonObject.getBoolean("success")) {
  132.  
  133.                                     //Passing all received data from server to next activity
  134.                                     String sessionname = jsonObject.getString("name");
  135.                                     sessionmobile = jsonObject.getString("mobile");
  136.                                     String sessionemail =  jsonObject.getString("email");
  137.                                     String sessionphoto =  jsonObject.getString("url");
  138.  
  139.                                     //create shared preference and store data
  140.                                     session.createLoginSession(sessionname,sessionemail,sessionmobile,sessionphoto);
  141.  
  142.                                     //count value of firebase cart and wishlist
  143.                                     countFirebaseValues();
  144.  
  145.                                     Intent loginSuccess = new Intent(LoginActivity.this, MainActivity.class);
  146.                                     startActivity(loginSuccess);
  147.                                     finish();
  148.                                 } else {
  149.                                     if(jsonObject.getString("status").equals("INVALID"))
  150.                                         Toast.makeText(LoginActivity.this, "User Not Found", Toast.LENGTH_SHORT).show();
  151.                                     else{
  152.                                         Toast.makeText(LoginActivity.this, "Passwords Don't Match", Toast.LENGTH_SHORT).show();
  153.                                     }
  154.                                 }
  155.                             } catch (JSONException e) {
  156.                                 e.printStackTrace();
  157.                                 Toast.makeText(LoginActivity.this, "Bad Response From Server", Toast.LENGTH_SHORT).show();
  158.                             }
  159.                         }
  160.                     }, new Response.ErrorListener() {
  161.                         @Override
  162.                         public void onErrorResponse(VolleyError error) {
  163.                             progressDialog.dismiss();
  164.                             if (error instanceof ServerError)
  165.                                 Toast.makeText(LoginActivity.this, "Server Error", Toast.LENGTH_SHORT).show();
  166.                             else if (error instanceof TimeoutError)
  167.                                 Toast.makeText(LoginActivity.this, "Connection Timed Out", Toast.LENGTH_SHORT).show();
  168.                             else if (error instanceof NetworkError)
  169.                                 Toast.makeText(LoginActivity.this, "Bad Network Connection", Toast.LENGTH_SHORT).show();
  170.                         }
  171.                     });
  172.                     loginRequest.setTag(TAG);
  173.                     requestQueue.add(loginRequest);
  174.                 }
  175.  
  176.             }
  177.         });
  178.  
  179.  
  180.     }
  181.  
  182.     private void countFirebaseValues() {
  183.  
  184.         mDatabaseReference.child("cart").child(sessionmobile).addListenerForSingleValueEvent(new ValueEventListener() {
  185.             @Override
  186.             public void onDataChange(DataSnapshot dataSnapshot) {
  187.                     Log.e(dataSnapshot.getKey(),dataSnapshot.getChildrenCount() + "");
  188.                     session.setCartValue((int)dataSnapshot.getChildrenCount());
  189.             }
  190.  
  191.             @Override
  192.             public void onCancelled(DatabaseError databaseError) {
  193.  
  194.             }
  195.         });
  196.  
  197.         mDatabaseReference.child("wishlist").child(sessionmobile).addListenerForSingleValueEvent(new ValueEventListener() {
  198.             @Override
  199.             public void onDataChange(DataSnapshot dataSnapshot) {
  200.                 Log.e(dataSnapshot.getKey(),dataSnapshot.getChildrenCount() + "");
  201.                 session.setWishlistValue((int)dataSnapshot.getChildrenCount());
  202.             }
  203.  
  204.             @Override
  205.             public void onCancelled(DatabaseError databaseError) {
  206.  
  207.             }
  208.         });
  209.     }
  210.  
  211.     private boolean validatePassword(String pass) {
  212.  
  213.  
  214.         if (pass.length() < 4 || pass.length() > 20) {
  215.             edtpass.setError("Password Must consist of 4 to 20 characters");
  216.             return false;
  217.         }
  218.         return true;
  219.     }
  220.  
  221.     private boolean validateUsername(String email) {
  222.  
  223.         if (email.length() < 4 || email.length() > 30) {
  224.             edtemail.setError("Email Must consist of 4 to 30 characters");
  225.             return false;
  226.         } else if (!email.matches("^[A-za-z0-9.@]+")) {
  227.             edtemail.setError("Only . and @ characters allowed");
  228.             return false;
  229.         } else if (!email.contains("@") || !email.contains(".")) {
  230.             edtemail.setError("Email must contain @ and .");
  231.             return false;
  232.         }
  233.         return true;
  234.     }
  235.  
  236.  
  237.     @Override
  238.     protected void onResume() {
  239.         super.onResume();
  240.         Log.e("Login CheckPoint","LoginActivity resumed");
  241.         //check Internet Connection
  242.         new CheckInternetConnection(this).checkConnection();
  243.  
  244.         }
  245.  
  246.     @Override
  247.     protected void onStop () {
  248.         super.onStop();
  249.         Log.e("Login CheckPoint","LoginActivity stopped");
  250.     }
  251.  
  252. */
  253.             }
  254.         });
  255.     }
  256.   @Override
  257.     public void onBackPressed() {
  258.         super.onBackPressed();
  259.         finish();
  260.     }
  261. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement