package com.wangdaye.mysplash.common.ui.transition;
import android.content.Context;
import android.graphics.Rect;
import android.os.Build;
import android.support.annotation.RequiresApi;
import android.transition.ChangeBounds;
import android.transition.TransitionValues;
import android.util.AttributeSet;
import com.wangdaye.mysplash.Mysplash;
import com.wangdaye.mysplash.common.data.entity.unsplash.Photo;
import com.wangdaye.mysplash.common.ui.widget.freedomSizeView.FreedomImageView;
/**
* Cover transition.
*
* This transition is working for {@link com.wangdaye.mysplash.photo.view.activity.PhotoActivity},
* it is responsible of the animation of photo image.
*
* */
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class CoverTransition extends ChangeBounds {
private Context context;
private static final String PROPNAME_BOUNDS = "android:changeBounds:bounds";
public CoverTransition(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
}
@Override
public void captureEndValues(TransitionValues transitionValues) {
super.captureEndValues(transitionValues);
Photo photo = Mysplash.getInstance().getPhoto();
if (photo != null) {
int screenWidth = context.getResources().getDisplayMetrics().widthPixels;
int[] sizes = FreedomImageView.getMeasureSize(
context, screenWidth, photo.width, photo.height, true);
Rect bounds = (Rect) transitionValues.values.get(PROPNAME_BOUNDS);
bounds.left = 0;
bounds.top = 0;
bounds.right = sizes[0];
bounds.bottom = sizes[1];
transitionValues.values.put(PROPNAME_BOUNDS, bounds);
}
}
}