Сжатие изображения перед его загрузкой в ​​хранилище Firebase

Я пытаюсь сжать изображение перед его загрузкой вFirebase Storage с помощьюSiliCompressor библиотека, но, кажется, не работает,ProgressDialog не останавливается Сначала я выбрал изображение из галереи в кнопку ImageButton, нажав кнопку ImageButton. Ниже мой код.

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);

        }
    }

Так что теперь у меня есть методstartPosting() который загружает данные одним нажатием кнопки в хранилище Firebase. Ниже мой код.

 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();

        }
    }

Теперь, если вы видите в этом методе, моя суть заключалась в том, чтобы сжать изображение, которое загружается в ImageButton, а затем оно загружает в базу данных. Это линияSilicon Compressor который пытается сжать изображение, загруженное в ImageButton.

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

Я получил эту библиотеку по этой ссылке Github.https://github.com/Tourenathan-G5organisation/SiliCompressor

Так в чем же я не прав, пожалуйста, потому что изображение не загружается, но я хочу, чтобы оно загружалось, пока оно сжато.

Ответы на вопрос(2)

Ваш ответ на вопрос