Browse Source

1.增加解锁后重新锁定的日志上报功能- 在 BaseViewModel 中添加 postLockLog 函数,用于发送锁定事件日志

2.修改 MainActivity 中的解锁逻辑,支持在特定情况下重置锁定状态.
2025_1_17_tb223fc
wangwanlei 1 week ago
parent
commit
1cfbb2803e

+ 27
- 1
app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt View File

@@ -670,6 +670,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
670 670
                         delay(3000)
671 671
                     }
672 672
                     /*mBinding.flayoutRoot.visibility = View.GONE*/
673
+                    canClickFlag = true
673 674
                     mBinding.userinfoLlayout.visibility=View.VISIBLE
674 675
                     mBinding.rv.visibility = View.VISIBLE
675 676
                 }
@@ -923,7 +924,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
923 924
     //解锁屏幕
924 925
     private fun unBindBlock() {
925 926
         spUtils.setParam(Const.DISABLEPAD, false)
926
-        //输入密码解锁屏幕时执行,因为要判断锁定原因是因为不在使用时间还是违规。
927
+        //输入密码解锁屏幕时执行,因为要判断锁定原因是因为不在使用时间还是违规。,新逻辑只要密码正确即使不再使用时间也解锁屏幕
927 928
         useTimeStrategy(3)
928 929
         if (mBinding.mainLlayout.visibility == View.GONE) {
929 930
             Toast(getString(R.string.padtimestoptips))
@@ -1440,8 +1441,22 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
1440 1441
                 block = StrategyUtils.getPadTimeStrategy(bean)
1441 1442
             }
1442 1443
             val param = spUtils.getParam(Const.DISABLEPAD, false) as Boolean
1444
+            if ((type==3||type==2) && !param){
1445
+                //如果type3表示输入密码解锁,type==2表示远程解锁,这时只要解锁成功,即使不在使用时间也解锁屏幕,所以重置block的状态,但再次熄屏时还是会锁定
1446
+                block=false
1447
+                LogShow("解锁")
1448
+            }else{
1449
+                //TODO 需要处理这里的逻辑执行太多了
1450
+                //判断是否重新锁定了,重新锁定则发送锁定日志,需要和之前的锁定状态进行对比
1451
+                if (param || block&&mBinding.lockLlayout.visibility == View.GONE){
1452
+                    //如果block为真表示锁定,param为false表示手动解锁,则表示重新锁定了,发送锁定日志
1453
+                    postLockLog()
1454
+                    LogShow("展示锁定状态")
1455
+                }
1456
+            }
1443 1457
             if (param || block) {
1444 1458
                 //隐藏账号编辑弹窗
1459
+                LogShow("展示锁定状态111")
1445 1460
                 accountDialog?.dismiss()
1446 1461
                 quitAccountDialog?.dismiss()
1447 1462
                 changeCodeDialog?.dismiss()
@@ -2045,6 +2060,17 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
2045 2060
             startIntentActivity(MainActivity().javaClass)
2046 2061
         }
2047 2062
     }
2063
+    /**
2064
+     * 发送锁定事件日志,用来处理当同时存在违规锁定和不再使用时间锁定时,通过密码或者远程解锁时会解锁一次,再次打开屏幕时会重新根据时间锁定,所以还需要发送锁定日志
2065
+     */
2066
+    private fun postLockLog(pushType: Int=3){
2067
+        val pushBean = LogPushBean()
2068
+        pushBean.pushType = pushType
2069
+        ManageApplication.getDeviceInfo()?.let {
2070
+            pushBean.sn = it
2071
+        }
2072
+        viewModel.postLockLog(pushBean)
2073
+    }
2048 2074
 
2049 2075
     private fun updateAppRv() {
2050 2076
         try {

+ 10
- 0
app/src/main/java/com/xhly/manageapp/viewmodel/BaseViewModel.kt View File

@@ -178,6 +178,16 @@ open class BaseViewModel : CommonBaseViewModel() {
178 178
         }
179 179
     }
180 180
 
181
+    /**
182
+     * 发送锁定事件日志,用来处理当同时存在违规锁定和不再使用时间锁定时,通过密码或者远程解锁时会解锁一次,再次打开屏幕时会重新根据时间锁定,所以还需要发送锁定日志
183
+     */
184
+
185
+    fun postLockLog(logPushBean: LogPushBean) {
186
+        launchUI {
187
+            val postLogPushAdd = logService.postLogPushAdd(logPushBean)
188
+        }
189
+    }
190
+
181 191
     /**
182 192
      * 同步服务器的时间
183 193
      */

Loading…
Cancel
Save