Advertisement
Guest User

RegisterActivity

a guest
Feb 18th, 2019
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.42 KB | None | 0 0
  1. package com.MemDerPack;
  2.  
  3. import android.content.Intent;
  4. import android.support.annotation.NonNull;
  5. import android.support.v7.app.AppCompatActivity;
  6. import android.os.Bundle;
  7. import android.support.v7.app.AppCompatDelegate;
  8. import android.support.v7.widget.Toolbar;
  9. import android.text.TextUtils;
  10. import android.view.View;
  11. import android.widget.Button;
  12. import android.widget.Toast;
  13.  
  14. import com.MemDerPack.Logic.SharedPref;
  15. import com.MemDerPack.R;
  16. import com.google.android.gms.tasks.OnCompleteListener;
  17. import com.google.android.gms.tasks.Task;
  18. import com.google.firebase.auth.AuthResult;
  19. import com.google.firebase.auth.FirebaseAuth;
  20. import com.google.firebase.auth.FirebaseUser;
  21. import com.google.firebase.database.DatabaseReference;
  22. import com.google.firebase.database.FirebaseDatabase;
  23. import com.google.firebase.firestore.FirebaseFirestore;
  24. import com.google.firebase.firestore.SetOptions;
  25. import com.rengwuxian.materialedittext.MaterialEditText;
  26.  
  27. import java.util.ArrayList;
  28. import java.util.HashMap;
  29. import java.util.Map;
  30.  
  31. import static com.MemDerPack.StartActivity.hideKeyboard;
  32.  
  33. public class RegisterActivity extends AppCompatActivity {
  34.  
  35.     // User data.
  36.     MaterialEditText username, email, password;
  37.  
  38.     // Activity element.
  39.     Button btn_register;
  40.  
  41.     // Firebase variables.
  42.     FirebaseAuth auth;
  43.     DatabaseReference reference;
  44.     DatabaseReference referenceSeen;
  45.  
  46.     // For nightmode.
  47.     SharedPref sharedPref;
  48.  
  49.     @Override
  50.     protected void onCreate(Bundle savedInstanceState) {
  51.  
  52.         // Setting theme.
  53.         sharedPref = new SharedPref(this);
  54.         if (sharedPref.loadNightModeState()) {
  55.             setTheme(R.style.AppThemeDark);
  56.         } else {
  57.             setTheme(R.style.AppTheme);
  58.         }
  59.  
  60.         // Creating activity.
  61.         super.onCreate(savedInstanceState);
  62.         setContentView(R.layout.activity_register);
  63.  
  64.         // Creating toolbar.
  65.         Toolbar toolbar = findViewById(R.id.toolbar);
  66.         setSupportActionBar(toolbar);
  67.         getSupportActionBar().setTitle("Register");
  68.         getSupportActionBar().setDisplayHomeAsUpEnabled(true);
  69.         toolbar.setNavigationOnClickListener(new View.OnClickListener() {
  70.             @Override
  71.             public void onClick(View v) {
  72.                 Intent i = new Intent(RegisterActivity.this, StartActivity.class);
  73.                 startActivity(i);
  74.                 finish();
  75.                 overridePendingTransition(R.anim.right_to_left_1, R.anim.right_to_left_2);
  76.                 //  startActivity(new Intent(MessageActivity.this, ChatsActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
  77.             }
  78.         });
  79.  
  80.         // Associating variables.
  81.         username = findViewById(R.id.username);
  82.         email = findViewById(R.id.email);
  83.         password = findViewById(R.id.password);
  84.         btn_register = findViewById(R.id.btn_register);
  85.  
  86.         // Initializing auth.
  87.         auth = FirebaseAuth.getInstance();
  88.  
  89.         // Listening the button click.
  90.         btn_register.setOnClickListener(new View.OnClickListener() {
  91.             @Override
  92.             public void onClick(View v) {
  93.  
  94.                 btn_register.setEnabled(false);
  95.  
  96.                 findViewById(R.id.loadingPanel).setVisibility(View.VISIBLE);
  97.  
  98.                 hideKeyboard(RegisterActivity.this);
  99.  
  100.                 // Getting user data to string.
  101.                 String txt_username = username.getText().toString();
  102.                 String txt_email = email.getText().toString();
  103.                 String txt_password = password.getText().toString();
  104.  
  105.                 // Check if data is ok and if yes registering the user.
  106.                 if (TextUtils.isEmpty(txt_username) || TextUtils.isEmpty(txt_email) || TextUtils.isEmpty(txt_password)) {
  107.                     findViewById(R.id.loadingPanel).setVisibility(View.GONE);
  108.                     Toast.makeText(RegisterActivity.this, "All fields are required", Toast.LENGTH_SHORT).show();
  109.                     btn_register.setEnabled(true);
  110.  
  111.                 } else if (txt_password.length() < 6) {
  112.                     findViewById(R.id.loadingPanel).setVisibility(View.GONE);
  113.                     Toast.makeText(RegisterActivity.this, "Password must be at least 6 characters", Toast.LENGTH_SHORT).show();
  114.                     btn_register.setEnabled(true);
  115.                 } else {
  116.                     register(txt_username, txt_email, txt_password);
  117.                 }
  118.             }
  119.         });
  120.     }
  121.  
  122.     // Register method.
  123.     private void register(final String username, String email, String password) {
  124.         auth.createUserWithEmailAndPassword(email, password)
  125.                 .addOnCompleteListener(new OnCompleteListener<AuthResult>() {
  126.                     @Override
  127.                     public void onComplete(@NonNull Task<AuthResult> task) {
  128.                         if (task.isSuccessful()) {
  129.  
  130.                             // Initializing variables.
  131.                             FirebaseUser firebaseUser = auth.getCurrentUser();
  132.                             assert firebaseUser != null;
  133.                             final String userid = firebaseUser.getUid();
  134.  
  135.                             reference = FirebaseDatabase.getInstance().getReference("Users").child(userid);
  136.                             referenceSeen = FirebaseDatabase.getInstance().getReference("Users").child(userid).child("Categories_seen");
  137.  
  138.                             ArrayList<Integer> preferences = new ArrayList<>();
  139.                             for (int i = 0; i < LoadActivity.categories.size(); i++) {
  140.                                 preferences.add(0);
  141.                             }
  142.  
  143.                             HashMap<String, Integer> seen = new HashMap<>();
  144.  
  145.                             seen = LoadActivity.numberOfMemesInBuffer;
  146.  
  147. //                            Iterator it = seen.entrySet().iterator();
  148. //                            while (it.hasNext()) {
  149. //                                Map.Entry pair = (Map.Entry) it.next();
  150. //                                pair.setValue(0);
  151. //                            }
  152.  
  153.  
  154.                             // Initializing hashmap to send.
  155.                             final Map<String, Object> hashMap = new HashMap<>();
  156.                             hashMap.put("Categories_seen", seen);
  157.                             hashMap.put("id", userid);
  158.                             hashMap.put("username", username);
  159.                             hashMap.put("imageURL", "default");
  160.                             hashMap.put("preferences", preferences.toString());
  161.  
  162.  
  163.                             FirebaseFirestore.getInstance().document("Users/"+userid).set(hashMap);
  164.  
  165.  
  166.  
  167.                             // Send the hashmap and close the form.
  168.                             final HashMap<String, Integer> finalSeen = seen;
  169.                             reference.setValue(hashMap).addOnCompleteListener(new OnCompleteListener<Void>() {
  170.                                 @Override
  171.                                 public void onComplete(@NonNull Task<Void> task) {
  172.                                     if (task.isSuccessful()) {
  173.  
  174.  
  175.  
  176.                                         findViewById(R.id.loadingPanel).setVisibility(View.GONE);
  177.                                         Intent intent = new Intent(RegisterActivity.this, ChatsActivity.class);
  178.                                         intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
  179.                                         startActivity(intent);
  180.                                         finish();
  181.                                     }
  182.                                 }
  183.                             });
  184.  
  185.                             // Send the hashmap of seen urls
  186.                             referenceSeen.setValue(seen);
  187.                         } else {
  188.                             findViewById(R.id.loadingPanel).setVisibility(View.GONE);
  189.                             Toast.makeText(RegisterActivity.this, "You can't register with this email or password", Toast.LENGTH_SHORT).show();
  190.                             btn_register.setEnabled(true);
  191.                         }
  192.                     }
  193.                 });
  194.     }
  195.  
  196.     @Override
  197.     public void onBackPressed() {
  198.         //super.onBackPressed();
  199.         Intent i = new Intent(RegisterActivity.this, StartActivity.class);
  200.         startActivity(i);
  201.         finish();
  202.         overridePendingTransition(R.anim.right_to_left_1, R.anim.right_to_left_2);
  203.     }
  204.  
  205.  
  206. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement