浏览代码

refactor(更新)
- 多语言适配
- 多语言框架覆盖已有数据拦截

周文健 2 月之前
父节点
当前提交
74d5c8e4ae
共有 68 个文件被更改,包括 144 次插入79 次删除
  1. 1 0
      app/src/main/java/com/grkj/iscs/features/login/activity/LoginActivity.kt
  2. 6 1
      app/src/main/java/com/grkj/iscs/features/main/fragment/common/SelectMemberFragment.kt
  3. 1 1
      app/src/main/java/com/grkj/iscs/features/main/viewmodel/common/SelectMemberViewModel.kt
  4. 2 1
      app/src/main/res/layout-land/fragment_create_job.xml
  5. 2 1
      app/src/main/res/layout-land/fragment_create_sop.xml
  6. 2 1
      app/src/main/res/layout-land/fragment_edit_job.xml
  7. 2 1
      app/src/main/res/layout-land/fragment_home.xml
  8. 2 1
      app/src/main/res/layout-land/fragment_select_memeber.xml
  9. 2 1
      app/src/main/res/layout-land/fragment_select_point.xml
  10. 2 1
      app/src/main/res/layout-land/item_job_execute_point.xml
  11. 2 1
      app/src/main/res/layout-land/item_job_execute_step.xml
  12. 2 1
      app/src/main/res/layout-land/item_job_workflow_step.xml
  13. 2 1
      app/src/main/res/layout-land/item_locker_group.xml
  14. 2 1
      app/src/main/res/layout-land/item_point_group.xml
  15. 2 1
      app/src/main/res/layout-land/item_point_group_show.xml
  16. 2 1
      app/src/main/res/layout/activity_splash.xml
  17. 2 1
      app/src/main/res/layout/dialog_add_fingerprint.xml
  18. 2 1
      app/src/main/res/layout/dialog_filter_role.xml
  19. 2 1
      app/src/main/res/layout/dialog_filter_user.xml
  20. 2 1
      app/src/main/res/layout/dialog_quick_entrance_config.xml
  21. 2 1
      app/src/main/res/layout/fragment_card_manage.xml
  22. 2 1
      app/src/main/res/layout/fragment_edit_job.xml
  23. 2 1
      app/src/main/res/layout/fragment_edit_sop.xml
  24. 2 1
      app/src/main/res/layout/fragment_exception_detail.xml
  25. 2 1
      app/src/main/res/layout/fragment_exception_job_manage.xml
  26. 2 1
      app/src/main/res/layout/fragment_exception_manage.xml
  27. 2 1
      app/src/main/res/layout/fragment_home.xml
  28. 2 1
      app/src/main/res/layout/fragment_in_progress_job_manage.xml
  29. 2 1
      app/src/main/res/layout/fragment_init_welcome.xml
  30. 2 1
      app/src/main/res/layout/fragment_job_manage.xml
  31. 2 1
      app/src/main/res/layout/fragment_key_manage.xml
  32. 2 1
      app/src/main/res/layout/fragment_lock_manage.xml
  33. 2 1
      app/src/main/res/layout/fragment_locked_point.xml
  34. 2 1
      app/src/main/res/layout/fragment_point_manage.xml
  35. 2 1
      app/src/main/res/layout/fragment_rfid_token_manage.xml
  36. 2 1
      app/src/main/res/layout/fragment_role_manage.xml
  37. 2 1
      app/src/main/res/layout/fragment_select_memeber.xml
  38. 2 1
      app/src/main/res/layout/fragment_select_point.xml
  39. 2 1
      app/src/main/res/layout/fragment_set_fingerprint.xml
  40. 2 1
      app/src/main/res/layout/fragment_slots_manage.xml
  41. 2 1
      app/src/main/res/layout/fragment_sop_manage.xml
  42. 2 1
      app/src/main/res/layout/fragment_user_manage.xml
  43. 2 1
      app/src/main/res/layout/fragment_workflow_manage.xml
  44. 2 1
      app/src/main/res/layout/fragment_workstation_manage.xml
  45. 2 1
      app/src/main/res/layout/item_card_manage.xml
  46. 2 1
      app/src/main/res/layout/item_device_registration_key.xml
  47. 2 1
      app/src/main/res/layout/item_device_registration_lock.xml
  48. 5 6
      app/src/main/res/layout/item_device_slot_manage_key.xml
  49. 2 1
      app/src/main/res/layout/item_device_slot_manage_lock.xml
  50. 2 1
      app/src/main/res/layout/item_exception_job_manage.xml
  51. 2 1
      app/src/main/res/layout/item_exception_manage.xml
  52. 2 1
      app/src/main/res/layout/item_init_hardware_rfid.xml
  53. 2 5
      app/src/main/res/layout/item_job_execute_point.xml
  54. 2 2
      app/src/main/res/layout/item_job_execute_step.xml
  55. 2 1
      app/src/main/res/layout/item_job_manage.xml
  56. 2 2
      app/src/main/res/layout/item_job_workflow_step.xml
  57. 2 1
      app/src/main/res/layout/item_key_manage.xml
  58. 2 1
      app/src/main/res/layout/item_lock_manage.xml
  59. 2 2
      app/src/main/res/layout/item_locker_group.xml
  60. 2 2
      app/src/main/res/layout/item_point_group.xml
  61. 0 1
      app/src/main/res/layout/item_point_group_show.xml
  62. 2 1
      app/src/main/res/layout/item_rfid_token_manage.xml
  63. 2 1
      app/src/main/res/layout/item_set_fingerprint.xml
  64. 2 1
      app/src/main/res/layout/item_sop_manage.xml
  65. 2 1
      app/src/main/res/layout/item_workflow_manage.xml
  66. 1 1
      data/src/main/java/com/grkj/data/logic/impl/standard/UserLogic.kt
  67. 8 0
      shared/src/main/java/com/grkj/shared/utils/i18n/databinding/I18nBindingAdapters.kt
  68. 2 1
      ui-base/src/main/res/layout/layout_empty.xml

