package pct.droid.fragments;
import android.os.Bundle;
import android.support.annotation.Nullable;
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 butterknife.ButterKnife;
import butterknife.Bind;
import pct.droid.R;
import pct.droid.activities.MainActivity;
import pct.droid.adapters.MediaPagerAdapter;
import pct.droid.base.providers.media.MediaProvider;
/**
* Fragment that contains a viewpager tabs for {@link pct.droid.fragments.MediaListFragment}
*/
public class MediaContainerFragment extends Fragment {
public static final String EXTRA_PROVIDER = "provider";
private MediaPagerAdapter mAdapter;
private MediaProvider mProvider;
private Integer mSelection = 0;
@Bind(R.id.pager)
ViewPager mViewPager;
public static MediaContainerFragment newInstance(MediaProvider provider) {
MediaContainerFragment frag = new MediaContainerFragment();
Bundle args = new Bundle();
args.putParcelable(EXTRA_PROVIDER, provider);
frag.setArguments(args);
return frag;
}
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_media_container, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ButterKnife.bind(this, view);
mProvider = getArguments().getParcelable(EXTRA_PROVIDER);
mAdapter = new MediaPagerAdapter(mProvider, getChildFragmentManager(), mProvider.getNavigation());
mViewPager.setAdapter(mAdapter);
mViewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
mSelection = position;
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
mSelection = mProvider.getDefaultNavigationIndex();
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
((MainActivity) getActivity()).updateTabs(this, mSelection);
}
public ViewPager getViewPager() {
return mViewPager;
}
public Integer getCurrentSelection() {
return mSelection;
}
}