package com.barcicki.trio;
import android.os.Bundle;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.widget.Button;
import com.barcicki.trio.core.TutorialAdapter;
import com.barcicki.trio.tutorial.TutorialStepTrioFragment;
import com.barcicki.trio.tutorial.TutorialStepFragment;
import com.barcicki.trio.tutorial.TutorialStepQuizFragment;
import com.viewpagerindicator.CirclePageIndicator;
public class TutorialActivity extends TrioActivity {
private TutorialAdapter mTutorialAdapter;
private ViewPager mTutorialPager;
private CirclePageIndicator mTutorialIndicator;
private Button mPrev;
private Button mNext;
@Override
protected void onCreate(Bundle arg0) {
setContentView(R.layout.tutorial);
super.onCreate(arg0);
mTutorialAdapter = new TutorialAdapter(this);
mTutorialAdapter.addFragment(TutorialStepFragment.FeatureColor.class);
mTutorialAdapter.addFragment(TutorialStepFragment.FeatureQuantity.class);
mTutorialAdapter.addFragment(TutorialStepFragment.FeatureShape.class);
mTutorialAdapter.addFragment(TutorialStepFragment.FeatureFill.class);
mTutorialAdapter.addFragment(TutorialStepTrioFragment.TrioWithThreeSharedFeatures.class);
mTutorialAdapter.addFragment(TutorialStepTrioFragment.TrioWithTwoSharedFeatures.class);
mTutorialAdapter.addFragment(TutorialStepTrioFragment.TrioWithOneSharedFeature.class);
mTutorialAdapter.addFragment(TutorialStepTrioFragment.TrioWithNoSharedFeatures.class);
mTutorialAdapter.addFragment(TutorialStepTrioFragment.WrongTrioBadColorFeatures.class);
mTutorialAdapter.addFragment(TutorialStepTrioFragment.WrongTrioBadFillFeatures.class);
mTutorialAdapter.addFragment(TutorialStepQuizFragment.class);
mTutorialPager = (ViewPager) findViewById(R.id.tutorialHolder);
mTutorialPager.setOffscreenPageLimit(3);
mTutorialPager.setAdapter(mTutorialAdapter);
mTutorialIndicator = (CirclePageIndicator) findViewById(R.id.indicator);
mTutorialIndicator.setViewPager(mTutorialPager);
final float density = getResources().getDisplayMetrics().density;
mTutorialIndicator.setRadius(9 * density);
mTutorialIndicator.setFillColor(getResources().getColor(R.color.blue));
mTutorialIndicator.setStrokeColor(getResources().getColor(R.color.black));
mTutorialIndicator.setStrokeWidth(2f);
mTutorialIndicator.setOnPageChangeListener(new OnPageChangeListener() {
public void onPageSelected(int arg0) {
updateControlVisibility();
}
public void onPageScrolled(int arg0, float arg1, int arg2) {}
public void onPageScrollStateChanged(int arg0) {}
});
mPrev = (Button) findViewById(R.id.slidePrev);
mNext = (Button) findViewById(R.id.slideNext);
}
@Override
protected void onResume() {
updateControlVisibility();
super.onResume();
}
private void updateControlVisibility() {
int pos = mTutorialPager.getCurrentItem();
int size = mTutorialAdapter.getCount();
if (pos == 0) {
mPrev.setVisibility(View.INVISIBLE);
} else {
mPrev.setVisibility(View.VISIBLE);
}
if ((pos+1) == size) {
mNext.setVisibility(View.INVISIBLE);
} else {
mNext.setVisibility(View.VISIBLE);
}
}
public void onQuitPressed(View v) {
makeClickSound();
finish();
}
public void onNextSlidePressed(View v) {
int currentPage = mTutorialPager.getCurrentItem();
int size = mTutorialAdapter.getCount();
if (currentPage < size - 1) {
makeClickSound();
mTutorialPager.setCurrentItem(currentPage + 1, true);
}
}
public void onPrevSlidePressed(View v) {
int currentPage = mTutorialPager.getCurrentItem();
if (currentPage > 0) {
makeClickSound();
mTutorialPager.setCurrentItem(currentPage - 1, true);
}
}
}