Skip to content

Commit caf6219

Browse files
committed
Added deeplinks parsing
1 parent ddcb740 commit caf6219

3 files changed

Lines changed: 28 additions & 2 deletions

File tree

app/src/main/java/cash/p/terminal/modules/main/MainFragment.kt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import cash.p.terminal.modules.releasenotes.ReleaseNotesFragment
5252
import cash.p.terminal.modules.rooteddevice.RootedDeviceModule
5353
import cash.p.terminal.modules.rooteddevice.RootedDeviceScreen
5454
import cash.p.terminal.modules.rooteddevice.RootedDeviceViewModel
55+
import cash.p.terminal.modules.sendtokenselect.SendTokenSelectFragment
5556
import cash.p.terminal.modules.settings.main.SettingsScreen
5657
import cash.p.terminal.modules.tor.TorStatusView
5758
import cash.p.terminal.modules.transactions.TransactionsModule
@@ -347,6 +348,20 @@ private fun MainScreen(
347348
}
348349
}
349350

351+
uiState.openSend?.let { openSend ->
352+
fragmentNavController.slideFromRight(
353+
R.id.sendTokenSelectFragment,
354+
SendTokenSelectFragment.Input(
355+
openSend.blockchainTypes,
356+
openSend.tokenTypes,
357+
openSend.address,
358+
openSend.amount
359+
)
360+
)
361+
viewModel.onSendOpened()
362+
}
363+
364+
350365
LifecycleEventEffect(event = Lifecycle.Event.ON_RESUME) {
351366
viewModel.onResume()
352367
}

app/src/main/java/cash/p/terminal/modules/main/MainModule.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import androidx.lifecycle.ViewModel
99
import androidx.lifecycle.ViewModelProvider
1010
import cash.p.terminal.R
1111
import cash.p.terminal.core.App
12+
import cash.p.terminal.modules.balance.OpenSendTokenSelect
1213
import cash.p.terminal.wallet.Account
1314
import cash.p.terminal.modules.walletconnect.WCManager
1415
import kotlinx.parcelize.Parcelize
@@ -87,7 +88,8 @@ object MainModule {
8788
val showWhatsNew: Boolean,
8889
val activeWallet: Account?,
8990
val torEnabled: Boolean,
90-
val wcSupportState: WCManager.SupportState?
91+
val wcSupportState: WCManager.SupportState?,
92+
val openSend: OpenSendTokenSelect?,
9193
)
9294
}
9395

app/src/main/java/cash/p/terminal/modules/main/MainViewModel.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import cash.p.terminal.core.managers.ReleaseNotesManager
1212
import cash.p.terminal.core.usecase.CheckGooglePlayUpdateUseCase
1313
import cash.p.terminal.core.usecase.UpdateResult
1414
import cash.p.terminal.core.utils.AddressUriParser
15+
import cash.p.terminal.entities.AddressUri
1516
import cash.p.terminal.entities.LaunchPage
17+
import cash.p.terminal.modules.balance.OpenSendTokenSelect
1618
import cash.p.terminal.modules.main.MainModule.MainNavigation
1719
import cash.p.terminal.modules.market.topplatforms.Platform
1820
import cash.p.terminal.modules.nft.collection.NftCollectionFragment
@@ -23,6 +25,7 @@ import cash.p.terminal.ui_compose.CoinFragmentInput
2325
import cash.p.terminal.wallet.Account
2426
import cash.p.terminal.wallet.ActiveAccountState
2527
import cash.p.terminal.wallet.IAccountManager
28+
import cash.p.terminal.wallet.entities.TokenType
2629
import cash.z.ecc.android.sdk.ext.collectWith
2730
import io.horizontalsystems.core.IPinComponent
2831
import io.horizontalsystems.core.ViewModelUiState
@@ -95,6 +98,7 @@ class MainViewModel(
9598
private var activeWallet = accountManager.activeAccount
9699
private var wcSupportState: WCManager.SupportState? = null
97100
private var torEnabled = localStorage.torEnabled
101+
private var openSendTokenSelect: OpenSendTokenSelect? = null
98102
private val updateAvailable: StateFlow<Boolean> = checkGooglePlayUpdateUseCase()
99103
.map { it is UpdateResult.ImmediateUpdateAvailable || it is UpdateResult.FlexibleUpdateAvailable }
100104
.stateIn(
@@ -185,7 +189,8 @@ class MainViewModel(
185189
showWhatsNew = showWhatsNew,
186190
activeWallet = activeWallet,
187191
wcSupportState = wcSupportState,
188-
torEnabled = torEnabled
192+
torEnabled = torEnabled,
193+
openSend = openSendTokenSelect,
189194
)
190195

191196
private fun isTransactionsTabEnabled(): Boolean =
@@ -432,4 +437,8 @@ class MainViewModel(
432437
syncNavigation()
433438
}
434439

440+
fun onSendOpened() {
441+
openSendTokenSelect = null
442+
emitState()
443+
}
435444
}

0 commit comments

Comments
 (0)