詹子聪 5 tahun lalu
induk
melakukan
b0ca646d11

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

@@ -25,7 +25,7 @@ public class TestViewModel1 extends BaseViewModel {
                     //getView().onLoginResult(3, "ddd");
                     List<TestBean1> testBean1List = new ArrayList<>();
                     testBean1List.add(new TestBean1(3, "ViewModel Jason"));
-                    post(0, "test", testBean1List, 3);
+                    postSuccess(testBean1List);
                 } catch (Exception e) {
                     e.printStackTrace();
                 }

+ 13 - 0
mvp/src/main/java/com/miekir/mvp/base/BaseMvpResponse.java

@@ -0,0 +1,13 @@
+package com.miekir.mvp.base;
+
+/**
+ * Copyright (C), 2019-2020, Miekir
+ *
+ * @author Miekir
+ * @date 2020/10/30 9:10
+ * Description:
+ */
+public interface BaseMvpResponse {
+    int COMMON_SUCCESS = 0;
+    int COMMON_FAIL = -1;
+}

+ 13 - 0
mvp/src/main/java/com/miekir/mvp/base/BaseMvpSource.java

@@ -0,0 +1,13 @@
+package com.miekir.mvp.base;
+
+/**
+ * Copyright (C), 2019-2020, Miekir
+ *
+ * @author Miekir
+ * @date 2020/10/30 9:00
+ * Description: 用于区分数据来源。如一个界面上有两个列表,左边是展示本地数据库的数据,右边是展示远程数据库的数据,数据类型一样,
+ * 此时有必要区分来源。
+ */
+public interface BaseMvpSource {
+    int COMMON = 0;
+}

+ 90 - 0
mvp/src/main/java/com/miekir/mvp/presenter/BaseViewModel.java

@@ -3,6 +3,8 @@ package com.miekir.mvp.presenter;
 import androidx.lifecycle.MutableLiveData;
 import androidx.lifecycle.ViewModel;
 
+import com.miekir.mvp.base.BaseMvpResponse;
+import com.miekir.mvp.base.BaseMvpSource;
 import com.miekir.mvp.base.DataResult;
 
 /**
@@ -31,6 +33,94 @@ public class BaseViewModel extends ViewModel {
         liveData.postValue(new DataResult(responseCode, msg, dataBean, sourceCode));
     }
 
+    public void post(int responseCode, String msg, Object dataBean) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(responseCode, msg, dataBean, BaseMvpSource.COMMON));
+    }
+
+    public void post(int responseCode, Object dataBean) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(responseCode, "", dataBean, BaseMvpSource.COMMON));
+    }
+
+    public void post(int responseCode, Object dataBean, int sourceCode) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(responseCode, "", dataBean, sourceCode));
+    }
+
+    public void postSuccess(Object dataBean) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(BaseMvpResponse.COMMON_SUCCESS, "", dataBean, BaseMvpSource.COMMON));
+    }
+
+    public void postSuccess(Object dataBean, int sourceCode) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(BaseMvpResponse.COMMON_SUCCESS, "", dataBean, sourceCode));
+    }
+
+    public void postSuccess(String msg, Object dataBean) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(BaseMvpResponse.COMMON_SUCCESS, msg, dataBean, BaseMvpSource.COMMON));
+    }
+
+    public void postSuccess(String msg, Object dataBean, int sourceCode) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(BaseMvpResponse.COMMON_SUCCESS, msg, dataBean, sourceCode));
+    }
+
+    public void postFail(Object dataBean) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(BaseMvpResponse.COMMON_FAIL, "", dataBean, BaseMvpSource.COMMON));
+    }
+
+    public void postFail(Object dataBean, int sourceCode) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(BaseMvpResponse.COMMON_FAIL, "", dataBean, sourceCode));
+    }
+
+    public void postFail(String msg, Object dataBean) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(BaseMvpResponse.COMMON_FAIL, msg, dataBean, BaseMvpSource.COMMON));
+    }
+
+    public void postFail(String msg, Object dataBean, int sourceCode) {
+        if (liveData == null) {
+            return;
+        }
+
+        liveData.postValue(new DataResult(BaseMvpResponse.COMMON_FAIL, msg, dataBean, sourceCode));
+    }
+
     public void detachView() {
         liveData = null;
     }