From c740f3b8e9ede62b5fbcd2a8b03b834dd35fdec5 Mon Sep 17 00:00:00 2001
From: Runt <qingingrunt2010@qq.com>
Date: Thu, 28 Aug 2025 15:19:21 +0000
Subject: [PATCH] 弹框bug修复,部分优化

---
 libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt |   49 +++++++++++++++++++++++++++++++++++--------------
 1 files changed, 35 insertions(+), 14 deletions(-)

diff --git a/libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt b/libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt
index 91dae29..ff9677e 100644
--- a/libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt
+++ b/libmvi/src/main/java/com/runt/open/mvi/base/BaseActivity.kt
@@ -2,10 +2,14 @@
 
 import android.Manifest
 import android.app.ActivityManager
+import android.app.UiModeManager
+import android.content.ClipData
+import android.content.ClipboardManager
 import android.content.ContentResolver
 import android.content.Context
 import android.content.Intent
 import android.content.pm.PackageManager
+import android.content.res.Configuration
 import android.net.Uri
 import android.os.Build
 import android.os.Bundle
@@ -29,7 +33,6 @@
 import androidx.activity.result.contract.ActivityResultContracts
 import androidx.annotation.ColorRes
 import androidx.annotation.StringRes
-import androidx.collection.ArraySet
 import androidx.core.content.ContextCompat
 import androidx.lifecycle.Observer
 import androidx.lifecycle.ViewModelProvider
@@ -398,22 +401,26 @@
                     var message = "";
                     if(permissions.contains(Manifest.permission.READ_EXTERNAL_STORAGE)){
                         title = "申请文件读取权限";
-                        message = "通过文件读取权限后,可无障碍使用图片、音乐、视频并添加到直播的音视频流中"
+                        message = "     通过文件读取权限后,可无障碍使用图片类、音乐类、视频类文件,并将读取的文件数据添加到直播中的音视频流中。"
                     }else if(permissions.contains(Manifest.permission.CAMERA)){
                         title = "申请相机权限";
-                        message = "通过相机权限后,可将相机画面添加到直播画面流中"
+                        message = "     通过相机权限后,可无障碍使用相机及USB采集设备,并将设备采集的画面添加到直播中的视频流中。"
                     }else if(permissions.contains(Manifest.permission.RECORD_AUDIO)){
                         title = "申请话筒权限";
-                        message = "通过话筒权限后,可将话筒声音添加到直播声音流中"
-                    }else if(permissions.contains(Manifest.permission.READ_MEDIA_IMAGES)){
+                        message = "     通过话筒权限后,可无障碍使用话筒设备,并将话筒采集的音频数据添加到直播中的音频流中"
+                    }else if(permissions.contains(Manifest.permission.READ_MEDIA_IMAGES) ||
+                        permissions.contains(Manifest.permission.READ_MEDIA_VIDEO)){
                         title = "申请图片和视频文件权限";
-                        message = "通过图片和视频文件权限后,可将图片和视频画面添加到直播画面流中"
+                        message = "     通过图片类和视频类文件权限后,可将读取的图片和视频数据添加到直播中的音视频流中。"
+                    }/*else if(permissions.contains(Manifest.permission.READ_MEDIA_IMAGES)){
+                        title = "申请图片文件权限";
+                        message = "通过图片类文件权限后,可将读取的图片数据添加到直播中的视频流中。"
                     }else if(permissions.contains(Manifest.permission.READ_MEDIA_VIDEO)){
-                        title = "申请图片和视频文件权限";
-                        message = "通过图片和视频文件权限后,可将图片和视频画面添加到直播画面流中"
-                    }else if(permissions.contains(Manifest.permission.READ_MEDIA_AUDIO)){
+                        title = "申请视频文件权限";
+                        message = "通过视频类文件权限后,可将读取的视频数据添加到直播中的音视频流中。"
+                    }*/else if(permissions.contains(Manifest.permission.READ_MEDIA_AUDIO)){
                         title = "申请音频文件权限";
-                        message = "通过音频文件权限后,可将音频文件的声音添加到直播声音流中"
+                        message = "     通过音频文件权限后,可将音频文件的声音添加到直播中的音频流中"
                     }/*else if(permissions.contains(Manifest.permission.POST_NOTIFICATIONS)){
                         title = "申请通知栏权限";
                         message = "通过通知栏权限后,可开启后台服务,保证相机、话筒、截屏、扬声器等功能不被系统终止"
@@ -468,6 +475,14 @@
         showToast(getString(msg))
     }
 
+    fun copyStr(str:String){
+        // 获取系统剪贴板
+        val clipboard = getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
+        // 创建一个剪贴数据集,包含一个普通文本数据条目(需要复制的数据)
+        val clipData = ClipData.newPlainText(null ,str)
+        // 把数据集设置(复制)到剪贴板
+        clipboard.setPrimaryClip(clipData)
+    }
     /**
      * 获取文件保存路径 sdcard根目录/download/文件名称
      * @param fileUrl
@@ -481,6 +496,12 @@
             appDir.mkdirs()
         }
         return storePath + File.separator + fileName
+    }
+
+    fun isTabletDevice(): Boolean {
+        val uiModeManager = getSystemService(Context.UI_MODE_SERVICE) as UiModeManager
+        return (uiModeManager.currentModeType == Configuration.UI_MODE_TYPE_TELEVISION).not() &&
+                (resources.configuration.screenLayout and Configuration.SCREENLAYOUT_SIZE_MASK >= Configuration.SCREENLAYOUT_SIZE_LARGE)
     }
 
     //===========================================
@@ -498,7 +519,7 @@
     }
 
     fun getBooleanProjectPrefrence(key : String,value : Boolean) : Boolean {
-        return PreferencesUtils.getBoolean(this , key , value , PreferencesUtils.USER)
+        return PreferencesUtils.getBoolean(this , key , value , PreferencesUtils.PROJECT)
     }
 
     fun getStringUserPrefrence(key : String) : String {
@@ -506,7 +527,7 @@
     }
 
     fun getStringUserPrefrence(key : String,value : String?) : String {
-        return PreferencesUtils.getString(this , key , value, PreferencesUtils.PROJECT)
+        return PreferencesUtils.getString(this , key , value, PreferencesUtils.USER)
     }
 
     fun getStringProjectPrefrence(key : String) : String {
@@ -542,7 +563,7 @@
     }
 
     fun getStringSetProjectPrefrence(key : String) : Set<*> {
-        return getStringSetProjectPrefrence(key, ArraySet<Any?>() )
+        return getStringSetProjectPrefrence(key, HashSet<Any?>() )
     }
 
     fun getStringSetProjectPrefrence(key : String,value : Set<*>?) : Set<*> {
@@ -574,7 +595,7 @@
     }
 
     fun getStringSetUserPrefrence(key : String) : Set<*> {
-        return getStringSetUserPrefrence(key,ArraySet<Any?>())
+        return getStringSetUserPrefrence(key,HashSet<Any?>())
     }
 
     fun getStringSetUserPrefrence(key : String,value : Set<*>) : Set<*> {

--
Gitblit v1.9.1