package com.mhacks.android.pong; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animation.ObjectAnimator; import android.app.Activity; import android.util.Log; import android.view.View; import uk.co.senab.actionbarpulltorefresh.library.HeaderTransformer; /** * Created by boztalay on 1/14/14. */ public class PongHeaderTransformer extends HeaderTransformer { private static final long FADE_IN_OUT_DURATION = 150; private View mHeaderView; private PongPlayer mPongPlayer; @Override public void onViewCreated(Activity activity, View headerView) { mHeaderView = headerView; mPongPlayer = new PongPlayer(mHeaderView); } @Override public void onPulled(float percentagePulled) { mPongPlayer.onPulled(percentagePulled); } @Override public void onRefreshStarted() { Log.d("PongHeaderTransformer", "onRefreshStarted"); mPongPlayer.startPlaying(); } @Override public boolean showHeaderView() { final boolean changeVis = mHeaderView.getVisibility() != View.VISIBLE; if (changeVis) { mPongPlayer.resetGamePieces(); mHeaderView.setVisibility(View.VISIBLE); ObjectAnimator.ofFloat(mHeaderView, "alpha", 0f, 1f).setDuration(FADE_IN_OUT_DURATION).start(); } Log.d("PongHeaderTransformer", "showHeaderView: " + changeVis); return changeVis; } @Override public boolean hideHeaderView() { final boolean changeVis = mHeaderView.getVisibility() == View.VISIBLE; if (changeVis) { Animator animator = ObjectAnimator.ofFloat(mHeaderView, "alpha", 1f, 0f); animator.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { mHeaderView.setVisibility(View.GONE); mPongPlayer.stopPlaying(); } }); animator.setDuration(FADE_IN_OUT_DURATION).start(); } Log.d("PongHeaderTransformer", "hideHeaderView: " + changeVis); return changeVis; } }