fixed dialog crash bug.
authorTrillGates <williamtrillgates@gmail.com>
Wed, 15 Sep 2021 12:35:35 +0000 (20:35 +0800)
committerTrillGates <williamtrillgates@gmail.com>
Wed, 15 Sep 2021 12:35:35 +0000 (20:35 +0800)
app/build.gradle
app/src/main/java/com/ic/blood/BloodApp.java
app/src/main/java/com/ic/blood/fragment/HeartRateAndBloodOxygenFragment.java
app/src/main/java/com/ic/blood/presenter/BloodPresenter.java
app/src/main/java/com/ic/blood/widget/CustomDialogStrategy.java [deleted file]
app/src/main/java/com/ic/blood/widget/CustomMaterialDialog.java [deleted file]
app/src/main/res/layout/fragment_oxygen.xml

index c9d9f94..daa872b 100644 (file)
@@ -106,10 +106,6 @@ dependencies {
     implementation 'androidx.appcompat:appcompat:1.1.0'
     implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
-    testImplementation 'junit:junit:4.12'
-    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
-    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
-
     // ViewModel
     implementation "androidx.lifecycle:lifecycle-viewmodel:2.2.0"
     // LiveData
@@ -130,7 +126,6 @@ dependencies {
     implementation 'com.google.android.material:material:1.2.0-alpha05'
 
     implementation 'com.jakewharton.threetenabp:threetenabp:1.2.2'
-    implementation 'com.github.xuexiangjys:XUI:1.1.7'
 
     implementation files('libs/ICLoger-release.aar')
 }
index d8199b1..2c7c479 100644 (file)
@@ -5,7 +5,6 @@ import android.app.Application;
 import com.ic.blood.util.IcLog;
 import com.ic.iclooger.CrashHandler;
 import com.ic.iclooger.ICLogger;
-import com.xuexiang.xui.XUI;
 
 public class BloodApp extends Application {
 
@@ -14,9 +13,6 @@ public class BloodApp extends Application {
         super.onCreate();
         IcLog.setLogHead("IcBlood");
 
-        XUI.init(this);
-        XUI.debug(true);
-
         CrashHandler crashHandler = CrashHandler.getInstance();
         crashHandler.init(getApplicationContext(), getString(R.string.program_abnormal));
         ICLogger.init(getApplicationContext(), "IcBlood");
index 023b298..39d4f81 100644 (file)
@@ -31,7 +31,6 @@ import pl.droidsonroids.gif.GifImageView;
 
 import static android.content.Context.POWER_SERVICE;
 
-
 /**
  * 这个是只有心率和血氧的UI
  */
@@ -182,15 +181,12 @@ public class HeartRateAndBloodOxygenFragment extends Fragment {
     public void onDestroy() {
         super.onDestroy();
         IcLog.i(TAG, "onDestroy");
-
         //取消广播注册,释放资源
         bloodModel.onViewDestroy();
         bloodModel = null;
-
         if (gifFromAssets != null) {
             gifFromAssets.recycle();
         }
-
         delayHandler = null;
     }
 
index 506e7a5..cb876df 100644 (file)
@@ -15,20 +15,20 @@ import android.os.IBinder;
 import android.os.Looper;
 import android.os.Message;
 import android.util.Log;
+import android.widget.TextView;
 import android.widget.Toast;
 
 import androidx.annotation.NonNull;
+import androidx.appcompat.app.AlertDialog;
 import androidx.lifecycle.LiveData;
 import androidx.lifecycle.MutableLiveData;
 
 import com.ic.blood.R;
 import com.ic.blood.util.IcLog;
 import com.ic.blood.util.SystemUtils;
-import com.ic.blood.widget.CustomDialogStrategy;
 import com.ic.work.IHeartRateSensorCallback;
 import com.ic.work.IHeartRateSensorService;
 import com.ic.work.domain.HeartRate;
-import com.xuexiang.xui.widget.dialog.DialogLoader;
 
 import static android.media.AudioManager.FX_FOCUS_NAVIGATION_DOWN;
 
@@ -54,6 +54,7 @@ public class BloodPresenter {
     private boolean mHasWear = false;
 
     private TestType testType = TestType.ALL;
+    private AlertDialog alertShutdownDialog;
 
     public enum TestType {
         ALL, JUST_OXYGEN, JUST_HEART_RATE
@@ -349,24 +350,28 @@ public class BloodPresenter {
                     Toast.makeText(mContext, mContext.getString(R.string.background_test), Toast.LENGTH_SHORT).show();
                     break;
                 case WAITING_TASK_TYPE:
-                    showDialog();
+                    AlertDialog alertDialog = showDialog();
+                    alertDialog.show();
+                    TextView contentText = dialog.findViewById(android.R.id.message);
+                    contentText.setTextSize(26.0f);
                     break;
             }
         }
     };
 
-    private void showDialog() {
-        DialogLoader mDialogLoader = DialogLoader.getInstance().setIDialogStrategy(new CustomDialogStrategy());
-        dialog = mDialogLoader.showTipDialog(mActivity, R.mipmap.warn, mContext.getString(R.string.dialog_warn),
-                mContext.getString(R.string.background_wait), mContext.getString(R.string.dialog_confirm),
-                (dialogInterface, i) -> {
-                    if (dialogInterface != null) {
-                        dialogInterface.dismiss();
-                    }
-                    if (mActivity != null) {
-                        mActivity.onBackPressed();
-                    }
-                });
+    private AlertDialog showDialog() {
+        if (alertShutdownDialog == null) {
+            AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
+            builder.setMessage(mContext.getString(R.string.background_wait))
+                    .setPositiveButton(mContext.getString(R.string.dialog_confirm), (dialog, id) -> {
+                        dialog.dismiss();
+                        if (mActivity != null) {
+                            mActivity.onBackPressed();
+                        }
+                    });
+            alertShutdownDialog = builder.create();
+        }
+        return alertShutdownDialog;
     }
 
     private String getTestingString() {
diff --git a/app/src/main/java/com/ic/blood/widget/CustomDialogStrategy.java b/app/src/main/java/com/ic/blood/widget/CustomDialogStrategy.java
deleted file mode 100644 (file)
index 67ca447..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-package com.ic.blood.widget;
-
-import android.annotation.SuppressLint;
-import android.app.Dialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.graphics.Color;
-
-import androidx.annotation.NonNull;
-
-import com.ic.blood.R;
-import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction;
-import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog;
-import com.xuexiang.xui.widget.dialog.materialdialog.Theme;
-import com.xuexiang.xui.widget.dialog.strategy.IDialogStrategy;
-import com.xuexiang.xui.widget.dialog.strategy.InputCallback;
-import com.xuexiang.xui.widget.dialog.strategy.InputInfo;
-
-/**
- * @author: k.liang
- * @date: 2021/7/17
- */
-public class CustomDialogStrategy implements IDialogStrategy {
-
-    @SuppressLint("ResourceType")
-    @Override
-    public Dialog showTipDialog(Context context, int icon, String title, String content, String submitText, DialogInterface.OnClickListener listener) {
-        MaterialDialog.Builder builder = new MaterialDialog.Builder(context);
-        builder.backgroundColor(Color.parseColor("#F2F2F2"));
-        builder.title(title);
-        builder.titleColor(Color.BLACK);
-        builder.content(content);
-        builder.contentColor(Color.BLACK);
-        builder.positiveText(submitText);
-        builder.positiveColor(Color.BLACK);
-        builder.onPositive(new MaterialDialog.SingleButtonCallback() {
-            @Override
-            public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
-                if (listener != null) {
-                    listener.onClick(dialog, which.ordinal());
-                } else {
-                    dialog.dismiss();
-                }
-            }
-        });
-        builder.cancelable(false);
-        builder.autoDismiss(false);
-        CustomMaterialDialog customMaterialDialog = new CustomMaterialDialog(builder);
-        customMaterialDialog.setTitleSize(24);
-        customMaterialDialog.setContentSize(22);
-        customMaterialDialog.setButtonSize(24);
-        customMaterialDialog.show();
-        return customMaterialDialog;
-    }
-
-    @Override
-    public Dialog showTipDialog(Context context, String title, String content, String submitText) {
-        return new CustomMaterialDialog.Builder(context)
-                .title(title)
-                .content(content)
-                .positiveText(submitText)
-                .show();
-    }
-
-    @Override
-    public Dialog showConfirmDialog(Context context, String title, String content, String submitText, DialogInterface.OnClickListener submitListener, String cancelText, DialogInterface.OnClickListener cancelListener) {
-        return null;
-    }
-
-    @Override
-    public Dialog showConfirmDialog(Context context, String content, String submitText, DialogInterface.OnClickListener submitListener, String cancelText, DialogInterface.OnClickListener cancelListener) {
-        return null;
-    }
-
-    @Override
-    public Dialog showConfirmDialog(Context context, String content, String submitText, DialogInterface.OnClickListener submitListener, String cancelText) {
-        return null;
-    }
-
-    @Override
-    public Dialog showInputDialog(Context context, int icon, String title, String content, InputInfo inputInfo, InputCallback inputCallback, String submitText, DialogInterface.OnClickListener submitListener, String cancelText, DialogInterface.OnClickListener cancelListener) {
-        return null;
-    }
-
-    @Override
-    public Dialog showContextMenuDialog(Context context, String title, String[] items, DialogInterface.OnClickListener listener) {
-        return null;
-    }
-
-    @Override
-    public Dialog showContextMenuDialog(Context context, String title, int itemsId, DialogInterface.OnClickListener listener) {
-        return null;
-    }
-
-    @Override
-    public Dialog showSingleChoiceDialog(Context context, String title, String[] items, int selectedIndex, DialogInterface.OnClickListener listener, String submitText, String cancelText) {
-        return null;
-    }
-
-    @Override
-    public Dialog showSingleChoiceDialog(Context context, String title, int itemsId, int selectedIndex, DialogInterface.OnClickListener listener, String submitText, String cancelText) {
-        return null;
-    }
-}
diff --git a/app/src/main/java/com/ic/blood/widget/CustomMaterialDialog.java b/app/src/main/java/com/ic/blood/widget/CustomMaterialDialog.java
deleted file mode 100644 (file)
index a772d74..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.ic.blood.widget;
-
-import com.xuexiang.xui.widget.dialog.materialdialog.DialogAction;
-import com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog;
-
-/**
- * @author: k.liang
- * @date: 2021/7/17
- */
-public class CustomMaterialDialog extends MaterialDialog {
-
-    protected CustomMaterialDialog(Builder builder) {
-        super(builder);
-    }
-
-    public void setTitleSize(float size){
-        getTitleView().setTextSize(size);
-    }
-
-    public void setContentSize(float size){
-        getContentView().setTextSize(size);
-    }
-
-    public void setButtonSize(float size){
-        getActionButton(DialogAction.POSITIVE).setTextSize(size);
-    }
-}
index a00dd00..365a3dd 100644 (file)
                 android:text="@{highValue}" />
         </RelativeLayout>
 
-
         <TextView
             style="@style/bloodTextStyle"
             android:layout_gravity="center|bottom"