Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 361f6234 authored by nicolasroard's avatar nicolasroard Committed by Android (Google) Code Review
Browse files

Merge "Fix flickering in geometry panel" into gb-ub-photos-arches

parents c162c8b7 fb90fd60
Loading
Loading
Loading
Loading
+24 −15
Original line number Diff line number Diff line
@@ -386,12 +386,7 @@ public class ImageShow extends View implements OnGestureListener,
        if (mImageLoader == null) {
            return;
        }
        if (getImagePreset() != null) {
            mImageLoader.resetImageForPreset(getImagePreset(), caller);
        }
        mImageGeometryOnlyPreset = null;
        mImageFiltersOnlyPreset = null;
        invalidate();
        updateImagePresets(true);
    }

    public void updateImagePresets(boolean force) {
@@ -403,16 +398,24 @@ public class ImageShow extends View implements OnGestureListener,
            mImageLoader.resetImageForPreset(getImagePreset(), this);
        }
        if (force || mImageGeometryOnlyPreset == null) {
            mImageGeometryOnlyPreset = new ImagePreset(preset);
            mImageGeometryOnlyPreset.setDoApplyFilters(false);
            ImagePreset newPreset = new ImagePreset(preset);
            newPreset.setDoApplyFilters(false);
            if (mImageGeometryOnlyPreset == null
                    || !newPreset.same(mImageGeometryOnlyPreset)) {
                mImageGeometryOnlyPreset = newPreset;
                mGeometryOnlyImage = null;
            }
         }
        if (force || mImageFiltersOnlyPreset == null) {
            mImageFiltersOnlyPreset = new ImagePreset(preset);
            mImageFiltersOnlyPreset.setDoApplyGeometry(false);
            ImagePreset newPreset = new ImagePreset(preset);
            newPreset.setDoApplyGeometry(false);
            if (mImageFiltersOnlyPreset == null
                    || !newPreset.same(mImageFiltersOnlyPreset)) {
                mImageFiltersOnlyPreset = newPreset;
                mFiltersOnlyImage = null;
            }
        }
    }

    public void requestFilteredImages() {
        if (mImageLoader != null) {
@@ -428,12 +431,18 @@ public class ImageShow extends View implements OnGestureListener,

            updateImagePresets(false);
            if (mImageGeometryOnlyPreset != null) {
                mGeometryOnlyImage = mImageLoader.getImageForPreset(this, mImageGeometryOnlyPreset,
                bitmap = mImageLoader.getImageForPreset(this, mImageGeometryOnlyPreset,
                        showHires());
                if (bitmap != null) {
                    mGeometryOnlyImage = bitmap;
                }
            }
            if (mImageFiltersOnlyPreset != null) {
                mFiltersOnlyImage = mImageLoader.getImageForPreset(this, mImageFiltersOnlyPreset,
                bitmap = mImageLoader.getImageForPreset(this, mImageFiltersOnlyPreset,
                        showHires());
                if (bitmap != null) {
                    mFiltersOnlyImage = bitmap;
                }
            }
        }

+17 −5
Original line number Diff line number Diff line
@@ -169,7 +169,11 @@ public class ImagePreset {
            return false;
        }

        if (!mGeoData.equals(preset.mGeoData)) {
        if (mDoApplyGeometry != preset.mDoApplyGeometry) {
            return false;
        }

        if (mDoApplyGeometry && !mGeoData.equals(preset.mGeoData)) {
            return false;
        }

@@ -181,6 +185,13 @@ public class ImagePreset {
            return false;
        }

        if (mDoApplyFilters != preset.mDoApplyFilters) {
            if (mFilters.size() > 0 || preset.mFilters.size() > 0) {
                return false;
            }
        }

        if (mDoApplyFilters && preset.mDoApplyFilters) {
            for (int i = 0; i < preset.mFilters.size(); i++) {
                ImageFilter a = preset.mFilters.elementAt(i);
                ImageFilter b = mFilters.elementAt(i);
@@ -188,6 +199,7 @@ public class ImagePreset {
                    return false;
                }
            }
        }
        return true;
    }