From 0dfba47d85820515f5bdff54083b84a13917e01a Mon Sep 17 00:00:00 2001 From: Koitharu Date: Fri, 19 Feb 2021 20:21:44 +0200 Subject: [PATCH] Misc small fixes --- app/src/main/AndroidManifest.xml | 7 +++++++ .../kotatsu/local/domain/LocalMangaRepository.kt | 14 +++++++++----- .../kotatsu/local/ui/LocalListViewModel.kt | 1 + .../kotatsu/tracker/domain/TrackingRepository.kt | 9 ++------- .../main/res/layout-w600dp/fragment_details.xml | 2 ++ app/src/main/res/values-v29/themes.xml | 1 + app/src/main/res/values/themes.xml | 1 + 7 files changed, 23 insertions(+), 12 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index d3198abc1..5c6214466 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -106,6 +106,7 @@ @@ -116,6 +117,7 @@ @@ -125,6 +127,11 @@ android:resource="@xml/widget_recent" /> + + + \ No newline at end of file diff --git a/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt b/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt index b2674ae1d..9f84ab52a 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/domain/LocalMangaRepository.kt @@ -7,6 +7,8 @@ import android.webkit.MimeTypeMap import androidx.collection.ArraySet import androidx.core.net.toFile import androidx.core.net.toUri +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.koitharu.kotatsu.core.model.* import org.koitharu.kotatsu.core.parser.MangaRepository import org.koitharu.kotatsu.local.data.CbzFilter @@ -127,14 +129,16 @@ class LocalMangaRepository(private val context: Context) : MangaRepository { ) } - fun getRemoteManga(localManga: Manga): Manga? { + suspend fun getRemoteManga(localManga: Manga): Manga? { val file = runCatching { Uri.parse(localManga.url).toFile() }.getOrNull() ?: return null - val zip = ZipFile(file) - val entry = zip.getEntry(MangaZip.INDEX_ENTRY) - val index = entry?.let(zip::readText)?.let(::MangaIndex) ?: return null - return index.getMangaInfo() + return withContext(Dispatchers.IO) { + val zip = ZipFile(file) + val entry = zip.getEntry(MangaZip.INDEX_ENTRY) + val index = entry?.let(zip::readText)?.let(::MangaIndex) ?: return@withContext null + index.getMangaInfo() + } } private fun zipUri(file: File, entryName: String) = diff --git a/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListViewModel.kt b/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListViewModel.kt index cb602772d..715b287b6 100644 --- a/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListViewModel.kt +++ b/app/src/main/java/org/koitharu/kotatsu/local/ui/LocalListViewModel.kt @@ -99,6 +99,7 @@ class LocalListViewModel( runCatching { historyRepository.deleteOrSwap(manga, original) } + mangaList.value = mangaList.value?.filterNot { it.id == manga.id } } shortcutsRepository.updateShortcuts() onMangaRemoved.call(manga) diff --git a/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt b/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt index 2c2b8262a..de24c70bd 100644 --- a/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/tracker/domain/TrackingRepository.kt @@ -28,13 +28,8 @@ class TrackingRepository( } val tracks = db.tracksDao.findAll().groupBy { it.mangaId } return mangaList - .mapNotNull { - if (it.source == MangaSource.LOCAL) { - localMangaRepository.getRemoteManga(it) - } else { - it - } - }.distinctBy { it.id } + .filterNot { it.source == MangaSource.LOCAL } + .distinctBy { it.id } .map { manga -> val track = tracks[manga.id]?.singleOrNull() MangaTracking( diff --git a/app/src/main/res/layout-w600dp/fragment_details.xml b/app/src/main/res/layout-w600dp/fragment_details.xml index 354fda3a9..b224f5bc1 100644 --- a/app/src/main/res/layout-w600dp/fragment_details.xml +++ b/app/src/main/res/layout-w600dp/fragment_details.xml @@ -29,6 +29,8 @@ android:layout_height="wrap_content" android:layout_marginTop="4dp" android:padding="6dp" + app:chipSpacingHorizontal="4dp" + app:chipSpacingVertical="6dp" app:layout_constraintEnd_toEndOf="@id/imageView_cover" app:layout_constraintStart_toStartOf="@id/imageView_cover" app:layout_constraintTop_toBottomOf="@id/imageView_cover" /> diff --git a/app/src/main/res/values-v29/themes.xml b/app/src/main/res/values-v29/themes.xml index 58fe83857..876667222 100644 --- a/app/src/main/res/values-v29/themes.xml +++ b/app/src/main/res/values-v29/themes.xml @@ -8,5 +8,6 @@ @style/Widget.MaterialComponents.Badge @color/status_bar @android:color/transparent + @android:color/white \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 925617c24..71d8872b6 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -8,6 +8,7 @@ @style/PreferenceThemeOverlay @style/Widget.MaterialComponents.Badge @color/status_bar + @android:color/white