package com.chrome.codereview.utils; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import com.chrome.codereview.R; import uk.co.senab.actionbarpulltorefresh.library.ActionBarPullToRefresh; import uk.co.senab.actionbarpulltorefresh.library.Options; import uk.co.senab.actionbarpulltorefresh.library.PullToRefreshLayout; import uk.co.senab.actionbarpulltorefresh.library.listeners.OnRefreshListener; /** * Created by sergeyv on 4/6/14. */ public abstract class BaseFragment extends Fragment { private PullToRefreshLayout pullToRefreshLayout; protected abstract int getLayoutRes(); @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View layout = inflater.inflate(getLayoutRes(), container, false); pullToRefreshLayout = (PullToRefreshLayout) layout.findViewById(R.id.ptr_layout); ActionBarPullToRefresh.SetupWizard setupWizard = ActionBarPullToRefresh.from(getActivity()); setupWizard.allChildrenArePullable(); setupWizard.listener(new OnRefreshListener() { @Override public void onRefreshStarted(View view) { refresh(); } }); setupWizard.setup(pullToRefreshLayout); setupWizard.options(Options.create().scrollDistance(0.75f).build()); refresh(); return layout; } protected abstract void refresh(); protected void startProgress() { pullToRefreshLayout.setRefreshing(true); } protected void stopProgress() { pullToRefreshLayout.setRefreshComplete(); } }