@Override
    public void onLoaded(Bitmap image, boolean fromMemory, boolean fromDisk) {
        super.onLoaded(image, fromMemory, fromDisk);

        if (isOutOfMemory()) {
            // TODO: pass bitmap decoding options, make several attempts
        }

        ImageView imageView = getImageView();
        if (imageView == null) return;

        if (image != null) {
            imageView.setImageBitmap(image);

            if (!fromMemory && mIsWithAnimation) {
                Animation showAnimation = new AlphaAnimation(0f, 1f);
                showAnimation.setDuration(ANIMATION_DURATION);
                imageView.startAnimation(showAnimation);
            }
        }

        // Hiding progress indicator
        View progress = getProgressView();
        if (progress != null) {
            progress.setVisibility(View.INVISIBLE);
            if (!isDisplayImageWhileProgress()) imageView.setVisibility(View.VISIBLE);
        }
    }