You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
831 B
53 lines
831 B
class MvpCallBack<T> {
|
|
Function(T) onSuccessCallBack;
|
|
Function(String) onFailCallBack;
|
|
|
|
MvpCallBack(onSuccess(T data), onFail(String msg)) {
|
|
onSuccessCallBack = onSuccess;
|
|
onFailCallBack = onFail;
|
|
}
|
|
}
|
|
|
|
abstract class MvpView {
|
|
void onAttach() {}
|
|
|
|
void onDetach() {}
|
|
}
|
|
|
|
abstract class MvpModel {
|
|
void onAttach() {}
|
|
|
|
void onDetach() {}
|
|
}
|
|
|
|
abstract class MvpPresenter<V extends MvpView, M extends MvpModel> {
|
|
V _mView;
|
|
M _mModel;
|
|
|
|
void attach(MvpView view) {
|
|
_mView = view;
|
|
_mView?.onAttach();
|
|
getModel()?.onDetach();
|
|
}
|
|
|
|
V getView() {
|
|
return _mView;
|
|
}
|
|
|
|
M getModel() {
|
|
if (_mModel == null) {
|
|
_mModel = initModel();
|
|
}
|
|
return _mModel;
|
|
}
|
|
|
|
M initModel();
|
|
|
|
detach() {
|
|
_mView?.onDetach();
|
|
_mView = null;
|
|
_mModel?.onDetach();
|
|
_mModel = null;
|
|
}
|
|
}
|