Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.aye.chat.CreatePages;
- import android.app.ProgressDialog;
- import android.content.Context;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.net.ConnectivityManager;
- import android.net.Uri;
- import android.support.annotation.NonNull;
- import android.support.design.widget.Snackbar;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.text.Editable;
- import android.text.TextUtils;
- import android.text.TextWatcher;
- import android.view.Gravity;
- import android.view.View;
- import android.widget.Button;
- import android.widget.CheckBox;
- import android.widget.EditText;
- import android.widget.FrameLayout;
- import android.widget.TextView;
- import android.widget.Toast;
- import com.aye.chat.Pages.BasicInfo;
- import com.aye.chat.Pages.Category;
- import com.aye.chat.Pages.Home;
- import com.aye.chat.R;
- import com.bumptech.glide.Glide;
- import com.firebase.client.Firebase;
- import com.google.android.gms.tasks.OnCompleteListener;
- import com.google.android.gms.tasks.OnFailureListener;
- import com.google.android.gms.tasks.OnSuccessListener;
- import com.google.android.gms.tasks.Task;
- import com.google.firebase.analytics.FirebaseAnalytics;
- import com.google.firebase.auth.AuthResult;
- import com.google.firebase.auth.FirebaseAuth;
- import com.google.firebase.database.DatabaseError;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.iid.FirebaseInstanceId;
- import com.google.firebase.storage.FirebaseStorage;
- import com.google.firebase.storage.StorageReference;
- import com.google.firebase.storage.UploadTask;
- import org.jsoup.helper.StringUtil;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.UUID;
- import de.hdodenhof.circleimageview.CircleImageView;
- import id.zelory.compressor.Compressor;
- import id.zelory.compressor.FileUtil;
- public class Signup extends AppCompatActivity {
- private String mEmail;
- private String mUsername;
- private String mPassword;
- String mName;
- String mDesc;
- DatabaseReference userRef;
- String mSkill;
- private FirebaseAnalytics firebaseAnalytics;
- private DatabaseReference mRootRef;
- private EditText desc;
- private EditText username;
- private EditText email;
- private EditText password;
- private CircleImageView pic;
- private TextView mlogin;
- EditText name;
- private EditText confirmed_password;
- FirebaseAuth firebaseAuth;
- DatabaseReference firebaseDatabase;
- private Button sign_up;
- private DatabaseReference mUserRef;
- CheckBox agreed_license;
- ProgressDialog progressDialog;
- ProgressDialog p;
- StorageReference mStorage;
- String imageURI,image50,image100;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_signup);
- p = new ProgressDialog(this);
- mStorage = FirebaseStorage.getInstance().getReference();
- View v;
- progressDialog = new ProgressDialog(this);
- name = (EditText) findViewById(R.id.name);
- pic = (CircleImageView)findViewById(R.id.pic);
- mUserRef = FirebaseDatabase.getInstance().getReference().child("users");
- username = (EditText) findViewById(R.id.id);
- desc = (EditText) findViewById(R.id.desc);
- email = (EditText) findViewById(R.id.email);
- password = (EditText) findViewById(R.id.password);
- confirmed_password = (EditText) findViewById(R.id.cnpassword);
- firebaseAuth = FirebaseAuth.getInstance();
- firebaseAnalytics = FirebaseAnalytics.getInstance(this);
- mRootRef = FirebaseDatabase.getInstance().getReference();
- Firebase.setAndroidContext(this);
- sign_up = (Button) findViewById(R.id.btn_signup);
- pic.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent intent = new Intent();
- intent.setType("image/*");
- intent.setAction(Intent.ACTION_GET_CONTENT);
- startActivityForResult(Intent.createChooser(intent, "Select Picture"), 0);
- }
- });
- sign_up.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- System.out.println("Pressed Sign Up Button");
- verifyuserinput();
- }
- });
- userRef = FirebaseDatabase.getInstance().getReference().child("userdata");
- username.addTextChangedListener(new TextWatcher() {
- @Override
- public void beforeTextChanged(CharSequence s, int start, int count, int after) {
- }
- @Override
- public void onTextChanged(CharSequence s, int start, int before, int count) {
- }
- @Override
- public void afterTextChanged(final Editable s) {
- }
- });
- }
- private void verifyuserinput() {
- mEmail = email.getText ().toString ().trim ().toLowerCase ();
- mPassword = password.getText ().toString ().trim ();
- mDesc = desc.getText ().toString ();
- mUsername = username.getText ().toString ().toLowerCase();
- mName = name.getText ().toString ();
- final String mConfirmPassword = confirmed_password.getText ().toString ().trim ();
- System.out.println("Verifying User Input");
- userRef.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
- @Override
- public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
- System.out.println("Verifying Username");
- if (dataSnapshot.hasChild(username.getText().toString())){
- Toast.makeText(Signup.this, "Username doesn't exist", Toast.LENGTH_SHORT).show();
- }else {
- if (TextUtils.isEmpty (mEmail)) {
- Toast.makeText (Signup.this, "Email Field Is Empty", Toast.LENGTH_SHORT).show ();
- }else if (TextUtils.isEmpty (mUsername.toLowerCase())) {
- Toast.makeText (Signup.this, "Username Field Is Empty", Toast.LENGTH_SHORT).show ();
- } else if (TextUtils.isEmpty (imageURI)) {
- Toast.makeText (Signup.this, "Image Can't Be Empty. Tap On The Dog Icon To Enter Image", Toast.LENGTH_SHORT).show ();
- }
- else if (TextUtils.isEmpty (mPassword)) {
- Toast.makeText (Signup.this, "Password Field Is Empty", Toast.LENGTH_SHORT).show ();
- } else if (TextUtils.isEmpty (mConfirmPassword)) {
- Toast.makeText (Signup.this, "Confirm Password Field Is Empty", Toast.LENGTH_SHORT).show ();
- } else if (!mConfirmPassword.equals (mPassword)) {
- Toast.makeText (Signup.this, "Password Is Not Same. Check Again", Toast.LENGTH_SHORT).show ();
- } else if (TextUtils.isEmpty (mDesc)) {
- Toast.makeText (Signup.this, "Description Can't Be Empty", Toast.LENGTH_SHORT).show ();
- } else if (TextUtils.isEmpty (mUsername.toLowerCase())) {
- Toast.makeText (Signup.this, "Username Field Can't Be Empty", Toast.LENGTH_SHORT).show ();
- }else if (TextUtils.isEmpty (mName)) {
- Toast.makeText (Signup.this, "Name Field Can't Be Empty", Toast.LENGTH_SHORT).show ();
- } else {
- if (!isEmailValid (mEmail)) {
- Toast.makeText (Signup.this, "Enter A Valid Email", Toast.LENGTH_SHORT).show ();
- } else {
- progressDialog.setMessage ("Registering...");
- progressDialog.show ();
- createUser ();
- }
- }
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- private void createUser() {
- firebaseAuth.createUserWithEmailAndPassword (mEmail, mPassword).addOnCompleteListener (new OnCompleteListener<AuthResult> () {
- @Override
- public void onComplete(@NonNull Task<AuthResult> task) {
- if (!isNetworkConnected ()) {
- Toast.makeText (Signup.this, "Check Your Internet Connection..", Toast.LENGTH_SHORT).show ();
- } else if (task.isSuccessful ()) {
- userData ();
- } else {
- }
- }
- }).addOnFailureListener (new OnFailureListener () {
- @Override
- public void onFailure(@NonNull Exception e) {
- Toast.makeText (Signup.this, e.getMessage(), Toast.LENGTH_SHORT).show ();
- }
- });
- }
- boolean isEmailValid(String Editemail) {
- return android.util.Patterns.EMAIL_ADDRESS.matcher (Editemail).matches ();
- }
- private void sendVerificationEmail() {
- FirebaseAuth.getInstance ().getCurrentUser ().sendEmailVerification ();
- Intent loginActivity = new Intent (this, Category.class);
- Toast.makeText (this, "Registration Successful", Toast.LENGTH_SHORT).show ();
- }
- private void userData() {
- sendVerificationEmail ();
- final String uid = firebaseAuth.getCurrentUser ().getUid ();
- final DatabaseReference uidlink = FirebaseDatabase.getInstance().getReferenceFromUrl("https://droidchatz.firebaseio.com/").child ("users").child (uid);
- final String strangerkey = uidlink.push().getKey();
- final DatabaseReference userLink = mRootRef.child ("userdata").child (mUsername);
- uidlink.child ("username").setValue (mUsername.toLowerCase()).addOnSuccessListener(new OnSuccessListener<Void>() {
- @Override
- public void onSuccess(Void aVoid) {
- uidlink.child ("email").setValue (mEmail);
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("username",mUsername.toLowerCase());
- map.put("name",mName);
- map.put("pic",imageURI);
- map.put("pic50",image50);
- map.put("pic100",image100);
- map.put("desc", StringUtil.normaliseWhitespace(mDesc));
- map.put("uid",uid);
- map.put("skey",strangerkey);
- map.put("token", FirebaseInstanceId.getInstance().getToken());
- map.put("smode",true);
- userLink.updateChildren(map).addOnSuccessListener(new OnSuccessListener<Void>() {
- @Override
- public void onSuccess(Void aVoid) {
- progressDialog.dismiss ();
- Intent i = new Intent(Signup.this, Home.class);
- startActivity(i);
- }
- }).addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(@NonNull Exception e) {
- Toast.makeText(Signup.this, "Something Went Wrong...", Toast.LENGTH_SHORT).show();
- }
- });
- }
- });
- }
- @Override
- public void onBackPressed() {
- super.onBackPressed();
- }
- private boolean isNetworkConnected() {
- ConnectivityManager cm = (ConnectivityManager) this.getSystemService (Context.CONNECTIVITY_SERVICE);
- return cm.getActiveNetworkInfo () != null;
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode == 0) {
- if (data!=null) {
- Uri uri = data.getData();
- File file = null;
- try {
- file = FileUtil.from(this, data.getData());
- } catch (IOException e) {
- e.printStackTrace();
- }
- Bitmap compressed =new Compressor.Builder(this).setQuality(70).setCompressFormat(Bitmap.CompressFormat.JPEG).build().compressToBitmap(file);
- Bitmap compressed50 = scaleDown(compressed,120,true);
- Bitmap compressed100 = scaleDown(compressed,220,true);
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- ByteArrayOutputStream stream50 = new ByteArrayOutputStream();
- ByteArrayOutputStream stream100 = new ByteArrayOutputStream();
- compressed.compress(Bitmap.CompressFormat.PNG, 100, stream);
- compressed50.compress(Bitmap.CompressFormat.PNG, 100, stream50);
- compressed100.compress(Bitmap.CompressFormat.PNG, 100, stream100);
- byte[] OriginalByte = stream.toByteArray();
- byte[] Byte50 = stream50.toByteArray();
- byte[] Byte100 = stream100.toByteArray();
- StorageReference mStorage;
- mStorage = com.google.firebase.storage.FirebaseStorage.getInstance().getReference();
- StorageReference filepath = mStorage.child("profilepics").child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(uri.getLastPathSegment());
- StorageReference filepath2 = mStorage.child("profilepics50").child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(uri.getLastPathSegment());
- StorageReference filepath3 = mStorage.child("profilepics100").child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(UUID.randomUUID().toString()).child(uri.getLastPathSegment());
- final ProgressDialog p = new ProgressDialog(this);
- p.setMessage("Uploading Image...");
- p.show();
- filepath2.putBytes(Byte50).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- @SuppressWarnings("VisibleForTests")
- @Override
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- image50 = String.valueOf(taskSnapshot.getDownloadUrl());
- }
- });
- filepath3.putBytes(Byte100).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- @SuppressWarnings("VisibleForTests")
- @Override
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- image100 = String.valueOf(taskSnapshot.getDownloadUrl());
- }
- });
- filepath.putBytes(OriginalByte).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
- @Override
- public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
- }
- }).addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(@NonNull Exception e) {
- p.dismiss();
- }
- }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- @SuppressWarnings("VisibleForTests")
- @Override
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- imageURI = taskSnapshot.getDownloadUrl().toString();
- Glide.with(Signup.this)
- .load(image100)
- .error(R.drawable.dog)
- .placeholder(R.drawable.dog).dontAnimate()
- .into(pic);
- p.dismiss();
- }
- });
- }
- }}
- public void checkusername(final String s){
- userRef.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
- @Override
- public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
- if (dataSnapshot.child(s).exists()){
- }
- }
- @Override
- public void onCancelled(DatabaseError databaseError) {
- }
- });
- }
- public static boolean containsWhiteSpace(final String testCode){
- if(testCode != null){
- for(int i = 0; i < testCode.length(); i++){
- if(Character.isWhitespace(testCode.charAt(i))){
- return true;
- }
- }
- }
- return false;
- }
- public static Bitmap scaleDown(Bitmap realImage, float maxImageSize,
- boolean filter) {
- float ratio = Math.min(
- (float) maxImageSize / realImage.getWidth(),
- (float) maxImageSize / realImage.getHeight());
- int width = Math.round((float) ratio * realImage.getWidth());
- int height = Math.round((float) ratio * realImage.getHeight());
- Bitmap newBitmap = Bitmap.createScaledBitmap(realImage, width,
- height, filter);
- return newBitmap;
- }
- }
Add Comment
Please, Sign In to add comment