소스 검색

refactor(更新)
- 设备初始化的界面修改

周文健 4 달 전
부모
커밋
fa3aa2e135

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

@@ -17,6 +17,7 @@ import com.grkj.iscs.databinding.ItemDeviceRegistrationKeyLayoutBinding
 import com.grkj.iscs.databinding.ItemDeviceRegistrationLockBinding
 import com.grkj.iscs.databinding.ItemDeviceRegistrationLockLayoutBinding
 import com.grkj.iscs.features.init.model.DockData
+import com.grkj.iscs.features.init.model.DockData.KeyDock
 import com.grkj.iscs.features.init.viewmodel.InitDeviceRegistrationKeyAndLockViewModel
 import com.grkj.shared.model.EventBean
 import com.grkj.ui_base.base.BaseFragment
@@ -79,7 +80,10 @@ class InitDeviceRegistrationKeyAndLockFragment :
             }
         }
         viewModel.isLoadComplete.observe(this) {
-            binding.stepHint.text = if (!it)getString(R.string.init_device_registration_key_and_lock_step_hint) else getString(R.string.init_device_registration_key_and_lock_complete_step_hint)
+            binding.stepHint.text =
+                if (!it) getString(R.string.init_device_registration_key_and_lock_step_hint) else getString(
+                    R.string.init_device_registration_key_and_lock_complete_step_hint
+                )
             binding.reRecognize.isVisible = it
             val dockData =
                 ModBusController.dockList.filter { it.type == DeviceConst.DOCK_TYPE_LOCK || it.type == DeviceConst.DOCK_TYPE_KEY || it.type == DeviceConst.DOCK_TYPE_PORTABLE }
@@ -91,6 +95,9 @@ class InitDeviceRegistrationKeyAndLockFragment :
             val keyDatas = keyDock.map { it.keyData }.flatten()
             val newKeyDock = DockData.KeyDock()
             newKeyDock.keyData.addAll(keyDatas)
+            val newKeyDockList = newKeyDock.keyData.chunked(4).map { subList ->
+                KeyDock().apply { keyData.addAll(subList) }
+            }
             val lockDock = dockData.filter { it.type == DeviceConst.DOCK_TYPE_LOCK }.map {
                 DockData.LockDock().apply {
                     lockData.addAll(it.deviceList.filterIsInstance<DockBean.LockBean>())
@@ -101,7 +108,7 @@ class InitDeviceRegistrationKeyAndLockFragment :
                     deviceData.addAll(it.deviceList.toList())
                 }
             }
-            binding.dockRv.models = listOf(newKeyDock) + portableDock + lockDock
+            binding.dockRv.models = newKeyDockList + portableDock + lockDock
         }
     }
 
@@ -170,8 +177,8 @@ class InitDeviceRegistrationKeyAndLockFragment :
 
     override fun onEvent(event: EventBean<Any>) {
         super.onEvent(event)
-        when(event.code){
-            EventConstants.EVENT_START_MODBUS->{
+        when (event.code) {
+            EventConstants.EVENT_START_MODBUS -> {
                 ThreadUtils.runOnMainDelayed(1000) {
                     viewModel.isStartCheckKey = false
                 }

+ 6 - 23
app/src/main/java/com/grkj/iscs/features/init/viewmodel/InitDeviceRegistrationKeyAndLockViewModel.kt

@@ -144,27 +144,22 @@ class InitDeviceRegistrationKeyAndLockViewModel @Inject constructor(val hardware
                         ThreadUtils.runOnIO {
                             delay(3000)
                             logger.info("设备录入-开始扫描在线蓝牙Mac")
-                            BleConnectionManager.scanOnlineKeyLockMac { bleDevices ->
+                            BleConnectionManager.scanOnlineKeyLockMac(alreadyUsedMac) { bleDevice ->
                                 logger.info(
                                     "设备录入-在线的蓝牙设备:${keyBean.rfid},${
-                                        bleDevices?.joinToString(
-                                            ","
-                                        ) { it.mac }
+                                        bleDevice?.mac
                                     }"
                                 )
                                 if (isDestroy) {
                                     cont.cancel()
                                     return@scanOnlineKeyLockMac
                                 }
-                                if (bleDevices?.isEmpty() == true) {
+                                if (bleDevice == null) {
                                     ThreadUtils.runOnIO {
                                         openChargeAndScanMac(addr, keyBean)
                                     }
                                 } else {
-                                    val bleDevice = bleDevices?.find {
-                                        it.mac !in alreadyUsedMac
-                                    }
-                                    if (bleDevice?.mac?.isEmpty() == true) {
+                                    if (bleDevice.mac == null) {
                                         ThreadUtils.runOnIO {
                                             openChargeAndScanMac(addr, keyBean)
                                         }
@@ -172,23 +167,11 @@ class InitDeviceRegistrationKeyAndLockViewModel @Inject constructor(val hardware
                                     }
                                     logger.info(
                                         "设备录入-没有使用过的mac:${keyBean.rfid},${
-                                            bleDevice?.mac
+                                            bleDevice.mac
                                         }"
                                     )
-                                    keyBean.mac = bleDevice?.mac!!
+                                    keyBean.mac = bleDevice.mac
                                     alreadyUsedMac.add(bleDevice.mac)
-                                    ThreadUtils.runOnIO {
-                                        keyBean.mac?.let {
-                                            val connected =
-                                                BleConnectionManager.tryConnectWithOptionalCharge(it)
-                                            if (connected) {
-                                                bleDevice?.let {
-                                                    BleConnectionManager.switchReadyMode(it)
-                                                }
-                                            }
-                                        }
-                                    }
-
                                     cont.resume(true)
                                 }
                             }

+ 12 - 3
app/src/main/java/com/grkj/iscs/features/splash/activity/SplashActivity.kt

@@ -10,6 +10,8 @@ import com.grkj.iscs.features.login.activity.LoginActivity
 import com.grkj.iscs.features.splash.viewmodel.SplashViewModel
 import com.grkj.ui_base.base.BaseActivity
 import com.grkj.ui_base.utils.event.StartModbusEvent
+import com.kongzue.dialogx.DialogX
+import com.kongzue.dialogx.util.TextInfo
 import com.sik.sikcore.extension.getMMKVData
 import dagger.hilt.android.AndroidEntryPoint
 
@@ -21,13 +23,20 @@ class SplashActivity : BaseActivity<ActivitySplashBinding>() {
     }
 
     override fun initView() {
+        val dialogXTextInfo = TextInfo()
+        if (isLandscape()) {
+            dialogXTextInfo.fontSize = (18 * 1.7f).toInt()
+        } else {
+            dialogXTextInfo.fontSize = 18
+        }
+        DialogX.popTextInfo = dialogXTextInfo
         StartModbusEvent.sendStartModbusEvent()
-        viewModel.checkSysMenuAndRole().observe(this){
+        viewModel.checkSysMenuAndRole().observe(this) {
             val isAppInit = MMKVConstants.APP_INIT.getMMKVData(false)
-            if (isAppInit){
+            if (isAppInit) {
                 startActivity(Intent(this, LoginActivity::class.java))
                 finish()
-            }else{
+            } else {
                 startActivity(Intent(this, InitActivity::class.java))
                 finish()
             }

+ 14 - 8
app/src/main/res/layout/fragment_init_device_registration_key_and_lock.xml

@@ -51,16 +51,22 @@
             app:layout_constraintStart_toStartOf="@+id/step_title_layout"
             app:layout_constraintTop_toBottomOf="@+id/step_title_layout" />
 
-        <androidx.recyclerview.widget.RecyclerView
-            android:id="@+id/dock_rv"
+        <FrameLayout
             android:layout_width="0dp"
             android:layout_height="0dp"
-            android:layout_marginVertical="@dimen/common_spacing"
             android:layout_marginHorizontal="100dp"
-            app:layout_constraintTop_toBottomOf="@+id/step_hint"
+            android:layout_marginVertical="@dimen/common_spacing"
             app:layout_constraintBottom_toTopOf="@+id/previous_btn"
+            app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"/>
+            app:layout_constraintTop_toBottomOf="@+id/step_hint">
+
+            <androidx.recyclerview.widget.RecyclerView
+                android:id="@+id/dock_rv"
+                android:layout_width="wrap_content"
+                android:layout_height="match_parent"
+                android:layout_gravity="center" />
+        </FrameLayout>
 
         <TextView
             android:id="@+id/previous_btn"
@@ -106,15 +112,15 @@
             android:layout_height="wrap_content"
             android:layout_alignParentBottom="true"
             android:layout_centerHorizontal="true"
+            android:layout_marginTop="@dimen/common_spacing"
             android:layout_marginBottom="100dp"
             android:paddingHorizontal="@dimen/common_spacing_2x"
             android:text="@string/re_recognize"
             android:textColor="@color/black"
             android:textSize="@dimen/common_btn_text_size"
             android:visibility="gone"
-            app:layout_constraintTop_toBottomOf="@+id/next_btn"
-            app:layout_constraintStart_toStartOf="@+id/previous_btn"
             app:layout_constraintEnd_toEndOf="@+id/next_btn"
-            android:layout_marginTop="@dimen/common_spacing"/>
+            app:layout_constraintStart_toStartOf="@+id/previous_btn"
+            app:layout_constraintTop_toBottomOf="@+id/next_btn" />
     </androidx.constraintlayout.widget.ConstraintLayout>
 </layout>

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

@@ -96,7 +96,7 @@
         <com.google.android.material.textfield.TextInputLayout
             android:id="@+id/container_password"
             android:layout_width="0dp"
-            android:layout_height="30dp"
+            android:layout_height="@dimen/init_set_admin_account_et_height"
             android:layout_marginLeft="@dimen/common_spacing"
             android:layout_marginRight="@dimen/common_spacing_7x"
             app:boxBackgroundMode="none"
@@ -137,7 +137,7 @@
         <com.google.android.material.textfield.TextInputLayout
             android:id="@+id/container_repeat_password"
             android:layout_width="0dp"
-            android:layout_height="30dp"
+            android:layout_height="@dimen/init_set_admin_account_et_height"
             android:layout_marginLeft="@dimen/common_spacing"
             android:layout_marginRight="@dimen/common_spacing_7x"
             app:endIconMode="password_toggle"

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

@@ -11,8 +11,8 @@
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_gravity="center_horizontal"
-            android:layout_marginLeft="120dp"
-            android:layout_marginTop="120dp"
+            android:layout_marginLeft="@dimen/init_margin_space"
+            android:layout_marginTop="@dimen/init_margin_space"
             android:text="@string/welcome_tip"
             android:textColor="@color/black"
             android:textSize="@dimen/login_sub_title_text_size"

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

@@ -7,8 +7,8 @@
 
         <ImageView
             android:id="@+id/iv_key"
-            android:layout_width="150dp"
-            android:layout_height="105dp"
+            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" />
 

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

@@ -9,8 +9,8 @@
 
         <FrameLayout
             android:id="@+id/root"
-            android:layout_width="60dp"
-            android:layout_height="210dp"
+            android:layout_width="@dimen/init_lock_iv_width"
+            android:layout_height="@dimen/init_lock_iv_height"
             android:background="@drawable/dock_lock_selector" />
 
         <TextView

+ 9 - 0
app/src/main/res/values-land/dimens.xml

@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <dimen name="init_margin_space">120dp</dimen>
+    <dimen name="init_set_admin_account_et_height">51dp</dimen>
+    <dimen name="init_key_iv_width">85dp</dimen>
+    <dimen name="init_key_iv_height">59.5dp</dimen>
+    <dimen name="init_lock_iv_width">34dp</dimen>
+    <dimen name="init_lock_iv_height">119dp</dimen>
+</resources>

+ 6 - 0
app/src/main/res/values/dimens.xml

@@ -46,4 +46,10 @@
     <dimen name="common_spacing_4x">40dp</dimen>
     <dimen name="common_spacing_7x">70dp</dimen>
     <dimen name="common_spacing_1_5x">15dp</dimen>
+    <dimen name="init_margin_space">120dp</dimen>
+    <dimen name="init_set_admin_account_et_height">30dp</dimen>
+    <dimen name="init_key_iv_width">50dp</dimen>
+    <dimen name="init_key_iv_height">35dp</dimen>
+    <dimen name="init_lock_iv_width">20dp</dimen>
+    <dimen name="init_lock_iv_height">70dp</dimen>
 </resources>

+ 1 - 1
gradle/libs.versions.toml

@@ -11,7 +11,7 @@ material = "1.10.0"
 activity = "1.8.0"
 constraintlayout = "2.1.4"
 jetbrainsKotlinJvm = "2.0.21"
-sikextension = "1.1.42"
+sikextension = "1.1.46"
 sikcamera = "1.0.11"
 sikcronjob = "1.0.3"
 sikfontmanager = "1.0.2"

+ 3 - 1
ui-base/src/main/java/com/grkj/ui_base/business/BleBusinessManager.kt

@@ -395,7 +395,9 @@ object BleBusinessManager {
                         )
                         LoadingEvent.sendLoadingEvent()
                         //连上之后没有工作票要下发就断开
-                        BleManager.getInstance().disconnect(currentModeEvent.bleBean.bleDevice)
+                        if (BleConnectionManager.hasConnectWait()) {
+                            BleManager.getInstance().disconnect(currentModeEvent.bleBean.bleDevice)
+                        }
                     }
                 }
             }

+ 14 - 5
ui-base/src/main/java/com/grkj/ui_base/utils/ble/BleConnectionManager.kt

@@ -164,6 +164,13 @@ object BleConnectionManager {
         bleIndicateListeners.remove(tag)
     }
 
+    /**
+     * 是否有连接在等待
+     */
+    fun hasConnectWait(): Boolean {
+        return connectListeners.isEmpty() == false
+    }
+
     /**
      * 检查是否能进行蓝牙连接准备的下一步,防止未准备完但是已经取消订阅
      */
@@ -344,7 +351,7 @@ object BleConnectionManager {
                             val bleBean = BleBean(it)
                             deviceList.add(bleBean)
 //                            todo 移除异常钥匙
-                             removeExceptionKey(it.mac)
+                            removeExceptionKey(it.mac)
                             // 设置MTU
                             ThreadUtils.runOnMainDelayed(200) {
                                 if (!checkProcess(bleDevice.mac)) {
@@ -782,14 +789,14 @@ object BleConnectionManager {
     /**
      * 扫描在线的蓝牙
      */
-    fun scanOnlineKeyLockMac(callback: (List<BleDevice>?) -> Unit) {
+    fun scanOnlineKeyLockMac(existsMac: List<String>, callback: (BleDevice?) -> Unit) {
         BleUtil.instance?.scan(object : CustomBleScanCallback() {
             override fun onPrompt(promptStr: String?) {
                 // 蓝牙未启动重试
                 logger.debug("设备录入-参数:${promptStr}")
                 BleManager.getInstance().enableBluetooth()
                 ThreadUtils.runOnMainDelayed(300) {
-                    scanOnlineKeyLockMac(callback)
+                    scanOnlineKeyLockMac(existsMac, callback)
                 }
             }
 
@@ -797,7 +804,7 @@ object BleConnectionManager {
                 logger.debug("设备录入-onScanStarted:${success}")
                 if (!success) {
                     ThreadUtils.runOnMainDelayed(300) {
-                        scanOnlineKeyLockMac(callback)
+                        scanOnlineKeyLockMac(existsMac, callback)
                     }
                 }
             }
@@ -805,11 +812,13 @@ object BleConnectionManager {
             override fun onScanning(bleDevice: BleDevice?) {
                 val mac = bleDevice?.mac ?: return
                 logger.debug("设备录入-onScanning:$mac")
+                if (mac !in existsMac) {
+                    callback(bleDevice)
+                }
             }
 
             override fun onScanFinished(scanResultList: MutableList<BleDevice>?) {
                 logger.debug("设备录入-扫描完成:$scanResultList")
-                callback(scanResultList?.toList())
             }
         })
     }

+ 1 - 0
ui-base/src/main/java/com/grkj/ui_base/utils/modbus/ModBusManager.kt

@@ -56,6 +56,7 @@ class ModBusManager(
                 }
             }
         }
+        portManager?.clearGarbageSafe()
         // 初始化地址池
         val dockConfig = MMKVConstants.KEY_DOCK_CONFIG.getMMKVData("[]")
         logger.info("基座配置: ${dockConfig}")

+ 11 - 0
ui-base/src/main/java/com/grkj/ui_base/utils/modbus/PortManager.kt

@@ -72,6 +72,17 @@ class PortManager private constructor(
         t?.start()
     }
 
+    /**
+     * 安全清除垃圾
+     */
+    fun clearGarbageSafe(timeoutMs: Int = 100) {
+        val buffer = ByteArray(BUFFER_SIZE)
+        val start = System.currentTimeMillis()
+        while ((System.currentTimeMillis() - start) < timeoutMs && input.available() > 0) {
+            input.read(buffer)
+        }
+    }
+
     /**
      * 关闭
      */

+ 79 - 79
ui-base/src/main/res/values-land/dimens.xml

@@ -1,96 +1,96 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
-    <dimen name="common_text_size">18sp</dimen>
-    <dimen name="common_btn_text_size">20sp</dimen>
-    <dimen name="common_text_size_land">9dp</dimen>
-    <dimen name="common_text_size_big">28dp</dimen>
-    <dimen name="common_text_size_small">16dp</dimen>
-    <dimen name="common_text_padding">5dp</dimen>
-    <dimen name="common_text_padding_land">2.5dp</dimen>
-    <dimen name="common_font_txt_size_page_title">14dp</dimen>
-    <dimen name="common_radius">10dp</dimen>
-    <dimen name="common_radius_small">5dp</dimen>
-    <dimen name="common_spacing">10dp</dimen>
-    <dimen name="common_spacing_2x">20dp</dimen>
-    <dimen name="common_spacing_big">15dp</dimen>
-    <dimen name="common_spacing_small">5dp</dimen>
-    <dimen name="common_spacing_smallest">2dp</dimen>
-    <dimen name="common_margin_spacing_big">40dp</dimen>
-    <dimen name="common_icon_size">15dp</dimen>
-    <dimen name="common_icon_size_small">12dp</dimen>
-    <dimen name="common_status_circle_small">5dp</dimen>
-    <dimen name="common_status_circle_medium">10dp</dimen>
+    <dimen name="common_text_size">30.6sp</dimen>
+    <dimen name="common_btn_text_size">34sp</dimen>
+    <dimen name="common_text_size_land">15.3dp</dimen>
+    <dimen name="common_text_size_big">47.6dp</dimen>
+    <dimen name="common_text_size_small">27.2dp</dimen>
+    <dimen name="common_text_padding">8.5dp</dimen>
+    <dimen name="common_text_padding_land">4.25dp</dimen>
+    <dimen name="common_font_txt_size_page_title">23.8dp</dimen>
+    <dimen name="common_radius">17dp</dimen>
+    <dimen name="common_radius_small">8.5dp</dimen>
+    <dimen name="common_spacing">17dp</dimen>
+    <dimen name="common_spacing_2x">34dp</dimen>
+    <dimen name="common_spacing_big">25.5dp</dimen>
+    <dimen name="common_spacing_small">8.5dp</dimen>
+    <dimen name="common_spacing_smallest">3.4dp</dimen>
+    <dimen name="common_margin_spacing_big">68dp</dimen>
+    <dimen name="common_icon_size">25.5dp</dimen>
+    <dimen name="common_icon_size_small">20.4dp</dimen>
+    <dimen name="common_status_circle_small">8.5dp</dimen>
+    <dimen name="common_status_circle_medium">17dp</dimen>
 
-    <dimen name="common_btn_width">150dp</dimen>
-    <dimen name="common_btn_height">50dp</dimen>
-    <dimen name="common_btn_width_land">75dp</dimen>
-    <dimen name="common_btn_height_land">25dp</dimen>
+    <dimen name="common_btn_width">255dp</dimen>
+    <dimen name="common_btn_height">85dp</dimen>
+    <dimen name="common_btn_width_land">127.5dp</dimen>
+    <dimen name="common_btn_height_land">42.5dp</dimen>
 
-    <dimen name="title_bar_height">50dp</dimen>
-    <dimen name="title_bar_padding">7dp</dimen>
-    <dimen name="title_bar_title_text_size">20dp</dimen>
-    <dimen name="title_bar_sub_title_text_size">10dp</dimen>
-    <dimen name="title_bar_back_size">17dp</dimen>
+    <dimen name="title_bar_height">85dp</dimen>
+    <dimen name="title_bar_padding">11.9dp</dimen>
+    <dimen name="title_bar_title_text_size">34dp</dimen>
+    <dimen name="title_bar_sub_title_text_size">17dp</dimen>
+    <dimen name="title_bar_back_size">28.9dp</dimen>
 
-    <dimen name="switch_width">46dp</dimen>
-    <dimen name="switch_height">26dp</dimen>
-    <dimen name="switch_radius">13dp</dimen>
-    <dimen name="switch_thumb_stroke">2dp</dimen>
-    <dimen name="switch_thumb_size">22dp</dimen>
+    <dimen name="switch_width">78.2dp</dimen>
+    <dimen name="switch_height">44.2dp</dimen>
+    <dimen name="switch_radius">22.1dp</dimen>
+    <dimen name="switch_thumb_stroke">3.4dp</dimen>
+    <dimen name="switch_thumb_size">37.4dp</dimen>
 
-    <dimen name="home_navi_height">200dp</dimen>
-    <dimen name="home_navi_width">133dp</dimen>
+    <dimen name="home_navi_height">340dp</dimen>
+    <dimen name="home_navi_width">226.1dp</dimen>
 
     <!-- 通用tab -->
-    <dimen name="common_rv_tab_item_width">64dp</dimen>
-    <dimen name="common_rv_tab_item_height">19dp</dimen>
-    <dimen name="common_rv_tab_padding">6dp</dimen>
-    <dimen name="common_rv_tab_bg_radius">3dp</dimen>
+    <dimen name="common_rv_tab_item_width">108.8dp</dimen>
+    <dimen name="common_rv_tab_item_height">32.3dp</dimen>
+    <dimen name="common_rv_tab_padding">10.2dp</dimen>
+    <dimen name="common_rv_tab_bg_radius">5.1dp</dimen>
 
     <!--  输入选择控件  -->
-    <dimen name="selectable_input_width">83dp</dimen>
-    <dimen name="selectable_input_radius">2dp</dimen>
-    <dimen name="selectable_input_stroke">1dp</dimen>
-    <dimen name="selectable_input_min_height">23dp</dimen>
-    <dimen name="selectable_input_spinner_arrow_size">10dp</dimen>
-    <dimen name="selectable_input_spinner_arrow_margin">3dp</dimen>
-    <dimen name="selectable_input_edit_padding">3dp</dimen>
+    <dimen name="selectable_input_width">141.1dp</dimen>
+    <dimen name="selectable_input_radius">3.4dp</dimen>
+    <dimen name="selectable_input_stroke">1.7dp</dimen>
+    <dimen name="selectable_input_min_height">39.1dp</dimen>
+    <dimen name="selectable_input_spinner_arrow_size">17dp</dimen>
+    <dimen name="selectable_input_spinner_arrow_margin">5.1dp</dimen>
+    <dimen name="selectable_input_edit_padding">5.1dp</dimen>
 
-    <dimen name="rv_item_margin">1dp</dimen>
+    <dimen name="rv_item_margin">1.7dp</dimen>
 
-    <dimen name="close_eyes_width">23dp</dimen>
-    <dimen name="login_btn_radius">20dp</dimen>
-    <dimen name="login_btn_width">157dp</dimen>
-    <dimen name="login_btn_height">40dp</dimen>
-    <dimen name="common_common_btn_elevation">10dp</dimen>
-    <dimen name="login_btn_margin_top">20dp</dimen>
-    <dimen name="login_btn_text_size">13dp</dimen>
+    <dimen name="close_eyes_width">39.1dp</dimen>
+    <dimen name="login_btn_radius">34dp</dimen>
+    <dimen name="login_btn_width">266.9dp</dimen>
+    <dimen name="login_btn_height">68dp</dimen>
+    <dimen name="common_common_btn_elevation">17dp</dimen>
+    <dimen name="login_btn_margin_top">34dp</dimen>
+    <dimen name="login_btn_text_size">22.1dp</dimen>
 
-    <dimen name="home_module_margin">3dp</dimen>
+    <dimen name="home_module_margin">5.1dp</dimen>
 
-    <dimen name="dialog_card_login_width">320dp</dimen>
-    <dimen name="dialog_card_login_height">180dp</dimen>
+    <dimen name="dialog_card_login_width">544dp</dimen>
+    <dimen name="dialog_card_login_height">306dp</dimen>
 
-    <dimen name="menu_padding">15dp</dimen>
-    <dimen name="divider_line_width">1dp</dimen>
-    <dimen name="divider_line_margin">5dp</dimen>
-    <dimen name="page_padding">20dp</dimen>
-    <dimen name="item_rv_technology_height">207dp</dimen>
-    <dimen name="item_rv_technology_width">118dp</dimen>
-    <dimen name="item_rv_technology_type_height">17dp</dimen>
-    <dimen name="item_rv_technology_type_width">46dp</dimen>
-    <dimen name="item_rv_technology_type_padding">3dp</dimen>
-    <dimen name="dialog_tip_width">256dp</dimen>
-    <dimen name="dialog_tip_height">144dp</dimen>
-    <dimen name="dialog_ticket_list_height">200dp</dimen>
+    <dimen name="menu_padding">25.5dp</dimen>
+    <dimen name="divider_line_width">1.7dp</dimen>
+    <dimen name="divider_line_margin">8.5dp</dimen>
+    <dimen name="page_padding">34dp</dimen>
+    <dimen name="item_rv_technology_height">351.9dp</dimen>
+    <dimen name="item_rv_technology_width">200.6dp</dimen>
+    <dimen name="item_rv_technology_type_height">28.9dp</dimen>
+    <dimen name="item_rv_technology_type_width">78.2dp</dimen>
+    <dimen name="item_rv_technology_type_padding">5.1dp</dimen>
+    <dimen name="dialog_tip_width">435.2dp</dimen>
+    <dimen name="dialog_tip_height">244.8dp</dimen>
+    <dimen name="dialog_ticket_list_height">340dp</dimen>
 
-    <dimen name="item_rv_step_width">80dp</dimen>
-    <dimen name="item_rv_step_height">110dp</dimen>
-    <dimen name="item_rv_menu_size">58dp</dimen>
-    <dimen name="item_rv_menu_icon_size">20dp</dimen>
-    <dimen name="item_rv_login_width">100dp</dimen>
-    <dimen name="item_rv_login_height">130dp</dimen>
-    <dimen name="item_rv_login_margin">7dp</dimen>
-    <dimen name="item_rv_login_icon_size">40dp</dimen>
-    <dimen name="divider_line_space">1dp</dimen>
+    <dimen name="item_rv_step_width">136dp</dimen>
+    <dimen name="item_rv_step_height">187dp</dimen>
+    <dimen name="item_rv_menu_size">98.6dp</dimen>
+    <dimen name="item_rv_menu_icon_size">34dp</dimen>
+    <dimen name="item_rv_login_width">170dp</dimen>
+    <dimen name="item_rv_login_height">221dp</dimen>
+    <dimen name="item_rv_login_margin">11.9dp</dimen>
+    <dimen name="item_rv_login_icon_size">68dp</dimen>
+    <dimen name="divider_line_space">1.7dp</dimen>
 </resources>