From 0daf05c814fe314017626677fe0652033b4d64a9 Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 31 Jan 2020 18:50:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/importbook/ImportBookViewModel.kt | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/ui/importbook/ImportBookViewModel.kt b/app/src/main/java/io/legado/app/ui/importbook/ImportBookViewModel.kt index a8bd64ea8..b81167bd9 100644 --- a/app/src/main/java/io/legado/app/ui/importbook/ImportBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/importbook/ImportBookViewModel.kt @@ -3,13 +3,34 @@ package io.legado.app.ui.importbook import android.app.Application import android.net.Uri import androidx.documentfile.provider.DocumentFile +import io.legado.app.App import io.legado.app.base.BaseViewModel +import io.legado.app.data.entities.Book class ImportBookViewModel(application: Application) : BaseViewModel(application) { fun addToBookshelf(uriList: HashSet, finally: () -> Unit) { - + execute { + uriList.forEach { uriStr -> + DocumentFile.fromSingleUri(context, Uri.parse(uriStr))?.let { doc -> + doc.name?.let { fileName -> + val str = fileName.substringBeforeLast(".") + var name = str.substringBefore("作者") + val author = str.substringAfter("作者") + val smhStart = name.indexOf("《") + val smhEnd = name.indexOf("》") + if (smhStart != -1 && smhEnd != -1) { + name = (name.substring(smhStart + 1, smhEnd)) + } + val book = Book(bookUrl = uriStr, name = name, author = author) + App.db.bookDao().insert(book) + } + } + } + }.onFinally { + finally.invoke() + } } fun deleteDoc(uriList: HashSet, finally: () -> Unit) {