package org.theotech.ceaselessandroid.tutorial;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.animation.AlphaAnimation;
import android.view.animation.Animation;
import android.view.animation.LinearInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.TextView;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Transformation;
import org.theotech.ceaselessandroid.R;
import java.util.ArrayList;
import java.util.List;
import butterknife.Bind;
import butterknife.ButterKnife;
import jp.wasabeef.picasso.transformations.BlurTransformation;
/**
* created by travis Feb. 2016
*/
public class HTFDemoScriptureFragment extends Fragment implements HTFDemoFragment {
private static final String TAG = HTFDemoScriptureFragment.class.getSimpleName();
@Bind(R.id.verse_image)
ImageView verseImage;
@Bind(R.id.verse_image_reflection)
ImageView verseImageReflection;
@Bind(R.id.verse_title_and_share)
LinearLayout verseTitleAndShare;
@Bind(R.id.verse_title)
TextView verseTitle;
@Bind(R.id.verse_text)
TextView verseText;
@Bind(R.id.right_arrow)
TextView rightArrow;
@Bind(R.id.tool_tip_layout)
LinearLayout toolTipLayout;
@Bind(R.id.learn_from_scripture)
RelativeLayout learnFromScripture;
@Bind(R.id.swipe_to_continue)
RelativeLayout swipeToContinue;
ViewPager parentViewPager;
public HTFDemoScriptureFragment() {
// Required empty public constructor
}
public static HTFDemoScriptureFragment newInstance(ViewPager pager) {
HTFDemoScriptureFragment fragment = new HTFDemoScriptureFragment();
fragment.setParentViewPager(pager);
return fragment;
}
private void setParentViewPager(ViewPager pager) {
this.parentViewPager = pager;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// create view and bind
View view = inflater.inflate(R.layout.fragment_htfdemo_scripture, container, false);
ButterKnife.bind(this, view);
drawVerseImage();
// verse title and text
populateVerse(getString(R.string.default_verse_citation), getString(R.string.default_verse_text));
swipeToContinue.setOnClickListener(new View.OnClickListener(){
public void onClick(View view) {
int nextPage = parentViewPager.getCurrentItem() + 1;
parentViewPager.setCurrentItem(nextPage);
}
});
animate();
return view;
}
private void drawVerseImage() {
List<Transformation> transformations = new ArrayList<>();
transformations.add(new BlurTransformation(getActivity(), 25, 4));
Picasso.with(getActivity()).load(R.drawable.at_the_beach)
.fit()
.centerCrop()
.into(verseImage);
Picasso.with(getActivity()).load(R.drawable.at_the_beach)
.fit()
.centerCrop()
.transform(transformations)
.into(verseImageReflection);
}
private void populateVerse(String citation, String text) {
verseTitle.setText(citation);
verseText.setText(text);
}
private void animate() {
animateTooltip();
animateSwipeToContinue();
animateRightArrow();
}
private void animateRightArrow() {
LinearInterpolator interpolator = new LinearInterpolator();
TranslateAnimation mTrAnimation = new TranslateAnimation(
-4, 4, 0, 0);
mTrAnimation.setDuration(250);
mTrAnimation.setStartOffset(20);
mTrAnimation.setRepeatCount(-1);
mTrAnimation.setRepeatMode(Animation.REVERSE);
mTrAnimation.setInterpolator(interpolator);
rightArrow.setAnimation(mTrAnimation);
}
private void animateTooltip() {
LinearInterpolator interpolator = new LinearInterpolator();
AlphaAnimation mAlAnimation = new AlphaAnimation(0, 1);
mAlAnimation.setDuration(500);
mAlAnimation.setStartOffset(400);
mAlAnimation.setInterpolator(interpolator);
toolTipLayout.setAnimation(mAlAnimation);
}
private void animateSwipeToContinue() {
LinearInterpolator interpolator = new LinearInterpolator();
AlphaAnimation mAlAnimation = new AlphaAnimation(0, 1);
mAlAnimation.setDuration(500);
mAlAnimation.setStartOffset(1100);
mAlAnimation.setInterpolator(interpolator);
swipeToContinue.setAnimation(mAlAnimation);
}
public void onSelected() {
}
}