package shts.jp.android.nogifeed.views;
import android.content.Context;
import android.os.Looper;
import android.support.v4.widget.SwipeRefreshLayout;
import android.util.AttributeSet;
public class HackySwipeRefreshLayout extends SwipeRefreshLayout {
public HackySwipeRefreshLayout(Context context) {
super(context);
}
public HackySwipeRefreshLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
/**
* ActivityやFragmentが開放されるタイミング(onDestroyやonDestroyViewなど)で呼び出す
* AQUOSなどの一部端末でViewがレンダリングされ続けるバグを回避できる
*/
public void cleanup() {
setRefreshing(false);
destroyDrawingCache();
clearAnimation();
}
private final android.os.Handler refreshHandler = new android.os.Handler(Looper.getMainLooper());
private final Runnable refreshTask = new Runnable() {
@Override
public void run() {
HackySwipeRefreshLayout.super.setRefreshing(true);
}
};
@Override
public void setRefreshing(boolean refreshing) {
if (refreshing) {
refreshHandler.post(refreshTask);
} else {
refreshHandler.removeCallbacks(refreshTask);
super.setRefreshing(refreshing);
}
}
}