Comprimir una imagen antes de cargarla en Firebase Storage

Estoy tratando de comprimir una imagen antes de subirla aFirebase Storage utilizandoSiliCompressor biblioteca, pero parece que no funciona, elProgressDialog no se detiene Lo primero que hice fue seleccionar la imagen de la galería en un ImageButton haciendo clic en un ImageButton. Abajo está mi código.

imageSelect.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT);
                galleryIntent.setType("image/");
                startActivityForResult(galleryIntent, GALLERY_REQUEST);
            }
        });

---------------------------------------------------------------------

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == GALLERY_REQUEST && resultCode == RESULT_OK) {


            imageUri = data.getData();

           // imageSelect.setImageBitmap(BitmapFactory.decodeFile(imageSelectFile.getAbsolutePath()));
        //    Compressor com = Compressor.getDefault(this).compressToFile(imageFile);
           // imageSelect.setImageURI(imageUri);
            Picasso.with(c).load(imageUri).fit().into(imageSelect);

        }
    }

Así que ahora estoy teniendo un métodostartPosting() que carga datos con un clic del botón al almacenamiento de Firebase. Abajo está mi código.

 private void startPosting() {
        mProgress.setMessage("Uploading Image...");
        //Compressing an Image ....
        String stringUri= imageUri.toString();
        Uri uri_image_final;
        //String filePath = SiliCompressor.with(getApplicationContext()).compress(stringUri);
        String filePath = SiliCompressor.with(getApplicationContext()).compress(stringUri, true);
        uri_image_final = Uri.parse(filePath);
        System.out.println("Whats here :" +
                ""+ uri_image_final);

        final String title_val = mPostTitle.getText().toString().trim();
        final String desc_val = mPostDesc.getText().toString().trim();
        if (!TextUtils.isEmpty(title_val) && !TextUtils.isEmpty(desc_val) && filePath != null) {
            mProgress.show();
            StorageReference filepath = mStorage.child("BlogImages").child(uri_image_final.getLastPathSegment());
            filepath.putFile(uri_image_final).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {


                    Uri downloadUri = taskSnapshot.getDownloadUrl();
                    DatabaseReference newPost = mDatabase.push();
                    DatabaseReference c = mDatabase.push();
                    newPost.child("EventTitle").setValue(title_val);
                    newPost.child("EventDescription").setValue(desc_val);
                    newPost.child("EventImage").setValue(downloadUri.toString());
                    newPost.child("PostId").setValue(c);



                    mProgress.dismiss();
                    startActivity(new Intent(PostActivity.this, MainActivity.class));


                }
            }


            );


        } else if (TextUtils.isEmpty(title_val) && TextUtils.isEmpty(desc_val) && imageUri != null) {
            mProgress.show();
            StorageReference filepath = mStorage.child("BlogImages").child(uri_image_final.getLastPathSegment());
            filepath.putFile(uri_image_final).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {


                    Uri downloadUri = taskSnapshot.getDownloadUrl();
                    DatabaseReference newPost = mDatabase.push();
                    newPost.child("EventTitle").setValue("");
                    newPost.child("EventDescription").setValue("");
                    newPost.child("EventImage").setValue(downloadUri.toString());


                    mProgress.dismiss();
                   // startActivity(new Intent(PostActivity.this, MainActivity.class));
                  Intent load=  new Intent(PostActivity.this,MainActivity.class);
                    load.putExtra(eventname,eventname);
                    startActivity(load);


                }
            }


            );

        }

        else if (!TextUtils.isEmpty(title_val) && !TextUtils.isEmpty(desc_val) && imageUri== null){

            Toast.makeText(getApplicationContext(),"Please insert an Image and Upload ! ",Toast.LENGTH_LONG).show();

        }
    }

Ahora, si ve en ese Método, mi esencia era comprimir una imagen que se carga en el ImageButton, luego se carga en la base de fuego. Esta es la línea deSilicon Compressor que intenta comprimir una imagen cargada en ImageButton.

 String filePath = SiliCompressor.with(getApplicationContext()).compress(stringUri, true);

Obtuve esta lib de este enlace de Github.https://github.com/Tourenathan-G5organisation/SiliCompressor

Entonces, ¿dónde me equivoco, porque la imagen no se carga pero quiero que se cargue mientras está comprimida?

Respuestas a la pregunta(2)

Su respuesta a la pregunta