修改了配色,添加了解除绑定提示

This commit is contained in:
zxj
2025-08-08 17:26:09 +08:00
parent 2c10731b8d
commit b83a442fe3
33 changed files with 297 additions and 110 deletions
@@ -26,13 +26,12 @@ import com.sw.platecabinet.databinding.ItemTitleTimeBinding
import com.sw.platecabinet.ext.setClickListeners
import com.sw.platecabinet.model.response.EquipmentUserInfo
import com.sw.platecabinet.utils.PermissionHelper
import com.sw.platecabinet.view.CustomDialog
import com.sw.platecabinet.view.CustomLoadingDialog
import com.sw.platecabinet.viewmodel.SettingViewModel
import com.sw.platecabinet.viewmodel.UserViewModel
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.flow.drop
import kotlinx.coroutines.launch
import timber.log.Timber
@@ -44,7 +43,7 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
private var headerBinding: ItemTitleTimeBinding? = null
protected lateinit var context: Context
private var timeJob: Job? = null
private var mDialogWaiting: CustomDialog? = null
private var mDialogWaiting: CustomLoadingDialog? = null
private val permissionHelpers = mutableMapOf<Int, PermissionHelper>()
protected var keyEventHelper: ScanGunKeyEventHelper? = null
@@ -181,7 +180,15 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
enforceImmersiveMode()
}
override fun onWindowFocusChanged(hasFocus: Boolean) {
super.onWindowFocusChanged(hasFocus)
if (hasFocus) {
disableSystemUICompletely()
}
}
private fun disableSystemUICompletely() {
Timber.d("disableSystemUICompletely")
// 禁用系统手势(Android 10+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.insetsController?.systemBarsBehavior =
@@ -206,6 +213,7 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
private fun enforceImmersiveMode() {
Timber.d("enforceImmersiveMode")
// 持续强制隐藏系统栏(防止手势触发)
window.decorView.postDelayed({
window.decorView.systemUiVisibility = (
@@ -223,7 +231,7 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
hideWaitingDialog()
val view = View.inflate(this, R.layout.dialog_waiting, null)
if (!TextUtils.isEmpty(tip)) (view.findViewById<View?>(R.id.tvTip) as TextView).setText(tip)
mDialogWaiting = CustomDialog(this, view, R.style.MyDialog)
mDialogWaiting = CustomLoadingDialog(this, view, R.style.MyDialog)
mDialogWaiting!!.show()
mDialogWaiting!!.setCancelable(true)
return mDialogWaiting
@@ -259,7 +267,7 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
}
}
lifecycleScope.launch {
viewModel.currentUserInfo.drop(1).collect {
viewModel.currentUserInfo.collect {
if (it == null) return@collect
handleLoginSuccess(it, false)
}
@@ -275,14 +283,14 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
}
}
lifecycleScope.launch {
settingViewModel.searchUserInfo.drop(1).collect {
settingViewModel.searchUserInfo.collect {
Timber.d("registerDataChange 管理员 currentUserInfo = $it")
if (it == null) return@collect
handleLoginSuccess(it, true)
}
}
lifecycleScope.launch {
settingViewModel.equipmentList.drop(1).collect {
settingViewModel.equipmentList.collect {
if (it.isEmpty()) return@collect
val unbindList = it.filter { !it.isBound() }
if (unbindList.isEmpty()) {
@@ -343,7 +351,6 @@ abstract class BaseActivity<VB : ViewBinding> : AppCompatActivity() {
}
override fun onDestroy() {
SerialApi.close()
timeJob?.cancel()
keyEventHelper?.onDestroy()
super.onDestroy()