From ca3d90199659a4a0212f12809da8ef75fcfeddcb Mon Sep 17 00:00:00 2001 From: kunfei Date: Wed, 19 Jul 2023 23:25:58 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/book/read/EffectiveReplacesDialog.kt | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/ui/book/read/EffectiveReplacesDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/EffectiveReplacesDialog.kt index 466ca3c09ee9..a887c45ef9ea 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/EffectiveReplacesDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/EffectiveReplacesDialog.kt @@ -1,9 +1,13 @@ package io.legado.app.ui.book.read import android.content.Context +import android.content.DialogInterface import android.os.Bundle import android.view.View import android.view.ViewGroup +import androidx.activity.result.contract.ActivityResultContracts +import androidx.appcompat.app.AppCompatActivity +import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.LinearLayoutManager import io.legado.app.R import io.legado.app.base.BaseDialogFragment @@ -14,6 +18,7 @@ import io.legado.app.databinding.DialogRecyclerViewBinding import io.legado.app.databinding.Item1lineTextBinding import io.legado.app.lib.theme.primaryColor import io.legado.app.model.ReadBook +import io.legado.app.ui.replace.edit.ReplaceEditActivity import io.legado.app.utils.setLayout import io.legado.app.utils.viewbindingdelegate.viewBinding @@ -23,8 +28,18 @@ import io.legado.app.utils.viewbindingdelegate.viewBinding class EffectiveReplacesDialog : BaseDialogFragment(R.layout.dialog_recycler_view) { private val binding by viewBinding(DialogRecyclerViewBinding::bind) + private val viewModel by activityViewModels() private val adapter by lazy { ReplaceAdapter(requireContext()) } + private var isEdit = false + + private val editActivity = + registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { + if (it.resultCode == AppCompatActivity.RESULT_OK) { + isEdit = true + } + } + override fun onStart() { super.onStart() setLayout(0.9f, ViewGroup.LayoutParams.WRAP_CONTENT) @@ -42,6 +57,12 @@ class EffectiveReplacesDialog : BaseDialogFragment(R.layout.dialog_recycler_view } } + override fun onDismiss(dialog: DialogInterface) { + super.onDismiss(dialog) + if (isEdit) { + viewModel.replaceRuleChanged() + } + } private inner class ReplaceAdapter(context: Context) : RecyclerAdapter(context) { @@ -52,7 +73,9 @@ class EffectiveReplacesDialog : BaseDialogFragment(R.layout.dialog_recycler_view override fun registerListener(holder: ItemViewHolder, binding: Item1lineTextBinding) { binding.root.setOnClickListener { - + getItem(holder.layoutPosition)?.let { item -> + editActivity.launch(ReplaceEditActivity.startIntent(requireContext(), item.id)) + } } }