diff --git a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt index bc9da05fb..d27c4b036 100644 --- a/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt @@ -80,22 +80,22 @@ class BookSourceActivity : VMBaseActivity(R.layout.activity R.id.menu_add_book_source -> { this.startActivity() } - R.id.menu_import_book_source_qr -> { + R.id.menu_import_source_qr -> { this.startActivityForResult(qrRequestCode) } R.id.menu_group_manage -> GroupManageDialog().show( supportFragmentManager, "groupManage" ) - R.id.menu_import_book_source_local -> Restore.importYueDuData(this) + R.id.menu_import_source_local -> Restore.importYueDuData(this) R.id.menu_select_all -> adapter.selectAll() R.id.menu_revert_selection -> adapter.revertSelection() R.id.menu_enable_selection -> viewModel.enableSelection(adapter.getSelectionIds()) R.id.menu_disable_selection -> viewModel.disableSelection(adapter.getSelectionIds()) R.id.menu_del_selection -> viewModel.delSelection(adapter.getSelectionIds()) - R.id.menu_check_book_source -> + R.id.menu_check_source -> startService(Pair("data", adapter.getSelectionIds())) - R.id.menu_import_book_source_onLine -> showImportDialog() + R.id.menu_import_source_onLine -> showImportDialog() } if (item.groupId == R.id.source_group) { search_view.setQuery(item.title, true) diff --git a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt index 5515e4cf1..6c6bc269d 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt @@ -1,5 +1,7 @@ package io.legado.app.ui.rss.source.manage +import android.app.Activity +import android.content.Intent import android.os.Bundle import android.view.Menu import android.view.MenuItem @@ -20,6 +22,7 @@ import io.legado.app.help.ItemTouchCallback import io.legado.app.lib.theme.ATH import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.rss.source.edit.RssSourceEditActivity +import io.legado.app.utils.FileUtils import io.legado.app.utils.getViewModel import io.legado.app.utils.splitNotBlank import kotlinx.android.synthetic.main.activity_rss_source.* @@ -34,6 +37,7 @@ class RssSourceActivity : VMBaseActivity(R.layout.activity_r override val viewModel: RssSourceViewModel get() = getViewModel(RssSourceViewModel::class.java) + private val import_source = 13141 private lateinit var adapter: RssSourceAdapter private var sourceLiveData: LiveData>? = null private var groups = hashSetOf() @@ -66,6 +70,7 @@ class RssSourceActivity : VMBaseActivity(R.layout.activity_r R.id.menu_enable_selection -> viewModel.enableSelection(adapter.getSelectionIds()) R.id.menu_disable_selection -> viewModel.disableSelection(adapter.getSelectionIds()) R.id.menu_del_selection -> viewModel.delSelection(adapter.getSelectionIds()) + R.id.menu_import_source_local -> selectFile() } return super.onCompatOptionsItemSelected(item) } @@ -136,6 +141,26 @@ class RssSourceActivity : VMBaseActivity(R.layout.activity_r }) } + private fun selectFile() { + val intent = Intent(Intent.ACTION_GET_CONTENT) + intent.addCategory(Intent.CATEGORY_OPENABLE) + intent.type = "text/*"//设置类型 + startActivityForResult(intent, import_source) + } + + override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { + super.onActivityResult(requestCode, resultCode, data) + when (requestCode) { + import_source -> if (resultCode == Activity.RESULT_OK) { + data?.data?.let { + FileUtils.getPath(this, it)?.let { path -> + viewModel.importSourceFromFilePath(path) + } + } + } + } + } + override fun del(source: RssSource) { viewModel.del(source) } diff --git a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceViewModel.kt b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceViewModel.kt index b0ad309d6..76aa384c0 100644 --- a/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceViewModel.kt @@ -4,6 +4,9 @@ import android.app.Application import io.legado.app.App import io.legado.app.base.BaseViewModel import io.legado.app.data.entities.RssSource +import io.legado.app.utils.GSON +import io.legado.app.utils.fromJsonArray +import java.io.File class RssSourceViewModel(application: Application) : BaseViewModel(application) { @@ -49,4 +52,19 @@ class RssSourceViewModel(application: Application) : BaseViewModel(application) App.db.rssSourceDao().delSection(*ids.toTypedArray()) } } + + fun importSourceFromFilePath(path: String) { + execute { + val file = File(path) + if (file.exists()) { + GSON.fromJsonArray(file.readText())?.let { + App.db.rssSourceDao().insert(*it.toTypedArray()) + } + } + } + } + + fun importSource(sourceStr: String) { + + } } \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/utils/TimeUtils.kt b/app/src/main/java/io/legado/app/utils/TimeUtils.kt deleted file mode 100644 index 456892361..000000000 --- a/app/src/main/java/io/legado/app/utils/TimeUtils.kt +++ /dev/null @@ -1,24 +0,0 @@ -package io.legado.app.utils - -import android.annotation.SuppressLint -import java.text.SimpleDateFormat - -object TimeUtils { - - private val formatArray = arrayOf("") - - @SuppressLint("SimpleDateFormat") - fun stringTimeToLong(time: String): Long { - - for (str in formatArray) { - try { - val df = SimpleDateFormat(str) - val d = df.parse(time) - return d.time - } catch (e: Exception) { - } - } - return System.currentTimeMillis() - } - -} \ No newline at end of file diff --git a/app/src/main/res/menu/book_source.xml b/app/src/main/res/menu/book_source.xml index 6900e82ae..7569e2fe9 100644 --- a/app/src/main/res/menu/book_source.xml +++ b/app/src/main/res/menu/book_source.xml @@ -97,25 +97,25 @@ app:showAsAction="never" /> diff --git a/app/src/main/res/menu/replace_rule.xml b/app/src/main/res/menu/replace_rule.xml index eec4b7abd..1efeaa4f7 100644 --- a/app/src/main/res/menu/replace_rule.xml +++ b/app/src/main/res/menu/replace_rule.xml @@ -69,19 +69,19 @@ app:showAsAction="never" /> diff --git a/app/src/main/res/menu/rss_source.xml b/app/src/main/res/menu/rss_source.xml index 45ef06792..c64fea473 100644 --- a/app/src/main/res/menu/rss_source.xml +++ b/app/src/main/res/menu/rss_source.xml @@ -97,25 +97,25 @@ app:showAsAction="never" />