This is my PostActivity.java
package com.example.owner.kp;
import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog; import android.content.ContentResolver; import android.content.Intent; import android.graphics.Bitmap; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.webkit.MimeTypeMap; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast;
import com.google.android.gms.tasks.Continuation; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.OnFailureListener; import com.google.android.gms.tasks.Task; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.database.DatabaseReference; import com.google.firebase.database.FirebaseDatabase; import com.google.firebase.storage.FirebaseStorage; import com.google.firebase.storage.StorageReference; import com.google.firebase.storage.StorageTask; import com.theartofdev.edmodo.cropper.CropImage;
import java.util.HashMap;
public class PostActivity extends AppCompatActivity {
    Uri imageUri;
    String myUrl = "";
    StorageTask uploadTask;
    StorageReference storageReference;
    ImageView close, image_added;
    TextView post;
    EditText deskripsi;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate( savedInstanceState );
        setContentView( R.layout.activity_post );
        close = findViewById( R.id.close );
        close = findViewById( R.id.image_added );
        post = findViewById( R.id.post );
        deskripsi = findViewById( R.id.deskripsi );
        storageReference = FirebaseStorage.getInstance().getReference("posts");
        close.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity( new Intent( PostActivity.this, UserIdxActivity.class ) );
                finish();
            }
        } );
        post.setOnClickListener( new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                uploadImage();
            }
        } );
        CropImage.activity()
                .setAspectRatio( 1,1 )
                .start( PostActivity.this );
    }
    private String getFileExtension(Uri uri)
    {
        ContentResolver contentResolver = getContentResolver();
        MimeTypeMap mime = MimeTypeMap.getSingleton();
        return mime.getExtensionFromMimeType( contentResolver.getType( uri ) );
    }
    private void uploadImage()
    {
        final ProgressDialog progressDialog = new ProgressDialog( this );
        progressDialog.setMessage( "Posting" );
        progressDialog.show();
        if (imageUri != null)
        {
            final StorageReference filereference = storageReference.child( System.currentTimeMillis()
                    + "." + getFileExtension( imageUri ));
            uploadTask = filereference.putFile( imageUri );
            uploadTask.continueWithTask( new Continuation() {
                @Override
                public Object then(@NonNull Task task) throws Exception {
                    if (!task.isSuccessful())
                    {
                        throw task.getException();
                    }
                    return filereference.getDownloadUrl();
                }
            } ).addOnCompleteListener( new OnCompleteListener<Uri>() {
                @Override
                public void onComplete(@NonNull Task<Uri> task) {
                    if (task.isSuccessful())
                    {
                        Uri downloadUri = task.getResult();
                        myUrl = downloadUri.toString();
                        DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Posts");
                        String postid = reference.push().getKey();
                        HashMap<String, Object> hashMap = new HashMap<>(  );
                        hashMap.put( "postid", postid );
                        hashMap.put( "postimage", myUrl );
                        hashMap.put( "deskripsi", deskripsi.getText().toString() );
                        hashMap.put( "publisher", FirebaseAuth.getInstance().getCurrentUser().getUid() );
                        reference.child( postid ).setValue( hashMap );
                        progressDialog.dismiss();
                        startActivity( new Intent( PostActivity.this, UserIdxActivity.class ) );
                        finish();
                    }
                    else
                    {
                        Toast.makeText( PostActivity.this, "Gagal", Toast.LENGTH_SHORT ).show();
                    }
                }
            } ).addOnFailureListener( new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    Toast.makeText( PostActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT ).show();
                }
            } );
        }
        else
        {
            Toast.makeText( this, "Tidak ada gambar terpilih!", Toast.LENGTH_SHORT ).show();
        }
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
        super.onActivityResult( requestCode, resultCode, data );
        if (requestCode == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK && data!=null && data.getData()!=null)
        {
            CropImage.ActivityResult result = CropImage.getActivityResult(data);
            imageUri = result.getUri();
            image_added.setImageURI( imageUri );
        }
        else
        {
            Toast.makeText( this, "Terjadi Kesalahan", Toast.LENGTH_SHORT ).show();
            startActivity( new Intent( PostActivity.this, UserIdxActivity.class ) );
            finish();
        }
    } }
 
    