修复了登录成功后跳转界面错误问题

This commit is contained in:
zxj
2025-08-21 15:50:05 +08:00
parent 7a832ec40d
commit cd375bfaf8
9 changed files with 70 additions and 15 deletions
+4 -4
View File
@@ -22,13 +22,13 @@ android {
minSdk = 24 minSdk = 24
targetSdk = 35 targetSdk = 35
versionCode = 1 versionCode = 1
versionName = "1.0" versionName = "1.1"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
// ndk { ndk {
// abiFilters.addAll(listOf("armeabi-v7a"/*, "arm64-v8a"*/)) abiFilters.addAll(listOf("armeabi-v7a"/*, "arm64-v8a"*/))
// } }
setProperty("archivesBaseName", "智能餐盘柜_${versionName}") setProperty("archivesBaseName", "智能餐盘柜_${versionName}")
} }
+12 -1
View File
@@ -14,6 +14,7 @@
<uses-permission <uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE" android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" /> android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<application <application
android:name=".MyApp" android:name=".MyApp"
@@ -26,13 +27,23 @@
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/Theme.SmartPlateCabinet" android:theme="@style/Theme.SmartPlateCabinet"
tools:targetApi="31"> tools:targetApi="31">
<!-- 注册BootReceiver,监听开机完成广播 -->
<receiver
android:name=".receiver.BootReceiver"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<activity <activity
android:name=".activity.UnBindDialogActivity" android:name=".activity.UnBindDialogActivity"
android:exported="false" android:exported="false"
android:theme="@style/DialogActivity" /> android:theme="@style/DialogActivity" />
<activity <activity
android:name=".activity.InitActivity" android:name=".activity.InitActivity"
android:exported="false"> android:exported="false"
android:launchMode="singleTask">
</activity> </activity>
<activity <activity
android:name=".activity.LoginByPwdActivity" android:name=".activity.LoginByPwdActivity"
@@ -320,7 +320,8 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
MainActivity.start( MainActivity.start(
context, context,
pageType = PageType.PLATE_TIP, pageType = PageType.PLATE_TIP,
equipmentUserInfo = equipmentUserInfo equipmentUserInfo = equipmentUserInfo,
isAdmin
) )
return return
} }
@@ -329,7 +330,11 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
equipmentUserInfo.equipmentBoxCode!!.toInt(), equipmentUserInfo.equipmentBoxCode!!.toInt(),
object : SerialPortManager.SendCallback { object : SerialPortManager.SendCallback {
override fun onSuccess() { override fun onSuccess() {
MainActivity.start(context, pageType = PageType.PLATE_TIP) MainActivity.start(
context,
pageType = PageType.PLATE_TIP,
isAdmin = isAdmin
)
} }
override fun onFail(e: Exception?) { override fun onFail(e: Exception?) {
@@ -344,7 +349,8 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
MainActivity.start( MainActivity.start(
context, context,
pageType = PageType.PLATE_TIP, pageType = PageType.PLATE_TIP,
equipmentUserInfo = equipmentUserInfo equipmentUserInfo = equipmentUserInfo,
isAdmin = isAdmin
) )
} }
} }
@@ -255,7 +255,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
val layoutParams = adjustPreviewViewSize( val layoutParams = adjustPreviewViewSize(
binding.dualCameraTexturePreviewRgb, binding.dualCameraTexturePreviewRgb,
binding.dualCameraTexturePreviewRgb, binding.dualCameraFaceRectView, binding.dualCameraTexturePreviewRgb, binding.dualCameraFaceRectView,
previewSizeRgb, displayOrientation, 0.8f previewSizeRgb, displayOrientation, 0.6f
) )
Timber.d("initRgbCamera previewSizeRgb = ${previewSizeRgb.width}-${previewSizeRgb.height}") Timber.d("initRgbCamera previewSizeRgb = ${previewSizeRgb.width}-${previewSizeRgb.height}")
Timber.d("initRgbCamera layoutParams = ${layoutParams.width}-${layoutParams.height}") Timber.d("initRgbCamera layoutParams = ${layoutParams.width}-${layoutParams.height}")
@@ -400,7 +400,7 @@ class LoginByFaceActivity : BaseActivity<ActivityLoginFaceBinding>(),
override fun handleLoginSuccess(equipmentUserInfo: EquipmentUserInfo, isAdmin: Boolean) { override fun handleLoginSuccess(equipmentUserInfo: EquipmentUserInfo, isAdmin: Boolean) {
super.handleLoginSuccess(equipmentUserInfo, isAdmin) super.handleLoginSuccess(equipmentUserInfo, isAdmin)
goInitActivity() // goInitActivity()
} }
fun initCountTime() { fun initCountTime() {
@@ -32,27 +32,31 @@ class MainActivity : BaseActivity<ActivityMainBinding>() {
companion object { companion object {
private const val PARAM_PAGE_TYPE = "pageType" private const val PARAM_PAGE_TYPE = "pageType"
private const val PARAM_EQUIPMENT_INFO = "equipmentUserInfo" private const val PARAM_EQUIPMENT_INFO = "equipmentUserInfo"
private const val PARAM_IS_ADMIN = "isAdmin"
fun start( fun start(
context: Context, context: Context,
pageType: PageType, pageType: PageType,
equipmentUserInfo: EquipmentUserInfo? = null equipmentUserInfo: EquipmentUserInfo? = null,
isAdmin: Boolean = false
) { ) {
val intent = Intent(context, MainActivity::class.java) val intent = Intent(context, MainActivity::class.java)
intent.putExtra(PARAM_PAGE_TYPE, pageType.name) intent.putExtra(PARAM_PAGE_TYPE, pageType.name)
intent.putExtra(PARAM_EQUIPMENT_INFO, equipmentUserInfo) intent.putExtra(PARAM_EQUIPMENT_INFO, equipmentUserInfo)
intent.putExtra(PARAM_IS_ADMIN, isAdmin)
context.startActivity(intent) context.startActivity(intent)
} }
} }
override fun initialize() { override fun initialize() {
val param = intent.getStringExtra(PARAM_PAGE_TYPE) val param = intent.getStringExtra(PARAM_PAGE_TYPE)
val isAdmin = intent.getBooleanExtra(PARAM_IS_ADMIN, false)
val equipmentUserInfo = intent.getParcelableExtra<EquipmentUserInfo>(PARAM_EQUIPMENT_INFO) val equipmentUserInfo = intent.getParcelableExtra<EquipmentUserInfo>(PARAM_EQUIPMENT_INFO)
pageType = param?.let { PageType.valueOf(param) } ?: PageType.SETTING_LIST pageType = param?.let { PageType.valueOf(param) } ?: PageType.SETTING_LIST
fragmentHelper = FragmentHelper(supportFragmentManager, R.id.fragment_container) fragmentHelper = FragmentHelper(supportFragmentManager, R.id.fragment_container)
val page = when (pageType) { val page = when (pageType) {
PageType.SETTING_LIST -> SettingListFragment() PageType.SETTING_LIST -> SettingListFragment()
PageType.BIND_PLATE -> BindPlateFragment.newInstance(equipmentUserInfo) 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.UNBIND_PLATE -> UnBindPlateFragment.newInstance(equipmentUserInfo)
PageType.PLATE_CABINET_FULL -> PlateCabinetFullFragment() PageType.PLATE_CABINET_FULL -> PlateCabinetFullFragment()
} }
@@ -213,7 +213,8 @@ class BindPlateFragment : BaseFragment<FragmentBindPlateBinding>(
MainActivity.start( MainActivity.start(
requireContext(), requireContext(),
pageType = PageType.PLATE_TIP, pageType = PageType.PLATE_TIP,
equipmentUserInfo = errorInfo.equipmentUserInfo equipmentUserInfo = errorInfo.equipmentUserInfo,
isAdmin = true
) )
} else { } else {
SerialApi.openPlate( SerialApi.openPlate(
@@ -1,9 +1,11 @@
package com.sw.platecabinet.fragment package com.sw.platecabinet.fragment
import android.content.Intent
import android.os.Bundle import android.os.Bundle
import android.os.CountDownTimer import android.os.CountDownTimer
import com.sw.platecabinet.Constants import com.sw.platecabinet.Constants
import com.sw.platecabinet.R import com.sw.platecabinet.R
import com.sw.platecabinet.activity.InitActivity
import com.sw.platecabinet.databinding.FragmentPlateOpenBinding import com.sw.platecabinet.databinding.FragmentPlateOpenBinding
import com.sw.platecabinet.model.response.EquipmentUserInfo import com.sw.platecabinet.model.response.EquipmentUserInfo
@@ -14,14 +16,17 @@ class PlateOpenFragment :
BaseFragment<FragmentPlateOpenBinding>(FragmentPlateOpenBinding::inflate) { BaseFragment<FragmentPlateOpenBinding>(FragmentPlateOpenBinding::inflate) {
private var totalTimeInMillis: Long = Constants.AUTO_CLOSE_TIME * 1000 private var totalTimeInMillis: Long = Constants.AUTO_CLOSE_TIME * 1000
internal val KEY_ACTION_TYPE = "actionType" internal val KEY_ACTION_TYPE = "actionType"
internal val PARAM_IS_ADMIN = "isAdmin"
private var info: EquipmentUserInfo? = null private var info: EquipmentUserInfo? = null
private var isAdmin: Boolean = false
companion object { companion object {
@JvmStatic @JvmStatic
fun newInstance(userInfo: EquipmentUserInfo?) = fun newInstance(userInfo: EquipmentUserInfo?, isAdmin: Boolean) =
PlateOpenFragment().apply { PlateOpenFragment().apply {
arguments = Bundle().apply { arguments = Bundle().apply {
putParcelable(KEY_ACTION_TYPE, userInfo) putParcelable(KEY_ACTION_TYPE, userInfo)
putBoolean(PARAM_IS_ADMIN, isAdmin)
} }
} }
} }
@@ -29,6 +34,7 @@ class PlateOpenFragment :
override fun initialize() { override fun initialize() {
arguments?.let { arguments?.let {
info = it.getParcelable(KEY_ACTION_TYPE) info = it.getParcelable(KEY_ACTION_TYPE)
isAdmin = it.getBoolean(PARAM_IS_ADMIN)
info?.let { info?.let {
if (!it.hasEquipmentBox()) { if (!it.hasEquipmentBox()) {
binding.ivType.setImageResource(R.drawable.ic_tip_warn) binding.ivType.setImageResource(R.drawable.ic_tip_warn)
@@ -60,6 +66,10 @@ class PlateOpenFragment :
override fun onFinish() { override fun onFinish() {
activity?.finish() activity?.finish()
if (!isAdmin) {
val intent = Intent(context, InitActivity::class.java)
startActivity(intent)
}
} }
}.start() }.start()
} }
@@ -168,7 +168,11 @@ class SettingListFragment :
SerialApi.openPlate(equipmentBoxCode, object : SerialPortManager.SendCallback { SerialApi.openPlate(equipmentBoxCode, object : SerialPortManager.SendCallback {
override fun onSuccess() { override fun onSuccess() {
hideWaitingDialog() hideWaitingDialog()
MainActivity.start(requireContext(), pageType = PageType.PLATE_TIP) MainActivity.start(
requireContext(),
pageType = PageType.PLATE_TIP,
isAdmin = true
)
} }
override fun onFail(e: Exception?) { override fun onFail(e: Exception?) {
@@ -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)
}
}
}