From 7ffe1794d9135098278fce8bc2012fa17cb5b9fe Mon Sep 17 00:00:00 2001 From: Jobobby04 Date: Fri, 17 Sep 2021 15:40:39 -0400 Subject: [PATCH] Fix more info crash --- .../tachiyomi/ui/manga/MangaController.kt | 1 - .../ui/manga/info/MangaInfoHeaderAdapter.kt | 7 --- .../exh/ui/metadata/MetadataViewAdapter.kt | 45 +++++++------------ .../exh/ui/metadata/MetadataViewController.kt | 8 ++-- 4 files changed, 20 insertions(+), 41 deletions(-) diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt index 9fc3fcd2a..cc475abd7 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/MangaController.kt @@ -480,7 +480,6 @@ class MangaController : override fun onDestroyView(view: View) { destroyActionModeIfNeeded() binding.actionToolbar.destroy() - mangaInfoAdapter?.onDestroyView() mangaInfoAdapter = null chaptersHeaderAdapter = null chaptersAdapter = null diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt index 78a33bda5..3a865dbf0 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/manga/info/MangaInfoHeaderAdapter.kt @@ -568,11 +568,4 @@ class MangaInfoHeaderAdapter( } } } - - fun onDestroyView() { - metaInfoAdapter = null - mangaTagsInfoAdapter = null - binding.metadataView.adapter = null - binding.genreGroups.adapter = null - } } diff --git a/app/src/main/java/exh/ui/metadata/MetadataViewAdapter.kt b/app/src/main/java/exh/ui/metadata/MetadataViewAdapter.kt index 6f2b93db0..389b26b36 100644 --- a/app/src/main/java/exh/ui/metadata/MetadataViewAdapter.kt +++ b/app/src/main/java/exh/ui/metadata/MetadataViewAdapter.kt @@ -7,53 +7,42 @@ import androidx.recyclerview.widget.RecyclerView import eu.kanade.tachiyomi.databinding.MetadataViewItemBinding import eu.kanade.tachiyomi.util.system.copyToClipboard -class MetadataViewAdapter(private var data: List>) : +class MetadataViewAdapter : RecyclerView.Adapter() { private lateinit var binding: MetadataViewItemBinding + var items: List> = emptyList() + set(value) { + if (field !== value) { + field = value + notifyDataSetChanged() + } + } + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): MetadataViewAdapter.ViewHolder { binding = MetadataViewItemBinding.inflate(LayoutInflater.from(parent.context), parent, false) return ViewHolder(binding.root) } - fun update(data: List>) { - this.data = data - notifyDataSetChanged() - } - // binds the data to the TextView in each cell override fun onBindViewHolder(holder: ViewHolder, position: Int) { - holder.bind(position) + holder.bind(items[position].first, items[position].second) } // total number of cells - override fun getItemCount(): Int = data.size + override fun getItemCount(): Int { + return items.size + } // stores and recycles views as they are scrolled off screen inner class ViewHolder(view: View) : RecyclerView.ViewHolder(view) { - fun bind(position: Int) { - binding.infoTitle.text = data[position].first - binding.infoText.text = data[position].second + fun bind(title: String, text: String) { + binding.infoTitle.text = title + binding.infoText.text = text binding.infoText.setOnClickListener { - itemView.context.copyToClipboard(data[position].second, data[position].second) + itemView.context.copyToClipboard(title, text) } } - - override fun equals(other: Any?): Boolean { - return binding.infoText.hashCode() == other.hashCode() - } - - override fun hashCode(): Int { - return binding.infoText.hashCode() - } - } - - override fun equals(other: Any?): Boolean { - return super.equals(other) - } - - override fun hashCode(): Int { - return super.hashCode() } } diff --git a/app/src/main/java/exh/ui/metadata/MetadataViewController.kt b/app/src/main/java/exh/ui/metadata/MetadataViewController.kt index 34b878136..a6483a804 100644 --- a/app/src/main/java/exh/ui/metadata/MetadataViewController.kt +++ b/app/src/main/java/exh/ui/metadata/MetadataViewController.kt @@ -36,8 +36,6 @@ class MetadataViewController : NucleusController>() - var adapter: MetadataViewAdapter? = null var manga: Manga? = null @@ -69,14 +67,14 @@ class MetadataViewController : NucleusController