diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt index 796874d51..16ab4f351 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationListController.kt @@ -82,7 +82,6 @@ class MigrationListController(bundle: Bundle? = null) : BaseController(bundle), super.onViewCreated(view) setTitle() val config = this.config ?: return - activity?.requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT val newMigratingManga = migratingManga ?: run { val new = config.mangaIds.map { diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessAdapter.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessAdapter.kt index 8abf3d959..11f912355 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessAdapter.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessAdapter.kt @@ -29,10 +29,6 @@ class MigrationProcessAdapter( super.updateDataSet(items) } - fun indexOf(item: MigrationProcessItem): Int { - return items.indexOf(item) - } - interface MigrationProcessInterface { fun onMenuItemClick(position: Int, item: MenuItem) fun enableButtons() diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt index b678d5467..a606f4d5a 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessHolder.kt @@ -15,6 +15,7 @@ import eu.kanade.tachiyomi.ui.manga.MangaController import eu.kanade.tachiyomi.util.lang.launchUI import eu.kanade.tachiyomi.util.system.getResourceColor import eu.kanade.tachiyomi.util.view.gone +import eu.kanade.tachiyomi.util.view.invisible import eu.kanade.tachiyomi.util.view.setVectorCompat import eu.kanade.tachiyomi.util.view.visible import java.text.DecimalFormat @@ -31,6 +32,7 @@ class MigrationProcessHolder( private val db: DatabaseHelper by injectLazy() private val sourceManager: SourceManager by injectLazy() + private var item: MigrationProcessItem? = null init { // We need to post a Runnable to show the popup to make sure that the PopupMenu is @@ -41,18 +43,21 @@ class MigrationProcessHolder( } fun bind(item: MigrationProcessItem) { + this.item = item launchUI { val manga = item.manga.manga() val source = item.manga.mangaSource() - migration_menu.setVectorCompat(R.drawable.ic_more_vert_24dp, view.context.getResourceColor(R.attr.colorOnPrimary)) + migration_menu.setVectorCompat(R.drawable.ic_more_vert_24dp, view.context + .getResourceColor(R.attr.colorOnPrimary)) skip_manga.setVectorCompat(R.drawable.ic_close_24dp, view.context.getResourceColor(R .attr.colorOnPrimary)) - migration_menu.gone() + migration_menu.invisible() + skip_manga.visible() + migration_manga_card_to.resetManga() if (manga != null) { withContext(Dispatchers.Main) { - migration_manga_card_from.loading_group.gone() - attachManga(migration_manga_card_from, manga, source) + migration_manga_card_from.attachManga(manga, source) migration_manga_card_from.setOnClickListener { adapter.controller.router.pushController( MangaController( @@ -81,9 +86,11 @@ class MigrationProcessHolder( sourceManager.get(it) } withContext(Dispatchers.Main) { + if (item.manga.mangaId != this@MigrationProcessHolder.item?.manga?.mangaId) { + return@withContext + } if (searchResult != null && resultSource != null) { - migration_manga_card_to.loading_group.gone() - attachManga(migration_manga_card_to, searchResult, resultSource) + migration_manga_card_to.attachManga(searchResult, resultSource) migration_manga_card_to.setOnClickListener { adapter.controller.router.pushController( MangaController( @@ -107,22 +114,32 @@ class MigrationProcessHolder( migration_manga_card_to.loading_group.visible() } - fun attachManga(view: View, manga: Manga, source: Source) { - view.loading_group.gone() + private fun View.resetManga() { + loading_group.visible() + thumbnail.setImageDrawable(null) + title.text = "" + manga_source_label.text = "" + manga_chapters.text = "" + manga_chapters.gone() + manga_last_chapter_label.text = "" + } + + private fun View.attachManga(manga: Manga, source: Source) { + loading_group.gone() GlideApp.with(view.context.applicationContext) .load(manga) .diskCacheStrategy(DiskCacheStrategy.RESOURCE) .centerCrop() - .into(view.thumbnail) + .into(thumbnail) - view.title.text = if (manga.title.isBlank()) { + title.text = if (manga.title.isBlank()) { view.context.getString(R.string.unknown) } else { manga.title } - view.gradient.visible() - view.manga_source_label.text = /*if (source.id == MERGED_SOURCE_ID) { + gradient.visible() + manga_source_label.text = /*if (source.id == MERGED_SOURCE_ID) { MergedSource.MangaConfig.readFromUrl(gson, manga.url).children.map { sourceManager.getOrStub(it.source).toString() }.distinct().joinToString() @@ -131,15 +148,15 @@ class MigrationProcessHolder( // } val mangaChapters = db.getChapters(manga).executeAsBlocking() - view.manga_chapters.visible() - view.manga_chapters.text = mangaChapters.size.toString() + manga_chapters.visible() + manga_chapters.text = mangaChapters.size.toString() val latestChapter = mangaChapters.maxBy { it.chapter_number }?.chapter_number ?: -1f if (latestChapter > 0f) { - view.manga_last_chapter_label.text = view.context.getString(R.string.latest_x, + manga_last_chapter_label.text = context.getString(R.string.latest_x, DecimalFormat("#.#").format(latestChapter)) } else { - view.manga_last_chapter_label.setText(R.string.unknown) + manga_last_chapter_label.setText(R.string.unknown) } } diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessItem.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessItem.kt index 2f08a1aff..4d7c8ac80 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessItem.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/migration/manga/process/MigrationProcessItem.kt @@ -43,6 +43,6 @@ class MigrationProcessItem(val manga: MigratingManga) : } override fun hashCode(): Int { - return manga.mangaId.hashCode() + return manga.mangaId.toInt() } } diff --git a/app/src/main/res/layout/migration_new_process_item.xml b/app/src/main/res/layout/migration_new_process_item.xml index 388891486..75d1c6c8e 100644 --- a/app/src/main/res/layout/migration_new_process_item.xml +++ b/app/src/main/res/layout/migration_new_process_item.xml @@ -1,38 +1,35 @@ - + android:gravity="center"> + app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toStartOf="@+id/migration_menu" + app:layout_constraintHorizontal_bias="0.5" + app:layout_constraintStart_toEndOf="@+id/imageView" + app:layout_constraintTop_toTopOf="parent" /> + app:srcCompat="@drawable/ic_more_vert_24dp" + android:visibility="invisible"/> - \ No newline at end of file + app:layout_constraintBottom_toBottomOf="@+id/migration_menu" + app:layout_constraintEnd_toEndOf="@+id/migration_menu" + app:layout_constraintStart_toStartOf="@+id/migration_menu" + app:layout_constraintTop_toTopOf="@+id/migration_menu" + app:srcCompat="@drawable/ic_close_24dp" /> + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7111a164b..cc4514a22 100755 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -660,6 +660,7 @@ Keep old manga Use intelligent search algorithm Begin migration + migrating to Login