Advertisement
Guest User

Untitled

a guest
May 31st, 2018
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.33 KB | None | 0 0
  1. package com.example.vanillatalk.vanillatalk;
  2.  
  3. import android.app.ProgressDialog;
  4. import android.content.Intent;
  5. import android.net.Uri;
  6. import android.provider.Settings;
  7. import android.support.annotation.NonNull;
  8. import android.support.v7.app.AppCompatActivity;
  9. import android.os.Bundle;
  10. import android.view.View;
  11. import android.widget.Button;
  12. import android.widget.TextView;
  13. import android.widget.Toast;
  14.  
  15. import com.google.android.gms.tasks.OnCompleteListener;
  16. import com.google.android.gms.tasks.OnFailureListener;
  17. import com.google.android.gms.tasks.Task;
  18. import com.google.firebase.auth.FirebaseAuth;
  19. import com.google.firebase.auth.FirebaseUser;
  20. import com.google.firebase.database.DataSnapshot;
  21. import com.google.firebase.database.DatabaseError;
  22. import com.google.firebase.database.DatabaseReference;
  23. import com.google.firebase.database.FirebaseDatabase;
  24. import com.google.firebase.database.ValueEventListener;
  25. import com.google.firebase.storage.FirebaseStorage;
  26. import com.google.firebase.storage.StorageReference;
  27. import com.google.firebase.storage.UploadTask;
  28. import com.squareup.picasso.Picasso;
  29. import com.theartofdev.edmodo.cropper.CropImage;
  30. import com.theartofdev.edmodo.cropper.CropImageView;
  31.  
  32. import java.util.Random;
  33.  
  34. import de.hdodenhof.circleimageview.CircleImageView;
  35.  
  36. public class SettingsActivity extends AppCompatActivity {
  37.  
  38. private DatabaseReference mUserDatabase;
  39. private FirebaseUser mCurrentUser;
  40.  
  41. private CircleImageView mDisplayImage;
  42. private TextView mName;
  43. private TextView mStatus;
  44.  
  45. private Button mStatusBtn;
  46. private Button mImageBtn;
  47.  
  48. private static final int GALLERY_PICK = 1;
  49.  
  50. private StorageReference mImageStorage;
  51.  
  52. private ProgressDialog mProgressDialog;
  53.  
  54. @Override
  55. protected void onCreate(Bundle savedInstanceState) {
  56. super.onCreate(savedInstanceState);
  57. setContentView(R.layout.activity_settings);
  58.  
  59. mDisplayImage = (CircleImageView) findViewById(R.id.settings_image);
  60. mName = (TextView) findViewById(R.id.settings_name);
  61. mStatus = (TextView) findViewById(R.id.settings_status);
  62.  
  63. mStatusBtn = (Button) findViewById(R.id.settings_status_btn);
  64. mImageBtn = (Button) findViewById(R.id.settings_image_btn);
  65.  
  66. mImageStorage = FirebaseStorage.getInstance().getReference();
  67.  
  68. mCurrentUser = FirebaseAuth.getInstance().getCurrentUser();
  69. String current_uid = mCurrentUser.getUid();
  70. mUserDatabase = FirebaseDatabase.getInstance().getReference().child("Users").child(current_uid);
  71.  
  72.  
  73. mUserDatabase.addValueEventListener(new ValueEventListener() {
  74. @Override
  75. public void onDataChange(DataSnapshot dataSnapshot) {
  76. //Toast.makeText(SettingsActivity.this, dataSnapshot.toString(), Toast.LENGTH_LONG).show();
  77.  
  78. String name = dataSnapshot.child("name").getValue().toString();
  79. String image = dataSnapshot.child("image").getValue().toString();
  80. String status = dataSnapshot.child("status").getValue().toString();
  81. String thumb_image = dataSnapshot.child("thumb_image").getValue().toString();
  82.  
  83. mName.setText(name);
  84. mStatus.setText(status);
  85.  
  86. Picasso.get().load(image).into(mDisplayImage);
  87.  
  88. }
  89.  
  90. @Override
  91. public void onCancelled(DatabaseError databaseError) {
  92.  
  93. }
  94. });
  95.  
  96. mStatusBtn.setOnClickListener(new View.OnClickListener() {
  97. @Override
  98. public void onClick(View v) {
  99.  
  100. String status_value = mStatus.getText().toString();
  101. Intent status_intent = new Intent(SettingsActivity.this, StatusActivity.class);
  102. status_intent.putExtra("status_value", status_value) ;
  103. startActivity(status_intent);
  104. }
  105. });
  106.  
  107.  
  108. mImageBtn.setOnClickListener(new View.OnClickListener() {
  109. @Override
  110. public void onClick(View v) {
  111.  
  112.  
  113. Intent galleryIntent = new Intent();
  114. galleryIntent.setType("image/*");
  115. galleryIntent.setAction(Intent.ACTION_GET_CONTENT);
  116.  
  117. startActivityForResult(Intent.createChooser(galleryIntent, "SELECT IMAGE"), GALLERY_PICK);
  118.  
  119. /*
  120. CropImage.activity()
  121. .setGuidelines(CropImageView.Guidelines.ON)
  122. .start(SettingsActivity.this);
  123. */
  124.  
  125.  
  126. }
  127. });
  128.  
  129. }
  130.  
  131. @Override
  132. protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  133. super.onActivityResult(requestCode, resultCode, data);
  134.  
  135. if(requestCode == GALLERY_PICK && resultCode == RESULT_OK){
  136. Uri imageUri = data.getData();
  137.  
  138. CropImage.activity(imageUri)
  139. .setAspectRatio(1, 1)
  140. .start(this);
  141.  
  142. //Toast.makeText(SettingsActivity.this, imageUri, Toast.LENGTH_LONG).show();
  143.  
  144. }
  145.  
  146. if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE) {
  147. CropImage.ActivityResult result = CropImage.getActivityResult(data);
  148. if (resultCode == RESULT_OK) {
  149.  
  150. mProgressDialog = new ProgressDialog(SettingsActivity.this);
  151. mProgressDialog.setTitle("Uploading Image");
  152. mProgressDialog.setMessage("Please wait while your image is being uploaded..");
  153. mProgressDialog.setCanceledOnTouchOutside(false);
  154. mProgressDialog.show();
  155.  
  156.  
  157. Uri resultUri = result.getUri();
  158.  
  159. String current_user_id = mCurrentUser.getUid();
  160. StorageReference filepath = mImageStorage.child("profile_images").child(current_user_id + ".jpg");
  161.  
  162. filepath.putFile(resultUri).addOnCompleteListener(new OnCompleteListener<UploadTask.TaskSnapshot>() {
  163. @Override
  164. public void onComplete(@NonNull Task<UploadTask.TaskSnapshot> task) {
  165. if(task.isSuccessful()){
  166.  
  167. //Toast.makeText(SettingsActivity.this, "working", Toast.LENGTH_LONG).show();
  168.  
  169. String download_url = task.getResult().getDownloadUrl().toString();
  170.  
  171. mUserDatabase.child("image").setValue(download_url).addOnCompleteListener(new OnCompleteListener<Void>() {
  172. @Override
  173. public void onComplete(@NonNull Task<Void> task) {
  174. if(task.isSuccessful()){
  175. mProgressDialog.dismiss();
  176. Toast.makeText(SettingsActivity.this, "Success in uploading.", Toast.LENGTH_LONG).show();
  177. }
  178.  
  179. else{
  180.  
  181. }
  182. }
  183. });
  184. }
  185. else {
  186. Toast.makeText(SettingsActivity.this, "Error in uploading..", Toast.LENGTH_LONG).show();
  187. mProgressDialog.dismiss();
  188. }
  189. }
  190. }).addOnFailureListener(new OnFailureListener() {
  191. @Override
  192. public void onFailure(@NonNull Exception e) {
  193. try {
  194. throw e;
  195. }
  196. catch(Exception ex) {
  197. ex.printStackTrace();
  198. }
  199. }
  200. });
  201.  
  202.  
  203. } else if (resultCode == CropImage.CROP_IMAGE_ACTIVITY_RESULT_ERROR_CODE) {
  204. Exception error = result.getError();
  205. }
  206. }
  207.  
  208. }
  209.  
  210. public static String random() {
  211. Random generator = new Random();
  212. StringBuilder randomStringBuilder = new StringBuilder();
  213. int randomLength = generator.nextInt(10);
  214. char tempChar;
  215. for (int i = 0; i < randomLength; i++){
  216. tempChar = (char) (generator.nextInt(96) + 32);
  217. randomStringBuilder.append(tempChar);
  218. }
  219. return randomStringBuilder.toString();
  220. }
  221. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement