pull/37/head
kunfei 6 years ago
parent 433fa3cba4
commit 8c8cc79524
  1. 8
      app/src/main/java/io/legado/app/ui/book/source/manage/BookSourceActivity.kt
  2. 25
      app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceActivity.kt
  3. 18
      app/src/main/java/io/legado/app/ui/rss/source/manage/RssSourceViewModel.kt
  4. 24
      app/src/main/java/io/legado/app/utils/TimeUtils.kt
  5. 8
      app/src/main/res/menu/book_source.xml
  6. 6
      app/src/main/res/menu/replace_rule.xml
  7. 8
      app/src/main/res/menu/rss_source.xml

@ -80,22 +80,22 @@ class BookSourceActivity : VMBaseActivity<BookSourceViewModel>(R.layout.activity
R.id.menu_add_book_source -> {
this.startActivity<BookSourceEditActivity>()
}
R.id.menu_import_book_source_qr -> {
R.id.menu_import_source_qr -> {
this.startActivityForResult<QrCodeActivity>(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<CheckSourceService>(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)

@ -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<RssSourceViewModel>(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<List<RssSource>>? = null
private var groups = hashSetOf<String>()
@ -66,6 +70,7 @@ class RssSourceActivity : VMBaseActivity<RssSourceViewModel>(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<RssSourceViewModel>(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)
}

@ -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<RssSource>(file.readText())?.let {
App.db.rssSourceDao().insert(*it.toTypedArray())
}
}
}
}
fun importSource(sourceStr: String) {
}
}

@ -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()
}
}

@ -97,25 +97,25 @@
app:showAsAction="never" />
<item
android:id="@+id/menu_import_book_source_local"
android:id="@+id/menu_import_source_local"
android:icon="@drawable/ic_import"
android:title="@string/import_book_source_local"
app:showAsAction="never" />
<item
android:id="@+id/menu_import_book_source_onLine"
android:id="@+id/menu_import_source_onLine"
android:icon="@drawable/ic_import"
android:title="@string/import_book_source_on_line"
app:showAsAction="never" />
<item
android:id="@+id/menu_import_book_source_qr"
android:id="@+id/menu_import_source_qr"
android:icon="@drawable/ic_import"
android:title="@string/import_by_qr_code"
app:showAsAction="never" />
<item
android:id="@+id/menu_check_book_source"
android:id="@+id/menu_check_source"
android:icon="@drawable/ic_check_source"
android:title="@string/check_select_source"
app:showAsAction="never" />

@ -69,19 +69,19 @@
app:showAsAction="never" />
<item
android:id="@+id/menu_import_book_source_local"
android:id="@+id/menu_import_source_local"
android:icon="@drawable/ic_import"
android:title="@string/import_book_source_local"
app:showAsAction="never" />
<item
android:id="@+id/menu_import_book_source_onLine"
android:id="@+id/menu_import_source_onLine"
android:icon="@drawable/ic_import"
android:title="@string/import_book_source_on_line"
app:showAsAction="never" />
<item
android:id="@+id/menu_import_book_source_qr"
android:id="@+id/menu_import_source_qr"
android:icon="@drawable/ic_import"
android:title="@string/import_by_qr_code"
app:showAsAction="never" />

@ -97,25 +97,25 @@
app:showAsAction="never" />
<item
android:id="@+id/menu_import_book_source_local"
android:id="@+id/menu_import_source_local"
android:icon="@drawable/ic_import"
android:title="@string/import_book_source_local"
app:showAsAction="never" />
<item
android:id="@+id/menu_import_book_source_onLine"
android:id="@+id/menu_import_source_onLine"
android:icon="@drawable/ic_import"
android:title="@string/import_book_source_on_line"
app:showAsAction="never" />
<item
android:id="@+id/menu_import_book_source_qr"
android:id="@+id/menu_import_source_qr"
android:icon="@drawable/ic_import"
android:title="@string/import_by_qr_code"
app:showAsAction="never" />
<item
android:id="@+id/menu_check_book_source"
android:id="@+id/menu_check_source"
android:icon="@drawable/ic_check_source"
android:title="@string/check_select_source"
app:showAsAction="never" />

Loading…
Cancel
Save