From da9f0eb963255f18f274d03b75a403ae01b590c8 Mon Sep 17 00:00:00 2001 From: HashEngineering Date: Wed, 13 Nov 2024 22:35:18 -0800 Subject: [PATCH] fix(dashpay): v11.0.3, voting and other fixes (#1323) * fix: update translations * fix: don't delete votes when updating * fix: update translations * fix: remove ANR which check low storage on Android 8+ * fix: handle visibility of buttons after calling checkUsername * fix: update About screen and include build number * fix: remove default endIcon in InputWrapper * v11.0.3 --- wallet/CHANGES | 18 + wallet/build.gradle | 20 +- wallet/res/layout/activity_about.xml | 509 +++++++++--------- wallet/res/values-de/strings-dashpay.xml | 6 +- wallet/res/values-el/strings-dashpay.xml | 7 +- wallet/res/values-es/strings-dashpay.xml | 42 +- wallet/res/values-fa/strings-dashpay.xml | 5 +- wallet/res/values-fil/strings-dashpay.xml | 3 - wallet/res/values-fr/strings-dashpay.xml | 40 +- wallet/res/values-id/strings-dashpay.xml | 3 - wallet/res/values-it/strings-dashpay.xml | 36 +- wallet/res/values-ja/strings-dashpay.xml | 7 +- wallet/res/values-ko/strings-dashpay.xml | 7 +- wallet/res/values-nl/strings-dashpay.xml | 7 +- wallet/res/values-pl/strings-dashpay.xml | 44 +- wallet/res/values-pt/strings-dashpay.xml | 42 +- wallet/res/values-ru/strings-dashpay.xml | 48 +- wallet/res/values-sk/strings-dashpay.xml | 7 +- wallet/res/values-tr/strings-dashpay.xml | 4 - wallet/res/values-uk/strings-dashpay.xml | 2 - wallet/res/values-zh-rTW/strings-dashpay.xml | 4 - wallet/res/values-zh/strings-dashpay.xml | 38 +- wallet/res/values/strings-extra.xml | 3 +- .../service/platform/PlatformSyncService.kt | 5 +- .../wallet/ui/dashpay/EditProfileViewModel.kt | 63 ++- .../wallet/ui/main/WalletActivityExt.kt | 18 +- .../wallet/ui/more/AboutActivity.kt | 7 +- .../voting/RequestUserNameViewModel.kt | 4 +- .../voting/RequestUsernameFragment.kt | 3 - 29 files changed, 604 insertions(+), 398 deletions(-) diff --git a/wallet/CHANGES b/wallet/CHANGES index 9012be115d..11e6ed26f1 100644 --- a/wallet/CHANGES +++ b/wallet/CHANGES @@ -1,4 +1,22 @@ Dash Wallet +v11.0.3 +* Improve Username Voting screen +* UI fixes +* Update translations +* Fix Username request and recover bugs +* Fix CrowdNode signup on Android 14 + +v11.0.2 +* Fix username requests +* Add DashPay Event tracking + +v11.0.1 +* Fix UI items + +v11.0.0 +* DashPay +* use dashj 21.1.1 + v10.3.2 * Fix ANR when using CoinJoin * Fix missing Send button on Home Screen diff --git a/wallet/build.gradle b/wallet/build.gradle index 83570261c0..d6e7624488 100644 --- a/wallet/build.gradle +++ b/wallet/build.gradle @@ -208,8 +208,8 @@ android { minSdkVersion 24 targetSdkVersion 34 // version code: MMmmppbb; MM = Major Version, mm = minor version, pp == patch version, bb = build - versionCode project.hasProperty('versionCode') ? project.property('versionCode') as int : 11000201 - versionName project.hasProperty('versionName') ? project.property('versionName') : "11.0.2" + versionCode project.hasProperty('versionCode') ? project.property('versionCode') as int : 11000312 + versionName project.hasProperty('versionName') ? project.property('versionName') : "11.0.3" multiDexEnabled true generatedDensities = ['hdpi', 'xhdpi'] vectorDrawables.useSupportLibrary = true @@ -346,16 +346,16 @@ android { } staging { applicationId = "org.dash.dashpay.testnet" - def imgurClientId = props.getProperty("UPHOLD_CLIENT_ID_SANDBOX") - def imgurClientSecret = props.getProperty("UPHOLD_CLIENT_SECRET_SANDBOX") - if (imgurClientId == null) { - imgurClientId = "\"UPHOLD_CLIENT_ID\"" + def upholdClientId = props.getProperty("UPHOLD_CLIENT_ID_SANDBOX") + def upholdClientSecret = props.getProperty("UPHOLD_CLIENT_SECRET_SANDBOX") + if (upholdClientId == null) { + upholdClientId = "\"UPHOLD_CLIENT_ID\"" } - if (imgurClientSecret == null) { - imgurClientSecret = "\"UPHOLD_CLIENT_SECRET\"" + if (upholdClientSecret == null) { + upholdClientSecret = "\"UPHOLD_CLIENT_SECRET\"" } - buildConfigField("String", "UPHOLD_CLIENT_ID", imgurClientId) - buildConfigField("String", "UPHOLD_CLIENT_SECRET", imgurClientSecret) + buildConfigField("String", "UPHOLD_CLIENT_ID", upholdClientId) + buildConfigField("String", "UPHOLD_CLIENT_SECRET", upholdClientSecret) def topperKeyId = props.getProperty("TOPPER_KEY_ID_SANDBOX", "\"TOPPER_KEY_ID\"") def topperWidgetId = props.getProperty("TOPPER_WIDGET_ID_SANDBOX", "\"TOPPER_WIDGET_ID\"") def topperPrivateKey = props.getProperty("TOPPER_PRIVATE_KEY_SANDBOX", "\"TOPPER_PRIVATE_KEY\"") diff --git a/wallet/res/layout/activity_about.xml b/wallet/res/layout/activity_about.xml index 462dcffb14..e41ae0e4dc 100644 --- a/wallet/res/layout/activity_about.xml +++ b/wallet/res/layout/activity_about.xml @@ -1,12 +1,11 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + android:paddingBottom="40dp"> + android:layout_marginStart="20dp" + tools:text="About Dash" /> - - - - - - - + android:orientation="horizontal" + android:layout_marginHorizontal="20dp" + android:layout_marginTop="3dp" > + + + + android:layout_marginHorizontal="20dp" + tools:text="DashJ 21.1.0" /> - - - - - - - - - - - - - - + android:layout_marginHorizontal="15dp" + android:layout_marginTop="15dp" + android:background="@drawable/rounded_background" + android:orientation="vertical" + android:paddingVertical="15dp" + android:theme="@style/SecondaryBackground"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + android:layout_marginTop="15dp" + android:gravity="center" + android:text="@string/about_copyright" + android:textAlignment="gravity" /> + android:gravity="center" + android:text="@string/about_license" + android:textAlignment="gravity" /> - - - - - - \ No newline at end of file diff --git a/wallet/res/values-de/strings-dashpay.xml b/wallet/res/values-de/strings-dashpay.xml index c4f67b7bf4..9786edcd11 100644 --- a/wallet/res/values-de/strings-dashpay.xml +++ b/wallet/res/values-de/strings-dashpay.xml @@ -269,7 +269,6 @@ Benutzernamen Manche Benutzernamen können blockiert werden Wenn genügend Mitglieder des Netzwerkes feststellen, dass ein Benutzername unangemessen ist, könne diese ihn sperren Abstimmung über Benutzernamen - Als Masternode-Besitzer kannst du abstimmen, um beantragte Benutzernamen zu bewilligen, bevor diese im Netzwerk erstellt werden.. Standardmäßige Filtereinstellung Die standardmäßige Filtereinstellung zeigt nur doppelte Benutzernamen über die noch NICHT abgestimmt wurde. Um alle strittigen Benutzernamen sehen zu können, ändere den Filter. Alles @@ -296,7 +295,6 @@ Benutzernamen Ich habe nicht zugestimmt. Beinhalted blockierte Votes - %d Block(s) Benutzernamen erstellen Bitte beachte, dass du dies in der Zukunft nicht mehr ändern kannst @@ -339,8 +337,6 @@ Benutzernamen Masternode IP-Adresse %d die Stimmen werden abgegeben, da du mehrere Abstimmungs-Schlüssel in deiner Wallet gespeichert hast Masternode Voting-Schlüssel hinzufügen - Deine Stimme wurde abgegeben. - Deine Stimmabgabe wurde abgebrochen. Schnelles Abstimmen Wenn du die Schaltfläche \"Für alle abstimmen\" tippst, stimmst du automatisch für alle gefilterten Benutzernamen (%d), die zuerst eingereicht wurden Stimme für alle @@ -417,4 +413,4 @@ Benutzernamen Gemixtes Guthaben Mixe deine Dash Um zu verhindern, dass andere Personen sehen können, an wen du Zahlungen vornimmst, wird empfohlen, dein Guthaben zu mixen, bevor du deinen Benutzernamen erstellst. - + diff --git a/wallet/res/values-el/strings-dashpay.xml b/wallet/res/values-el/strings-dashpay.xml index b80809c7b8..8bc0157011 100644 --- a/wallet/res/values-el/strings-dashpay.xml +++ b/wallet/res/values-el/strings-dashpay.xml @@ -88,7 +88,6 @@ Τέλος Topup Βρείτε έναν χρήστη στο Δίκτυο του Dash Αναζήτηση για χρήστη στο Dash Δίκτυο - πληκτρολογήστε το όνομα χρήστη για αναζήτηση εδώ Προσθήκη Νέας Επαφής Αποστολή Αιτήματος Επαφής Αποστολή αιτήματος επαφής @@ -269,7 +268,6 @@ Ορισμένα ονόματα χρηστών μπορούν να μπλοκαριστούν Εάν αρκετά μέλη του δικτύου διαπιστώσουν ότι ένα όνομα χρήστη είναι ακατάλληλο, μπορούν να το μπλοκάρουν. Ψηφοφορία ονόματος χρήστη - Ως ιδιοκτήτης ενός masternode μπορείτε να ψηφίσετε για να εγκρίνετε τα ζητούμενα ονόματα χρήστη πριν οι χρήστες μπορέσουν να τα δημιουργήσουν. Προεπιλεγμένη ρύθμιση φίλτρου Το προεπιλεγμένο φίλτρο εμφανίζει μόνο τα διπλά ονόματα χρηστών για τα οποία ΔΕΝ έχετε ψηφίσει, αλλά μπορείτε να δείτε όλα τα διαφιλονικούμενα ονόματα χρηστών αλλάζοντας το φίλτρο Όλα @@ -296,7 +294,6 @@ Δεν έχω εγκρίνει Έχει μπλοκάρει ψήφους - %d Μπλοκ(ς) Δημιουργήστε το όνομα χρήστη σας Παρακαλώ σημειώστε ότι δεν θα μπορείτε να το αλλάξετε στο μέλλον. @@ -339,8 +336,6 @@ Διεύθυνση IP του Masternode %d ψήφοι θα δοθούν καθώς έχετε αποθηκεύσει πολλαπλά κλειδιά ψηφοφορίας στο πορτοφόλι Προσθήκη κλειδιού ψηφοφορίας Masternode - Η ψήφος σας υποβλήθηκε. - Η ψήφος σας ακυρώθηκε. Γρήγορη Ψηφοφορία Πατώντας το κουμπί \"Ψηφίστε για όλους\", θα ψηφίσετε αυτόματα για όλα τα φιλτραρισμένα ονόματα χρηστών (%d) που υποβλήθηκαν πρώτα. Ψηφίστε για Όλους @@ -417,4 +412,4 @@ Υπόλοιπο Ανάμειξης Αναμείξτε τα Dash σας Για να αποτρέψετε άλλα άτομα από το να βλέπουν σε ποιον κάνετε πληρωμές, συνιστάται να αναμίξετε το υπόλοιπό σας πριν δημιουργήσετε το όνομα χρήστη σας. - + diff --git a/wallet/res/values-es/strings-dashpay.xml b/wallet/res/values-es/strings-dashpay.xml index 63af52e1fa..a26b717f51 100644 --- a/wallet/res/values-es/strings-dashpay.xml +++ b/wallet/res/values-es/strings-dashpay.xml @@ -88,7 +88,7 @@ de Dash Tarifa de recarga Encontrar un usuario en la red Dash Buscar un usuario en la red Dash - ingresa el nombre de usuario para buscar aquí + Buscar nombre de usuario Agregar un nuevo contacto Enviar solicitud de contacto Enviando solicitud de contacto @@ -269,7 +269,8 @@ de Dash Algunos nombres de usuario pueden ser bloqueados Si una cantidad suficiente de usuarios de la red determina que un nombre de usuario es inapropiado, pueden bloquearlo. Votación por nombre de usuario - Como propietario de un masternode, puedes votar para aprobar los nombres de usuario solicitados antes de que se creen en la red. + Como propietario de un masternode puedes votar para aprobar los nombres de usuario solicitados antes de que se creen en la red. + Puedes bloquear la creación de nombres de usuario que consideres inapropiados. Configuración de filtro predeterminada El filtro predeterminado muestra solo nombres de usuario duplicados por los que NO has votado, pero puedes ver todos los nombres de usuario en disputa cambiando el filtro. Todos @@ -296,7 +297,17 @@ de Dash Yo no he aprobado Ha bloqueado votos - + Desbloquear + + Bloque + Bloques + Bloques + + + Aprobación + Aprobaciones + Aprobaciones + %d Bloque(s) Crea tu nombre de usuario Ten en cuenta que no podrás cambiarlo en el futuro. @@ -316,6 +327,7 @@ de Dash Pedir detalles Revisa la publicación a continuación para verificar la propiedad de este nombre de usuario Vota para aprobar + Votar para bloquear Identidad Resultados Link @@ -334,13 +346,31 @@ de Dash Llave privada de votación de masternode Has introducido una clave inválida Has ingresado una llave que no está asociada a un Masternode activo + Ya has ingresado esta clave de masternode + Has introducido una clave que corresponde a la red de prueba, pero esta es la red principal. Debería verse así: %s + Has introducido una clave que corresponde a la red principal, pero esta es la red de prueba. Debería verse así: %s + Has introducido una clave de dirección en lugar de una clave privada de votación de masternode. Debe estar en formato WIF (%s) + Has introducido una clave en formato hexadecimal, pero debería estar en formato WIF (%s) + Has introducido una clave en formato hexadecimal, pero debería estar en formato WIF (%s) + Has introducido una clave privada demasiado corta. A continuación se muestra un ejemplo (%s) + Has introducido una clave privada con algunos caracteres incorrectos. A continuación se muestra un ejemplo (%s) + Has introducido una clave privada que contiene un carácter no válido. A continuación se muestra un ejemplo (%s) + Añade tus llaves de votación Las direcciones IP que aparecen a continuación están asociadas con esta billetera Dirección IP de Masternode %d Los votos se emitirán ya que tienes múltiples llaves de votación almacenadas en la billetera. Añadir llave de votación de Masternode - Tu voto fue enviado - Tu voto fue cancelado + No me preguntes de nuevo + Enviando tu voto para %s nombre de usuario + Votado por %s nombre de usuario + Cancelar tu voto para %s nombre de usuario + Votación cancelada para %s nombre de usuario + Bloqueo para %s nombre de usuario + Tú bloqueaste %s nombre de usuario + Error votando por %s nombre de usuario + Error al cancelar la votación para %s nombre de usuario + Error bloqueando %s nombre de usuario Votación rápida Al pulsar el botón \"Votar por todos\", votarás automáticamente por todos los nombres de usuario filtrados (%d) que fueron presentados primero Vota por todas @@ -417,4 +447,4 @@ de Dash Mezclar balance Mezcla tus Dash Para evitar que otras personas vean a quién realiza pagos, se recomienda mezclar tu saldo antes de crear tu nombre de usuario. - + diff --git a/wallet/res/values-fa/strings-dashpay.xml b/wallet/res/values-fa/strings-dashpay.xml index 5fe1670619..89589b43ea 100644 --- a/wallet/res/values-fa/strings-dashpay.xml +++ b/wallet/res/values-fa/strings-dashpay.xml @@ -294,7 +294,6 @@ مواردی که تائيد نکردم دارای رای‌های مسدود است - %dبلوک نام کاربری‌تان را ایجاد کنید لطفاً دقت داشته باشید که نمی‌توانید بعدا آن را تغییر دهید @@ -336,8 +335,6 @@ آی‌پی‌ آدرس مسترنود %dرای در نظر گرفته می شود چون چند کلید رای‌دهی در کیف پول‌تان دارید اضافه کردن کلید رای‌دهی مسترنود - رای‌تان ثبت شد - رای‌تان لغو شد رای‌دهی سریع با زدن دگمه «رای‌دهی برای همه»، به صورت خودکار به همه نام‌های کاربری فیلتر شده (%d) که ابتدا ثبت شدند رای می‌دهید رای‌دهی برای همه @@ -414,4 +411,4 @@ ترکیب موجودی دش‌تان را ترکیب کنید برای اینکه افراد دیگر نتوانند پرداخت‌هایتان را ببینند، توصیه می‌شود پیش از ایجاد نام کاربری، موجودی‌تان را ترکیب کنید. - + diff --git a/wallet/res/values-fil/strings-dashpay.xml b/wallet/res/values-fil/strings-dashpay.xml index 5adadf4871..e13121cca2 100644 --- a/wallet/res/values-fil/strings-dashpay.xml +++ b/wallet/res/values-fil/strings-dashpay.xml @@ -269,7 +269,6 @@ Username Maaaring i-block ang ilang mga username Kung matukoy ng sapat na network na hindi naaangkop ang isang username, maaari nilang i-block ito Pagboto ng username - Bilang may-ari ng masternode, maaari kang bumoto upang aprubahan ang mga hiniling na username bago ito gawin sa network. Default na setting ng filter Ang default na filter ay nagpapakita lamang ng mga duplicate na username na HINDI mo binoto, ngunit makikita mo ang lahat ng pinagtatalunang username sa pamamagitan ng pagpapalit ng filter Lahat @@ -339,8 +338,6 @@ Username Masternode IP address ipapalabas ang mga %d boto dahil marami kang voting key na nakaimbak sa wallet Magdagdag ng Masternode Voting Key - Naisumite ang iyong boto - Kinansela ang iyong boto Mabilis na Pagboto Sa pamamagitan ng pag-tap sa \"Vote for All\" na button, awtomatiko kang bumoto para sa lahat ng na-filter na username (%d) na unang isinumite Bumoto para sa Lahat diff --git a/wallet/res/values-fr/strings-dashpay.xml b/wallet/res/values-fr/strings-dashpay.xml index 849ac429fe..295617e09d 100644 --- a/wallet/res/values-fr/strings-dashpay.xml +++ b/wallet/res/values-fr/strings-dashpay.xml @@ -87,7 +87,7 @@ Frais de recharge Cherchez un utilisateur sur le réseau Dash Rechercher un utilisateur sur le réseau Dash - tapez ici le nom d\'utilisateur à chercher + Chercher un nom d\'utilisateur Ajouter un nouveau contact Envoyer une demande de contact Envoi de la requête de contact @@ -269,6 +269,7 @@ Si une proportion suffisante du réseau pense qu\'un nom d\'utilisateur est inapproprié, il peut le bloquer Vote des noms d\'utilisateur En tant que propriétaire de masternode, vous pouvez voter pour approuver les demandes de noms d\'utilisateur avant qu\'ils ne soient créés sur le réseau. + Vous pouvez bloquer la création de noms d\'utilisateur si vous les jugez inappropriés. Réglage de filtre par défaut Le filtre par défaut affiche uniquement les noms d\'utilisateur en double pour lesquels vous n\'avez PAS voté, mais vous pouvez voir tous les noms d\'utilisateur contestés en modifiant le filtre Tous @@ -295,7 +296,17 @@ Je n\'ai pas approuvé A des votes de blocage - + Débloquer + + Blocage + Blocages + Blocages + + + Approbation + Approbations + Approbations + %d bloc(s) Créez votre nom d\'utilisateur Veuillez noter que vous ne pourrez pas le changer plus tard @@ -315,6 +326,7 @@ Détails de la demande Veuillez relire les infos ci-dessous pour vérifier la propriété de ce nom d\'utilisateur Voter pour approuver + Voter pour bloquer Identité Résultats Lien @@ -333,13 +345,31 @@ Clé privée de vote de masternode Vous avez saisi une clé invalide Vous avez indiqué une clé qui n\'est pas associée à un masternode actif. + Vous avez déjà saisi cette clé de masternode + Vous avez saisi une clé pour le réseau de test, mais il s\'agit du réseau principal. Elle devrait ressembler à ceci : %s + Vous avez saisi une clé pour le réseau principal, mais il s\'agit du réseau de test. Elle devrait ressembler à ceci : %s + Vous avez saisi une clé d\'adresse au lieu d\'une clé privée de vote de masternode. Elle devrait être au format WIF (%s) + Vous avez saisi une clé en format hexadécimal, mais elle devrait être au format WIF (%s) + Vous avez saisi une clé en format hexadécimal, mais elle devrait être au format WIF (%s) + Vous avez saisi une clé privée trop courte. Voici un exemple (%s) + Vous avez saisi une clé privée qui contient quelques caractères incorrects. Voici un exemple (%s) + Vous avez saisi une clé privée contenant un caractère invalide. Voici un exemple (%s) + Ajoutez vos clés de vote Les adresses IP ci-dessous sont associées à ce portefeuille Adresse IP de masternode %d votes seront enregistrés car votre portefeuille possède plusieurs clés de vote Ajouter la clé de vote d\'un masternode - Votre vote a été soumis - Votre vote a été annulé + Ne plus me demander + Soumission de votre vote pour le nom d\'utilisateur %s + A voté pour le nom d\'utilisateur %s + Annulation de votre vote pour le nom d\'utilisateur %s + Vote annulé pour le nom d\'utilisateur %s + Blocage du nom d\'utilisateur %s + Vous avez bloqué le nom d\'utilisateur %s + Erreur lors du vote pour le nom d\'utilisateur %s + Erreur lors de l\'annulation du vote pour le nom d\'utilisateur %s + Erreur lors du blocage du nom d\'utilisateur %s Vote rapide En appuyant sur le bouton “Voter pour tous\", vous voterez automatiquement pour tous les noms d\'utilisateur filtrés (%d) qui ont été proposés en premier Voter pour tous @@ -416,4 +446,4 @@ Solde mélangé Mélangez vos dashs Pour empêcher d\'autres gens de voir à qui vous faites des paiements, il est recommandé de mélanger votre solde avant de créer votre nom d\'utilisateur. - + diff --git a/wallet/res/values-id/strings-dashpay.xml b/wallet/res/values-id/strings-dashpay.xml index 5993677986..0b31164413 100644 --- a/wallet/res/values-id/strings-dashpay.xml +++ b/wallet/res/values-id/strings-dashpay.xml @@ -269,7 +269,6 @@ Dash anda Beberapa nama pengguna dapat diblokir Jika cukup banyak jaringan yang menentukan bahwa nama pengguna tidak pantas, mereka dapat memblokirnya Voting nama pengguna - Sebagai pemilik masternode, Anda dapat memberikan suara untuk menyetujui nama pengguna yang diminta sebelum dibuat di jaringan.. Pengaturan filter default Filter default hanya menampilkan nama pengguna duplikat yang BELUM Anda pilih, tetapi Anda dapat melihat semua nama pengguna yang diperebutkan dengan mengubah filter Semua @@ -339,8 +338,6 @@ Dash anda Alamat IP masternode %d suara akan diberikan karena Anda memiliki beberapa kunci pemungutan suara yang disimpan di dompet Tambahkan Kunci Pemungutan Suara Masternode - Pilihan anda telah diserahkan - Pilihan anda telah dibatalkan Voting Cepat Dengan mengetuk tombol \"Pilih Semua\", Anda akan secara otomatis memilih semua nama pengguna yang difilter (%d) yang dikirimkan terlebih dahulu Pilih untuk semua diff --git a/wallet/res/values-it/strings-dashpay.xml b/wallet/res/values-it/strings-dashpay.xml index 837b473aa2..65749f111f 100644 --- a/wallet/res/values-it/strings-dashpay.xml +++ b/wallet/res/values-it/strings-dashpay.xml @@ -270,6 +270,7 @@ Username Se un numero sufficiente di membri della rete determina che un nome utente non è appropriato, possono bloccarlo Votazione Username contestati Come proprietario di un masternode puoi votare per approvare i nomi utente richiesti prima che vengano creati sulla rete. + Puoi bloccare la creazione dei nomi utente che ritieni inappropriati. Impostazione del filtro predefinita Il filtro predefinito mostra solo i nomi utente duplicati per i quali NON hai votato, ma puoi vedere tutti i nomi utente contestati modificando il filtro Tutte @@ -296,7 +297,17 @@ Username Non ho approvato Ha bloccato i voti - + Sbloccare + + Blocchi + Blocchi + Blocchi + + + Approvazioni + Approvazioni + Approvazioni + %d Blocco (i) Crea il tuo nome utente Tieni presente che non potrai modificarlo in futuro @@ -316,6 +327,7 @@ Username Richiedi dettagli Esamina il messaggio riportato di seguito per verificare la proprietà di questo nome utente Vota per approvare\n  + Vota per bloccare Identità Risultati Collegamento @@ -334,13 +346,31 @@ Username Chiave privata di voto Masternode Hai inserito una chiave non valida Hai inserito una chiave che non è associata ad un Masternode attivo + Hai già inserito questa chiave masternode + Hai inserito una chiave per testnet, ma questa è mainnet. Dovrebbe assomigliare a questo:%s + Hai inserito una chiave per mainnet, ma questa è testnet. Dovrebbe assomigliare a questo:%s + Hai inserito una chiave di indirizzo invece di una chiave privata di voto masternode. Dovrebbe essere in formato WIF (%s) + Hai inserito una chiave in formato esadecimale, ma dovrebbe essere in formato WIF (%s) + Hai inserito una chiave in formato esadecimale, ma dovrebbe essere in formato WIF (%s) + Hai inserito una chiave privata troppo corta. Ecco un esempio (%s) + Hai inserito una chiave privata che contiene alcuni caratteri errati. Ecco un esempio (%s) + Hai inserito una chiave privata con un carattere non valido. Ecco un esempio (%s) + Aggiungi le tue chiavi di voto L\' indirizzo(i) IP seguenti sono associati a questo portafoglio Indirizzo IP del Masternode %d i voti verranno espressi poiché nel portafoglio sono memorizzate più chiavi di voto Aggiungi la chiave di voto Masternode - Il tuo voto è stato inviato - Il tuo voto è stato annullato + Non chiedermelo più + Inviando il tuo voto per %s username + Votato per %s username + Annullamento del tuo voto per %s username + Voto annullato per %s username + Blocco per %s username + Hai bloccato %s username + Errore nel votare per %s username + Errore durante l\'annullamento del voto per %s username + Errore di blocco %s username Votazione veloce Toccando il pulsante \"Vota per tutti\", voterai automaticamente per tutti i nomi utente filtrati (%d) che sono stati presentati per primi Vota per tutti diff --git a/wallet/res/values-ja/strings-dashpay.xml b/wallet/res/values-ja/strings-dashpay.xml index 1e2b999c0a..f9b871367d 100644 --- a/wallet/res/values-ja/strings-dashpay.xml +++ b/wallet/res/values-ja/strings-dashpay.xml @@ -87,7 +87,6 @@ チャージ料金 Dashネットワークでユーザーを探す Dashネットワークのユーザーを検索 - ユーザー名を入力してここから検索 新しい連絡先を追加 連絡先リクエストを送信する 連絡先リクエストを送信中 @@ -268,7 +267,6 @@ 一部のユーザー名をブロックできます ネットワーク上の多数のユーザーがそのユーザー名を不適切と判断した場合、それをブロックできます ユーザー名投票 - マスターノードの所有者として、お客様がリクエストしたユーザー名に投票して承認されてから、ネットワーク上に作成できます。 デフォルトのフィルター設定 デフォルトのフィルターでは、お客様が投票していない重複したユーザー名のみが示されますが、フィルターを変更することですべての競合するユーザー名を確認できます 全て @@ -295,7 +293,6 @@ 承認しませんでした 投票をブロックしました - %dブロック ユーザー名の作成 一度決めたユーザー名は、今後変更することはできませんのでご注意ください @@ -338,8 +335,6 @@ マスターノードのIPアドレス ウォレットに複数の投票キーが保管されているため、%d票の投票が行われます マスターノードの投票キーを追加する - 投票が提出されました - 投票がキャンセルされました クイック投票 「全てに投票」ボタンをタップすると、絞り込んだユーザー名のうち、最初に投稿されたもの(%d)全てに自動的に投票されます 全てに投票 @@ -416,4 +411,4 @@ ミキシング残高 Dashをミキシングする 他者に送金先を閲覧されないようにするため、残高をミキシングしてからユーザー名を作成することを推奨します。 - + diff --git a/wallet/res/values-ko/strings-dashpay.xml b/wallet/res/values-ko/strings-dashpay.xml index 26c0f72b9a..a1154a5d7a 100644 --- a/wallet/res/values-ko/strings-dashpay.xml +++ b/wallet/res/values-ko/strings-dashpay.xml @@ -88,7 +88,6 @@ 충전 수수료 대시 네트워크에서 사용자를 검색합니다 대시 네트워크에서 사용자 검색 - 이곳에 검색할 사용자 이름을 입력하세요 새로운 연락처 추가하기 연락처 요청 전송 연락처 요청 전송중 @@ -269,7 +268,6 @@ 어떤 사용자 이름은 블록될 수 있습니다 사용자 이름이 부적절하다는 점에 충분한 네트워크가 의견을 함께 한다면 블록할 수 있습니다 사용자 이름 투표 - 마스터노드 소유자인 당신은, 사용자 이름이 네트워크상에 생성되기 전에 이를 위한 요청에 대해 투표할 수 있습니다.. 디폴트 필터 설정 이 디폴트 필터는 투표하지 않은 중복 사용자 아이디만 표시하지만, 필터를 변경하면 경합 중인 모든 사용자 아이디를 볼 수 있습니다. 모두 @@ -296,7 +294,6 @@ 승인하지 않았습니다 투표를 차단했습니다 - %d 블록 당신의 사용자 이름을 생성하세요 이를 다시 변경할 수 없다는 점에 주의하세요 @@ -339,8 +336,6 @@ 마스터노드 IP 주소 이 지갑에 수 개의 투표 키가 저장되어 있으므로 %d 표가 던져지게 됩니다 마스터노드 투표 키를 추가하세요 - 투표가 제출되었습니다 - 투표가 취소되었습니다 빠른 투표 \"모두 투표하기\" 버튼을 선택하면, 먼저 제출된 필터를 거친 모든 사용자 이름 (%d) 에 대해 자동으로 투표하게 됩니다 모두 투표하기 @@ -417,4 +412,4 @@ 믹스 잔고 당신의 대시를 믹스하세요 당신이 누구에게 송금하는 지를 아무도 알 수 없게 하기 위해서는, 사용자 이름을 만들기 전에 잔고를 믹싱할 것을 권장합니다. - + diff --git a/wallet/res/values-nl/strings-dashpay.xml b/wallet/res/values-nl/strings-dashpay.xml index f5a7d73078..325e05dcd0 100644 --- a/wallet/res/values-nl/strings-dashpay.xml +++ b/wallet/res/values-nl/strings-dashpay.xml @@ -88,7 +88,6 @@ gebruikersnaam Opwaardeerkosten Zoek een gebruiker op het Dash netwerk Zoek naar een gebruiker op het Dash netwerk - Voer hier de gebruikersnaam in om te zoeken Voeg een nieuw contact toe Contactverzoek verzenden Contactverzoek verzenden @@ -270,7 +269,6 @@ gebruikersnaam Sommige gebruikersnamen kunnen worden geblokkeerd. Als genoeg mensen op het netwerk bepalen dat een gebruikersnaam ongepast is, kunnen ze deze blokkeren. Stemmen op gebruikersnamen - Als eigenaar van een Masternode kan je stemmen om aangevraagde gebruikersnamen goed te keuren voordat ze op het network worden aangemaakt. Standaard filterinstelling Het standaardfilter toont alleen dubbele gebruikersnamen waar je NIET op hebt gestemd, maar je kan alle betwiste gebruikersnamen zien door het filter te wijzigen Alles @@ -297,7 +295,6 @@ gebruikersnaam Ik heb het niet goedgekeurd Heeft geblokkeerde stemmen - %d Block(s) Maak je gebruikersnaam aan Let op dat je deze in de toekomst niet meer kunt wijzigen @@ -340,8 +337,6 @@ gebruikersnaam Masternode IP adres Er zullen %d stemmen worden uitgebracht omdat je meerdere stemsleutels in de portemonnee hebt opgeslagen. Voeg Masternode stemsleutel toe - je stem is verzonden - Je stem is geannuleerd Snel stemmen Door op de knop \"Stem op Alles\" te drukken, stem je automatisch voor alle gefilterde gebruikersnamen (%d) die als eerste zijn ingediend. Stem voor alle @@ -418,4 +413,4 @@ gebruikersnaam Gemixt saldo Mix je Dash Om te voorkomen dat anderen kunnen zien aan wie je betalingen doet, raden wij u aan om je saldo te mixen voordat je je gebruikersnaam aanmaakt. - + diff --git a/wallet/res/values-pl/strings-dashpay.xml b/wallet/res/values-pl/strings-dashpay.xml index c44466121f..65a5d74ae8 100644 --- a/wallet/res/values-pl/strings-dashpay.xml +++ b/wallet/res/values-pl/strings-dashpay.xml @@ -87,7 +87,7 @@ Opłata za doładowanie Znajdź użytkownika na Sieci Dash Szukaj użytkownika na Sieci Dash - tutaj wpisz nazwę użytkownika, którą chcesz znaleźć + Szukaj nazwy użytkownika Dodaj Nowy Kontakt Wyślij zaproszenie do kontaktów Wysyłanie zaproszenia do kontaktów @@ -268,7 +268,8 @@ Niektóre nazwy użytkowników mogą zostać zablokowane Jeśli wystarczająca liczba użytkowników w sieci uzna, że ​​nazwa użytkownika jest nieodpowiednia, mogą oni ją zablokować Głosowanie nad nazwą użytkownika - Jako właściciel Masternoda możesz głosować nad zatwierdzeniem żądanych nazw użytkowników, zanim zostaną one utworzone w sieci. + Jako właściciel masternoda możesz głosować nad zatwierdzeniem żądanych nazw użytkowników zanim zostaną one stworzone w sieci. + Możesz zablokować tworzenie nazw użytkowników, które uważasz za niewłaściwe lub wulgarne. Domyślne ustawienie filtra Domyślny filtr pokazuje tylko zduplikowane nazwy użytkowników, na które nie głosowałeś, ale jeśli zmienisz filtr to możesz zobaczyć wszystkie nazwy użytkowników które są kwestionowane Całość @@ -295,7 +296,19 @@ Nie zatwierdziłem Ma głosy za zablokowaniem - + Odblokuj + + Blok + Bloki + Bloków + Bloków + + + Zatwierdzenie + Zatwierdzenia + Zatwierdzeń + Zatwierdzenia + %d głos(ów) za zablokowaniem Stwórz swoją nazwę użytkownika Pamiętaj, że nie będziesz mógł tego zmienić w przyszłości @@ -315,6 +328,7 @@ Zarządaj szczegółów Sprawdź poniższy wpis, aby zweryfikować, czy ta nazwa użytkownika należy do ciebie Głosuj, aby zatwierdzić + Głosuj za zablokowaniem Tożsamość Wyniki Link @@ -333,13 +347,31 @@ Prywatny Klucz Używany do głosowania przez Masternoda Wpisałeś nieprawidłowy klucz Podałeś klucz, który nie jest powiązany z żadnym aktywnym Masternodem + Wprowadziłeś już ten klucz masternoda + Wprowadziłeś klucz, który jest dla sieci testowej, ale to jest główna sieć. Klucz dla sieci głównej powinien wyglądać tak: %s + Wprowadziłeś klucz, który jest dla sieci głównej, ale to jest sieć testowa. Klucz dla sieci testowej powinien wyglądać tak: %s + Wprowadzono klucz adresu zamiast klucza do głosowania. Klucz do głosowania powinien być w formacie WIF (%s) + Wprowadzono klucz w formacie hex, ale powinien on być w formacie WIF (%s) + Wprowadzono klucz w formacie hex, ale powinien on być w formacie WIF (%s) + Wprowadziłeś za krótki klucz prywatny. Oto przykład jak powinien wyglądać klucz prywatny (%s) + Wprowadziłeś klucz prywatny, który zawiera kilka nieprawidłowych znaków. Oto przykład jak powinien wyglądać klucz prywatny (%s) + Wprowadzono klucz prywatny, który zawiera nieprawidłowy znak. Oto przykład (%s) + Dodaj swoje klucze do głosowania Poniższy adres(y) IP są powiązane z tym portfelem Adres IP masternoda %d głosów będzie oddawanych, jeśli masz wiele kluczy do głosowania zapisanych w portfelu Dodaj klucz głosowania Masternoda - Twój głos został przesłany - Twój głos został anulowany + Nie pytaj mnie ponownie + Wysyłanie głosu na nazwę %s + Zagłosowano na nazwę %s + Anulowanie głosu na nazwę %s + Głos na nazwę %s został anulowany + Blokowanie głosu na nazwę %s + Zablokowałeś nazwę %s + Wystąpił błąd podczas głosowania na nazwę %s + Wystąpił błąd podczas anulowania głosu na nazwę %s + Wystąpił błąd podczas blokowania głosu na nazwę %s Szybkie Głosowanie Klikając przycisk „Głosuj na wszystkie”, automatycznie zagłosujesz na wszystkie filtrowane nazwy użytkowników (%d), które zostały przesłane jako pierwsze Głosuj nad wszyskimi @@ -416,4 +448,4 @@ Saldo wymieszanych funduszy Miksuj swoje fundusze Dash Aby uniemożliwić innym osobom śledzenie komu wysyłasz płatności, zaleca się mieszanie salda przed utworzeniem nazwy użytkownika. - + diff --git a/wallet/res/values-pt/strings-dashpay.xml b/wallet/res/values-pt/strings-dashpay.xml index 4532690421..c9b0abb98d 100644 --- a/wallet/res/values-pt/strings-dashpay.xml +++ b/wallet/res/values-pt/strings-dashpay.xml @@ -88,7 +88,7 @@ Dash Taxa de Recarregamento Encontre um usuário na rede Dash Pesquisar um Usuário na Rede Dash - digite o nome de usuário para pesquisar aqui + Pesquisar nome de usuário Adicione um Novo Contato Enviar Solicitação de Contato Enviando Solicitação de Contato @@ -269,7 +269,8 @@ Dash Algumas contas de usuário podem ser bloqueadas Se um número suficiente de pessoas na rede determinar que um nome de usuário é inapropriado, elas podem bloqueá-lo Votação de Nomes de Usuário - Como proprietário de um masternode, você pode votar para aprovar nomes de usuário solicitados antes que eles sejam criado na rede.. + Como proprietário de um masternode, você pode votar para aprovar nomes de usuário solicitados antes que sejam criados na rede. + Você pode bloquear a criação de nomes de usuário que considerar inapropriados. Configuração de filtro padrão O filtro padrão mostra apenas nomes de usuário duplicados nos quais você NÃO votou, mas você pode ver todos os nomes de usuário contestados alterando o filtro Todos @@ -296,7 +297,17 @@ Dash Eu não aprovei Tem votos bloqueados - + Desbloquear + + Bloqueio + Bloqueios + Bloqueios + + + Aprovação + Aprovações + Aprovações + %d Bloco(s) Criar seu nome de usuário Por favor, observe que você não poderá alterar isso no futuro @@ -316,6 +327,7 @@ Dash Detalhes da solicitação Revise a postagem abaixo para verificar a propriedade deste nome de usuário Votar para Aprovar + Vote para Bloquear Identidade Resultados Link @@ -334,13 +346,31 @@ Dash Chave Privada de votação do Masternode Você inseriu uma chave inválida Você inseriu uma chave que não está associada a um Masternode ativo + Você já inseriu essa chave de masternode + A chave inserida é para a testnet, mas este ambiente é da mainnet. A chave deve se parecer com esta: %s + A chave inserida é para a mainnet, mas este ambiente é da testnet. A chave deve se parecer com esta: %s + Você inseriu uma chave de endereço em vez de uma chave privada de votação do masternode. A chave deve estar no formato WIF (%s) + Você inseriu uma chave no formado hex, mas ela deve estar no formato WIF (%s) + Você inseriu uma chave no formado hex, mas ela deve estar no formato WIF (%s) + Você inseriu uma chave privada muito curta. Aqui está um exemplo (%s) + Você inseriu uma chave privada com alguns caracteres incorretos. Aqui está um exemplo (%s) + Você inseriu uma chave privada com um caractere inválido. Aqui está um exemplo (%s) + Adicione suas chaves de votação Os endereços de IP abaixo estão associados a esta carteira Endereço IP do Masternode %d votos serão contabilizados, pois você possui várias chaves de votação armazenadas na carteira  Adicionar Chave de Votação de Masternode - Seu voto foi enviado - Seu voto foi cancelado + Não me pergunte novamente + Enviando seu voto para o nome de usuário %s. + Votado no nome de usuário %s. + Cancelando seu voto para o nome de usuário %s. + Voto cancelado para o nome de usuário %s. + Bloqueando o nome de usuário %s. + Você bloqueou o nome de usuário %s. + Erro ao votar no nome de usuário %s. + Erro ao cancelar o voto para o nome de usuário %s. + Erro ao bloquear o nome de usuário %s. Votação Rápida Ao clicar no botão \"Votar em todos\", você votará automaticamente em todos os nomes de usuário filtrados (%d) que foram enviados primeiro Votar em todos @@ -417,4 +447,4 @@ Dash Saldo da mistura Mescle seu Dash Para ajudar a evitar que outras pessoas vejam para quem você faz pagamentos, é recomendável misturar seu saldo antes de criar seu nome de usuário. - + diff --git a/wallet/res/values-ru/strings-dashpay.xml b/wallet/res/values-ru/strings-dashpay.xml index 5255dc78b9..af280f6f9a 100644 --- a/wallet/res/values-ru/strings-dashpay.xml +++ b/wallet/res/values-ru/strings-dashpay.xml @@ -111,7 +111,7 @@ Dash Запросы на добавление Добавить новый контакт Запросы на добавление в контакты (%d) - Запросы на добавление\n + Запросы на добавление Посмотреть всё Мои контакты Упорядочить по: @@ -263,13 +263,14 @@ Dash Оплатите сейчас, а в случае, если имя пользователя не одобрят, вы сможете создать другое без дополнительной платы Если ваш запрос не одобрили Автоматически одобряются те имена пользователей, где есть число от 2-9, а длина больше 20 символов - Голосование понадобится только в определенных случаях + Голосование понадобится только в определённых случаях Сеть Dash должна одобрить имя пользователя, и только после этого оно будет создано. Что такое голосование за имя пользователя\? Некоторые Имена пользователей могут быть заблокированы Если значительная часть сети Dash сочтёт имя пользователя неподходящим, его могут заблокировать. Голосование за имя пользователя - Будучи владельцем мастерноды, вы можете голосовать за одобрение имён пользователей перед их созданием в сети. + Как владелец мастерноды, вы можете голосовать за одобрение запрашиваемых имён пользователей до их создания в сети. + Вы можете заблокировать создание имён пользователей, которые, по вашему мнению, являются неподходящими. Настройки фильтра по умолчанию По умолчанию фильтр показывает только повторяющиеся имена пользователей, за которые вы НЕ голосовали, но при смене настроек фильтра можно посмотреть все спорные имена пользователей Все @@ -296,7 +297,19 @@ Dash Не одобрено мной Есть заблокированные голоса - + Разблокировать + + Блок + Блока + Блоков + Против + + + Голос \"За\" + Голоса \"За\" + Голосов \"За\" + За + %d Блок(ов) Создать имя пользователя Обратите внимание, что в будущем вы не сможете его изменить @@ -316,6 +329,7 @@ Dash Узнать подробности Изучите сообщение ниже, чтобы подтвердить владение этим именем пользователя Одобрить + Голосовать за Блок ID Результаты Ссылка @@ -334,13 +348,31 @@ Dash Приватный ключ для голосования мастерноды Вы ввели неверный ключ Вы ввели ключ, который не связан с активной мастернодой. + Вы уже вводили этот ключ мастерноды + Вы ввели ключ для тестовой сети, а это - основная сеть. Ключ должен выглядеть так: %s + Вы ввели ключ для основной сети, а это - тестовая сеть. Ключ должен выглядеть так: %s + Вы ввели адресный ключ вместо приватного ключа мастерноды для голосования. Он должен быть в формате WIF (%s) + Вы ввели ключ в шестнадцатеричном формате, а он должен быть в формате WIF (%s) + Вы ввели ключ в шестнадцатеричном формате, а он должен быть в формате WIF (%s) + Вы ввели слишком короткий приватный ключ. Вот как он должен выглядеть (%s) + Вы ввели приватный ключ, который содержит некорректные символы. Вот как он должен выглядеть: (%s) + Вы ввели приватный ключ, который содержит неверный символ. Вот как он должен выглядеть: (%s) + Введите ключ для голосования - С этим кошельком связаны следующие IP-адреса + С этим кошельком(-ами) связаны следующие IP-адреса IP-адрес мастерноды В вашем кошельке храниться несколько ключей для голосования, поэтому будет отдано %d голосов. Введите ключ для голосования мастерноды - Ваш голос учтён - Ваш голос отозван + Не спрашивать снова + Голосовать \"за\" имя пользователя %s + Голос отдан за имя пользователя %s + Отзывается голос за имя пользователя %s + Отозвать голос за имя пользователя %s + Блокирование имени пользователя %s + Вы заблокировали имя пользователя %s + Ошибка при голосовании за имя пользователя %s + Ошибка при отмене голосования за имя пользователя %s + Ошибка при блокировании имени пользователя %s Быстрое голосование Нажав кнопку \"Голосовать за все\" вы автоматически проголосуете за все отфильтрованные имена пользователей (%d), которые были поданы первыми Голосовать за все @@ -417,4 +449,4 @@ Dash Перемешать баланс Перемешайте свои Dash Чтобы никто не смог узнать, кому вы отправляете платежи, рекомендуется перемешать баланс до создания имени пользователя. - + diff --git a/wallet/res/values-sk/strings-dashpay.xml b/wallet/res/values-sk/strings-dashpay.xml index e730e49652..dbeec27250 100644 --- a/wallet/res/values-sk/strings-dashpay.xml +++ b/wallet/res/values-sk/strings-dashpay.xml @@ -88,7 +88,6 @@ používateľské meno Poplatok za doplnenie Nájsť používateľa v sieti Dash Vyhľadať používateľa v sieti Dash - tu vyhľadajte používateľské meno Pridať nový kontakt Poslať žiadosť o kontakt Odosielanie žiadosti o kontakt @@ -269,7 +268,6 @@ používateľské meno Niektoré používateľské mená môžu byť zablokované Ak dostatočná časť siete zistí, že používateľské meno je nevhodné, môže ho zablokovať Hlasovanie o používateľskom mene - Ako vlastník Masternode môžete hlasovaním schváliť požadované používateľské mená pred ich vytvorením v sieti. Predvolené nastavenie filtra Predvolený filter zobrazuje iba duplicitné používateľské mená, za ktoré ste NEHLASOVALI, ale zmenou filtra môžete zobraziť všetky sporné používateľské mená Všetko @@ -296,7 +294,6 @@ používateľské meno Neschválil som Má zablokované hlasy - %d Blok(y) Vytvorte si používateľské meno Upozorňujeme, že v budúcnosti ho už nebudete môcť zmeniť @@ -339,8 +336,6 @@ používateľské meno IP adresa Masternode Bude odovzdaných %d hlasov, pretože v peňaženke máte uložených viacero hlasovacích kľúčov Pridať hlasovací kľúč Masternode - Váš hlas bol odoslaný - Váš hlas bol zrušený Rýchle hlasovanie Klepnutím na tlačidlo „Hlasovať za všetkých“ budete automaticky hlasovať za všetky filtrované používateľské mená (%d), ktoré boli odoslané ako prvé Hlasovať za všetkých @@ -417,4 +412,4 @@ používateľské meno Miešaný zostatok Namiešajte váš Dash Ak chcete zabrániť tomu, aby ostatní ľudia videli, komu uskutočňujete platby, odporúča sa pred vytvorením používateľského mena zmiešať zostatok. - + diff --git a/wallet/res/values-tr/strings-dashpay.xml b/wallet/res/values-tr/strings-dashpay.xml index a864876618..e5c105bc89 100644 --- a/wallet/res/values-tr/strings-dashpay.xml +++ b/wallet/res/values-tr/strings-dashpay.xml @@ -87,7 +87,6 @@ Yükleme Ücreti Dash Ağında bir kullanıcı bulun Dash Ağındaki bir Kullanıcıyı Ara - Arama yapmak için kullanıcı adını buraya girin Yeni Kişi Ekle İletişim İsteği Gönderin İletişim Talebi Gönderme @@ -290,7 +289,6 @@ Onayladım Onaylamadım - Kullanıcı adınızı oluşturun Kullanıcı Adı İste Dash ağı bu kullanıcı adına oy verecek. Sonuçları %s tarihinde size bildireceğiz. @@ -325,8 +323,6 @@ Ana düğüm IP adresi Cüzdanınızda birden fazla oylama anahtarı saklandığı için %d oy kullanılacak Ana Düğüm Oylama Anahtarı - Oyunuz gönderildi - Oyunuz iptal edildi Hızlı Oylama \"Hepsine Oy Ver\" düğmesine tıklayarak, ilk gönderilen filtrelenmiş kullanıcı adlarının (%d) tümüne otomatik olarak oy vereceksiniz Herkese Oy Ver diff --git a/wallet/res/values-uk/strings-dashpay.xml b/wallet/res/values-uk/strings-dashpay.xml index 8bbc71af2e..f7f3962449 100644 --- a/wallet/res/values-uk/strings-dashpay.xml +++ b/wallet/res/values-uk/strings-dashpay.xml @@ -325,8 +325,6 @@ IP-адреса Мастернод %d голоси будуть віддані, оскільки у вас є кілька ключів для голосування, які зберігаються в гаманці Додати ключі голосування Мастернод - Ваш голос подано - Ваш голос скасовано Швидке голосування Натиснувши кнопку «Голосувати за всіх», ви автоматично проголосуєте за всі відфільтровані імена користувачів (%d), які були подані першими Голосувати за всіх diff --git a/wallet/res/values-zh-rTW/strings-dashpay.xml b/wallet/res/values-zh-rTW/strings-dashpay.xml index 70c102e3ac..615aea58ec 100644 --- a/wallet/res/values-zh-rTW/strings-dashpay.xml +++ b/wallet/res/values-zh-rTW/strings-dashpay.xml @@ -269,7 +269,6 @@ 某些使用者名稱可能會被阻止 如果有足夠的網路確定使用者認為名稱不合適,他們可以阻止它 用戶名投票 - 作為主節點所有者,您可以在網路上建立請求的使用者名稱之前投票批准它們。 預設過濾器設定 預設過濾器僅顯示您未投票的重複用戶名,但您可以透過更改過濾器來查看所有有爭議的用戶名 所有 @@ -296,7 +295,6 @@ 我己否決的 已阻止投票 - %d 區塊 建立您的用戶名 請注意,您未來將無法更改它 @@ -339,8 +337,6 @@ 主節點IP位址 %d 由於您的錢包中儲存了多個投票密鑰,因此將進行投票 新增主節點投票金鑰 - 您的投票已提交 - 您的投票已被取消 快速投票 點擊 \"為所有人投票\" 按鈕,您將自動為首先提交的所有已過濾用戶名 (%d) 投票 給所有人投票 diff --git a/wallet/res/values-zh/strings-dashpay.xml b/wallet/res/values-zh/strings-dashpay.xml index 22babef97b..e99ee78fea 100644 --- a/wallet/res/values-zh/strings-dashpay.xml +++ b/wallet/res/values-zh/strings-dashpay.xml @@ -88,7 +88,7 @@ 充值费用 在Dash网络上查找用户 在Dash网络上搜索用户 - 这里输入用户名来搜索 + 搜索用户名 添加新朋友 发送朋友申请 发送好友申请 @@ -269,7 +269,8 @@ 一些用户名会被禁止 如果足够的网络节点认为此用户名不合适, 他们能够屏蔽它 用户名投票 - 作为主节点持有者, 您可以在用户名被在网络上创建之前投票通过这些在申请中的用户名.. + 作为主节点持有者, 您可以在用户名被在网络上创建之前投票通过这些在申请中的用户名. + 若您认为不合适您可以禁止用户名的创建. 默认过滤器设置 默认过滤器仅显示您未投票的重复用户名, 但您可以通过更改过滤器来查看所有有争议的用户名 所有 @@ -296,7 +297,13 @@ 我已否决的 已阻止投票 - + 解禁 + + 禁止的 + + + 通过的 + %d (多个)区块 创建您的用户名 请注意您在之后将无法进行修改 @@ -316,6 +323,7 @@ 申请的细节 查看下方内容来验证此用户名的所有权 投票通过 + 投票禁止 身份 结果 链接 @@ -334,13 +342,31 @@ 主节点投票私钥 您已输入了无效的密钥 您输入的钥匙未与激活的主节点关联 + 您已经输入了此主节点密钥 + 您输入的私钥是用于测试网络的, 但此处是主网. 看起来应是这样的: %s + 您输入的私钥是用于主网的, 但此处是测试网络. 看起来应是这样的: %s + 您输入的是地址公钥而不是主节点投票私钥. 它应该是WIF格式 (%s) + 您输入的密钥是hex格式, 它应该是WIF格式 (%s) + 您输入的密钥是hex格式, 它应该是WIF格式 (%s) + 您输入的私钥太短了. 这里是示例 (%s) + 您输入的私钥包含了一些错误的字符. 这里是示例 (%s) + 您输入的私钥包含了一个无效的字符. 这里是示例 (%s) + 添加您的投票私钥 下列的 (多个) IP 地址与这个钱包相关联 主节点 IP 地址 由于您的钱包存储了多个投票私钥, 您可以进行多次 %d 投票 添加主节点投票私钥 - 您的投票已被提交 - 您的投票已被取消 + 不在询问 + 正在提交您对 %s 用户名的投票 + 已对 %s 用户名投票 + 正在取消您对 %s 用户名的投票 + 已取消对 %s 用户名的投票 + 正禁止 %s 用户名 + 您禁止了 %s 用户名 + 对 %s 用户名投票时出错 + 对 %s 用户名取消投票时出错 + 正禁止 %s 用户名时出错 快速投票 通过点击“投给所有”按钮, 您将自动为所有最先提交的过滤用户名 (%d) 投票 投给所有 @@ -417,4 +443,4 @@ 混币余额 混币您的 Dash 为了防止其他人看到您的付款对象, 建议您在创建用户名之前对您的 Dash 进行混币. - + diff --git a/wallet/res/values/strings-extra.xml b/wallet/res/values/strings-extra.xml index 9d41adf50d..113f81ef93 100644 --- a/wallet/res/values/strings-extra.xml +++ b/wallet/res/values/strings-extra.xml @@ -297,7 +297,8 @@ Copyright © 2023 Dash Core Group GNU General Public License v3.0 https://github.com/dashevo/dash-wallet - Dash Wallet %s + DashPay Wallet %s + (%d) Last Explore device sync Last Explore server update Firebase installation ID diff --git a/wallet/src/de/schildbach/wallet/service/platform/PlatformSyncService.kt b/wallet/src/de/schildbach/wallet/service/platform/PlatformSyncService.kt index f2b3741d18..68e5e6a5dc 100644 --- a/wallet/src/de/schildbach/wallet/service/platform/PlatformSyncService.kt +++ b/wallet/src/de/schildbach/wallet/service/platform/PlatformSyncService.kt @@ -1142,10 +1142,11 @@ class PlatformSynchronizationService @Inject constructor( currentRequestList.forEach { request -> val voteContender = platformRepo.getVoteContenders(request.normalizedLabel) if (voteContender.winner.isPresent) { + // remove request usernameRequestDao.remove(request.requestId) + // remove related votes + usernameVoteDao.remove(request.normalizedLabel) } - // remove related votes - usernameVoteDao.remove(request.normalizedLabel) } // check votes and remove those from previous vote polls usernameVoteDao.getAllVotes().forEach { vote -> diff --git a/wallet/src/de/schildbach/wallet/ui/dashpay/EditProfileViewModel.kt b/wallet/src/de/schildbach/wallet/ui/dashpay/EditProfileViewModel.kt index f657d1217a..8de0fd5f18 100644 --- a/wallet/src/de/schildbach/wallet/ui/dashpay/EditProfileViewModel.kt +++ b/wallet/src/de/schildbach/wallet/ui/dashpay/EditProfileViewModel.kt @@ -74,7 +74,6 @@ class EditProfileViewModel @Inject constructor( dashPayProfileDao: DashPayProfileDao, val platformRepo: PlatformRepo ) : BaseProfileViewModel(blockchainIdentityDataDao, dashPayProfileDao) { - enum class ProfilePictureStorageService { GOOGLE_DRIVE, IMGUR } @@ -126,28 +125,39 @@ class EditProfileViewModel @Inject constructor( private var lastAttemptedProfile: DashPayProfile? = null - fun broadcastUpdateProfile(displayName: String, publicMessage: String, avatarUrl: String, - uploadService: String = "", localAvatarUrl: String = "") { - + fun broadcastUpdateProfile( + displayName: String, + publicMessage: String, + avatarUrl: String, + uploadService: String = "", + localAvatarUrl: String = "" + ) { logProfileInfoEvents(displayName, publicMessage, avatarUrl) val dashPayProfile = dashPayProfile.value!! val avatarFingerprintBytes = avatarFingerprint?.run { ProfilePictureHelper.toByteArray(this) } - val updatedProfile = DashPayProfile(dashPayProfile.userId, dashPayProfile.username, - displayName, publicMessage, avatarUrl, avatarHash?.bytes, avatarFingerprintBytes, - dashPayProfile.createdAt, dashPayProfile.updatedAt) + val updatedProfile = DashPayProfile( + dashPayProfile.userId, + dashPayProfile.username, + displayName, + publicMessage, + avatarUrl, + avatarHash?.bytes, + avatarFingerprintBytes, + dashPayProfile.createdAt, + dashPayProfile.updatedAt + ) lastAttemptedProfile = updatedProfile - UpdateProfileOperation(walletApplication).create(updatedProfile, uploadService, - localAvatarUrl).enqueue() + UpdateProfileOperation(walletApplication).create(updatedProfile, uploadService, localAvatarUrl).enqueue() } fun retryBroadcastProfile() { if (lastAttemptedProfile != null) { UpdateProfileOperation(walletApplication) - .create(lastAttemptedProfile!!, "", "") - .enqueue() + .create(lastAttemptedProfile!!, "", "") + .enqueue() } } @@ -182,8 +192,8 @@ class EditProfileViewModel @Inject constructor( val result = MutableLiveData>() val client = OkHttpClient() val request = Request.Builder() - .url(pictureUrl) - .build() + .url(pictureUrl) + .build() client.newCall(request).enqueue(object : Callback { override fun onFailure(call: Call, e: IOException) { result.value = Resource.error(e, null) @@ -220,8 +230,8 @@ class EditProfileViewModel @Inject constructor( return suspendCoroutine { continuation -> val client = OkHttpClient() val request = Request.Builder() - .url(pictureUrl) - .build() + .url(pictureUrl) + .build() client.newCall(request).enqueue(object : Callback { override fun onFailure(call: Call, e: IOException) { continuation.resumeWithException(e) @@ -259,14 +269,14 @@ class EditProfileViewModel @Inject constructor( viewModelScope.launch(Dispatchers.IO) { val imgurUploadUrl = "https://api.imgur.com/3/upload" val client = OkHttpClient.Builder() - .connectTimeout(60, TimeUnit.SECONDS) - .writeTimeout(60, TimeUnit.SECONDS) - .readTimeout(30, TimeUnit.SECONDS).build() + .connectTimeout(60, TimeUnit.SECONDS) + .writeTimeout(60, TimeUnit.SECONDS) + .readTimeout(30, TimeUnit.SECONDS).build() val requestBuilder = Request.Builder().header("Authorization", - "Client-ID ${BuildConfig.IMGUR_CLIENT_ID}") + "Client-ID ${BuildConfig.IMGUR_CLIENT_ID}") - //Delete previous profile Picture + // Delete previous profile Picture val imgurDeleteHash = config.imgurDeleteHash if (imgurDeleteHash.isNotEmpty()) { val imgurDeleteUrl = "https://api.imgur.com/3/image/$imgurDeleteHash" @@ -309,7 +319,7 @@ class EditProfileViewModel @Inject constructor( val imageBodyPart = RequestBody.create("image/*jpg".toMediaTypeOrNull(), avatarBytes) val requestBody = MultipartBody.Builder().setType(MultipartBody.FORM) - .addFormDataPart("image", "profile.jpg", imageBodyPart).build() + .addFormDataPart("image", "profile.jpg", imageBodyPart).build() val uploadRequest = requestBuilder.url(imgurUploadUrl).post(requestBody).build() @@ -335,6 +345,7 @@ class EditProfileViewModel @Inject constructor( } } else { log.error("imgur: upload failed (${response.code}): ${response.message}") + // should we tri again after 1-5 seconds analytics.logError(Exception(response.message), "Failed to upload profile picture: ImgUr") profilePictureUploadLiveData.postValue(Resource.error(response.message)) } @@ -355,14 +366,16 @@ class EditProfileViewModel @Inject constructor( @SuppressLint("HardwareIds") fun uploadToGoogleDrive(drive: Drive) { - viewModelScope.launch(Dispatchers.IO) { profilePictureUploadLiveData.postValue(Resource.loading("")) try { val secureId = Settings.Secure.getString(walletApplication.contentResolver, Settings.Secure.ANDROID_ID) - val fileId = GoogleDriveService.uploadImage(drive, - UUID.randomUUID().toString() + ".jpg", - profilePictureFile!!.readBytes(), secureId) + val fileId = GoogleDriveService.uploadImage( + drive, + UUID.randomUUID().toString() + ".jpg", + profilePictureFile!!.readBytes(), + secureId + ) log.info("gdrive upload image: complete") profilePictureUploadLiveData.postValue(Resource.success("https://drive.google.com/uc?export=view&id=${fileId}")) diff --git a/wallet/src/de/schildbach/wallet/ui/main/WalletActivityExt.kt b/wallet/src/de/schildbach/wallet/ui/main/WalletActivityExt.kt index 18dd125f74..a619aea541 100644 --- a/wallet/src/de/schildbach/wallet/ui/main/WalletActivityExt.kt +++ b/wallet/src/de/schildbach/wallet/ui/main/WalletActivityExt.kt @@ -167,14 +167,18 @@ object WalletActivityExt { fun MainActivity.checkLowStorageAlert() { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - val storageManager = applicationContext.getSystemService()!! - val storageUUID = storageManager.getUuidForPath(filesDir) - val availableBytes = storageManager.getAllocatableBytes(storageUUID) - val toleranceInBytes = 1024L * 1024 * STORAGE_TOLERANCE + lifecycleScope.launch { + val storageManager = applicationContext.getSystemService()!! + val availableBytes = withContext(Dispatchers.IO) { + val storageUUID = storageManager.getUuidForPath(filesDir) + storageManager.getAllocatableBytes(storageUUID) + } + val toleranceInBytes = 1024L * 1024 * STORAGE_TOLERANCE - if (availableBytes <= toleranceInBytes && !lowStorageDialogShown) { - lowStorageDialogShown = true - showLowStorageAlertDialog() + if (availableBytes <= toleranceInBytes && !lowStorageDialogShown) { + lowStorageDialogShown = true + showLowStorageAlertDialog() + } } } else { val stickyIntent = registerReceiver(null, IntentFilter(Intent.ACTION_DEVICE_STORAGE_LOW)) diff --git a/wallet/src/de/schildbach/wallet/ui/more/AboutActivity.kt b/wallet/src/de/schildbach/wallet/ui/more/AboutActivity.kt index e407c3cdab..1402c35ff9 100644 --- a/wallet/src/de/schildbach/wallet/ui/more/AboutActivity.kt +++ b/wallet/src/de/schildbach/wallet/ui/more/AboutActivity.kt @@ -71,13 +71,10 @@ class AboutActivity : LockScreenActivity(), SensorEventListener { binding = ActivityAboutBinding.inflate(layoutInflater) binding.appBar.setNavigationOnClickListener { finish() } - val appName = if (Constants.SUPPORTS_PLATFORM) { - getString(R.string.app_name_dashpay_short) - } else { - getString(R.string.app_name_short) - } + val appName = getString(R.string.app_name_short) binding.title.text = "${getString(R.string.about_title)} $appName" binding.appVersionName.text = getString(R.string.about_version_name, BuildConfig.VERSION_NAME) + binding.buildNumber.text = getString(R.string.about_build_number, BuildConfig.VERSION_CODE % 100) binding.libraryVersionName.text = getString( R.string.about_credits_bitcoinj_title, VersionMessage.BITCOINJ_VERSION diff --git a/wallet/src/de/schildbach/wallet/ui/username/voting/RequestUserNameViewModel.kt b/wallet/src/de/schildbach/wallet/ui/username/voting/RequestUserNameViewModel.kt index 38f96aadae..fe7c60bd12 100644 --- a/wallet/src/de/schildbach/wallet/ui/username/voting/RequestUserNameViewModel.kt +++ b/wallet/src/de/schildbach/wallet/ui/username/voting/RequestUserNameViewModel.kt @@ -106,8 +106,9 @@ class RequestUserNameViewModel @Inject constructor( var identityBalance: Long = 0L private val _walletBalance = MutableStateFlow(Coin.ZERO) - val walletBalance: StateFlow// = Coin.ZERO + val walletBalance: StateFlow get() = _walletBalance + suspend fun isUserNameRequested(): Boolean { val hasRequestedName = identityConfig.get(USERNAME).isNullOrEmpty().not() val creationState = BlockchainIdentityData.CreationState.valueOf( @@ -115,6 +116,7 @@ class RequestUserNameViewModel @Inject constructor( ) return hasRequestedName && creationState != BlockchainIdentityData.CreationState.NONE && creationState.ordinal <= BlockchainIdentityData.CreationState.VOTING.ordinal } + suspend fun isUsernameLocked(): Boolean { return isUserNameRequested() && UsernameRequestStatus.valueOf(identityConfig.get(USERNAME_REQUESTED)!!) == UsernameRequestStatus.LOCKED diff --git a/wallet/src/de/schildbach/wallet/ui/username/voting/RequestUsernameFragment.kt b/wallet/src/de/schildbach/wallet/ui/username/voting/RequestUsernameFragment.kt index 82dffa0ef3..4c4ea19124 100644 --- a/wallet/src/de/schildbach/wallet/ui/username/voting/RequestUsernameFragment.kt +++ b/wallet/src/de/schildbach/wallet/ui/username/voting/RequestUsernameFragment.kt @@ -49,9 +49,6 @@ class RequestUsernameFragment : Fragment(R.layout.fragment_request_username) { binding.usernameInput.doOnTextChanged { text, _, _, _ -> val username = text.toString() - binding.requestUsernameButton.isEnabled = username.isNotEmpty() && - requestUserNameViewModel.canAffordNonContestedUsername() - binding.inputWrapper.isEndIconVisible = username.isNotEmpty() if (username.isNotEmpty()) {