public boolean onParentActivityResult(final int requestCode, final int resultCode, final Intent data) {
        if (imageHelper.onActivityResult(requestCode, resultCode, data)) {
            return true;
        }

        if (requestCode == SELECT_IMAGE) {
            if (resultCode == RESULT_OK) {
                final int imageIndex = data.getIntExtra(Intents.EXTRA_INDEX, -1);
                final boolean indexIsValid = imageIndex >= 0 && imageIndex < imageList.getItemCount();
                final Image image = data.getParcelableExtra(Intents.EXTRA_IMAGE);
                if (image != null && indexIsValid) {
                    imageList.updateItem(image, imageIndex);
                } else if (image != null) {
                    imageList.addItem(image);
                }
            } else if (resultCode != RESULT_CANCELED) {
                // Image capture failed, advise user
                ActivityMixin.showToast(getActivity(), getString(R.string.err_select_logimage_failed));
            }
            return true;

        }
        return false;
    }
make sure to call this method in the activites {@link android.app.Activity#onActivityResult(int, int, Intent)} method.
<br>
When this method returns true, this means that the result has been consumed. False otherwise.
main/src/main/java/cgeo/geocaching/ui/ImageListFragment.java