diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt index 396eee5ce..251b0e3fe 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/Account.kt @@ -545,8 +545,8 @@ class Account( return false } - suspend fun updateDisableClientTag(disable: Boolean): Boolean { - if (settings.updateDisableClientTag(disable)) { + suspend fun updateAddClientTag(add: Boolean): Boolean { + if (settings.updateAddClientTag(add)) { sendNewAppSpecificData() return true } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt index 4a5511df5..94dc103b9 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSettings.kt @@ -440,8 +440,8 @@ class AccountSettings( } } - fun updateDisableClientTag(disable: Boolean): Boolean = - if (syncedSettings.security.updateDisableClientTag(disable)) { + fun updateAddClientTag(add: Boolean): Boolean = + if (syncedSettings.security.updateAddClientTag(add)) { saveAccountSettings() true } else { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSyncedSettings.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSyncedSettings.kt index ed4d71e42..6d582ceaa 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSyncedSettings.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSyncedSettings.kt @@ -56,7 +56,7 @@ class AccountSyncedSettings( MutableStateFlow(internalSettings.security.filterSpamFromStrangers), MutableStateFlow(internalSettings.security.maxHashtagLimit), MutableStateFlow(internalSettings.security.sendKind0EventsToLocalRelay), - MutableStateFlow(internalSettings.security.disableClientTag), + MutableStateFlow(internalSettings.security.addClientTag), ) val videoPlayer = AccountVideoPlayerPreferences( @@ -85,7 +85,7 @@ class AccountSyncedSettings( security.filterSpamFromStrangers.value, security.maxHashtagLimit.value, security.sendKind0EventsToLocalRelay.value, - security.disableClientTag.value, + security.addClientTag.value, ), videoPlayer = AccountVideoPlayerPreferencesInternal(videoPlayer.buttonItems.value), ) @@ -146,8 +146,8 @@ class AccountSyncedSettings( security.sendKind0EventsToLocalRelay.tryEmit(syncedSettingsInternal.security.sendKind0EventsToLocalRelay) } - if (security.disableClientTag.value != syncedSettingsInternal.security.disableClientTag) { - security.disableClientTag.tryEmit(syncedSettingsInternal.security.disableClientTag) + if (security.addClientTag.value != syncedSettingsInternal.security.addClientTag) { + security.addClientTag.tryEmit(syncedSettingsInternal.security.addClientTag) } val newVideoPlayerButtonItems = @@ -247,7 +247,7 @@ class AccountSecurityPreferences( var filterSpamFromStrangers: MutableStateFlow = MutableStateFlow(true), val maxHashtagLimit: MutableStateFlow = MutableStateFlow(5), var sendKind0EventsToLocalRelay: MutableStateFlow = MutableStateFlow(false), - val disableClientTag: MutableStateFlow = MutableStateFlow(false), + val addClientTag: MutableStateFlow = MutableStateFlow(true), ) { fun updateShowSensitiveContent(show: Boolean?): Boolean { if (showSensitiveContent.value != show) { @@ -297,9 +297,9 @@ class AccountSecurityPreferences( false } - fun updateDisableClientTag(disable: Boolean): Boolean = - if (disable != disableClientTag.value) { - disableClientTag.tryEmit(disable) + fun updateAddClientTag(add: Boolean): Boolean = + if (add != addClientTag.value) { + addClientTag.tryEmit(add) true } else { false diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSyncedSettingsInternal.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSyncedSettingsInternal.kt index 37c277a11..6273c2a42 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSyncedSettingsInternal.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/AccountSyncedSettingsInternal.kt @@ -161,5 +161,5 @@ class AccountSecurityPreferencesInternal( var filterSpamFromStrangers: Boolean = true, val maxHashtagLimit: Int = 5, var sendKind0EventsToLocalRelay: Boolean = false, - var disableClientTag: Boolean = false, + var addClientTag: Boolean = true, ) diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/accountsCache/AccountCacheState.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/accountsCache/AccountCacheState.kt index 655af6970..3233e9377 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/model/accountsCache/AccountCacheState.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/model/accountsCache/AccountCacheState.kt @@ -139,7 +139,7 @@ class AccountCacheState( NostrSignerWithClientTag( inner = signer, clientName = CLIENT_TAG_NAME, - disabled = { accountSettings.syncedSettings.security.disableClientTag.value }, + disabled = { !accountSettings.syncedSettings.security.addClientTag.value }, ) val accountDir = File(rootFilesDir(), "accounts/${signer.pubKey}").apply { mkdirs() } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt index 5ad6de3d0..2241e3739 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -1193,7 +1193,7 @@ class AccountViewModel( fun updateReportWarningThreshold(threshold: Int) = launchSigner { account.updateReportWarningThreshold(threshold) } - fun updateDisableClientTag(disable: Boolean) = launchSigner { account.updateDisableClientTag(disable) } + fun updateAddClientTag(add: Boolean) = launchSigner { account.updateAddClientTag(add) } fun updateFilterSpam(filterSpam: Boolean) = launchSigner { diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ComposeSettingsScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ComposeSettingsScreen.kt index 1c5baba82..237bc4278 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ComposeSettingsScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/ComposeSettingsScreen.kt @@ -33,12 +33,14 @@ import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.tooling.preview.Preview +import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.vitorpamplona.amethyst.R import com.vitorpamplona.amethyst.model.BooleanType import com.vitorpamplona.amethyst.model.UiSettingsFlow import com.vitorpamplona.amethyst.ui.navigation.navs.INav import com.vitorpamplona.amethyst.ui.navigation.topbars.TopBarWithBackButton import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel +import com.vitorpamplona.amethyst.ui.screen.loggedIn.mockAccountViewModel import com.vitorpamplona.amethyst.ui.stringRes import com.vitorpamplona.amethyst.ui.theme.RowColSpacing import com.vitorpamplona.amethyst.ui.theme.Size10dp @@ -57,7 +59,7 @@ fun ComposeSettingsScreen( }, ) { Column(Modifier.padding(it)) { - ComposeSettingsContent(accountViewModel.settings.uiSettingsFlow) + ComposeSettingsContent(accountViewModel.settings.uiSettingsFlow, accountViewModel) } } } @@ -66,12 +68,15 @@ fun ComposeSettingsScreen( @Composable fun ComposeSettingsScreenPreview() { ThemeComparisonRow { - ComposeSettingsContent(UiSettingsFlow()) + ComposeSettingsContent(UiSettingsFlow(), mockAccountViewModel()) } } @Composable -fun ComposeSettingsContent(sharedPrefs: UiSettingsFlow) { +fun ComposeSettingsContent( + sharedPrefs: UiSettingsFlow, + accountViewModel: AccountViewModel, +) { Column( Modifier .fillMaxSize() @@ -95,6 +100,24 @@ fun ComposeSettingsContent(sharedPrefs: UiSettingsFlow) { R.string.tracked_broadcasts_setting_title, R.string.tracked_broadcasts_setting_description, ) + AddClientTagRow(accountViewModel) + } +} + +@Composable +private fun AddClientTagRow(accountViewModel: AccountViewModel) { + val addClientTag by accountViewModel.account.settings.syncedSettings.security + .addClientTag + .collectAsStateWithLifecycle() + + SettingsRow( + R.string.add_client_tag_title, + R.string.add_client_tag_explainer, + ) { + Switch( + checked = addClientTag, + onCheckedChange = accountViewModel::updateAddClientTag, + ) } } diff --git a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityFiltersScreen.kt b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityFiltersScreen.kt index c040be314..11faac480 100644 --- a/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityFiltersScreen.kt +++ b/amethyst/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/settings/SecurityFiltersScreen.kt @@ -84,8 +84,6 @@ private fun SecurityPreferencesSection(accountViewModel: AccountViewModel) { SettingsDivider() HideCommunityViolationsTile(accountViewModel) SettingsDivider() - DisableClientTagTile(accountViewModel) - SettingsDivider() WarnReportsTile(accountViewModel) SettingsDivider() MaxHashtagsTile(accountViewModel) @@ -147,21 +145,6 @@ private fun HideCommunityViolationsTile(accountViewModel: AccountViewModel) { ) } -@Composable -private fun DisableClientTagTile(accountViewModel: AccountViewModel) { - val disableClientTag by accountViewModel.account.settings.syncedSettings.security - .disableClientTag - .collectAsStateWithLifecycle() - - SwitchTile( - icon = MaterialSymbols.Code, - title = R.string.disable_client_tag_title, - description = R.string.disable_client_tag_explainer, - checked = disableClientTag, - onCheckedChange = accountViewModel::updateDisableClientTag, - ) -} - @Composable private fun WarnReportsTile(accountViewModel: AccountViewModel) { val security = accountViewModel.account.settings.syncedSettings.security diff --git a/amethyst/src/main/res/values-cs-rCZ/strings.xml b/amethyst/src/main/res/values-cs-rCZ/strings.xml index acf9f6b8d..759897403 100644 --- a/amethyst/src/main/res/values-cs-rCZ/strings.xml +++ b/amethyst/src/main/res/values-cs-rCZ/strings.xml @@ -1122,8 +1122,6 @@ Varovat, když příspěvky obsahují hlášení od vašich sledovaných osob Filtrovat spam Skryje příspěvky od cizinců, které byly přesně stejné 5 a více krát - Nepřidávat klientský tag k mým událostem - Pokud je povoleno, Amethyst nebude k tvým publikovaným událostem přidávat klientský tag NIP-89. Upozornit na hlášení Zobrazí varovnou zprávu, když příspěvky mají 5 nebo více hlášení od vašich sledovaných Práh varování o nahlášeních diff --git a/amethyst/src/main/res/values-de-rDE/strings.xml b/amethyst/src/main/res/values-de-rDE/strings.xml index c38cd8f4e..e98f44553 100644 --- a/amethyst/src/main/res/values-de-rDE/strings.xml +++ b/amethyst/src/main/res/values-de-rDE/strings.xml @@ -1115,8 +1115,6 @@ anz der Bedingungen ist erforderlich Warnung bei Meldungen von deinen Abonnements Spam filtern Versteckt Beiträge von Fremden, die 5 oder mehr Male genau die gleichen waren - Kein Client-Tag zu meinen Ereignissen hinzufügen - Wenn aktiviert, fügt Amethyst deinen veröffentlichten Ereignissen kein NIP-89 Client-Tag hinzu. Bei Berichten warnen Zeigt eine Warnmeldung an, wenn die Beiträge 5 oder mehr Berichte von den folgenden Beiträgen enthalten Warnschwelle für Meldungen diff --git a/amethyst/src/main/res/values-hi-rIN/strings.xml b/amethyst/src/main/res/values-hi-rIN/strings.xml index 70a80a3fd..6610b655f 100644 --- a/amethyst/src/main/res/values-hi-rIN/strings.xml +++ b/amethyst/src/main/res/values-hi-rIN/strings.xml @@ -1100,8 +1100,6 @@ चेतावनी दें जब पत्र सूचित किये गये हों आपके द्वारा अनुचरित व्यक्तियों से कचरालेख छलनी अज्ञात लोगों से पत्र छिपाएँ जो निरन्तर 5 अथवा अधिक बार यथावत समान थे - मेरे घटनाओं में ग्राहक सूचक ना जोडें - जब सक्षम अमेथिस्ट निप॰८९ ग्राहक सूचक नहीं जोडेगा आपके द्वारा प्रकाशित घटनाओं में। सूचनाएँ प्राप्त होने पर चेतावनी दें चेतावनी सन्देश दिखाता है जब प्रकाशित पत्र 5 अथवा अधिक बार सूचित हो आपके द्वारा अनुचरित लेखाओं से चेतावनी सीमा सूचना diff --git a/amethyst/src/main/res/values-hu-rHU/strings.xml b/amethyst/src/main/res/values-hu-rHU/strings.xml index dcee038b4..7d5138e28 100644 --- a/amethyst/src/main/res/values-hu-rHU/strings.xml +++ b/amethyst/src/main/res/values-hu-rHU/strings.xml @@ -1114,8 +1114,6 @@ Figyelmeztessen amikor a bejegyzések jelentve vannak azok által akiket követek Kéretlen tartalomszűrő Elrejti az ismeretlen felhasználók hozzászólásait, amelyek pontosan ugyanazok voltak 5 vagy több alkalommal - Ne legyenek megjelölve az eseményeim klienscímkével - Ha engedélyezve van, akkor az Amethyst nem fűz NIP-89 klienscímkét az Ön által közzétett eseményekhez. Figyelmeztetés a jelentésekre Figyelmeztető üzenetet jelenít meg, ha az Ön követői bejelentést tettek bejegyzésekről vagy profilokról Jelentési figyelmeztetés küszöbértéke diff --git a/amethyst/src/main/res/values-nl-rNL/strings.xml b/amethyst/src/main/res/values-nl-rNL/strings.xml index a40aeaf9a..7e2d48b7e 100644 --- a/amethyst/src/main/res/values-nl-rNL/strings.xml +++ b/amethyst/src/main/res/values-nl-rNL/strings.xml @@ -1078,8 +1078,6 @@ Waarschuwen bij rapportages van volgers Spamfilter Verbergt identieke berichten van onbekenden die 5 keer of vaker voorkomen - Geen client-tag toevoegen aan mijn events - Wanneer ingeschakeld voegt Amethyst geen NIP-89 client-tag toe aan events die je publiceert. Waarschuwen bij rapportages Toont waarschuwing wanneer een bericht 5 of meer rapportages van je volgers heeft Gevoelige inhoud tonen diff --git a/amethyst/src/main/res/values-pl-rPL/strings.xml b/amethyst/src/main/res/values-pl-rPL/strings.xml index 1d0e9e81f..21ee2a8b7 100644 --- a/amethyst/src/main/res/values-pl-rPL/strings.xml +++ b/amethyst/src/main/res/values-pl-rPL/strings.xml @@ -1124,8 +1124,6 @@ Zaplanowane posty z innych kont nie zostaną opublikowane, dopóki to konto jest Ostrzegaj, gdy posty zostały zgłoszone przez osoby które obserwujesz Filtr spamu Ukrywa posty od nieznajomych, które były dokładnie takie same przez 5 lub więcej razy - Nie dodawaj tagu klienta do moich publikacji - Po włączeniu tej opcji Amethyst nie będzie dołączać tagu klienta NIP-89 do Twoich publikacji. Ostrzeżenie o zgłoszeniach Wyświetla komunikat ostrzegawczy, gdy posty zostały zgłoszone przez 5 lub więcej obserwowanych osób Zgłoś próg ostrzegawczy diff --git a/amethyst/src/main/res/values-pt-rBR/strings.xml b/amethyst/src/main/res/values-pt-rBR/strings.xml index 5cba6e077..fb3af86a8 100644 --- a/amethyst/src/main/res/values-pt-rBR/strings.xml +++ b/amethyst/src/main/res/values-pt-rBR/strings.xml @@ -1116,8 +1116,6 @@ Avise quando as postagens tiverem denuncias de seus seguidores Filtrar spam Esconde publicações de desconhecidos que eram exatamente o mesmo por 5 ou mais vezes - Não adicionar tag de cliente aos meus eventos - Quando ativado, o Amethyst não anexará uma tag de cliente NIP-89 aos eventos que você publicar. Avisar em relatórios Mostra uma mensagem de aviso quando as postagens tiverem 5 ou mais relatórios de suas seguintes Limite de aviso de denúncias diff --git a/amethyst/src/main/res/values-sv-rSE/strings.xml b/amethyst/src/main/res/values-sv-rSE/strings.xml index a77c3b1fb..f5949a68b 100644 --- a/amethyst/src/main/res/values-sv-rSE/strings.xml +++ b/amethyst/src/main/res/values-sv-rSE/strings.xml @@ -1109,8 +1109,6 @@ Varna när inlägg har rapporter från dina följare Filtrera spam Döljer inlägg från främlingar som var exakt samma för 5 eller fler gånger - Lägg inte till klienttagg i mina händelser - När aktiverat kommer Amethyst inte att lägga till en NIP-89 klienttagg till händelser du publicerar. Varna vid rapporter Visar ett varningsmeddelande när inlägg har 5 eller fler rapporter från följande Tröskel för rapportvarning diff --git a/amethyst/src/main/res/values-zh-rCN/strings.xml b/amethyst/src/main/res/values-zh-rCN/strings.xml index bd911d708..719635450 100644 --- a/amethyst/src/main/res/values-zh-rCN/strings.xml +++ b/amethyst/src/main/res/values-zh-rCN/strings.xml @@ -1107,8 +1107,6 @@ 当帖子有你的关注的报告时警告 过滤垃圾信息 隐藏陌生人的五次或五次以上完全相同的帖子 - 不要将客户标签添加到我的事件 - 启用时,Amethyst 将不会在您发布的事件中附加一个 NIP-89 客户端标签。 举报警示 当帖子有来自你关注的五次及以上举报时显示警告消息 举报警告阈值 diff --git a/amethyst/src/main/res/values/strings.xml b/amethyst/src/main/res/values/strings.xml index 3f6fbf18c..5e87fff51 100644 --- a/amethyst/src/main/res/values/strings.xml +++ b/amethyst/src/main/res/values/strings.xml @@ -1232,8 +1232,8 @@ Filter spam Hides posts from strangers that were exactly the same for 5 or more times - Don\'t add client tag to my events - When enabled, Amethyst will not append a NIP-89 client tag to events you publish. + Add client tag to my events + When enabled, Amethyst appends a NIP-89 client tag to events you publish. Warn on reports Shows a warning message when posts or profiles have reports from your follows Report warning threshold