kunfei преди 3 години
родител
ревизия
4cc8898564
променени са 2 файла, в които са добавени 28 реда и са изтрити 3 реда
  1. 3 3
      app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt
  2. 25 0
      app/src/main/java/io/legado/app/utils/FileDocExtensions.kt

+ 3 - 3
app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt

@@ -141,9 +141,9 @@ class CrashLogsDialog : BaseDialogFragment(R.layout.dialog_recycler_view),
                 val backupPath = AppConfig.backupPath
                 if (!backupPath.isNullOrEmpty()) {
                     val uri = Uri.parse(backupPath)
-                    FileDoc.fromUri(uri, true).list()?.let {
-
-                    }
+                    FileDoc.fromUri(uri, true)
+                        .find("crash")
+                        ?.delete()
                 }
             }.onError {
                 context.toastOnUi(it.localizedMessage)

+ 25 - 0
app/src/main/java/io/legado/app/utils/FileDocExtensions.kt

@@ -35,6 +35,24 @@ data class FileDoc(
         return uri.readBytes(appCtx)
     }
 
+    fun asDocumentFile(): DocumentFile? {
+        if (isContentScheme) {
+            return if (isDir) {
+                DocumentFile.fromTreeUri(appCtx, uri)
+            } else {
+                DocumentFile.fromSingleUri(appCtx, uri)
+            }
+        }
+        return null
+    }
+
+    fun asFile(): File? {
+        if (isContentScheme) {
+            return null
+        }
+        return File(uri.path!!)
+    }
+
     companion object {
 
         fun fromUri(uri: Uri, isDir: Boolean): FileDoc {
@@ -242,6 +260,13 @@ fun FileDoc.writeText(text: String) {
     }
 }
 
+fun FileDoc.delete() {
+    asFile()?.let {
+        FileUtils.delete(it, true)
+    }
+    asDocumentFile()?.delete()
+}
+
 /**
  * DocumentFile 的 listFiles() 非常的慢,尽量不要使用
  */