mirror of
https://github.com/LiveFastEatTrashRaccoon/RaccoonForLemmy.git
synced 2025-02-09 09:18:40 +01:00
parent
37ad41559a
commit
ae08e6c7a4
@ -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) {
|
||||
|
@ -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(
|
||||
|
@ -9,19 +9,19 @@ import kotlinx.coroutines.launch
|
||||
|
||||
class DefaultDrawerCoordinator : DrawerCoordinator {
|
||||
|
||||
override val toggleEvents = MutableSharedFlow<DrawerEvent>()
|
||||
override val events = MutableSharedFlow<DrawerEvent>()
|
||||
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)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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<DrawerEvent>
|
||||
val events: SharedFlow<DrawerEvent>
|
||||
val gesturesEnabled: StateFlow<Boolean>
|
||||
fun toggleDrawer()
|
||||
fun sendEvent(event: DrawerEvent)
|
||||
|
@ -121,7 +121,7 @@
|
||||
<string name="multi_community_editor_title">محرر متعدد المجتمعات</string>
|
||||
<string name="navigation_drawer_anonymous">مجهول</string>
|
||||
<string name="navigation_drawer_title_bookmarks">تم الحفظ</string>
|
||||
<string name="navigation_drawer_title_subscriptions">الاشتراكات</string>
|
||||
<string name="navigation_drawer_title_subscriptions">إدارة الاشتراكات</string>
|
||||
<string name="navigation_home">المنشورات</string>
|
||||
<string name="navigation_inbox">صندوق الوارد</string>
|
||||
<string name="navigation_profile">ملف التعريف</string>
|
||||
|
@ -154,7 +154,7 @@
|
||||
<string name="multi_community_editor_title">Multi-community editor</string>
|
||||
<string name="navigation_drawer_anonymous">Anonymous</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Saved</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Subscriptions</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Manage subscriptions</string>
|
||||
<string name="navigation_home">Posts</string>
|
||||
<string name="navigation_inbox">Inbox</string>
|
||||
<string name="navigation_profile">Profile</string>
|
||||
|
@ -124,7 +124,7 @@
|
||||
<string name="multi_community_editor_title">Редактор за различни общности</string>
|
||||
<string name="navigation_drawer_anonymous">Анонимен</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Запазено</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Абонаменти</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Управление на абонаменти</string>
|
||||
<string name="navigation_home">Публикации</string>
|
||||
<string name="navigation_inbox">Входяща Кутия</string>
|
||||
<string name="navigation_profile">Профил</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Editor pro více komunit</string>
|
||||
<string name="navigation_drawer_anonymous">Anonymní</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Uloženo</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Předplatné</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Správa předplatných</string>
|
||||
<string name="navigation_home">Příspěvky</string>
|
||||
<string name="navigation_inbox">Doručené</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Multifællesskabsredaktør</string>
|
||||
<string name="navigation_drawer_anonymous">Anonym</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Gemt</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonnementer</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Administrer abonnementer</string>
|
||||
<string name="navigation_home">Indlæg</string>
|
||||
<string name="navigation_inbox">Indbakke</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -125,7 +125,7 @@
|
||||
<string name="multi_community_editor_title">Multi-Community-Redakteur</string>
|
||||
<string name="navigation_drawer_anonymous">Anonym</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Gerettet</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonnements</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonnements verwalten</string>
|
||||
<string name="navigation_home">Beträge</string>
|
||||
<string name="navigation_inbox">Posteingang</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -125,7 +125,7 @@
|
||||
<string name="multi_community_editor_title">Επεξεργαστής πολυκοινότητας</string>
|
||||
<string name="navigation_drawer_anonymous">Ανώνυμος</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Αποθηκευμένα</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Συνδρομές</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Διαχείριση συνδρομών</string>
|
||||
<string name="navigation_home">Αναρτήσεις</string>
|
||||
<string name="navigation_inbox">Εισερχόμενα</string>
|
||||
<string name="navigation_profile">Προφίλ</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Multi-komunuma redaktilo</string>
|
||||
<string name="navigation_drawer_anonymous">Anonima</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Konservitajn erojn</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Subskriboj</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Administri abonojn</string>
|
||||
<string name="navigation_home">Afiŝoj</string>
|
||||
<string name="navigation_inbox">Enirkesto</string>
|
||||
<string name="navigation_profile">Profilo</string>
|
||||
|
@ -52,7 +52,7 @@
|
||||
<string name="explore_result_type_users">Usuarios</string>
|
||||
<string name="explore_search_placeholder">Búsqueda</string>
|
||||
<string name="home_instance_via">via %1$s</string>
|
||||
<string name="home_listing_title">Tipo de listado</string>
|
||||
<string name="home_listing_title">Listados</string>
|
||||
<string name="home_listing_type_all">Todos</string>
|
||||
<string name="home_listing_type_local">Locales</string>
|
||||
<string name="home_listing_type_subscribed">Suscripciones</string>
|
||||
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Editor multi-comunidad</string>
|
||||
<string name="navigation_drawer_anonymous">Anónimo</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Guardados</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Suscripciones</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Gestionar suscripciones</string>
|
||||
<string name="navigation_home">Publicaciones</string>
|
||||
<string name="navigation_inbox">Mensajes</string>
|
||||
<string name="navigation_profile">Perfil</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Mitme kogukonna redaktor</string>
|
||||
<string name="navigation_drawer_anonymous">Anonüümne</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Salvestatud</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Tellimused</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Tellimuste haldamine</string>
|
||||
<string name="navigation_home">Postid</string>
|
||||
<string name="navigation_inbox">Sisendkaust</string>
|
||||
<string name="navigation_profile">Profiil</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Moniyhteisöeditori</string>
|
||||
<string name="navigation_drawer_anonymous">Anonyymi</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Tallennettu</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Vuokrasopimukset</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Hallinnoi tilauksia</string>
|
||||
<string name="navigation_home">Viestit</string>
|
||||
<string name="navigation_inbox">Saapuneet-kansio</string>
|
||||
<string name="navigation_profile">Profiili</string>
|
||||
|
@ -125,7 +125,7 @@
|
||||
<string name="multi_community_editor_title">Éditeur multi-communauté</string>
|
||||
<string name="navigation_drawer_anonymous">Anonyme</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Sauvegardés</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonnements</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Gérer abonnements</string>
|
||||
<string name="navigation_home">Publications</string>
|
||||
<string name="navigation_inbox">Boîte</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -127,7 +127,7 @@
|
||||
<string name="multi_community_editor_title">Eagarthóir ilphobail</string>
|
||||
<string name="navigation_drawer_anonymous">Gan ainm</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Míreanna sábháilte</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Suibscríobh</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Bainistigh síntiúis</string>
|
||||
<string name="navigation_home">Postálacha</string>
|
||||
<string name="navigation_inbox">Bosca Isteach</string>
|
||||
<string name="navigation_profile">Próifíl</string>
|
||||
|
@ -124,7 +124,7 @@
|
||||
<string name="multi_community_editor_title">Uređivač za više zajednica</string>
|
||||
<string name="navigation_drawer_anonymous">Anonimno</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Spremljeno</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Pretplate</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Upravljanje pretplatama</string>
|
||||
<string name="navigation_home">Objave</string>
|
||||
<string name="navigation_inbox">Ulazna pošta, ulazne poruke, ulazni spremnik</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Többközösségi szerkesztő</string>
|
||||
<string name="navigation_drawer_anonymous">Névtelen</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Mentve</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Feliratkozások</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Előfizetések kezelése</string>
|
||||
<string name="navigation_home">Bejegyzések</string>
|
||||
<string name="navigation_inbox">Beérkezett üzenetek</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -52,7 +52,7 @@
|
||||
<string name="explore_result_type_users">Utenti</string>
|
||||
<string name="explore_search_placeholder">Ricerca</string>
|
||||
<string name="home_instance_via">via %1$s</string>
|
||||
<string name="home_listing_title">Tipo di feed</string>
|
||||
<string name="home_listing_title">Feed</string>
|
||||
<string name="home_listing_type_all">Tutti</string>
|
||||
<string name="home_listing_type_local">Locali</string>
|
||||
<string name="home_listing_type_subscribed">Iscrizioni</string>
|
||||
@ -125,7 +125,7 @@
|
||||
<string name="multi_community_editor_title">Editor Multi-comunità</string>
|
||||
<string name="navigation_drawer_anonymous">Anonimo</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Salvati</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Iscrizioni</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Gestione iscrizioni</string>
|
||||
<string name="navigation_home">Post</string>
|
||||
<string name="navigation_inbox">Inbox</string>
|
||||
<string name="navigation_profile">Profilo</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Kelių bendruomenių redaktorius</string>
|
||||
<string name="navigation_drawer_anonymous">Anonimiškas</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Įrašyta</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Prenumeratos</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Tvarkyti prenumeratas</string>
|
||||
<string name="navigation_home">Postai</string>
|
||||
<string name="navigation_inbox">Gautieji</string>
|
||||
<string name="navigation_profile">Profilis</string>
|
||||
|
@ -124,7 +124,7 @@
|
||||
<string name="multi_community_editor_title">Vairāku kopienu redaktors</string>
|
||||
<string name="navigation_drawer_anonymous">Anonīmi</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Saglabāts</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonementi</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Pārvaldīt abonementus</string>
|
||||
<string name="navigation_home">Ieraksti</string>
|
||||
<string name="navigation_inbox">Iesūtne</string>
|
||||
<string name="navigation_profile">Profils</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Editur multikomunitarju</string>
|
||||
<string name="navigation_drawer_anonymous">Anonimu</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Issejvjati</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Sottoskrizzjonijiet</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Immaniġġja l-abbonamenti</string>
|
||||
<string name="navigation_home">Postijet</string>
|
||||
<string name="navigation_inbox">Inbox</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -125,7 +125,7 @@
|
||||
<string name="multi_community_editor_title">Multi-gemeenschappen editor</string>
|
||||
<string name="navigation_drawer_anonymous">Anoniem</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Opgeslagen</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonnementen</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Beheer abonnementen</string>
|
||||
<string name="navigation_home">Berichten</string>
|
||||
<string name="navigation_inbox">Inbox</string>
|
||||
<string name="navigation_profile">Profiel</string>
|
||||
|
@ -125,7 +125,7 @@
|
||||
<string name="multi_community_editor_title">Multisamfunnsredaktør</string>
|
||||
<string name="navigation_drawer_anonymous">Anonym</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Lagret</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonnement</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Administrer abonnementer</string>
|
||||
<string name="navigation_home">Nyheter</string>
|
||||
<string name="navigation_inbox">Inbox</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -124,7 +124,7 @@
|
||||
<string name="multi_community_editor_title">Edytor wielospołecznościowy</string>
|
||||
<string name="navigation_drawer_anonymous">Anonimowy</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Zapisane</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Subskrypcje</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Zarządzanie subskrypcjami</string>
|
||||
<string name="navigation_home">Posty</string>
|
||||
<string name="navigation_inbox">Skrzynka</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Editor multi-comunidad</string>
|
||||
<string name="navigation_drawer_anonymous">Anônimo</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Guardados</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Subscripções</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Gerenciar subscripções</string>
|
||||
<string name="navigation_home">Publicações</string>
|
||||
<string name="navigation_inbox">Caixa</string>
|
||||
<string name="navigation_profile">Perfil</string>
|
||||
|
@ -124,7 +124,7 @@
|
||||
<string name="multi_community_editor_title">Editor multi-comunitate</string>
|
||||
<string name="navigation_drawer_anonymous">Anonim</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Salvate</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonamente</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Gestionare abonamentelor</string>
|
||||
<string name="navigation_home">Postări</string>
|
||||
<string name="navigation_inbox">Inbox</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Редактор для нескольких сообществ</string>
|
||||
<string name="navigation_drawer_anonymous">Анонимные</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Сохранено</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Подписки</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Управление подписками</string>
|
||||
<string name="navigation_home">Записи</string>
|
||||
<string name="navigation_inbox">Входящие</string>
|
||||
<string name="navigation_profile">Профиль</string>
|
||||
|
@ -124,7 +124,7 @@
|
||||
<string name="multi_community_editor_title">Flergemenskapsredaktör</string>
|
||||
<string name="navigation_drawer_anonymous">Anonym</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Sparad</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Prenumerationer</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Hantera prenumerationer</string>
|
||||
<string name="navigation_home">Inlägg</string>
|
||||
<string name="navigation_inbox">Inkorg</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -124,7 +124,7 @@
|
||||
<string name="multi_community_editor_title">Editor pre viaceré komunity</string>
|
||||
<string name="navigation_drawer_anonymous">Anonym</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Uložené</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Predplatné</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Spravovať odbery</string>
|
||||
<string name="navigation_home">Príspevky</string>
|
||||
<string name="navigation_inbox">Doručená pošta</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -122,7 +122,7 @@
|
||||
<string name="multi_community_editor_title">Urejevalnik za več skupnosti</string>
|
||||
<string name="navigation_drawer_anonymous">Anonimno</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Shranjeno</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Naročnine</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Upravljanje naročnin</string>
|
||||
<string name="navigation_home">Objave</string>
|
||||
<string name="navigation_inbox">Prejeto</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -124,7 +124,7 @@
|
||||
<string name="multi_community_editor_title">Redaktor me shumë komunitete</string>
|
||||
<string name="navigation_drawer_anonymous">Në mënyrë anonime</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Ruajtur</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonimet</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Menaxho abonimet</string>
|
||||
<string name="navigation_home">Postimet</string>
|
||||
<string name="navigation_inbox">Posta e ardhur</string>
|
||||
<string name="navigation_profile">Profili</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Çok topluluklu düzenleyici</string>
|
||||
<string name="navigation_drawer_anonymous">Anonymous</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Kaydedildi</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonelikler</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Abonelikleri yönet</string>
|
||||
<string name="navigation_home">Postlar</string>
|
||||
<string name="navigation_inbox">Gelen Kutusu</string>
|
||||
<string name="navigation_profile">Profil</string>
|
||||
|
@ -123,7 +123,7 @@
|
||||
<string name="multi_community_editor_title">Редактор для кількох спільнот</string>
|
||||
<string name="navigation_drawer_anonymous">Анонімний</string>
|
||||
<string name="navigation_drawer_title_bookmarks">Збережено</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Підписки</string>
|
||||
<string name="navigation_drawer_title_subscriptions">Керуйте підписками</string>
|
||||
<string name="navigation_home">Записи</string>
|
||||
<string name="navigation_inbox">Вхідні</string>
|
||||
<string name="navigation_profile">Профіль</string>
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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 = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user