From d9d05bf6bac3a41feb5a673e5b677379669b2832 Mon Sep 17 00:00:00 2001 From: alltheseas <64376233+alltheseas@users.noreply.github.com> Date: Tue, 7 Mar 2023 10:35:54 -0600 Subject: [PATCH 1/9] Added Privacy on Relays to Readme.MD Added a small section on user privacy implications on Amethyst & relays use. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 233343f0d..ec11feafd 100644 --- a/README.md +++ b/README.md @@ -121,6 +121,11 @@ openssl base64 < | tr -d '\n' | tee some_signing_key.j 7. Add your CHANGE LOG to the description of the new release 8. Download the `aab` file and upload it to the` PlayStore. +# Privacy on Relays +Your internet protocol (IP) address is exposed to the relays you connect to. If you want to improve your privacy, consider utilizing a service that masks your IP address (e.g. a VPN) from trackers online. + +The relay also learns which public keys you are requesting, meaning your public key will be tied to your IP address. + # Contributing [Issues](https://github.com/vitorpamplona/amethyst/issues) and [pull requests](https://github.com/vitorpamplona/amethyst/pulls) are very welcome. From f39c84d6a4ab46aafd1e277cac821545194c50ec Mon Sep 17 00:00:00 2001 From: alltheseas <64376233+alltheseas@users.noreply.github.com> Date: Tue, 7 Mar 2023 12:06:52 -0600 Subject: [PATCH 2/9] Update README.md added additional information on relays & privacy --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ec11feafd..11bd50f65 100644 --- a/README.md +++ b/README.md @@ -121,11 +121,13 @@ openssl base64 < | tr -d '\n' | tee some_signing_key.j 7. Add your CHANGE LOG to the description of the new release 8. Download the `aab` file and upload it to the` PlayStore. -# Privacy on Relays +# Privacy on Relays & nostr Your internet protocol (IP) address is exposed to the relays you connect to. If you want to improve your privacy, consider utilizing a service that masks your IP address (e.g. a VPN) from trackers online. The relay also learns which public keys you are requesting, meaning your public key will be tied to your IP address. +Relays have all your data in raw text. They know your IP, your name, your location (guessed from IP), your pub key, all your contacts, and other relays, and can read every action you do (post, like, boost, quote, report, etc) with the exception of Private Zaps and Private DMs. + # Contributing [Issues](https://github.com/vitorpamplona/amethyst/issues) and [pull requests](https://github.com/vitorpamplona/amethyst/pulls) are very welcome. From 4a8ec97f2fbb503cbca7ddf8bc6b61a544bfb725 Mon Sep 17 00:00:00 2001 From: alltheseas <64376233+alltheseas@users.noreply.github.com> Date: Tue, 7 Mar 2023 13:59:23 -0600 Subject: [PATCH 3/9] Update README.md Added section on information visibility, information permanence, and DM privacy. --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 11bd50f65..4972b988b 100644 --- a/README.md +++ b/README.md @@ -128,6 +128,17 @@ The relay also learns which public keys you are requesting, meaning your public Relays have all your data in raw text. They know your IP, your name, your location (guessed from IP), your pub key, all your contacts, and other relays, and can read every action you do (post, like, boost, quote, report, etc) with the exception of Private Zaps and Private DMs. +# DM Privacy # +While the content of direct messages (DMs) is only visible to you, and your DM nostr counterparty, everyone can see that and when you and your counterparty are DM-ing each other. + +# Visibility & Permanence of Your Content on nostr +## Information Visibility ## +Content that you share can be shared to other relays. +Information that you share is publicly visible to anyone reading from relays that have your information. Your information may also be visible to nostr users who do not share relays with you. + +## Information Permanence ## +Information shared on nostr should be assumed permanent for privacy purposes. There is no way to guarantee deleting or editing any content once posted. + # Contributing [Issues](https://github.com/vitorpamplona/amethyst/issues) and [pull requests](https://github.com/vitorpamplona/amethyst/pulls) are very welcome. From 00f38670a556e7b4e7021d41895cde1e3bf5d98f Mon Sep 17 00:00:00 2001 From: Zoltan <34719275+ZsZolee@users.noreply.github.com> Date: Wed, 8 Mar 2023 09:58:24 +0100 Subject: [PATCH 4/9] Hungarian Translation This time I made the proper structure for the file. (Thanks Jose Maria Valera Reales for the help!) --- app/src/main/res/values-hu/strings.xml | 195 +++++++++++++++++++++++++ 1 file changed, 195 insertions(+) create mode 100644 app/src/main/res/values-hu/strings.xml diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml new file mode 100644 index 000000000..6199cf1cc --- /dev/null +++ b/app/src/main/res/values-hu/strings.xml @@ -0,0 +1,195 @@ + + Amethyst + Amethyst Debug + Mutass a QR kódra + QR kód megjelenítése + Profil kép + QR kód beolvasása + Mutasd + A bejegyzést nem megfelelőként jelölte meg + Bejegyzés nem található + Csatorna Kép + A hivatkozott esemény nem található + Az üzenet dekódolása sikertelen/string> + Csoport Kép + Szókimondó tartalom + Spam + Megszemélyesítés + Illegális viselkedés + Ismeretlen + Csomópont Ikon + Ismeretlen Szerző + Szöveg Másolása + A felhasználó PubKulcs másolása + A bejegyzés azonosítójának másolása + Közvetít + + Spam / Csalás bejelentés + Megszemélyesítés bejelentés + Szókimondó tartalom bejelentés + Illegális viselkedés bejelentés/string> + Jelentkezzen be privát kulccsal, hogy válaszolni tudjon + Jelentkezzen be privát kulccsal a bejegyzések megosztásához + Jelentkezzen be privát kulccsal a bejegyzések kedveléséhez + Nincs Zap összeg beállítva. Nyomja meg hosszan a változtatáshoz + Jelentkezzen be privát kulccsal, hogy Zaps-t küldhessen + Zap-ek + Megtekintések száma + Megosztás + Megosztva + Idézet + Új összeg sats-ban + Hozzáad + "válasz erre " + " és " + "csatornában " + Profil Banner + " Követek" + " Követők" + Profil + Biztonsági filterek + Kijelentkezés + Mutass még + Lightning Számla + Fizetés + Lightning Jatt + Üzenet a Fogadónak + Nagyon szépen köszönöm! + Összeg Sats-ban + Sats küldése + "Soha ne fordítsd erről " + "Hiba a következő előnézetében %1$s : %2$s" + "Kártyakép előnézete %1$s" + Új Csatorna + Csatorna neve + Az én fantasztikus csoportom + Kép URL-je + Leírás + "Rólunk.. " + Mire gondolsz? + Hozzászólás + Mentés + Létrehoz + Törlés + Nem sikerült feltölteni a képet + Csomópont Címe + Hozzászólások + Hibák + Hírfolyamod + Privát Üzenetek listája + Publikus Chat listája + Globális lista + Keresettek listája + Csomópont hozzáadása + Megjelenítendő Név + Az én megjelenített névem + Felhasználónév + Felhasználónevem + Rólam + Avatarom URL-je + Bannerem UR-jeL + Oldalam URL-je + LN Cím + LN URL (elavult) + A kép a galériába mentve + Nem sikerült menteni a képet + Kép feltöltése + Feltöltés… + A felhasználó a sat fogadáshoz nem rendelkezik LN cím beállítással + "válaszolj ide.. " + Megosztáshoz a bejegyzés azonosítót a vágólapra másolja + Bejegyzés azonosító vágólapra másolása + Szerkeszti a csatorna metaadatait + Csatlakozás + Ismert + Új kérések + Letiltott felhasználók + Új szálak + Beszélgetések + Bejegyzések + Válaszok + "Követek" + "Jelentések" + Több beállítás + " Csomópontok" + Weboldal + Lightning Cím + Biztonsági mentés céljából másolja az Nsec azonosítót (jelszavadat) a vágólapra + Másolja a titkos kulcsot a vágólapra + Megosztáshoz a nyilvános kulcsot a vágólapra másolja + Másolja a nyilvános kulcsot (NPub) a vágólapra + Közvetlen üzenet küldése + Szerkeszti a felhasználó metaadatait + Követés + Tiltás feloldása + Felhasználói azonosító másolása + Felhasználó feloldása + "npub, hex, felhasználónév " + Törlés + App Logó + nsec / npub / hex privát kulcs + Jelszó megjelenítése + Jelszó elrejtése + Érvénytelen kulcs + "Elfogadom a " + használati feltételek + A feltételek elfogadása szükséges + Kulcs szükséges + Bejelentkezés + Új kulcs létrehozása + Lista betöltése/string> + "Hiba a válaszok betöltésekor: " + Próbáld újra + A lista üres. + Frissítés + létrehozta + leírásával + és kép + megváltoztatta a chat nevét + leírását erre + és a képet erre + Kilépés + Leíratkozás + Csatorna létrehozva + "A csatornainformáció a következőre módosult" + Publikus Chat + beérkezett hozzászólások + Eltávolítás + sats + Automatikus + fordítás erről + erre + Mutasd ebben + első + Mindig fordítsa le + NIP-05 + LNURL... + soha + most + ó + p + n + Meztelenség + Trágárság / Gyűlöletkeltő beszéd + Gyűlöletbeszéd jelentése + Meztelenség/pornó jelentése + egyebek + Az összes ismert megjelölése olvasottként + Az összes új megjelölése olvasottként + Összes megjelölése olvasottként + + ## Kulcs- és biztonsági mentési tippek + \n\nFiókját titkos kulcs védi. A kulcs egy hosszú véletlenszerű karakterlánc, amely **nsec1**-al kezdődik. Bárki, aki hozzáfér az Ön titkos kulcsához, közzétehet tartalmat az Ön személyazonosságának használatával. + \n\n- **Ne** helyezze el titkos kulcsát olyan webhelyen vagy szoftverben, amelyben nem bízik. + \n- Az Amethyst fejlesztők a titkos kulcsodat **soha** nem fogják elkérni. + \n- A fiók-helyreállításhoz, titkos kulcsáról **mindig** készítsen biztonságos biztonsági másolatot. Javasoljuk a jelszókezelő használatát. + + A titkos kulcs (nsec) a vágólapra másolva + A titkos kulcsom másolása + Hitelesítés nem sikerült + Hiba + "Készítette %1$s" + "Kitűző %1$s" + Új Jelvényt kapott + Kitüntetésben részesült + From 77a70c3202ce690b6a948fbb4e62530fe145029e Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 8 Mar 2023 08:28:09 -0500 Subject: [PATCH 5/9] Duplicated Stop --- app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt b/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt index a0cb5de2f..cd60e2916 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ServiceManager.kt @@ -54,7 +54,6 @@ object ServiceManager { NostrHomeDataSource.stop() NostrChannelDataSource.stop() NostrChatroomListDataSource.stop() - NostrUserProfileDataSource.stop() NostrGlobalDataSource.stop() NostrSingleChannelDataSource.stop() From 7275799f9d955eb814bb8d2e46c938f8425442d7 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 8 Mar 2023 08:31:56 -0500 Subject: [PATCH 6/9] Solves crashing when events have null tags. --- .../main/java/com/vitorpamplona/amethyst/service/model/Event.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt index dc7fdbd0d..7ba3de1f5 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/Event.kt @@ -89,7 +89,7 @@ open class Event( createdAt = jsonObject.get("created_at").asLong, kind = jsonObject.get("kind").asInt, tags = jsonObject.get("tags").asJsonArray.map { - it.asJsonArray.map { s -> s.asString } + it.asJsonArray.mapNotNull { s -> if (s.isJsonNull) null else s.asString } }, content = jsonObject.get("content").asString, sig = jsonObject.get("sig").asString From 9f5b3d82c568b4e82577f5015914d5731f006c39 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 8 Mar 2023 08:43:38 -0500 Subject: [PATCH 7/9] Making LnInvoice amount a Lazy property. --- .../com/vitorpamplona/amethyst/service/model/LnZapEvent.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt index 20448a433..130e73a11 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt @@ -36,7 +36,9 @@ class LnZapEvent( } // Keeps this as a field because it's a heavier function used everywhere. - val amount = lnInvoice()?.let { LnInvoiceUtil.getAmountInSats(it) } + val amount by lazy { + lnInvoice()?.let { LnInvoiceUtil.getAmountInSats(it) } + } override fun containedPost(): Event? = try { description()?.let { From 67d6b24993ef4def0cc11c54194797ae615e9255 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 8 Mar 2023 08:44:05 -0500 Subject: [PATCH 8/9] Removing unnecessary coroutine --- .../com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt index b67fac0ca..a5a3bff10 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt @@ -217,7 +217,6 @@ fun ListContent( accountViewModel: AccountStateViewModel, account: Account, ) { - val coroutineScope = rememberCoroutineScope() var backupDialogOpen by remember { mutableStateOf(false) } Column(modifier = modifier.fillMaxHeight()) { From 6543df5d285a4dba65be7e55fab6cb97d27a1470 Mon Sep 17 00:00:00 2001 From: Vitor Pamplona Date: Wed, 8 Mar 2023 08:45:03 -0500 Subject: [PATCH 9/9] Adds a Log to Failures in Parsing contained Zap events --- .../java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt index 130e73a11..688e34aa0 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/service/model/LnZapEvent.kt @@ -1,5 +1,6 @@ package com.vitorpamplona.amethyst.service.model +import android.util.Log import com.vitorpamplona.amethyst.model.HexKey import com.vitorpamplona.amethyst.service.lnurl.LnInvoiceUtil import com.vitorpamplona.amethyst.service.relays.Client @@ -45,6 +46,7 @@ class LnZapEvent( fromJson(it, Client.lenient) } } catch (e: Exception) { + Log.e("LnZapEvent", "Failed to Parse Contained Post ${description()}", e) null }