Removes dependency on a modifier for SettingsCategory

This commit is contained in:
Vitor Pamplona
2025-04-24 16:58:40 -04:00
parent 2d64eb0cb3
commit 723b4b5e9f
6 changed files with 45 additions and 58 deletions
@@ -67,6 +67,8 @@ import com.vitorpamplona.amethyst.ui.stringRes
import com.vitorpamplona.amethyst.ui.theme.DoubleHorzSpacer import com.vitorpamplona.amethyst.ui.theme.DoubleHorzSpacer
import com.vitorpamplona.amethyst.ui.theme.DoubleVertPadding import com.vitorpamplona.amethyst.ui.theme.DoubleVertPadding
import com.vitorpamplona.amethyst.ui.theme.FeedPadding import com.vitorpamplona.amethyst.ui.theme.FeedPadding
import com.vitorpamplona.amethyst.ui.theme.SettingsCategoryFirstModifier
import com.vitorpamplona.amethyst.ui.theme.SettingsCategorySpacingModifier
import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer import com.vitorpamplona.amethyst.ui.theme.StdVertSpacer
import com.vitorpamplona.amethyst.ui.theme.grayText import com.vitorpamplona.amethyst.ui.theme.grayText
@@ -184,7 +186,7 @@ fun AllMediaBody(
SettingsCategory( SettingsCategory(
stringRes(R.string.media_servers_nip96_section), stringRes(R.string.media_servers_nip96_section),
stringRes(R.string.media_servers_nip96_explainer), stringRes(R.string.media_servers_nip96_explainer),
Modifier.padding(bottom = 8.dp), SettingsCategoryFirstModifier,
) )
} }
@@ -205,6 +207,7 @@ fun AllMediaBody(
SettingsCategory( SettingsCategory(
stringRes(R.string.media_servers_blossom_section), stringRes(R.string.media_servers_blossom_section),
stringRes(R.string.media_servers_blossom_explainer), stringRes(R.string.media_servers_blossom_explainer),
SettingsCategorySpacingModifier,
) )
} }
@@ -226,7 +229,8 @@ fun AllMediaBody(
SettingsCategoryWithButton( SettingsCategoryWithButton(
title = stringRes(id = R.string.built_in_media_servers_title), title = stringRes(id = R.string.built_in_media_servers_title),
description = stringRes(id = R.string.built_in_servers_description), description = stringRes(id = R.string.built_in_servers_description),
action = { modifier = SettingsCategorySpacingModifier,
) {
OutlinedButton( OutlinedButton(
onClick = { onClick = {
nip96ServersViewModel.addServerList( nip96ServersViewModel.addServerList(
@@ -240,8 +244,7 @@ fun AllMediaBody(
) { ) {
Text(text = stringRes(id = R.string.use_default_servers)) Text(text = stringRes(id = R.string.use_default_servers))
} }
}, }
)
} }
itemsIndexed( itemsIndexed(
it, it,
@@ -60,7 +60,6 @@ import com.vitorpamplona.amethyst.service.OnlineChecker
import com.vitorpamplona.amethyst.service.ZapPaymentHandler import com.vitorpamplona.amethyst.service.ZapPaymentHandler
import com.vitorpamplona.amethyst.service.checkNotInMainThread import com.vitorpamplona.amethyst.service.checkNotInMainThread
import com.vitorpamplona.amethyst.service.lnurl.LightningAddressResolver import com.vitorpamplona.amethyst.service.lnurl.LightningAddressResolver
import com.vitorpamplona.amethyst.service.proxyPort.ProxyPortFlow
import com.vitorpamplona.amethyst.ui.actions.Dao import com.vitorpamplona.amethyst.ui.actions.Dao
import com.vitorpamplona.amethyst.ui.components.UrlPreviewState import com.vitorpamplona.amethyst.ui.components.UrlPreviewState
import com.vitorpamplona.amethyst.ui.components.toasts.ToastManager import com.vitorpamplona.amethyst.ui.components.toasts.ToastManager
@@ -155,21 +154,6 @@ class AccountViewModel(
val newNotesPreProcessor = PrecacheNewNotesProcessor(account, LocalCache) val newNotesPreProcessor = PrecacheNewNotesProcessor(account, LocalCache)
val proxyPortLogic =
ProxyPortFlow(
account.settings.torSettings.torType,
account.settings.torSettings.externalSocksPort,
Amethyst.instance.torManager.status,
).status.stateIn(
viewModelScope,
SharingStarted.WhileSubscribed(30000),
ProxyPortFlow.computePort(
account.settings.torSettings.torType.value,
account.settings.torSettings.externalSocksPort.value,
Amethyst.instance.torManager.status.value,
),
)
var firstRoute: Route? = null var firstRoute: Route? = null
// TODO: contact lists are not notes yet // TODO: contact lists are not notes yet
@@ -71,6 +71,8 @@ import com.vitorpamplona.amethyst.ui.screen.loggedIn.relays.common.relaySetupInf
import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.stringRes
import com.vitorpamplona.amethyst.ui.theme.DoubleVertSpacer import com.vitorpamplona.amethyst.ui.theme.DoubleVertSpacer
import com.vitorpamplona.amethyst.ui.theme.MinHorzSpacer import com.vitorpamplona.amethyst.ui.theme.MinHorzSpacer
import com.vitorpamplona.amethyst.ui.theme.SettingsCategoryFirstModifier
import com.vitorpamplona.amethyst.ui.theme.SettingsCategorySpacingModifier
import com.vitorpamplona.amethyst.ui.theme.StdHorzSpacer import com.vitorpamplona.amethyst.ui.theme.StdHorzSpacer
import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonColumn import com.vitorpamplona.amethyst.ui.theme.ThemeComparisonColumn
import com.vitorpamplona.amethyst.ui.theme.placeholderText import com.vitorpamplona.amethyst.ui.theme.placeholderText
@@ -208,7 +210,7 @@ private fun ChannelMetadataScaffold(
SettingsCategory( SettingsCategory(
stringRes(R.string.public_chat_title), stringRes(R.string.public_chat_title),
stringRes(R.string.public_chat_explainer), stringRes(R.string.public_chat_explainer),
Modifier.padding(bottom = 8.dp), SettingsCategoryFirstModifier,
) )
ChannelName(postViewModel) ChannelName(postViewModel)
@@ -224,6 +226,7 @@ private fun ChannelMetadataScaffold(
SettingsCategory( SettingsCategory(
stringRes(R.string.public_chat_relays_title), stringRes(R.string.public_chat_relays_title),
stringRes(R.string.public_chat_relays_explainer), stringRes(R.string.public_chat_relays_explainer),
SettingsCategorySpacingModifier,
) )
} }
@@ -20,6 +20,7 @@
*/ */
package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays package com.vitorpamplona.amethyst.ui.screen.loggedIn.relays
import android.R.attr.action
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Row
@@ -73,6 +74,8 @@ import com.vitorpamplona.amethyst.ui.stringRes
import com.vitorpamplona.amethyst.ui.theme.FeedPadding import com.vitorpamplona.amethyst.ui.theme.FeedPadding
import com.vitorpamplona.amethyst.ui.theme.MinHorzSpacer import com.vitorpamplona.amethyst.ui.theme.MinHorzSpacer
import com.vitorpamplona.amethyst.ui.theme.RowColSpacing import com.vitorpamplona.amethyst.ui.theme.RowColSpacing
import com.vitorpamplona.amethyst.ui.theme.SettingsCategoryFirstModifier
import com.vitorpamplona.amethyst.ui.theme.SettingsCategorySpacingModifier
import com.vitorpamplona.amethyst.ui.theme.StdHorzSpacer import com.vitorpamplona.amethyst.ui.theme.StdHorzSpacer
import com.vitorpamplona.amethyst.ui.theme.grayText import com.vitorpamplona.amethyst.ui.theme.grayText
import com.vitorpamplona.ammolite.relays.Constants import com.vitorpamplona.ammolite.relays.Constants
@@ -196,7 +199,7 @@ fun MappedAllRelayListView(
SettingsCategory( SettingsCategory(
stringRes(R.string.public_home_section), stringRes(R.string.public_home_section),
stringRes(R.string.public_home_section_explainer), stringRes(R.string.public_home_section_explainer),
Modifier.padding(bottom = 8.dp), SettingsCategoryFirstModifier,
) )
} }
renderNip65HomeItems(homeFeedState, nip65ViewModel, accountViewModel, newNav) renderNip65HomeItems(homeFeedState, nip65ViewModel, accountViewModel, newNav)
@@ -205,6 +208,7 @@ fun MappedAllRelayListView(
SettingsCategory( SettingsCategory(
stringRes(R.string.public_notif_section), stringRes(R.string.public_notif_section),
stringRes(R.string.public_notif_section_explainer), stringRes(R.string.public_notif_section_explainer),
SettingsCategorySpacingModifier,
) )
} }
renderNip65NotifItems(notifFeedState, nip65ViewModel, accountViewModel, newNav) renderNip65NotifItems(notifFeedState, nip65ViewModel, accountViewModel, newNav)
@@ -213,6 +217,7 @@ fun MappedAllRelayListView(
SettingsCategoryWithButton( SettingsCategoryWithButton(
stringRes(R.string.private_inbox_section), stringRes(R.string.private_inbox_section),
stringRes(R.string.private_inbox_section_explainer), stringRes(R.string.private_inbox_section_explainer),
SettingsCategorySpacingModifier,
action = { action = {
ResetDMRelays(dmViewModel) ResetDMRelays(dmViewModel)
}, },
@@ -224,6 +229,7 @@ fun MappedAllRelayListView(
SettingsCategory( SettingsCategory(
stringRes(R.string.private_outbox_section), stringRes(R.string.private_outbox_section),
stringRes(R.string.private_outbox_section_explainer), stringRes(R.string.private_outbox_section_explainer),
SettingsCategorySpacingModifier,
) )
} }
renderPrivateOutboxItems(privateOutboxFeedState, privateOutboxViewModel, accountViewModel, newNav) renderPrivateOutboxItems(privateOutboxFeedState, privateOutboxViewModel, accountViewModel, newNav)
@@ -232,10 +238,10 @@ fun MappedAllRelayListView(
SettingsCategoryWithButton( SettingsCategoryWithButton(
stringRes(R.string.search_section), stringRes(R.string.search_section),
stringRes(R.string.search_section_explainer), stringRes(R.string.search_section_explainer),
action = { SettingsCategorySpacingModifier,
) {
ResetSearchRelays(searchViewModel) ResetSearchRelays(searchViewModel)
}, }
)
} }
renderSearchItems(searchFeedState, searchViewModel, accountViewModel, newNav) renderSearchItems(searchFeedState, searchViewModel, accountViewModel, newNav)
@@ -243,6 +249,7 @@ fun MappedAllRelayListView(
SettingsCategory( SettingsCategory(
stringRes(R.string.local_section), stringRes(R.string.local_section),
stringRes(R.string.local_section_explainer), stringRes(R.string.local_section_explainer),
SettingsCategorySpacingModifier,
) )
} }
renderLocalItems(localFeedState, localViewModel, accountViewModel, newNav) renderLocalItems(localFeedState, localViewModel, accountViewModel, newNav)
@@ -251,10 +258,10 @@ fun MappedAllRelayListView(
SettingsCategoryWithButton( SettingsCategoryWithButton(
stringRes(R.string.kind_3_section), stringRes(R.string.kind_3_section),
stringRes(R.string.kind_3_section_description), stringRes(R.string.kind_3_section_description),
action = { SettingsCategorySpacingModifier,
) {
ResetKind3Relays(kind3ViewModel) ResetKind3Relays(kind3ViewModel)
}, }
)
} }
renderKind3Items(kind3FeedState, kind3ViewModel, accountViewModel, newNav, relayToAdd) renderKind3Items(kind3FeedState, kind3ViewModel, accountViewModel, newNav, relayToAdd)
@@ -263,6 +270,7 @@ fun MappedAllRelayListView(
SettingsCategory( SettingsCategory(
stringRes(R.string.kind_3_recommended_section), stringRes(R.string.kind_3_recommended_section),
stringRes(R.string.kind_3_recommended_section_description), stringRes(R.string.kind_3_recommended_section_description),
SettingsCategorySpacingModifier,
) )
} }
renderKind3ProposalItems(kind3Proposals, kind3ViewModel, accountViewModel, newNav) renderKind3ProposalItems(kind3Proposals, kind3ViewModel, accountViewModel, newNav)
@@ -320,7 +328,7 @@ fun ResetDMRelays(postViewModel: DMRelayListViewModel) {
fun SettingsCategory( fun SettingsCategory(
title: String, title: String,
description: String? = null, description: String? = null,
modifier: Modifier = Modifier.padding(top = 24.dp, bottom = 8.dp), modifier: Modifier,
) { ) {
Column(modifier) { Column(modifier) {
Text( Text(
@@ -342,8 +350,8 @@ fun SettingsCategory(
fun SettingsCategoryWithButton( fun SettingsCategoryWithButton(
title: String, title: String,
description: String? = null, description: String? = null,
modifier: Modifier,
action: @Composable () -> Unit, action: @Composable () -> Unit,
modifier: Modifier = Modifier.padding(top = 24.dp, bottom = 8.dp),
) { ) {
Row(modifier, horizontalArrangement = RowColSpacing) { Row(modifier, horizontalArrangement = RowColSpacing) {
Column(modifier = Modifier.weight(1f)) { Column(modifier = Modifier.weight(1f)) {
@@ -314,3 +314,6 @@ val PostKeyboard =
autoCorrectEnabled = true, autoCorrectEnabled = true,
capitalization = KeyboardCapitalization.Sentences, capitalization = KeyboardCapitalization.Sentences,
) )
val SettingsCategoryFirstModifier = Modifier.padding(bottom = 8.dp)
val SettingsCategorySpacingModifier = Modifier.padding(top = 24.dp, bottom = 8.dp)
@@ -172,20 +172,6 @@ val LightReplyBorderModifier =
.clip(shape = QuoteBorder) .clip(shape = QuoteBorder)
.border(1.dp, LightSubtleBorder, QuoteBorder) .border(1.dp, LightSubtleBorder, QuoteBorder)
val DarkVideoBorderModifier =
Modifier
.padding(top = 5.dp)
.fillMaxWidth()
.clip(shape = RectangleShape)
.border(1.dp, DarkSubtleBorder, RectangleShape)
val LightVideoBorderModifier =
Modifier
.padding(top = 2.dp, bottom = 0.dp, start = 0.dp, end = 0.dp)
.fillMaxWidth()
.clip(shape = RectangleShape)
.border(1.dp, LightSubtleBorder, RectangleShape)
val DarkInnerPostBorderModifier = val DarkInnerPostBorderModifier =
Modifier Modifier
.padding(vertical = 5.dp) .padding(vertical = 5.dp)