package by.istin.android.xcore.plugin.pulltorefresh;
import android.database.Cursor;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.content.Loader;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import com.handmark.pulltorefresh.library.PullToRefreshAdapterViewBase;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import by.istin.android.xcore.fragment.IRefresh;
import by.istin.android.xcore.plugin.IFragmentPlugin;
/**
* Created by IstiN on 29.6.13.
*/
public class PullToRefreshListFragmentPlugin implements IFragmentPlugin {
private int pullToRefreshId;
public PullToRefreshListFragmentPlugin(int pullToRefreshId) {
this.pullToRefreshId = pullToRefreshId;
}
@Override
public void onCreateView(final Fragment fragment, View view, LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
PullToRefreshAdapterViewBase pullToRefresh = (PullToRefreshAdapterViewBase) view.findViewById(pullToRefreshId);
if (pullToRefresh == null) {
return;
}
pullToRefresh.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener() {
@Override
public void onRefresh(PullToRefreshBase refreshView) {
if (fragment != null && fragment instanceof IRefresh) {
((IRefresh)fragment).refresh();
}
}
});
}
@Override
public void onCreateLoader(Fragment fragment, Loader<Cursor> loader, int id, Bundle args) {
}
@Override
public void onLoadFinished(Fragment fragment, android.support.v4.content.Loader<Cursor> loader, Cursor cursor) {
}
@Override
public void onActivityCreated(Fragment fragment, Bundle savedInstanceState) {
}
@Override
public void onStatusResultReceiverStart(Fragment fragment, Bundle resultData) {
}
@Override
public void onStatusResultReceiverError(Fragment fragment, Exception exception) {
View view = fragment.getView();
if (view == null) {
return;
}
PullToRefreshAdapterViewBase pullToRefresh = (PullToRefreshAdapterViewBase) view.findViewById(pullToRefreshId);
if (pullToRefresh == null) {
return;
}
pullToRefresh.onRefreshComplete();
}
@Override
public void onStatusResultReceiverDone(Fragment fragment, Bundle resultData) {
View view = fragment.getView();
if (view == null) {
return;
}
PullToRefreshAdapterViewBase pullToRefresh = (PullToRefreshAdapterViewBase) view.findViewById(pullToRefreshId);
if (pullToRefresh == null) {
return;
}
pullToRefresh.onRefreshComplete();
}
@Override
public void onStatusResultReceiverCached(Fragment fragment, Bundle resultData) {
View view = fragment.getView();
if (view == null) {
return;
}
PullToRefreshAdapterViewBase pullToRefresh = (PullToRefreshAdapterViewBase) view.findViewById(pullToRefreshId);
if (pullToRefresh == null) {
return;
}
pullToRefresh.onRefreshComplete();
}
@Override
public boolean setAdapterViewImage(Fragment fragment, ImageView v, String value) {
return false;
}
@Override
public void createAdapter(Fragment fragment, BaseAdapter simpleCursorAdapter, FragmentActivity activity, Cursor cursor) {
}
}