package com.evernote.android.demo.fragment;
import android.annotation.TargetApi;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.support.v4.widget.SwipeRefreshLayout;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.evernote.android.demo.R;
/**
* @author rwondratschek
*/
public abstract class AbstractContainerFragment extends Fragment {
protected SwipeRefreshLayout mSwipeRefreshLayout;
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_abstract_container, container, false);
mSwipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipeRefreshLayout);
mSwipeRefreshLayout.setOnRefreshListener(mOnRefreshListener);
view.findViewById(R.id.fragment_container).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mSwipeRefreshLayout.setRefreshing(false);
}
});
view.findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onFabClick();
}
});
if (savedInstanceState == null) {
mSwipeRefreshLayout.postDelayed(new Runnable() {
@Override
public void run() {
refresh();
}
}, 200L);
}
return view;
}
public void refresh() {
mSwipeRefreshLayout.setRefreshing(true);
loadData();
}
protected abstract void loadData();
public abstract void onFabClick();
private final SwipeRefreshLayout.OnRefreshListener mOnRefreshListener = new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
refresh();
}
};
}