Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.84 KB | None | 0 0
  1. package com.example.asap20.geosport.View;
  2.  
  3. import android.content.ContentResolver;
  4. import android.content.Intent;
  5. import android.graphics.drawable.AnimationDrawable;
  6. import android.net.Uri;
  7. import android.os.Bundle;
  8. import android.os.Handler;
  9. import android.support.annotation.NonNull;
  10. import android.support.annotation.Nullable;
  11. import android.support.v7.app.AppCompatActivity;
  12. import android.view.View;
  13. import android.webkit.MimeTypeMap;
  14. import android.widget.Button;
  15. import android.widget.EditText;
  16. import android.widget.ImageView;
  17. import android.widget.ProgressBar;
  18. import android.widget.RelativeLayout;
  19. import android.widget.Spinner;
  20. import android.widget.Toast;
  21.  
  22. import com.example.asap20.geosport.R;
  23. import com.example.asap20.geosport.model.Gelora;
  24. import com.google.android.gms.tasks.OnFailureListener;
  25. import com.google.android.gms.tasks.OnSuccessListener;
  26. import com.google.firebase.database.DataSnapshot;
  27. import com.google.firebase.database.DatabaseError;
  28. import com.google.firebase.database.DatabaseReference;
  29. import com.google.firebase.database.FirebaseDatabase;
  30. import com.google.firebase.database.ValueEventListener;
  31. import com.google.firebase.storage.FirebaseStorage;
  32. import com.google.firebase.storage.OnProgressListener;
  33. import com.google.firebase.storage.StorageReference;
  34. import com.google.firebase.storage.StorageTask;
  35. import com.google.firebase.storage.UploadTask;
  36. import com.squareup.picasso.Picasso;
  37.  
  38. public class TambahGor extends AppCompatActivity {
  39.     private final int CHOOSE_IMAGE=1;
  40.     private long hitungId=0;
  41.     private String id;
  42.  
  43.     private Button btnUpload, chooseImage;
  44.     private ImageView imgPreview;
  45.     private EditText nama, alamat, noHp, fasilitas, jamBuka, jamTutup, sewa, lokasiMap;
  46.     private Spinner jenis, satuan;
  47.     private ProgressBar uploadProgress;
  48.  
  49.     private Uri imgUrl;
  50.  
  51.     private StorageReference mStorageRef;
  52.     private DatabaseReference mDatabaseRef;
  53.  
  54.     private StorageTask mUploadTask;
  55.  
  56.     private RelativeLayout relativeLayout;
  57.     private AnimationDrawable animationDrawable;
  58.  
  59.     @Override
  60.     protected void onCreate(@Nullable final Bundle savedInstanceState) {
  61.         super.onCreate(savedInstanceState);
  62.         setContentView(R.layout.activity_tambah_gor);
  63.  
  64.         relativeLayout = findViewById(R.id.relativeLayout);
  65.         animationDrawable = (AnimationDrawable) relativeLayout.getBackground();
  66.  
  67.         animationDrawable.setEnterFadeDuration(5000);
  68.         animationDrawable.setExitFadeDuration(2000);
  69.  
  70.         btnUpload = findViewById(R.id.btnUploadImage);
  71.         chooseImage = findViewById(R.id.chooseImage);
  72.         imgPreview = findViewById(R.id.imgPreview);
  73.         nama = findViewById(R.id.uploadNama);
  74.         alamat = findViewById(R.id.uploadAlamat);
  75.         noHp = findViewById(R.id.uploadNoHp);
  76.         fasilitas = findViewById(R.id.uploadFasilitas);
  77.         jamBuka = findViewById(R.id.uploadJamBuka);
  78.         jamTutup = findViewById(R.id.uploadJamTutup);
  79.         sewa = findViewById(R.id.uploadSewa);
  80.         lokasiMap = findViewById(R.id.uploadLokasiMap);
  81.         jenis = findViewById(R.id.uploadJenis);
  82.         satuan = findViewById(R.id.uploadSatuan);
  83.         uploadProgress = findViewById(R.id.uploadProgress);
  84.  
  85.         mStorageRef = FirebaseStorage.getInstance().getReference("gor");
  86.         mDatabaseRef = FirebaseDatabase.getInstance().getReference("gor");
  87.  
  88.         btnUpload.setOnClickListener(new View.OnClickListener() {
  89.             @Override
  90.             public void onClick(View v) {
  91.                 if (mUploadTask != null && mUploadTask.isInProgress()){
  92.                     Toast.makeText(TambahGor.this,"Upload in Progress", Toast.LENGTH_SHORT).show();
  93.                 }else{
  94.                     uploadImage();
  95.                 }
  96.             }
  97.         });
  98.  
  99.         chooseImage.setOnClickListener(new View.OnClickListener() {
  100.             @Override
  101.             public void onClick(View v) {
  102.                 showFileChoose();
  103.             }
  104.         });
  105.     }
  106.  
  107.     private void showFileChoose(){
  108.         Intent intent = new Intent();
  109.         intent.setType("image/*");
  110.         intent.setAction(Intent.ACTION_GET_CONTENT);
  111.         startActivityForResult(intent, CHOOSE_IMAGE);
  112.     }
  113.  
  114.     @Override
  115.     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
  116.         super.onActivityResult(requestCode, resultCode, data);
  117.         if (requestCode==CHOOSE_IMAGE && resultCode==RESULT_OK && data != null && data.getData() != null){
  118.             imgUrl = data.getData();
  119.  
  120.             Picasso.with(this).load(imgUrl).into(imgPreview);
  121.         }
  122.     }
  123.  
  124.     private String getFileExtension(Uri uri){
  125.         ContentResolver contentResolver = getContentResolver();
  126.         MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
  127.         return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri));
  128.     }
  129.  
  130.     private void uploadImage(){
  131.         if (imgUrl != null){
  132.             StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()+"."+getFileExtension(imgUrl));
  133.             mUploadTask = fileReference.putFile(imgUrl)
  134.                     .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
  135.                         @Override
  136.                         public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
  137.                             Handler handler = new Handler();
  138.                             handler.postDelayed(new Runnable() {
  139.                                 @Override
  140.                                 public void run() {
  141.                                     uploadProgress.setProgress(0);
  142.                                 }
  143.                             }, 500);
  144.                             Toast.makeText(TambahGor.this,"Upload Successfully", Toast.LENGTH_SHORT).show();
  145.                             FirebaseDatabase database = FirebaseDatabase.getInstance();
  146.                             DatabaseReference databaseReference = database.getReference("gor");
  147.                             databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
  148.                                 @Override
  149.                                 public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
  150.                                     hitungId = dataSnapshot.getChildrenCount();
  151.                                     id = String.valueOf(hitungId);
  152.                                 }
  153.  
  154.                                 @Override
  155.                                 public void onCancelled(@NonNull DatabaseError databaseError) {
  156.  
  157.                                 }
  158.                             });
  159.                             Gelora upload = new Gelora(
  160.                                     nama.getText().toString().trim(),
  161.                                     alamat.getText().toString().trim(),
  162.                                     jamBuka.getText().toString().trim(),
  163.                                     jamTutup.getText().toString().trim(),
  164.                                     noHp.getText().toString().trim(),
  165.                                     Long.valueOf(sewa.getText().toString()),
  166.                                     satuan.getSelectedItem().toString().trim(),
  167.                                     lokasiMap.getText().toString().trim(),
  168.                                     lokasiMap.getText().toString().trim(),
  169.                                     taskSnapshot.getUploadSessionUri().toString(),
  170.                                     fasilitas.getText().toString().trim());
  171.  
  172.                             mDatabaseRef.child((jenis.getSelectedItem().toString().trim()).toLowerCase()).push().setValue(upload);
  173.                         }
  174.                     })
  175.             .addOnFailureListener(new OnFailureListener() {
  176.                 @Override
  177.                 public void onFailure(@NonNull Exception e) {
  178.                     Toast.makeText(TambahGor.this, e.getMessage(), Toast.LENGTH_LONG).show();
  179.                 }
  180.             })
  181.             .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
  182.                 @Override
  183.                 public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
  184.                     double progress = (100.0 * taskSnapshot.getBytesTransferred()/taskSnapshot.getTotalByteCount());
  185.                     uploadProgress.setProgress((int) progress);
  186.                 }
  187.             });
  188.         }else {
  189.             Toast.makeText(TambahGor.this, "No File Selected", Toast.LENGTH_SHORT).show();
  190.         }
  191.     }
  192.  
  193.     @Override
  194.     protected void onPause() {
  195.         super.onPause();
  196.         if (animationDrawable != null && animationDrawable.isRunning()){
  197.             animationDrawable.stop();
  198.         }
  199.     }
  200.  
  201.     @Override
  202.     protected void onResume() {
  203.         super.onResume();
  204.         if (animationDrawable != null && !animationDrawable.isRunning()){
  205.             animationDrawable.start();
  206.         }
  207.     }
  208. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement