@@ -42,6 +42,7 @@ import androidx.compose.ui.unit.dp
4242import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
4343import androidx.lifecycle.compose.collectAsStateWithLifecycle
4444import com.synonym.bitkitcore.Activity
45+ import com.synonym.bitkitcore.FeeRates
4546import com.synonym.bitkitcore.LightningActivity
4647import com.synonym.bitkitcore.OnchainActivity
4748import com.synonym.bitkitcore.PaymentState
@@ -56,9 +57,11 @@ import to.bitkit.ext.timestamp
5657import to.bitkit.ext.toActivityItemDate
5758import to.bitkit.ext.toActivityItemTime
5859import to.bitkit.ext.totalValue
60+ import to.bitkit.models.FeeRate
5961import to.bitkit.models.Toast
6062import to.bitkit.ui.Routes
6163import to.bitkit.ui.appViewModel
64+ import to.bitkit.ui.blocktankViewModel
6265import to.bitkit.ui.components.BalanceHeaderView
6366import to.bitkit.ui.components.BodySSB
6467import to.bitkit.ui.components.BottomSheetPreview
@@ -189,6 +192,10 @@ fun ActivityDetailScreen(
189192 }
190193
191194 val context = LocalContext .current
195+ val blocktankInfo by blocktankViewModel?.info?.collectAsStateWithLifecycle() ? : remember {
196+ mutableStateOf(null )
197+ }
198+ val feeRates = blocktankInfo?.onchain?.feeRates
192199
193200 Column (
194201 modifier = Modifier .background(Colors .Black )
@@ -221,7 +228,8 @@ fun ActivityDetailScreen(
221228 title = copyToastTitle,
222229 description = text.ellipsisMiddle(40 )
223230 )
224- }
231+ },
232+ feeRates = feeRates,
225233 )
226234 if (showAddTagSheet) {
227235 ActivityAddTagSheet (
@@ -290,6 +298,7 @@ private fun ActivityDetailContent(
290298 isCpfpChild : Boolean = false,
291299 boostTxDoesExist : Map <String , Boolean > = emptyMap(),
292300 onCopy : (String ) -> Unit ,
301+ feeRates : FeeRates ? = null,
293302) {
294303 val isLightning = item is Activity .Lightning
295304 val isSent = item.isSent()
@@ -364,7 +373,7 @@ private fun ActivityDetailContent(
364373 }
365374
366375 Spacer (modifier = Modifier .height(16 .dp))
367- StatusSection (item, accentColor)
376+ StatusSection (item, accentColor, feeRates )
368377 HorizontalDivider (modifier = Modifier .padding(top = 16 .dp))
369378
370379 // Timestamp section: date and time
@@ -681,7 +690,11 @@ private fun ActivityDetailContent(
681690}
682691
683692@Composable
684- private fun StatusSection (item : Activity , accentColor : Color ) {
693+ private fun StatusSection (
694+ item : Activity ,
695+ accentColor : Color ,
696+ feeRates : FeeRates ? = null,
697+ ) {
685698 Column (modifier = Modifier .fillMaxWidth()) {
686699 Caption13Up (
687700 text = stringResource(R .string.wallet__activity_status),
@@ -726,9 +739,10 @@ private fun StatusSection(item: Activity, accentColor: Color) {
726739 var statusTestTag: String? = null
727740
728741 if (item.v1.isTransfer) {
729- val duration = 0 // TODO get transfer duration
742+ val duration = FeeRate .getFeeDescription(item.v1.feeRate, feeRates)
743+ .removeEstimationSymbol()
730744 statusText = stringResource(R .string.wallet__activity_transfer_pending)
731- .replace(" {duration}" , " $ duration" )
745+ .replace(" {duration}" , duration)
732746 statusTestTag = " StatusTransfer"
733747 }
734748
@@ -946,3 +960,6 @@ private fun isBoostCompleted(
946960
947961 return false
948962}
963+
964+ // TODO remove this method after transifex update
965+ private fun String.removeEstimationSymbol () = this .replace(" ±" , " " )
0 commit comments