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

Commit 549a65b5 authored by Gil Dobjanschi's avatar Gil Dobjanschi
Browse files

Fix invalidateTransition method

Change-Id: I12d5b7256d2956007b65c8304053717dd7b9b7ef
parent 2cf17ed7
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ public abstract class Effect {

        mDurationMs = durationMs;

        mMediaItem.invalidateTransitions(this);
        mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
    }

    /**
@@ -113,7 +113,7 @@ public abstract class Effect {

        mStartTimeMs = startTimeMs;

        mMediaItem.invalidateTransitions(this);
        mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
    }

    /**
@@ -137,7 +137,7 @@ public abstract class Effect {
        mStartTimeMs = startTimeMs;
        mDurationMs = durationMs;

        mMediaItem.invalidateTransitions(this);
        mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
    }

    /**
+19 −0
Original line number Diff line number Diff line
@@ -206,6 +206,25 @@ public class MediaImageItem extends MediaItem {
        return thumbnailArray;
    }

    /*
     * {@inheritDoc}
     */
    @Override
    void invalidateTransitions(long startTimeMs, long durationMs) {
        // Check if the effect overlaps with the beginning and end transitions
        if (mBeginTransition != null) {
            if (startTimeMs < mBeginTransition.getDuration()) {
                mBeginTransition.invalidate();
            }
        }

        if (mEndTransition != null) {
            if (startTimeMs + durationMs > mDurationMs - mEndTransition.getDuration()) {
                mEndTransition.invalidate();
            }
        }
    }

    /**
     * Resize a bitmap to the specified width and height
     *
+7 −41
Original line number Diff line number Diff line
@@ -234,7 +234,7 @@ public abstract class MediaItem {
        }

        mEffects.add(effect);
        invalidateTransitions(effect);
        invalidateTransitions(effect.getStartTime(), effect.getDuration());
    }

    /**
@@ -252,7 +252,7 @@ public abstract class MediaItem {
        for (Effect effect : mEffects) {
            if (effect.getId().equals(effectId)) {
                mEffects.remove(effect);
                invalidateTransitions(effect);
                invalidateTransitions(effect.getStartTime(), effect.getDuration());
                return effect;
            }
        }
@@ -337,7 +337,7 @@ public abstract class MediaItem {
        }

        mOverlays.add(overlay);
        invalidateTransitions(overlay);
        invalidateTransitions(overlay.getStartTime(), overlay.getDuration());
    }

    /**
@@ -358,7 +358,7 @@ public abstract class MediaItem {
                if (overlay instanceof OverlayFrame) {
                    ((OverlayFrame)overlay).invalidate();
                }
                invalidateTransitions(overlay);
                invalidateTransitions(overlay.getStartTime(), overlay.getDuration());
                return overlay;
            }
        }
@@ -449,44 +449,10 @@ public abstract class MediaItem {
    /**
     * Invalidate the start and end transitions if necessary
     *
     * @param effect The effect that was added or removed
     * @param startTimeMs The start time of the effect or overlay
     * @param durationMs The duration of the effect or overlay
     */
    void invalidateTransitions(Effect effect) {
        // Check if the effect overlaps with the beginning and end transitions
        if (mBeginTransition != null) {
            if (effect.getStartTime() < mBeginTransition.getDuration()) {
                mBeginTransition.invalidate();
            }
        }

        if (mEndTransition != null) {
            if (effect.getStartTime() + effect.getDuration() > getDuration()
                    - mEndTransition.getDuration()) {
                mEndTransition.invalidate();
            }
        }
    }

    /**
     * Invalidate the start and end transitions if necessary
     *
     * @param overlay The effect that was added or removed
     */
    void invalidateTransitions(Overlay overlay) {
        // Check if the overlay overlaps with the beginning and end transitions
        if (mBeginTransition != null) {
            if (overlay.getStartTime() < mBeginTransition.getDuration()) {
                mBeginTransition.invalidate();
            }
        }

        if (mEndTransition != null) {
            if (overlay.getStartTime() + overlay.getDuration() > getDuration()
                    - mEndTransition.getDuration()) {
                mEndTransition.invalidate();
            }
        }
    }
    abstract void invalidateTransitions(long startTimeMs, long durationMs);

    /**
     * Adjust the duration transitions.
+19 −0
Original line number Diff line number Diff line
@@ -213,6 +213,25 @@ public class MediaVideoItem extends MediaItem {
        return null;
    }

    /*
     * {@inheritDoc}
     */
    @Override
    void invalidateTransitions(long startTimeMs, long durationMs) {
        // Check if the effect overlaps with the beginning and end transitions
        if (mBeginTransition != null) {
            if (startTimeMs < mBeginTransition.getDuration()) {
                mBeginTransition.invalidate();
            }
        }

        if (mEndTransition != null) {
            if (startTimeMs + durationMs > mEndBoundaryTimeMs - mEndTransition.getDuration()) {
                mEndTransition.invalidate();
            }
        }
    }

    /*
     * {@inheritDoc}
     */
+3 −3
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ public abstract class Overlay {

        mDurationMs = durationMs;

        mMediaItem.invalidateTransitions(this);
        mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
    }

    /**
@@ -122,7 +122,7 @@ public abstract class Overlay {

        mStartTimeMs = startTimeMs;

        mMediaItem.invalidateTransitions(this);
        mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
    }

    /**
@@ -139,7 +139,7 @@ public abstract class Overlay {
        mStartTimeMs = startTimeMs;
        mDurationMs = durationMs;

        mMediaItem.invalidateTransitions(this);
        mMediaItem.invalidateTransitions(mStartTimeMs, mDurationMs);
    }

    /**
Loading