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