Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions .github/workflows/notify.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: Notify Mirror on PR
name: Notify 🪞 on PR

on:
pull_request:
types: [opened, synchronize, reopened]

workflow_dispatch:
#pull_request:
# types: [opened, synchronize, reopened]
jobs:
trigger-mirror:
runs-on: ubuntu-latest
Expand All @@ -17,11 +17,11 @@ jobs:
owner: 'gruntsoftware',
repo: 'android',
workflow_id: 'sync.yml',
ref: 'main',
ref: 'develop',
inputs: {
source: '${{ github.event.repository.name }}',
pr_number: '${{ github.event.pull_request.number }}',
pr_title: '${{ github.event.pull_request.title }}',
branch: '${{ github.head_ref }}'
}
})
})
1 change: 1 addition & 0 deletions .github/workflows/pr-summary-copilot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
branches:
- develop
- main
workflow_dispatch:

permissions:
contents: read
Expand Down
2 changes: 1 addition & 1 deletion app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ android {
applicationId = "ltd.grunt.brainwallet"
minSdk = 29
targetSdk = 35
versionCode = 202506326
versionCode = 202506327
versionName = "v4.9.1"
multiDexEnabled = true
base.archivesName.set("${defaultConfig.versionName}(${defaultConfig.versionCode})")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,13 @@ import androidx.compose.material.icons.automirrored.filled.ArrowBack
import androidx.compose.material.icons.filled.Face
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButtonDefaults
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.takeOrElse
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.unit.dp

Expand Down Expand Up @@ -90,16 +92,13 @@ fun PasscodeKeypad(

_root_ide_package_.com.brainwallet.ui.composable.CircleButton(
modifier = modifierCircleButton,
onClick = {
onEvent.invoke(PasscodeKeypadEvent.OnDelete)
},
colors = IconButtonDefaults.filledIconButtonColors(
containerColor = Color.Transparent
),
onClick = { onEvent.invoke(PasscodeKeypadEvent.OnDelete) },
) {
Icon(
Icons.AutoMirrored.Filled.ArrowBack,
contentDescription = "Delete",
tint = MaterialTheme.typography.headlineMedium.color
.takeOrElse { LocalContentColor.current }
)
}
}
Expand Down
36 changes: 25 additions & 11 deletions app/src/main/java/com/brainwallet/ui/screens/send/SendViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ import com.brainwallet.tools.manager.BRSharedPrefs
import com.brainwallet.tools.manager.FeeManager
import com.brainwallet.tools.security.BRKeyStore
import com.brainwallet.tools.util.BRExchange
import com.brainwallet.tools.util.BRExchange.ONE_LITECOIN_OF_LITOSHIS
import com.brainwallet.tools.util.Utils
import com.brainwallet.ui.BrainwalletViewModel
import com.brainwallet.ui.screens.send.BWSendResult.Error
import com.brainwallet.util.CurrencyDataGetter
import com.brainwallet.util.EventBus
import com.brainwallet.wallet.BRWalletManager
import kotlinx.coroutines.CoroutineDispatcher
Expand All @@ -43,6 +45,7 @@ class SendViewModel(
private val bwSender: BWSender,
private val txRepository: TxRepository,
private val settingRepository: SettingRepository,
private val currencyDataGetter: CurrencyDataGetter,
private val isWalletCreated: () -> Boolean = { BRWalletManager.getInstance().isCreated() },
private val validateAddress: (String) -> Boolean = { BRWalletManager.getInstance().validateAddress(it) },
private val getBalance: () -> Long = { BRWalletManager.getInstance().getBalance(app) },
Expand Down Expand Up @@ -138,13 +141,19 @@ class SendViewModel(
}
is SendEvent.OnToggleFiatOrLTC -> {
val currentState = _state.value
val rate = _state.value.selectedCurrency.rate
val rate = currencyDataGetter
.getCurrencyByIso(currentState.selectedCurrency.code)?.rate
?.takeIf { it > 0f }

val convertedAmount = if (rate != null && currentState.amountString.isNotBlank()) {
val current = currentState.amountString.toBigDecimalOrNull() ?: BigDecimal.ZERO
if (currentState.userViewsFiat) {
// switching fiat → LTC: divide by rate
current.divide(BigDecimal(rate.toString()), 8, BWConstants.ROUNDING_MODE)
current.divide(
BigDecimal(rate.toString()),
8,
BWConstants.ROUNDING_MODE
)
} else {
// switching LTC → fiat: multiply by rate
current.multiply(BigDecimal(rate.toString()))
Expand All @@ -153,19 +162,24 @@ class SendViewModel(
} else {
null
}

val newAmountInLitoshi = when {
currentState.userViewsFiat && convertedAmount != null -> {
// was fiat, now LTC — convertedAmount is LTC
convertedAmount
.multiply(BigDecimal(ONE_LITECOIN_OF_LITOSHIS))
}
!currentState.userViewsFiat -> {
// was LTC, now fiat — litoshi amount is unchanged
currentState.amountInLitoshi
}
else -> BigDecimal.ZERO
}
_state.update {
it.copy(
userViewsFiat = !it.userViewsFiat,
amountString = convertedAmount?.toPlainString() ?: it.amountString,
amountInLitoshi = if (currentState.userViewsFiat) {
BigDecimal(rate.toDouble()).divide(
convertedAmount,
8,
BWConstants.ROUNDING_MODE
)
} else {
convertedAmount ?: BigDecimal.ZERO
}
amountInLitoshi = newAmountInLitoshi
)
}
}
Expand Down
4 changes: 3 additions & 1 deletion app/src/main/res/values-ar/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -304,4 +304,6 @@
<string name="send_tutorial_title_3b">تحقق قبل الإرسال!</string>
<string name="send_tutorial_description_3b">امسح أو الصق عنوان الوجهة. تحقق مرتين! غيّر قيمتك بالعملة المحلية لمعرفة المبلغ الذي يمكنك إرساله. أضف ملاحظة كتذكير مفيد. اضغط متابعة.</string>
<string name="Send.cameraUnavailabeMessage.android">السماح بالوصول إلى الكاميرا من الإعدادات</string>
</resources>
<string name="shop_title">المتجر</string>
<string name="shop_tagline">اشترِ بطاقات هدايا باستخدام LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-de/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -434,4 +434,6 @@
<string name="send_tutorial_title_3b">Überprüfe vor dem Senden!</string>
<string name="send_tutorial_description_3b">Scanne oder füge die Zieladresse ein. Überprüfe sie genau! Ändere deine lokale Währung, um herauszufinden, wie viel du senden kannst. Füge eine Notiz als praktische Erinnerung hinzu. Tippe auf Weiter.</string>
<string name="Send.cameraUnavailabeMessage.android">Kamerazugriff in den Einstellungen aktivieren</string>
</resources>
<string name="shop_title">Shop</string>
<string name="shop_tagline">Kaufe Geschenkgutscheine mit LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-es/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -509,4 +509,6 @@
<string name="send_tutorial_title_3b">¡Verifica antes de enviar!</string>
<string name="send_tutorial_description_3b">Escanea o pega la dirección de destino. ¡Verifica dos veces! Cambia tu moneda fiduciaria local para determinar cuánto puedes enviar. Añade una nota como recordatorio útil. Toca Continuar.</string>
<string name="Send.cameraUnavailabeMessage.android">Permitir acceso a la cámara en Configuración</string>
</resources>
<string name="shop_title">Tienda</string>
<string name="shop_tagline">¡Compra Tarjetas de Regalo con LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-fa/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -645,4 +645,6 @@
<string name="send_tutorial_title_3b">قبل از ارسال تأیید کنید!</string>
<string name="send_tutorial_description_3b">آدرس مقصد را اسکن یا جایگذاری کنید. دوبار بررسی کنید! ارز محلی خود را تغییر دهید تا بفهمید چقدر می‌توانید ارسال کنید. یادداشتی به عنوان یادآوری اضافه کنید. بر روی ادامه ضربه بزنید.</string>
<string name="Send.cameraUnavailabeMessage.android">دسترسی دوربین را در تنظیمات فعال کنید</string>
</resources>
<string name="shop_title">فروشگاه</string>
<string name="shop_tagline">خرید کارت هدیه با LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-fr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -660,4 +660,6 @@
<string name="send_tutorial_title_3b">Vérifiez avant d\'envoyer!</string>
<string name="send_tutorial_description_3b">Scannez ou collez l\'adresse de destination. Vérifiez bien! Convertissez en devise locale pour déterminer le montant à envoyer. Ajoutez un mémo comme aide-mémoire. Appuyez sur Continuer.</string>
<string name="Send.cameraUnavailabeMessage.android">Autoriser l\'accès à la caméra dans les Paramètres</string>
</resources>
<string name="shop_title">Boutique</string>
<string name="shop_tagline">Achetez des Cartes Cadeaux avec LTC !</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-hi/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -304,4 +304,6 @@
<string name="send_tutorial_title_3b">भेजने से पहले सत्यापित करें!</string>
<string name="send_tutorial_description_3b">गंतव्य पता स्कैन या पेस्ट करें। दोबारा जांचें! आप कितना भेज सकते हैं यह जानने के लिए अपनी स्थानीय फिएट को बदलें। एक सहायक स्मरणीय के रूप में एक मेमो जोड़ें। जारी रखें पर टैप करें।</string>
<string name="Send.cameraUnavailabeMessage.android">सेटिंग्स में कैमरा एक्सेस की अनुमति दें</string>
</resources>
<string name="shop_title">दुकान</string>
<string name="shop_tagline">LTC के साथ गिफ्ट कार्ड खरीदें!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-in/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -660,4 +660,6 @@
<string name="send_tutorial_title_3b">Verifikasi sebelum mengirim!</string>
<string name="send_tutorial_description_3b">Pindai atau tempel alamat tujuan. Periksa dua kali! Ubah fiat lokal Anda untuk mengetahui berapa banyak yang dapat Anda kirim. Tambahkan memo sebagai pengingat praktis. Ketuk Lanjutkan.</string>
<string name="Send.cameraUnavailabeMessage.android">Izinkan akses kamera di Pengaturan</string>
</resources>
<string name="shop_title">Toko</string>
<string name="shop_tagline">Beli Kartu Hadiah dengan LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-it/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -660,4 +660,6 @@
<string name="send_tutorial_title_3b">Verifica prima di inviare!</string>
<string name="send_tutorial_description_3b">Scansiona o incolla l\'indirizzo di destinazione. Verifica! Cambia la tua valuta fiat locale per capire quanto puoi inviare. Aggiungi una nota come promemoria utile. Tocca Continua.</string>
<string name="Send.cameraUnavailabeMessage.android">Consenti l\'accesso alla fotocamera in Impostazioni</string>
</resources>
<string name="shop_title">Negozio</string>
<string name="shop_tagline">Acquista Carte Regalo con LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-ja/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -660,4 +660,6 @@
<string name="send_tutorial_title_3b">送信前に確認!</string>
<string name="send_tutorial_description_3b">宛先アドレスをスキャンまたは貼り付けます。よく確認してください!現地通貨で計算して送信可能な金額を確認します。メモを追加して便利に管理できます。続けるをタップします。</string>
<string name="Send.cameraUnavailabeMessage.android">設定からカメラへのアクセスを許可してください</string>
</resources>
<string name="shop_title">ショップ</string>
<string name="shop_tagline">LTCでギフトカードを購入!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-ko/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -660,4 +660,6 @@
<string name="send_tutorial_title_3b">보내기 전에 확인하세요!</string>
<string name="send_tutorial_description_3b">수신자 주소를 스캔하거나 붙여넣기하세요. 확인하세요! 현지 통화로 변경하여 보낼 수 있는 금액을 계산하세요. 편리한 참고를 위해 메모를 추가하세요. 계속을 탭하세요.</string>
<string name="Send.cameraUnavailabeMessage.android">설정에서 카메라 접근을 허용해주세요</string>
</resources>
<string name="shop_title">상점</string>
<string name="shop_tagline">LTC로 기프트 카드를 구매하세요!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-nl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -304,4 +304,6 @@
<string name="send_tutorial_title_3b">Verifieer voordat u verzendt!</string>
<string name="send_tutorial_description_3b">Scan of plak het doeladdres. Dubbel controleren! Wijzig uw lokale fiat om uit te rekenen hoeveel u kunt verzenden. Voeg een memo toe als handige herinnering. Tik op Doorgaan.</string>
<string name="Send.cameraUnavailabeMessage.android">Sta cameratoegang toe in Instellingen</string>
</resources>
<string name="shop_title">Winkel</string>
<string name="shop_tagline">Koop cadeaukaarten met LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-pa/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -670,4 +670,6 @@
<string name="send_tutorial_title_3b">ਭੇਜਣ ਤੋਂ ਪਹਿਲਾਂ ਤਸਦੀਕ ਕਰੋ!</string>
<string name="send_tutorial_description_3b">ਮੰਜ਼ਿਲ ਦਾ ਪਤਾ ਸਕੈਨ ਕਰੋ ਜਾਂ ਚਿਪਕਾਓ। ਦੋ ਵਾਰ ਚੈਕ ਕਰੋ! ਇਹ ਪਤਾ ਲਗਾਉਣ ਲਈ ਆਪਣੀ ਸਥਾਨਕ ਫਿਆਟ ਨੂੰ ਬਦਲੋ ਕਿ ਤੁਸੀਂ ਕਿੰਨਾ ਭੇਜ ਸਕਦੇ ਹੋ। ਆਸਾਨ ਯਾਦ ਦਿਖਾਉਣ ਲਈ ਇੱਕ ਯਾਦ ਸ਼ਾਮਲ ਕਰੋ। ਜਾਰੀ ਰੱਖੋ \'ਤੇ ਟੈਪ ਕਰੋ।</string>
<string name="Send.cameraUnavailabeMessage.android">ਸੈਟਿੰਗਜ਼ ਵਿੱਚ ਕੈਮਰੇ ਦੀ ਅਨੁਮਤੀ ਦਿਓ</string>
</resources>
<string name="shop_title">ਦੁਕਾਨ</string>
<string name="shop_tagline">LTC ਨਾਲ ਗਿਫ਼ਟ ਕਾਰਡ ਖਰੀਦੋ!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-pl/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -665,4 +665,6 @@
<string name="send_tutorial_title_3b">Sprawdź przed wysłaniem!</string>
<string name="send_tutorial_description_3b">Zeskanuj lub wklej adres docelowy. Sprawdź dokładnie! Zmień swoją lokalną walutę fiat, aby sprawdzić, ile możesz wysłać. Dodaj notatkę jako przydatne przypomnienie. Dotknij Kontynuuj.</string>
<string name="Send.cameraUnavailabeMessage.android">Zezwól na dostęp do aparatu w Ustawieniach</string>
</resources>
<string name="shop_title">Sklep</string>
<string name="shop_tagline">Kup karty podarunkowe za LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-pt-rBR/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -304,4 +304,6 @@
<string name="send_tutorial_title_3b">Verifique antes de enviar!</string>
<string name="send_tutorial_description_3b">Escaneie ou cole o endereço de destino. Verifique bem! Mude sua moeda fiduciária local para calcular quanto pode enviar. Adicione um memorando como lembrete útil. Toque em Continuar.</string>
<string name="Send.cameraUnavailabeMessage.android">Permita o acesso à câmera nas Configurações</string>
</resources>
<string name="shop_title">Loja</string>
<string name="shop_tagline">Compre Cartões Presentes com LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-ru/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -660,4 +660,6 @@
<string name="send_tutorial_title_3b">Проверьте перед отправкой!</string>
<string name="send_tutorial_description_3b">Отсканируйте или вставьте адрес получателя. Проверьте дважды! Конвертируйте между фиатом и LTC, чтобы узнать сумму отправки. Добавьте заметку в качестве напоминания. Нажмите Продолжить.</string>
<string name="Send.cameraUnavailabeMessage.android">Разрешите доступ к камере в Настройках</string>
</resources>
<string name="shop_title">Магазин</string>
<string name="shop_tagline">Покупайте подарочные карты за LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-sv/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -304,4 +304,6 @@
<string name="send_tutorial_title_3b">Verifiera innan du skickar!</string>
<string name="send_tutorial_description_3b">Skanna eller klistra in destinationsadressen. Dubbelkolla! Ändra din lokala fiat-valuta för att räkna ut hur mycket du kan skicka. Lägg till en anteckning som en praktisk påminnelse. Tryck Fortsätt.</string>
<string name="Send.cameraUnavailabeMessage.android">Tillåt kameraåtkomst i Inställningar</string>
</resources>
<string name="shop_title">Butik</string>
<string name="shop_tagline">Köp presentkort med LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-th/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -304,4 +304,6 @@
<string name="send_tutorial_title_3b">ตรวจสอบก่อนส่ง!</string>
<string name="send_tutorial_description_3b">สแกนหรือวาง address ปลายทาง ตรวจสอบอีกครั้ง! เปลี่ยนตัวเลขเงินฟิแอตท้องถิ่นของคุณเพื่อคำนวณจำนวนที่คุณสามารถส่งได้ เพิ่มบันทึกเป็นการเตือนที่มีประโยชน์ แตะ ดำเนินการต่อ</string>
<string name="Send.cameraUnavailabeMessage.android">อนุญาตการเข้าถึงกล้องในการตั้งค่า</string>
</resources>
<string name="shop_title">ร้านค้า</string>
<string name="shop_tagline">ซื้อบัตรของขวัญด้วย LTC!</string>
</resources>
4 changes: 3 additions & 1 deletion app/src/main/res/values-tr/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -679,4 +679,6 @@
<string name="send_tutorial_title_3b">Göndermeden Önce Doğrulayın!</string>
<string name="send_tutorial_description_3b">Hedef adresini tarayın veya yapıştırın. İki kez kontrol edin! Ne kadar gönderebileceğinizi öğrenmek için yerel para biriminizi değiştirin. Hatırlatıcı olması için not ekleyin. Devam Et\'e dokunun.</string>
<string name="Send.cameraUnavailabeMessage.android">Ayarlar\'da kamera erişimine izin verin</string>
</resources>
<string name="shop_title">Mağaza</string>
<string name="shop_tagline">LTC ile Hediye Kartı Satın Al!</string>
</resources>
Loading