Advertisement
IlhamFadil

HEHE

Jul 10th, 2020
1,109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.49 KB | None | 0 0
  1. package id.yongki.layananqta;
  2.  
  3. import androidx.annotation.NonNull;
  4. import androidx.annotation.Nullable;
  5. import androidx.appcompat.app.AppCompatActivity;
  6. import androidx.core.app.ActivityCompat;
  7. import androidx.core.content.ContextCompat;
  8.  
  9. import android.Manifest;
  10. import android.app.Activity;
  11. import android.content.Intent;
  12. import android.content.pm.PackageManager;
  13. import android.database.Cursor;
  14. import android.graphics.Bitmap;
  15. import android.graphics.BitmapFactory;
  16. import android.graphics.drawable.BitmapDrawable;
  17. import android.net.Uri;
  18. import android.os.Bundle;
  19. import android.provider.MediaStore;
  20. import android.util.Log;
  21. import android.view.View;
  22. import android.widget.Button;
  23. import android.widget.EditText;
  24. import android.widget.ImageView;
  25. import android.widget.ProgressBar;
  26. import android.widget.TextView;
  27. import android.widget.Toast;
  28.  
  29. import com.google.android.gms.tasks.Continuation;
  30. import com.google.android.gms.tasks.OnCompleteListener;
  31. import com.google.android.gms.tasks.OnFailureListener;
  32. import com.google.android.gms.tasks.OnSuccessListener;
  33. import com.google.android.gms.tasks.Task;
  34. import com.google.firebase.auth.FirebaseAuth;
  35. import com.google.firebase.auth.FirebaseUser;
  36. import com.google.firebase.firestore.DocumentReference;
  37. import com.google.firebase.firestore.FieldPath;
  38. import com.google.firebase.firestore.FirebaseFirestore;
  39. import com.google.firebase.firestore.QuerySnapshot;
  40. import com.google.firebase.storage.FirebaseStorage;
  41. import com.google.firebase.storage.StorageReference;
  42. import com.google.firebase.storage.UploadTask;
  43.  
  44. import org.w3c.dom.Document;
  45.  
  46. import java.io.ByteArrayOutputStream;
  47. import java.util.HashMap;
  48. import java.util.Map;
  49. import java.util.Objects;
  50.  
  51. public class FormBiodataActivity extends AppCompatActivity {
  52.  
  53.     EditText etnama, etnohp, etalamat;
  54.     TextView labelChangePhoto;
  55.     ImageView photo;
  56.     ProgressBar uploadProgress;
  57.     String imageUrl;
  58.     FirebaseFirestore db = FirebaseFirestore.getInstance();
  59.     FirebaseUser mUser = FirebaseAuth.getInstance().getCurrentUser();
  60.     FirebaseStorage storage = FirebaseStorage.getInstance();
  61.  
  62.     final int GALLERY_REQUEST_CODE = 111;
  63.     final int REQUEST_GALLERY = 222;
  64.  
  65.     @Override
  66.     protected void onCreate(Bundle savedInstanceState) {
  67.         super.onCreate(savedInstanceState);
  68.         setContentView(R.layout.activity_form_biodata);
  69.  
  70.         etnama = findViewById(R.id.fb_etnama);
  71.         etnohp = findViewById(R.id.fb_etnohp);
  72.         etalamat = findViewById(R.id.fb_etalamat);
  73.         photo = findViewById(R.id.biodata_imgProfile);
  74.         labelChangePhoto = findViewById(R.id.biodata_labelChangePhoto);
  75.         uploadProgress = findViewById(R.id.upload_progress);
  76.         Button nextBtn = findViewById(R.id.fb_nextbtn);
  77.  
  78.         requestGalleryPermission();
  79.  
  80.         nextBtn.setOnClickListener(new View.OnClickListener() {
  81.             @Override
  82.             public void onClick(View v) {
  83.                 String nama = etnama.getText().toString();
  84.                 String nohp = etnohp.getText().toString();
  85.                 String alamat = etalamat.getText().toString();
  86.                 String email = mUser.getEmail();
  87.  
  88.                 //membuat data user ke firestore
  89.                 Map<String, Object> user = new HashMap<>();
  90.                 user.put("nama", nama);
  91.                 user.put("email", email);
  92.                 user.put("nohp", nohp);
  93.                 user.put("alamat", alamat);
  94.                 user.put("profilePic", imageUrl);
  95.                 db.collection("users").document(mUser.getUid()).set(user)
  96.                         .addOnSuccessListener(new OnSuccessListener<Void>() {
  97.                             @Override
  98.                             public void onSuccess(Void aVoid) {
  99.                                 Intent intent = new Intent(FormBiodataActivity.this, ListActivity.class);
  100.                                 startActivity(intent);
  101.                             }
  102.                         })
  103.                         .addOnFailureListener(new OnFailureListener() {
  104.                             @Override
  105.                             public void onFailure(@NonNull Exception e) {
  106.                                 Log.w("", "Error adding document", e);
  107.                             }
  108.                         });
  109.             }
  110.         });
  111.     }
  112.  
  113.     void setOnClickButton() {
  114.         labelChangePhoto.setOnClickListener(new View.OnClickListener() {
  115.             @Override
  116.             public void onClick(View v) {
  117.                 Intent intent = new Intent(Intent.ACTION_PICK);
  118.                 intent.setType("image/*");
  119.                 String[] mimeTypes = {"image/jpg", "image/png"};
  120.                 intent.putExtra(Intent.EXTRA_MIME_TYPES, mimeTypes);
  121.                 startActivityForResult(intent, GALLERY_REQUEST_CODE);
  122.             }
  123.         });
  124.     }
  125.  
  126.     private void requestGalleryPermission() {
  127.         if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
  128.             setOnClickButton();
  129.         } else {
  130.             ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_GALLERY);
  131.         }
  132.     }
  133.  
  134.     @Override
  135.     public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
  136.         super.onRequestPermissionsResult(requestCode, permissions, grantResults);
  137.         if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
  138.             setOnClickButton();
  139.         } else {
  140.             Toast.makeText(getApplicationContext(), "Please Accept Permission", Toast.LENGTH_LONG).show();
  141.         }
  142.     }
  143.  
  144.     @Override
  145.     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
  146.         super.onActivityResult(requestCode, resultCode, data);
  147.         if (resultCode == Activity.RESULT_OK) {
  148.             switch (requestCode) {
  149.                 case GALLERY_REQUEST_CODE:
  150.                     assert data != null;
  151.  
  152.                     Uri selectedImage = data.getData();
  153.                     String[] filePathColumn = {MediaStore.Images.Media.DATA};
  154.                     assert selectedImage != null;
  155.                     Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
  156.                     assert cursor != null;
  157.                     cursor.moveToFirst();
  158.                     int columndIndex = cursor.getColumnIndex(filePathColumn[0]);
  159.                     String imgDecodeableString = cursor.getString(columndIndex);
  160.                     cursor.close();
  161.                     photo.setImageBitmap(BitmapFactory.decodeFile(imgDecodeableString));
  162.  
  163.                     uploadProgress.setVisibility(View.VISIBLE);
  164.                     storage.getReference("profile/" + mUser.getUid() + ".jpg").putFile(Objects.requireNonNull(data.getData()))
  165.                             .continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
  166.                                 @Override
  167.                                 public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
  168.                                     if (!task.isSuccessful())
  169.                                         throw Objects.requireNonNull(task.getException());
  170.  
  171.                                     uploadProgress.setVisibility(View.GONE);
  172.                                     return storage.getReference("profile/" + mUser.getUid() + ".jpg").getDownloadUrl();
  173.                                 }
  174.                             })
  175.                             .addOnCompleteListener(new OnCompleteListener<Uri>() {
  176.                                 @Override
  177.                                 public void onComplete(@NonNull Task<Uri> task) {
  178.                                     uploadProgress.setVisibility(View.GONE);
  179.                                     if (task.isSuccessful()) {
  180.                                         Uri downloadUri = task.getResult();
  181.                                         assert downloadUri != null;
  182.                                         imageUrl = downloadUri.toString();
  183.                                     } else {
  184.                                         Toast.makeText(getApplicationContext(), "Upload Error", Toast.LENGTH_LONG).show();
  185.                                     }
  186.                                 }
  187.                             });
  188.                     break;
  189.                 default:
  190.                     break;
  191.             }
  192.         }
  193.     }
  194.  
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement