package com.florianmski.tracktoid.ui.fragments.base.pager;
import android.os.Bundle;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.astuetz.PagerSlidingTabStrip;
import com.florianmski.tracktoid.R;
import com.florianmski.tracktoid.TraktoidConstants;
import com.florianmski.tracktoid.ui.fragments.BaseFragment;
public abstract class PagerFragment extends BaseFragment implements ViewPager.OnPageChangeListener
{
protected ViewPager vp;
protected PagerSlidingTabStrip tabs;
protected String id;
protected int position;
public static Bundle getBundle(String id, int position)
{
Bundle args = new Bundle();
args.putString(TraktoidConstants.BUNDLE_ID, id);
args.putInt(TraktoidConstants.BUNDLE_POSITION, position);
return args;
}
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
if(getArguments() != null)
{
id = getArguments().getString(TraktoidConstants.BUNDLE_ID);
position = getArguments().getInt(TraktoidConstants.BUNDLE_POSITION, 0);
}
}
protected abstract PagerAdapter getPagerAdapter();
@Override
public void onActivityCreated(Bundle savedInstanceState)
{
super.onActivityCreated(savedInstanceState);
tabs.setOnPageChangeListener(this);
vp.setAdapter(getPagerAdapter());
tabs.setViewPager(vp);
vp.setCurrentItem(position);
// if position == 0, onPageSelected will not be called the first time
if(position == 0)
onPageSelected(position);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
return inflater.inflate(R.layout.fragment_pager, container, false);
}
@Override
public void onViewCreated(View view, Bundle savedInstanceState)
{
super.onViewCreated(view, savedInstanceState);
vp = (ViewPager)view.findViewById(R.id.viewPager);
tabs = (PagerSlidingTabStrip)view.findViewById(R.id.tabs);
}
@Override
public void onPageSelected(int position)
{
this.position = position;
}
@Override
public void onPageScrolled(int i, float v, int i2) {}
@Override
public void onPageScrollStateChanged(int i) {}
}