I have a problem regarding onActivityResult. First, I opened the Add New Message Fragment to select the image. When I select the image, it doesn't return the result to my current fragment. I put onActivityResult in both my MainActivity and AddMessageFragment but it doesn't call the result in my fragment. My MainActivity is used to set up the Navigation Controller. I use Matisse library for my image picker. Can someone please help me with me? Been stuck for the whole day with this issue.
MainActivity
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
}
AddMessageFragment
@OnClick({R.id.addImage})
public void openGallery()
{
    permission.addOnStorageListener(new Permission.OnStorageSuccess()
    {
        @Override
        public void OnStorageSuccess()
        {
            permission.requestCamera();
        }
    });
    permission.addOnCameraListener(new Permission.OnCameraSuccess()
    {
        @Override
        public void OnCameraSuccess()
        {
            Matisse.from(getActivity())
                    .choose(MimeType.of(MimeType.JPEG, MimeType.PNG))
                    .countable(false)
                    .capture(true)
                    .captureStrategy(new CaptureStrategy(true, "com.gprop.users.fileprovider"))
                    .maxSelectable(1)
                    .restrictOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT)
                    .thumbnailScale(0.85f)
                    .imageEngine(new Glide4Engine())
                    .originalEnable(false)
                    .forResult(99);
        }
    });
    permission.requestStorage();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if(requestCode == 99 && resultCode == Main.RESULT_OK)
    {
            mSelected = Matisse.obtainPathResult(data);
            if(mSelected.size() > 0)
            {
                Glide.with(this).load(mSelected.get(0)).into(addImage);
                Luban.compress(new File(mSelected.get(0)), getActivity().getFilesDir())
                        .putGear(Luban.THIRD_GEAR)
                        .asObservable()
                        .subscribe(new Consumer<File>()
                        {
                            @Override
                            public void accept(File file) throws Exception
                            {
                                newfile = file;
                            }
                        }, new Consumer<Throwable>()
                        {
                            @Override
                            public void accept(Throwable throwable) throws Exception
                            {
                                throwable.printStackTrace();
                                Toast.makeText(getActivity(), throwable.getMessage(), Toast.LENGTH_SHORT).show();
                            }
                        });
            }
            else
            {
                Toast.makeText(getActivity(), "No image selected", Toast.LENGTH_SHORT).show();
            }
        }
}

 
     
     
    