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