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
16 changes: 13 additions & 3 deletions app/src/main/java/to/bitkit/data/CacheStore.kt
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,13 @@ import kotlinx.coroutines.flow.map
import kotlinx.serialization.Serializable
import to.bitkit.data.dto.PendingBoostActivity
import to.bitkit.data.serializers.AppCacheSerializer
import to.bitkit.ext.scopedActivityId
import to.bitkit.models.BackupCategory
import to.bitkit.models.BackupItemStatus
import to.bitkit.models.BalanceState
import to.bitkit.models.FxRate
import to.bitkit.models.NewTransactionSheetDetails
import to.bitkit.models.WalletScope
import to.bitkit.utils.Logger
import javax.inject.Inject
import javax.inject.Singleton
Expand Down Expand Up @@ -103,11 +105,15 @@ class CacheStore @Inject constructor(
}
}

suspend fun addActivityToDeletedList(activityId: String) {
suspend fun addActivityToDeletedList(
activityId: String,
walletId: String = WalletScope.default,
) {
if (activityId.isBlank()) return
if (activityId in store.data.first().deletedActivities) return
val scopedId = scopedActivityId(walletId, activityId)
if (scopedId in store.data.first().deletedActivities) return
store.updateData {
it.copy(deletedActivities = it.deletedActivities + activityId)
it.copy(deletedActivities = it.deletedActivities + scopedId)
}
}

Expand Down Expand Up @@ -159,6 +165,10 @@ data class AppCacheData(
val addressSearchLastUsedReceiveIndexes: Map<String, Int> = mapOf(),
val addressSearchLastUsedChangeIndexes: Map<String, Int> = mapOf(),
) {
fun isActivityDeleted(activityId: String, walletId: String): Boolean =
scopedActivityId(walletId, activityId) in deletedActivities ||
walletId == WalletScope.default && activityId in deletedActivities

fun resetBip21() = copy(bip21 = "", bolt11 = "", bolt11PaymentHash = "", onchainAddress = "")

fun invalidateReceiveLightningInvoice() = copy(bip21 = "", bolt11 = "", bolt11PaymentHash = "")
Expand Down
11 changes: 11 additions & 0 deletions app/src/main/java/to/bitkit/ext/Activities.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,17 @@ fun Activity.rawId(): String = when (this) {
is Activity.Onchain -> v1.id
}

fun Activity.walletId(): String = when (this) {
is Activity.Lightning -> v1.walletId
is Activity.Onchain -> v1.walletId
}

fun scopedActivityId(walletId: String, activityId: String): String = "$walletId:$activityId"

fun Activity.scopedId(): String = scopedActivityId(walletId(), rawId())

fun Activity.isFromHardwareWallet(): Boolean = walletId() != WalletScope.default

fun Activity.txType(): PaymentType = when (this) {
is Activity.Lightning -> v1.txType
is Activity.Onchain -> v1.txType
Expand Down
1 change: 1 addition & 0 deletions app/src/main/java/to/bitkit/models/HardwareWallet.kt
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ data class HwWalletBalance(
data class HwWalletReceivedTx(
val txid: String,
val sats: ULong,
val walletId: String,
)

sealed interface HwFundingAccount {
Expand Down
1 change: 0 additions & 1 deletion app/src/main/java/to/bitkit/models/KnownDevice.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,5 @@ data class KnownDevice(
val xpubs: Map<String, String> = emptyMap(),
/** Bitkit-side funds label set by the user while pairing; null until renamed within Bitkit. */
val customLabel: String? = null,
/** Stable app-owned id for future wallet-scoped hardware activity metadata. */
val walletId: String = "",
)
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ data class NewTransactionSheetDetails(
val direction: NewTransactionSheetDirection,
val paymentHashOrTxId: String? = null,
val activityId: String? = null,
val activityWalletId: String? = null,
val sats: Long = 0,
val isLoadingDetails: Boolean = false,
) {
Expand Down
Loading
Loading