Merge pull request #4163 from vitorpamplona/claude/nifty-volta-uynpdq

Correct Health Connect declaration and Data safety form
This commit is contained in:
Vitor Pamplona
2026-09-22 08:42:27 -04:00
committed by GitHub
58 changed files with 264 additions and 220 deletions
@@ -440,8 +440,6 @@
<string name="workout_hours">ساعات</string>
<string name="workout_minutes">دقائق</string>
<string name="workout_seconds">ثوانٍ</string>
<string name="workout_suggestion_connect_title">شارك تمارينك</string>
<string name="workout_suggestion_connect_message">اسمح لـ Amethyst بقراءة التمارين المكتملة من Health Connect (Samsung Health أو Google Fit أو Fitbit أو Garmin…) واقتراح منشور.</string>
<string name="workout_suggestion_connect_button">ربط</string>
<string name="workout_suggestion_distance_km">%1$s كم</string>
<string name="workout_from_health_connect">من Health Connect</string>
@@ -429,8 +429,6 @@
<string name="workout_hours">ঘণ্টা</string>
<string name="workout_minutes">মিনিট</string>
<string name="workout_seconds">সেকেন্ড</string>
<string name="workout_suggestion_connect_title">আপনার ওয়ার্কআউট শেয়ার করুন</string>
<string name="workout_suggestion_connect_message">Amethyst-কে Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) থেকে সম্পন্ন ওয়ার্কআউট পড়তে এবং একটি পোস্ট পরামর্শ দিতে দিন।</string>
<string name="workout_suggestion_connect_button">সংযোগ করুন</string>
<string name="workout_suggestion_distance_km">%1$s কিমি</string>
<string name="workout_from_health_connect">Health Connect থেকে</string>
@@ -653,27 +653,14 @@
<string name="workout_hours">Hodiny</string>
<string name="workout_minutes">Minuty</string>
<string name="workout_seconds">Sekundy</string>
<string name="workout_suggestion_connect_title">Sdílejte své tréninky</string>
<string name="workout_suggestion_connect_message">Nechte Amethyst číst dokončené tréninky z Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) a navrhnout příspěvek.</string>
<string name="workout_suggestion_connect_button">Připojit</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Z Health Connect</string>
<string name="workout_suggestion_connect_details">Co Amethyst čte</string>
<string name="health_connect_rationale_title">Health Connect a Amethyst</string>
<string name="health_connect_rationale_headline">Amethyst čte dokončené tréninky, aby za vás mohl předvyplnit příspěvek o tréninku.</string>
<string name="health_connect_rationale_intro">Amethyst je sociální klient sítě Nostr. Jeho sekce Tréninky vám umožňuje zveřejnit souhrn dokončeného tréninku na relaye Nostr, které si zvolíte, aby lidé, kteří vás sledují, viděli, co jste dělali. Místo ručního vypisování každého čísla může Amethyst načíst trénink, který vaše hodinky nebo fitness aplikace už uložily do Health Connect, a příspěvek předvyplnit. Předvyplněný příspěvek vždy uvidíte a sami rozhodnete, zda ho zveřejníte.</string>
<string name="health_connect_rationale_what_title">Co Amethyst čte a proč</string>
<string name="health_connect_rationale_exercise">Cvičení · jakou aktivitu jste dělali, kdy začala a jak dlouho trvala — to je samotný trénink a zároveň název a doba trvání příspěvku.</string>
<string name="health_connect_rationale_distance">Vzdálenost · jak daleko jste se dostali, zobrazená jako vzdálenost běhu, jízdy, chůze nebo plavání.</string>
<string name="health_connect_rationale_calories">Aktivní a celkové kalorie · energie spálená při tréninku. Aktivní kalorie se použijí, pokud je váš zdroj zaznamenává; celkové kalorie jsou náhradou pro zdroje, které zaznamenávají pouze celkovou energii.</string>
<string name="health_connect_rationale_heart_rate">Tepová frekvence · průměrná a maximální tepová frekvence během tréninku, běžné měřítko náročnosti.</string>
<string name="health_connect_rationale_steps">Kroky · počet kroků při běhu, chůzi nebo turistice.</string>
<string name="health_connect_rationale_elevation">Převýšení · kolik jste nastoupali, což odlišuje rovinatou jízdu od kopcovité.</string>
<string name="health_connect_rationale_limits_title">Co Amethyst nedělá</string>
<string name="health_connect_rationale_limit_window">Čte pouze tréninky dokončené za posledních 7 dní, a to jen když je otevřený editor Tréninků. Na pozadí nečte nikdy.</string>
<string name="health_connect_rationale_limit_write">Nikdy nic nezapisuje do Health Connect a nikdy nežádá o trasu vašeho cvičení, polohu ani jiný typ zdravotních údajů.</string>
<string name="health_connect_rationale_limit_publish">Nic neopustí váš telefon, dokud sami neklepnete na návrh a příspěvek nezveřejníte. Amethyst nemá žádný server: příspěvek jde na relaye Nostr, které jste nastavili.</string>
<string name="health_connect_rationale_limit_optional">Celá funkce je volitelná. Vypnete ji v Nastavení → Nastavení editoru, nebo kdykoli odeberete oprávnění v Health Connect — zbytek Amethystu funguje dál.</string>
<string name="health_connect_rationale_privacy_policy">Přečíst si celé zásady ochrany soukromí</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
freely — these are English abbreviations for hour/minute/second. -->
@@ -643,27 +643,14 @@
<string name="workout_hours">Stunden</string>
<string name="workout_minutes">Minuten</string>
<string name="workout_seconds">Sekunden</string>
<string name="workout_suggestion_connect_title">Teile deine Workouts</string>
<string name="workout_suggestion_connect_message">Lass Amethyst abgeschlossene Workouts aus Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) lesen und einen Beitrag vorschlagen.</string>
<string name="workout_suggestion_connect_button">Verbinden</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Aus Health Connect</string>
<string name="workout_suggestion_connect_details">Was Amethyst liest</string>
<string name="health_connect_rationale_title">Health Connect und Amethyst</string>
<string name="health_connect_rationale_headline">Amethyst liest abgeschlossene Workouts, um einen Workout-Beitrag für dich vorauszufüllen.</string>
<string name="health_connect_rationale_intro">Amethyst ist ein sozialer Nostr-Client. Im Bereich Workouts kannst du eine Zusammenfassung eines abgeschlossenen Workouts an die Nostr-Relays deiner Wahl veröffentlichen, damit die Leute, die dir folgen, sehen können, was du gemacht hast. Statt jede Zahl von Hand einzutippen, kann Amethyst das Workout lesen, das deine Uhr oder Fitness-App bereits in Health Connect gespeichert hat, und den Beitrag vorausfüllen. Du siehst den vorausgefüllten Beitrag immer und entscheidest, ob du ihn veröffentlichst.</string>
<string name="health_connect_rationale_what_title">Was Amethyst liest und warum</string>
<string name="health_connect_rationale_exercise">Übung · welche Aktivität du gemacht hast, wann sie begann und wie lange sie dauerte — das ist das Workout selbst sowie Titel und Dauer des Beitrags.</string>
<string name="health_connect_rationale_distance">Distanz · wie weit du gekommen bist, angezeigt als Distanz des Laufs, der Fahrt, des Spaziergangs oder des Schwimmens.</string>
<string name="health_connect_rationale_calories">Aktive und gesamte Kalorien · die beim Workout verbrannte Energie. Aktive Kalorien werden verwendet, wenn deine Quelle sie aufzeichnet; gesamte Kalorien sind der Ersatz für Quellen, die nur die Gesamtenergie aufzeichnen.</string>
<string name="health_connect_rationale_heart_rate">Herzfrequenz · die durchschnittliche und maximale Herzfrequenz während des Workouts, das übliche Maß für die Anstrengung.</string>
<string name="health_connect_rationale_steps">Schritte · die Schrittzahl eines Laufs, Spaziergangs oder einer Wanderung.</string>
<string name="health_connect_rationale_elevation">Höhenmeter · wie viel du gestiegen bist, was eine flache Fahrt von einer hügeligen unterscheidet.</string>
<string name="health_connect_rationale_limits_title">Was Amethyst nicht tut</string>
<string name="health_connect_rationale_limit_window">Liest nur Workouts, die in den letzten 7 Tagen beendet wurden, und nur während der Workout-Editor geöffnet ist. Im Hintergrund wird nie gelesen.</string>
<string name="health_connect_rationale_limit_write">Schreibt nie etwas in Health Connect und fragt nie nach deiner Trainingsroute, deinem Standort oder anderen Gesundheitsdaten.</string>
<string name="health_connect_rationale_limit_publish">Nichts verlässt dein Telefon, bis du auf einen Vorschlag tippst und den Beitrag selbst veröffentlichst. Amethyst hat keinen Server: Der Beitrag geht an die Nostr-Relays, die du eingerichtet hast.</string>
<string name="health_connect_rationale_limit_optional">Die gesamte Funktion ist optional. Schalte sie unter Einstellungen → Editor-Einstellungen aus oder entziehe die Berechtigungen jederzeit in Health Connect — der Rest von Amethyst funktioniert weiter.</string>
<string name="health_connect_rationale_privacy_policy">Vollständige Datenschutzerklärung lesen</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
freely — these are English abbreviations for hour/minute/second. -->
@@ -419,8 +419,6 @@ anz der Bedingungen ist erforderlich</string>
<string name="workout_hours">Stunden</string>
<string name="workout_minutes">Minuten</string>
<string name="workout_seconds">Sekunden</string>
<string name="workout_suggestion_connect_title">Teile deine Workouts</string>
<string name="workout_suggestion_connect_message">Lass Amethyst abgeschlossene Workouts aus Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) lesen und einen Beitrag vorschlagen.</string>
<string name="workout_suggestion_connect_button">Verbinden</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Aus Health Connect</string>
@@ -428,8 +428,6 @@
<string name="workout_hours">Ώρες</string>
<string name="workout_minutes">Λεπτά</string>
<string name="workout_seconds">Δευτερόλεπτα</string>
<string name="workout_suggestion_connect_title">Μοιραστείτε τις προπονήσεις σας</string>
<string name="workout_suggestion_connect_message">Αφήστε το Amethyst να διαβάσει ολοκληρωμένες προπονήσεις από το Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) και να προτείνει μια ανάρτηση.</string>
<string name="workout_suggestion_connect_button">Σύνδεση</string>
<string name="workout_from_health_connect">Από το Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -431,8 +431,6 @@
<string name="workout_hours">Horoj</string>
<string name="workout_minutes">Minutoj</string>
<string name="workout_seconds">Sekundoj</string>
<string name="workout_suggestion_connect_title">Kunhavigi viajn ekzercadojn</string>
<string name="workout_suggestion_connect_message">Lasu Amethyst legi finitajn ekzercadojn el Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) kaj sugesti afiŝon.</string>
<string name="workout_suggestion_connect_button">Konekti</string>
<string name="workout_from_health_connect">El Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -421,8 +421,6 @@
<string name="workout_hours">Horoj</string>
<string name="workout_minutes">Minutoj</string>
<string name="workout_seconds">Sekundoj</string>
<string name="workout_suggestion_connect_title">Kunhavigi viajn ekzercadojn</string>
<string name="workout_suggestion_connect_message">Lasu Amethyst legi finitajn ekzercadojn el Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) kaj sugesti afiŝon.</string>
<string name="workout_suggestion_connect_button">Konekti</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">El Health Connect</string>
@@ -426,8 +426,6 @@
<string name="workout_hours">Horas</string>
<string name="workout_minutes">Minutos</string>
<string name="workout_seconds">Segundos</string>
<string name="workout_suggestion_connect_title">Comparte tus entrenamientos</string>
<string name="workout_suggestion_connect_message">Deja que Amethyst lea los entrenamientos terminados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiera una publicación.</string>
<string name="workout_suggestion_connect_button">Conectar</string>
<string name="workout_from_health_connect">Desde Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -426,8 +426,6 @@
<string name="workout_hours">Horas</string>
<string name="workout_minutes">Minutos</string>
<string name="workout_seconds">Segundos</string>
<string name="workout_suggestion_connect_title">Comparte tus entrenamientos</string>
<string name="workout_suggestion_connect_message">Deja que Amethyst lea los entrenamientos terminados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiera una publicación.</string>
<string name="workout_suggestion_connect_button">Conectar</string>
<string name="workout_from_health_connect">Desde Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -426,8 +426,6 @@
<string name="workout_hours">Horas</string>
<string name="workout_minutes">Minutos</string>
<string name="workout_seconds">Segundos</string>
<string name="workout_suggestion_connect_title">Comparte tus entrenamientos</string>
<string name="workout_suggestion_connect_message">Deja que Amethyst lea los entrenamientos terminados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiera una publicación.</string>
<string name="workout_suggestion_connect_button">Conectar</string>
<string name="workout_from_health_connect">Desde Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -410,8 +410,6 @@
<string name="workout_hours">Horas</string>
<string name="workout_minutes">Minutos</string>
<string name="workout_seconds">Segundos</string>
<string name="workout_suggestion_connect_title">Comparte tus entrenamientos</string>
<string name="workout_suggestion_connect_message">Deja que Amethyst lea los entrenamientos terminados de Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) y sugiera una publicación.</string>
<string name="workout_suggestion_connect_button">Conectar</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Desde Health Connect</string>
@@ -431,8 +431,6 @@
<string name="workout_hours">ساعت‌ها</string>
<string name="workout_minutes">دقیقه‌ها</string>
<string name="workout_seconds">ثانیه‌ها</string>
<string name="workout_suggestion_connect_title">تمرینات خود را به اشتراک بگذارید</string>
<string name="workout_suggestion_connect_message">اجازه دهید Amethyst تمرینات تمام شده را از Health Connect (Samsung Health، Google Fit، Fitbit، Garmin…) بخواند و پیشنهاد پست بدهد.</string>
<string name="workout_suggestion_connect_button">اتصال</string>
<string name="workout_suggestion_distance_km">%1$s کیلومتر</string>
<string name="workout_from_health_connect">از Health Connect</string>
@@ -418,8 +418,6 @@
<string name="workout_hours">ساعت‌ها</string>
<string name="workout_minutes">دقیقه‌ها</string>
<string name="workout_seconds">ثانیه‌ها</string>
<string name="workout_suggestion_connect_title">تمرینات خود را به اشتراک بگذارید</string>
<string name="workout_suggestion_connect_message">اجازه دهید Amethyst تمرینات تمام شده را از Health Connect (Samsung Health، Google Fit، Fitbit، Garmin…) بخواند و پیشنهاد پست بدهد.</string>
<string name="workout_suggestion_connect_button">اتصال</string>
<string name="workout_suggestion_distance_km">%1$s کیلومتر</string>
<string name="workout_from_health_connect">از Health Connect</string>
@@ -425,8 +425,6 @@
<string name="workout_hours">Tunnit</string>
<string name="workout_minutes">Minuutit</string>
<string name="workout_seconds">Sekunnit</string>
<string name="workout_suggestion_connect_title">Jaa harjoituksesi</string>
<string name="workout_suggestion_connect_message">Anna Amethystin lukea valmiit harjoitukset Health Connectista (Samsung Health, Google Fit, Fitbit, Garmin…) ja ehdottaa julkaisua.</string>
<string name="workout_suggestion_connect_button">Yhdistä</string>
<string name="workout_from_health_connect">Health Connectista</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -415,8 +415,6 @@
<string name="workout_exercises">Exercices</string>
<string name="workout_hours">Heures</string>
<string name="workout_seconds">Secondes</string>
<string name="workout_suggestion_connect_title">Partagez vos entraînements</string>
<string name="workout_suggestion_connect_message">Laissez Amethyst lire les entraînements terminés depuis Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) et suggérer une publication.</string>
<string name="workout_suggestion_connect_button">Connecter</string>
<string name="workout_from_health_connect">Depuis Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -421,8 +421,6 @@
<string name="workout_exercises">Exercices</string>
<string name="workout_hours">Heures</string>
<string name="workout_seconds">Secondes</string>
<string name="workout_suggestion_connect_title">Partagez vos entraînements</string>
<string name="workout_suggestion_connect_message">Laissez Amethyst lire les entraînements terminés depuis Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) et suggérer une publication.</string>
<string name="workout_suggestion_connect_button">Connecter</string>
<string name="workout_from_health_connect">Depuis Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -419,8 +419,6 @@
<string name="workout_hours">Heures</string>
<string name="workout_minutes">Minutes</string>
<string name="workout_seconds">Secondes</string>
<string name="workout_suggestion_connect_title">Partagez vos entraînements</string>
<string name="workout_suggestion_connect_message">Laissez Amethyst lire les entraînements terminés depuis Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) et suggérer une publication.</string>
<string name="workout_suggestion_connect_button">Connecter</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Depuis Health Connect</string>
@@ -675,27 +675,14 @@
<string name="workout_hours">घण्टे</string>
<string name="workout_minutes">मिनुट</string>
<string name="workout_seconds">सेकण्ड</string>
<string name="workout_suggestion_connect_title">आपके व्यायाम बाँटें</string>
<string name="workout_suggestion_connect_message">अमेथिस्ट को समाप्त व्यायाम पढने की अनुमति दें स्वास्थ्य संयोजन से (साम्संग स्वास्थ्य तथा गूगिल फिट तथा फिटबिट तथा गार्मिन इत्यादि) तथा पत्र सुझाव लिखने दें।</string>
<string name="workout_suggestion_connect_button">संयोजन</string>
<string name="workout_suggestion_distance_km">%1$s सहस्रमीटर</string>
<string name="workout_from_health_connect">स्वास्थ्य संयोजन से</string>
<string name="workout_suggestion_connect_details">अमेथिस्ट क्या पढता है</string>
<string name="health_connect_rationale_title">स्वास्थ्य संयोजन तथा अमेथिस्ट</string>
<string name="health_connect_rationale_headline">अमेथिस्ट सम्पन्न व्यायामों को पढता है जिससे आपके लिए एक व्यायाम पत्र पूर्वतः भरा जा सके।</string>
<string name="health_connect_rationale_intro">अमेथिस्ट एक नोस्टर समूह ग्राहक है। इसका व्यायम विभाग आपको एक सम्पन्न व्यायाम का साराम्श प्रकाशित करने देता है उन नोस्टर पुनःप्रसारकों में जिन्हें आप चुनते है। जिससे आपके अनुगामी देख सकेंगे कि आपने क्या किया। प्रत्येक संख्या को हाथ से लिखने के स्थान पर अमेथिस्ट उस व्यायाम को पढ सकता है जिसको आपकी घडी अथवा स्वास्थ्य क्रमक ने स्वास्थ्य संयोजन में अभिलेखन कर के रखा है तथा पत्र को पूर्वतः भर सके। सर्वदा आप उस पूर्व भरा हुआ पत्र पहले देख सकेंगे तथा प्रकाशन करने का निर्णय ले सकते हैं।</string>
<string name="health_connect_rationale_what_title">अमेथिस्ट क्या पढता है और क्यों</string>
<string name="health_connect_rationale_exercise">व्यायाम। आप ने कौनसी क्रिया की। वह कब आरम्भ हुआ तथा कितने समय तक चला। यह व्यायाम स्वयम है। तथा पत्र का शीर्षक तथा कालावधि।</string>
<string name="health_connect_rationale_distance">दूरी। आप कितने दूर गए। धवन चालन चलन तरण की दूरी के रूप में दिखाया जाएगा।</string>
<string name="health_connect_rationale_calories">सक्रिय तथा कुल उष्ममानइकाई। ऊर्जा जिसका व्यय व्यायाम से किया गया। सक्रिय उष्ममानइकाई उपयुक्त हैं जब आपके स्रोत उनका अभिलेखन करते हैं। कुल उष्ममानइकाई विकल्पतः उपयुक्त उन स्रोतों के लिए जो केवल कुल ऊर्जा का अभिलेखन करते हैं।</string>
<string name="health_connect_rationale_heart_rate">हृदयस्पन्दन गति। मध्यमान तथा उच्चतम हृदयस्पन्दन गति व्यायाम के समय। मानक परिमाण कि श्रम कितना कठिन था।</string>
<string name="health_connect_rationale_steps">पद। पदों की गणना एक धवन चलन अथवा पदयात्रा की।</string>
<string name="health_connect_rationale_elevation">ऊँचाई वृद्धि। आप कितना ऊपर चढे। जो कि पृथकता है एक समतल चालन का एक पर्वतीय चालन से।</string>
<string name="health_connect_rationale_limits_title">अमेथिस्ट क्या नहीं करता</string>
<string name="health_connect_rationale_limit_window">केवल पिछले सात दिनों में सम्पन्न व्यायामों को पढता है। तथा तब ही जब व्यायाम सम्पादक खुला है। पृष्ठभूत होकर कभी पढता नही।</string>
<string name="health_connect_rationale_limit_write">स्वास्थ्य संयोजन पर कुछ भी लिखता नहीं। तथा आपको कभी भी नहीं पूछता आपका व्यायाम मार्ग अथवा स्थल अथवा अन्य किसी भी स्वास्थ्य जानकारी प्रकार के विषय में।</string>
<string name="health_connect_rationale_limit_publish">आपके संचारयन्त्र से तब तक कुछ नहीं जाएगा जब तक आप एक सुझाव नहीं दबाते तथा पत्र का प्रकाशन आप स्वयम नहीं करते। अमेथिस्ट का कोई सेवासंगणक नहीं। पत्र उन नोस्टर पुनःप्रसारकों को जाएगा जिनको आपने समाकृत कर रखे हैं।</string>
<string name="health_connect_rationale_limit_optional">यह सम्पूर्ण सुविधा विकल्पात्मक है। इसे निष्क्रिय करें स्थापना विकल्पों में सम्पादन पटल में। अथवा स्वास्थ्य संयोजन में अनुमतियाँ का निराकरण करें कभी भी। अमेथिस्ट के शेष भाग कार्य करते रहेंगे।</string>
<string name="health_connect_rationale_privacy_policy">सम्पूर्ण गोपनीयता नीति पढें</string>
<string name="my_fitness_title">मेरा स्वास्थ्य</string>
<string name="my_fitness_window">पिछले चार सप्ताह</string>
@@ -676,27 +676,14 @@
<string name="workout_hours">Óra</string>
<string name="workout_minutes">Perc</string>
<string name="workout_seconds">Másodperc</string>
<string name="workout_suggestion_connect_title">Edzések megosztása</string>
<string name="workout_suggestion_connect_message">Engedélyezze az Amethyst alkalmazás számára, hogy beolvassa a befejezett edzéseit a Health Connectből (Samsung Health, Google Fit, Fitbit, Garmin…), és bejegyzést javasoljon.</string>
<string name="workout_suggestion_connect_button">Kapcsolódás</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Health Connectből</string>
<string name="workout_suggestion_connect_details">Mihez fér hozzá az Amethyst</string>
<string name="health_connect_rationale_title">Health Connect és Amethyst</string>
<string name="health_connect_rationale_headline">Az Amethyst beolvassa a befejezett edzéseket, így előre kitöltheti Önnek az edzésről szóló bejegyzéseit.</string>
<string name="health_connect_rationale_intro">Az Amethyst egy kliens a Nostr közösségi hálózathoz. Az „Edzések” menüpontjában közzéteheti egy befejezett edzésének az összefoglalóját a kiválasztott Nostr-átjátszókon, így a követői láthatják, hogy Ön mit csinál. Ahelyett, hogy minden adatot kézzel beírna, az Amethyst beolvashatja az órája vagy a fitneszalkalmazása által a Health Connectbe már elmentett edzésadatokat, és előre kitöltheti a bejegyzést. Ön mindig a már kitöltött teljes bejegyzést látja, és dönthet arról, hogy közzéteszi-e.</string>
<string name="health_connect_rationale_what_title">Mihez fér hozzá az Amethyst, és miért</string>
<string name="health_connect_rationale_exercise">Edzés · milyen tevékenységet végzett, mikor kezdődött és meddig tartott; ez maga az edzés, valamint a bejegyzés címe és időtartama.</string>
<string name="health_connect_rationale_distance">Távolság · a megtett út hossza (futás, kerékpározás, gyaloglás vagy úszáskor).</string>
<string name="health_connect_rationale_calories">Aktív és összes kalória · az edzés közben elégetett energia. Az aktív kalóriaértékek akkor használandók, ha az adatforrás rögzíti őket; az összes kalóriaérték pedig tartalék megoldásként szolgál azon források esetében, amelyek csak a teljes energiafelhasználást rögzítik.</string>
<string name="health_connect_rationale_heart_rate">Pulzus · az edzés alatti átlagos és maximális pulzus; az erőkifejtés intenzitásának szokásos mérőszáma.</string>
<string name="health_connect_rationale_steps">Lépések · futás, séta vagy túra során megtett lépések száma.</string>
<string name="health_connect_rationale_elevation">Szintemelkedés · mekkora szintkülönbséget küzdött le; ez különbözteti meg a sík terepen zajló tekerést a dombos útvonaltól.</string>
<string name="health_connect_rationale_limits_title">Mit nem csinál az Amethyst</string>
<string name="health_connect_rationale_limit_window">Csak az elmúlt 7 napban befejezett edzéseket olvassa be, és kizárólag akkor, ha az edzésszerkesztő meg van nyitva. Soha nem olvas be adatokat a háttérben.</string>
<string name="health_connect_rationale_limit_write">Soha nem ír semmit a Health Connectbe, és soha nem kéri le az edzési útvonalat, a tartózkodási helyet vagy bármilyen egyéb egészségügyi adatot.</string>
<string name="health_connect_rationale_limit_publish">Semmi sem hagyja el az Ön eszközét, amíg rá nem koppint egy javaslatra, és saját maga közzé nem teszi a bejegyzést. Az Amethyst nem használ kiszolgálót: a bejegyzés az Ön által beállított Nostr-átjátszókra kerül.</string>
<string name="health_connect_rationale_limit_optional">Egyetlen funkció sem kötelező. Bármikor kikapcsolhatja a Beállítások → Írás menüpontban, vagy visszavonhatja a Health Connectben megadott engedélyeket; az Amethyst többi része továbbra is működni fog.</string>
<string name="health_connect_rationale_privacy_policy">Olvassa el a teljes adatvédelmi nyilatkozatot</string>
<string name="my_fitness_title">Fitnesz</string>
<string name="my_fitness_window">Elmúlt 4 hét</string>
@@ -422,8 +422,6 @@
<string name="workout_hours">Jam</string>
<string name="workout_minutes">Menit</string>
<string name="workout_seconds">Detik</string>
<string name="workout_suggestion_connect_title">Bagikan latihan Anda</string>
<string name="workout_suggestion_connect_message">Biarkan Amethyst membaca latihan yang selesai dari Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) dan menyarankan postingan.</string>
<string name="workout_suggestion_connect_button">Hubungkan</string>
<string name="workout_from_health_connect">Dari Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -419,8 +419,6 @@
<string name="workout_hours">Jam</string>
<string name="workout_minutes">Menit</string>
<string name="workout_seconds">Detik</string>
<string name="workout_suggestion_connect_title">Bagikan latihan Anda</string>
<string name="workout_suggestion_connect_message">Biarkan Amethyst membaca latihan yang selesai dari Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) dan menyarankan postingan.</string>
<string name="workout_suggestion_connect_button">Hubungkan</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Dari Health Connect</string>
@@ -422,8 +422,6 @@
<string name="workout_hours">Ore</string>
<string name="workout_minutes">Minuti</string>
<string name="workout_seconds">Secondi</string>
<string name="workout_suggestion_connect_title">Condividi i tuoi allenamenti</string>
<string name="workout_suggestion_connect_message">Consenti ad Amethyst di leggere gli allenamenti completati da Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) e suggerire un post.</string>
<string name="workout_suggestion_connect_button">Connetti</string>
<string name="workout_from_health_connect">Da Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -428,8 +428,6 @@
<string name="workout_hours">時間</string>
<string name="workout_minutes">分</string>
<string name="workout_seconds">秒</string>
<string name="workout_suggestion_connect_title">ワークアウトを共有しよう</string>
<string name="workout_suggestion_connect_message">AmethystがHealth Connect(Samsung Health、Google Fit、Fitbit、Garmin…)から完了したワークアウトを読み取り、投稿を提案できるようにしましょう。</string>
<string name="workout_suggestion_connect_button">接続する</string>
<string name="workout_from_health_connect">Health Connectから</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -419,8 +419,6 @@
<string name="workout_hours">時間</string>
<string name="workout_minutes">分</string>
<string name="workout_seconds">秒</string>
<string name="workout_suggestion_connect_title">ワークアウトを共有しよう</string>
<string name="workout_suggestion_connect_message">AmethystがHealth Connect(Samsung Health、Google Fit、Fitbit、Garmin…)から完了したワークアウトを読み取り、投稿を提案できるようにしましょう。</string>
<string name="workout_suggestion_connect_button">接続する</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Health Connectから</string>
@@ -424,8 +424,6 @@
<string name="workout_hours">시간</string>
<string name="workout_minutes">분</string>
<string name="workout_seconds">초</string>
<string name="workout_suggestion_connect_title">운동 기록 공유</string>
<string name="workout_suggestion_connect_message">Amethyst가 Health Connect(Samsung Health, Google Fit, Fitbit, Garmin…)에서 완료된 운동을 읽어 게시물을 제안하도록 허용하세요.</string>
<string name="workout_suggestion_connect_button">연결</string>
<string name="workout_from_health_connect">Health Connect에서</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -436,8 +436,6 @@
<string name="workout_hours">Stundas</string>
<string name="workout_minutes">Minūtes</string>
<string name="workout_seconds">Sekundes</string>
<string name="workout_suggestion_connect_title">Kopīgojiet savus treniņus</string>
<string name="workout_suggestion_connect_message">Ļaujiet Amethyst nolasīt pabeigtus treniņus no Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) un ieteikt ziņu.</string>
<string name="workout_suggestion_connect_button">Savienot</string>
<string name="workout_from_health_connect">No Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -410,8 +410,6 @@
<string name="workout_hours">Uren</string>
<string name="workout_minutes">Minuten</string>
<string name="workout_seconds">Seconden</string>
<string name="workout_suggestion_connect_title">Deel je workouts</string>
<string name="workout_suggestion_connect_message">Laat Amethyst voltooide workouts lezen uit Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) en stel voor om ze als bericht te delen.</string>
<string name="workout_suggestion_connect_button">Verbinden</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Van Health Connect</string>
@@ -606,8 +606,6 @@
<string name="workout_hours">Uren</string>
<string name="workout_minutes">Minuten</string>
<string name="workout_seconds">Seconden</string>
<string name="workout_suggestion_connect_title">Deel je workouts</string>
<string name="workout_suggestion_connect_message">Laat Amethyst voltooide workouts lezen uit Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) en voorstellen om ze als bericht te delen.</string>
<string name="workout_suggestion_connect_button">Verbinden</string>
<string name="workout_from_health_connect">Van Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -419,8 +419,6 @@
<string name="workout_hours">Uren</string>
<string name="workout_minutes">Minuten</string>
<string name="workout_seconds">Seconden</string>
<string name="workout_suggestion_connect_title">Deel je workouts</string>
<string name="workout_suggestion_connect_message">Laat Amethyst voltooide workouts lezen uit Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) en stel voor om ze als bericht te delen.</string>
<string name="workout_suggestion_connect_button">Verbinden</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Van Health Connect</string>
@@ -686,27 +686,14 @@
<string name="workout_hours">Godziny</string>
<string name="workout_minutes">Minuty</string>
<string name="workout_seconds">Sekundy</string>
<string name="workout_suggestion_connect_title">Współdziel treningi</string>
<string name="workout_suggestion_connect_message">Niech aplikacja Amethyst odczytuje zakończone treningi z serwisu Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) i proponuje wpis.</string>
<string name="workout_suggestion_connect_button">Połącz</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Z Health Connect</string>
<string name="workout_suggestion_connect_details">Co czyta Amethyst</string>
<string name="health_connect_rationale_title">Health Connect i Amethyst</string>
<string name="health_connect_rationale_headline">Amethyst odczytuje zakończone treningi, dzięki czemu może wstępnie wypełnić za Ciebie wpis dotyczący treningu.</string>
<string name="health_connect_rationale_intro">Amethyst to aplikacja społecznościowa oparta na platformie Nostr. Sekcja „Treningi” pozwala opublikować podsumowanie zakończonego treningu na wybranych przez Ciebie transmiterach Nostr, dzięki czemu osoby, które Cię obserwują, mogą zobaczyć, co zrobiłeś. Zamiast ręcznie wpisywać każdą liczbę, Amethyst może odczytać dane treningu, które Twój zegarek lub aplikacja fitness zapisały już w Health Connect, i wstępnie wypełnić treść wpisu. Zawsze widzisz wstępnie wypełniony wpis i sam decydujesz, czy go opublikować.</string>
<string name="health_connect_rationale_what_title">Co czyta Amethyst i dlaczego</string>
<string name="health_connect_rationale_exercise">Ćwiczenie · jaki rodzaj aktywności wykonałeś, kiedy ją rozpocząłeś i jak długo trwała — to właśnie sam trening, a także tytuł i czas trwania wpisu.</string>
<string name="health_connect_rationale_distance">Dystans · odległość, jaką pokonałeś, podana jako odległość przebiegnięta, przejechana, przebyta pieszo lub przepłynięta.</string>
<string name="health_connect_rationale_calories">Kalorie aktywne i całkowite · energia spalona podczas treningu. Kalorie aktywne są uwzględniane, gdy źródło danych je rejestruje; kalorie całkowite stanowią wartość zastępczą w przypadku źródeł, które rejestrują jedynie całkowitą energię.</string>
<string name="health_connect_rationale_heart_rate">Tętno · średnie i maksymalne tętno podczas treningu – standardowy wskaźnik intensywności wysiłku.</string>
<string name="health_connect_rationale_steps">Kroki · liczba kroków wykonanych podczas biegu, spaceru lub wędrówki.</string>
<string name="health_connect_rationale_elevation">Różnica wysokości · o ile się wspiąłeś – to właśnie odróżnia trasę płaską od pagórkowatej.</string>
<string name="health_connect_rationale_limits_title">Czego Amethyst nie robi</string>
<string name="health_connect_rationale_limit_window">Odczytuje wyłącznie treningi zakończone w ciągu ostatnich 7 dni i tylko wtedy, gdy aplikacja do tworzenia treningów jest otwarta. Nigdy nie odczytuje danych w tle.</string>
<string name="health_connect_rationale_limit_write">Nigdy nie przesyła żadnych danych do serwisu Health Connect i nigdy nie prosi o podanie trasy ćwiczeń, lokalizacji ani żadnych innych danych dotyczących zdrowia.</string>
<string name="health_connect_rationale_limit_publish">Żadna treść nie opuszcza Twojego telefonu, dopóki nie wybierzesz jednej z sugestii i sam nie opublikujesz wpisu. Amethyst nie posiada serwera: wpis trafia do skonfigurowanych przez Ciebie transmiterów Nostr.</string>
<string name="health_connect_rationale_limit_optional">Cała ta funkcja jest opcjonalna. Można ją wyłączyć w sekcji Ustawienia → Tworzenie wiadomości lub w dowolnym momencie cofnąć uprawnienia w aplikacji Health Connect — pozostałe funkcje aplikacji Amethyst będą nadal działać.</string>
<string name="health_connect_rationale_privacy_policy">Przeczytaj pełną politykę prywatności</string>
<string name="my_fitness_title">Moja kondycja</string>
<string name="my_fitness_window">Ostatnie 4 tygodnie</string>
@@ -643,27 +643,14 @@
<string name="workout_hours">Horas</string>
<string name="workout_minutes">Minutos</string>
<string name="workout_seconds">Segundos</string>
<string name="workout_suggestion_connect_title">Compartilhe seus treinos</string>
<string name="workout_suggestion_connect_message">Permita que o Amethyst leia treinos concluídos do Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) e sugira uma publicação.</string>
<string name="workout_suggestion_connect_button">Conectar</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Do Health Connect</string>
<string name="workout_suggestion_connect_details">O que o Amethyst lê</string>
<string name="health_connect_rationale_title">Health Connect e Amethyst</string>
<string name="health_connect_rationale_headline">O Amethyst lê treinos concluídos para preencher previamente uma publicação de treino para você.</string>
<string name="health_connect_rationale_intro">O Amethyst é um cliente social do Nostr. A seção Treinos permite publicar um resumo de um treino concluído nos relays do Nostr que você escolher, para que quem segue você veja o que você fez. Em vez de digitar cada número à mão, o Amethyst pode ler o treino que seu relógio ou aplicativo de fitness já salvou no Health Connect e preencher a publicação previamente. Você sempre vê a publicação preenchida e decide se quer publicá-la.</string>
<string name="health_connect_rationale_what_title">O que o Amethyst lê e por quê</string>
<string name="health_connect_rationale_exercise">Exercício · qual atividade você fez, quando começou e quanto tempo durou — é o treino em si, além do título e da duração da publicação.</string>
<string name="health_connect_rationale_distance">Distância · o quanto você percorreu, exibido como a distância da corrida, pedalada, caminhada ou natação.</string>
<string name="health_connect_rationale_calories">Calorias ativas e totais · a energia gasta no treino. As calorias ativas são usadas quando sua fonte as registra; as calorias totais são a alternativa para fontes que registram apenas a energia total.</string>
<string name="health_connect_rationale_heart_rate">Frequência cardíaca · a frequência média e máxima durante o treino, a medida padrão do esforço.</string>
<string name="health_connect_rationale_steps">Passos · a contagem de passos de uma corrida, caminhada ou trilha.</string>
<string name="health_connect_rationale_elevation">Elevação · o quanto você subiu, que é o que distingue um percurso plano de um acidentado.</string>
<string name="health_connect_rationale_limits_title">O que o Amethyst não faz</string>
<string name="health_connect_rationale_limit_window">Lê apenas treinos concluídos nos últimos 7 dias e somente enquanto o editor de Treinos está aberto. Nunca lê em segundo plano.</string>
<string name="health_connect_rationale_limit_write">Nunca grava nada no Health Connect e nunca solicita seu trajeto de exercício, localização ou qualquer outro tipo de dado de saúde.</string>
<string name="health_connect_rationale_limit_publish">Nada sai do seu telefone até você tocar em uma sugestão e publicar por conta própria. O Amethyst não tem servidor: a publicação vai para os relays do Nostr que você configurou.</string>
<string name="health_connect_rationale_limit_optional">Todo o recurso é opcional. Desative-o em Configurações → Configurações de composição, ou revogue as permissões no Health Connect a qualquer momento — o restante do Amethyst continua funcionando.</string>
<string name="health_connect_rationale_privacy_policy">Ler a política de privacidade completa</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
freely — these are English abbreviations for hour/minute/second. -->
@@ -424,8 +424,6 @@
<string name="workout_hours">Horas</string>
<string name="workout_minutes">Minutos</string>
<string name="workout_seconds">Segundos</string>
<string name="workout_suggestion_connect_title">Compartilhe seus treinos</string>
<string name="workout_suggestion_connect_message">Permita que o Amethyst leia treinos concluídos do Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) e sugira uma publicação.</string>
<string name="workout_suggestion_connect_button">Conectar</string>
<string name="workout_from_health_connect">Do Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -431,8 +431,6 @@
<string name="workout_hours">Часы</string>
<string name="workout_minutes">Минуты</string>
<string name="workout_seconds">Секунды</string>
<string name="workout_suggestion_connect_title">Поделитесь своими тренировками</string>
<string name="workout_suggestion_connect_message">Позвольте Amethyst читать завершённые тренировки из Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) и предлагать публикацию.</string>
<string name="workout_suggestion_connect_button">Подключить</string>
<string name="workout_suggestion_distance_km">%1$s км</string>
<string name="workout_from_health_connect">Из Health Connect</string>
@@ -425,8 +425,6 @@
<string name="workout_hours">Часы</string>
<string name="workout_minutes">Минуты</string>
<string name="workout_seconds">Секунды</string>
<string name="workout_suggestion_connect_title">Поделитесь своими тренировками</string>
<string name="workout_suggestion_connect_message">Позвольте Amethyst читать завершённые тренировки из Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) и предлагать публикацию.</string>
<string name="workout_suggestion_connect_button">Подключить</string>
<string name="workout_suggestion_distance_km">%1$s км</string>
<string name="workout_from_health_connect">Из Health Connect</string>
@@ -425,8 +425,6 @@
<string name="workout_hours">Часы</string>
<string name="workout_minutes">Минуты</string>
<string name="workout_seconds">Секунды</string>
<string name="workout_suggestion_connect_title">Поделитесь своими тренировками</string>
<string name="workout_suggestion_connect_message">Позвольте Amethyst читать завершённые тренировки из Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) и предлагать публикацию.</string>
<string name="workout_suggestion_connect_button">Подключить</string>
<string name="workout_suggestion_distance_km">%1$s км</string>
<string name="workout_from_health_connect">Из Health Connect</string>
@@ -655,8 +655,6 @@
<string name="workout_hours">Ur</string>
<string name="workout_minutes">Minut</string>
<string name="workout_seconds">Sekund</string>
<string name="workout_suggestion_connect_title">Deli svoje vadbe</string>
<string name="workout_suggestion_connect_message">Dovoli aplikaciji Amethyst branje zaključenih vadb iz Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) , da ti predlaga objavo</string>
<string name="workout_suggestion_connect_button">Poveži</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Iz Health Connect</string>
@@ -428,8 +428,6 @@
<string name="workout_hours">Sati</string>
<string name="workout_minutes">Minuti</string>
<string name="workout_seconds">Sekunde</string>
<string name="workout_suggestion_connect_title">Podelite svoje treninge</string>
<string name="workout_suggestion_connect_message">Dozvolite Amethyst-u da čita završene treninge iz Health Connect-a (Samsung Health, Google Fit, Fitbit, Garmin…) i predloži objavu.</string>
<string name="workout_suggestion_connect_button">Poveži</string>
<string name="workout_from_health_connect">Iz Health Connect-a</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -643,27 +643,14 @@
<string name="workout_hours">Timmar</string>
<string name="workout_minutes">Minuter</string>
<string name="workout_seconds">Sekunder</string>
<string name="workout_suggestion_connect_title">Dela dina träningspass</string>
<string name="workout_suggestion_connect_message">Låt Amethyst läsa avslutade träningspass från Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) och föreslå ett inlägg.</string>
<string name="workout_suggestion_connect_button">Anslut</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Från Health Connect</string>
<string name="workout_suggestion_connect_details">Vad Amethyst läser</string>
<string name="health_connect_rationale_title">Health Connect och Amethyst</string>
<string name="health_connect_rationale_headline">Amethyst läser avslutade träningspass för att kunna förifylla ett träningsinlägg åt dig.</string>
<string name="health_connect_rationale_intro">Amethyst är en social Nostr-klient. I avsnittet Träningspass kan du publicera en sammanfattning av ett avslutat träningspass till de Nostr-reläer du väljer, så att de som följer dig kan se vad du har gjort. I stället för att skriva in varje siffra för hand kan Amethyst läsa det träningspass som din klocka eller träningsapp redan har sparat i Health Connect och förifylla inlägget. Du ser alltid det förifyllda inlägget och avgör själv om det ska publiceras.</string>
<string name="health_connect_rationale_what_title">Vad Amethyst läser och varför</string>
<string name="health_connect_rationale_exercise">Övning · vilken aktivitet du gjorde, när den började och hur länge den varade — det är själva träningspasset och även inläggets titel och varaktighet.</string>
<string name="health_connect_rationale_distance">Distans · hur långt du tog dig, som visas som distansen för löprundan, cykelturen, promenaden eller simningen.</string>
<string name="health_connect_rationale_calories">Aktiva och totala kalorier · energin som träningspasset förbrände. Aktiva kalorier används när din källa registrerar dem; totala kalorier är reserven för källor som bara registrerar total energi.</string>
<string name="health_connect_rationale_heart_rate">Puls · genomsnittlig och maximal puls under träningspasset, det vanliga måttet på hur ansträngande det var.</string>
<string name="health_connect_rationale_steps">Steg · antalet steg under en löprunda, promenad eller vandring.</string>
<string name="health_connect_rationale_elevation">Höjdmeter · hur mycket du klättrade, vilket skiljer en platt tur från en kuperad.</string>
<string name="health_connect_rationale_limits_title">Vad Amethyst inte gör</string>
<string name="health_connect_rationale_limit_window">Läser bara träningspass som avslutades de senaste 7 dagarna, och bara medan träningsredigeraren är öppen. Den läser aldrig i bakgrunden.</string>
<string name="health_connect_rationale_limit_write">Skriver aldrig något till Health Connect och begär aldrig din träningsrutt, plats eller någon annan typ av hälsodata.</string>
<string name="health_connect_rationale_limit_publish">Ingenting lämnar din telefon förrän du trycker på ett förslag och publicerar inlägget själv. Amethyst har ingen server: inlägget går till de Nostr-reläer du har ställt in.</string>
<string name="health_connect_rationale_limit_optional">Hela funktionen är valfri. Stäng av den under Inställningar → Skrivinställningar, eller återkalla behörigheterna i Health Connect när som helst — resten av Amethyst fortsätter att fungera.</string>
<string name="health_connect_rationale_privacy_policy">Läs hela integritetspolicyn</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
freely — these are English abbreviations for hour/minute/second. -->
@@ -426,8 +426,6 @@
<string name="workout_hours">Masaa</string>
<string name="workout_minutes">Dakika</string>
<string name="workout_seconds">Sekunde</string>
<string name="workout_suggestion_connect_title">Shiriki mazoezi yako</string>
<string name="workout_suggestion_connect_message">Ruhusu Amethyst kusoma mazoezi yaliyokamilika kutoka Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) na kupendekeza chapisho.</string>
<string name="workout_suggestion_connect_button">Unganisha</string>
<string name="workout_from_health_connect">Kutoka Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -430,8 +430,6 @@
<string name="workout_hours">மணிநேரங்கள்</string>
<string name="workout_minutes">நிமிடங்கள்</string>
<string name="workout_seconds">வினாடிகள்</string>
<string name="workout_suggestion_connect_title">உங்கள் உடற்பயிற்சிகளை பகிர்ந்து கொள்ளுங்கள்</string>
<string name="workout_suggestion_connect_message">Amethyst ஐ Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) இலிருந்து முடிந்த உடற்பயிற்சிகளை படிக்க அனுமதிக்கவும் மற்றும் ஒரு இடுகையை பரிந்துரைக்கட்டும்.</string>
<string name="workout_suggestion_connect_button">இணைக்கவும்</string>
<string name="workout_suggestion_distance_km">%1$s கி.மீ</string>
<string name="workout_from_health_connect">Health Connect இலிருந்து</string>
@@ -421,8 +421,6 @@
<string name="workout_hours">மணிநேரங்கள்</string>
<string name="workout_minutes">நிமிடங்கள்</string>
<string name="workout_seconds">வினாடிகள்</string>
<string name="workout_suggestion_connect_title">உங்கள் உடற்பயிற்சிகளை பகிர்ந்து கொள்ளுங்கள்</string>
<string name="workout_suggestion_connect_message">Amethyst ஐ Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) இலிருந்து முடிந்த உடற்பயிற்சிகளை படிக்க அனுமதிக்கவும் மற்றும் ஒரு இடுகையை பரிந்துரைக்கட்டும்.</string>
<string name="workout_suggestion_connect_button">இணைக்கவும்</string>
<string name="workout_suggestion_distance_km">%1$s கி.மீ</string>
<string name="workout_from_health_connect">Health Connect இலிருந்து</string>
@@ -425,8 +425,6 @@
<string name="workout_hours">ชั่วโมง</string>
<string name="workout_minutes">นาที</string>
<string name="workout_seconds">วินาที</string>
<string name="workout_suggestion_connect_title">แชร์การออกกำลังกายของคุณ</string>
<string name="workout_suggestion_connect_message">ให้ Amethyst อ่านข้อมูลการออกกำลังกายที่เสร็จสิ้นจาก Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) และแนะนำโพสต์</string>
<string name="workout_suggestion_connect_button">เชื่อมต่อ</string>
<string name="workout_suggestion_distance_km">%1$s กม.</string>
<string name="workout_from_health_connect">จาก Health Connect</string>
@@ -416,8 +416,6 @@
<string name="workout_hours">ชั่วโมง</string>
<string name="workout_minutes">นาที</string>
<string name="workout_seconds">วินาที</string>
<string name="workout_suggestion_connect_title">แชร์การออกกำลังกายของคุณ</string>
<string name="workout_suggestion_connect_message">ให้ Amethyst อ่านข้อมูลการออกกำลังกายที่เสร็จสิ้นจาก Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) และแนะนำโพสต์</string>
<string name="workout_suggestion_connect_button">เชื่อมต่อ</string>
<string name="workout_suggestion_distance_km">%1$s กม.</string>
<string name="workout_from_health_connect">จาก Health Connect</string>
@@ -429,8 +429,6 @@
<string name="workout_hours">Saat</string>
<string name="workout_minutes">Dakika</string>
<string name="workout_seconds">Saniye</string>
<string name="workout_suggestion_connect_title">Antrenmanlarını paylaş</string>
<string name="workout_suggestion_connect_message">Amethyst'in Health Connect'ten (Samsung Health, Google Fit, Fitbit, Garmin…) tamamlanan antrenmanları okumasına ve gönderi önerisinde bulunmasına izin ver.</string>
<string name="workout_suggestion_connect_button">Bağlan</string>
<string name="workout_from_health_connect">Health Connect'ten</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -421,8 +421,6 @@
<string name="workout_hours">Saat</string>
<string name="workout_minutes">Dakika</string>
<string name="workout_seconds">Saniye</string>
<string name="workout_suggestion_connect_title">Antrenmanlarını paylaş</string>
<string name="workout_suggestion_connect_message">Amethyst'in Health Connect'ten (Samsung Health, Google Fit, Fitbit, Garmin…) tamamlanan antrenmanları okumasına ve gönderi önerisinde bulunmasına izin ver.</string>
<string name="workout_suggestion_connect_button">Bağlan</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">Health Connect'ten</string>
@@ -431,8 +431,6 @@
<string name="workout_hours">Години</string>
<string name="workout_minutes">Хвилини</string>
<string name="workout_seconds">Секунди</string>
<string name="workout_suggestion_connect_title">Діліться своїми тренуваннями</string>
<string name="workout_suggestion_connect_message">Дозвольте Amethyst зчитувати завершені тренування з Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) та пропонувати допис.</string>
<string name="workout_suggestion_connect_button">Підключити</string>
<string name="workout_suggestion_distance_km">%1$s км</string>
<string name="workout_from_health_connect">З Health Connect</string>
@@ -425,8 +425,6 @@
<string name="workout_hours">Години</string>
<string name="workout_minutes">Хвилини</string>
<string name="workout_seconds">Секунди</string>
<string name="workout_suggestion_connect_title">Діліться своїми тренуваннями</string>
<string name="workout_suggestion_connect_message">Дозвольте Amethyst зчитувати завершені тренування з Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) та пропонувати допис.</string>
<string name="workout_suggestion_connect_button">Підключити</string>
<string name="workout_suggestion_distance_km">%1$s км</string>
<string name="workout_from_health_connect">З Health Connect</string>
@@ -430,8 +430,6 @@
<string name="workout_hours">Soatlar</string>
<string name="workout_minutes">Daqiqalar</string>
<string name="workout_seconds">Soniyalar</string>
<string name="workout_suggestion_connect_title">Mashqlaringizni ulashing</string>
<string name="workout_suggestion_connect_message">Amethyst dasturiga Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) dan tugatilgan mashqlarni o'qish va post taklif qilish imkonini bering.</string>
<string name="workout_suggestion_connect_button">Ulash</string>
<string name="workout_from_health_connect">Health Connect orqali</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -424,8 +424,6 @@
<string name="workout_hours">Giờ</string>
<string name="workout_minutes">Phút</string>
<string name="workout_seconds">Giây</string>
<string name="workout_suggestion_connect_title">Chia sẻ bài tập của bạn</string>
<string name="workout_suggestion_connect_message">Cho phép Amethyst đọc bài tập đã hoàn thành từ Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) và đề xuất bài đăng.</string>
<string name="workout_suggestion_connect_button">Kết nối</string>
<string name="workout_from_health_connect">Từ Health Connect</string>
<!-- Workout duration totals. %1$d is hours, %2$d is minutes; reorder and re-abbreviate
@@ -553,8 +553,6 @@
<string name="workout_hours">小时</string>
<string name="workout_minutes">分钟</string>
<string name="workout_seconds">秒</string>
<string name="workout_suggestion_connect_title">分享锻炼</string>
<string name="workout_suggestion_connect_message">让 Ameyst 从 Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) 读取完成的锻炼并建议一个帖子。</string>
<string name="workout_suggestion_connect_button">连接</string>
<string name="workout_suggestion_distance_km">%1$s 公里</string>
<string name="workout_from_health_connect">来自 Health Connect</string>
@@ -435,8 +435,6 @@
<string name="workout_hours">小时</string>
<string name="workout_minutes">分钟</string>
<string name="workout_seconds">秒</string>
<string name="workout_suggestion_connect_title">分享锻炼</string>
<string name="workout_suggestion_connect_message">让 Ameyst 从 Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) 读取完成的锻炼并建议一个帖子。</string>
<string name="workout_suggestion_connect_button">连接</string>
<string name="workout_suggestion_distance_km">%1$s 公里</string>
<string name="workout_from_health_connect">来自 Health Connect</string>
@@ -435,8 +435,6 @@
<string name="workout_hours">小时</string>
<string name="workout_minutes">分钟</string>
<string name="workout_seconds">秒</string>
<string name="workout_suggestion_connect_title">分享锻炼</string>
<string name="workout_suggestion_connect_message">让 Ameyst 从 Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) 读取完成的锻炼并建议一个帖子。</string>
<string name="workout_suggestion_connect_button">连接</string>
<string name="workout_suggestion_distance_km">%1$s 公里</string>
<string name="workout_from_health_connect">来自 Health Connect</string>
@@ -429,8 +429,6 @@
<string name="workout_hours">小時</string>
<string name="workout_minutes">分鐘</string>
<string name="workout_seconds">秒</string>
<string name="workout_suggestion_connect_title">分享您的運動記錄</string>
<string name="workout_suggestion_connect_message">讓 Amethyst 從 Health Connect(Samsung Health、Google Fit、Fitbit、Garmin…)讀取已完成的運動記錄並建議一則貼文。</string>
<string name="workout_suggestion_connect_button">連接</string>
<string name="workout_suggestion_distance_km">%1$s 公里</string>
<string name="workout_from_health_connect">來自 Health Connect</string>
@@ -408,8 +408,6 @@
<string name="workout_hours">小时</string>
<string name="workout_minutes">分钟</string>
<string name="workout_seconds">秒</string>
<string name="workout_suggestion_connect_title">分享锻炼</string>
<string name="workout_suggestion_connect_message">让 Ameyst 从 Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) 读取完成的锻炼并建议一个帖子。</string>
<string name="workout_suggestion_connect_button">连接</string>
<string name="workout_suggestion_distance_km">%1$s 公里</string>
<string name="workout_from_health_connect">来自 Health Connect</string>
@@ -847,27 +847,27 @@
<string name="workout_hours">Hours</string>
<string name="workout_minutes">Minutes</string>
<string name="workout_seconds">Seconds</string>
<string name="workout_suggestion_connect_title">Share your workouts</string>
<string name="workout_suggestion_connect_message">Let Amethyst read finished workouts from Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) and suggest a post.</string>
<string name="workout_suggestion_connect_title">Use the workouts you already recorded</string>
<string name="workout_suggestion_connect_message">Connect Health Connect (Samsung Health, Google Fit, Fitbit, Garmin…) to build My Fitness, your own training summary, and to fill this workout in from one your watch already recorded instead of typing every number by hand.</string>
<string name="workout_suggestion_connect_button">Connect</string>
<string name="workout_suggestion_distance_km">%1$s km</string>
<string name="workout_from_health_connect">From Health Connect</string>
<string name="workout_suggestion_connect_details">What Amethyst reads</string>
<string name="health_connect_rationale_title">Health Connect and Amethyst</string>
<string name="health_connect_rationale_headline">Amethyst reads finished workouts so it can pre-fill a workout post for you.</string>
<string name="health_connect_rationale_intro">Amethyst is a Nostr social client. Its Workouts section lets you publish a summary of a finished workout to the Nostr relays you choose, so the people who follow you can see what you did. Instead of typing every number by hand, Amethyst can read the workout your watch or fitness app already saved to Health Connect and pre-fill the post. You always see the pre-filled post and decide whether to publish it.</string>
<string name="health_connect_rationale_headline">Amethyst uses Health Connect to build My Fitness — your own training summary, on your phone.</string>
<string name="health_connect_rationale_intro">My Fitness (menu → You → My Fitness) shows you how you have been training: how much you did this week against last week, how your time splits across running, cycling, walking, swimming and the gym, your best efforts, how many days you trained, and your current streak. Amethyst builds that picture from the workouts your watch or fitness app already saved to Health Connect, together with any workouts you logged in Amethyst itself. It is worked out on your phone and shown to you.</string>
<string name="health_connect_rationale_what_title">What Amethyst reads, and why</string>
<string name="health_connect_rationale_exercise">Exercise · which activity you did, when it started and how long it lasted — this is the workout itself, and the title and duration of the post.</string>
<string name="health_connect_rationale_distance">Distance · how far you went, shown as the distance of the run, ride, walk or swim.</string>
<string name="health_connect_rationale_calories">Active and total calories · the energy the workout burned. Active calories are used when your source records them; total calories are the fallback for sources that only record total energy.</string>
<string name="health_connect_rationale_heart_rate">Heart rate · the average and maximum heart rate over the workout, the standard measure of how hard the effort was.</string>
<string name="health_connect_rationale_steps">Steps · the step count of a run, walk or hike.</string>
<string name="health_connect_rationale_elevation">Elevation gained · how much you climbed, which is what separates a flat ride from a hilly one.</string>
<string name="health_connect_rationale_exercise">Exercise · which activity you did, when it started and how long it lasted. This is the workout itself: it drives your workout count, your training time, the per-activity breakdown, your active days and your streak.</string>
<string name="health_connect_rationale_distance">Distance · how far you went, shown as your distance this week against last week, your weekly average, your distance per activity, and your longest distance.</string>
<string name="health_connect_rationale_calories">Active and total calories · the energy a workout burned, shown as your energy this week and how it compares with last week. Active calories are used when your source records them; total calories are the fallback for sources that only record total energy.</string>
<string name="health_connect_rationale_heart_rate">Heart rate · the average and maximum over each workout, combined into your average and highest heart rate for the period. It is how you tell an easy week from a hard one at the same distance.</string>
<string name="health_connect_rationale_steps">Steps · the step count of a run, walk or hike, shown as your weekly step average and your highest step count.</string>
<string name="health_connect_rationale_elevation">Elevation gained · how much you climbed, shown as your weekly climb average and your biggest climb. It is what separates a flat week from a hilly one.</string>
<string name="health_connect_rationale_limits_title">What Amethyst does not do</string>
<string name="health_connect_rationale_limit_window">Only reads workouts that finished in the last 7 days, and only while the Workouts composer is open. It never reads in the background.</string>
<string name="health_connect_rationale_limit_window">Only reads workouts from the last 4 weeks, and only while My Fitness or the workout composer is open. It never reads in the background.</string>
<string name="health_connect_rationale_limit_write">Never writes anything to Health Connect, and never asks for your exercise route, location or any other health data type.</string>
<string name="health_connect_rationale_limit_publish">Nothing leaves your phone until you tap a suggestion and publish the post yourself. Amethyst has no server: the post goes to the Nostr relays you configured.</string>
<string name="health_connect_rationale_limit_optional">The whole feature is optional. Turn it off under Settings → Compose, or revoke the permissions in Health Connect at any time — the rest of Amethyst keeps working.</string>
<string name="health_connect_rationale_limit_publish">Never sends your health data anywhere. My Fitness is worked out on your phone and stays there. If you later want to post one workout, you tap Share on that workout, read the post Amethyst filled in, and publish it yourself — one workout at a time, never automatically.</string>
<string name="health_connect_rationale_limit_optional">The whole feature is optional. Revoke the permissions in Health Connect at any time — My Fitness drops back to its prompt — or turn the composer suggestions off under Settings → Compose Settings. The rest of Amethyst keeps working.</string>
<string name="health_connect_rationale_privacy_policy">Read the full privacy policy</string>
<string name="my_fitness_title">My Fitness</string>
<string name="my_fitness_window">Last 4 weeks</string>
+104 -20
View File
@@ -7,7 +7,7 @@ change.
**Approved use case claimed: "Fitness, wellness and coaching"** — *"apps designed to help users
track, monitor, analyze, manage, and improve their physical fitness."*
## Why the earlier declaration was rejected, and what changed
## Rejection 1 — the use case, and what changed
The first submission described the feature as "read finished workouts so the user can post them
to their social network." That is not one of the six approved use cases, and it reads as the
@@ -40,10 +40,58 @@ Related code:
- `service/workouts/health/HealthConnectManager.kt` — the only place the app touches Health Connect.
- `ui/screen/loggedIn/workouts/health/HealthConnectRationaleActivity.kt` — the in-app rationale screen.
- `PRIVACY.md` § "Health and fitness data (Health Connect)".
- `docs/play-data-safety.md` — the Data safety form, which Google cross-checks against this one.
## Rejection 2 — the app contradicted this declaration, and what changed
Same policy code as the first: *"Use of permission is not a permitted/valid use case … or
potentially engages in a prohibited use."*
The declaration above was not what failed. **The app's own permission-rationale screen was.** The
My Fitness pivot rewrote this file and `PRIVACY.md` but never touched the strings behind
`HealthConnectRationaleScreen` — which is the screen § 4 below points the reviewer at, and the
screen Health Connect itself opens for `ACTION_SHOW_PERMISSIONS_RATIONALE`. It still read:
> "Amethyst reads finished workouts so it can pre-fill a workout post for you."
>
> "Amethyst is a Nostr social client. Its Workouts section lets you publish a summary of a
> finished workout to the Nostr relays you choose, so the people who follow you can see what you
> did."
That is the rejected first submission, verbatim, presented in-app as the official justification
for the permission — and it reads as the prohibited *"publicly displaying or socially sharing
sensitive data."* A reviewer who read this declaration and then opened the app was told two
different things, and the app's version is the one that counts.
Three further contradictions on the same screen:
- every per-permission bullet justified the data type by what it puts in **the post**, not by the
statistic My Fitness renders;
- it claimed a **7-day** window and "only while the Workouts composer is open", against the
28 days and My Fitness that § 4 below claims (`WorkoutStats.WINDOW_DAYS = 28` drives the
dashboard; `HealthConnectManager.LOOKBACK_DAYS = 7` only ever drove the composer);
- **My Fitness was not named anywhere on it.**
The permission-request card in the workout composer had the same problem — it was titled
"Share your workouts".
Both surfaces now justify every permission by a statistic the dashboard shows the user, state the
4-week window and both screens that read, name My Fitness, and describe publishing only as an
optional, per-item, explicitly-confirmed action under "What Amethyst does not do". The stale
translations of those strings were deleted so every locale falls back to the corrected English
until Crowdin re-translates.
**The standing rule this cost us:** the rationale screen, `PRIVACY.md` and this file are one
document split across three places. A change to any of them is incomplete until the other two
match — the reviewer reads all three.
---
## 1. App functionality
## 1. App functionality — background, not a form field
Google does not publish a matching field for this. Keep it as the brief for whoever fills the
form, and as the source the § 3 blocks are written from; paste it only if the form offers a
general description box. See the note at the top of § 3.
> Amethyst is a social client for Nostr, an open decentralized social protocol. It also includes
> a fitness feature, **My Fitness**, which is what uses Health Connect.
@@ -69,20 +117,28 @@ Related code:
> or discard. Sharing is a user-initiated action on top of the tracking feature, with per-post
> review and consent; it is never automatic, and the tracking feature is fully usable without it.
## 2. Reviewer walkthrough
## 2. Reviewer walkthrough — use only if the form asks
Offer this where the form has a reviewer-notes, testing-instructions or demo field. If it has
none, the walkthrough still matters: it is what someone testing the build should follow, and step
2 is the one that stops a reviewer landing on an empty dashboard.
> 1. Install and open Amethyst, and sign in (a key can be generated in-app).
> 2. Open the navigation drawer (hamburger, top-left). **My Fitness** is the second entry under
> 2. **Log one workout first, so the dashboard has something to summarise.** Drawer → **Feeds** →
> **Workouts** → **+**. A review device's Health Connect database is usually empty, and an
> empty dashboard shows none of the statistics these permissions serve. This step needs no
> health permission at all.
> 3. Open the navigation drawer (hamburger, top-left). **My Fitness** is the second entry under
> **You**, the first section — directly below Profile. Tap it.
> 3. The screen explains what will be read and offers **What Amethyst reads** (the full rationale
> 4. The screen explains what will be read and offers **What Amethyst reads** (the full rationale
> screen) and **Connect**. Tap Connect and grant the permissions. (If the account has already
> logged workouts in Amethyst, the dashboard is already populated from those and the Health
> Connect offer appears as a banner above it instead — the feature does not gate on the
> permission.)
> 4. The dashboard appears: "This week" totals with the change against last week; the streak,
> 5. The dashboard appears: "This week" totals with the change against last week; the streak,
> active-days and workout-count tiles; the four-week weekly average; the per-activity
> breakdown; best efforts; and the recent-workout list.
> 5. Everything above is the tracking feature. To see the optional sharing path, tap **Share this
> 6. Everything above is the tracking feature. To see the optional sharing path, tap **Share this
> workout** on a row in Recent workouts — it opens a pre-filled composer that the user must
> confirm. The button appears only on workouts that have not been published yet, so a workout
> is never offered for sharing twice.
@@ -100,13 +156,34 @@ Related code:
> **Workouts** → **+**. A workout logged that way appears in the dashboard without any health
> permission at all.
## 3. Per-permission justification
## 3. Per-data-type justification — paste these
Each permission maps to a statistic the dashboard shows the user about their own training.
**How the form is actually shaped.** Google does not publish the field labels for the
declaration's second page, but its own guidance says that page is organised as **expandable
sections per data-type category** — Activity and fitness, Body composition, Energy, Nutrition,
Reproductive and sexual health, Respiratory system, Sleep management — each asking you to
"provide an explanation of how your app uses each listed Health Connect data type."
So the form is organised **by data type, not by narrative**. There is no box that corresponds to
§ 1 below. Treat § 1 as background for whoever fills the form, and § 2 as something to offer only
if the form gives you a general free-text or reviewer-notes field.
**Which means each block below is written to stand alone.** Every one names My Fitness, says what
the data type contributes to it, and states the user benefit, so a reviewer who reads a single
expandable section gets the whole argument without needing the others. Paste the block for a data
type into that data type's box, whichever category heading the form files it under. Expect
exercise, distance, steps and elevation under **Activity and fitness**, and both calorie types
under **Energy**; heart rate lands wherever the form lists it (it is not in the published
category list — you will see it when the form renders).
Do not condense these into one shared paragraph across boxes. A reviewer evaluating one data type
should not have to infer the feature from another answer — that inference is what "lack of clear
justification for the requested permissions" means in Google's published denial reasons.
### READ_EXERCISE — ExerciseSession (and CyclingPedalingCadence)
> The workout itself, and the spine of the whole dashboard. Amethyst reads each session's
> Used by **My Fitness**, Amethyst's personal training dashboard, which summarises the
> user's own workouts back to them. This data type is the spine of that dashboard. Amethyst reads each session's
> activity type, start time and end time to produce: the count of workouts this week versus last
> week, total training time, the per-activity breakdown ("Cycling: 3×, 4h 10m"), the number of
> active days, and the consecutive-day training streak. Every other metric below is aggregated
@@ -122,7 +199,8 @@ Each permission maps to a statistic the dashboard shows the user about their own
### READ_DISTANCE — Distance
> Aggregated per workout and summed into the dashboard's distance figures: distance this week,
> Used by **My Fitness**, Amethyst's personal training dashboard. Aggregated per workout and
> summed into the distance figures it shows the user: distance this week,
> the percentage change against last week, the four-week weekly average, distance per activity,
> and the "Longest distance" best effort.
>
@@ -132,7 +210,8 @@ Each permission maps to a statistic the dashboard shows the user about their own
### READ_ACTIVE_CALORIES_BURNED — ActiveCaloriesBurned
> Aggregated per workout and summed into the dashboard's energy figures: calories this week and
> Used by **My Fitness**, Amethyst's personal training dashboard. Aggregated per workout and
> summed into the energy figures it shows the user: calories this week and
> the change against last week. Active calories — energy burned by the activity, excluding
> resting metabolism — are the correct measure of a workout's cost.
>
@@ -141,7 +220,8 @@ Each permission maps to a statistic the dashboard shows the user about their own
### READ_TOTAL_CALORIES_BURNED — TotalCaloriesBurned
> Fallback for the same figure. Several widely used watches and fitness apps record only total
> Used by **My Fitness**, Amethyst's personal training dashboard, as the fallback for the
> energy figure described under ActiveCaloriesBurned. Several widely used watches and fitness apps record only total
> energy for a session and never write ActiveCaloriesBurned. Where active calories are missing,
> Amethyst uses total calories so the energy statistics are not simply blank for those users;
> where active calories exist they are always preferred, because total calories include basal
@@ -152,7 +232,8 @@ Each permission maps to a statistic the dashboard shows the user about their own
### READ_HEART_RATE — HeartRate
> Aggregated per workout into the average and maximum heart rate, then combined across the window
> Used by **My Fitness**, Amethyst's personal training dashboard. Aggregated per workout into
> the average and maximum heart rate, then combined across the window
> into a duration-weighted average heart rate (so a two-hour ride weighs more than a ten-minute
> walk), a maximum for the period, the per-workout effort shown on each row of the recent list,
> and the "Highest heart rate" best effort.
@@ -163,8 +244,8 @@ Each permission maps to a statistic the dashboard shows the user about their own
### READ_STEPS — Steps (and StepsCadence)
> Aggregated per workout and summed into the weekly step average and the "Most steps" best
> effort.
> Used by **My Fitness**, Amethyst's personal training dashboard. Aggregated per workout and
> summed into the weekly step average and the "Most steps" best effort it shows the user.
>
> Benefit to the user: for walking and hiking — and for many users the majority of their activity
> — step count is the metric they actually track, and a weekly average is how they judge whether
@@ -176,8 +257,9 @@ Each permission maps to a statistic the dashboard shows the user about their own
### READ_ELEVATION_GAINED — ElevationGained
> Aggregated per workout and summed into the weekly climb average and the "Biggest climb" best
> effort, and shown per workout in the recent list.
> Used by **My Fitness**, Amethyst's personal training dashboard. Aggregated per workout and
> summed into the weekly climb average and the "Biggest climb" best effort, and shown per
> workout in the recent list.
>
> Benefit to the user: elevation is what separates a flat week from a hard hilly one at identical
> distance and time. Without it, a user training on hills sees no difference between a punishing
@@ -211,7 +293,9 @@ Each permission maps to a statistic the dashboard shows the user about their own
> Settings → Compose Settings. The rest of the app is unaffected.
> - **In-app rationale.** Amethyst handles ACTION_SHOW_PERMISSIONS_RATIONALE (Android 13 and
> below) and ACTION_VIEW_PERMISSION_USAGE + CATEGORY_HEALTH_PERMISSIONS (Android 14+), showing a
> screen listing each data type, its purpose and a link to the privacy policy. The same screen
> is reachable from "What Amethyst reads" before any permission is requested.
> screen that names My Fitness, lists each data type against the statistic it produces, states
> the 4-week read window and the two screens that read, and links the privacy policy. The same
> screen is reachable from "What Amethyst reads" before any permission is requested. Its wording
> matches this declaration — see "Rejection 2" above for why that is checked.
> - **Privacy policy:** https://github.com/vitorpamplona/amethyst/blob/main/PRIVACY.md — see
> "Health and fitness data (Health Connect)".
+147
View File
@@ -0,0 +1,147 @@
# Play Console — Data safety form
Source text for the **Data safety** form (Play Console → *Monitor and improve → Policy and
programs → App content → Data safety*). Keep this file and the form in sync, the same way
`health-connect-play-declaration.md` tracks the Health apps declaration. Google cross-checks the
two against each other and against `PRIVACY.md`; a disagreement between them is what a reviewer
finds first.
## Why this file exists
The form previously said **"App doesn't collect or share data"** and **"Data isn't encrypted"**.
The first is wrong. The second is right, but only became defensible once the first was corrected:
with nothing collected there is no encryption answer to give, so the pair was self-contradictory.
The error came from reading "collect" as "the developer receives it". Google does not define it
that way:
> **"Collect" means transmitting data from your app off a user's device.** This includes data
> transmitted by libraries/SDKs and webviews controlled by your app.
Amethyst has no server, and that remains true and worth saying in the listing — but the test is
whether data *leaves the phone*, not who receives it. `PRIVACY.md` § "Data sent off-device"
already lists six categories that do.
**The trap:** Google's *user-initiated transfer* and *service provider* carve-outs are exceptions
to **sharing**, not to **collection**. A user tapping Post is a transfer they expect, so it need
not be declared as sharing — but it is still collection and must be declared.
## Two exemptions Amethyst genuinely earns
- **Private DMs — end-to-end encryption.** "User data that is sent off device, but that is
unreadable by you or anyone other than the sender and recipient as a result of end-to-end
encryption does not need to be disclosed." NIP-17/NIP-44 qualifies. Do not declare DM contents.
- **The My Fitness dashboard — on-device only.** "User data accessed by your app that is only
processed locally on the user's device and not sent off device does not need to be disclosed."
The dashboard reads Health Connect, computes on device, displays, and transmits nothing. Only a
workout the user *publishes* is collected.
## 1. Overall questions
| Question | Answer |
| --- | --- |
| Does your app collect or share any of the required user data types? | **Yes** |
| Is all of the user data collected by your app encrypted in transit? | **No** — see § 4 |
| Do you provide a way for users to request that their data is deleted? | **Yes** — see § 5 |
## 2. Data types — collected
Everything below is **optional** (the user chooses to post, to upload, to enable push, to connect
Health Connect) and its purpose is **App functionality** only. Amethyst ships no analytics, crash
reporting, advertising or attribution SDK — verified: no Crashlytics, Firebase Analytics, AppsFlyer,
Adjust, Sentry or Bugsnag anywhere in `libs.versions.toml` or any module's `build.gradle.kts`. So
never tick Analytics, Advertising or marketing, Fraud prevention, or Personalization.
| Category | Type | Collected | Shared | Why |
| --- | --- | --- | --- | --- |
| Location | Approximate location | Yes | No | A geohash the user attaches to a post or a location chat. `ACCESS_COARSE_LOCATION` only — never precise. |
| Personal info | Name | Yes | No | Display name in the user's published kind-0 profile, if they set one. |
| Personal info | User IDs | Yes | No | The Nostr public key accompanies every published event and the push registration. |
| Personal info | Other info | Yes | No | Profile bio, picture and website, if set. |
| Financial info | Other financial info | Yes | No | Zap amounts appear in published zap events; NWC relays payment instructions to the user's own wallet. |
| Health and fitness | Health info | Yes | No | Heart rate, **only** in a workout the user chooses to publish. |
| Health and fitness | Fitness info | Yes | No | Exercise, distance, steps, calories, elevation, **only** in a published workout. |
| Messages | Other in-app messages | Yes | No | Public posts, replies, articles. **Private DMs are excluded** — E2EE exemption. |
| Photos and videos | Photos / Videos | Yes | No | Uploads to the media server the user selects. |
| Audio | Voice or sound recordings | Yes | No | Voice notes, and speaking in a NIP-53 audio room. |
| Calendar | Calendar events | Yes | No | NIP-52 calendar events the user publishes. |
| Device or other IDs | Device or other IDs | Yes | **See § 3** | *(Play build, push enabled)* FCM registration token. |
## 3. Data types — not collected
**Contacts** (follow lists are Nostr public keys, not device contacts) · **Web browsing history** ·
**App info and performance** (no crash or analytics SDK) · **Files and docs** (covered by photos,
videos and audio) · **Personal info → Email address** · **Financial info → payment info or purchase
history** · **Precise location** · **App activity**.
### The one item needing your decision
The **push token** path is the only place a third party plausibly receives data outside a
user-initiated publish: `PRIVACY.md` says the token, public key and a preferred relay are
"registered with Google Firebase Cloud Messaging so a notification proxy can wake the app."
- If that proxy processes the data **on your behalf**, the *service provider* exception applies →
**Shared: No**.
- If it is an independent operator, it is a third party → **Shared: Yes** for *Device or other IDs*.
Decide this from how the proxy is actually operated. Everything else in the table is No because
publishing to relays is a user-initiated transfer the user reasonably expects.
> **This is the judgment call in the whole form.** Answering "shared with third parties" for
> *Health and fitness* would make the public label read that Amethyst shares health data with third
> parties — which is precisely the prohibited use the Health Connect policy names, and would
> undercut the declaration. "Collected, not shared" is both accurate under Google's definition and
> the answer to defend. Be ready to defend it: the user takes a deliberate action, sees the post,
> and confirms it.
## 4. Encrypted in transit — answer **No**, deliberately
Amethyst's own traffic is encrypted: relays are `wss://`, media uploads are HTTPS, and private DMs
are NIP-44 on top of that. But `amethyst/src/main/res/xml/network_security_config.xml` sets
`cleartextTrafficPermitted="true"` on the global `base-config`, because **a user must be able to
connect to any relay they choose, including a `ws://` one.** That is a deliberate product
decision, not an oversight: narrowing it to loopback and `.onion` would let this answer be "Yes",
and it was considered and rejected — cutting off plain `ws://` relays is not an acceptable price
for a nicer label.
Google only permits "yes" when encryption covers *all* collected data, so the honest answer is
**No**.
**That answer is not the problem, and it never was.** What made the old form incoherent was
pairing it with "App doesn't collect or share data" — with nothing collected there is no
encryption question to answer at all. Once § 2 declares collection truthfully, a "No" here is
simply accurate, and it is defensible in one sentence if anyone asks:
> Amethyst connects over TLS by default. Cleartext is possible only for a relay address the user
> typed in themselves, because the user chooses their own relays and the app does not override
> that choice.
Say the same thing in `PRIVACY.md` if it is ever queried, so the two agree.
### Known consequence, for a health reviewer
A user who configures a `ws://` relay and then publishes a workout sends that kind 1301 in
cleartext. Nothing in § 2 hides this, and the "No" above is what discloses it. If this is ever
raised in review, the options that preserve `ws://` entirely are to warn at the point a cleartext
relay is added, or to warn before publishing a health-derived event to one. **Neither is
implemented today** — recorded here so the choice is a choice rather than an oversight.
## 5. Data deletion
The developer runs no server and holds nothing, so there is no developer-held copy to request
deletion of. Users can:
- wipe everything local by clearing app storage or uninstalling (`PRIVACY.md` § "Data stored on
your device");
- delete an account's data in-app;
- request deletion of published events with NIP-09 — noting, as `PRIVACY.md` already says, that
relays may not honour it and public content should be assumed permanent.
Say this plainly rather than claiming deletion guarantees the protocol cannot give.
## 6. Keep these three in sync
The Health apps declaration, this form, and `PRIVACY.md` are one statement split across three
places. A reviewer reads all three. Before any resubmission, check that each data type here also
appears in `PRIVACY.md`, and that nothing here contradicts
`health-connect-play-declaration.md` § 4.