Guest User

sign up

a guest
Jul 1st, 2017
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 18.04 KB | None | 0 0
  1. package com.aye.chat.CreatePages;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.content.Context;
  5. import android.content.Intent;
  6. import android.graphics.Bitmap;
  7. import android.net.ConnectivityManager;
  8. import android.net.Uri;
  9. import android.support.annotation.NonNull;
  10. import android.support.design.widget.Snackbar;
  11. import android.support.v7.app.AppCompatActivity;
  12. import android.os.Bundle;
  13. import android.text.Editable;
  14. import android.text.TextUtils;
  15. import android.text.TextWatcher;
  16. import android.view.Gravity;
  17. import android.view.View;
  18. import android.widget.Button;
  19. import android.widget.CheckBox;
  20. import android.widget.EditText;
  21. import android.widget.FrameLayout;
  22. import android.widget.TextView;
  23. import android.widget.Toast;
  24.  
  25. import com.aye.chat.Pages.BasicInfo;
  26. import com.aye.chat.Pages.Category;
  27. import com.aye.chat.Pages.Home;
  28. import com.aye.chat.R;
  29. import com.bumptech.glide.Glide;
  30. import com.firebase.client.Firebase;
  31. import com.google.android.gms.tasks.OnCompleteListener;
  32. import com.google.android.gms.tasks.OnFailureListener;
  33. import com.google.android.gms.tasks.OnSuccessListener;
  34. import com.google.android.gms.tasks.Task;
  35. import com.google.firebase.analytics.FirebaseAnalytics;
  36. import com.google.firebase.auth.AuthResult;
  37. import com.google.firebase.auth.FirebaseAuth;
  38. import com.google.firebase.database.DatabaseError;
  39. import com.google.firebase.database.DatabaseReference;
  40. import com.google.firebase.database.FirebaseDatabase;
  41. import com.google.firebase.iid.FirebaseInstanceId;
  42. import com.google.firebase.storage.FirebaseStorage;
  43. import com.google.firebase.storage.StorageReference;
  44. import com.google.firebase.storage.UploadTask;
  45.  
  46. import org.jsoup.helper.StringUtil;
  47.  
  48. import java.io.ByteArrayOutputStream;
  49. import java.io.File;
  50. import java.io.IOException;
  51. import java.util.HashMap;
  52. import java.util.Map;
  53. import java.util.UUID;
  54.  
  55. import de.hdodenhof.circleimageview.CircleImageView;
  56. import id.zelory.compressor.Compressor;
  57. import id.zelory.compressor.FileUtil;
  58.  
  59.  
  60. public class Signup extends AppCompatActivity {
  61. private String mEmail;
  62. private String mUsername;
  63. private String mPassword;
  64. String mName;
  65. String mDesc;
  66. DatabaseReference userRef;
  67. String mSkill;
  68. private FirebaseAnalytics firebaseAnalytics;
  69. private DatabaseReference mRootRef;
  70. private EditText desc;
  71. private EditText username;
  72. private EditText email;
  73. private EditText password;
  74. private CircleImageView pic;
  75. private TextView mlogin;
  76. EditText name;
  77. private EditText confirmed_password;
  78. FirebaseAuth firebaseAuth;
  79. DatabaseReference firebaseDatabase;
  80. private Button sign_up;
  81. private DatabaseReference mUserRef;
  82. CheckBox agreed_license;
  83. ProgressDialog progressDialog;
  84. ProgressDialog p;
  85. StorageReference mStorage;
  86. String imageURI,image50,image100;
  87.  
  88. @Override
  89. protected void onCreate(Bundle savedInstanceState) {
  90. super.onCreate(savedInstanceState);
  91. setContentView(R.layout.activity_signup);
  92. p = new ProgressDialog(this);
  93. mStorage = FirebaseStorage.getInstance().getReference();
  94.  
  95. View v;
  96. progressDialog = new ProgressDialog(this);
  97. name = (EditText) findViewById(R.id.name);
  98. pic = (CircleImageView)findViewById(R.id.pic);
  99.  
  100. mUserRef = FirebaseDatabase.getInstance().getReference().child("users");
  101. username = (EditText) findViewById(R.id.id);
  102. desc = (EditText) findViewById(R.id.desc);
  103. email = (EditText) findViewById(R.id.email);
  104. password = (EditText) findViewById(R.id.password);
  105. confirmed_password = (EditText) findViewById(R.id.cnpassword);
  106. firebaseAuth = FirebaseAuth.getInstance();
  107. firebaseAnalytics = FirebaseAnalytics.getInstance(this);
  108. mRootRef = FirebaseDatabase.getInstance().getReference();
  109. Firebase.setAndroidContext(this);
  110. sign_up = (Button) findViewById(R.id.btn_signup);
  111. pic.setOnClickListener(new View.OnClickListener() {
  112. @Override
  113. public void onClick(View v) {
  114. Intent intent = new Intent();
  115. intent.setType("image/*");
  116. intent.setAction(Intent.ACTION_GET_CONTENT);
  117. startActivityForResult(Intent.createChooser(intent, "Select Picture"), 0);
  118. }
  119. });
  120. sign_up.setOnClickListener(new View.OnClickListener() {
  121. @Override
  122. public void onClick(View v) {
  123. System.out.println("Pressed Sign Up Button");
  124.  
  125. verifyuserinput();
  126. }
  127. });
  128.  
  129. userRef = FirebaseDatabase.getInstance().getReference().child("userdata");
  130. username.addTextChangedListener(new TextWatcher() {
  131. @Override
  132. public void beforeTextChanged(CharSequence s, int start, int count, int after) {
  133.  
  134. }
  135.  
  136. @Override
  137. public void onTextChanged(CharSequence s, int start, int before, int count) {
  138.  
  139. }
  140.  
  141. @Override
  142. public void afterTextChanged(final Editable s) {
  143.  
  144. }
  145. });
  146.  
  147. }
  148.  
  149. private void verifyuserinput() {
  150.  
  151. mEmail = email.getText ().toString ().trim ().toLowerCase ();
  152. mPassword = password.getText ().toString ().trim ();
  153. mDesc = desc.getText ().toString ();
  154. mUsername = username.getText ().toString ().toLowerCase();
  155. mName = name.getText ().toString ();
  156. final String mConfirmPassword = confirmed_password.getText ().toString ().trim ();
  157. System.out.println("Verifying User Input");
  158. userRef.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
  159. @Override
  160. public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
  161. System.out.println("Verifying Username");
  162.  
  163. if (dataSnapshot.hasChild(username.getText().toString())){
  164. Toast.makeText(Signup.this, "Username doesn't exist", Toast.LENGTH_SHORT).show();
  165. }else {
  166. if (TextUtils.isEmpty (mEmail)) {
  167. Toast.makeText (Signup.this, "Email Field Is Empty", Toast.LENGTH_SHORT).show ();
  168. }else if (TextUtils.isEmpty (mUsername.toLowerCase())) {
  169. Toast.makeText (Signup.this, "Username Field Is Empty", Toast.LENGTH_SHORT).show ();
  170. } else if (TextUtils.isEmpty (imageURI)) {
  171. Toast.makeText (Signup.this, "Image Can't Be Empty. Tap On The Dog Icon To Enter Image", Toast.LENGTH_SHORT).show ();
  172. }
  173. else if (TextUtils.isEmpty (mPassword)) {
  174. Toast.makeText (Signup.this, "Password Field Is Empty", Toast.LENGTH_SHORT).show ();
  175. } else if (TextUtils.isEmpty (mConfirmPassword)) {
  176. Toast.makeText (Signup.this, "Confirm Password Field Is Empty", Toast.LENGTH_SHORT).show ();
  177. } else if (!mConfirmPassword.equals (mPassword)) {
  178. Toast.makeText (Signup.this, "Password Is Not Same. Check Again", Toast.LENGTH_SHORT).show ();
  179. } else if (TextUtils.isEmpty (mDesc)) {
  180. Toast.makeText (Signup.this, "Description Can't Be Empty", Toast.LENGTH_SHORT).show ();
  181. } else if (TextUtils.isEmpty (mUsername.toLowerCase())) {
  182. Toast.makeText (Signup.this, "Username Field Can't Be Empty", Toast.LENGTH_SHORT).show ();
  183. }else if (TextUtils.isEmpty (mName)) {
  184. Toast.makeText (Signup.this, "Name Field Can't Be Empty", Toast.LENGTH_SHORT).show ();
  185. } else {
  186. if (!isEmailValid (mEmail)) {
  187. Toast.makeText (Signup.this, "Enter A Valid Email", Toast.LENGTH_SHORT).show ();
  188. } else {
  189. progressDialog.setMessage ("Registering...");
  190. progressDialog.show ();
  191. createUser ();
  192. }
  193. }
  194.  
  195. }
  196. }
  197.  
  198. @Override
  199. public void onCancelled(DatabaseError databaseError) {
  200.  
  201. }
  202. });
  203.  
  204.  
  205. }
  206.  
  207. private void createUser() {
  208. firebaseAuth.createUserWithEmailAndPassword (mEmail, mPassword).addOnCompleteListener (new OnCompleteListener<AuthResult> () {
  209. @Override
  210. public void onComplete(@NonNull Task<AuthResult> task) {
  211.  
  212. if (!isNetworkConnected ()) {
  213. Toast.makeText (Signup.this, "Check Your Internet Connection..", Toast.LENGTH_SHORT).show ();
  214. } else if (task.isSuccessful ()) {
  215. userData ();
  216.  
  217. } else {
  218. }
  219. }
  220.  
  221. }).addOnFailureListener (new OnFailureListener () {
  222. @Override
  223. public void onFailure(@NonNull Exception e) {
  224. Toast.makeText (Signup.this, e.getMessage(), Toast.LENGTH_SHORT).show ();
  225. }
  226. });
  227. }
  228.  
  229. boolean isEmailValid(String Editemail) {
  230. return android.util.Patterns.EMAIL_ADDRESS.matcher (Editemail).matches ();
  231. }
  232.  
  233. private void sendVerificationEmail() {
  234. FirebaseAuth.getInstance ().getCurrentUser ().sendEmailVerification ();
  235. Intent loginActivity = new Intent (this, Category.class);
  236. Toast.makeText (this, "Registration Successful", Toast.LENGTH_SHORT).show ();
  237.  
  238. }
  239.  
  240. private void userData() {
  241. sendVerificationEmail ();
  242. final String uid = firebaseAuth.getCurrentUser ().getUid ();
  243. final DatabaseReference uidlink = FirebaseDatabase.getInstance().getReferenceFromUrl("https://droidchatz.firebaseio.com/").child ("users").child (uid);
  244. final String strangerkey = uidlink.push().getKey();
  245. final DatabaseReference userLink = mRootRef.child ("userdata").child (mUsername);
  246. uidlink.child ("username").setValue (mUsername.toLowerCase()).addOnSuccessListener(new OnSuccessListener<Void>() {
  247. @Override
  248. public void onSuccess(Void aVoid) {
  249. uidlink.child ("email").setValue (mEmail);
  250. Map<String, Object> map = new HashMap<String, Object>();
  251. map.put("username",mUsername.toLowerCase());
  252. map.put("name",mName);
  253. map.put("pic",imageURI);
  254. map.put("pic50",image50);
  255. map.put("pic100",image100);
  256. map.put("desc", StringUtil.normaliseWhitespace(mDesc));
  257. map.put("uid",uid);
  258. map.put("skey",strangerkey);
  259. map.put("token", FirebaseInstanceId.getInstance().getToken());
  260. map.put("smode",true);
  261. userLink.updateChildren(map).addOnSuccessListener(new OnSuccessListener<Void>() {
  262. @Override
  263. public void onSuccess(Void aVoid) {
  264. progressDialog.dismiss ();
  265. Intent i = new Intent(Signup.this, Home.class);
  266.  
  267.  
  268. startActivity(i);
  269. }
  270. }).addOnFailureListener(new OnFailureListener() {
  271. @Override
  272. public void onFailure(@NonNull Exception e) {
  273. Toast.makeText(Signup.this, "Something Went Wrong...", Toast.LENGTH_SHORT).show();
  274. }
  275. });
  276. }
  277. });
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285. }
  286.  
  287. @Override
  288. public void onBackPressed() {
  289. super.onBackPressed();
  290. }
  291.  
  292. private boolean isNetworkConnected() {
  293. ConnectivityManager cm = (ConnectivityManager) this.getSystemService (Context.CONNECTIVITY_SERVICE);
  294. return cm.getActiveNetworkInfo () != null;
  295. }
  296.  
  297.  
  298. @Override
  299. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  300. super.onActivityResult(requestCode, resultCode, data);
  301. if (requestCode == 0) {
  302. if (data!=null) {
  303. Uri uri = data.getData();
  304. File file = null;
  305. try {
  306. file = FileUtil.from(this, data.getData());
  307. } catch (IOException e) {
  308. e.printStackTrace();
  309. }
  310.  
  311. Bitmap compressed =new Compressor.Builder(this).setQuality(70).setCompressFormat(Bitmap.CompressFormat.JPEG).build().compressToBitmap(file);
  312. Bitmap compressed50 = scaleDown(compressed,120,true);
  313. Bitmap compressed100 = scaleDown(compressed,220,true);
  314. ByteArrayOutputStream stream = new ByteArrayOutputStream();
  315. ByteArrayOutputStream stream50 = new ByteArrayOutputStream();
  316. ByteArrayOutputStream stream100 = new ByteArrayOutputStream();
  317.  
  318. compressed.compress(Bitmap.CompressFormat.PNG, 100, stream);
  319. compressed50.compress(Bitmap.CompressFormat.PNG, 100, stream50);
  320. compressed100.compress(Bitmap.CompressFormat.PNG, 100, stream100);
  321.  
  322. byte[] OriginalByte = stream.toByteArray();
  323. byte[] Byte50 = stream50.toByteArray();
  324. byte[] Byte100 = stream100.toByteArray();
  325. StorageReference mStorage;
  326. mStorage = com.google.firebase.storage.FirebaseStorage.getInstance().getReference();
  327. 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());
  328. 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());
  329. 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());
  330.  
  331. final ProgressDialog p = new ProgressDialog(this);
  332. p.setMessage("Uploading Image...");
  333. p.show();
  334. filepath2.putBytes(Byte50).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  335. @SuppressWarnings("VisibleForTests")
  336. @Override
  337. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  338. image50 = String.valueOf(taskSnapshot.getDownloadUrl());
  339. }
  340. });
  341.  
  342. filepath3.putBytes(Byte100).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  343. @SuppressWarnings("VisibleForTests")
  344. @Override
  345. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  346. image100 = String.valueOf(taskSnapshot.getDownloadUrl());
  347.  
  348. }
  349. });
  350. filepath.putBytes(OriginalByte).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
  351. @Override
  352. public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
  353.  
  354.  
  355. }
  356. }).addOnFailureListener(new OnFailureListener() {
  357. @Override
  358. public void onFailure(@NonNull Exception e) {
  359. p.dismiss();
  360. }
  361. }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  362. @SuppressWarnings("VisibleForTests")
  363. @Override
  364. public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  365. imageURI = taskSnapshot.getDownloadUrl().toString();
  366. Glide.with(Signup.this)
  367. .load(image100)
  368. .error(R.drawable.dog)
  369. .placeholder(R.drawable.dog).dontAnimate()
  370. .into(pic);
  371. p.dismiss();
  372.  
  373. }
  374. });
  375. }
  376. }}
  377.  
  378.  
  379. public void checkusername(final String s){
  380. userRef.addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
  381. @Override
  382. public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {
  383. if (dataSnapshot.child(s).exists()){
  384.  
  385. }
  386. }
  387.  
  388. @Override
  389. public void onCancelled(DatabaseError databaseError) {
  390.  
  391. }
  392. });
  393.  
  394. }
  395.  
  396.  
  397. public static boolean containsWhiteSpace(final String testCode){
  398. if(testCode != null){
  399. for(int i = 0; i < testCode.length(); i++){
  400. if(Character.isWhitespace(testCode.charAt(i))){
  401. return true;
  402. }
  403. }
  404. }
  405. return false;
  406. }
  407. public static Bitmap scaleDown(Bitmap realImage, float maxImageSize,
  408. boolean filter) {
  409. float ratio = Math.min(
  410. (float) maxImageSize / realImage.getWidth(),
  411. (float) maxImageSize / realImage.getHeight());
  412. int width = Math.round((float) ratio * realImage.getWidth());
  413. int height = Math.round((float) ratio * realImage.getHeight());
  414.  
  415. Bitmap newBitmap = Bitmap.createScaledBitmap(realImage, width,
  416. height, filter);
  417. return newBitmap;
  418. }
  419. }
Add Comment
Please, Sign In to add comment