package org.aisen.android.ui.fragment.itemview;
import android.app.Activity;
import android.view.View;
import android.widget.TextView;
import org.aisen.android.R;
import org.aisen.android.network.task.TaskException;
import org.aisen.android.support.inject.InjectUtility;
import org.aisen.android.support.inject.ViewInject;
import org.aisen.android.ui.fragment.ABaseFragment;
import org.aisen.android.ui.fragment.APagingFragment;
import java.io.Serializable;
/**
* Created by wangdan on 16/1/9.
*/
public class BasicFooterView<T extends Serializable> extends AFooterItemView<T> {
public static final int LAYOUT_RES = R.layout.comm_lay_footerview;
private View footerView;
@ViewInject(idStr = "btnMore")
TextView btnMore;
@ViewInject(idStr = "layLoading")
View layLoading;
@ViewInject(idStr = "txtLoading")
TextView txtLoading;
public BasicFooterView(Activity context, View itemView, OnFooterViewCallback callback) {
super(context, itemView, callback);
this.footerView = itemView;
InjectUtility.initInjectedView(getContext(), this, getConvertView());
btnMore.setVisibility(View.VISIBLE);
layLoading.setVisibility(View.GONE);
btnMore.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (getCallback() != null && getCallback().canLoadMore()) {
getCallback().onLoadMore();
}
}
});
}
@Override
public void onBindView(View convertView) {
}
@Override
public void onBindData(View convertView, T data, int position) {
}
@Override
public View getConvertView() {
return footerView;
}
@Override
public void onTaskStateChanged(AFooterItemView<?> footerItemView, ABaseFragment.ABaseTaskState state, TaskException exception, APagingFragment.RefreshMode mode) {
if (state == ABaseFragment.ABaseTaskState.finished) {
if (mode == APagingFragment.RefreshMode.update) {
if (layLoading.getVisibility() == View.VISIBLE) {
layLoading.setVisibility(View.GONE);
btnMore.setVisibility(View.VISIBLE);
}
}
}
else if (state == ABaseFragment.ABaseTaskState.prepare) {
if (mode == APagingFragment.RefreshMode.update) {
txtLoading.setText(loadingText());
layLoading.setVisibility(View.VISIBLE);
btnMore.setVisibility(View.GONE);
btnMore.setText(moreText());
}
}
else if (state == ABaseFragment.ABaseTaskState.success) {
if ((mode == APagingFragment.RefreshMode.update || mode == APagingFragment.RefreshMode.reset)) {
if (!getCallback().canLoadMore()) {
btnMore.setText(endpagingText());
} else {
btnMore.setText(moreText());
}
}
}
else if (state == ABaseFragment.ABaseTaskState.falid) {
if (mode == APagingFragment.RefreshMode.update) {
if (layLoading.getVisibility() == View.VISIBLE) {
btnMore.setText(faildText());
}
}
}
}
@Override
public void setFooterViewToRefreshing() {
if (layLoading.getVisibility() != View.VISIBLE) {
layLoading.setVisibility(View.VISIBLE);
getCallback().onLoadMore();
}
}
protected String moreText() {
return getContext().getString(R.string.comm_footer_more);
}
protected String loadingText() {
return getContext().getString(R.string.comm_footer_loading);
}
protected String endpagingText() {
return getContext().getString(R.string.comm_footer_pagingend);
}
protected String faildText() {
return getContext().getString(R.string.comm_footer_faild);
}
}