Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Hotfix/dapp browser fix #1772

Merged
merged 10 commits into from
Jan 22, 2025
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import io.novafoundation.nova.app.root.navigation.navigators.governance.TinderGo
import io.novafoundation.nova.common.di.scope.ApplicationScope
import io.novafoundation.nova.common.resources.ContextManager
import io.novafoundation.nova.feature_account_api.presenatation.account.wallet.list.SelectTracksCommunicator
import io.novafoundation.nova.feature_dapp_impl.presentation.DAppRouter
import io.novafoundation.nova.feature_governance_impl.presentation.GovernanceRouter
import io.novafoundation.nova.feature_governance_impl.presentation.referenda.vote.setup.tindergov.TinderGovVoteCommunicator

Expand All @@ -21,8 +22,9 @@ class GovernanceNavigationModule {
fun provideRouter(
navigationHoldersRegistry: NavigationHoldersRegistry,
commonNavigator: Navigator,
contextManager: ContextManager
): GovernanceRouter = GovernanceNavigator(navigationHoldersRegistry, commonNavigator, contextManager)
contextManager: ContextManager,
dAppRouter: DAppRouter
): GovernanceRouter = GovernanceNavigator(navigationHoldersRegistry, commonNavigator, contextManager, dAppRouter)

@Provides
@ApplicationScope
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import io.novafoundation.nova.app.root.navigation.navigators.NavigationHoldersRe
import io.novafoundation.nova.app.root.navigation.navigators.Navigator
import io.novafoundation.nova.app.root.navigation.navigators.staking.relaychain.RelayStakingNavigator
import io.novafoundation.nova.common.di.scope.ApplicationScope
import io.novafoundation.nova.feature_dapp_impl.presentation.DAppRouter
import io.novafoundation.nova.feature_staking_impl.presentation.StakingDashboardRouter
import io.novafoundation.nova.feature_staking_impl.presentation.StakingRouter

