package tk.djcrazy.MyCC98.helper;
import android.view.View;
import android.view.animation.AnimationUtils;
import tk.djcrazy.MyCC98.R;
import tk.djcrazy.MyCC98.util.ViewUtils;
/**
* Created by Ding on 13-8-17.
*/
public class LoadingModelHelper {
private View contentView;
private View loadingView;
private View emptyView;
public LoadingModelHelper(View view, final OnReloadListener listener) {
contentView = view.findViewById(R.id.loading_content);
emptyView = view.findViewById(android.R.id.empty);
loadingView = view.findViewById(R.id.pb_loading);
emptyView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loading();
listener.onReload();
}
});
}
public LoadingModelHelper(View content, View empty, View loading, final OnReloadListener listener) {
contentView = content;
emptyView = empty;
loadingView = loading;
emptyView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
loading();
listener.onReload();
}
});
}
public void loading() {
hide(contentView).hide(emptyView).show(loadingView, false);
}
public void content() {
if (!contentView.isShown()) {
hide(loadingView).hide(emptyView).show(contentView);
} else {
hide(loadingView).hide(emptyView);
}
}
public void content(boolean animate) {
if (!contentView.isShown()) {
hide(loadingView).hide(emptyView).show(contentView, animate);
} else {
hide(loadingView).hide(emptyView);
}
}
public void empty() {
hide(contentView).hide(loadingView).show(emptyView);
}
private LoadingModelHelper hide(View view) {
ViewUtils.setGone(view, true);
return this;
}
private LoadingModelHelper show(View view) {
ViewUtils.setGone(view, false);
fadeIn(view);
return this;
}
private LoadingModelHelper show(View view, boolean animate) {
ViewUtils.setGone(view, false);
if (animate) {
fadeIn(view);
}
return this;
}
private LoadingModelHelper fadeIn(View view) {
view.startAnimation(AnimationUtils.loadAnimation(contentView.getContext(),
R.anim.activity_open_enter));
return this;
}
public static interface OnReloadListener {
public void onReload();
}
}