Browse Source

1.将应用安装逻辑抽取到独立的函数installAppList中

2025_1_17_tb223fc
wangwanlei 1 week ago
parent
commit
46a4f16fa6
1 changed files with 103 additions and 98 deletions
  1. 103
    98
      app/src/main/java/com/xhly/manageapp/ui/main/activity/MainActivity.kt

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

@@ -428,104 +428,7 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
428 428
         }
429 429
         viewModel.viewModelScope.launch {
430 430
             viewModel.forceListAppData.collect { modelList ->
431
-                modelList?.let {
432
-                    //如果已经进入商店则不显示
433
-                    if (!Const.startAppStoreFlag) {
434
-                        DownLoadUtils.destroyDownLoad()
435
-                        InstallUtils.destroyInstallUtils()
436
-                        //获得必装应用,未安装或者版本较低则更新,先删除目录中的文件
437
-                        val rxPermissions = RxPermissions(this@MainActivity)
438
-                        rxPermissions.request(Manifest.permission.REQUEST_INSTALL_PACKAGES)
439
-                            .subscribe { granted ->
440
-                                if (granted || ModelNameUtils.IS_LianxX505f() || ModelNameUtils.IS_LianxX6e6f() || ModelNameUtils.IS_LianxTB223FC()) {
441
-                                    // 权限已授予,执行安装操作
442
-                                    val appList = AppUtils.GetAppList(this@MainActivity)
443
-                                    //修改路径
444
-                                    /*     getExternalFilesDir(null)?.let {
445
-                                             FileUtils.deleteCurrentFlie(it)
446
-                                         }
447
-                                         val file = getExternalFilesDir(null)*/
448
-                                    var file: File? = null
449
-                                    if (ModelNameUtils.IS_LianxTB223FC()) {
450
-                                        var directory =
451
-                                            Environment.getExternalStoragePublicDirectory(
452
-                                                Environment.DIRECTORY_DOWNLOADS
453
-                                            )
454
-                                        file = File(directory, "appdownload")
455
-                                        if (!file.exists()) {
456
-                                            file.mkdirs()
457
-                                        } else {
458
-                                            FileUtils.deleteCurrentFlie(file)
459
-                                        }
460
-                                    } else {
461
-                                        getExternalFilesDir(null)?.let {
462
-                                            FileUtils.deleteCurrentFlie(it)
463
-                                        }
464
-                                        file = getExternalFilesDir(null)
465
-                                    }
466
-                                    modelList.forEach { app ->
467
-                                        try {
468
-                                            //获得已安装的应用判断版本,未安装的则直接静默安装。
469
-                                            val filter =
470
-                                                appList.filter { it.packageName.equals(app.appPackage) }
471
-                                            //列表中不存在,或者版本较低则更新
472
-                                            val apkPath = app.apkPath
473
-                                            val appName = app.appName
474
-                                            if (filter.isNotEmpty() || app.appPackage.equals(
475
-                                                    packageName
476
-                                                )
477
-                                            ) {
478
-                                                //不为空filter.isNotEmpty()表示列表存在应用则判断版本号,app.appPackage.equals(packageName)表示需要判断是否更新桌面应用,都不满足表示应用不存在
479
-                                                val appversion =
480
-                                                    if (app.appPackage.equals(packageName)) {
481
-                                                        SystemUtil.getAppVersionCode(
482
-                                                            this@MainActivity,
483
-                                                            packageName
484
-                                                        )
485
-                                                    } else {
486
-                                                        filter[0].versionNum
487
-                                                    }
488
-                                                if (app.versionNum > appversion) {
489
-                                                    //版本低则更新安装。
490
-                                                    //AppDownLoadUtils.addToDownloadQueue(apkPath, appName,app.appPackage)
491
-                                                    DownLoadUtils.addDownload(
492
-                                                        apkPath,
493
-                                                        app.appPackage,
494
-                                                        File(
495
-                                                            file.toString(),
496
-                                                            "$appName.apk"
497
-                                                        ).toString(),
498
-                                                        app.appPackage,
499
-                                                        appName,
500
-                                                        app.versionNum.toLong()
501
-                                                    )
502
-                                                }
503
-                                            } else {
504
-                                                //不存在,直接下载安装。
505
-                                                //AppDownLoadUtils.addToDownloadQueue(apkPath, appName,app.appPackage)
506
-                                                DownLoadUtils.addDownload(
507
-                                                    apkPath,
508
-                                                    app.appPackage,
509
-                                                    File(
510
-                                                        file.toString(),
511
-                                                        "$appName.apk"
512
-                                                    ).toString(),
513
-                                                    app.appPackage,
514
-                                                    appName,
515
-                                                    app.versionNum.toLong()
516
-                                                )
517
-                                            }
518
-                                        } catch (e: Exception) {
519
-                                            LogShow("问题" + e.toString())
520
-                                        }
521
-                                    }
522
-                                } else {
523
-                                    // 用户拒绝了安装权限,处理相应逻辑
524
-                                    viewModel.getAppList()
525
-                                }
526
-                            }
527
-                    }
528
-                }
431
+                installAppList(modelList)
529 432
             }
530 433
 
531 434
         }
