diff --git a/app/src/main/java/com/sw/dualscreen/activity/BaseActivity.kt b/app/src/main/java/com/sw/dualscreen/activity/BaseActivity.kt index 8ca5159..0a58c5e 100644 --- a/app/src/main/java/com/sw/dualscreen/activity/BaseActivity.kt +++ b/app/src/main/java/com/sw/dualscreen/activity/BaseActivity.kt @@ -69,39 +69,43 @@ abstract class BaseActivity : AppCompatActivity() { } open fun registerDataChange() { - lifecycleScope.launch { - viewModel.showLoading.collect { - Timber.d("registerDataChange 用户 showLoading = $it") - if (it) { - showWaitingDialog("") - } else { - hideWaitingDialog() - } - } - } +// lifecycleScope.launch { +// viewModel.showLoading.collect { +// Timber.d("registerDataChange 用户 showLoading = $it") +// if (it) { +// showWaitingDialog("") +// } else { +// hideWaitingDialog() +// } +// } +// } } /** * 显示等待提示框 */ - fun showWaitingDialog(tip: String?): Dialog? { - hideWaitingDialog() - val view = View.inflate(this, R.layout.dialog_waiting, null) - if (!TextUtils.isEmpty(tip)) (view.findViewById(R.id.tvTip) as TextView).text = tip - mDialogWaiting = CustomDialog(this, view, R.style.MyDialog).apply { - setCancelable(true) - setCanceledOnTouchOutside(true) - show() + fun showWaitingDialog(tip: String?){ + runOnUiThread { + hideWaitingDialog() + val view = View.inflate(this, R.layout.dialog_waiting, null) + if (!TextUtils.isEmpty(tip)) (view.findViewById(R.id.tvTip) as TextView).text = + tip + mDialogWaiting = CustomDialog(this, view, R.style.MyDialog).apply { + setCancelable(true) + setCanceledOnTouchOutside(true) + show() + } } - return mDialogWaiting } /** * 隐藏等待提示框 */ fun hideWaitingDialog() { - mDialogWaiting?.dismiss() - mDialogWaiting = null + runOnUiThread { + mDialogWaiting?.dismiss() + mDialogWaiting = null + } } fun showWaitingDialog2(tip: String?) { diff --git a/app/src/main/java/com/sw/dualscreen/activity/fragment/CollectFragment.kt b/app/src/main/java/com/sw/dualscreen/activity/fragment/CollectFragment.kt index 717818e..735d662 100644 --- a/app/src/main/java/com/sw/dualscreen/activity/fragment/CollectFragment.kt +++ b/app/src/main/java/com/sw/dualscreen/activity/fragment/CollectFragment.kt @@ -103,6 +103,7 @@ class CollectFragment : BaseFragment() { val index = foodCollectionList.indexOfFirst { it.imageFile == null } if (index == -1) { ToastUtils.showToast("每次只允许保存${MAX_COUNT}条数据") + settingActivity?.hideWaitingDialog() rerurn@cameraCallback } ImageUtil.uriToBitmap(requireActivity(), uri)?.let { bitmap -> @@ -117,6 +118,7 @@ class CollectFragment : BaseFragment() { } catch (e: Exception) { e.printStackTrace() ToastUtils.showToast("操作失败") + settingActivity?.hideWaitingDialog() return@let } val file = BitmapSaver.saveToAppFilesDir( @@ -134,10 +136,12 @@ class CollectFragment : BaseFragment() { if (bitmap.isRecycled.not()) { bitmap.recycle() } + settingActivity?.hideWaitingDialog() } } catch (e: Exception) { e.printStackTrace() - ToastUtils.showToast("程序异常") + settingActivity?.hideWaitingDialog() + ToastUtils.showToast("程序异常${e.message}") } } @@ -148,7 +152,11 @@ class CollectFragment : BaseFragment() { ToastUtils.showToast("每次只允许保存${MAX_COUNT}条数据") return } - cameraUtils.takePhoto(cameraCallback) + settingActivity?.showWaitingDialog("拍照中……") + cameraUtils.takePhoto(cameraCallback) { errMsg -> + ToastUtils.showToast(errMsg) + settingActivity?.hideWaitingDialog() + } } override fun initialize() { diff --git a/app/src/main/java/com/sw/dualscreen/utils/CameraUtils.kt b/app/src/main/java/com/sw/dualscreen/utils/CameraUtils.kt index fe6deb3..c31865b 100644 --- a/app/src/main/java/com/sw/dualscreen/utils/CameraUtils.kt +++ b/app/src/main/java/com/sw/dualscreen/utils/CameraUtils.kt @@ -11,16 +11,18 @@ class CameraUtils(private var activity: ComponentActivity) { private var cameraController: LifecycleCameraController? = null private var photoCaptureHelper: PhotoCaptureHelper? = null + private var failCallback: ((msg: String) -> Unit)? = null // private var isCameraReady = false - fun takePhoto(callback: (Uri) -> Unit) { + fun takePhoto(succCallback: (Uri) -> Unit, failCallback: (msg: String) -> Unit = { }) { + this.failCallback = failCallback cameraController?.let { if (photoCaptureHelper == null) { initCaptureHelper() } } photoCaptureHelper?.let { - it.addSuccessCallback(callback) + it.addSuccessCallback(succCallback) it.bindCameraCallback { bind() } @@ -35,6 +37,7 @@ class CameraUtils(private var activity: ComponentActivity) { onSuccess = {}, onError = { msg -> //toast(msg) + failCallback?.invoke(msg) } ) } diff --git a/app/src/main/res/drawable/dialog_waiting.xml b/app/src/main/res/drawable/dialog_waiting.xml index b47a21c..e7baf2a 100644 --- a/app/src/main/res/drawable/dialog_waiting.xml +++ b/app/src/main/res/drawable/dialog_waiting.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_waiting.xml b/app/src/main/res/layout/dialog_waiting.xml index 4746621..a449960 100644 --- a/app/src/main/res/layout/dialog_waiting.xml +++ b/app/src/main/res/layout/dialog_waiting.xml @@ -1,32 +1,26 @@ - + - + + + android:layout_height="wrap_content" + android:text="请稍后……" + android:gravity="center_vertical" + android:layout_marginStart="10dp" + android:textColor="@color/white" + android:textSize="26sp" /> - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/presentation_face_pay.xml b/app/src/main/res/layout/presentation_face_pay.xml index 81d9c4f..e6098d6 100644 --- a/app/src/main/res/layout/presentation_face_pay.xml +++ b/app/src/main/res/layout/presentation_face_pay.xml @@ -134,7 +134,7 @@ android:layout_marginTop="55dp" android:text="请正视屏幕进行面部识别..." android:textColor="#ff5e7585" - android:textSize="24sp" + android:textSize="22sp" android:textStyle="bold" tools:ignore="HardcodedText" /> diff --git a/app/src/main/res/layout/presentation_main_screen.xml b/app/src/main/res/layout/presentation_main_screen.xml index 5b405b3..b31b0e3 100644 --- a/app/src/main/res/layout/presentation_main_screen.xml +++ b/app/src/main/res/layout/presentation_main_screen.xml @@ -76,7 +76,7 @@ android:layout_marginBottom="56dp" android:text="请正视屏幕进行面部识别..." android:textColor="@color/white" - android:textSize="24sp" + android:textSize="22sp" android:visibility="gone" /> { Context context = App.getContext(); if (toast == null) { diff --git a/lib_face/src/main/java/com/sw/plate/utils/arcface/ConfigUtil.java b/lib_face/src/main/java/com/sw/plate/utils/arcface/ConfigUtil.java index 6c50805..a874581 100644 --- a/lib_face/src/main/java/com/sw/plate/utils/arcface/ConfigUtil.java +++ b/lib_face/src/main/java/com/sw/plate/utils/arcface/ConfigUtil.java @@ -89,7 +89,8 @@ public class ConfigUtil { */ // private static final String DEFAULT_PREVIEW_SIZE = "1280x720"; // private static final String DEFAULT_PREVIEW_SIZE = "1080x720"; - private static final String DEFAULT_PREVIEW_SIZE = "720x1080"; +// private static final String DEFAULT_PREVIEW_SIZE = "720x1080"; + private static final String DEFAULT_PREVIEW_SIZE = "720x1280"; // private static final String DEFAULT_PREVIEW_SIZE = "608x456"; // private static final String DEFAULT_PREVIEW_SIZE = "1024x768"; // private static final String DEFAULT_PREVIEW_SIZE = "800x600";