詹子聪 5 gadi atpakaļ
vecāks
revīzija
0aecd615bb

+ 40 - 0
app/src/main/java/com/miekir/newmvp/main/model/MainFileModel.java

@@ -0,0 +1,40 @@
+package com.miekir.newmvp.main.model;
+
+import com.miekir.common.utils.LogTool;
+import com.miekir.mvp.model.BaseModel;
+import com.miekir.newmvp.main.bean.MainBean;
+
+import io.reactivex.Observable;
+import io.reactivex.ObservableOnSubscribe;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.disposables.Disposable;
+import io.reactivex.schedulers.Schedulers;
+
+/**
+ * Copyright (C), 2019-2020, Miekir
+ *
+ * @author Miekir
+ * @date 2020/11/14 14:57
+ * Description:
+ */
+
+public class MainFileModel extends BaseModel implements IMainModel {
+
+    @Override
+    public void goGetData(IDataCallback callback) {
+        Disposable disposable = Observable.create((ObservableOnSubscribe<String>) emitter -> {
+            emitter.onNext("");
+            emitter.onComplete();
+        })
+        .subscribeOn(Schedulers.io())
+        .observeOn(AndroidSchedulers.mainThread())
+        .subscribe(next -> {
+            MainBean bean = new MainBean(17, "Jason");
+            callback.onDataGet(bean);
+        }, error -> {
+            LogTool.d(getClass().getName(), error.getMessage());
+        });
+
+        mDisposableList.add(disposable);
+    }
+}

+ 1 - 1
app/src/main/java/com/miekir/newmvp/main/model/MainModel.java

@@ -18,7 +18,7 @@ import io.reactivex.schedulers.Schedulers;
  * Description:
  */
 
-public class MainModel extends BaseModel implements IMainModel {
+public class MainNetModel extends BaseModel implements IMainModel {
 
     @Override
     public void goGetData(IDataCallback callback) {

+ 31 - 9
app/src/main/java/com/miekir/newmvp/main/presenter/MainPresenter.java

@@ -2,9 +2,9 @@ package com.miekir.newmvp.main.presenter;
 
 import com.miekir.common.utils.LogTool;
 import com.miekir.mvp.presenter.BasePresenter;
-import com.miekir.newmvp.main.bean.MainBean;
 import com.miekir.newmvp.main.model.IMainModel;
-import com.miekir.newmvp.main.model.MainModel;
+import com.miekir.newmvp.main.model.MainFileModel;
+import com.miekir.newmvp.main.model.MainNetModel;
 import com.miekir.newmvp.main.view.IMainView;
 
 import io.reactivex.Observable;
@@ -21,23 +21,45 @@ import io.reactivex.schedulers.Schedulers;
  * Description:
  */
 public class MainPresenter extends BasePresenter<IMainView> {
-    // todo 在BasePresenter中注入Model
+    public static final int REPO_NET = 1;
+    public static final int REPO_FILE = 2;
     private IMainModel mMainModel;
 
+    /**
+     * 设置当前仓库
+     * @param repository 仓库
+     */
+    public void setRepository(int repository) {
+        switch (repository) {
+            case REPO_NET:
+                mMainModel = new MainNetModel();
+                break;
+            case REPO_FILE:
+                mMainModel = new MainFileModel();
+                break;
+            default:
+                break;
+        }
+    }
+
     @Override
     public void onInit() {
-        mMainModel = new MainModel();
+        mMainModel = new MainNetModel();
     }
 
+    /**
+     * 让具体的Model去执行任务
+     */
     public void getData() {
-        mMainModel.goGetData(new IMainModel.IDataCallback() {
-            @Override
-            public void onDataGet(MainBean bean) {
-
-            }
+        mMainModel.goGetData(bean -> {
+            // 执行完毕,回调
+            getCallbackView().onMainResult();
         });
     }
 
+    /**
+     * 直接在Presenter执行任务
+     */
     public void doWork() {
         Disposable disposable = Observable.create((ObservableOnSubscribe<String>) emitter -> {
             try {