Explorar el Código

对话框在任务内不可更改加载文字

詹子聪 hace 5 años
padre
commit
7e2e629643

+ 4 - 3
app/src/main/java/com/miekir/newmvp/LoadingAspect.java

@@ -36,9 +36,9 @@ public class LoadingAspect {
         // 注入加载框
         Object targetObject  = joinPoint.getTarget();
         try {
-            Method showDialogMethod = targetObject.getClass().getMethod("showLoading", String.class);
+            Method showDialogMethod = targetObject.getClass().getMethod("showLoading");
+            /*Method showDialogMethod = targetObject.getClass().getMethod("showLoading", String.class);
             String message = "";
-
             Method taskMethod = ((MethodSignature)joinPoint.getSignature()).getMethod();
             if (taskMethod.isAnnotationPresent(NeedLoading.class)) {
                 NeedLoading loading = taskMethod.getAnnotation(NeedLoading.class);
@@ -46,7 +46,8 @@ public class LoadingAspect {
                     message = loading.message();
                 }
             }
-            showDialogMethod.invoke(targetObject, message);
+            showDialogMethod.invoke(targetObject, message);*/
+            showDialogMethod.invoke(targetObject);
         } catch (Exception e) {
             e.printStackTrace();
         }

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

@@ -14,7 +14,7 @@ import androidx.appcompat.app.AppCompatActivity;
 import com.miekir.mvp.widget.LoadingDialog;
 
 /**
- * 适配器模式,这个类会适配子类{@link OldBaseMVPActivity}的功能,帮子类实现具体的弹出加载框、弹出提示等基本操作
+ * 适配器模式,这个类会适配子类的功能,帮子类实现具体的弹出加载框、弹出提示等基本操作
  */
 public abstract class BaseActivity extends AppCompatActivity {
     private LoadingDialog mLoadingDialog;
@@ -90,6 +90,10 @@ public abstract class BaseActivity extends AppCompatActivity {
     }
 
     public void showLoading() {
+        if (mLoadingDialog == null) {
+            return;
+        }
+
         if (isMainThread()) {
             mLoadingDialog.show();
         } else {
@@ -102,7 +106,28 @@ public abstract class BaseActivity extends AppCompatActivity {
         }
     }
 
+    public void showLoading(final boolean cancelable) {
+        if (mLoadingDialog == null) {
+            return;
+        }
+
+        if (isMainThread()) {
+            mLoadingDialog.show(cancelable);
+        } else {
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    mLoadingDialog.show(cancelable);
+                }
+            });
+        }
+    }
+
     public void showLoading(final String msg) {
+        if (mLoadingDialog == null) {
+            return;
+        }
+
         if (isMainThread()) {
             mLoadingDialog.show(msg);
         } else {
@@ -115,6 +140,23 @@ public abstract class BaseActivity extends AppCompatActivity {
         }
     }
 
+    public void showLoading(final String msg, final boolean cancelable) {
+        if (mLoadingDialog == null) {
+            return;
+        }
+
+        if (isMainThread()) {
+            mLoadingDialog.show(msg);
+        } else {
+            runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    mLoadingDialog.show(msg, cancelable);
+                }
+            });
+        }
+    }
+
     public void dismissLoading() {
         if (mLoadingDialog != null) {
             if (isMainThread()) {

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

@@ -16,7 +16,7 @@ import com.miekir.mvp.view.IView;
 import com.miekir.mvp.widget.LoadingDialog;
 
 
-public abstract class BaseFragment extends Fragment implements IView {
+public abstract class BaseFragment extends Fragment {
     public FragmentActivity activity;
     //private Unbinder mBinder;
     private LoadingDialog mLoadingDialog;
@@ -50,8 +50,11 @@ public abstract class BaseFragment extends Fragment implements IView {
         return Looper.myLooper() == Looper.getMainLooper();
     }
 
-    @Override
     public void showLoading() {
+        if (mLoadingDialog == null) {
+            return;
+        }
+
         if (isMainThread()) {
             mLoadingDialog.show();
         } else {
@@ -64,8 +67,28 @@ public abstract class BaseFragment extends Fragment implements IView {
         }
     }
 
-    @Override
+    public void showLoading(final boolean cancelable) {
+        if (mLoadingDialog == null) {
+            return;
+        }
+
+        if (isMainThread()) {
+            mLoadingDialog.show(cancelable);
+        } else {
+            activity.runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    mLoadingDialog.show(cancelable);
+                }
+            });
+        }
+    }
+
     public void showLoading(final String msg) {
+        if (mLoadingDialog == null) {
+            return;
+        }
+
         if (isMainThread()) {
             mLoadingDialog.show(msg);
         } else {
@@ -78,7 +101,23 @@ public abstract class BaseFragment extends Fragment implements IView {
         }
     }
 
-    @Override
+    public void showLoading(final String msg, final boolean cancelable) {
+        if (mLoadingDialog == null) {
+            return;
+        }
+
+        if (isMainThread()) {
+            mLoadingDialog.show(msg);
+        } else {
+            activity.runOnUiThread(new Runnable() {
+                @Override
+                public void run() {
+                    mLoadingDialog.show(msg, cancelable);
+                }
+            });
+        }
+    }
+
     public void dismissLoading() {
         if (mLoadingDialog != null) {
             if (isMainThread()) {

+ 1 - 1
mvp/src/main/java/com/miekir/mvp/base/NeedLoading.java

@@ -12,5 +12,5 @@ import java.lang.annotation.Target;
 @Retention(RetentionPolicy.RUNTIME)
 @Target(ElementType.METHOD)
 public @interface NeedLoading {
-    String message() default "";
+    //String message() default "";
 }

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

@@ -34,7 +34,7 @@ public class LoadingDialog {
         // 创建自定义样式的Dialog
         mLoadingDialog = new Dialog(context, R.style.loading_dialog);
         // 设置返回键无效
-        mLoadingDialog.setCancelable(false);
+        //mLoadingDialog.setCancelable(false);
         mLoadingDialog.setContentView(dialogLayout, new LinearLayout.LayoutParams(
                 LinearLayout.LayoutParams.MATCH_PARENT,
                 LinearLayout.LayoutParams.MATCH_PARENT));
@@ -42,9 +42,21 @@ public class LoadingDialog {
 
 
     public void show() {
-        if (mLoadingDialog != null && !mLoadingDialog.isShowing()) {
-            mLoadingDialog.show();
-            mLoadingView.startAnim();
+        if (mLoadingDialog != null) {
+            if (!mLoadingDialog.isShowing()) {
+                mLoadingDialog.show();
+                mLoadingView.startAnim();
+            }
+        }
+    }
+
+    public void show(boolean cancelable) {
+        if (mLoadingDialog != null) {
+            mLoadingDialog.setCancelable(cancelable);
+            if (!mLoadingDialog.isShowing()) {
+                mLoadingDialog.show();
+                mLoadingView.startAnim();
+            }
         }
     }
 
@@ -61,6 +73,20 @@ public class LoadingDialog {
         }
     }
 
+    public void show(String message, boolean cancelable) {
+        if (mLoadingDialog != null) {
+            mLoadingDialog.setCancelable(cancelable);
+            if (!TextUtils.isEmpty(message)) {
+                loadingText.setText(message);
+            }
+
+            if (!mLoadingDialog.isShowing()) {
+                mLoadingDialog.show();
+                mLoadingView.startAnim();
+            }
+        }
+    }
+
     public void close() {
         if (mLoadingDialog != null && mLoadingDialog.isShowing()) {
             mLoadingView.stopAnim();

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

@@ -25,7 +25,7 @@ public abstract class LoadingObserver<T> extends BaseObserver<T> {
         this(viewModel, ContextManager.getInstance().getContext().getString(R.string.network_loading));
     }
 
-    public LoadingObserver(BaseViewModel viewModel, String text) {
+    private LoadingObserver(BaseViewModel viewModel, String text) {
         this.mViewModel = viewModel;
         this.mText = text;
     }