From c40b068e1144fd627705aa90fb2e3de8bb7ebaf0 Mon Sep 17 00:00:00 2001 From: Acclorite <140836141+Acclorite@users.noreply.github.com> Date: Tue, 12 Nov 2024 09:05:05 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=9B=A0=EF=B8=8F=20Fix=20issues=20with=20d?= =?UTF-8?q?ark=20theme=20switching?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Fixed issue with dark theme switching incorrectly on API 35 --- app/src/main/AndroidManifest.xml | 2 +- .../screens/history/data/HistoryViewModel.kt | 8 ++++---- .../library/components/LibraryBookItem.kt | 17 ++++------------- 3 files changed, 9 insertions(+), 18 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ae9f380e..51f8212c 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -35,7 +35,7 @@ diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/history/data/HistoryViewModel.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/history/data/HistoryViewModel.kt index 7ec882fa..87c0ac75 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/history/data/HistoryViewModel.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/history/data/HistoryViewModel.kt @@ -329,8 +329,8 @@ class HistoryViewModel @Inject constructor( return } - val history = historyWithoutBooks.map { - val book = books.find { book -> book.id == it.bookId }!! + val history = historyWithoutBooks.mapNotNull { + val book = books.find { book -> book.id == it.bookId } ?: return@mapNotNull null it.copy( book = book ) @@ -340,8 +340,8 @@ class HistoryViewModel @Inject constructor( history .filter { - val book = books.find { book -> book.id == it.bookId }!! - book.title.lowercase().trim().contains(query.lowercase().trim()) + val book = books.find { book -> book.id == it.bookId } + book?.title?.lowercase()?.trim()?.contains(query.lowercase().trim()) == true }.groupBy { item -> val calendar = Calendar.getInstance().apply { timeInMillis = item.time diff --git a/app/src/main/java/ua/acclorite/book_story/presentation/screens/library/components/LibraryBookItem.kt b/app/src/main/java/ua/acclorite/book_story/presentation/screens/library/components/LibraryBookItem.kt index 07932412..a7dca315 100644 --- a/app/src/main/java/ua/acclorite/book_story/presentation/screens/library/components/LibraryBookItem.kt +++ b/app/src/main/java/ua/acclorite/book_story/presentation/screens/library/components/LibraryBookItem.kt @@ -21,7 +21,6 @@ import androidx.compose.material3.IconButtonDefaults import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier @@ -55,18 +54,10 @@ fun LibraryBookItem( onLongClick: () -> Unit, onButtonClick: () -> Unit ) { - val primaryColor = MaterialTheme.colorScheme.primary - val onPrimaryColor = MaterialTheme.colorScheme.onPrimary - val onSurfaceColor = MaterialTheme.colorScheme.onSurface - - val backgroundColor = remember(book.second) { - if (book.second) primaryColor - else Color.Transparent - } - val fontColor = remember(book.second) { - if (book.second) onPrimaryColor - else onSurfaceColor - } + val backgroundColor = if (book.second) MaterialTheme.colorScheme.primary + else Color.Transparent + val fontColor = if (book.second) MaterialTheme.colorScheme.onPrimary + else MaterialTheme.colorScheme.onSurface val progress = rememberSaveable(book.first.progress) { "${book.first.progress.calculateProgress(1)}%"