From 1f1a7eb12c85823fce7d2da70cad2e03be1e183a Mon Sep 17 00:00:00 2001 From: davotoula Date: Sat, 6 Sep 2025 15:49:57 +0200 Subject: [PATCH 1/6] update secp256k1KmpJniAndroid to 0.19.0 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ffc728e65..535ed3a99 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,7 +40,7 @@ navigationCompose = "2.9.3" okhttp = "5.1.0" runner = "1.7.0" rfc3986 = "0.1.2" -secp256k1KmpJniAndroid = "0.18.0" +secp256k1KmpJniAndroid = "0.19.0" securityCryptoKtx = "1.1.0" spotless = "7.2.1" torAndroid = "0.4.8.17.2" From 463762f2684e9f59002ef62f46fe06cdf93956c6 Mon Sep 17 00:00:00 2001 From: davotoula Date: Fri, 5 Sep 2025 19:36:57 +0200 Subject: [PATCH 2/6] added PT, CZ, SE, GE translations --- amethyst/src/main/res/values-cs/strings.xml | 16 ++++++++++++++++ amethyst/src/main/res/values-de/strings.xml | 15 +++++++++++++++ amethyst/src/main/res/values-pt-rBR/strings.xml | 15 +++++++++++++++ amethyst/src/main/res/values-sv-rSE/strings.xml | 15 +++++++++++++++ 4 files changed, 61 insertions(+) diff --git a/amethyst/src/main/res/values-cs/strings.xml b/amethyst/src/main/res/values-cs/strings.xml index 223c59d5f..7d48a433e 100644 --- a/amethyst/src/main/res/values-cs/strings.xml +++ b/amethyst/src/main/res/values-cs/strings.xml @@ -936,4 +936,20 @@ Možnost %1$s z %2$s Filtr kanálu, %1$s vybráno Filtr kanálu, %1$s + Kanál + Fronta moderace + Neplatné NIP-47 URI + URI %1$s není platné přihlašovací URI NIP-47. + Uživatel zveřejňuje svůj obsah na těchto přenašečích + Uživatel přijímá oznámení na těchto přenašečích + Uživatel přijímá soukromé zprávy na těchto přenašečích + Tato zpráva zmizí za %1$d dní + Nahrát video + Nalezen záznam o pádu + Chcete poslat poslední záznam o pádu do Amethystu v soukromé zprávě? Žádné osobní údaje nebudou sdíleny + Odeslat + O nás + Pokyny + Moderátoři + Otevřít rozbalovací nabídku diff --git a/amethyst/src/main/res/values-de/strings.xml b/amethyst/src/main/res/values-de/strings.xml index a450fb7a2..6476be0e7 100644 --- a/amethyst/src/main/res/values-de/strings.xml +++ b/amethyst/src/main/res/values-de/strings.xml @@ -977,4 +977,19 @@ anz der Bedingungen ist erforderlich Option %1$s von %2$s Feed-Filter, %1$s ausgewählt Feed-Filter, %1$s + Feed + Moderationswarteschlange + Ungültige NIP-47 URI + Die URI %1$s ist keine gültige NIP-47 Anmelde-URI. + Der Benutzer veröffentlicht seine Inhalte auf diesen Relays + Der Benutzer erhält Benachrichtigungen auf diesen Relays + Der Benutzer empfängt Direktnachrichten auf diesen Relays + Diese Nachricht verschwindet in %1$d Tagen + Absturzbericht gefunden + Möchten Sie den letzten Absturzbericht per Direktnachricht an Amethyst senden? Es werden keine persönlichen Daten weitergegeben + Senden + Über uns + Richtlinien + Moderatoren + Dropdown-Menü öffnen diff --git a/amethyst/src/main/res/values-pt-rBR/strings.xml b/amethyst/src/main/res/values-pt-rBR/strings.xml index 05590d68f..b85778316 100644 --- a/amethyst/src/main/res/values-pt-rBR/strings.xml +++ b/amethyst/src/main/res/values-pt-rBR/strings.xml @@ -1016,4 +1016,19 @@ Opção %1$s de %2$s Filtro de feed, %1$s selecionado Filtro de feed, %1$s + Feed + Fila de moderação + URI NIP-47 inválido + O URI %1$s não é um URI de login NIP-47 válido. + O usuário está publicando seu conteúdo nesses relays + O usuário está recebendo notificações nesses relays + O usuário recebe mensagens diretas (DMs) nesses relays + Esta mensagem desaparecerá em %1$d dias + Relatório de falha encontrado + Gostaria de enviar o relatório de falha recente para o Amethyst em uma DM? Nenhuma informação pessoal será compartilhada + Enviar + Sobre nós + Diretrizes + Moderadores + Abrir menu suspenso diff --git a/amethyst/src/main/res/values-sv-rSE/strings.xml b/amethyst/src/main/res/values-sv-rSE/strings.xml index 7d5512a82..69893391f 100644 --- a/amethyst/src/main/res/values-sv-rSE/strings.xml +++ b/amethyst/src/main/res/values-sv-rSE/strings.xml @@ -1015,4 +1015,19 @@ Alternativ %1$s av %2$s Flödesfilter, %1$s valt Flödesfilter, %1$s + Flöde + Moderationskö + Ogiltig NIP-47 URI + URI %1$s är inte en giltig NIP-47 inloggnings-URI. + Användaren publicerar sitt innehåll på dessa reläer + Användaren tar emot aviseringar på dessa reläer + Användaren tar emot DM:s på dessa reläer + Detta meddelande försvinner om %1$d dagar + Kraschrapport hittad + Vill du skicka den senaste kraschrapporten till Amethyst i ett DM? Ingen personlig information kommer att delas + Skicka + Om oss + Riktlinjer + Moderatorer + Öppna rullgardinsmeny From cf9d630032765c7d0a58cfe0448fe035985faea2 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Mon, 8 Sep 2025 06:03:52 +0000 Subject: [PATCH 3/6] New Crowdin translations by GitHub Action --- .../src/main/res/values-pt-rBR/strings.xml | 23 +++++++++--------- .../src/main/res/values-sv-rSE/strings.xml | 24 +++++++++---------- 2 files changed, 23 insertions(+), 24 deletions(-) diff --git a/amethyst/src/main/res/values-pt-rBR/strings.xml b/amethyst/src/main/res/values-pt-rBR/strings.xml index b85778316..d760646aa 100644 --- a/amethyst/src/main/res/values-pt-rBR/strings.xml +++ b/amethyst/src/main/res/values-pt-rBR/strings.xml @@ -164,6 +164,7 @@ Usuários Novos Tópicos Conversas + Fila de moderação Notas Respostas Suas @@ -654,6 +655,8 @@ Explicação aos membros Mudando o nome dos novos objetivos. Colar da área de transferência + URI NIP-47 inválido + O URI %1$s não é um URI de login NIP-47 válido. Para a interface do aplicativo Tema Escuro, Claro ou Padrão Carregar automaticamente imagens e GIFs @@ -671,6 +674,9 @@ Mídia adicionada à sua Galeria de Perfil Criado em Regras + Sobre nós + Diretrizes + Moderadores Login com Amber O que você está fazendo? Erro ao analisar mensagem de erro @@ -883,10 +889,13 @@ Envio de DM Configurações de Relay Relés Públicos de Casa + O usuário está publicando seu conteúdo nesses relays Esse tipo de relé armazena todo o seu conteúdo. Amethyst enviará suas postagens aqui e outros usarão esses relés para encontrar seu conteúdo. Insira entre 1–3 relés. Eles podem ser relés pessoais, relés pagos ou relés públicos. Relés Públicos de Caixa de Entrada + O usuário está recebendo notificações nesses relays Esse tipo de relé recebe todas as respostas, comentários, curtidas e zaps para suas postagens. Insira entre 1–3 relés e certifique-se de que aceitem postagens de qualquer pessoa. Relés de Caixa de Entrada de DM + O usuário recebe mensagens diretas (DMs) nesses relays Insira entre 1–3 relés para servir como sua caixa de entrada privada. Outros usarão esses relés para enviar DMs para você. Relés de Caixa de Entrada de DM devem aceitar qualquer mensagem de qualquer pessoa, mas permitir apenas você baixá-las. Boas opções são:\n - inbox.nostr.wine (pago)\n - you.nostr1.com (relés pessoais - pago) Relés privados Insira entre 1–3 retransmissores para armazenar eventos que ninguém mais possa ver, como seus rascunhos e/ou configurações de aplicativo. Idealmente, esses relés são locais ou requerem autenticação antes de baixar o conteúdo de cada usuário. @@ -1013,22 +1022,12 @@ Os idiomas mostrados aqui não serão traduzidos. Selecione um idioma para removê-lo e traduzi-lo novamente. Pausar Reproduzir + Abrir menu suspenso Opção %1$s de %2$s Filtro de feed, %1$s selecionado Filtro de feed, %1$s - Feed - Fila de moderação - URI NIP-47 inválido - O URI %1$s não é um URI de login NIP-47 válido. - O usuário está publicando seu conteúdo nesses relays - O usuário está recebendo notificações nesses relays - O usuário recebe mensagens diretas (DMs) nesses relays - Esta mensagem desaparecerá em %1$d dias Relatório de falha encontrado Gostaria de enviar o relatório de falha recente para o Amethyst em uma DM? Nenhuma informação pessoal será compartilhada Enviar - Sobre nós - Diretrizes - Moderadores - Abrir menu suspenso + Esta mensagem desaparecerá em %1$d dias diff --git a/amethyst/src/main/res/values-sv-rSE/strings.xml b/amethyst/src/main/res/values-sv-rSE/strings.xml index 69893391f..3c7ce5d03 100644 --- a/amethyst/src/main/res/values-sv-rSE/strings.xml +++ b/amethyst/src/main/res/values-sv-rSE/strings.xml @@ -164,6 +164,8 @@ Blockerade användare Nya trådar Konversationer + Flöde + Moderationskö Anteckningar Svar Dina @@ -653,6 +655,8 @@ Förklaring till medlemmar Ändra namnet för de nya målen. Klistra in från urklipp + Ogiltig NIP-47 URI + URI %1$s är inte en giltig NIP-47 inloggnings-URI. För appens gränssnitt Mörkt, Ljust eller Systemtema Ladda automatiskt bilder och GIFs @@ -670,6 +674,9 @@ Media har lagts till i ditt profilgalleri Skapad den Regler + Om oss + Riktlinjer + Moderatorer Logga in med Amber Uppdatera din status Fel vid tolkning av felmeddelande @@ -882,10 +889,13 @@ DM uppladdning Relä inställningar Offentliga hemreläer + Användaren publicerar sitt innehåll på dessa reläer Denna typ av relä lagrar allt ditt innehåll. Amethyst skickar dina inlägg hit och andra kommer att använda dessa reläer för att hitta ditt innehåll. Sätt in mellan 1–3 reläer. De kan vara personliga reläer, betalda reläer eller offentliga reläer. Offentliga inkorgsreläer + Användaren tar emot aviseringar på dessa reläer Denna typ av relä tar emot alla svar, kommentarer, gillanden och zaps till dina inlägg. Sätt in mellan 1–3 reläer och se till att de accepterar inlägg från vem som helst. DM inkorgsreläer + Användaren tar emot DM:s på dessa reläer Sätt in mellan 1–3 reläer som ska fungera som din privata inkorg. Andra kommer att använda dessa reläer för att skicka DM till dig. DM inkorgsreläer bör acceptera alla meddelanden från vem som helst, men endast tillåta dig att ladda ner dem. Bra alternativ är:\n - inbox.nostr.wine (betald)\n - you.nostr1.com (personliga reläer - betald) Privata reläer Infoga mellan 1–3 reläer för att lagra händelser som ingen annan kan se, som dina Utkast och/eller appinställningar. Helst är dessa reläer antingen lokala eller kräver autentisering innan du laddar ner varje användares innehåll. @@ -1012,22 +1022,12 @@ Språk som visas här kommer inte att översättas. Välj ett språk för att ta bort det och få det översatt igen. Pausa Spela + Öppna rullgardinsmeny Alternativ %1$s av %2$s Flödesfilter, %1$s valt Flödesfilter, %1$s - Flöde - Moderationskö - Ogiltig NIP-47 URI - URI %1$s är inte en giltig NIP-47 inloggnings-URI. - Användaren publicerar sitt innehåll på dessa reläer - Användaren tar emot aviseringar på dessa reläer - Användaren tar emot DM:s på dessa reläer - Detta meddelande försvinner om %1$d dagar Kraschrapport hittad Vill du skicka den senaste kraschrapporten till Amethyst i ett DM? Ingen personlig information kommer att delas Skicka - Om oss - Riktlinjer - Moderatorer - Öppna rullgardinsmeny + Detta meddelande försvinner om %1$d dagar From a58dc09b804169ac3169766e1f3d9d6dd2eae07a Mon Sep 17 00:00:00 2001 From: davotoula Date: Mon, 8 Sep 2025 08:34:16 +0200 Subject: [PATCH 4/6] added CZ, DE translations --- .../src/main/res/values-cs-rCZ/strings.xml | 18 ++++++++++++++++++ .../src/main/res/values-de-rDE/strings.xml | 19 +++++++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/amethyst/src/main/res/values-cs-rCZ/strings.xml b/amethyst/src/main/res/values-cs-rCZ/strings.xml index b8a0233ca..1c945c609 100644 --- a/amethyst/src/main/res/values-cs-rCZ/strings.xml +++ b/amethyst/src/main/res/values-cs-rCZ/strings.xml @@ -1013,4 +1013,22 @@ Zde zobrazené jazyky nebudou přeloženy. Vyberte jazyk, který chcete odstranit a nechat je znovu přeložit. Pozastavit Hrát + Možnost %1$s z %2$s + Filtr kanálu, %1$s vybráno + Filtr kanálu, %1$s + Kanál + Fronta moderace + Neplatné NIP-47 URI + URI %1$s není platné přihlašovací URI NIP-47. + Uživatel zveřejňuje svůj obsah na těchto přenašečích + Uživatel přijímá oznámení na těchto přenašečích + Uživatel přijímá soukromé zprávy na těchto přenašečích + Tato zpráva zmizí za %1$d dní + Nalezen záznam o pádu + Chcete poslat poslední záznam o pádu do Amethystu v soukromé zprávě? Žádné osobní údaje nebudou sdíleny + Odeslat + O nás + Pokyny + Moderátoři + Otevřít rozbalovací nabídku diff --git a/amethyst/src/main/res/values-de-rDE/strings.xml b/amethyst/src/main/res/values-de-rDE/strings.xml index 5d7816ae6..bcade1bf7 100644 --- a/amethyst/src/main/res/values-de-rDE/strings.xml +++ b/amethyst/src/main/res/values-de-rDE/strings.xml @@ -150,6 +150,7 @@ erie gespeichert Video konnte nicht gespeichert werden Bild hochladen Ein Foto aufnehmen + Video aufnehmen Eine Nachricht aufnehmen Eine Nachricht aufnehmen Zum Aufnehmen einer Nachricht gedrückt halten @@ -1017,4 +1018,22 @@ anz der Bedingungen ist erforderlich Die hier angezeigten Sprachen werden nicht übersetzt. Wählen Sie eine Sprache, um sie zu entfernen und lassen Sie sie erneut übersetzen. Pausen Abspielen + Option %1$s von %2$s + Feed-Filter, %1$s ausgewählt + Feed-Filter, %1$s + Feed + Moderationswarteschlange + Ungültige NIP-47 URI + Die URI %1$s ist keine gültige NIP-47 Anmelde-URI. + Der Benutzer veröffentlicht seine Inhalte auf diesen Relays + Der Benutzer erhält Benachrichtigungen auf diesen Relays + Der Benutzer empfängt Direktnachrichten auf diesen Relays + Diese Nachricht verschwindet in %1$d Tagen + Absturzbericht gefunden + Möchten Sie den letzten Absturzbericht per Direktnachricht an Amethyst senden? Es werden keine persönlichen Daten weitergegeben + Senden + Über uns + Richtlinien + Moderatoren + Dropdown-Menü öffnen From 1bdf7d9884b3939a5771913b20bb0796909501d3 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Mon, 8 Sep 2025 06:57:03 +0000 Subject: [PATCH 5/6] New Crowdin translations by GitHub Action --- .../src/main/res/values-cs-rCZ/strings.xml | 24 +++++++++---------- .../src/main/res/values-de-rDE/strings.xml | 23 +++++++++--------- .../src/main/res/values-pt-rBR/strings.xml | 1 + 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/amethyst/src/main/res/values-cs-rCZ/strings.xml b/amethyst/src/main/res/values-cs-rCZ/strings.xml index 1c945c609..23e828e01 100644 --- a/amethyst/src/main/res/values-cs-rCZ/strings.xml +++ b/amethyst/src/main/res/values-cs-rCZ/strings.xml @@ -164,6 +164,8 @@ Blokovaní uživatelé Nové vlákna Konverzace + Kanál + Fronta moderace Poznámky Odpovědi Vaše @@ -654,6 +656,8 @@ Vysvětlení členům Změna názvu pro nové cíle. Vložit ze schránky + Neplatné NIP-47 URI + URI %1$s není platné přihlašovací URI NIP-47. Pro rozhraní aplikace Tmavé, světlé nebo systémové téma Automaticky načítat obrázky a GIFy @@ -671,6 +675,9 @@ Média přidána do vaší profilové galerie Vytvořeno Pravidla + O nás + Pokyny + Moderátoři Přihlásit se pomocí Amber Aktualizovat svůj stav Chyba při zpracování chybové zprávy @@ -883,10 +890,13 @@ Nahrát v DM Nastavení relé Veřejná domácí relé + Uživatel zveřejňuje svůj obsah na těchto přenašečích Tento typ relé ukládá veškerý váš obsah. Amethyst sem pošle vaše příspěvky a ostatní použijí tato relé, aby našli váš obsah. Vložte mezi 1–3 relé. Mohou to být osobní relé, placená relé nebo veřejná relé. Veřejná schránka relé + Uživatel přijímá oznámení na těchto přenašečích Tento typ relé přijímá všechny odpovědi, komentáře, lajky a zaps k vašim příspěvkům. Vložte mezi 1–3 relé a ujistěte se, že přijímají příspěvky od kohokoli. DM schránka relé + Uživatel přijímá soukromé zprávy na těchto přenašečích Vložte mezi 1–3 relé, která budou sloužit jako vaše soukromá schránka. Ostatní použijí tato relé k posílání DM zpráv vám. DM schránka relé by měla přijímat jakékoli zprávy od kohokoli, ale pouze vám umožnit jejich stahování. Dobré možnosti jsou:\n - inbox.nostr.wine (placené)\n - you.nostr1.com (osobní relé - placené) Soukromá relé Vložte mezi 1–3 relé pro ukládání událostí nikoho jiného, jako jsou koncepty a/nebo nastavení aplikace. V ideálním případě jsou tato relé buď lokální, nebo vyžadují autentizaci před stažením obsahu každého uživatele. @@ -1013,22 +1023,12 @@ Zde zobrazené jazyky nebudou přeloženy. Vyberte jazyk, který chcete odstranit a nechat je znovu přeložit. Pozastavit Hrát + Otevřít rozbalovací nabídku Možnost %1$s z %2$s Filtr kanálu, %1$s vybráno Filtr kanálu, %1$s - Kanál - Fronta moderace - Neplatné NIP-47 URI - URI %1$s není platné přihlašovací URI NIP-47. - Uživatel zveřejňuje svůj obsah na těchto přenašečích - Uživatel přijímá oznámení na těchto přenašečích - Uživatel přijímá soukromé zprávy na těchto přenašečích - Tato zpráva zmizí za %1$d dní Nalezen záznam o pádu Chcete poslat poslední záznam o pádu do Amethystu v soukromé zprávě? Žádné osobní údaje nebudou sdíleny Odeslat - O nás - Pokyny - Moderátoři - Otevřít rozbalovací nabídku + Tato zpráva zmizí za %1$d dní diff --git a/amethyst/src/main/res/values-de-rDE/strings.xml b/amethyst/src/main/res/values-de-rDE/strings.xml index bcade1bf7..d94655388 100644 --- a/amethyst/src/main/res/values-de-rDE/strings.xml +++ b/amethyst/src/main/res/values-de-rDE/strings.xml @@ -166,6 +166,7 @@ erie gespeichert Blockierte Benutzer Neue Threads Unterhaltungen + Moderationswarteschlange Notizen Antworten Deine @@ -659,6 +660,8 @@ anz der Bedingungen ist erforderlich Erklärung an Mitglieder Ändern des Namens für die neuen Ziele. Aus Zwischenablage einfügen + Ungültige NIP-47 URI + Die URI %1$s ist keine gültige NIP-47 Anmelde-URI. Für die App-Benutzeroberfläche Dunkles, helles oder Systemdesign Bilder und GIFs automatisch laden @@ -676,6 +679,9 @@ anz der Bedingungen ist erforderlich Medien wurden zu Ihrer Profilgalerie hinzugefügt Erstellt am Regeln + Über uns + Richtlinien + Moderatoren Mit Amber anmelden Status aktualisieren Fehler beim Verarbeiten der Fehlermeldung @@ -888,10 +894,13 @@ anz der Bedingungen ist erforderlich DM-Upload Relaiseinstellungen Öffentliche Heimrelais + Der Benutzer veröffentlicht seine Inhalte auf diesen Relays Dieser Relais-Typ speichert alle Ihre Inhalte. Amethyst sendet Ihre Beiträge hierher und andere werden diese Relais verwenden, um Ihre Inhalte zu finden. Fügen Sie 1–3 Relais ein. Sie können persönliche Relais, bezahlte Relais oder öffentliche Relais sein. Öffentliche Posteingangsrelais + Der Benutzer erhält Benachrichtigungen auf diesen Relays Dieser Relais-Typ empfängt alle Antworten, Kommentare, Likes und Zaps auf Ihre Beiträge. Fügen Sie 1–3 Relais ein und stellen Sie sicher, dass sie Beiträge von jedem akzeptieren. DM-Posteingangsrelais + Der Benutzer empfängt Direktnachrichten auf diesen Relays Fügen Sie 1–3 Relais ein, die als Ihr privater Posteingang dienen sollen. Andere werden diese Relais verwenden, um Ihnen DMs zu senden. DM-Posteingangsrelais sollten Nachrichten von jedem akzeptieren, aber nur Ihnen erlauben, sie herunterzuladen. Gute Optionen sind:\n - inbox.nostr.wine (bezahlt)\n - you.nostr1.com (persönliche Relais - bezahlt) Private Relais Fügen Sie zwischen 1–3 Relais ein, um Ereignisse zu speichern, die niemand anders sehen kann, wie Ihre Entwürfe und/oder App-Einstellungen. Idealerweise sind diese Relais entweder lokal oder erfordern eine Authentifizierung, bevor Sie die Inhalte eines jeden Benutzers herunterladen. @@ -1018,22 +1027,12 @@ anz der Bedingungen ist erforderlich Die hier angezeigten Sprachen werden nicht übersetzt. Wählen Sie eine Sprache, um sie zu entfernen und lassen Sie sie erneut übersetzen. Pausen Abspielen + Dropdown-Menü öffnen Option %1$s von %2$s Feed-Filter, %1$s ausgewählt Feed-Filter, %1$s - Feed - Moderationswarteschlange - Ungültige NIP-47 URI - Die URI %1$s ist keine gültige NIP-47 Anmelde-URI. - Der Benutzer veröffentlicht seine Inhalte auf diesen Relays - Der Benutzer erhält Benachrichtigungen auf diesen Relays - Der Benutzer empfängt Direktnachrichten auf diesen Relays - Diese Nachricht verschwindet in %1$d Tagen Absturzbericht gefunden Möchten Sie den letzten Absturzbericht per Direktnachricht an Amethyst senden? Es werden keine persönlichen Daten weitergegeben Senden - Über uns - Richtlinien - Moderatoren - Dropdown-Menü öffnen + Diese Nachricht verschwindet in %1$d Tagen diff --git a/amethyst/src/main/res/values-pt-rBR/strings.xml b/amethyst/src/main/res/values-pt-rBR/strings.xml index d760646aa..8425d583c 100644 --- a/amethyst/src/main/res/values-pt-rBR/strings.xml +++ b/amethyst/src/main/res/values-pt-rBR/strings.xml @@ -164,6 +164,7 @@ Usuários Novos Tópicos Conversas + Feed Fila de moderação Notas Respostas From 196a7de6a35d45f2c1615bb5f9dc3083011fb2dd Mon Sep 17 00:00:00 2001 From: greenart7c3 Date: Mon, 8 Sep 2025 14:05:00 -0300 Subject: [PATCH 6/6] When using intents check if it's rejected --- .../api/foreground/intents/responses/DecryptZapResponse.kt | 3 +++ .../api/foreground/intents/responses/DeriveKeyResponse.kt | 3 +++ .../api/foreground/intents/responses/Nip04DecryptResponse.kt | 3 +++ .../api/foreground/intents/responses/Nip04EncryptResponse.kt | 4 ++++ .../api/foreground/intents/responses/Nip44DecryptResponse.kt | 3 +++ .../api/foreground/intents/responses/Nip44EncryptResponse.kt | 3 +++ .../api/foreground/intents/responses/SignResponse.kt | 4 ++++ .../api/foreground/intents/results/IntentResult.kt | 2 ++ .../intents/results/IntentResultJsonDeserializer.kt | 1 + .../foreground/intents/results/IntentResultJsonSerializer.kt | 1 + 10 files changed, 27 insertions(+) diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/DecryptZapResponse.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/DecryptZapResponse.kt index 35b3474a2..fec2ca5ad 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/DecryptZapResponse.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/DecryptZapResponse.kt @@ -34,6 +34,9 @@ class DecryptZapResponse { ) fun parse(intent: IntentResult): SignerResult.RequestAddressed { + if (intent.rejected) { + return SignerResult.RequestAddressed.ManuallyRejected() + } val eventJson = intent.result return if (!eventJson.isNullOrBlank()) { if (eventJson.startsWith("{")) { diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/DeriveKeyResponse.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/DeriveKeyResponse.kt index 3d51fb9a5..c1353a1e6 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/DeriveKeyResponse.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/DeriveKeyResponse.kt @@ -33,6 +33,9 @@ class DeriveKeyResponse { ) fun parse(intent: IntentResult): SignerResult.RequestAddressed { + if (intent.rejected) { + return SignerResult.RequestAddressed.ManuallyRejected() + } val newPrivateKey = intent.result return if (newPrivateKey != null) { SignerResult.RequestAddressed.Successful(DerivationResult(newPrivateKey)) diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip04DecryptResponse.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip04DecryptResponse.kt index 84cc20ab6..ee94be069 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip04DecryptResponse.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip04DecryptResponse.kt @@ -32,6 +32,9 @@ class Nip04DecryptResponse { ) fun parse(intent: IntentResult): SignerResult.RequestAddressed { + if (intent.rejected) { + return SignerResult.RequestAddressed.ManuallyRejected() + } val plaintext = intent.result return if (plaintext != null) { SignerResult.RequestAddressed.Successful(DecryptionResult(plaintext)) diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip04EncryptResponse.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip04EncryptResponse.kt index 969520fef..874f782e0 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip04EncryptResponse.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip04EncryptResponse.kt @@ -32,6 +32,10 @@ class Nip04EncryptResponse { ) fun parse(intent: IntentResult): SignerResult.RequestAddressed { + if (intent.rejected) { + return SignerResult.RequestAddressed.ManuallyRejected() + } + val ciphertext = intent.result return if (ciphertext != null) { SignerResult.RequestAddressed.Successful(EncryptionResult(ciphertext)) diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip44DecryptResponse.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip44DecryptResponse.kt index e65dd8f4f..2f609f0e9 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip44DecryptResponse.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip44DecryptResponse.kt @@ -32,6 +32,9 @@ class Nip44DecryptResponse { ) fun parse(intent: IntentResult): SignerResult.RequestAddressed { + if (intent.rejected) { + return SignerResult.RequestAddressed.ManuallyRejected() + } val plaintext = intent.result return if (plaintext != null) { SignerResult.RequestAddressed.Successful(DecryptionResult(plaintext)) diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip44EncryptResponse.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip44EncryptResponse.kt index 243856a38..fc5615442 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip44EncryptResponse.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/Nip44EncryptResponse.kt @@ -32,6 +32,9 @@ class Nip44EncryptResponse { ) fun parse(intent: IntentResult): SignerResult.RequestAddressed { + if (intent.rejected) { + return SignerResult.RequestAddressed.ManuallyRejected() + } val ciphertext = intent.result return if (ciphertext != null) { SignerResult.RequestAddressed.Successful(EncryptionResult(ciphertext)) diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/SignResponse.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/SignResponse.kt index 6e8a6d639..d37fb0d9a 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/SignResponse.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/responses/SignResponse.kt @@ -39,6 +39,10 @@ class SignResponse { intent: IntentResult, unsignedEvent: Event, ): SignerResult.RequestAddressed { + if (intent.rejected) { + return SignerResult.RequestAddressed.ManuallyRejected() + } + val eventJson = intent.event return if (eventJson != null) { if (eventJson.startsWith("{")) { diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResult.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResult.kt index b1beca7a8..58844729b 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResult.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResult.kt @@ -29,6 +29,7 @@ data class IntentResult( val result: String? = null, val event: String? = null, val id: String? = null, + val rejected: Boolean = false, ) { fun toJson(): String = JsonMapper.mapper.writeValueAsString(this) @@ -48,6 +49,7 @@ data class IntentResult( result = data.getStringExtra("result"), event = data.getStringExtra("event"), `package` = data.getStringExtra("package"), + rejected = data.extras?.containsKey("rejected") == true, ) fun fromJson(json: String): IntentResult = JsonMapper.mapper.readValue(json) diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResultJsonDeserializer.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResultJsonDeserializer.kt index e53cb8be2..7b21edf39 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResultJsonDeserializer.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResultJsonDeserializer.kt @@ -36,6 +36,7 @@ class IntentResultJsonDeserializer : StdDeserializer(IntentResult: result = jsonObject.get("result")?.asText()?.intern(), event = jsonObject.get("event")?.asText()?.intern(), id = jsonObject.get("id")?.asText()?.intern(), + rejected = jsonObject.get("rejected")?.asBoolean() ?: false, ) } } diff --git a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResultJsonSerializer.kt b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResultJsonSerializer.kt index 289f4daed..d8e5f9226 100644 --- a/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResultJsonSerializer.kt +++ b/quartz/src/androidMain/kotlin/com/vitorpamplona/quartz/nip55AndroidSigner/api/foreground/intents/results/IntentResultJsonSerializer.kt @@ -35,6 +35,7 @@ class IntentResultJsonSerializer : StdSerializer(IntentResult::cla result.result?.let { gen.writeStringField("result", it) } result.event?.let { gen.writeStringField("event", it) } result.id?.let { gen.writeStringField("id", it) } + result.rejected.let { gen.writeBooleanField("rejected", it) } gen.writeEndObject() } }