Release Vexta Wallet v0.6.2

This commit is contained in:
Vexta Project 2026-08-14 21:04:20 +00:00
commit 339b2eed60
2 changed files with 45 additions and 26 deletions

View file

@ -22,8 +22,8 @@ android {
applicationId = "org.vextaproject.wallet" applicationId = "org.vextaproject.wallet"
minSdk = 26 minSdk = 26
targetSdk = 36 targetSdk = 36
versionCode = 31 versionCode = 32
versionName = "0.6.1" versionName = "0.6.2"
} }
signingConfigs { signingConfigs {

View file

@ -89,6 +89,10 @@ class WalletActivity : FragmentActivity() {
"last_confirmed_balance" "last_confirmed_balance"
private const val PREF_BALANCE_INITIALIZED = private const val PREF_BALANCE_INITIALIZED =
"balance_notification_initialized" "balance_notification_initialized"
private const val PREF_KNOWN_INCOMING_TXIDS =
"known_incoming_txids"
private const val PREF_TX_NOTIFICATIONS_INITIALIZED =
"tx_notifications_initialized"
private const val PREF_RECEIVE_ADDRESS_INDEX = private const val PREF_RECEIVE_ADDRESS_INDEX =
"receive_address_index" "receive_address_index"
private const val PREF_RESTORE_ADDRESS_DISCOVERY = private const val PREF_RESTORE_ADDRESS_DISCOVERY =
@ -429,41 +433,56 @@ class WalletActivity : FragmentActivity() {
} }
} }
private fun updateBalanceAndNotify( private fun updateIncomingTransactionsAndNotify(
confirmedBalanceSatoshis: Long transactions: List<BlockScanner.WalletTransaction>
) { ) {
val preferences = val preferences =
getSharedPreferences(PREFS, Context.MODE_PRIVATE) getSharedPreferences(PREFS, Context.MODE_PRIVATE)
val incoming =
transactions.filter { it.netSatoshis > 0L }
val currentTxids =
incoming.map { it.txid }.toSet()
val initialized = preferences.getBoolean( val initialized = preferences.getBoolean(
PREF_BALANCE_INITIALIZED, PREF_TX_NOTIFICATIONS_INITIALIZED,
false false
) )
val previousBalance = preferences.getLong( if (!initialized) {
PREF_LAST_CONFIRMED_BALANCE,
confirmedBalanceSatoshis
)
preferences.edit() preferences.edit()
.putBoolean(PREF_BALANCE_INITIALIZED, true) .putBoolean(PREF_TX_NOTIFICATIONS_INITIALIZED, true)
.putLong( .putStringSet(
PREF_LAST_CONFIRMED_BALANCE, PREF_KNOWN_INCOMING_TXIDS,
confirmedBalanceSatoshis currentTxids
) )
.apply() .apply()
if (
!initialized ||
confirmedBalanceSatoshis <= previousBalance
) {
return return
} }
val receivedSatoshis = val knownTxids =
confirmedBalanceSatoshis - previousBalance preferences.getStringSet(
PREF_KNOWN_INCOMING_TXIDS,
emptySet()
)?.toMutableSet() ?: mutableSetOf()
showIncomingPaymentNotification(receivedSatoshis) incoming
.filter { it.txid !in knownTxids }
.sortedBy { it.height }
.forEach { transaction ->
showIncomingPaymentNotification(
transaction.netSatoshis
)
knownTxids.add(transaction.txid)
}
preferences.edit()
.putStringSet(
PREF_KNOWN_INCOMING_TXIDS,
knownTxids
)
.apply()
} }
private fun showIncomingPaymentNotification( private fun showIncomingPaymentNotification(
@ -1025,7 +1044,7 @@ class WalletActivity : FragmentActivity() {
100_000_000.0 100_000_000.0
) )
updateBalanceAndNotify(balanceSatoshis) updateIncomingTransactionsAndNotify(mergedTransactions)
if (restoreAddressDiscovery) { if (restoreAddressDiscovery) {
setCurrentReceiveAddressIndex( setCurrentReceiveAddressIndex(