From cd375bfaf83f0a63e5c81a8bc4f88363011af023 Mon Sep 17 00:00:00 2001 From: zxj <275873859@qq.com> Date: Thu, 21 Aug 2025 15:50:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E5=90=8E=E8=B7=B3=E8=BD=AC=E7=95=8C=E9=9D=A2?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 8 ++++---- app/src/main/AndroidManifest.xml | 13 ++++++++++++- .../sw/platecabinet/activity/BaseActivity.kt | 12 +++++++++--- .../activity/LoginByFaceActivity.kt | 4 ++-- .../sw/platecabinet/activity/MainActivity.kt | 8 ++++++-- .../fragment/BindPlateFragment.kt | 3 ++- .../fragment/PlateOpenFragment.kt | 12 +++++++++++- .../fragment/SettingListFragment.kt | 6 +++++- .../sw/platecabinet/receiver/BootReceiver.kt | 19 +++++++++++++++++++ 9 files changed, 70 insertions(+), 15 deletions(-) create mode 100644 app/src/main/java/com/sw/platecabinet/receiver/BootReceiver.kt diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 265a110..b5ddeba 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -22,13 +22,13 @@ android { minSdk = 24 targetSdk = 35 versionCode = 1 - versionName = "1.0" + versionName = "1.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" -// ndk { -// abiFilters.addAll(listOf("armeabi-v7a"/*, "arm64-v8a"*/)) -// } + ndk { + abiFilters.addAll(listOf("armeabi-v7a"/*, "arm64-v8a"*/)) + } setProperty("archivesBaseName", "智能餐盘柜_${versionName}") } diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 30198e3..0883c29 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -14,6 +14,7 @@ + + + + + + + + android:exported="false" + android:launchMode="singleTask"> : AppCompatActivity() { MainActivity.start( context, pageType = PageType.PLATE_TIP, - equipmentUserInfo = equipmentUserInfo + equipmentUserInfo = equipmentUserInfo, + isAdmin ) return } @@ -329,7 +330,11 @@ abstract class BaseActivity : AppCompatActivity() { equipmentUserInfo.equipmentBoxCode!!.toInt(), object : SerialPortManager.SendCallback { override fun onSuccess() { - MainActivity.start(context, pageType = PageType.PLATE_TIP) + MainActivity.start( + context, + pageType = PageType.PLATE_TIP, + isAdmin = isAdmin + ) } override fun onFail(e: Exception?) { @@ -344,7 +349,8 @@ abstract class BaseActivity : AppCompatActivity() { MainActivity.start( context, pageType = PageType.PLATE_TIP, - equipmentUserInfo = equipmentUserInfo + equipmentUserInfo = equipmentUserInfo, + isAdmin = isAdmin ) } } diff --git a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt index ae0b3d0..69d9283 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/LoginByFaceActivity.kt @@ -255,7 +255,7 @@ class LoginByFaceActivity : BaseActivity(), val layoutParams = adjustPreviewViewSize( binding.dualCameraTexturePreviewRgb, binding.dualCameraTexturePreviewRgb, binding.dualCameraFaceRectView, - previewSizeRgb, displayOrientation, 0.8f + previewSizeRgb, displayOrientation, 0.6f ) Timber.d("initRgbCamera previewSizeRgb = ${previewSizeRgb.width}-${previewSizeRgb.height}") Timber.d("initRgbCamera layoutParams = ${layoutParams.width}-${layoutParams.height}") @@ -400,7 +400,7 @@ class LoginByFaceActivity : BaseActivity(), override fun handleLoginSuccess(equipmentUserInfo: EquipmentUserInfo, isAdmin: Boolean) { super.handleLoginSuccess(equipmentUserInfo, isAdmin) - goInitActivity() +// goInitActivity() } fun initCountTime() { diff --git a/app/src/main/java/com/sw/platecabinet/activity/MainActivity.kt b/app/src/main/java/com/sw/platecabinet/activity/MainActivity.kt index 5b673eb..c99bea5 100644 --- a/app/src/main/java/com/sw/platecabinet/activity/MainActivity.kt +++ b/app/src/main/java/com/sw/platecabinet/activity/MainActivity.kt @@ -32,27 +32,31 @@ class MainActivity : BaseActivity() { companion object { private const val PARAM_PAGE_TYPE = "pageType" private const val PARAM_EQUIPMENT_INFO = "equipmentUserInfo" + private const val PARAM_IS_ADMIN = "isAdmin" fun start( context: Context, pageType: PageType, - equipmentUserInfo: EquipmentUserInfo? = null + equipmentUserInfo: EquipmentUserInfo? = null, + isAdmin: Boolean = false ) { val intent = Intent(context, MainActivity::class.java) intent.putExtra(PARAM_PAGE_TYPE, pageType.name) intent.putExtra(PARAM_EQUIPMENT_INFO, equipmentUserInfo) + intent.putExtra(PARAM_IS_ADMIN, isAdmin) context.startActivity(intent) } } override fun initialize() { val param = intent.getStringExtra(PARAM_PAGE_TYPE) + val isAdmin = intent.getBooleanExtra(PARAM_IS_ADMIN, false) val equipmentUserInfo = intent.getParcelableExtra(PARAM_EQUIPMENT_INFO) pageType = param?.let { PageType.valueOf(param) } ?: PageType.SETTING_LIST fragmentHelper = FragmentHelper(supportFragmentManager, R.id.fragment_container) val page = when (pageType) { PageType.SETTING_LIST -> SettingListFragment() PageType.BIND_PLATE -> BindPlateFragment.newInstance(equipmentUserInfo) - PageType.PLATE_TIP -> PlateOpenFragment.newInstance(equipmentUserInfo) + PageType.PLATE_TIP -> PlateOpenFragment.newInstance(equipmentUserInfo, isAdmin) PageType.UNBIND_PLATE -> UnBindPlateFragment.newInstance(equipmentUserInfo) PageType.PLATE_CABINET_FULL -> PlateCabinetFullFragment() } diff --git a/app/src/main/java/com/sw/platecabinet/fragment/BindPlateFragment.kt b/app/src/main/java/com/sw/platecabinet/fragment/BindPlateFragment.kt index 37035a4..fd98552 100644 --- a/app/src/main/java/com/sw/platecabinet/fragment/BindPlateFragment.kt +++ b/app/src/main/java/com/sw/platecabinet/fragment/BindPlateFragment.kt @@ -213,7 +213,8 @@ class BindPlateFragment : BaseFragment( MainActivity.start( requireContext(), pageType = PageType.PLATE_TIP, - equipmentUserInfo = errorInfo.equipmentUserInfo + equipmentUserInfo = errorInfo.equipmentUserInfo, + isAdmin = true ) } else { SerialApi.openPlate( diff --git a/app/src/main/java/com/sw/platecabinet/fragment/PlateOpenFragment.kt b/app/src/main/java/com/sw/platecabinet/fragment/PlateOpenFragment.kt index 3e1df6b..1aa3c1d 100644 --- a/app/src/main/java/com/sw/platecabinet/fragment/PlateOpenFragment.kt +++ b/app/src/main/java/com/sw/platecabinet/fragment/PlateOpenFragment.kt @@ -1,9 +1,11 @@ package com.sw.platecabinet.fragment +import android.content.Intent import android.os.Bundle import android.os.CountDownTimer import com.sw.platecabinet.Constants import com.sw.platecabinet.R +import com.sw.platecabinet.activity.InitActivity import com.sw.platecabinet.databinding.FragmentPlateOpenBinding import com.sw.platecabinet.model.response.EquipmentUserInfo @@ -14,14 +16,17 @@ class PlateOpenFragment : BaseFragment(FragmentPlateOpenBinding::inflate) { private var totalTimeInMillis: Long = Constants.AUTO_CLOSE_TIME * 1000 internal val KEY_ACTION_TYPE = "actionType" + internal val PARAM_IS_ADMIN = "isAdmin" private var info: EquipmentUserInfo? = null + private var isAdmin: Boolean = false companion object { @JvmStatic - fun newInstance(userInfo: EquipmentUserInfo?) = + fun newInstance(userInfo: EquipmentUserInfo?, isAdmin: Boolean) = PlateOpenFragment().apply { arguments = Bundle().apply { putParcelable(KEY_ACTION_TYPE, userInfo) + putBoolean(PARAM_IS_ADMIN, isAdmin) } } } @@ -29,6 +34,7 @@ class PlateOpenFragment : override fun initialize() { arguments?.let { info = it.getParcelable(KEY_ACTION_TYPE) + isAdmin = it.getBoolean(PARAM_IS_ADMIN) info?.let { if (!it.hasEquipmentBox()) { binding.ivType.setImageResource(R.drawable.ic_tip_warn) @@ -60,6 +66,10 @@ class PlateOpenFragment : override fun onFinish() { activity?.finish() + if (!isAdmin) { + val intent = Intent(context, InitActivity::class.java) + startActivity(intent) + } } }.start() } diff --git a/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt b/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt index b6a3e69..0758cf5 100644 --- a/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt +++ b/app/src/main/java/com/sw/platecabinet/fragment/SettingListFragment.kt @@ -168,7 +168,11 @@ class SettingListFragment : SerialApi.openPlate(equipmentBoxCode, object : SerialPortManager.SendCallback { override fun onSuccess() { hideWaitingDialog() - MainActivity.start(requireContext(), pageType = PageType.PLATE_TIP) + MainActivity.start( + requireContext(), + pageType = PageType.PLATE_TIP, + isAdmin = true + ) } override fun onFail(e: Exception?) { diff --git a/app/src/main/java/com/sw/platecabinet/receiver/BootReceiver.kt b/app/src/main/java/com/sw/platecabinet/receiver/BootReceiver.kt new file mode 100644 index 0000000..2bde1f3 --- /dev/null +++ b/app/src/main/java/com/sw/platecabinet/receiver/BootReceiver.kt @@ -0,0 +1,19 @@ +package com.sw.platecabinet.receiver + +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import com.sw.platecabinet.activity.LoginByFaceActivity +import timber.log.Timber + +class BootReceiver : BroadcastReceiver() { + + override fun onReceive(context: Context, intent: Intent) { + if (Intent.ACTION_BOOT_COMPLETED == intent.action) { + Timber.d("设备启动完成,开始执行自启动逻辑") + val intent = Intent(context, LoginByFaceActivity::class.java) + intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + context.startActivity(intent) + } + } +} \ No newline at end of file