提交 58b9e7a1 编写于 作者: M mxdl

mvvm code perfect

上级 bfe3165c
package com.fly.tour.common.base;
package com.fly.tour.common.adapter;
import android.content.Context;
import android.support.annotation.NonNull;
......
......@@ -14,6 +14,7 @@ import com.alibaba.android.arouter.launcher.ARouter;
import com.fly.tour.common.R;
import com.fly.tour.common.event.common.BaseActivityEvent;
import com.fly.tour.common.manager.ActivityManager;
import com.fly.tour.common.mvvm.view.IBaseView;
import com.fly.tour.common.util.NetUtil;
import com.fly.tour.common.view.LoadingInitView;
import com.fly.tour.common.view.LoadingTransView;
......@@ -27,11 +28,11 @@ import org.greenrobot.eventbus.ThreadMode;
/**
* Description: <BaseActivity><br>
* Author: mxdl<br>
* Date: 2018/1/16<br>
* Date: 2019/06/30<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public abstract class BaseActivity extends RxAppCompatActivity implements BaseView {
public abstract class BaseActivity extends RxAppCompatActivity implements IBaseView {
protected static final String TAG = BaseActivity.class.getSimpleName();
protected TextView mTxtTitle;
protected Toolbar mToolbar;
......
......@@ -14,6 +14,7 @@ import android.widget.TextView;
import com.alibaba.android.arouter.launcher.ARouter;
import com.fly.tour.common.R;
import com.fly.tour.common.event.common.BaseFragmentEvent;
import com.fly.tour.common.mvvm.view.IBaseView;
import com.fly.tour.common.util.NetUtil;
import com.fly.tour.common.util.log.KLog;
import com.fly.tour.common.view.LoadingInitView;
......@@ -29,11 +30,11 @@ import org.greenrobot.eventbus.ThreadMode;
/**
* Description: <BaseFragment><br>
* Author: mxdl<br>
* Date: 2018/1/15<br>
* Date: 2019/06/30<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public abstract class BaseFragment extends Fragment implements BaseView {
public abstract class BaseFragment extends Fragment implements IBaseView {
protected static final String TAG = BaseFragment.class.getSimpleName();
protected RxAppCompatActivity mActivity;
protected View mView;
......
......@@ -17,7 +17,7 @@ import javax.inject.Inject;
/**
* Description: <BaseMvpFragment><br>
* Author: mxdl<br>
* Date: 2018/1/15<br>
* Date: 2019/06/30<br>
* Version: V1.0.0<br>
* Update: <br>
*/
......
......@@ -3,7 +3,8 @@ package com.fly.tour.common.mvvm;
import android.arch.lifecycle.Observer;
import android.support.annotation.Nullable;
import com.fly.tour.common.mvvm.viewmodel.BaseViewRefreshModel;
import com.fly.tour.common.mvvm.view.IBaseRefreshView;
import com.fly.tour.common.mvvm.viewmodel.BaseRefreshViewModel;
import com.refresh.lib.BaseRefreshLayout;
import com.refresh.lib.DaisyRefreshLayout;
......@@ -16,7 +17,7 @@ import java.util.List;
* Version: V1.0.0<br>
* Update: <br>
*/
public abstract class BaseMvvmRefreshActivity<T,VM extends BaseViewRefreshModel> extends BaseMvvmActivity<VM> implements BaseRefreshView<T> {
public abstract class BaseMvvmRefreshActivity<T,VM extends BaseRefreshViewModel> extends BaseMvvmActivity<VM> implements IBaseRefreshView<T> {
protected DaisyRefreshLayout mRefreshLayout;
@Override
......
......@@ -4,7 +4,8 @@ import android.arch.lifecycle.Observer;
import android.support.annotation.Nullable;
import android.view.View;
import com.fly.tour.common.mvvm.viewmodel.BaseViewRefreshModel;
import com.fly.tour.common.mvvm.view.IBaseRefreshView;
import com.fly.tour.common.mvvm.viewmodel.BaseRefreshViewModel;
import com.fly.tour.common.util.log.KLog;
import com.refresh.lib.BaseRefreshLayout;
import com.refresh.lib.DaisyRefreshLayout;
......@@ -14,11 +15,11 @@ import java.util.List;
/**
* Description: <下拉刷新、上拉加载更多的Fragment><br>
* Author: mxdl<br>
* Date: 2018/2/25<br>
* Date: 2018/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public abstract class BaseMvvmRefreshFragment<T,VM extends BaseViewRefreshModel> extends BaseMvvmFragment<VM> implements BaseRefreshView<T> {
public abstract class BaseMvvmRefreshFragment<T,VM extends BaseRefreshViewModel> extends BaseMvvmFragment<VM> implements IBaseRefreshView<T> {
protected DaisyRefreshLayout mRefreshLayout;
@Override
......
package com.fly.tour.common.mvvm;
/**
* Description: <基本的刷新数据协议><br>
* Author: mxdl<br>
* Date: 2018/2/25<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public interface BaseRefreshContract {
interface Presenter {
/**
* 刷新数据
*/
void refreshData();
/**
* 加载更多
*/
void loadMoreData();
}
interface View extends BaseView{
/**
* 是否启用下拉刷新
* @param b
*/
void enableRefresh(boolean b);
/**
*是否启用上拉加载更多
*/
void enableLoadMore(boolean b);
/**
*刷新回调
*/
void onRefreshEvent();
/**
* 加载更多的回调
*/
void onLoadMoreEvent();
/**
* 自动加载的事件
*/
void onAutoLoadEvent();
/**
* 停止刷新
*/
void stopRefresh();
/**
* 停止加载更多
*/
void stopLoadMore();
/**
* 自动加载数据
*/
void autoLoadData();
}
}
package com.fly.tour.common.mvvm;
import java.util.List;
/**
* Description: <BaseRefreshView><br>
* Author: mxdl<br>
* Date: 2018/2/26<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public interface BaseRefreshView<T> extends BaseRefreshContract.View {
//刷新数据
void refreshData(List<T> data);
//加载更多
void loadMoreData(List<T> data);
}
......@@ -2,8 +2,6 @@ package com.fly.tour.common.mvvm.model;
import android.app.Application;
import com.trello.rxlifecycle2.LifecycleProvider;
import io.reactivex.disposables.CompositeDisposable;
import io.reactivex.disposables.Disposable;
......@@ -14,7 +12,7 @@ import io.reactivex.disposables.Disposable;
* Version: V1.0.0<br>
* Update: <br>
*/
public abstract class BaseModel implements IModel {
public abstract class BaseModel implements IBaseModel {
protected Application mApplication;
private CompositeDisposable mCompositeDisposable;
public BaseModel(Application application) {
......
package com.fly.tour.common.mvvm.model;
/**
* Description: <IModel><br>
* Description: <IBaseModel><br>
* Author: mxdl<br>
* Date: 2019/06/30<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public interface IModel {
public interface IBaseModel {
void onCleared();
}
package com.fly.tour.common.mvvm.view;
import java.util.List;
/**
* Description: <IBaseRefreshView><br>
* Author: mxdl<br>
* Date: 2019/6/30<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public interface IBaseRefreshView<T> extends IBaseView{
//刷新数据
void refreshData(List<T> data);
//加载更多
void loadMoreData(List<T> data);
/**
* 是否启用下拉刷新
* @param b
*/
void enableRefresh(boolean b);
/**
*是否启用上拉加载更多
*/
void enableLoadMore(boolean b);
/**
*刷新回调
*/
void onRefreshEvent();
/**
* 加载更多的回调
*/
void onLoadMoreEvent();
/**
* 自动加载的事件
*/
void onAutoLoadEvent();
/**
* 停止刷新
*/
void stopRefresh();
/**
* 停止加载更多
*/
void stopLoadMore();
/**
* 自动加载数据
*/
void autoLoadData();
}
package com.fly.tour.common.mvvm;
package com.fly.tour.common.mvvm.view;
import android.content.Context;
/**
* Description: <BaseView><br>
* Description: <IBaseView><br>
* Author: mxdl<br>
* Date: 2019/06/30<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public interface BaseView{
public interface IBaseView {
void initView();
void initListener();
void initData();
......
......@@ -8,16 +8,16 @@ import com.fly.tour.common.mvvm.model.BaseModel;
import java.util.List;
/**
* Description: <BaseViewRefreshModel><br>
* Description: <BaseRefreshViewModel><br>
* Author: mxdl<br>
* Date: 2019/7/2<br>
* Date: 2019/06/30<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public class BaseViewRefreshModel<T,M extends BaseModel> extends BaseViewModel<M> {
public class BaseRefreshViewModel<T,M extends BaseModel> extends BaseViewModel<M> {
protected UIChangeRefreshLiveData mUIChangeRefreshLiveData;
public BaseViewRefreshModel(@NonNull Application application, M model) {
public BaseRefreshViewModel(@NonNull Application application, M model) {
super(application, model);
}
......
......@@ -37,49 +37,6 @@ public class BaseViewModel<M extends BaseModel> extends AndroidViewModel impleme
return mUIChangeLiveData;
}
@Override
public void onAny(LifecycleOwner owner, Lifecycle.Event event) {
}
@Override
public void onCreate() {
}
@Override
public void onDestroy() {
}
@Override
public void onStart() {
}
@Override
public void onStop() {
}
@Override
public void onResume() {
}
@Override
public void onPause() {
}
@Override
protected void onCleared() {
super.onCleared();
if (mModel != null) {
mModel.onCleared();
}
}
@Override
public void accept(Disposable disposable) throws Exception {
if(mModel != null){
mModel.addSubscribe(disposable);
}
}
public final class UIChangeLiveData extends SingleLiveEvent {
private SingleLiveEvent<Boolean> showInitLoadViewEvent;
private SingleLiveEvent<Boolean> showTransLoadingViewEvent;
......@@ -170,4 +127,49 @@ public class BaseViewModel<M extends BaseModel> extends AndroidViewModel impleme
public void onBackPressed() {
mUIChangeLiveData.onBackPressedEvent.call();
}
@Override
public void onAny(LifecycleOwner owner, Lifecycle.Event event) {
}
@Override
public void onCreate() {
}
@Override
public void onDestroy() {
}
@Override
public void onStart() {
}
@Override
public void onStop() {
}
@Override
public void onResume() {
}
@Override
public void onPause() {
}
@Override
public void accept(Disposable disposable) throws Exception {
if(mModel != null){
mModel.addSubscribe(disposable);
}
}
@Override
protected void onCleared() {
super.onCleared();
if (mModel != null) {
mModel.onCleared();
}
}
}
......@@ -9,7 +9,7 @@ import android.widget.Button;
import android.widget.EditText;
import com.fly.tour.api.newstype.entity.NewsType;
import com.fly.tour.common.base.BaseAdapter;
import com.fly.tour.common.adapter.BaseAdapter;
import com.fly.tour.common.mvvm.BaseMvvmActivity;
import com.fly.tour.common.util.ToastUtil;
import com.fly.tour.common.view.SettingBarView;
......@@ -18,7 +18,13 @@ import com.fly.tour.me.mvvm.model.NewsDetailAddViewModel;
import com.fly.tour.me.view.NewsTypeBottomSelectDialog;
import java.util.List;
/**
* Description: <NewsDetailAddActivity><br>
* Author: mxdl<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public class NewsDetailAddActivity extends BaseMvvmActivity<NewsDetailAddViewModel> {
private SettingBarView mViewSetNewsType;
......
......@@ -20,7 +20,7 @@ import org.greenrobot.eventbus.EventBus;
/**
* Description: <NewsTypeAddActivity><br>
* Author: mxdl<br>
* Date: 2019/5/24<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
......
......@@ -20,7 +20,13 @@ import com.fly.tour.me.mvvm.factory.MeViewModelFactory;
import com.fly.tour.me.mvvm.viewmodel.NewsTypeListViewModel;
import java.util.List;
/**
* Description: <NewsTypeListActivity><br>
* Author: mxdl<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public class NewsTypeListActivity extends BaseMvvmRefreshActivity<NewsType, NewsTypeListViewModel> {
private RecyclerView mRecViewNewsType;
......
......@@ -7,7 +7,7 @@ import android.view.View;
import android.widget.TextView;
import com.fly.tour.api.newstype.entity.NewsType;
import com.fly.tour.common.base.BaseAdapter;
import com.fly.tour.common.adapter.BaseAdapter;
import com.fly.tour.me.R;
/**
......
......@@ -8,7 +8,7 @@ import android.widget.Button;
import android.widget.TextView;
import com.fly.tour.api.newstype.entity.NewsType;
import com.fly.tour.common.base.BaseAdapter;
import com.fly.tour.common.adapter.BaseAdapter;
import com.fly.tour.common.util.DateUtil;
import com.fly.tour.me.R;
......
......@@ -23,7 +23,7 @@ import io.reactivex.Observable;
/**
* Description: <NewsDetailAddModel><br>
* Author: mxdl<br>
* Date: 2019/5/27<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
......
......@@ -26,7 +26,7 @@ import io.reactivex.disposables.Disposable;
/**
* Description: <NewsDetailAddPresenter><br>
* Author: mxdl<br>
* Date: 2019/5/27<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
......
......@@ -14,7 +14,7 @@ import io.reactivex.Observable;
/**
* Description: <NewsTypeAddModel><br>
* Author: mxdl<br>
* Date: 2019/07/01<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
......
......@@ -17,7 +17,7 @@ import io.reactivex.Observable;
/**
* Description: <NewsTypeListModel><br>
* Author: mxdl<br>
* Date: 2019/5/27<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
......
......@@ -22,7 +22,7 @@ import io.reactivex.disposables.Disposable;
/**
* Description: <NewsTypeAddModel><br>
* Author: mxdl<br>
* Date: 2019/07/01<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
......
......@@ -8,7 +8,7 @@ import com.fly.tour.api.http.ExceptionHandler;
import com.fly.tour.api.newstype.entity.NewsType;
import com.fly.tour.common.event.EventCode;
import com.fly.tour.common.event.me.NewsTypeCrudEvent;
import com.fly.tour.common.mvvm.viewmodel.BaseViewRefreshModel;
import com.fly.tour.common.mvvm.viewmodel.BaseRefreshViewModel;
import com.fly.tour.common.util.ToastUtil;
import com.fly.tour.me.mvvm.model.NewsTypeListModel;
......@@ -22,11 +22,11 @@ import io.reactivex.disposables.Disposable;
/**
* Description: <NewsTypeListViewModel><br>
* Author: mxdl<br>
* Date: 2019/7/2<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public class NewsTypeListViewModel extends BaseViewRefreshModel<NewsType,NewsTypeListModel> {
public class NewsTypeListViewModel extends BaseRefreshViewModel<NewsType,NewsTypeListModel> {
private boolean isfirst = true;
public NewsTypeListViewModel(@NonNull Application application, NewsTypeListModel model) {
......
package com.fly.tour.me.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
......@@ -17,7 +16,7 @@ import android.view.View;
import android.view.ViewGroup;
import com.fly.tour.api.newstype.entity.NewsType;
import com.fly.tour.common.base.BaseAdapter;
import com.fly.tour.common.adapter.BaseAdapter;
import com.fly.tour.common.util.DisplayUtil;
import com.fly.tour.me.R;
import com.fly.tour.me.adapter.NewsTypeSelectAdapter;
......@@ -25,11 +24,11 @@ import java.util.ArrayList;
import java.util.List;
/**
* Description: <PhotoSelectDialog><br>
* Author: mxdl<br>
* Date: 2019/1/3<br>
* Version: V1.0.0<br>
* Update: <br>
* Description: <NewsTypeBottomSelectDialog><br>
* Author: mxdl<br>
* Date: 2019/07/02<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public class NewsTypeBottomSelectDialog extends BottomSheetDialogFragment {
public static final String TAG = NewsTypeBottomSelectDialog.class.getSimpleName();
......
......@@ -7,7 +7,7 @@ import android.view.View;
import android.widget.TextView;
import com.fly.tour.api.news.entity.NewsDetail;
import com.fly.tour.common.base.BaseAdapter;
import com.fly.tour.common.adapter.BaseAdapter;
import com.fly.tour.trip.R;
/**
......
......@@ -10,7 +10,7 @@ import android.view.View;
import com.fly.tour.api.news.entity.NewsDetail;
import com.fly.tour.api.newstype.entity.NewsType;
import com.fly.tour.common.base.BaseAdapter;
import com.fly.tour.common.adapter.BaseAdapter;
import com.fly.tour.common.event.KeyCode;
import com.fly.tour.common.event.me.NewsDetailCurdEvent;
import com.fly.tour.common.mvvm.BaseMvvmRefreshFragment;
......
package com.fly.tour.news.mvvm;
/**
* Description: <a><br>
* Author: mxdl<br>
* Date: 2019/7/2<br>
* Version: V1.0.0<br>
* Update: <br>
*/
public class a {
}
package com.fly.tour.news.mvvm.viewmodel;
import android.app.Application;
import android.content.Context;
import android.support.annotation.NonNull;
import com.fly.tour.api.dto.RespDTO;
import com.fly.tour.api.news.entity.NewsDetail;
import com.fly.tour.common.mvvm.viewmodel.BaseViewRefreshModel;
import com.fly.tour.common.mvvm.viewmodel.BaseRefreshViewModel;
import com.fly.tour.common.util.NetUtil;
import com.fly.tour.news.mvvm.model.NewsListModel;
import java.util.List;
import javax.inject.Inject;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
......@@ -24,7 +21,7 @@ import io.reactivex.disposables.Disposable;
* Version: V1.0.0<br>
* Update: <br>
*/
public class NewsListViewModel extends BaseViewRefreshModel<NewsDetail, NewsListModel>{
public class NewsListViewModel extends BaseRefreshViewModel<NewsDetail, NewsListModel> {
private int newsType = 0;
public NewsListViewModel(@NonNull Application application, NewsListModel model) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册