Skip to content

Commit

Permalink
Merge pull request #1545 from novasamatech/rc/7.13.0
Browse files Browse the repository at this point in the history
Rc/7.13.0
  • Loading branch information
valentunn authored Jun 13, 2024
2 parents 1262a7f + 12d63d0 commit c012c4e
Show file tree
Hide file tree
Showing 317 changed files with 5,463 additions and 1,323 deletions.
8 changes: 3 additions & 5 deletions .github/workflows/install/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@ runs:
java-version: '11'
cache: 'gradle'

- name: 🛠️ Install NDK
id: setup-ndk
uses: nttld/[email protected]
with:
ndk-version: 'r26b'
- name: Install NDK
run: echo "y" | sudo ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "ndk;26.1.10909125" --sdk_root=${ANDROID_SDK_ROOT}
shell: bash

- name: Set ndk.dir in local.properties
run: echo "ndk.dir=${{ steps.setup-ndk.outputs.ndk-path }}" >> local.properties
Expand Down
3 changes: 3 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ dependencies {
implementation project(':feature-onboarding-impl')

implementation project(':feature-ledger-api')
implementation project(':feature-ledger-core')
implementation project(':feature-ledger-impl')

implementation project(':feature-account-api')
Expand Down Expand Up @@ -237,6 +238,8 @@ dependencies {
implementation project(':feature-push-notifications')
implementation project(':feature-deep-linking')

implementation project(':bindings:metadata_shortener')

implementation kotlinDep

implementation biometricDep
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import io.novafoundation.nova.common.di.scope.ApplicationScope
import io.novafoundation.nova.feature_account_api.presenatation.sign.LedgerSignCommunicator
import io.novafoundation.nova.feature_account_impl.presentation.AccountRouter
import io.novafoundation.nova.feature_ledger_impl.presentation.LedgerRouter
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.SelectLedgerAddressInterScreenCommunicator
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.legacy.SelectLedgerAddressInterScreenCommunicator

@Module
class LedgerNavigationModule {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,15 +33,17 @@ import io.novafoundation.nova.feature_external_sign_impl.di.ExternalSignFeatureH
import io.novafoundation.nova.feature_governance_api.di.GovernanceFeatureApi
import io.novafoundation.nova.feature_governance_impl.di.GovernanceFeatureHolder
import io.novafoundation.nova.feature_ledger_api.di.LedgerFeatureApi
import io.novafoundation.nova.feature_ledger_core.LedgerCoreHolder
import io.novafoundation.nova.feature_ledger_core.di.LedgerCoreApi
import io.novafoundation.nova.feature_ledger_impl.di.LedgerFeatureHolder
import io.novafoundation.nova.feature_nft_api.NftFeatureApi
import io.novafoundation.nova.feature_nft_impl.di.NftFeatureHolder
import io.novafoundation.nova.feature_onboarding_api.di.OnboardingFeatureApi
import io.novafoundation.nova.feature_onboarding_impl.di.OnboardingFeatureHolder
import io.novafoundation.nova.feature_push_notifications.di.PushNotificationsFeatureApi
import io.novafoundation.nova.feature_push_notifications.di.PushNotificationsFeatureHolder
import io.novafoundation.nova.feature_proxy_api.di.ProxyFeatureApi
import io.novafoundation.nova.feature_proxy_impl.di.ProxyFeatureHolder
import io.novafoundation.nova.feature_push_notifications.di.PushNotificationsFeatureApi
import io.novafoundation.nova.feature_push_notifications.di.PushNotificationsFeatureHolder
import io.novafoundation.nova.feature_settings_api.SettingsFeatureApi
import io.novafoundation.nova.feature_settings_impl.di.SettingsFeatureHolder
import io.novafoundation.nova.feature_staking_api.di.StakingFeatureApi
Expand Down Expand Up @@ -100,6 +102,12 @@ interface ComponentHolderModule {
@IntoMap
fun provideLedgerFeature(accountFeatureHolder: LedgerFeatureHolder): FeatureApiHolder

@ApplicationScope
@Binds
@ClassKey(LedgerCoreApi::class)
@IntoMap
fun provideLedgerCore(accountFeatureHolder: LedgerCoreHolder): FeatureApiHolder

@ApplicationScope
@Binds
@ClassKey(GovernanceFeatureApi::class)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import io.novafoundation.nova.feature_dapp_impl.DAppRouter
import io.novafoundation.nova.feature_deep_linking.di.DeepLinkingFeatureApi
import io.novafoundation.nova.feature_governance_api.di.GovernanceFeatureApi
import io.novafoundation.nova.feature_governance_impl.presentation.GovernanceRouter
import io.novafoundation.nova.feature_ledger_api.di.LedgerFeatureApi
import io.novafoundation.nova.feature_push_notifications.di.PushNotificationsFeatureApi
import io.novafoundation.nova.feature_staking_api.di.StakingFeatureApi
import io.novafoundation.nova.feature_versions_api.di.VersionsFeatureApi
Expand All @@ -45,6 +46,7 @@ interface RootComponent {

@Component.Factory
interface Factory {

fun create(
@BindsInstance navigationHolder: NavigationHolder,
@BindsInstance rootRouter: RootRouter,
Expand Down Expand Up @@ -73,7 +75,8 @@ interface RootComponent {
VersionsFeatureApi::class,
WalletConnectFeatureApi::class,
PushNotificationsFeatureApi::class,
DeepLinkingFeatureApi::class
DeepLinkingFeatureApi::class,
LedgerFeatureApi::class,
]
)
interface RootFeatureDependenciesComponent : RootDependencies
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ import io.novafoundation.nova.common.utils.systemCall.SystemCallExecutor
import io.novafoundation.nova.feature_account_api.data.events.MetaAccountChangesEventBus
import io.novafoundation.nova.feature_account_api.data.proxy.ProxySyncService
import io.novafoundation.nova.feature_account_api.data.proxy.validation.ProxyExtrinsicValidationRequestBus
import io.novafoundation.nova.feature_account_api.domain.interfaces.AccountRepository
import io.novafoundation.nova.feature_account_api.domain.account.common.EncryptionDefaults
import io.novafoundation.nova.feature_account_api.domain.interfaces.AccountRepository
import io.novafoundation.nova.feature_assets.data.network.BalancesUpdateSystem
import io.novafoundation.nova.feature_crowdloan_api.data.repository.CrowdloanRepository
import io.novafoundation.nova.feature_crowdloan_api.domain.contributions.ContributionsInteractor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ import io.novafoundation.nova.feature_dapp_impl.DAppRouter
import io.novafoundation.nova.feature_deep_linking.di.DeepLinkingFeatureApi
import io.novafoundation.nova.feature_governance_api.di.GovernanceFeatureApi
import io.novafoundation.nova.feature_governance_impl.presentation.GovernanceRouter
import io.novafoundation.nova.feature_ledger_api.di.LedgerFeatureApi
import io.novafoundation.nova.feature_push_notifications.di.PushNotificationsFeatureApi
import io.novafoundation.nova.feature_staking_api.di.StakingFeatureApi
import io.novafoundation.nova.feature_versions_api.di.VersionsFeatureApi
Expand Down Expand Up @@ -55,6 +56,7 @@ class RootFeatureHolder @Inject constructor(
.walletConnectFeatureApi(getFeature(WalletConnectFeatureApi::class.java))
.pushNotificationsFeatureApi(getFeature(PushNotificationsFeatureApi::class.java))
.deepLinkingFeatureApi(getFeature(DeepLinkingFeatureApi::class.java))
.ledgerFeatureApi(getFeature(LedgerFeatureApi::class.java))
.build()

return DaggerRootComponent.factory()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,8 @@ import io.novafoundation.nova.feature_ledger_impl.presentation.account.addChain.
import io.novafoundation.nova.feature_onboarding_impl.OnboardingRouter
import io.novafoundation.nova.feature_onboarding_impl.presentation.welcome.WelcomeFragment
import io.novafoundation.nova.feature_staking_impl.presentation.StakingDashboardRouter
import io.novafoundation.nova.feature_swap_impl.presentation.main.SwapMainSettingsFragment
import io.novafoundation.nova.feature_swap_api.presentation.model.SwapSettingsPayload
import io.novafoundation.nova.feature_swap_impl.presentation.main.SwapMainSettingsFragment
import io.novafoundation.nova.feature_wallet_api.presentation.model.AssetPayload
import io.novafoundation.nova.feature_wallet_connect_impl.WalletConnectRouter
import io.novafoundation.nova.feature_wallet_connect_impl.presentation.sessions.list.WalletConnectSessionsPayload
Expand Down Expand Up @@ -149,6 +149,7 @@ class Navigator(
R.id.createWatchWalletFragment -> navController?.navigate(R.id.action_watchWalletFragment_to_pincodeFragment, bundle)
R.id.finishImportParitySignerFragment -> navController?.navigate(R.id.action_finishImportParitySignerFragment_to_pincodeFragment, bundle)
R.id.finishImportLedgerFragment -> navController?.navigate(R.id.action_finishImportLedgerFragment_to_pincodeFragment, bundle)
R.id.finishImportGenericLedgerFragment -> navController?.navigate(R.id.action_finishImportGenericLedgerFragment_to_pincodeFragment, bundle)
}
}

Expand Down Expand Up @@ -536,10 +537,14 @@ class Navigator(
openStartImportPolkadotVault(PolkadotVaultVariant.POLKADOT_VAULT)
}

override fun openStartImportLedger() {
override fun openStartImportLegacyLedger() {
navController?.navigate(R.id.action_welcomeFragment_to_import_ledger_graph)
}

override fun openStartImportGenericLedger() {
navController?.navigate(R.id.action_welcomeFragment_to_import_generic_ledger_graph)
}

override fun withPinCodeCheckRequired(
delayedNavigation: DelayedNavigation,
createMode: Boolean,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,12 @@ import io.novafoundation.nova.feature_ledger_impl.presentation.account.addChain.
import io.novafoundation.nova.feature_ledger_impl.presentation.account.addChain.selectAddress.AddLedgerChainAccountSelectAddressPayload
import io.novafoundation.nova.feature_ledger_impl.presentation.account.common.selectAddress.SelectAddressLedgerFragment
import io.novafoundation.nova.feature_ledger_impl.presentation.account.common.selectAddress.SelectLedgerAddressPayload
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.finish.FinishImportLedgerFragment
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.finish.FinishImportLedgerPayload
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.generic.finish.FinishImportGenericLedgerFragment
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.generic.finish.FinishImportGenericLedgerPayload
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.generic.preview.PreviewImportGenericLedgerFragment
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.generic.preview.PreviewImportGenericLedgerPayload
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.legacy.finish.FinishImportLedgerFragment
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.legacy.finish.FinishImportLedgerPayload

class LedgerNavigator(
private val accountRouter: AccountRouter,
Expand Down Expand Up @@ -47,4 +51,16 @@ class LedgerNavigator(
actionId = R.id.action_addChainAccountSelectLedgerFragment_to_addChainAccountSelectAddressLedgerFragment,
args = AddLedgerChainAccountSelectAddressFragment.getBundle(payload)
)

override fun openSelectLedgerGeneric() = performNavigation(R.id.action_startImportGenericLedgerFragment_to_selectLedgerGenericImportFragment)

override fun openPreviewLedgerAccountsGeneric(payload: PreviewImportGenericLedgerPayload) = performNavigation(
actionId = R.id.action_selectLedgerGenericImportFragment_to_previewImportGenericLedgerFragment,
args = PreviewImportGenericLedgerFragment.getBundle(payload)
)

override fun openFinishImportLedgerGeneric(payload: FinishImportGenericLedgerPayload) = performNavigation(
actionId = R.id.action_previewImportGenericLedgerFragment_to_finishImportGenericLedgerFragment,
args = FinishImportGenericLedgerFragment.getBundle(payload)
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,33 @@ import io.novafoundation.nova.app.R
import io.novafoundation.nova.app.root.navigation.NavStackInterScreenCommunicator
import io.novafoundation.nova.app.root.navigation.NavigationHolder
import io.novafoundation.nova.app.root.navigation.getBackStackEntryBefore
import io.novafoundation.nova.feature_account_api.domain.model.LedgerVariant
import io.novafoundation.nova.feature_account_api.presenatation.sign.LedgerSignCommunicator
import io.novafoundation.nova.feature_account_api.presenatation.sign.SignInterScreenCommunicator.Request
import io.novafoundation.nova.feature_account_api.presenatation.sign.SignInterScreenCommunicator.Response
import io.novafoundation.nova.feature_ledger_impl.presentation.account.sign.SignLedgerFragment
import io.novafoundation.nova.feature_ledger_impl.presentation.account.sign.SignLedgerPayload

class LedgerSignCommunicatorImpl(navigationHolder: NavigationHolder) :
NavStackInterScreenCommunicator<Request, Response>(navigationHolder), LedgerSignCommunicator {

private var usedVariant: LedgerVariant? = null

override fun respond(response: Response) {
val requester = navController.getBackStackEntryBefore(R.id.signLedgerFragment)

saveResultTo(requester, response)
}

override fun setUsedVariant(variant: LedgerVariant) {
usedVariant = variant
}

override fun openRequest(request: Request) {
super.openRequest(request)

val bundle = SignLedgerFragment.getBundle(request)
val payload = SignLedgerPayload(request, requireNotNull(usedVariant))
val bundle = SignLedgerFragment.getBundle(payload)
navController.navigate(R.id.action_open_sign_ledger, bundle)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ import io.novafoundation.nova.app.root.navigation.NavStackInterScreenCommunicato
import io.novafoundation.nova.app.root.navigation.NavigationHolder
import io.novafoundation.nova.feature_ledger_impl.presentation.account.common.selectLedger.SelectLedgerFragment
import io.novafoundation.nova.feature_ledger_impl.presentation.account.common.selectLedger.SelectLedgerPayload
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.LedgerChainAccount
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.SelectLedgerAddressInterScreenCommunicator
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.legacy.LedgerChainAccount
import io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.legacy.SelectLedgerAddressInterScreenCommunicator

class SelectLedgerAddressCommunicatorImpl(navigationHolder: NavigationHolder) :
NavStackInterScreenCommunicator<SelectLedgerPayload, LedgerChainAccount>(navigationHolder),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ class RootViewModel(
private val rootScope: RootScope,
private val compoundRequestBusHandler: CompoundRequestBusHandler,
private val pushNotificationsInteractor: PushNotificationsInteractor,
private val externalServiceInitializer: ExternalServiceInitializer
private val externalServiceInitializer: ExternalServiceInitializer,
) : BaseViewModel(), NetworkStateUi by networkStateMixin {

private var willBeClearedForLanguageChange = false
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ class RootActivityModule {
rootScope: RootScope,
compoundRequestBusHandler: CompoundRequestBusHandler,
pushNotificationsInteractor: PushNotificationsInteractor,
externalServiceInitializer: ExternalServiceInitializer
externalServiceInitializer: ExternalServiceInitializer,
): ViewModel {
return RootViewModel(
interactor,
Expand All @@ -74,7 +74,7 @@ class RootActivityModule {
rootScope,
compoundRequestBusHandler,
pushNotificationsInteractor,
externalServiceInitializer
externalServiceInitializer,
)
}

Expand Down
68 changes: 68 additions & 0 deletions app/src/main/res/navigation/import_generic_ledger_graph.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/import_generic_ledger_graph"
app:startDestination="@id/startImportGenericLedgerFragment">

<fragment
android:id="@+id/startImportGenericLedgerFragment"
android:name="io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.generic.start.StartImportGenericLedgerFragment"
android:label="StartImportGenericLedgerFragment"
tools:layout="@layout/fragment_generic_import_ledger_start">

<action
android:id="@+id/action_startImportGenericLedgerFragment_to_selectLedgerGenericImportFragment"
app:destination="@id/selectLedgerGenericImportFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</fragment>

<fragment
android:id="@+id/selectLedgerGenericImportFragment"
android:name="io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.generic.selectLedger.SelectLedgerGenericImportFragment"
android:label="SelectLedgerGenericImportFragment"
tools:layout="@layout/fragment_select_ledger">

<action
android:id="@+id/action_selectLedgerGenericImportFragment_to_previewImportGenericLedgerFragment"
app:destination="@id/previewImportGenericLedgerFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />
</fragment>

<fragment
android:id="@+id/previewImportGenericLedgerFragment"
android:name="io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.generic.preview.PreviewImportGenericLedgerFragment"
android:label="PreviewImportGenericLedgerFragment"
tools:layout="@layout/fragment_chain_account_preview">
<action
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
android:id="@+id/action_previewImportGenericLedgerFragment_to_finishImportGenericLedgerFragment"
app:destination="@id/finishImportGenericLedgerFragment" />
</fragment>
<fragment
android:id="@+id/finishImportGenericLedgerFragment"
android:name="io.novafoundation.nova.feature_ledger_impl.presentation.account.connect.generic.finish.FinishImportGenericLedgerFragment"
android:label="FinishImportGenericLedgerFragment"
tools:layout="@layout/fragment_create_wallet_name" >

<action
android:id="@+id/action_finishImportGenericLedgerFragment_to_pincodeFragment"
app:destination="@id/pincodeFragment"
app:enterAnim="@anim/fragment_open_enter"
app:exitAnim="@anim/fragment_open_exit"
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit"
app:popUpTo="@id/welcomeFragment"
app:popUpToInclusive="true" />
</fragment>

</navigation>
Loading

0 comments on commit c012c4e

Please sign in to comment.