From: TrillGates Date: Wed, 15 Sep 2021 12:35:35 +0000 (+0800) Subject: fixed dialog crash bug. X-Git-Url: http://git.snicker.com.cn/sitemap.xml?a=commitdiff_plain;h=4ac55dc5cca7c170dcf01682ca9e1e1689355328;p=IcBlood.git fixed dialog crash bug. --- diff --git a/app/build.gradle b/app/build.gradle index c9d9f94..daa872b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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') } diff --git a/app/src/main/java/com/ic/blood/BloodApp.java b/app/src/main/java/com/ic/blood/BloodApp.java index d8199b1..2c7c479 100644 --- a/app/src/main/java/com/ic/blood/BloodApp.java +++ b/app/src/main/java/com/ic/blood/BloodApp.java @@ -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"); diff --git a/app/src/main/java/com/ic/blood/fragment/HeartRateAndBloodOxygenFragment.java b/app/src/main/java/com/ic/blood/fragment/HeartRateAndBloodOxygenFragment.java index 023b298..39d4f81 100644 --- a/app/src/main/java/com/ic/blood/fragment/HeartRateAndBloodOxygenFragment.java +++ b/app/src/main/java/com/ic/blood/fragment/HeartRateAndBloodOxygenFragment.java @@ -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; } diff --git a/app/src/main/java/com/ic/blood/presenter/BloodPresenter.java b/app/src/main/java/com/ic/blood/presenter/BloodPresenter.java index 506e7a5..cb876df 100644 --- a/app/src/main/java/com/ic/blood/presenter/BloodPresenter.java +++ b/app/src/main/java/com/ic/blood/presenter/BloodPresenter.java @@ -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 index 67ca447..0000000 --- a/app/src/main/java/com/ic/blood/widget/CustomDialogStrategy.java +++ /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 index a772d74..0000000 --- a/app/src/main/java/com/ic/blood/widget/CustomMaterialDialog.java +++ /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); - } -} diff --git a/app/src/main/res/layout/fragment_oxygen.xml b/app/src/main/res/layout/fragment_oxygen.xml index a00dd00..365a3dd 100644 --- a/app/src/main/res/layout/fragment_oxygen.xml +++ b/app/src/main/res/layout/fragment_oxygen.xml @@ -141,7 +141,6 @@ android:text="@{highValue}" /> -