فهرست منبع

剩余fragment

詹子聪 5 سال پیش
والد
کامیت
6fa74861c1

+ 23 - 0
app/build.gradle

@@ -23,11 +23,34 @@ android {
         sourceCompatibility JavaVersion.VERSION_1_8
         targetCompatibility JavaVersion.VERSION_1_8
     }
+
+    // 开发与发布的URL
+    flavorDimensions "url"
+    productFlavors {
+        dev {
+            // 开发环境宿舍服务器
+            buildConfigField("String", "BASE_URL", '"http://192.168.0.190:8080/"')
+            buildConfigField("String", "HOST_STATIC_RESOURCE_IMAGE", '"http://192.168.0.190/"')
+        }
+
+        rel {
+            // 正式上线
+            buildConfigField("String", "BASE_URL", '"http://app.icsmabc.cyou:8856/"')
+            buildConfigField("String", "HOST_STATIC_RESOURCE_IMAGE", '"http://icsmabc.cyou/eden/images/"')
+        }
+
+        company {
+            // 开发2
+            buildConfigField("String", "BASE_URL", '"http://10.16.0.153:8080/"')
+            buildConfigField("String", "HOST_STATIC_RESOURCE_IMAGE", '"http://10.16.0.153/"')
+        }
+    }
 }
 
 dependencies {
     implementation fileTree(dir: 'libs', include: ['*.jar'])
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
+    implementation project(path: ':network')
     testImplementation 'junit:junit:4.12'
     androidTestImplementation 'androidx.test.ext:junit:1.1.0'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

+ 1 - 1
app/src/main/java/com/miekir/newmvp/ui/home/HomeActivity.java

@@ -34,7 +34,7 @@ public class HomeActivity extends BaseMvpActivity implements View.OnClickListene
                 break;
             case R.id.btn_task:
                 // 点击之后,后台执行耗时操作
-                mArticlePresenter.doWork();
+                mArticlePresenter.doProgressWork();
                 break;
             default:
                 break;

+ 30 - 0
app/src/main/java/com/miekir/newmvp/ui/home/article/presenter/SimpleArticlePresenter.java

@@ -2,6 +2,7 @@ package com.miekir.newmvp.ui.home.article.presenter;
 
 import com.miekir.common.utils.LogTool;
 import com.miekir.mvp.presenter.BasePresenter;
+import com.miekir.network.core.impl.LoadingObserver;
 import com.miekir.newmvp.ui.home.IArticleView;
 
 import io.reactivex.Observable;
@@ -49,4 +50,33 @@ public class SimpleArticlePresenter extends BasePresenter<IArticleView> {
 
         mProgressDisposableList.add(disposable);
     }
+
+    /**
+     * 直接在Presenter执行任务
+     */
+    public void doProgressWork() {
+        Observable.create((ObservableOnSubscribe<String>) emitter -> {
+            try {
+                Thread.sleep(5000);
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
+            emitter.onNext("");
+            emitter.onComplete();
+        })
+        .subscribeOn(Schedulers.io())
+        .observeOn(AndroidSchedulers.mainThread())
+        .subscribe(new LoadingObserver<String>(this) {
+
+            @Override
+            public void onSuccess(String result) {
+                post(view -> view.onArticleResult("result"));
+            }
+
+            @Override
+            public void onFailure(int code, Throwable e, String errMsg) {
+
+            }
+        });
+    }
 }

+ 4 - 4
mvp/src/main/java/com/miekir/mvp/base/BaseActivity.java

@@ -11,13 +11,13 @@ import android.view.inputmethod.InputMethodManager;
 
 import androidx.appcompat.app.AppCompatActivity;
 
-import com.miekir.mvp.widget.LoadingDialog;
+import com.miekir.mvp.widget.LoadingView;
 
 /**
  * 适配器模式,这个类会适配子类的功能,帮子类实现具体的弹出加载框、弹出提示等基本操作
  */
 public abstract class BaseActivity extends AppCompatActivity {
-    private LoadingDialog mLoadingDialog;
+    private LoadingView mLoadingDialog;
     private View rootView;
 
     @Override
@@ -44,8 +44,8 @@ public abstract class BaseActivity extends AppCompatActivity {
 
         //进入页面隐藏输入框
         getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
-        mLoadingDialog = new LoadingDialog(this);
-        mLoadingDialog.setCancelListener(new LoadingDialog.OnLoadingCancelListener() {
+        mLoadingDialog = new LoadingView(this);
+        mLoadingDialog.setCancelListener(new LoadingView.OnLoadingCancelListener() {
             @Override
             public void onLoadingCancel() {
                 mLoadingTime = 0;

+ 4 - 4
mvp/src/main/java/com/miekir/mvp/base/BaseFragment.java

@@ -12,13 +12,13 @@ import androidx.annotation.Nullable;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentActivity;
 
-import com.miekir.mvp.widget.LoadingDialog;
+import com.miekir.mvp.widget.LoadingView;
 
 
 public abstract class BaseFragment extends Fragment {
     public FragmentActivity activity;
     //private Unbinder mBinder;
-    private LoadingDialog mLoadingDialog;
+    private LoadingView mLoadingDialog;
     protected View rootView;
 
     /**
@@ -41,8 +41,8 @@ public abstract class BaseFragment extends Fragment {
     public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
         super.onViewCreated(view, savedInstanceState);
         //mBinder = ButterKnife.bind(this, view);
-        mLoadingDialog = new LoadingDialog(getActivity());
-        mLoadingDialog.setCancelListener(new LoadingDialog.OnLoadingCancelListener() {
+        mLoadingDialog = new LoadingView(getActivity());
+        mLoadingDialog.setCancelListener(new LoadingView.OnLoadingCancelListener() {
             @Override
             public void onLoadingCancel() {
                 onTaskCancel();

+ 2 - 2
mvp/src/main/java/com/miekir/mvp/widget/LoadingDialog.java

@@ -12,14 +12,14 @@ import android.widget.TextView;
 import com.miekir.mvp.R;
 
 
-public class LoadingDialog {
+public class LoadingView {
     CircularRingView mLoadingView;
     private TextView loadingText;
     Dialog mLoadingDialog;
     Context mContext;
     private String msg = "加载中...";
 
-    public LoadingDialog(Context context) {
+    public LoadingView(Context context) {
         mContext = context;
         // 首先得到整个View
         View view = LayoutInflater.from(context).inflate(

+ 51 - 0
network/src/main/java/com/miekir/network/core/impl/LoadingObserver.java

@@ -0,0 +1,51 @@
+package com.miekir.network.core.impl;
+
+import com.miekir.mvp.presenter.BasePresenter;
+import com.miekir.network.constant.Code;
+import com.miekir.network.core.base.CommonObserver;
+import com.miekir.network.utils.ExceptionUtil;
+
+import io.reactivex.annotations.NonNull;
+import io.reactivex.disposables.Disposable;
+
+/**
+ * 进度条观察者
+ * 需要进度条时,调用onSubscribe同时显示进度条,
+ * 流程走到onComplete/onError时隐藏进度条。
+ * @author Miekir
+ * 变为发送通知增加dialog显示次数
+ */
+
+public abstract class LoadingObserver<T> extends CommonObserver<T> {
+    private BasePresenter<?> mPresenter;
+
+    public LoadingObserver(BasePresenter<?> presenter) {
+        mPresenter = presenter;
+    }
+
+    @Override
+    public void onSubscribe(@NonNull Disposable d) {
+        if (d.isDisposed()) {
+            return;
+        }
+
+        mPresenter.showProgress();
+    }
+
+    @Override
+    public void onNext(T t) {
+        mPresenter.hideProgress();
+        onSuccess(t);
+    }
+
+    @Override
+    public void onComplete() {
+
+    }
+
+    @Override
+    public void onError(@NonNull Throwable e) {
+        mPresenter.hideProgress();
+        onFailure(Code.COMMON, e, ExceptionUtil.exceptionHandler(e));
+    }
+}

+ 2 - 2
network/src/main/java/com/miekir/network/core/impl/DialogObserver.java

@@ -14,10 +14,10 @@ import io.reactivex.disposables.Disposable;
  * 变为发送通知增加dialog显示次数
  */
 
-public abstract class DialogObserver<T> extends BaseObserver<T> {
+public abstract class NetLoadingObserver<T> extends BaseObserver<T> {
     private BasePresenter<?> mPresenter;
 
-    public DialogObserver(BasePresenter<?> presenter) {
+    public NetLoadingObserver(BasePresenter<?> presenter) {
         mPresenter = presenter;
     }