package china.test.customview.pagestatusview;
import android.support.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Created by benchengzhou on 2018/7/23 16:20 .
* 作者邮箱: mappstore@163.com
* 功能描述: 数据状态页
* 类 名: PageStatusControl
* 备 注:
*/
public interface PageStatusControl {
/**
* 正常加载数据
*/
public int PAGE_STATUS_NORMAL = 100;
/**
* 界面加载中
*/
public int PAGE_STATUS_LOADING = 102;
/**
* 没有数据
*/
public int PAGE_STATUS_NO_DATA = 103;
/**
* 网络异常,无法连接网络
*/
public int PAGE_STATUS_NET_WORK_ERROR = 109;
/**
* 数据加载失败
*/
public int PAGE_STATUS_LOAD_FAIL = 114;
@IntDef({PAGE_STATUS_LOAD_FAIL
, PAGE_STATUS_LOADING
, PAGE_STATUS_NET_WORK_ERROR
, PAGE_STATUS_NO_DATA
, PAGE_STATUS_NORMAL})
@Retention(RetentionPolicy.SOURCE)
public @interface PageStatusType {
}
/**
* 数据页初始化
*
* @return
*/
public PageStatusControl initPageStatus();
/**
* 数据页初始化
*
* @param status 初始化展示的界面状态,默认为正常(不显示状态页)
* @return
*/
public PageStatusControl initPageStatus(@PageStatusType int status);
/**
* @param #status One of {@link #PAGE_STATUS_LOAD_FAIL}, {@link #PAGE_STATUS_LOADING}, {@link #PAGE_STATUS_NET_WORK_ERROR}, {@link #PAGE_STATUS_NO_DATA},
* {@link #PAGE_STATUS_NET_WORK_ERROR} .
* @return
*/
public PageStatusControl syncPageStatus(@PageStatusType int status);
/**
* 获取当前界面展示的状态
*
* @return
*/
public int getPageStatus();
/**
* 显示设定的页面状态
*/
public void displayStatusPage();
/**
* 同步页面状态,并显示到页面上
*/
public void displayStatusPage(@PageStatusType int status);
/**
* 禁用原生加载更多布局
*
* @param isLoadingViewEnable
*/
public void setLoadingViewEnable(boolean isLoadingViewEnable);
/**
* 获取加载更多页面状态
*
* @return
*/
public boolean getLoadingViewEnable();
/**
* 加载错误点击揭界面重试
*/
public void setOnErrorLoadRetryListener(LoadRetryListener loadRetryListener);
/**
* 状态页状态回调
* 用于同步加载动画
*/
public void setOnPageStatusListener(PageStatusLisener pageStatusListener);
/**
* 注册错误界面点击事件
*/
public interface LoadRetryListener {
void onErrorRetryCilck(@PageStatusType int statusType);
}
/**
* 注册状态页面回调,用于界面状态展示
*/
public interface PageStatusLisener {
void onLoading();
void onFinish();
}
}