|
@@ -1,19 +1,24 @@
|
|
|
package io.legado.app.ui.config
|
|
package io.legado.app.ui.config
|
|
|
|
|
|
|
|
import android.os.Bundle
|
|
import android.os.Bundle
|
|
|
|
|
+import android.view.MenuItem
|
|
|
import android.view.View
|
|
import android.view.View
|
|
|
import android.view.ViewGroup
|
|
import android.view.ViewGroup
|
|
|
|
|
+import androidx.appcompat.widget.Toolbar
|
|
|
import io.legado.app.R
|
|
import io.legado.app.R
|
|
|
import io.legado.app.base.BaseDialogFragment
|
|
import io.legado.app.base.BaseDialogFragment
|
|
|
import io.legado.app.databinding.DialogDirectLinkUploadConfigBinding
|
|
import io.legado.app.databinding.DialogDirectLinkUploadConfigBinding
|
|
|
import io.legado.app.help.DirectLinkUpload
|
|
import io.legado.app.help.DirectLinkUpload
|
|
|
|
|
+import io.legado.app.lib.dialogs.selector
|
|
|
import io.legado.app.lib.theme.primaryColor
|
|
import io.legado.app.lib.theme.primaryColor
|
|
|
|
|
+import io.legado.app.utils.applyTint
|
|
|
import io.legado.app.utils.setLayout
|
|
import io.legado.app.utils.setLayout
|
|
|
import io.legado.app.utils.toastOnUi
|
|
import io.legado.app.utils.toastOnUi
|
|
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
|
import io.legado.app.utils.viewbindingdelegate.viewBinding
|
|
|
import splitties.views.onClick
|
|
import splitties.views.onClick
|
|
|
|
|
|
|
|
-class DirectLinkUploadConfig : BaseDialogFragment(R.layout.dialog_direct_link_upload_config) {
|
|
|
|
|
|
|
+class DirectLinkUploadConfig : BaseDialogFragment(R.layout.dialog_direct_link_upload_config),
|
|
|
|
|
+ Toolbar.OnMenuItemClickListener {
|
|
|
|
|
|
|
|
private val binding by viewBinding(DialogDirectLinkUploadConfigBinding::bind)
|
|
private val binding by viewBinding(DialogDirectLinkUploadConfigBinding::bind)
|
|
|
|
|
|
|
@@ -24,11 +29,10 @@ class DirectLinkUploadConfig : BaseDialogFragment(R.layout.dialog_direct_link_up
|
|
|
|
|
|
|
|
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
|
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
|
|
binding.toolBar.setBackgroundColor(primaryColor)
|
|
binding.toolBar.setBackgroundColor(primaryColor)
|
|
|
- DirectLinkUpload.getRule()?.let {
|
|
|
|
|
- binding.editUploadUrl.setText(it.uploadUrl)
|
|
|
|
|
- binding.editDownloadUrlRule.setText(it.downloadUrlRule)
|
|
|
|
|
- binding.editSummary.setText(it.summary)
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ binding.toolBar.inflateMenu(R.menu.direct_link_upload_config)
|
|
|
|
|
+ binding.toolBar.menu.applyTint(requireContext())
|
|
|
|
|
+ binding.toolBar.setOnMenuItemClickListener(this)
|
|
|
|
|
+ upView(DirectLinkUpload.getRule())
|
|
|
binding.tvCancel.onClick {
|
|
binding.tvCancel.onClick {
|
|
|
dismiss()
|
|
dismiss()
|
|
|
}
|
|
}
|
|
@@ -37,19 +41,48 @@ class DirectLinkUploadConfig : BaseDialogFragment(R.layout.dialog_direct_link_up
|
|
|
dismiss()
|
|
dismiss()
|
|
|
}
|
|
}
|
|
|
binding.tvOk.onClick {
|
|
binding.tvOk.onClick {
|
|
|
- val uploadUrl = binding.editUploadUrl.text?.toString()
|
|
|
|
|
- val downloadUrlRule = binding.editDownloadUrlRule.text?.toString()
|
|
|
|
|
- val summary = binding.editSummary.text?.toString()
|
|
|
|
|
- if (uploadUrl.isNullOrBlank()) {
|
|
|
|
|
- toastOnUi("上传Url不能为空")
|
|
|
|
|
- return@onClick
|
|
|
|
|
- }
|
|
|
|
|
- if (downloadUrlRule.isNullOrBlank()) {
|
|
|
|
|
- toastOnUi("下载Url规则不能为空")
|
|
|
|
|
- return@onClick
|
|
|
|
|
|
|
+ getRule()?.let { rule ->
|
|
|
|
|
+ DirectLinkUpload.putConfig(rule)
|
|
|
|
|
+ dismiss()
|
|
|
}
|
|
}
|
|
|
- DirectLinkUpload.putConfig(uploadUrl, downloadUrlRule, summary)
|
|
|
|
|
- dismiss()
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ override fun onMenuItemClick(item: MenuItem?): Boolean {
|
|
|
|
|
+ when (item?.itemId) {
|
|
|
|
|
+ R.id.menu_import_default -> importDefault()
|
|
|
|
|
+ }
|
|
|
|
|
+ return true
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private fun upView(rule: DirectLinkUpload.Rule) {
|
|
|
|
|
+ binding.editUploadUrl.setText(rule.uploadUrl)
|
|
|
|
|
+ binding.editDownloadUrlRule.setText(rule.downloadUrlRule)
|
|
|
|
|
+ binding.editSummary.setText(rule.summary)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private fun getRule(): DirectLinkUpload.Rule? {
|
|
|
|
|
+ val uploadUrl = binding.editUploadUrl.text?.toString()
|
|
|
|
|
+ val downloadUrlRule = binding.editDownloadUrlRule.text?.toString()
|
|
|
|
|
+ val summary = binding.editSummary.text?.toString()
|
|
|
|
|
+ if (uploadUrl.isNullOrBlank()) {
|
|
|
|
|
+ toastOnUi("上传Url不能为空")
|
|
|
|
|
+ return null
|
|
|
|
|
+ }
|
|
|
|
|
+ if (downloadUrlRule.isNullOrBlank()) {
|
|
|
|
|
+ toastOnUi("下载Url规则不能为空")
|
|
|
|
|
+ return null
|
|
|
|
|
+ }
|
|
|
|
|
+ if (summary.isNullOrBlank()) {
|
|
|
|
|
+ toastOnUi("注释不能为空")
|
|
|
|
|
+ return null
|
|
|
|
|
+ }
|
|
|
|
|
+ return DirectLinkUpload.Rule(uploadUrl, downloadUrlRule, summary)
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ private fun importDefault() {
|
|
|
|
|
+ requireContext().selector(DirectLinkUpload.defaultRules) { _, rule, _ ->
|
|
|
|
|
+ upView(rule)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|