@@ -827,6 +730,108 @@ class MainActivity : BaseActivity<MainViewModel, ActivityMainBinding>(), Downloa
827 730
         }
828 731
     }
829 732
 
733
+    private fun installAppList(modelList:ArrayList<AppModel>?) {
734
+        modelList?.let {
735
+            //如果已经进入商店则不显示
736
+            if (!Const.startAppStoreFlag) {
737
+                DownLoadUtils.destroyDownLoad()
738
+                InstallUtils.destroyInstallUtils()
739
+                //获得必装应用,未安装或者版本较低则更新,先删除目录中的文件
740
+                val rxPermissions = RxPermissions(this@MainActivity)
741
+                rxPermissions.request(Manifest.permission.REQUEST_INSTALL_PACKAGES)
742
+                    .subscribe { granted ->
743
+                        if (granted || ModelNameUtils.IS_LianxX505f() || ModelNameUtils.IS_LianxX6e6f() || ModelNameUtils.IS_LianxTB223FC()) {
744
+                            // 权限已授予,执行安装操作
745
+                            val appList = AppUtils.GetAppList(this@MainActivity)
746
+                            //修改路径
747
+                            /*     getExternalFilesDir(null)?.let {
748
+                                     FileUtils.deleteCurrentFlie(it)
749
+                                 }
750
+                                 val file = getExternalFilesDir(null)*/
751
+                            var file: File? = null
752
+                            if (ModelNameUtils.IS_LianxTB223FC()) {
753
+                                var directory =
754
+                                    Environment.getExternalStoragePublicDirectory(
755
+                                        Environment.DIRECTORY_DOWNLOADS
756
+                                    )
757
+                                file = File(directory, "appdownload")
758
+                                if (!file.exists()) {
759
+                                    file.mkdirs()
760
+                                } else {
761
+                                    FileUtils.deleteCurrentFlie(file)
762
+                                }
763
+                            } else {
764
+                                getExternalFilesDir(null)?.let {
765
+                                    FileUtils.deleteCurrentFlie(it)
766
+                                }
767
+                                file = getExternalFilesDir(null)
768
+                            }
769
+                            modelList.forEach { app ->
770
+                                try {
771
+                                    //获得已安装的应用判断版本,未安装的则直接静默安装。
772
+                                    val filter =
773
+                                        appList.filter { it.packageName.equals(app.appPackage) }
774
+                                    //列表中不存在,或者版本较低则更新
775
+                                    val apkPath = app.apkPath
776
+                                    val appName = app.appName
777
+                                    if (filter.isNotEmpty() || app.appPackage.equals(
778
+                                            packageName
779
+                                        )
780
+                                    ) {
781
+                                        //不为空filter.isNotEmpty()表示列表存在应用则判断版本号,app.appPackage.equals(packageName)表示需要判断是否更新桌面应用,都不满足表示应用不存在
782
+                                        val appversion =
783
+                                            if (app.appPackage.equals(packageName)) {
784
+                                                SystemUtil.getAppVersionCode(
785
+                                                    this@MainActivity,
786
+                                                    packageName
787
+                                                )
788
+                                            } else {
789
+                                                filter[0].versionNum
790
+                                            }
791
+                                        if (app.versionNum > appversion) {
792
+                                            //版本低则更新安装。
793
+                                            //AppDownLoadUtils.addToDownloadQueue(apkPath, appName,app.appPackage)
794
+                                            DownLoadUtils.addDownload(
795
+                                                apkPath,
796
+                                                app.appPackage,
797
+                                                File(
798
+                                                    file.toString(),
799
+                                                    "$appName.apk"
800
+                                                ).toString(),
801
+                                                app.appPackage,
802
+                                                appName,
803
+                                                app.versionNum.toLong()
804
+                                            )
805
+                                        }
806
+                                    } else {
807
+                                        //不存在,直接下载安装。
808
+                                        //AppDownLoadUtils.addToDownloadQueue(apkPath, appName,app.appPackage)
809
+                                        DownLoadUtils.addDownload(
810
+                                            apkPath,
811
+                                            app.appPackage,
812
+                                            File(
813
+                                                file.toString(),
814
+                                                "$appName.apk"
815
+                                            ).toString(),
816
+                                            app.appPackage,
817
+                                            appName,
818
+                                            app.versionNum.toLong()
819
+                                        )
820
+                                    }
821
+                                } catch (e: Exception) {
822
+                                    LogShow("问题" + e.toString())
823
+                                }
824
+                            }
825
+                        } else {
826
+                            // 用户拒绝了安装权限,处理相应逻辑
827
+                            viewModel.getAppList()
828
+                        }
829
+                    }
830
+            }
831
+        }
832
+
833
+    }
834
+
830 835
 
831 836
     private fun startAutoApp(autoAppBean: AutoAppBean) {
832 837
         try {

Loading…
Cancel
Save