package com.luciofm.devfest.anime;
import android.annotation.TargetApi;
import android.app.Fragment;
import android.os.Build;
import android.os.Bundle;
import android.transition.support.ChangeBounds;
import android.transition.support.Scene;
import android.transition.support.Transition;
import android.transition.support.TransitionManager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
@TargetApi(Build.VERSION_CODES.KITKAT)
public class SceneTransitions extends Fragment implements View.OnClickListener {
private ViewGroup mContainer;
private TransitionManager mTxManager;
private Scene mScene1;
private Scene mScene2;
private Scene mScene3;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_part2, container, false);
mContainer = (ViewGroup) view.findViewById(R.id.container);
mTxManager = new TransitionManager();
mScene1 = Scene.getSceneForLayout(mContainer, R.layout.grid1, getActivity());
mScene1.setEnterAction(new Runnable() {
@Override
public void run() {
mScene1.getSceneRoot().findViewById(R.id.item2).setOnClickListener(SceneTransitions.this);
mScene1.getSceneRoot().findViewById(R.id.item3).setOnClickListener(SceneTransitions.this);
}
});
mScene2 = Scene.getSceneForLayout(mContainer, R.layout.grid2, getActivity());
mScene2.setEnterAction(new Runnable() {
@Override
public void run() {
mScene2.getSceneRoot().findViewById(R.id.item1).setOnClickListener(SceneTransitions.this);
mScene2.getSceneRoot().findViewById(R.id.item3).setOnClickListener(SceneTransitions.this);
}
});
mScene3 = Scene.getSceneForLayout(mContainer, R.layout.grid3, getActivity());
mScene3.setEnterAction(new Runnable() {
@Override
public void run() {
mScene3.getSceneRoot().findViewById(R.id.item1).setOnClickListener(SceneTransitions.this);
mScene3.getSceneRoot().findViewById(R.id.item2).setOnClickListener(SceneTransitions.this);
}
});
Transition transition = new ChangeBounds();
mTxManager.setTransition(mScene1, mScene2, transition);
mTxManager.setTransition(mScene1, mScene3, transition);
mTxManager.setTransition(mScene2, mScene1, transition);
mTxManager.setTransition(mScene2, mScene3, transition);
mTxManager.setTransition(mScene3, mScene1, transition);
mTxManager.setTransition(mScene3, mScene2, transition);
mScene1.enter();
return view;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.item1:
mTxManager.transitionTo(mScene1);
break;
case R.id.item2:
mTxManager.transitionTo(mScene2);
break;
case R.id.item3:
mTxManager.transitionTo(mScene3);
break;
}
}
}