+ 1 - 0
app/src/main/java/com/grkj/iscs/features/login/activity/LoginActivity.kt

@@ -74,6 +74,7 @@ class LoginActivity : BaseActivity<ActivityLoginBinding>() {
 
                 // 芯片文本友好化(可选)
                 binding.chipLang.text = I18nManager.locale.value.toLanguageTag()
+                recreate()
             }
         }
         binding.loginTypeRv.apply {

+ 6 - 1
app/src/main/java/com/grkj/iscs/features/main/fragment/common/SelectMemberFragment.kt

@@ -198,7 +198,10 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
             itemBinding.groupName.isSelected = true
             viewModel.currentSelectGroup = item.jobTicketGroupInfo
             binding.selectMemberTip.text =
-                CommonUtils.getStr("select_locker_tip", viewModel.currentSelectGroup?.groupName ?: "")
+                CommonUtils.getStr(
+                    "select_locker_tip",
+                    viewModel.currentSelectGroup?.groupName ?: ""
+                )
             binding.allUserRv.models =
                 viewModel.userData.filter { it.roleKeys.contains(RoleEnum.JTLOCKER.roleKey) }
                     .onEach {
@@ -384,7 +387,9 @@ class SelectMemberFragment : BaseFragment<FragmentSelectMemeberBinding>() {
                     ?.toMutableList() ?: mutableListOf()
             binding.colockerRv.models = selectedColockerData
         }
+        showLoading()
         viewModel.getUserData().observe(this) {
+            hideLoading()
             setLockerData()
         }
         viewModel.getTicketUsers(ticketId).observe(this) {}

+ 1 - 1
app/src/main/java/com/grkj/iscs/features/main/viewmodel/common/SelectMemberViewModel.kt

@@ -43,7 +43,7 @@ class SelectMemberViewModel @Inject constructor(
             userData = BeanUtils.copyList(
                 userLogic.getAllUserDataWithWorkstation(workstationId),
                 JobUserVo::class.java
-            )?.filterNotNull() ?: mutableListOf()
+            )
             userBiometricDataVo =
                 userLogic.getUserBiometricDataByUserIds(userData.map { it.userId })
             emit(true)

+ 2 - 1
app/src/main/res/layout-land/fragment_create_job.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout-land/fragment_create_sop.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout-land/fragment_edit_job.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout-land/fragment_home.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout-land/fragment_select_memeber.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout-land/fragment_select_point.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout-land/item_job_execute_point.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout-land/item_job_execute_step.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"

+ 2 - 1
app/src/main/res/layout-land/item_job_workflow_step.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="wrap_content"

+ 2 - 1
app/src/main/res/layout-land/item_locker_group.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <FrameLayout
         android:layout_width="wrap_content"

+ 2 - 1
app/src/main/res/layout-land/item_point_group.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:id="@+id/selected_point_info_layout"

+ 2 - 1
app/src/main/res/layout-land/item_point_group_show.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:id="@+id/selected_point_info_layout"

+ 2 - 1
app/src/main/res/layout/activity_splash.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <RelativeLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/dialog_add_fingerprint.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="@dimen/dialog_common_root_width"

+ 2 - 1
app/src/main/res/layout/dialog_filter_role.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="@dimen/dialog_common_root_width"

+ 2 - 1
app/src/main/res/layout/dialog_filter_user.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="@dimen/dialog_common_root_width"

+ 2 - 1
app/src/main/res/layout/dialog_quick_entrance_config.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_card_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_edit_job.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_edit_sop.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_exception_detail.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_exception_job_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_exception_manage.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_home.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_in_progress_job_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_init_welcome.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <RelativeLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_job_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_key_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_lock_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_locked_point.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_point_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_rfid_token_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_role_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_select_memeber.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_select_point.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_set_fingerprint.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_slots_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_sop_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_user_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_workflow_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/fragment_workstation_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/item_card_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 2 - 1
app/src/main/res/layout/item_device_registration_key.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <RelativeLayout
         android:layout_width="wrap_content"

+ 2 - 1
app/src/main/res/layout/item_device_registration_lock.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <RelativeLayout
         android:layout_width="wrap_content"

+ 5 - 6
app/src/main/res/layout/item_device_slot_manage_key.xml

@@ -1,7 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:flex="http://schemas.android.com/apk/res-auto"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <RelativeLayout
         android:layout_width="wrap_content"
@@ -69,8 +68,8 @@
                 android:layout_weight="1"
                 android:background="@color/main_color_dark"
                 android:padding="2dp"
-                app:i18nKey='@{"turn_read"}'
-                android:visibility="gone" />
+                android:visibility="gone"
+                app:i18nKey='@{"turn_read"}' />
         </LinearLayout>
 
         <TextView
@@ -83,7 +82,7 @@
             android:layout_weight="1"
             android:background="@color/common_btn_red_bg"
             android:padding="2dp"
-            app:i18nKey='@{"detect_slot"}'
-            android:visibility="gone" />
+            android:visibility="gone"
+            app:i18nKey='@{"detect_slot"}' />
     </RelativeLayout>
 </layout>

+ 2 - 1
app/src/main/res/layout/item_device_slot_manage_lock.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <RelativeLayout
         android:layout_width="wrap_content"

+ 2 - 1
app/src/main/res/layout/item_exception_job_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/item_exception_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/item_init_hardware_rfid.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
     <LinearLayout
         android:id="@+id/rv_header_layout"
         android:layout_width="match_parent"

+ 2 - 5
app/src/main/res/layout/item_job_execute_point.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"
@@ -15,7 +16,6 @@
             android:layout_weight="1"
             android:paddingVertical="@dimen/common_spacing"
             android:gravity="center"
-            app:i18nKey='@{"point_name_tv"}'
             android:textSize="@dimen/common_text_size" />
 
         <TextView
@@ -25,7 +25,6 @@
             android:layout_weight="1"
             android:paddingVertical="@dimen/common_spacing"
             android:gravity="center"
-            app:i18nKey='@{"point_manage_point_function"}'
             android:textSize="@dimen/common_text_size" />
         <TextView
             android:id="@+id/point_function"
@@ -34,7 +33,6 @@
             android:layout_weight="1"
             android:paddingVertical="@dimen/common_spacing"
             android:gravity="center"
-            app:i18nKey='@{"point_manage_point_function"}'
             android:textSize="@dimen/common_text_size" />
 
         <FrameLayout
@@ -65,7 +63,6 @@
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
                     android:layout_marginLeft="@dimen/common_spacing_small"
-                    app:i18nKey='@{"has_locked"}'
                     android:textSize="@dimen/common_text_size" />
             </LinearLayout>
         </FrameLayout>

+ 2 - 2
app/src/main/res/layout/item_job_execute_step.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
     <LinearLayout
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
@@ -27,7 +28,6 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/common_spacing"
                 android:gravity="center"
-                app:i18nKey='@{"point_name_tv"}'
                 android:textSize="@dimen/common_text_size" />
 
             <TextView

+ 2 - 1
app/src/main/res/layout/item_job_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 2
app/src/main/res/layout/item_job_workflow_step.xml

@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <layout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:tools="http://schemas.android.com/tools">
+    xmlns:tools="http://schemas.android.com/tools"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="wrap_content"
@@ -24,7 +25,6 @@
                 android:layout_height="wrap_content"
                 android:layout_marginTop="@dimen/common_spacing"
                 android:gravity="center"
-                app:i18nKey='@{"point_name_tv"}'
                 android:textSize="@dimen/common_text_size" />
 
             <TextView

+ 2 - 1
app/src/main/res/layout/item_key_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 2 - 1
app/src/main/res/layout/item_lock_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 2 - 2
app/src/main/res/layout/item_locker_group.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <FrameLayout
         android:layout_width="wrap_content"
@@ -34,7 +35,6 @@
                     android:layout_gravity="center"
                     android:gravity="center"
                     android:paddingHorizontal="@dimen/common_spacing"
-                    app:i18nKey='@{"selected_point_info_title"}'
                     android:textColor="@color/text_color_item_group_title_text"
                     android:textSize="@dimen/normal_text_size_18" />
 

+ 2 - 2
app/src/main/res/layout/item_point_group.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:id="@+id/selected_point_info_layout"
@@ -28,7 +29,6 @@
                 android:focusable="false"
                 android:focusableInTouchMode="false"
                 android:paddingHorizontal="@dimen/common_spacing"
-                app:i18nKey='@{"selected_point_info_title"}'
                 android:textColor="@color/text_color_item_group_title_text"
                 android:textSize="@dimen/normal_text_size_18" />
 

+ 0 - 1
app/src/main/res/layout/item_point_group_show.xml

@@ -27,7 +27,6 @@
                 android:focusable="false"
                 android:focusableInTouchMode="false"
                 android:paddingLeft="@dimen/common_spacing"
-                app:i18nKey='@{"selected_point_info_title"}'
                 android:textColor="@color/text_color_item_group_title_text"
                 android:textSize="@dimen/normal_text_size_18" />
         </LinearLayout>

+ 2 - 1
app/src/main/res/layout/item_rfid_token_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"

+ 2 - 1
app/src/main/res/layout/item_set_fingerprint.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/item_sop_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 2 - 1
app/src/main/res/layout/item_workflow_manage.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <LinearLayout
         android:layout_width="match_parent"

+ 1 - 1
data/src/main/java/com/grkj/data/logic/impl/standard/UserLogic.kt

@@ -367,7 +367,7 @@ class UserLogic @Inject constructor(
     }
 
     override fun getAllUserDataWithWorkstation(workstationId: Long): List<UserManageVo> {
-        //1.根据分页获取用户信息
+        //1.获取用户信息
         val sysUserDos = userRepository.getAllUserInfos()
         //2.获取所有区域信息和绑定信息
         val workstationDos = hardwareDao.getAllWorkstation()

+ 8 - 0
shared/src/main/java/com/grkj/shared/utils/i18n/databinding/I18nBindingAdapters.kt

@@ -187,6 +187,14 @@ fun bindI18n(
 ) {
     if (key.isNullOrBlank()) return
 
+    // ===== 新增逻辑:已有非空文本则直接返回 =====
+    if (view is android.widget.TextView) {
+        if (!view.text.isNullOrEmpty()) {
+            // 已经有内容,不覆盖,也不订阅
+            return
+        }
+    }
+
     val args = buildArgsMap(mapArgs, a0, a1, a2, a3, a4, a5, argsArray, argsList, argsPipe)
 
     // —— 关键兜底:任何异常都不让它炸到 UI ——

+ 2 - 1
ui-base/src/main/res/layout/layout_empty.xml

@@ -1,5 +1,6 @@
 <?xml version="1.0" encoding="utf-8"?>
-<layout xmlns:android="http://schemas.android.com/apk/res/android">
+<layout xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <FrameLayout
         android:layout_width="match_parent"