Browse Source

feat(设置): 新增系统设置模块
- 新增设置页面,支持配置最大指纹录入数量和自动登出时间
- 指纹录入增加最大数量限制
- 新增闲置自动登出功能
- 登录页和主页增加相应逻辑
- 调整各角色权限,增加设置模块权限
- 补充相关国际化文案

周文健 8 months ago
parent
commit
1fa4ce667f

+ 4 - 1
app/src/main/java/com/grkj/iscs/features/init/fragment/InitDeviceRegistrationKeyAndLockFragment.kt

@@ -6,11 +6,13 @@ import androidx.fragment.app.viewModels
 import com.drake.brv.BindingAdapter
 import com.drake.brv.annotaion.DividerOrientation
 import com.drake.brv.utils.dividerSpace
+import com.drake.brv.utils.grid
 import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
 import com.drake.brv.utils.setup
 import com.google.android.flexbox.AlignItems
 import com.google.android.flexbox.FlexDirection
+import com.google.android.flexbox.FlexWrap
 import com.google.android.flexbox.FlexboxLayoutManager
 import com.google.android.flexbox.JustifyContent
 import com.grkj.data.data.EventConstants
@@ -163,6 +165,7 @@ class InitDeviceRegistrationKeyAndLockFragment :
         val itemBinding = getBinding<ItemDeviceRegistrationKeyLayoutBinding>()
         itemBinding.rvKeyLayout.layoutManager = FlexboxLayoutManager(context).apply {
             flexDirection = FlexDirection.ROW               // 横向
+            flexWrap = FlexWrap.WRAP
             justifyContent = JustifyContent.SPACE_EVENLY     // 等间距居中
             alignItems = AlignItems.CENTER               // 垂直居中对齐
         }
@@ -190,7 +193,7 @@ class InitDeviceRegistrationKeyAndLockFragment :
         }
         itemBinding.rvKeyLayout.setup {
             addType<DockBean.LockBean>(R.layout.item_device_registration_lock)
-            addType<DockBean.KeyBean>(R.layout.item_device_registration_key)
+            addType<DockBean.KeyBean>(R.layout.item_device_registration_protable_key)
             onBind {
                 when (val itemPortable = getModel<Any>()) {
                     is DockBean.KeyBean -> {

+ 3 - 1
app/src/main/java/com/grkj/iscs/features/main/fragment/hardware_manage/SlotsManageFragment.kt

@@ -11,6 +11,7 @@ import com.drake.brv.utils.linear
 import com.drake.brv.utils.setup
 import com.google.android.flexbox.AlignItems
 import com.google.android.flexbox.FlexDirection
+import com.google.android.flexbox.FlexWrap
 import com.google.android.flexbox.FlexboxLayoutManager
 import com.google.android.flexbox.JustifyContent
 import com.grkj.data.data.MainDomainData
@@ -232,6 +233,7 @@ class SlotsManageFragment : BaseFragment<FragmentSlotsManageBinding>() {
         val itemBinding = getBinding<ItemDeviceRegistrationKeyLayoutBinding>()
         itemBinding.rvKeyLayout.layoutManager = FlexboxLayoutManager(context).apply {
             flexDirection = FlexDirection.ROW               // 横向
+            flexWrap = FlexWrap.WRAP
             justifyContent = JustifyContent.SPACE_EVENLY     // 等间距居中
             alignItems = AlignItems.CENTER               // 垂直居中对齐
         }
@@ -401,7 +403,7 @@ class SlotsManageFragment : BaseFragment<FragmentSlotsManageBinding>() {
         }
         itemBinding.rvKeyLayout.setup {
             addType<DockBean.LockBean>(R.layout.item_device_slot_manage_lock)
-            addType<DockBean.KeyBean>(R.layout.item_device_slot_manage_key)
+            addType<DockBean.KeyBean>(R.layout.item_device_registration_protable_key)
             onBind {
                 when (val itemPortable = getModel<Any>()) {
                     is DockBean.KeyBean -> {

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

@@ -64,7 +64,7 @@
             app:layout_constraintTop_toBottomOf="@+id/step_hint" />
 
         <FrameLayout
-            android:layout_width="0dp"
+            android:layout_width="match_parent"
             android:layout_height="0dp"
             android:layout_marginHorizontal="100dp"
             android:layout_marginVertical="@dimen/iscs_space_2"
@@ -75,7 +75,7 @@
 
             <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/dock_rv"
-                android:layout_width="wrap_content"
+                android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:layout_gravity="center" />
         </FrameLayout>

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

@@ -63,7 +63,7 @@
 
             <androidx.recyclerview.widget.RecyclerView
                 android:id="@+id/dock_rv"
-                android:layout_width="wrap_content"
+                android:layout_width="match_parent"
                 android:layout_height="match_parent"
                 android:layout_gravity="center" />
             <TextView

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

@@ -4,7 +4,7 @@
     xmlns:app="http://schemas.android.com/apk/res-auto">
 
     <RelativeLayout
-        android:layout_width="wrap_content"
+        android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:gravity="center">
 

+ 50 - 0
app/src/main/res/layout/item_device_registration_protable_key.xml

@@ -0,0 +1,50 @@
+<?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:app="http://schemas.android.com/apk/res-auto">
+
+    <RelativeLayout
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:gravity="center">
+
+        <ImageView
+            android:id="@+id/iv_key"
+            android:layout_width="@dimen/init_key_iv_width"
+            android:layout_height="@dimen/init_key_iv_height"
+            android:layout_centerHorizontal="true"
+            android:background="@drawable/dock_key_selector" />
+
+        <TextView
+            android:id="@+id/tv_new_device"
+            style="@style/CommonTextView"
+            android:layout_below="@+id/iv_key"
+            android:layout_alignLeft="@+id/iv_key"
+            android:layout_alignRight="@+id/iv_key"
+            android:layout_marginTop="15dp"
+            android:background="@drawable/common_btn_red_bg"
+            app:i18nKey='@{"new_device"}'
+            android:textSize="@dimen/iscs_text_xs"
+            android:visibility="gone" />
+
+        <TextView
+            android:id="@+id/tv_new_device_mac"
+            style="@style/CommonTextView"
+            android:layout_below="@+id/tv_new_device"
+            android:layout_alignLeft="@+id/iv_key"
+            android:layout_alignRight="@+id/iv_key"
+            android:layout_marginTop="15dp"
+            android:background="@drawable/common_btn_green_bg"
+            android:textSize="@dimen/iscs_text_xs"
+            android:visibility="gone"
+            tools:text="AA:BB:CC:DD:EE:FF" />
+
+        <View
+            android:id="@+id/v_buckle_status"
+            android:layout_width="@dimen/common_status_circle_small"
+            android:layout_height="@dimen/common_status_circle_small"
+            android:layout_toRightOf="@+id/iv_key"
+            android:background="@drawable/common_status_circle"
+            android:visibility="invisible" />
+    </RelativeLayout>
+</layout>