package com.nabilhachicha.kc.home.jamesclasses.viewpager; import android.os.Bundle; import android.support.v4.view.ViewPager; import android.support.v7.widget.Toolbar; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.LinearLayout; import com.nabilhachicha.kc.R; import com.nabilhachicha.kc.data.Database; import com.nabilhachicha.kc.home.DataLoaderHelper; import com.nabilhachicha.kc.io.KcObservables; import com.nabilhachicha.kc.model.Category; import com.nabilhachicha.kc.service.BackendOperations; import com.nabilhachicha.kc.view.BaseFragment; import java.util.List; import javax.inject.Inject; import rx.Observable; /** * Created by jamesscott on 02/03/15. */ public class SlidingTabsFragment extends BaseFragment implements DataLoaderHelper.ContentFlow<List<Category>> { @Inject BackendOperations mBackendOperations; @Inject Database mDatabase; private Toolbar mToolbar; private LinearLayout header; private SlidingTabLayout mSlidingTabLayout; private ViewPager mViewPager; private CategoriesPagerAdapter mAdapter; private DataLoaderHelper mRxFlowHelper; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mRxFlowHelper = new DataLoaderHelper(this); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fragment_main, container, false); return rootView; } @Override public void onViewCreated(View view, Bundle savedInstanceState) { mToolbar = (Toolbar) view.findViewById(R.id.toolbar); mToolbar.setTitle("App Name"); header = (LinearLayout) view.findViewById(R.id.header_toolbar); // mFabButton = (ImageButton) view.findViewById(R.id.fabButton); // Get the ViewPager and set it's PagerAdapter so that it can display items mViewPager = (ViewPager) view.findViewById(R.id.viewpager); mAdapter = new CategoriesPagerAdapter(getActivity().getSupportFragmentManager()); mViewPager.setAdapter(mAdapter); // Give the SlidingTabLayout the ViewPager, this must be done AFTER the ViewPager has had // it's PagerAdapter set. mSlidingTabLayout = (SlidingTabLayout) view.findViewById(R.id.sliding_tabs); mSlidingTabLayout.setViewPager(mViewPager); } @Override public void onStart() { super.onStart(); mRxFlowHelper.onStart(); } @Override public void onStop() { mRxFlowHelper.onStop(); super.onStop(); } @Override public void showError() { } @Override public void showContent(List<Category> data) { mAdapter.setCategories(data); mSlidingTabLayout.setViewPager(mViewPager); } @Override public void updateContent(List<Category> data) { } @Override public boolean isCacheAvailable() { return false; } @Override public List<Category> queryCache() { return null; } @Override public Observable<List<Category>> queryBackend() { return KcObservables.getCategories(mBackendOperations, mDatabase); } }