From defdaaf6b05c824c8e171ae9e612cc649145d682 Mon Sep 17 00:00:00 2001 From: jahway603 Date: Thu, 2 Dec 2021 01:28:17 -0500 Subject: [PATCH 1/3] z-address qr code scanner almost good to go --- app/build.gradle | 1 + .../myhush/silentdragon/QrReaderActivity.kt | 19 +++++++++++++++---- .../myhush/silentdragon/ReceiveActivity.kt | 8 -------- .../org/myhush/silentdragon/SendActivity.kt | 6 ++++-- .../org/myhush/silentdragon/Dependencies.kt | 2 +- 5 files changed, 21 insertions(+), 15 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index f1c8f56..c6dcc7f 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -87,6 +87,7 @@ dependencies { implementation 'com.github.joshjdevl.libsodiumjni:libsodium-jni-aar:2.0.1' implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19' implementation 'com.journeyapps:zxing-android-embedded:3.6.0@aar' + //implementation 'com.journeyapps:zxing-android-embedded:4.3.0@aar' implementation 'com.google.zxing:core:3.3.0' testImplementation 'junit:junit:4.12' androidTestImplementation 'androidx.test.ext:junit:1.1.1' diff --git a/app/src/main/java/org/myhush/silentdragon/QrReaderActivity.kt b/app/src/main/java/org/myhush/silentdragon/QrReaderActivity.kt index 119b331..d8d1f26 100644 --- a/app/src/main/java/org/myhush/silentdragon/QrReaderActivity.kt +++ b/app/src/main/java/org/myhush/silentdragon/QrReaderActivity.kt @@ -169,15 +169,26 @@ class QrReaderActivity : AppCompatActivity() { Log.i(TAG, "It's a ws connection") //Toast.makeText(this, "YEAH: " + qrcodeInfo, Toast.LENGTH_SHORT).show(); - val data = Intent() // The data seems valid, so return it + // The data seems valid, so return it + val data = Intent() + + data.data = Uri.parse(qrcodeInfo) + setResult(Activity.RESULT_OK, data) + finish() + } else if (qrcodeInfo.startsWith("zs1")) { + Log.i(TAG, "It's a HUSH z-address") + //Toast.makeText(this, "YEAH Z-ADDR: " + qrcodeInfo, Toast.LENGTH_SHORT).show(); + + // The data seems valid, so return it + val data = Intent() + data.data = Uri.parse(qrcodeInfo) setResult(Activity.RESULT_OK, data) finish() } else { - Log.i(TAG, "Not a ws connection") - //Toast.makeText(this, "Not a ws connection", Toast.LENGTH_SHORT).show(); + Log.i(TAG, "Not valid input") + Toast.makeText(this, "Not valid input", Toast.LENGTH_SHORT).show(); setResult(Activity.RESULT_CANCELED) - finish() } } diff --git a/app/src/main/java/org/myhush/silentdragon/ReceiveActivity.kt b/app/src/main/java/org/myhush/silentdragon/ReceiveActivity.kt index 891ade7..ed374c7 100644 --- a/app/src/main/java/org/myhush/silentdragon/ReceiveActivity.kt +++ b/app/src/main/java/org/myhush/silentdragon/ReceiveActivity.kt @@ -43,8 +43,6 @@ class ReceiveActivity : AppCompatActivity() { override fun onTabSelected(p0: TabLayout.Tab?) { if (p0?.text == "zAddr") { setZAddr() - } else { - setTAddr() } } @@ -94,12 +92,6 @@ class ReceiveActivity : AppCompatActivity() { } } - fun setTAddr() { - addr = DataModel.mainResponseData?.tAddress ?: "" - txtRcvAddrTitle.text = getString(R.string.your_hush_transparent_address) - setAddr() - } - fun setZAddr() { addr = DataModel.mainResponseData?.saplingAddress ?: "" txtRcvAddrTitle.text = getString(R.string.your_hush_shielded_address) diff --git a/app/src/main/java/org/myhush/silentdragon/SendActivity.kt b/app/src/main/java/org/myhush/silentdragon/SendActivity.kt index 7295fc8..778a694 100644 --- a/app/src/main/java/org/myhush/silentdragon/SendActivity.kt +++ b/app/src/main/java/org/myhush/silentdragon/SendActivity.kt @@ -15,6 +15,7 @@ import android.text.Editable import android.text.InputType import android.text.SpannableStringBuilder import android.text.TextWatcher +import android.util.Log import android.view.inputmethod.EditorInfo import android.view.inputmethod.InputMethodManager import android.widget.TextView @@ -24,10 +25,10 @@ import kotlinx.android.synthetic.main.activity_send.* import kotlinx.android.synthetic.main.content_send.* import java.text.DecimalFormat - class SendActivity : AppCompatActivity() { private val REQUEST_CONFIRM = 2 + private val TAG = "SendActivity" override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -51,7 +52,7 @@ class SendActivity : AppCompatActivity() { if (intent.getBooleanExtra("includeReplyTo", false)) chkIncludeReplyTo.isChecked = true - imageButton.setOnClickListener { view -> + imageButton.setOnClickListener { val intent = Intent(this, QrReaderActivity::class.java) intent.putExtra("REQUEST_CODE", QrReaderActivity.REQUEST_ADDRESS @@ -264,6 +265,7 @@ class SendActivity : AppCompatActivity() { when (requestCode) { QrReaderActivity.REQUEST_ADDRESS -> { if (resultCode == Activity.RESULT_OK) { + Log.i(TAG, "Send Activity got result for QrCode: ${data?.dataString}") if (data?.scheme == "hush") { sendAddress.setText(data.data?.host ?: "", TextView.BufferType.EDITABLE) diff --git a/buildSrc/src/main/java/org/myhush/silentdragon/Dependencies.kt b/buildSrc/src/main/java/org/myhush/silentdragon/Dependencies.kt index 89d6408..b3e94a8 100644 --- a/buildSrc/src/main/java/org/myhush/silentdragon/Dependencies.kt +++ b/buildSrc/src/main/java/org/myhush/silentdragon/Dependencies.kt @@ -5,7 +5,7 @@ object Deps { const val compileSdkVersion = 29 const val buildToolsVersion = "29.0.3" - const val minSdkVersion = 17 + const val minSdkVersion = 19 const val targetSdkVersion = 29 object Kotlin : Version(kotlinVersion) { From faefffe5b2c8f9b54a2de5c1910d05935f5c8009 Mon Sep 17 00:00:00 2001 From: Duke Leto Date: Sat, 4 Dec 2021 02:15:46 -0500 Subject: [PATCH 2/3] add NL translation --- app/src/main/res/values-nl/strings.xml | 134 +++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 app/src/main/res/values-nl/strings.xml diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml new file mode 100644 index 0000000..d1652f9 --- /dev/null +++ b/app/src/main/res/values-nl/strings.xml @@ -0,0 +1,134 @@ + + + + %1$s is geen geldige verbindingslink + Geldig adres + Saldo + Scan QR-code + Versturen + Adres + Annuleren + Bedrag + + + Antwoorden + (verborgen adres) + (onbevestigde transactie) + Bevestig transactie + Bevestig en verstuur + + + Eerdere transacties + Of + Opnieuw verbinden + Help + Deze applicatie bedient uw full node op afstand.<br><br>Om uw Android apparaat verbinden met uw desktop moet u de desktop SilentDragon applicatie starten en volledig laten synchroniseren.<br><br>Nadat uw node gesynchroniseerd is, ga naar <b>Apps -> Mobiele app verbinden</b> om de QR-code van de verbinding te tonen. Scan de code met deze app om met SilentDragon te verbinden. + + + SilentDragon + Geen verbinding + Verbinden… + Laden… + + + Bericht + Inhoud van bericht + Op de blockexplorer bekijken + Datum / Tijd + + + Datum + Bedrag + + + Onbevestigde transactie + + + Versturen + Ontvangen + + + Handmatige invoer + + + Delen + + + Bekijken + + + Verzonden + Ontvangen + + + Verversen + + + Connectie via internet niet ingeschakeld in de desktop node. + Connectie via internet is uitgeschakeld in de instellingen. + + + Ga naar \"Apps\" -> \"Mobiele app verbinden\" op de desktop wallet en scan de QR-code om te verbinden. + + + Verbinding verbreken + SilentDragon verbindingsadres + Verbinding via internet verbieden + Wanneer deze optie is ingeschakeld, probeert de app alleen rechtstreeks verbinding te maken met SilentDragon en wordt data-verkeer niet geleid via de WormHole-service op wormhole.hush.is. Zie https://hush.is/silentdragon voor meer informatie. + Valuta + SilentDragon versie + + + Bezoek onze website + Word lid van ons Telegram kanaal + Twitter + Git + Credits + Licentie + SilentDragonAndroid versie + Copyright + + + Niet verbonden + + + Plak hier handmatig de code + OK + %1$s is geen geldig Hush adres! + + + Ontvangen + Geen adres ingevoerd! + Hush adres + Adres naar klembord gekopieerd + Uw transparante Hush adres + Uw verborgen Hush adres + + + Verstuur transactie + Geen geldig Hush adres! + Bericht (optioneel) + Toch versturen + Ongeldig bedrag! + Ongeldig Hush adres ontvanger! + Vanaf transparant adres versturen? + Kan geen bericht naar een transparant adres versturen. + Fout bij het versturen van de transactie! + Het bericht is te lang. Het bericht kan maximaal 512 karakters bevatten. + %1$s %2$s is meer dan er beschikbaar is op één verborgen adres. De transactie moet daarom vanaf een transparant adres verstuurd worden en is dan niet meer anoniem.\n\nWilt u toch versturen? + Kan in een enkele transactie niet meer versturen dan: %1$d %2$s" + Antwoorden aan + + + Aan + Kosten: + Antwoordadres bijvoegen + + Instellingen + Over + + Transactiedetails + + Instellingen + Over + \ No newline at end of file From 2d5bb875a7b5c4bea6f3b4e7a1f407e09081d585 Mon Sep 17 00:00:00 2001 From: jahway603 Date: Sun, 5 Dec 2021 02:18:54 -0500 Subject: [PATCH 3/3] getting closer with qr scanner code --- .../myhush/silentdragon/QrReaderActivity.kt | 53 +++++-------------- 1 file changed, 13 insertions(+), 40 deletions(-) diff --git a/app/src/main/java/org/myhush/silentdragon/QrReaderActivity.kt b/app/src/main/java/org/myhush/silentdragon/QrReaderActivity.kt index d8d1f26..75ceea1 100644 --- a/app/src/main/java/org/myhush/silentdragon/QrReaderActivity.kt +++ b/app/src/main/java/org/myhush/silentdragon/QrReaderActivity.kt @@ -96,7 +96,7 @@ class QrReaderActivity : AppCompatActivity() { builder.setPositiveButton(getString(R.string.ok)) { dialog, which -> run { val txt = input.text.toString() - processText(txt) + processQrCodeText(txt) } } builder.setNegativeButton(getString(R.string.cancel)) { dialog, which -> dialog.cancel() } @@ -123,13 +123,13 @@ class QrReaderActivity : AppCompatActivity() { captureManager.onDestroy() } - private fun processText(barcodeInfo: String) { + private fun processQrCodeText(qrcodeInfo: String) { val code = intent.getIntExtra("REQUEST_CODE", 0) - // See if this the data is of the right format - if (code == REQUEST_CONNDATA && !barcodeInfo.startsWith("ws")) { + // Check if data is websocket connection + if (code == REQUEST_CONNDATA && !qrcodeInfo.startsWith("ws")) { Log.i(TAG, "Not a connection") - var err = barcodeInfo + var err = qrcodeInfo if (err.length > 48) { err = err.substring(0, 22) + "...." + err.substring(err.length - 22, err.length) } @@ -137,11 +137,12 @@ class QrReaderActivity : AppCompatActivity() { return } + // Check if data is valid hush z-address if (code == REQUEST_ADDRESS && - !DataModel.isValidAddress(StringBuilder(barcodeInfo).toString()) && - !barcodeInfo.startsWith("hush:")) { + !DataModel.isValidAddress(StringBuilder(qrcodeInfo).toString()) && + !qrcodeInfo.startsWith("hush:")) { Log.i(TAG, "Not an address") - var err = barcodeInfo + var err = qrcodeInfo if (err.length > 48) { err = err.substring(0, 22) + "...." + err.substring(err.length - 22, err.length) } @@ -149,48 +150,20 @@ class QrReaderActivity : AppCompatActivity() { return } - // The data seems valid, so return it. + // The data seems valid, so return it val data = Intent() // Payment URIs are often formatted as "hush:", but this causes parsing problems. // So change it to hush://, so that it parses properly - if (barcodeInfo.startsWith("hush:") && !barcodeInfo.startsWith("hush://")) { - data.data = Uri.parse(barcodeInfo.replaceFirst("hush:", "hush://")) + if (qrcodeInfo.startsWith("hush:") && !qrcodeInfo.startsWith("hush://")) { + data.data = Uri.parse(qrcodeInfo.replaceFirst("hush:", "hush://")) } else { - data.data = Uri.parse(barcodeInfo) + data.data = Uri.parse(qrcodeInfo) } setResult(Activity.RESULT_OK, data) finish() } - private fun processQrCodeText(qrcodeInfo: String) { - if (qrcodeInfo.startsWith("ws")) { - Log.i(TAG, "It's a ws connection") - //Toast.makeText(this, "YEAH: " + qrcodeInfo, Toast.LENGTH_SHORT).show(); - - // The data seems valid, so return it - val data = Intent() - - data.data = Uri.parse(qrcodeInfo) - setResult(Activity.RESULT_OK, data) - finish() - } else if (qrcodeInfo.startsWith("zs1")) { - Log.i(TAG, "It's a HUSH z-address") - //Toast.makeText(this, "YEAH Z-ADDR: " + qrcodeInfo, Toast.LENGTH_SHORT).show(); - - // The data seems valid, so return it - val data = Intent() - - data.data = Uri.parse(qrcodeInfo) - setResult(Activity.RESULT_OK, data) - finish() - } else { - Log.i(TAG, "Not valid input") - Toast.makeText(this, "Not valid input", Toast.LENGTH_SHORT).show(); - setResult(Activity.RESULT_CANCELED) - } - } - private val TAG = "QrReader" }