Expand All @@ -17,8 +18,9 @@ class RelayStakingNavigationModule {
fun provideRelayStakingRouter(
navigationHoldersRegistry: NavigationHoldersRegistry,
navigator: Navigator,
dashboardRouter: StakingDashboardRouter
dashboardRouter: StakingDashboardRouter,
dAppRouter: DAppRouter
): StakingRouter {
return RelayStakingNavigator(navigationHoldersRegistry, navigator, dashboardRouter)
return RelayStakingNavigator(navigationHoldersRegistry, navigator, dashboardRouter, dAppRouter)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import io.novafoundation.nova.app.root.navigation.navigators.Navigator
import io.novafoundation.nova.common.resources.ContextManager
import io.novafoundation.nova.common.utils.showBrowser
import io.novafoundation.nova.feature_dapp_api.presentation.browser.main.DAppBrowserPayload
import io.novafoundation.nova.feature_dapp_impl.presentation.browser.main.DAppBrowserFragment
import io.novafoundation.nova.feature_dapp_impl.presentation.DAppRouter
import io.novafoundation.nova.feature_governance_impl.BuildConfig
import io.novafoundation.nova.feature_governance_impl.presentation.GovernanceRouter
import io.novafoundation.nova.feature_governance_impl.presentation.common.description.DescriptionFragment
Expand Down Expand Up @@ -47,7 +47,8 @@ import io.novafoundation.nova.feature_governance_impl.presentation.referenda.vot
class GovernanceNavigator(
navigationHoldersRegistry: NavigationHoldersRegistry,
private val commonNavigator: Navigator,
private val contextManager: ContextManager
private val contextManager: ContextManager,
private val dAppRouter: DAppRouter
) : BaseNavigator(navigationHoldersRegistry), GovernanceRouter {

override fun openReferendum(payload: ReferendumDetailsPayload) {
Expand Down Expand Up @@ -235,9 +236,7 @@ class GovernanceNavigator(
}

override fun openDAppBrowser(url: String) {
navigationBuilder().action(R.id.action_referendumDetailsFragment_to_DAppBrowserGraph)
.setArgs(DAppBrowserFragment.getBundle(DAppBrowserPayload.Address(url)))
.navigateInFirstAttachedContext()
dAppRouter.openDAppBrowser(DAppBrowserPayload.Address(url))
}

override fun openReferendumDescription(payload: DescriptionPayload) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import io.novafoundation.nova.app.root.navigation.navigators.BaseNavigator
import io.novafoundation.nova.app.root.navigation.navigators.NavigationHoldersRegistry
import io.novafoundation.nova.app.root.navigation.navigators.Navigator
import io.novafoundation.nova.feature_dapp_api.presentation.browser.main.DAppBrowserPayload
import io.novafoundation.nova.feature_dapp_impl.presentation.browser.main.DAppBrowserFragment
import io.novafoundation.nova.feature_dapp_impl.presentation.DAppRouter
import io.novafoundation.nova.feature_staking_impl.domain.staking.redeem.RedeemConsequences
import io.novafoundation.nova.feature_staking_impl.presentation.StakingDashboardRouter
import io.novafoundation.nova.feature_staking_impl.presentation.StakingRouter
Expand Down Expand Up @@ -47,6 +47,7 @@ class RelayStakingNavigator(
navigationHoldersRegistry: NavigationHoldersRegistry,
private val commonNavigator: Navigator,
private val stakingDashboardRouter: StakingDashboardRouter,
private val dAppRouter: DAppRouter
) : BaseNavigator(navigationHoldersRegistry), StakingRouter {

override fun returnToStakingMain() {
Expand Down Expand Up @@ -286,8 +287,6 @@ class RelayStakingNavigator(
}

override fun openDAppBrowser(url: String) {
navigationBuilder().action(R.id.action_open_dappBrowser)
.setArgs(DAppBrowserFragment.getBundle(DAppBrowserPayload.Address(url)))
.navigateInFirstAttachedContext()
dAppRouter.openDAppBrowser(DAppBrowserPayload.Address(url))
}
}
8 changes: 0 additions & 8 deletions app/src/main/res/navigation/referendum_details_graph.xml
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,6 @@
app:popUpTo="@id/referendumDetailsFragment"
app:popUpToInclusive="true" />

<action
android:id="@+id/action_referendumDetailsFragment_to_DAppBrowserGraph"
app:destination="@id/dapp_browser_graph"
app:enterAnim="@anim/fragment_slide_in"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_slide_out" />

<action
android:id="@+id/action_referendumDetailsFragment_to_referendumDescription"
app:destination="@id/referendumDescription"
Expand Down
8 changes: 0 additions & 8 deletions app/src/main/res/navigation/root_nav_graph.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,14 +79,6 @@
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />

<action
android:id="@+id/action_open_dappBrowser"
app:destination="@id/dapp_browser_graph"
app:enterAnim="@anim/fragment_slide_in"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_slide_out" />

<action
android:id="@+id/action_import_nav_graph"
app:destination="@id/import_nav_graph"
Expand Down
4 changes: 2 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
buildscript {
ext {
// App version
versionName = '9.2.0'
versionCode = 168
versionName = '9.2.1'
versionCode = 169

applicationId = "io.novafoundation.nova"
releaseApplicationSuffix = "market"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ interface HydrationFeeInjector {
object ToNative : ResetMode()

/**
* Resets the the fee to the native one only the current fee payment asset is different
* Resets the fee to the native one only the current fee payment asset is different
*/
class ToNativeLazily(val feeAssetBeforeTransaction: BigInteger) : ResetMode()
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ abstract class BaseState<R : Web3Transport.Request<*>, S>(
Web3Session.Authorization.State.ALLOWED -> true
// first time dapp request authorization during this session
Web3Session.Authorization.State.NONE -> authorizePageWithConfirmation()
// user rejected this dapp previosuly - ask for authorization one more time
// user rejected this dapp previously - ask for authorization one more time
Web3Session.Authorization.State.REJECTED -> authorizePageWithConfirmation()
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ class WalletConnectPairDeeplinkHandler(

override suspend fun matches(data: Uri): Boolean {
val newLinkMatch = data.scheme == "novawallet" && data.host == "wc"
// Older version of wc send both pair and sign requests through `wc:` deeplink so we additionaly check for `symKey` which is only present in pairing url
// Older version of wc send both pair and sign requests through `wc:` deeplink so we additionally check for `symKey` which is only present in pairing url
val oldLinkMatch = data.scheme == "wc" && "symKey" in data.toString()

return newLinkMatch || oldLinkMatch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,27 @@ class LedgerBleManager(
contextManager: ContextManager
) : BleManager(contextManager.getApplicationContext()), DataReceivedCallback {

// You can find this and new devices here: https://github.com/LedgerHQ/device-sdk-ts/blob/develop/packages/device-management-kit/src/api/device-model/data/StaticDeviceModelDataSource.ts
companion object {
val supportedLedgerDevices by lazy {
listOf(
// Nano X
SupportedBleDevice(
serviceUuid = "13D63400-2C97-0004-0000-4C6564676572".toUuid(),
writeUuid = "13D63400-2C97-0004-0002-4C6564676572".toUuid(),
notifyUuid = "13D63400-2C97-0004-0001-4C6564676572".toUuid()
serviceUuid = "13d63400-2c97-0004-0000-4c6564676572".toUuid(),
notifyUuid = "13d63400-2c97-0004-0001-4c6564676572".toUuid(),
writeUuid = "13d63400-2c97-0004-0002-4c6564676572".toUuid()
),
// Stax
SupportedBleDevice(
serviceUuid = "13d63400-2c97-6004-0000-4c6564676572".toUuid(),
notifyUuid = "13d63400-2c97-6004-0001-4c6564676572".toUuid(),
writeUuid = "13d63400-2c97-6004-0002-4c6564676572".toUuid()
),
// Flex
SupportedBleDevice(
serviceUuid = "13d63400-2c97-3004-0000-4c6564676572".toUuid(),
notifyUuid = "13d63400-2c97-3004-0001-4c6564676572".toUuid(),
writeUuid = "13d63400-2c97-3004-0002-4c6564676572".toUuid()
)
)
}
Expand Down
Loading