From ae08e6c7a4dd575da3683272207f4b00931b2084 Mon Sep 17 00:00:00 2001 From: Diego Beraldin Date: Sun, 10 Dec 2023 19:40:22 +0100 Subject: [PATCH] enhancement: listing shortcuts in drawer; closes #213 (#274) --- .../core/commonui/components/CommunityItem.kt | 7 +- .../commonui/drawer/ModalDrawerContent.kt | 86 +++++++++++++++---- .../navigation/DefaultDrawerCoordinator.kt | 6 +- .../core/navigation/DrawerCoordinator.kt | 4 +- .../commonMain/resources/MR/ar/strings.xml | 2 +- .../commonMain/resources/MR/base/strings.xml | 2 +- .../commonMain/resources/MR/bg/strings.xml | 2 +- .../commonMain/resources/MR/cs/strings.xml | 2 +- .../commonMain/resources/MR/da/strings.xml | 2 +- .../commonMain/resources/MR/de/strings.xml | 2 +- .../commonMain/resources/MR/el/strings.xml | 2 +- .../commonMain/resources/MR/eo/strings.xml | 2 +- .../commonMain/resources/MR/es/strings.xml | 4 +- .../commonMain/resources/MR/et/strings.xml | 2 +- .../commonMain/resources/MR/fi/strings.xml | 2 +- .../commonMain/resources/MR/fr/strings.xml | 2 +- .../commonMain/resources/MR/ga/strings.xml | 2 +- .../commonMain/resources/MR/hr/strings.xml | 2 +- .../commonMain/resources/MR/hu/strings.xml | 2 +- .../commonMain/resources/MR/it/strings.xml | 4 +- .../commonMain/resources/MR/lt/strings.xml | 2 +- .../commonMain/resources/MR/lv/strings.xml | 2 +- .../commonMain/resources/MR/mt/strings.xml | 2 +- .../commonMain/resources/MR/nl/strings.xml | 2 +- .../commonMain/resources/MR/no/strings.xml | 2 +- .../commonMain/resources/MR/pl/strings.xml | 2 +- .../commonMain/resources/MR/pt/strings.xml | 2 +- .../commonMain/resources/MR/ro/strings.xml | 2 +- .../commonMain/resources/MR/ru/strings.xml | 2 +- .../commonMain/resources/MR/se/strings.xml | 2 +- .../commonMain/resources/MR/sk/strings.xml | 2 +- .../commonMain/resources/MR/sl/strings.xml | 2 +- .../commonMain/resources/MR/sq/strings.xml | 2 +- .../commonMain/resources/MR/tr/strings.xml | 2 +- .../commonMain/resources/MR/uk/strings.xml | 2 +- .../diegoberaldin/raccoonforlemmy/App.kt | 4 +- .../raccoonforlemmy/MainScreen.kt | 31 +++++++ 37 files changed, 149 insertions(+), 55 deletions(-) diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/components/CommunityItem.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/components/CommunityItem.kt index 0ba534b9f..ec38ef170 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/components/CommunityItem.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/components/CommunityItem.kt @@ -34,6 +34,9 @@ fun CommunityItem( val communityIcon = community.icon.orEmpty() val communityHost = community.host val iconSize = if (small) IconSize.m else IconSize.l + val fullColor = MaterialTheme.colorScheme.onBackground + val ancillaryColor = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f) + Row( modifier = modifier.padding( vertical = Spacing.xs, @@ -70,7 +73,7 @@ fun CommunityItem( append(title) }, style = MaterialTheme.typography.bodyLarge, - color = MaterialTheme.colorScheme.onBackground, + color = fullColor, maxLines = 1, overflow = TextOverflow.Ellipsis, ) @@ -83,7 +86,7 @@ fun CommunityItem( } }, style = MaterialTheme.typography.bodySmall, - color = MaterialTheme.colorScheme.onBackground, + color = ancillaryColor, ) } if (showSubscribers) { diff --git a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/drawer/ModalDrawerContent.kt b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/drawer/ModalDrawerContent.kt index d50c86af8..1aae786df 100644 --- a/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/drawer/ModalDrawerContent.kt +++ b/core-commonui/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/commonui/drawer/ModalDrawerContent.kt @@ -67,7 +67,10 @@ import com.github.diegoberaldin.raccoonforlemmy.core.navigation.DrawerEvent import com.github.diegoberaldin.raccoonforlemmy.core.navigation.di.getDrawerCoordinator import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.onClick import com.github.diegoberaldin.raccoonforlemmy.core.utils.compose.rememberCallback +import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.ListingType import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.UserModel +import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.toIcon +import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.toReadableName import com.github.diegoberaldin.raccoonforlemmy.resources.MR import com.github.diegoberaldin.raccoonforlemmy.resources.di.getLanguageRepository import dev.icerock.moko.resources.compose.localized @@ -97,7 +100,6 @@ object ModalDrawerContent : Tab { } val languageRepository = remember { getLanguageRepository() } val themeRepository = remember { getThemeRepository() } - val lang by languageRepository.currentLanguage.collectAsState() LaunchedEffect(model) { model.effects.onEach { evt -> @@ -119,6 +121,13 @@ object ModalDrawerContent : Tab { uiFontSizeWorkaround = true }.launchIn(this) } + LaunchedEffect(languageRepository) { + languageRepository.currentLanguage.drop(1).onEach { + uiFontSizeWorkaround = false + delay(50) + uiFontSizeWorkaround = true + }.launchIn(this) + } if (!uiFontSizeWorkaround) { return } @@ -126,7 +135,6 @@ object ModalDrawerContent : Tab { Column( modifier = Modifier.fillMaxWidth(0.9f) ) { - LaunchedEffect(lang) {} DrawerHeader( user = uiState.user, @@ -163,15 +171,23 @@ object ModalDrawerContent : Tab { modifier = Modifier.fillMaxSize().padding(horizontal = Spacing.xxs), verticalArrangement = Arrangement.spacedBy(Spacing.xxs), ) { - - item { - DrawerShortcut( - title = stringResource(MR.strings.navigation_drawer_title_subscriptions), - icon = Icons.Default.ManageAccounts, - onSelected = { - coordinator.toggleDrawer() - coordinator.sendEvent(DrawerEvent.ManageSubscriptions) - }) + for (listingType in listOf( + ListingType.Subscribed, + ListingType.All, + ListingType.Local, + )) { + item { + DrawerShortcut( + title = listingType.toReadableName(), + icon = listingType.toIcon(), + onSelected = { + coordinator.toggleDrawer() + coordinator.sendEvent( + DrawerEvent.ChangeListingType(listingType) + ) + }, + ) + } } item { DrawerShortcut(title = stringResource(MR.strings.navigation_drawer_title_bookmarks), @@ -181,6 +197,15 @@ object ModalDrawerContent : Tab { coordinator.sendEvent(DrawerEvent.OpenBookmarks) }) } + item { + DrawerShortcut( + title = stringResource(MR.strings.navigation_drawer_title_subscriptions), + icon = Icons.Default.ManageAccounts, + onSelected = { + coordinator.toggleDrawer() + coordinator.sendEvent(DrawerEvent.ManageSubscriptions) + }) + } items(uiState.multiCommunities) { community -> MultiCommunityItem( @@ -227,6 +252,35 @@ object ModalDrawerContent : Tab { text = stringResource(MR.strings.sidebar_not_logged_message), style = MaterialTheme.typography.bodySmall, ) + + Text( + modifier = Modifier.padding(horizontal = Spacing.s, vertical = Spacing.s), + text = stringResource(MR.strings.home_listing_title), + style = MaterialTheme.typography.titleMedium, + ) + + LazyColumn( + modifier = Modifier.fillMaxSize().padding(horizontal = Spacing.xxs), + verticalArrangement = Arrangement.spacedBy(Spacing.xxs), + ) { + for (listingType in listOf( + ListingType.All, + ListingType.Local, + )) { + item { + DrawerShortcut( + title = listingType.toReadableName(), + icon = listingType.toIcon(), + onSelected = { + coordinator.toggleDrawer() + coordinator.sendEvent( + DrawerEvent.ChangeListingType(listingType) + ) + }, + ) + } + } + } } } @@ -257,6 +311,8 @@ private fun DrawerHeader( onOpenChangeInstance: (() -> Unit)? = null, ) { val avatarSize = 52.dp + val fullColor = MaterialTheme.colorScheme.onBackground + val ancillaryColor = MaterialTheme.colorScheme.onBackground.copy(alpha = 0.75f) Row( modifier = Modifier.padding( top = Spacing.m, @@ -299,7 +355,7 @@ private fun DrawerHeader( } }, style = MaterialTheme.typography.titleLarge, - color = MaterialTheme.colorScheme.onBackground, + color = fullColor, ) Text( text = buildString { @@ -310,7 +366,7 @@ private fun DrawerHeader( maxLines = 1, overflow = TextOverflow.Ellipsis, style = MaterialTheme.typography.titleSmall, - color = MaterialTheme.colorScheme.onBackground, + color = ancillaryColor, ) } } else { @@ -325,13 +381,13 @@ private fun DrawerHeader( Text( text = anonymousTitle, style = MaterialTheme.typography.titleLarge, - color = MaterialTheme.colorScheme.onBackground, + color = fullColor, ) Row { Text( text = instance.orEmpty(), style = MaterialTheme.typography.titleSmall, - color = MaterialTheme.colorScheme.onBackground, + color = ancillaryColor, ) Spacer(modifier = Modifier.weight(1f)) Icon( diff --git a/core-navigation/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/navigation/DefaultDrawerCoordinator.kt b/core-navigation/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/navigation/DefaultDrawerCoordinator.kt index 7aaf7f846..989edd508 100644 --- a/core-navigation/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/navigation/DefaultDrawerCoordinator.kt +++ b/core-navigation/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/navigation/DefaultDrawerCoordinator.kt @@ -9,19 +9,19 @@ import kotlinx.coroutines.launch class DefaultDrawerCoordinator : DrawerCoordinator { - override val toggleEvents = MutableSharedFlow() + override val events = MutableSharedFlow() override val gesturesEnabled = MutableStateFlow(true) private val scope = CoroutineScope(SupervisorJob() + Dispatchers.Default) override fun toggleDrawer() { scope.launch { - toggleEvents.emit(DrawerEvent.Toggled) + events.emit(DrawerEvent.Toggled) } } override fun sendEvent(event: DrawerEvent) { scope.launch { - toggleEvents.emit(event) + events.emit(event) } } diff --git a/core-navigation/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/navigation/DrawerCoordinator.kt b/core-navigation/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/navigation/DrawerCoordinator.kt index 72a792cdb..2abb28ba9 100644 --- a/core-navigation/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/navigation/DrawerCoordinator.kt +++ b/core-navigation/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/navigation/DrawerCoordinator.kt @@ -3,6 +3,7 @@ package com.github.diegoberaldin.raccoonforlemmy.core.navigation import androidx.compose.runtime.Stable import com.github.diegoberaldin.raccoonforlemmy.core.persistence.data.MultiCommunityModel import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.CommunityModel +import com.github.diegoberaldin.raccoonforlemmy.domain.lemmy.data.ListingType import kotlinx.coroutines.flow.SharedFlow import kotlinx.coroutines.flow.StateFlow @@ -12,11 +13,12 @@ sealed interface DrawerEvent { data class OpenMultiCommunity(val community: MultiCommunityModel) : DrawerEvent data object ManageSubscriptions : DrawerEvent data object OpenBookmarks : DrawerEvent + data class ChangeListingType(val value: ListingType) : DrawerEvent } @Stable interface DrawerCoordinator { - val toggleEvents: SharedFlow + val events: SharedFlow val gesturesEnabled: StateFlow fun toggleDrawer() fun sendEvent(event: DrawerEvent) diff --git a/resources/src/commonMain/resources/MR/ar/strings.xml b/resources/src/commonMain/resources/MR/ar/strings.xml index 3753116af..d8e70b834 100644 --- a/resources/src/commonMain/resources/MR/ar/strings.xml +++ b/resources/src/commonMain/resources/MR/ar/strings.xml @@ -121,7 +121,7 @@ محرر متعدد المجتمعات مجهول تم الحفظ - الاشتراكات + إدارة الاشتراكات المنشورات صندوق الوارد ملف التعريف diff --git a/resources/src/commonMain/resources/MR/base/strings.xml b/resources/src/commonMain/resources/MR/base/strings.xml index 2eff6578a..56eb44b48 100755 --- a/resources/src/commonMain/resources/MR/base/strings.xml +++ b/resources/src/commonMain/resources/MR/base/strings.xml @@ -154,7 +154,7 @@ Multi-community editor Anonymous Saved - Subscriptions + Manage subscriptions Posts Inbox Profile diff --git a/resources/src/commonMain/resources/MR/bg/strings.xml b/resources/src/commonMain/resources/MR/bg/strings.xml index deadca3ff..727fb0c0a 100644 --- a/resources/src/commonMain/resources/MR/bg/strings.xml +++ b/resources/src/commonMain/resources/MR/bg/strings.xml @@ -124,7 +124,7 @@ Редактор за различни общности Анонимен Запазено - Абонаменти + Управление на абонаменти Публикации Входяща Кутия Профил diff --git a/resources/src/commonMain/resources/MR/cs/strings.xml b/resources/src/commonMain/resources/MR/cs/strings.xml index aba315aaf..4a8b10708 100644 --- a/resources/src/commonMain/resources/MR/cs/strings.xml +++ b/resources/src/commonMain/resources/MR/cs/strings.xml @@ -123,7 +123,7 @@ Editor pro více komunit Anonymní Uloženo - Předplatné + Správa předplatných Příspěvky Doručené Profil diff --git a/resources/src/commonMain/resources/MR/da/strings.xml b/resources/src/commonMain/resources/MR/da/strings.xml index 69b098c62..73d05c670 100644 --- a/resources/src/commonMain/resources/MR/da/strings.xml +++ b/resources/src/commonMain/resources/MR/da/strings.xml @@ -123,7 +123,7 @@ Multifællesskabsredaktør Anonym Gemt - Abonnementer + Administrer abonnementer Indlæg Indbakke Profil diff --git a/resources/src/commonMain/resources/MR/de/strings.xml b/resources/src/commonMain/resources/MR/de/strings.xml index dc29f3296..6e8e07dce 100755 --- a/resources/src/commonMain/resources/MR/de/strings.xml +++ b/resources/src/commonMain/resources/MR/de/strings.xml @@ -125,7 +125,7 @@ Multi-Community-Redakteur Anonym Gerettet - Abonnements + Abonnements verwalten Beträge Posteingang Profil diff --git a/resources/src/commonMain/resources/MR/el/strings.xml b/resources/src/commonMain/resources/MR/el/strings.xml index ffbcd3194..b9aa7a550 100644 --- a/resources/src/commonMain/resources/MR/el/strings.xml +++ b/resources/src/commonMain/resources/MR/el/strings.xml @@ -125,7 +125,7 @@ Επεξεργαστής πολυκοινότητας Ανώνυμος Αποθηκευμένα - Συνδρομές + Διαχείριση συνδρομών Αναρτήσεις Εισερχόμενα Προφίλ diff --git a/resources/src/commonMain/resources/MR/eo/strings.xml b/resources/src/commonMain/resources/MR/eo/strings.xml index 78f25dc3b..1c7825927 100644 --- a/resources/src/commonMain/resources/MR/eo/strings.xml +++ b/resources/src/commonMain/resources/MR/eo/strings.xml @@ -123,7 +123,7 @@ Multi-komunuma redaktilo Anonima Konservitajn erojn - Subskriboj + Administri abonojn Afiŝoj Enirkesto Profilo diff --git a/resources/src/commonMain/resources/MR/es/strings.xml b/resources/src/commonMain/resources/MR/es/strings.xml index 8f4668d50..c7c408b17 100755 --- a/resources/src/commonMain/resources/MR/es/strings.xml +++ b/resources/src/commonMain/resources/MR/es/strings.xml @@ -52,7 +52,7 @@ Usuarios Búsqueda via %1$s - Tipo de listado + Listados Todos Locales Suscripciones @@ -123,7 +123,7 @@ Editor multi-comunidad Anónimo Guardados - Suscripciones + Gestionar suscripciones Publicaciones Mensajes Perfil diff --git a/resources/src/commonMain/resources/MR/et/strings.xml b/resources/src/commonMain/resources/MR/et/strings.xml index 7f5540a40..d9c25f1dc 100644 --- a/resources/src/commonMain/resources/MR/et/strings.xml +++ b/resources/src/commonMain/resources/MR/et/strings.xml @@ -123,7 +123,7 @@ Mitme kogukonna redaktor Anonüümne Salvestatud - Tellimused + Tellimuste haldamine Postid Sisendkaust Profiil diff --git a/resources/src/commonMain/resources/MR/fi/strings.xml b/resources/src/commonMain/resources/MR/fi/strings.xml index 8be02b5c6..1341693c6 100644 --- a/resources/src/commonMain/resources/MR/fi/strings.xml +++ b/resources/src/commonMain/resources/MR/fi/strings.xml @@ -123,7 +123,7 @@ Moniyhteisöeditori Anonyymi Tallennettu - Vuokrasopimukset + Hallinnoi tilauksia Viestit Saapuneet-kansio Profiili diff --git a/resources/src/commonMain/resources/MR/fr/strings.xml b/resources/src/commonMain/resources/MR/fr/strings.xml index 6d65f109e..d8c04af82 100755 --- a/resources/src/commonMain/resources/MR/fr/strings.xml +++ b/resources/src/commonMain/resources/MR/fr/strings.xml @@ -125,7 +125,7 @@ Éditeur multi-communauté Anonyme Sauvegardés - Abonnements + Gérer abonnements Publications Boîte Profil diff --git a/resources/src/commonMain/resources/MR/ga/strings.xml b/resources/src/commonMain/resources/MR/ga/strings.xml index c3f690c26..34fb37052 100644 --- a/resources/src/commonMain/resources/MR/ga/strings.xml +++ b/resources/src/commonMain/resources/MR/ga/strings.xml @@ -127,7 +127,7 @@ Eagarthóir ilphobail Gan ainm Míreanna sábháilte - Suibscríobh + Bainistigh síntiúis Postálacha Bosca Isteach Próifíl diff --git a/resources/src/commonMain/resources/MR/hr/strings.xml b/resources/src/commonMain/resources/MR/hr/strings.xml index 35bab1187..704cf6a3d 100644 --- a/resources/src/commonMain/resources/MR/hr/strings.xml +++ b/resources/src/commonMain/resources/MR/hr/strings.xml @@ -124,7 +124,7 @@ Uređivač za više zajednica Anonimno Spremljeno - Pretplate + Upravljanje pretplatama Objave Ulazna pošta, ulazne poruke, ulazni spremnik Profil diff --git a/resources/src/commonMain/resources/MR/hu/strings.xml b/resources/src/commonMain/resources/MR/hu/strings.xml index 2a4c0b078..e85370790 100644 --- a/resources/src/commonMain/resources/MR/hu/strings.xml +++ b/resources/src/commonMain/resources/MR/hu/strings.xml @@ -123,7 +123,7 @@ Többközösségi szerkesztő Névtelen Mentve - Feliratkozások + Előfizetések kezelése Bejegyzések Beérkezett üzenetek Profil diff --git a/resources/src/commonMain/resources/MR/it/strings.xml b/resources/src/commonMain/resources/MR/it/strings.xml index 1452fd7de..ff3bd21f2 100755 --- a/resources/src/commonMain/resources/MR/it/strings.xml +++ b/resources/src/commonMain/resources/MR/it/strings.xml @@ -52,7 +52,7 @@ Utenti Ricerca via %1$s - Tipo di feed + Feed Tutti Locali Iscrizioni @@ -125,7 +125,7 @@ Editor Multi-comunità Anonimo Salvati - Iscrizioni + Gestione iscrizioni Post Inbox Profilo diff --git a/resources/src/commonMain/resources/MR/lt/strings.xml b/resources/src/commonMain/resources/MR/lt/strings.xml index 8e839d850..5f8798c91 100644 --- a/resources/src/commonMain/resources/MR/lt/strings.xml +++ b/resources/src/commonMain/resources/MR/lt/strings.xml @@ -123,7 +123,7 @@ Kelių bendruomenių redaktorius Anonimiškas Įrašyta - Prenumeratos + Tvarkyti prenumeratas Postai Gautieji Profilis diff --git a/resources/src/commonMain/resources/MR/lv/strings.xml b/resources/src/commonMain/resources/MR/lv/strings.xml index 79db85cb2..af2b0b966 100644 --- a/resources/src/commonMain/resources/MR/lv/strings.xml +++ b/resources/src/commonMain/resources/MR/lv/strings.xml @@ -124,7 +124,7 @@ Vairāku kopienu redaktors Anonīmi Saglabāts - Abonementi + Pārvaldīt abonementus Ieraksti Iesūtne Profils diff --git a/resources/src/commonMain/resources/MR/mt/strings.xml b/resources/src/commonMain/resources/MR/mt/strings.xml index 6f118b893..bbdb808ef 100644 --- a/resources/src/commonMain/resources/MR/mt/strings.xml +++ b/resources/src/commonMain/resources/MR/mt/strings.xml @@ -123,7 +123,7 @@ Editur multikomunitarju Anonimu Issejvjati - Sottoskrizzjonijiet + Immaniġġja l-abbonamenti Postijet Inbox Profil diff --git a/resources/src/commonMain/resources/MR/nl/strings.xml b/resources/src/commonMain/resources/MR/nl/strings.xml index 7cbcd3e53..3bcb417b0 100644 --- a/resources/src/commonMain/resources/MR/nl/strings.xml +++ b/resources/src/commonMain/resources/MR/nl/strings.xml @@ -125,7 +125,7 @@ Multi-gemeenschappen editor Anoniem Opgeslagen - Abonnementen + Beheer abonnementen Berichten Inbox Profiel diff --git a/resources/src/commonMain/resources/MR/no/strings.xml b/resources/src/commonMain/resources/MR/no/strings.xml index b4f05a28c..87f36128c 100644 --- a/resources/src/commonMain/resources/MR/no/strings.xml +++ b/resources/src/commonMain/resources/MR/no/strings.xml @@ -125,7 +125,7 @@ Multisamfunnsredaktør Anonym Lagret - Abonnement + Administrer abonnementer Nyheter Inbox Profil diff --git a/resources/src/commonMain/resources/MR/pl/strings.xml b/resources/src/commonMain/resources/MR/pl/strings.xml index d73abd19e..b989455a2 100644 --- a/resources/src/commonMain/resources/MR/pl/strings.xml +++ b/resources/src/commonMain/resources/MR/pl/strings.xml @@ -124,7 +124,7 @@ Edytor wielospołecznościowy Anonimowy Zapisane - Subskrypcje + Zarządzanie subskrypcjami Posty Skrzynka Profil diff --git a/resources/src/commonMain/resources/MR/pt/strings.xml b/resources/src/commonMain/resources/MR/pt/strings.xml index 3c37fd9cd..735dc98f3 100755 --- a/resources/src/commonMain/resources/MR/pt/strings.xml +++ b/resources/src/commonMain/resources/MR/pt/strings.xml @@ -123,7 +123,7 @@ Editor multi-comunidad Anônimo Guardados - Subscripções + Gerenciar subscripções Publicações Caixa Perfil diff --git a/resources/src/commonMain/resources/MR/ro/strings.xml b/resources/src/commonMain/resources/MR/ro/strings.xml index 99b3f8d65..9e22bcdb1 100755 --- a/resources/src/commonMain/resources/MR/ro/strings.xml +++ b/resources/src/commonMain/resources/MR/ro/strings.xml @@ -124,7 +124,7 @@ Editor multi-comunitate Anonim Salvate - Abonamente + Gestionare abonamentelor Postări Inbox Profil diff --git a/resources/src/commonMain/resources/MR/ru/strings.xml b/resources/src/commonMain/resources/MR/ru/strings.xml index c2dddaad3..f722b37b9 100644 --- a/resources/src/commonMain/resources/MR/ru/strings.xml +++ b/resources/src/commonMain/resources/MR/ru/strings.xml @@ -123,7 +123,7 @@ Редактор для нескольких сообществ Анонимные Сохранено - Подписки + Управление подписками Записи Входящие Профиль diff --git a/resources/src/commonMain/resources/MR/se/strings.xml b/resources/src/commonMain/resources/MR/se/strings.xml index 47037fd84..b3596d2ad 100644 --- a/resources/src/commonMain/resources/MR/se/strings.xml +++ b/resources/src/commonMain/resources/MR/se/strings.xml @@ -124,7 +124,7 @@ Flergemenskapsredaktör Anonym Sparad - Prenumerationer + Hantera prenumerationer Inlägg Inkorg Profil diff --git a/resources/src/commonMain/resources/MR/sk/strings.xml b/resources/src/commonMain/resources/MR/sk/strings.xml index f2f6af49f..86d0b3408 100644 --- a/resources/src/commonMain/resources/MR/sk/strings.xml +++ b/resources/src/commonMain/resources/MR/sk/strings.xml @@ -124,7 +124,7 @@ Editor pre viaceré komunity Anonym Uložené - Predplatné + Spravovať odbery Príspevky Doručená pošta Profil diff --git a/resources/src/commonMain/resources/MR/sl/strings.xml b/resources/src/commonMain/resources/MR/sl/strings.xml index f3a49500f..9baaa1965 100644 --- a/resources/src/commonMain/resources/MR/sl/strings.xml +++ b/resources/src/commonMain/resources/MR/sl/strings.xml @@ -122,7 +122,7 @@ Urejevalnik za več skupnosti Anonimno Shranjeno - Naročnine + Upravljanje naročnin Objave Prejeto Profil diff --git a/resources/src/commonMain/resources/MR/sq/strings.xml b/resources/src/commonMain/resources/MR/sq/strings.xml index e5127a94b..f5691ca8f 100644 --- a/resources/src/commonMain/resources/MR/sq/strings.xml +++ b/resources/src/commonMain/resources/MR/sq/strings.xml @@ -124,7 +124,7 @@ Redaktor me shumë komunitete Në mënyrë anonime Ruajtur - Abonimet + Menaxho abonimet Postimet Posta e ardhur Profili diff --git a/resources/src/commonMain/resources/MR/tr/strings.xml b/resources/src/commonMain/resources/MR/tr/strings.xml index 8799e6a6e..c3e807d58 100644 --- a/resources/src/commonMain/resources/MR/tr/strings.xml +++ b/resources/src/commonMain/resources/MR/tr/strings.xml @@ -123,7 +123,7 @@ Çok topluluklu düzenleyici Anonymous Kaydedildi - Abonelikler + Abonelikleri yönet Postlar Gelen Kutusu Profil diff --git a/resources/src/commonMain/resources/MR/uk/strings.xml b/resources/src/commonMain/resources/MR/uk/strings.xml index 97cc0b9e4..4855cf05d 100644 --- a/resources/src/commonMain/resources/MR/uk/strings.xml +++ b/resources/src/commonMain/resources/MR/uk/strings.xml @@ -123,7 +123,7 @@ Редактор для кількох спільнот Анонімний Збережено - Підписки + Керуйте підписками Записи Вхідні Профіль diff --git a/shared/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/App.kt b/shared/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/App.kt index 6400774a9..2cc31bfc4 100644 --- a/shared/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/App.kt +++ b/shared/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/App.kt @@ -192,7 +192,7 @@ fun App(onLoadingFinished: () -> Unit = {}) { } LaunchedEffect(drawerCoordinator) { - drawerCoordinator.toggleEvents.onEach { evt -> + drawerCoordinator.events.onEach { evt -> when (evt) { DrawerEvent.Toggled -> { drawerState.apply { @@ -221,6 +221,8 @@ fun App(onLoadingFinished: () -> Unit = {}) { DrawerEvent.OpenBookmarks -> { navigationCoordinator.pushScreen(SavedItemsScreen()) } + + else -> null } }.launchIn(this) } diff --git a/shared/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/MainScreen.kt b/shared/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/MainScreen.kt index 5b1bdbbae..ad9257630 100644 --- a/shared/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/MainScreen.kt +++ b/shared/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/MainScreen.kt @@ -32,7 +32,11 @@ import cafe.adriel.voyager.navigator.tab.CurrentTab import cafe.adriel.voyager.navigator.tab.TabNavigator import com.github.diegoberaldin.raccoonforlemmy.core.appearance.di.getThemeRepository import com.github.diegoberaldin.raccoonforlemmy.core.architecture.bindToLifecycle +import com.github.diegoberaldin.raccoonforlemmy.core.navigation.DrawerEvent +import com.github.diegoberaldin.raccoonforlemmy.core.navigation.di.getDrawerCoordinator import com.github.diegoberaldin.raccoonforlemmy.core.navigation.di.getNavigationCoordinator +import com.github.diegoberaldin.raccoonforlemmy.core.notifications.NotificationCenterEvent +import com.github.diegoberaldin.raccoonforlemmy.core.notifications.di.getNotificationCenter import com.github.diegoberaldin.raccoonforlemmy.di.getMainViewModel import com.github.diegoberaldin.raccoonforlemmy.feature.home.ui.HomeTab import com.github.diegoberaldin.raccoonforlemmy.feature.inbox.ui.InboxTab @@ -46,6 +50,7 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.flow.drop import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.launch import kotlin.math.roundToInt internal object MainScreen : Screen { @@ -61,6 +66,8 @@ internal object MainScreen : Screen { val uiFontScale by themeRepository.uiFontScale.collectAsState() val snackbarHostState = remember { SnackbarHostState() } val exitMessage = stringResource(MR.strings.message_confirm_exit) + val drawerCoordinator = remember { getDrawerCoordinator() } + val notificationCenter = remember { getNotificationCenter() } LaunchedEffect(model) { model.effects.onEach { @@ -106,6 +113,30 @@ internal object MainScreen : Screen { // when the current tab chanes, reset the bottom bar offset to the default value model.reduce(MainScreenMviModel.Intent.SetBottomBarOffsetHeightPx(0f)) } + LaunchedEffect(drawerCoordinator) { + drawerCoordinator.events.onEach { evt -> + when (evt) { + is DrawerEvent.ChangeListingType -> { + if (tabNavigator.current == HomeTab) { + notificationCenter.send(NotificationCenterEvent.ChangeFeedType(evt.value)) + } else { + tabNavigator.current = HomeTab + launch { + // wait for transition to finish + delay(750) + notificationCenter.send( + NotificationCenterEvent.ChangeFeedType( + evt.value + ) + ) + } + } + } + + else -> null + } + }.launchIn(this) + } Scaffold( content = {