|
@@ -158,6 +158,8 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
158
|
158
|
private var tipsDialog: CustomDialog? = null
|
159
|
159
|
private var systemDialog: AlertDialog? = null
|
160
|
160
|
|
|
161
|
+ private var lockDialog: AlertDialog?=null
|
|
162
|
+
|
161
|
163
|
//创建应用卸载集合,方便获得应用信息
|
162
|
164
|
private val unInstallAppList = arrayListOf<AppInfo>()
|
163
|
165
|
|
|
@@ -188,6 +190,8 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
188
|
190
|
|
189
|
191
|
//判断是否在onDestroy状态
|
190
|
192
|
private var isDestroyFlag = false
|
|
193
|
+ //判断是否是第一次执行,第一次进入onresume才执行本地拉起
|
|
194
|
+ private var firstStartLocalApp=true
|
191
|
195
|
|
192
|
196
|
//执行了自启请求
|
193
|
197
|
private var netAutoAppFlag = false
|
|
@@ -238,7 +242,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
238
|
242
|
} catch (e: Exception) {
|
239
|
243
|
LogShow("错误是" + e.toString())
|
240
|
244
|
}
|
241
|
|
- initViewModelCallBack()
|
|
245
|
+ initViewModelCallBack()
|
242
|
246
|
isCreatFlag = true
|
243
|
247
|
lifecycleScope.launch {
|
244
|
248
|
isDestroyFlag = false
|
|
@@ -253,6 +257,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
253
|
257
|
//updateAllStrategy()
|
254
|
258
|
}
|
255
|
259
|
}
|
|
260
|
+
|
256
|
261
|
private fun initWallpaper() {
|
257
|
262
|
lifecycleScope.launch {
|
258
|
263
|
withContext(Dispatchers.IO) {
|
|
@@ -380,10 +385,13 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
380
|
385
|
var hasapp = 1
|
381
|
386
|
try {
|
382
|
387
|
val strategyBean =
|
383
|
|
- spUtils.getFromJson(Const.STRATEGYBEANKEY, StrategyBean::class.java) as StrategyBean
|
|
388
|
+ spUtils.getFromJson(
|
|
389
|
+ Const.STRATEGYBEANKEY,
|
|
390
|
+ StrategyBean::class.java
|
|
391
|
+ ) as StrategyBean
|
384
|
392
|
//获得平板策略是否使用app策略
|
385
|
393
|
hasapp = strategyBean.hasapp
|
386
|
|
- }catch (e:Exception){
|
|
394
|
+ } catch (e: Exception) {
|
387
|
395
|
|
388
|
396
|
}
|
389
|
397
|
if (modelList.size > 0) {
|
|
@@ -401,9 +409,9 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
401
|
409
|
}
|
402
|
410
|
} else {
|
403
|
411
|
//hasapp==0表示未打开应用策略,所以打开打开应用安装权限,使用策略并未空则不允许安装应用
|
404
|
|
- if (hasapp==0){
|
|
412
|
+ if (hasapp == 0) {
|
405
|
413
|
ManageApplication.disableInstallation(false)
|
406
|
|
- }else{
|
|
414
|
+ } else {
|
407
|
415
|
ManageApplication.disableInstallation(true)
|
408
|
416
|
}
|
409
|
417
|
}
|
|
@@ -421,25 +429,27 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
421
|
429
|
val rxPermissions = RxPermissions(this@MainActivity)
|
422
|
430
|
rxPermissions.request(Manifest.permission.REQUEST_INSTALL_PACKAGES)
|
423
|
431
|
.subscribe { granted ->
|
424
|
|
- if (granted || ModelNameUtils.IS_LianxX505f() || ModelNameUtils.IS_LianxX6e6f()|| ModelNameUtils.IS_LianxTB223FC()) {
|
|
432
|
+ if (granted || ModelNameUtils.IS_LianxX505f() || ModelNameUtils.IS_LianxX6e6f() || ModelNameUtils.IS_LianxTB223FC()) {
|
425
|
433
|
// 权限已授予,执行安装操作
|
426
|
434
|
val appList = AppUtils.GetAppList(this@MainActivity)
|
427
|
435
|
//修改路径
|
428
|
|
- /* getExternalFilesDir(null)?.let {
|
429
|
|
- FileUtils.deleteCurrentFlie(it)
|
430
|
|
- }
|
431
|
|
- val file = getExternalFilesDir(null)*/
|
432
|
|
- var file:File?=null
|
433
|
|
- if (ModelNameUtils.IS_LianxTB223FC()){
|
|
436
|
+ /* getExternalFilesDir(null)?.let {
|
|
437
|
+ FileUtils.deleteCurrentFlie(it)
|
|
438
|
+ }
|
|
439
|
+ val file = getExternalFilesDir(null)*/
|
|
440
|
+ var file: File? = null
|
|
441
|
+ if (ModelNameUtils.IS_LianxTB223FC()) {
|
434
|
442
|
var directory =
|
435
|
|
- Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)
|
436
|
|
- file=File(directory, "appdownload")
|
437
|
|
- if (!file.exists()){
|
|
443
|
+ Environment.getExternalStoragePublicDirectory(
|
|
444
|
+ Environment.DIRECTORY_DOWNLOADS
|
|
445
|
+ )
|
|
446
|
+ file = File(directory, "appdownload")
|
|
447
|
+ if (!file.exists()) {
|
438
|
448
|
file.mkdirs()
|
439
|
|
- }else{
|
|
449
|
+ } else {
|
440
|
450
|
FileUtils.deleteCurrentFlie(file)
|
441
|
451
|
}
|
442
|
|
- }else{
|
|
452
|
+ } else {
|
443
|
453
|
getExternalFilesDir(null)?.let {
|
444
|
454
|
FileUtils.deleteCurrentFlie(it)
|
445
|
455
|
}
|
|
@@ -448,11 +458,15 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
448
|
458
|
modelList.forEach { app ->
|
449
|
459
|
try {
|
450
|
460
|
//获得已安装的应用判断版本,未安装的则直接静默安装。
|
451
|
|
- val filter = appList.filter { it.packageName.equals(app.appPackage) }
|
|
461
|
+ val filter =
|
|
462
|
+ appList.filter { it.packageName.equals(app.appPackage) }
|
452
|
463
|
//列表中不存在,或者版本较低则更新
|
453
|
464
|
val apkPath = app.apkPath
|
454
|
465
|
val appName = app.appName
|
455
|
|
- if (filter.isNotEmpty() || app.appPackage.equals(packageName)) {
|
|
466
|
+ if (filter.isNotEmpty() || app.appPackage.equals(
|
|
467
|
+ packageName
|
|
468
|
+ )
|
|
469
|
+ ) {
|
456
|
470
|
//不为空filter.isNotEmpty()表示列表存在应用则判断版本号,app.appPackage.equals(packageName)表示需要判断是否更新桌面应用,都不满足表示应用不存在
|
457
|
471
|
val appversion =
|
458
|
472
|
if (app.appPackage.equals(packageName)) {
|
|
@@ -665,21 +679,22 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
665
|
679
|
|
666
|
680
|
viewModel.viewModelScope.launch {
|
667
|
681
|
viewModel.autoAppData.collect {
|
|
682
|
+ //因为flow创建时会自动调用,所以判断netAutoAppFlag
|
|
683
|
+ if (!netAutoAppFlag || isDestroyFlag) {
|
|
684
|
+ return@collect
|
|
685
|
+ } else {
|
|
686
|
+ netAutoAppFlag = false
|
|
687
|
+ }
|
668
|
688
|
lifecycleScope.launch {
|
669
|
|
- withContext(Dispatchers.IO){
|
|
689
|
+ withContext(Dispatchers.IO) {
|
670
|
690
|
delay(3000)
|
671
|
691
|
}
|
672
|
692
|
/*mBinding.flayoutRoot.visibility = View.GONE*/
|
673
|
693
|
canClickFlag = true
|
674
|
|
- mBinding.userinfoLlayout.visibility=View.VISIBLE
|
|
694
|
+ mBinding.userinfoLlayout.visibility = View.VISIBLE
|
675
|
695
|
mBinding.rv.visibility = View.VISIBLE
|
676
|
696
|
}
|
677
|
697
|
it?.let {
|
678
|
|
- if (!netAutoAppFlag || isDestroyFlag) {
|
679
|
|
- return@collect
|
680
|
|
- } else {
|
681
|
|
- netAutoAppFlag = false
|
682
|
|
- }
|
683
|
698
|
//连接不为空,并且应用已安装则跳转应用
|
684
|
699
|
/* it.authUrl="com.xhkjedu.xh_control_browser.MainActivity"
|
685
|
700
|
it.appPackage="com.xhkjedu.xh_control_browser"*/
|
|
@@ -688,6 +703,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
688
|
703
|
if (!mainLockFlag) {
|
689
|
704
|
//如果地址为空并且请求为true则不跳转,否则跳转
|
690
|
705
|
try {
|
|
706
|
+ Log.d("网络跳转","自动拉起111")
|
691
|
707
|
if ((it.authUrl.isNullOrEmpty() || it.appPackage.isNullOrEmpty()) && it.netSucessFlag) {
|
692
|
708
|
//请求成功但地址为空,不跳转
|
693
|
709
|
canClickFlag = true
|
|
@@ -748,8 +764,8 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
748
|
764
|
}
|
749
|
765
|
}*/
|
750
|
766
|
viewModel.viewModelScope.launch {
|
751
|
|
- viewModel.timeResultDataFlow.collect{
|
752
|
|
- if (SystemUtil.updateTimeFlag&&it!=null) {
|
|
767
|
+ viewModel.timeResultDataFlow.collect {
|
|
768
|
+ if (SystemUtil.updateTimeFlag && it != null) {
|
753
|
769
|
SystemUtil.updateTimeFlag = false
|
754
|
770
|
ManageApplication.setSysTime(it)
|
755
|
771
|
LogShow("当前设置的时间是" + it + "|||" + SystemClock.getDateString(it))
|
|
@@ -805,16 +821,6 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
805
|
821
|
try {
|
806
|
822
|
canClickFlag = true
|
807
|
823
|
val am = getSystemService(ACTIVITY_SERVICE) as ActivityManager
|
808
|
|
- /*val runningTasks = am.getRunningTasks(1)
|
809
|
|
- if (!runningTasks.isNullOrEmpty()){
|
810
|
|
- //判断栈顶是否是自启APP不是的话拉起
|
811
|
|
- val contains = runningTasks[0].topActivity?.className.toString()
|
812
|
|
- .contains(autoAppBean.appPackage!!)
|
813
|
|
- if (contains){
|
814
|
|
- return
|
815
|
|
- }
|
816
|
|
- }*/
|
817
|
|
-
|
818
|
824
|
//不在判断栈顶activity,现在根据进程名字判断,包含则不拉起(增加条件,当前页面为管控桌面则拉起)
|
819
|
825
|
var manageFlag = false
|
820
|
826
|
val runningTasks = am.getRunningTasks(1)
|
|
@@ -859,6 +865,35 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
859
|
865
|
}
|
860
|
866
|
}
|
861
|
867
|
|
|
868
|
+ //修改AutoApp启动逻辑,优先从本地中读取拉起,然后再从服务器中拉取
|
|
869
|
+ private fun startLocalAutoApp() {
|
|
870
|
+ if (userBean==null){
|
|
871
|
+ return
|
|
872
|
+ }
|
|
873
|
+ LogShow("当前锁定状态"+mainLockFlag)
|
|
874
|
+ if (!mainLockFlag) {
|
|
875
|
+ //如果地址为空并且请求为true则不跳转,否则跳转
|
|
876
|
+ try {
|
|
877
|
+ val autoAppBean = spUtils.getFromJson(
|
|
878
|
+ Const.AUTOAPPKEY,
|
|
879
|
+ AutoAppBean().javaClass
|
|
880
|
+ ) as AutoAppBean
|
|
881
|
+ Log.d("本地跳转","自动拉起")
|
|
882
|
+ if ((!autoAppBean.authUrl.isNullOrEmpty() && !autoAppBean.appPackage.isNullOrEmpty()) && AppUtils.isAppInstalled(this@MainActivity, autoAppBean.appPackage)
|
|
883
|
+ ) {
|
|
884
|
+ Log.d("本地跳转","自动拉起111")
|
|
885
|
+ //缓存地址不为空,并且安装了则跳转
|
|
886
|
+ startAutoApp(autoAppBean)
|
|
887
|
+ } else {
|
|
888
|
+ //其余情况都允许触控
|
|
889
|
+ canClickFlag = true
|
|
890
|
+ }
|
|
891
|
+ } catch (e: Exception) {
|
|
892
|
+ canClickFlag = true
|
|
893
|
+ }
|
|
894
|
+ }
|
|
895
|
+ }
|
|
896
|
+
|
862
|
897
|
private fun showSucessToast() {
|
863
|
898
|
if (isResumeFlag) {
|
864
|
899
|
//只有可见状态才提示策略更新
|
|
@@ -907,7 +942,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
907
|
942
|
}
|
908
|
943
|
mBinding.netsetLlayout.setOnClickListener {
|
909
|
944
|
val intent = Intent(Settings.ACTION_WIFI_SETTINGS)
|
910
|
|
- intent.putExtra("full_screen",true)
|
|
945
|
+ intent.putExtra("full_screen", true)
|
911
|
946
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
912
|
947
|
startActivity(intent)
|
913
|
948
|
}
|
|
@@ -950,41 +985,41 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
950
|
985
|
StrategyUtils.clearMemory(context, data)
|
951
|
986
|
Toaster.show(context.getString(R.string.speedend))
|
952
|
987
|
}
|
953
|
|
-/*
|
954
|
|
- if (ModelNameUtils.IS_LianxX505f()|| ModelNameUtils.IS_LianxX6e6f()|| ModelNameUtils.IS_LianxTB223FC()){
|
955
|
|
- ManageApplication.setPackageEnabled("com.tblenovo.launcher",true)
|
956
|
|
- //505f的桌面名称
|
957
|
|
- if (ModelNameUtils.IS_LianxTB223FC()){
|
958
|
|
- ManageApplication.setCustomLauncher("com.tblenovo.launcher","com.android.searchlauncher.SearchLauncher")
|
959
|
|
- }else{
|
960
|
|
- ManageApplication.setCustomLauncher("com.tblenovo.launcher","com.android.iotlauncher.IotLauncher")
|
961
|
|
- }
|
962
|
|
- try {
|
963
|
|
- //解除管控后,禁止切换启动器
|
964
|
|
- ManageApplication.disallowSwitchLauncher_v3(true)
|
965
|
|
- val launchIntent = Intent()
|
966
|
|
- if (ModelNameUtils.IS_LianxTB223FC()){
|
967
|
|
- launchIntent.setComponent(
|
968
|
|
- ComponentName(
|
969
|
|
- "com.tblenovo.launcher",
|
970
|
|
- "com.android.searchlauncher.SearchLauncher"
|
971
|
|
- )
|
972
|
|
- )
|
973
|
|
- }else{
|
974
|
|
- launchIntent.setComponent(
|
975
|
|
- ComponentName(
|
976
|
|
- "com.tblenovo.launcher",
|
977
|
|
- "com.android.iotlauncher.IotLauncher"
|
978
|
|
- )
|
979
|
|
- )
|
980
|
|
- }
|
981
|
|
- launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
982
|
|
- startActivity(launchIntent)
|
983
|
|
- }catch (e:Exception){
|
984
|
|
- Toaster.showLong("失败原因"+e.toString())
|
985
|
|
- }
|
986
|
|
- }
|
987
|
|
-*/
|
|
988
|
+ /*
|
|
989
|
+ if (ModelNameUtils.IS_LianxX505f()|| ModelNameUtils.IS_LianxX6e6f()|| ModelNameUtils.IS_LianxTB223FC()){
|
|
990
|
+ ManageApplication.setPackageEnabled("com.tblenovo.launcher",true)
|
|
991
|
+ //505f的桌面名称
|
|
992
|
+ if (ModelNameUtils.IS_LianxTB223FC()){
|
|
993
|
+ ManageApplication.setCustomLauncher("com.tblenovo.launcher","com.android.searchlauncher.SearchLauncher")
|
|
994
|
+ }else{
|
|
995
|
+ ManageApplication.setCustomLauncher("com.tblenovo.launcher","com.android.iotlauncher.IotLauncher")
|
|
996
|
+ }
|
|
997
|
+ try {
|
|
998
|
+ //解除管控后,禁止切换启动器
|
|
999
|
+ ManageApplication.disallowSwitchLauncher_v3(true)
|
|
1000
|
+ val launchIntent = Intent()
|
|
1001
|
+ if (ModelNameUtils.IS_LianxTB223FC()){
|
|
1002
|
+ launchIntent.setComponent(
|
|
1003
|
+ ComponentName(
|
|
1004
|
+ "com.tblenovo.launcher",
|
|
1005
|
+ "com.android.searchlauncher.SearchLauncher"
|
|
1006
|
+ )
|
|
1007
|
+ )
|
|
1008
|
+ }else{
|
|
1009
|
+ launchIntent.setComponent(
|
|
1010
|
+ ComponentName(
|
|
1011
|
+ "com.tblenovo.launcher",
|
|
1012
|
+ "com.android.iotlauncher.IotLauncher"
|
|
1013
|
+ )
|
|
1014
|
+ )
|
|
1015
|
+ }
|
|
1016
|
+ launchIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
|
|
1017
|
+ startActivity(launchIntent)
|
|
1018
|
+ }catch (e:Exception){
|
|
1019
|
+ Toaster.showLong("失败原因"+e.toString())
|
|
1020
|
+ }
|
|
1021
|
+ }
|
|
1022
|
+ */
|
988
|
1023
|
|
989
|
1024
|
}
|
990
|
1025
|
|
|
@@ -1109,29 +1144,45 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
1109
|
1144
|
}
|
1110
|
1145
|
mBinding.userschoolTv.text = name.toString()
|
1111
|
1146
|
mBinding.usernameTv.text = it.username
|
|
1147
|
+ isResumeFlag = true
|
|
1148
|
+ Const.startAppStoreFlag = false
|
|
1149
|
+ updateNetErrorAppRv()
|
|
1150
|
+ updateResumeStrategy()
|
|
1151
|
+ updatePadInfo()
|
|
1152
|
+ updateMcApp()
|
|
1153
|
+ val appVersionCode = SystemUtil.getAppVersionCode(this, packageName)
|
|
1154
|
+ val appVersionName = SystemUtil.getAppVersionName(this, packageName)
|
|
1155
|
+ mBinding.versionTv.text = if (com.xhkjedu.manageapp.BuildConfig.IS_DEBUG) {
|
|
1156
|
+ "版本 v${appVersionName} (Build ${appVersionCode})测试版"
|
|
1157
|
+ } else {
|
|
1158
|
+ "版本 v${appVersionName} (Build ${appVersionCode})正式版"
|
|
1159
|
+ }
|
|
1160
|
+ if (SystemUtil.isSuEnable()) {
|
|
1161
|
+ //root了则调用接口
|
|
1162
|
+ val data = LogdOperateBean()
|
|
1163
|
+ ManageApplication.getDeviceInfo()?.let {
|
|
1164
|
+ data.sn = it
|
|
1165
|
+ }
|
|
1166
|
+ data.comm = "设备ROOT"
|
|
1167
|
+ data.doEvent = EventLog.ROOTEVENT
|
|
1168
|
+ viewModel.eventLog(data)
|
|
1169
|
+ }
|
|
1170
|
+ if (firstStartLocalApp){
|
|
1171
|
+ firstStartLocalApp=false
|
|
1172
|
+ startLocalAutoApp()
|
|
1173
|
+ }
|
1112
|
1174
|
}
|
1113
|
|
- isResumeFlag = true
|
1114
|
|
- Const.startAppStoreFlag = false
|
1115
|
|
- updateNetErrorAppRv()
|
1116
|
|
- updateResumeStrategy()
|
1117
|
|
- updatePadInfo()
|
1118
|
|
- updateMcApp()
|
1119
|
|
- val appVersionCode = SystemUtil.getAppVersionCode(this, packageName)
|
1120
|
|
- val appVersionName = SystemUtil.getAppVersionName(this, packageName)
|
1121
|
|
- mBinding.versionTv.text = if (com.xhkjedu.manageapp.BuildConfig.IS_DEBUG) {
|
1122
|
|
- "版本 v${appVersionName} (Build ${appVersionCode})测试版"
|
1123
|
|
- } else {
|
1124
|
|
- "版本 v${appVersionName} (Build ${appVersionCode})正式版"
|
1125
|
|
- }
|
1126
|
|
- if (SystemUtil.isSuEnable()) {
|
1127
|
|
- //root了则调用接口
|
1128
|
|
- val data = LogdOperateBean()
|
1129
|
|
- ManageApplication.getDeviceInfo()?.let {
|
1130
|
|
- data.sn = it
|
|
1175
|
+ }
|
|
1176
|
+
|
|
1177
|
+ override fun onPause() {
|
|
1178
|
+ super.onPause()
|
|
1179
|
+ LogShow("锁定了吧显示弹窗吗222")
|
|
1180
|
+ if (userBean!=null){
|
|
1181
|
+ if (mainLockFlag){
|
|
1182
|
+ showLockDialog(true)
|
|
1183
|
+ }else{
|
|
1184
|
+ showLockDialog(false)
|
1131
|
1185
|
}
|
1132
|
|
- data.comm = "设备ROOT"
|
1133
|
|
- data.doEvent = EventLog.ROOTEVENT
|
1134
|
|
- viewModel.eventLog(data)
|
1135
|
1186
|
}
|
1136
|
1187
|
}
|
1137
|
1188
|
|
|
@@ -1180,11 +1231,12 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
1180
|
1231
|
Const.backNum = 0
|
1181
|
1232
|
updateAllStrategy()
|
1182
|
1233
|
} else {
|
1183
|
|
- if (!isCreatFlag) {
|
|
1234
|
+ /* if (!isCreatFlag) {
|
1184
|
1235
|
//!isCreatFlag表示不是第一次启动时使用useTimeStrategy
|
1185
|
1236
|
useTimeStrategy(5)
|
1186
|
1237
|
}
|
1187
|
|
- isCreatFlag = false
|
|
1238
|
+ isCreatFlag = false*/
|
|
1239
|
+ useTimeStrategy(5)
|
1188
|
1240
|
}
|
1189
|
1241
|
}
|
1190
|
1242
|
|
|
@@ -1429,7 +1481,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
1429
|
1481
|
}
|
1430
|
1482
|
|
1431
|
1483
|
private fun useTimeStrategy(type: Int) {
|
1432
|
|
- LogShow("开始获得时间策略$type")
|
|
1484
|
+ LogShow("锁定了吧,开始获得时间策略$type")
|
1433
|
1485
|
//获得sputils中的平板锁定策略
|
1434
|
1486
|
try {
|
1435
|
1487
|
//如果存储的是锁定则锁定
|
|
@@ -1441,22 +1493,22 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
1441
|
1493
|
block = StrategyUtils.getPadTimeStrategy(bean)
|
1442
|
1494
|
}
|
1443
|
1495
|
val param = spUtils.getParam(Const.DISABLEPAD, false) as Boolean
|
1444
|
|
- if ((type==3||type==2) && !param){
|
|
1496
|
+ LogShow("锁定了吧,本地数据"+block+"|||"+param)
|
|
1497
|
+ if ((type == 3 || type == 2) && !param) {
|
1445
|
1498
|
//如果type3表示输入密码解锁,type==2表示远程解锁,这时只要解锁成功,即使不在使用时间也解锁屏幕,所以重置block的状态,但再次熄屏时还是会锁定
|
1446
|
|
- block=false
|
1447
|
|
- }else{
|
|
1499
|
+ block = false
|
|
1500
|
+ } else {
|
1448
|
1501
|
//判断是否重新锁定了,重新锁定则发送锁定日志,需要和之前的锁定状态进行对比
|
1449
|
|
- if ((param || block)&&mBinding.lockLlayout.visibility == View.GONE){
|
|
1502
|
+ if ((param || block) && mBinding.lockLlayout.visibility == View.GONE) {
|
1450
|
1503
|
//如果block为真表示锁定,param为false表示手动解锁,则表示重新锁定了,发送锁定日志
|
1451
|
1504
|
postLockLog(3)
|
1452
|
|
- }else if (!(param || block) && mBinding.mainLlayout.visibility == View.GONE){
|
|
1505
|
+ } else if (!(param || block) && mBinding.mainLlayout.visibility == View.GONE) {
|
1453
|
1506
|
//如果未锁定,并且之前是锁定,则发送解锁日志
|
1454
|
1507
|
postLockLog(2)
|
1455
|
1508
|
}
|
1456
|
1509
|
}
|
1457
|
1510
|
if (param || block) {
|
1458
|
1511
|
//隐藏账号编辑弹窗
|
1459
|
|
- LogShow("展示锁定状态111")
|
1460
|
1512
|
accountDialog?.dismiss()
|
1461
|
1513
|
quitAccountDialog?.dismiss()
|
1462
|
1514
|
changeCodeDialog?.dismiss()
|
|
@@ -1465,12 +1517,14 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
1465
|
1517
|
mainLockFlag = true
|
1466
|
1518
|
//锁定时可以点击
|
1467
|
1519
|
canClickFlag = true
|
|
1520
|
+ showLockDialog(true)
|
1468
|
1521
|
} else {
|
1469
|
1522
|
mainLockFlag = false
|
1470
|
1523
|
autoAppFlag = true
|
1471
|
1524
|
mBinding.mainLlayout.visibility = View.VISIBLE
|
1472
|
1525
|
mBinding.lockLlayout.visibility = View.GONE
|
1473
|
1526
|
hiddenSoft(mBinding.lockEt)
|
|
1527
|
+ showLockDialog(false)
|
1474
|
1528
|
}
|
1475
|
1529
|
//如果同时锁定和平板不再可用时间,优先显示锁定提示,锁定接触后显示不再可用时间提示
|
1476
|
1530
|
mBinding.locktipsTv.text = if (param) {
|
|
@@ -1498,7 +1552,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
1498
|
1552
|
}
|
1499
|
1553
|
}*/
|
1500
|
1554
|
//没有单点登录所以不再判断
|
1501
|
|
- LogShow("打开app拉起请求,type==$type")
|
|
1555
|
+ LogShow("锁定了吧打开app拉起请求,type==$type")
|
1502
|
1556
|
userBean?.let {
|
1503
|
1557
|
netAutoAppFlag = true
|
1504
|
1558
|
viewModel.postAutoAppDetail(it.regionid)
|
|
@@ -1797,7 +1851,8 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
1797
|
1851
|
viewModel.postExitReseted(sn)
|
1798
|
1852
|
startIntentActivity(MainActivity().javaClass)
|
1799
|
1853
|
}
|
1800
|
|
- Const.CODE999.toString()->{
|
|
1854
|
+
|
|
1855
|
+ Const.CODE999.toString() -> {
|
1801
|
1856
|
viewModel.postSyncTime(true)
|
1802
|
1857
|
}
|
1803
|
1858
|
|
|
@@ -1882,10 +1937,10 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
1882
|
1937
|
loginStudentBean.usersex = 0
|
1883
|
1938
|
}
|
1884
|
1939
|
loginStudentBean.sn = ManageApplication.getDeviceInfo()
|
1885
|
|
- loginStudentBean.device=Build.BRAND
|
1886
|
|
- loginStudentBean.deviceModel=Build.MODEL
|
1887
|
|
- loginStudentBean.clientVersion=SystemUtil.getAppVersionName(this,packageName)
|
1888
|
|
- loginStudentBean.romVersion=Build.DISPLAY
|
|
1940
|
+ loginStudentBean.device = Build.BRAND
|
|
1941
|
+ loginStudentBean.deviceModel = Build.MODEL
|
|
1942
|
+ loginStudentBean.clientVersion = SystemUtil.getAppVersionName(this, packageName)
|
|
1943
|
+ loginStudentBean.romVersion = Build.DISPLAY
|
1889
|
1944
|
updateUser = true
|
1890
|
1945
|
viewModel.editLogin(loginStudentBean)
|
1891
|
1946
|
} catch (e: Exception) {
|
|
@@ -2031,6 +2086,54 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
2031
|
2086
|
}
|
2032
|
2087
|
}
|
2033
|
2088
|
|
|
2089
|
+ private fun showLockDialog(showFlag:Boolean) {
|
|
2090
|
+ if (lockDialog==null){
|
|
2091
|
+ val v = View.inflate(this, R.layout.dialog_locklayout, null)
|
|
2092
|
+ val lockllayout=v.findViewById<View>(R.id.lock_llayout)
|
|
2093
|
+ val codeenter_cv=v.findViewById<View>(R.id.codeenter_cv)
|
|
2094
|
+ val lock_et=v.findViewById<EditText>(R.id.lock_et)
|
|
2095
|
+ val locktips_tv=v.findViewById<TextView>(R.id.locktips_tv)
|
|
2096
|
+ locktips_tv.text="这是弹窗"
|
|
2097
|
+ lockllayout.setOnClickListener {
|
|
2098
|
+ //限制最多1分钟请求一次策略,
|
|
2099
|
+ if (lastTimeLong + 1 * 60 * 1000 < System.currentTimeMillis()) {
|
|
2100
|
+ lastTimeLong = System.currentTimeMillis()
|
|
2101
|
+ updateAllStrategy()
|
|
2102
|
+ }
|
|
2103
|
+ }
|
|
2104
|
+ codeenter_cv.setOnClickListener {
|
|
2105
|
+ //如果密码一致,则解锁
|
|
2106
|
+ val code = lock_et.text.toString()
|
|
2107
|
+ if (code.isNullOrBlank()) {
|
|
2108
|
+ return@setOnClickListener
|
|
2109
|
+ }
|
|
2110
|
+ ManageApplication.getDeviceInfo()?.let {
|
|
2111
|
+ viewModel.postPwdDetail(code, it)
|
|
2112
|
+ }
|
|
2113
|
+ }
|
|
2114
|
+ lockDialog =
|
|
2115
|
+ AlertDialog.Builder(this).create()
|
|
2116
|
+ lockDialog?.setView(v)
|
|
2117
|
+ lockDialog?.setCancelable(false)
|
|
2118
|
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
2119
|
+ lockDialog?.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
|
|
2120
|
+ lockDialog?.window?.setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY)
|
|
2121
|
+ } else {
|
|
2122
|
+ lockDialog?.window?.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT)
|
|
2123
|
+ }
|
|
2124
|
+ }
|
|
2125
|
+ LogShow("锁定了吧显示弹窗吗"+showFlag+"|||"+mainLockFlag + "|||" + autoAppFlag)
|
|
2126
|
+ lockDialog?.apply {
|
|
2127
|
+ if (showFlag){
|
|
2128
|
+ if (!isShowing) {
|
|
2129
|
+ show()
|
|
2130
|
+ }
|
|
2131
|
+ }else{
|
|
2132
|
+ dismiss()
|
|
2133
|
+ }
|
|
2134
|
+ }
|
|
2135
|
+ }
|
|
2136
|
+
|
2034
|
2137
|
private fun getAppStoreList() {
|
2035
|
2138
|
try {
|
2036
|
2139
|
if (appStroeList.size == 0) {
|
|
@@ -2060,10 +2163,11 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
2060
|
2163
|
startIntentActivity(MainActivity().javaClass)
|
2061
|
2164
|
}
|
2062
|
2165
|
}
|
|
2166
|
+
|
2063
|
2167
|
/**
|
2064
|
2168
|
* 发送锁定事件日志,用来处理当同时存在违规锁定和不再使用时间锁定时,通过密码或者远程解锁时会解锁一次,再次打开屏幕时会重新根据时间锁定,所以还需要发送锁定日志
|
2065
|
2169
|
*/
|
2066
|
|
- private fun postLockLog(pushType: Int=3){
|
|
2170
|
+ private fun postLockLog(pushType: Int = 3) {
|
2067
|
2171
|
val pushBean = LogPushBean()
|
2068
|
2172
|
pushBean.pushType = pushType
|
2069
|
2173
|
ManageApplication.getDeviceInfo()?.let {
|
|
@@ -2479,11 +2583,11 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
|
2479
|
2583
|
if (!Const.startAppStoreFlag) {
|
2480
|
2584
|
val appList = AppUtils.GetAppList(this)
|
2481
|
2585
|
val firstOrNull = appList.firstOrNull { it.packageName.equals(downItem.pkgName) }
|
2482
|
|
- if (firstOrNull!=null){
|
2483
|
|
- if (downItem.appversion>firstOrNull.versionNum){
|
|
2586
|
+ if (firstOrNull != null) {
|
|
2587
|
+ if (downItem.appversion > firstOrNull.versionNum) {
|
2484
|
2588
|
InstallUtils.addInstall(downItem.savepath, downItem.pkgName, downItem.appName)
|
2485
|
2589
|
}
|
2486
|
|
- }else{
|
|
2590
|
+ } else {
|
2487
|
2591
|
InstallUtils.addInstall(downItem.savepath, downItem.pkgName, downItem.appName)
|
2488
|
2592
|
}
|
2489
|
2593
|
}
|