Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.asap20.geosport.View;
- import android.content.ContentResolver;
- import android.content.Intent;
- import android.graphics.drawable.AnimationDrawable;
- import android.net.Uri;
- import android.os.Bundle;
- import android.os.Handler;
- import android.support.annotation.NonNull;
- import android.support.annotation.Nullable;
- import android.support.v7.app.AppCompatActivity;
- import android.view.View;
- import android.webkit.MimeTypeMap;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.ProgressBar;
- import android.widget.RelativeLayout;
- import android.widget.Spinner;
- import android.widget.Toast;
- import com.example.asap20.geosport.R;
- import com.example.asap20.geosport.model.Gelora;
- import com.google.android.gms.tasks.OnFailureListener;
- import com.google.android.gms.tasks.OnSuccessListener;
- import com.google.firebase.database.DataSnapshot;
- import com.google.firebase.database.DatabaseError;
- import com.google.firebase.database.DatabaseReference;
- import com.google.firebase.database.FirebaseDatabase;
- import com.google.firebase.database.ValueEventListener;
- import com.google.firebase.storage.FirebaseStorage;
- import com.google.firebase.storage.OnProgressListener;
- import com.google.firebase.storage.StorageReference;
- import com.google.firebase.storage.StorageTask;
- import com.google.firebase.storage.UploadTask;
- import com.squareup.picasso.Picasso;
- public class TambahGor extends AppCompatActivity {
- private final int CHOOSE_IMAGE=1;
- private long hitungId=0;
- private String id;
- private Button btnUpload, chooseImage;
- private ImageView imgPreview;
- private EditText nama, alamat, noHp, fasilitas, jamBuka, jamTutup, sewa, lokasiMap;
- private Spinner jenis, satuan;
- private ProgressBar uploadProgress;
- private Uri imgUrl;
- private StorageReference mStorageRef;
- private DatabaseReference mDatabaseRef;
- private StorageTask mUploadTask;
- private RelativeLayout relativeLayout;
- private AnimationDrawable animationDrawable;
- @Override
- protected void onCreate(@Nullable final Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_tambah_gor);
- relativeLayout = findViewById(R.id.relativeLayout);
- animationDrawable = (AnimationDrawable) relativeLayout.getBackground();
- animationDrawable.setEnterFadeDuration(5000);
- animationDrawable.setExitFadeDuration(2000);
- btnUpload = findViewById(R.id.btnUploadImage);
- chooseImage = findViewById(R.id.chooseImage);
- imgPreview = findViewById(R.id.imgPreview);
- nama = findViewById(R.id.uploadNama);
- alamat = findViewById(R.id.uploadAlamat);
- noHp = findViewById(R.id.uploadNoHp);
- fasilitas = findViewById(R.id.uploadFasilitas);
- jamBuka = findViewById(R.id.uploadJamBuka);
- jamTutup = findViewById(R.id.uploadJamTutup);
- sewa = findViewById(R.id.uploadSewa);
- lokasiMap = findViewById(R.id.uploadLokasiMap);
- jenis = findViewById(R.id.uploadJenis);
- satuan = findViewById(R.id.uploadSatuan);
- uploadProgress = findViewById(R.id.uploadProgress);
- mStorageRef = FirebaseStorage.getInstance().getReference("gor");
- mDatabaseRef = FirebaseDatabase.getInstance().getReference("gor");
- btnUpload.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (mUploadTask != null && mUploadTask.isInProgress()){
- Toast.makeText(TambahGor.this,"Upload in Progress", Toast.LENGTH_SHORT).show();
- }else{
- uploadImage();
- }
- }
- });
- chooseImage.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- showFileChoose();
- }
- });
- }
- private void showFileChoose(){
- Intent intent = new Intent();
- intent.setType("image/*");
- intent.setAction(Intent.ACTION_GET_CONTENT);
- startActivityForResult(intent, CHOOSE_IMAGE);
- }
- @Override
- protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
- super.onActivityResult(requestCode, resultCode, data);
- if (requestCode==CHOOSE_IMAGE && resultCode==RESULT_OK && data != null && data.getData() != null){
- imgUrl = data.getData();
- Picasso.with(this).load(imgUrl).into(imgPreview);
- }
- }
- private String getFileExtension(Uri uri){
- ContentResolver contentResolver = getContentResolver();
- MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
- return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri));
- }
- private void uploadImage(){
- if (imgUrl != null){
- StorageReference fileReference = mStorageRef.child(System.currentTimeMillis()+"."+getFileExtension(imgUrl));
- mUploadTask = fileReference.putFile(imgUrl)
- .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
- @Override
- public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
- Handler handler = new Handler();
- handler.postDelayed(new Runnable() {
- @Override
- public void run() {
- uploadProgress.setProgress(0);
- }
- }, 500);
- Toast.makeText(TambahGor.this,"Upload Successfully", Toast.LENGTH_SHORT).show();
- FirebaseDatabase database = FirebaseDatabase.getInstance();
- DatabaseReference databaseReference = database.getReference("gor");
- databaseReference.addListenerForSingleValueEvent(new ValueEventListener() {
- @Override
- public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
- hitungId = dataSnapshot.getChildrenCount();
- id = String.valueOf(hitungId);
- }
- @Override
- public void onCancelled(@NonNull DatabaseError databaseError) {
- }
- });
- Gelora upload = new Gelora(
- nama.getText().toString().trim(),
- alamat.getText().toString().trim(),
- jamBuka.getText().toString().trim(),
- jamTutup.getText().toString().trim(),
- noHp.getText().toString().trim(),
- Long.valueOf(sewa.getText().toString()),
- satuan.getSelectedItem().toString().trim(),
- lokasiMap.getText().toString().trim(),
- lokasiMap.getText().toString().trim(),
- taskSnapshot.getUploadSessionUri().toString(),
- fasilitas.getText().toString().trim());
- mDatabaseRef.child((jenis.getSelectedItem().toString().trim()).toLowerCase()).push().setValue(upload);
- }
- })
- .addOnFailureListener(new OnFailureListener() {
- @Override
- public void onFailure(@NonNull Exception e) {
- Toast.makeText(TambahGor.this, e.getMessage(), Toast.LENGTH_LONG).show();
- }
- })
- .addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
- @Override
- public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
- double progress = (100.0 * taskSnapshot.getBytesTransferred()/taskSnapshot.getTotalByteCount());
- uploadProgress.setProgress((int) progress);
- }
- });
- }else {
- Toast.makeText(TambahGor.this, "No File Selected", Toast.LENGTH_SHORT).show();
- }
- }
- @Override
- protected void onPause() {
- super.onPause();
- if (animationDrawable != null && animationDrawable.isRunning()){
- animationDrawable.stop();
- }
- }
- @Override
- protected void onResume() {
- super.onResume();
- if (animationDrawable != null && !animationDrawable.isRunning()){
- animationDrawable.start();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement