mirror of
https://github.com/gedoor/legado.git
synced 2025-08-10 00:52:30 +00:00
优化
Some checks are pending
Test Build / prepare (push) Waiting to run
Test Build / build (app, release) (push) Blocked by required conditions
Test Build / build (app, releaseA) (push) Blocked by required conditions
Test Build / prerelease (push) Blocked by required conditions
Test Build / lanzou (push) Blocked by required conditions
Test Build / test_Branch (push) Blocked by required conditions
Test Build / telegram (push) Blocked by required conditions
Some checks are pending
Test Build / prepare (push) Waiting to run
Test Build / build (app, release) (push) Blocked by required conditions
Test Build / build (app, releaseA) (push) Blocked by required conditions
Test Build / prerelease (push) Blocked by required conditions
Test Build / lanzou (push) Blocked by required conditions
Test Build / test_Branch (push) Blocked by required conditions
Test Build / telegram (push) Blocked by required conditions
This commit is contained in:
@@ -7,6 +7,7 @@ import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.appcompat.widget.Toolbar
|
||||
import androidx.fragment.app.viewModels
|
||||
import com.bumptech.glide.load.DataSource
|
||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||
import com.bumptech.glide.load.engine.GlideException
|
||||
@@ -19,6 +20,7 @@ import io.legado.app.databinding.DialogVerificationCodeViewBinding
|
||||
import io.legado.app.help.glide.ImageLoader
|
||||
import io.legado.app.help.glide.OkHttpModelLoader
|
||||
import io.legado.app.help.source.SourceVerificationHelp
|
||||
import io.legado.app.lib.dialogs.alert
|
||||
import io.legado.app.lib.theme.primaryColor
|
||||
import io.legado.app.model.ImageProvider
|
||||
import io.legado.app.ui.widget.dialog.PhotoDialog
|
||||
@@ -49,6 +51,7 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification
|
||||
}
|
||||
|
||||
val binding by viewBinding(DialogVerificationCodeViewBinding::bind)
|
||||
val viewModel by viewModels<VerificationCodeViewModel>()
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
@@ -60,6 +63,7 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?): Unit = binding.run {
|
||||
initMenu()
|
||||
val arguments = arguments ?: return@run
|
||||
viewModel.initData(arguments)
|
||||
toolBar.setBackgroundColor(primaryColor)
|
||||
toolBar.subtitle = arguments.getString("sourceName")
|
||||
sourceOrigin = arguments.getString("sourceOrigin")
|
||||
@@ -119,6 +123,24 @@ class VerificationCodeDialog() : BaseDialogFragment(R.layout.dialog_verification
|
||||
SourceVerificationHelp.setResult(sourceOrigin!!, verificationCode)
|
||||
dismiss()
|
||||
}
|
||||
|
||||
R.id.menu_disable_source -> {
|
||||
viewModel.disableSource {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
|
||||
R.id.menu_delete_source -> {
|
||||
alert(R.string.draw) {
|
||||
setMessage(getString(R.string.sure_del) + "\n" + viewModel.sourceName)
|
||||
noButton()
|
||||
yesButton {
|
||||
viewModel.deleteSource {
|
||||
dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
package io.legado.app.ui.association
|
||||
|
||||
import android.app.Application
|
||||
import android.os.Bundle
|
||||
import io.legado.app.base.BaseViewModel
|
||||
import io.legado.app.data.appDb
|
||||
|
||||
class VerificationCodeViewModel(app: Application): BaseViewModel(app) {
|
||||
|
||||
var sourceOrigin = ""
|
||||
var sourceName = ""
|
||||
|
||||
fun initData(arguments: Bundle) {
|
||||
sourceName = arguments.getString("sourceName") ?: ""
|
||||
sourceOrigin = arguments.getString("sourceOrigin") ?: ""
|
||||
}
|
||||
|
||||
fun disableSource(block: () -> Unit) {
|
||||
execute {
|
||||
appDb.bookSourceDao.enable(sourceOrigin, false)
|
||||
}.onSuccess {
|
||||
block.invoke()
|
||||
}
|
||||
}
|
||||
|
||||
fun deleteSource(block: () -> Unit) {
|
||||
execute {
|
||||
appDb.bookSourceDao.delete(sourceOrigin)
|
||||
}.onSuccess {
|
||||
block.invoke()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -30,6 +30,7 @@ import io.legado.app.help.config.AppConfig
|
||||
import io.legado.app.help.http.CookieStore
|
||||
import io.legado.app.help.source.SourceVerificationHelp
|
||||
import io.legado.app.lib.dialogs.SelectItem
|
||||
import io.legado.app.lib.dialogs.alert
|
||||
import io.legado.app.lib.theme.accentColor
|
||||
import io.legado.app.model.Download
|
||||
import io.legado.app.ui.association.OnLineImportActivity
|
||||
@@ -102,6 +103,14 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
||||
return super.onCompatCreateOptionsMenu(menu)
|
||||
}
|
||||
|
||||
override fun onPrepareOptionsMenu(menu: Menu): Boolean {
|
||||
if (viewModel.sourceOrigin.isNotEmpty()) {
|
||||
menu.findItem(R.id.menu_disable_source)?.isVisible = true
|
||||
menu.findItem(R.id.menu_delete_source)?.isVisible = true
|
||||
}
|
||||
return super.onPrepareOptionsMenu(menu)
|
||||
}
|
||||
|
||||
override fun onCompatOptionsItemSelected(item: MenuItem): Boolean {
|
||||
when (item.itemId) {
|
||||
R.id.menu_open_in_browser -> openUrl(viewModel.baseUrl)
|
||||
@@ -117,6 +126,23 @@ class WebViewActivity : VMBaseActivity<ActivityWebViewBinding, WebViewModel>() {
|
||||
}
|
||||
|
||||
R.id.menu_full_screen -> toggleFullScreen()
|
||||
R.id.menu_disable_source -> {
|
||||
viewModel.disableSource {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
|
||||
R.id.menu_delete_source -> {
|
||||
alert(R.string.draw) {
|
||||
setMessage(getString(R.string.sure_del) + "\n" + viewModel.sourceName)
|
||||
noButton()
|
||||
yesButton {
|
||||
viewModel.deleteSource {
|
||||
finish()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onCompatOptionsItemSelected(item)
|
||||
}
|
||||
|
||||
@@ -33,6 +33,7 @@ class WebViewModel(application: Application) : BaseViewModel(application) {
|
||||
val headerMap: HashMap<String, String> = hashMapOf()
|
||||
var sourceVerificationEnable: Boolean = false
|
||||
var refetchAfterSuccess: Boolean = true
|
||||
var sourceName: String = ""
|
||||
var sourceOrigin: String = ""
|
||||
|
||||
fun initData(
|
||||
@@ -43,6 +44,7 @@ class WebViewModel(application: Application) : BaseViewModel(application) {
|
||||
this@WebViewModel.intent = intent
|
||||
val url = intent.getStringExtra("url")
|
||||
?: throw NoStackTraceException("url不能为空")
|
||||
sourceName = intent.getStringExtra("sourceName") ?: ""
|
||||
sourceOrigin = intent.getStringExtra("sourceOrigin") ?: ""
|
||||
sourceVerificationEnable = intent.getBooleanExtra("sourceVerificationEnable", false)
|
||||
refetchAfterSuccess = intent.getBooleanExtra("refetchAfterSuccess", true)
|
||||
@@ -123,4 +125,20 @@ class WebViewModel(application: Application) : BaseViewModel(application) {
|
||||
}
|
||||
}
|
||||
|
||||
fun disableSource(block: () -> Unit) {
|
||||
execute {
|
||||
appDb.bookSourceDao.enable(sourceOrigin, false)
|
||||
}.onSuccess {
|
||||
block.invoke()
|
||||
}
|
||||
}
|
||||
|
||||
fun deleteSource(block: () -> Unit) {
|
||||
execute {
|
||||
appDb.bookSourceDao.delete(sourceOrigin)
|
||||
}.onSuccess {
|
||||
block.invoke()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -10,4 +10,14 @@
|
||||
android:title="@string/ok"
|
||||
app:showAsAction="always" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_disable_source"
|
||||
android:title="@string/disable_source"
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_delete_source"
|
||||
android:title="@string/delete_source"
|
||||
app:showAsAction="never" />
|
||||
|
||||
</menu>
|
||||
@@ -23,4 +23,16 @@
|
||||
android:title="@string/full_screen"
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_disable_source"
|
||||
android:title="@string/disable_source"
|
||||
android:visible="false"
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item
|
||||
android:id="@+id/menu_delete_source"
|
||||
android:title="@string/delete_source"
|
||||
android:visible="false"
|
||||
app:showAsAction="never" />
|
||||
|
||||
</menu>
|
||||
Reference in New Issue
Block a user