pull/69/head
kunfei 6 years ago
parent 3a9d9e33e2
commit aea8171fae
  1. 44
      app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt

@ -9,6 +9,7 @@ import android.view.MenuItem
import android.view.SubMenu import android.view.SubMenu
import androidx.appcompat.widget.SearchView import androidx.appcompat.widget.SearchView
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.documentfile.provider.DocumentFile
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.Observer import androidx.lifecycle.Observer
import androidx.recyclerview.widget.DiffUtil import androidx.recyclerview.widget.DiffUtil
@ -49,7 +50,7 @@ class BookSourceActivity : VMBaseActivity<BookSourceViewModel>(R.layout.activity
get() = getViewModel(BookSourceViewModel::class.java) get() = getViewModel(BookSourceViewModel::class.java)
private val qrRequestCode = 101 private val qrRequestCode = 101
private val importSource = 13141 private val importSource = 132
private lateinit var adapter: BookSourceAdapter private lateinit var adapter: BookSourceAdapter
private var bookSourceLiveDate: LiveData<List<BookSource>>? = null private var bookSourceLiveDate: LiveData<List<BookSource>>? = null
private var groups = hashSetOf<String>() private var groups = hashSetOf<String>()
@ -82,7 +83,7 @@ class BookSourceActivity : VMBaseActivity<BookSourceViewModel>(R.layout.activity
supportFragmentManager, supportFragmentManager,
"groupManage" "groupManage"
) )
R.id.menu_import_source_local -> selectFile() R.id.menu_import_source_local -> selectFileSys()
R.id.menu_select_all -> adapter.selectAll() R.id.menu_select_all -> adapter.selectAll()
R.id.menu_revert_selection -> adapter.revertSelection() R.id.menu_revert_selection -> adapter.revertSelection()
R.id.menu_enable_selection -> viewModel.enableSelection(adapter.getSelectionIds()) R.id.menu_enable_selection -> viewModel.enableSelection(adapter.getSelectionIds())
@ -219,10 +220,15 @@ class BookSourceActivity : VMBaseActivity<BookSourceViewModel>(R.layout.activity
} }
private fun selectFileSys() { private fun selectFileSys() {
val intent = Intent(Intent.ACTION_GET_CONTENT) try {
intent.addCategory(Intent.CATEGORY_OPENABLE) val intent = Intent(Intent.ACTION_GET_CONTENT)
intent.type = "text/*"//设置类型 intent.addCategory(Intent.CATEGORY_OPENABLE)
startActivityForResult(intent, importSource) intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
intent.type = "text/*"//设置类型
startActivityForResult(intent, importSource)
} catch (e: Exception) {
selectFile()
}
} }
override fun onMenuClick(menu: String) { override fun onMenuClick(menu: String) {
@ -284,16 +290,24 @@ class BookSourceActivity : VMBaseActivity<BookSourceViewModel>(R.layout.activity
} }
} }
importSource -> if (resultCode == Activity.RESULT_OK) { importSource -> if (resultCode == Activity.RESULT_OK) {
data?.data?.let { data?.data?.let { uri ->
val path = FileUtils.getPath(this, it) if (DocumentFile.isDocumentUri(this, uri)) {
if (path != null) { DocumentUtils.readText(this, uri)?.let {
Snackbar.make(title_bar, R.string.importing, Snackbar.LENGTH_INDEFINITE) viewModel.importSource(it) { msg ->
.show() title_bar.snackbar(msg)
viewModel.importSourceFromFilePath(path) { msg -> }
title_bar.snackbar(msg) } ?: toast("读取文件失败")
}
} else { } else {
toast(R.string.uri_to_path_fail) val path = FileUtils.getPath(this, uri)
if (path != null) {
Snackbar.make(title_bar, R.string.importing, Snackbar.LENGTH_INDEFINITE)
.show()
viewModel.importSourceFromFilePath(path) { msg ->
title_bar.snackbar(msg)
}
} else {
toast(R.string.uri_to_path_fail)
}
} }
} }
} }

Loading…
Cancel
Save