Skip to content

Commit

Permalink
Merge pull request #1367 from novasamatech/rc/7.8.0
Browse files Browse the repository at this point in the history
Rc/7.8.0
  • Loading branch information
ERussel committed Feb 8, 2024
2 parents 9e1e44b + 74bc299 commit 33e8d7f
Show file tree
Hide file tree
Showing 228 changed files with 5,046 additions and 675 deletions.
3 changes: 3 additions & 0 deletions app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,9 @@ dependencies {
implementation project(':feature-wallet-connect-api')
implementation project(':feature-wallet-connect-impl')

implementation project(':feature-proxy-api')
implementation project(':feature-proxy-impl')

implementation project(':feature-settings-api')
implementation project(':feature-settings-impl')

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import io.novafoundation.nova.app.root.navigation.account.SelectWalletCommunicat
import io.novafoundation.nova.app.root.navigation.pincode.PinCodeTwoFactorVerificationCommunicatorImpl
import io.novafoundation.nova.common.di.scope.ApplicationScope
import io.novafoundation.nova.common.sequrity.verification.PinCodeTwoFactorVerificationCommunicator
import io.novafoundation.nova.feature_account_api.presenatation.account.wallet.list.SelectAddressCommunicator
import io.novafoundation.nova.feature_account_api.presenatation.mixin.selectAddress.SelectAddressCommunicator
import io.novafoundation.nova.feature_account_api.presenatation.mixin.selectWallet.SelectWalletCommunicator
import io.novafoundation.nova.feature_account_impl.data.signer.paritySigner.PolkadotVaultVariantSignCommunicator
import io.novafoundation.nova.feature_account_impl.presentation.AccountRouter
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ 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_proxy_api.di.ProxyFeatureApi
import io.novafoundation.nova.feature_proxy_impl.di.ProxyFeatureHolder
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 @@ -207,4 +209,10 @@ interface ComponentHolderModule {
@ClassKey(BuyFeatureApi::class)
@IntoMap
fun provideBuyFeature(holder: BuyFeatureHolder): FeatureApiHolder

@ApplicationScope
@Binds
@ClassKey(io.novafoundation.nova.feature_proxy_api.di.ProxyFeatureApi::class)
@IntoMap
fun provideProxyFeature(holder: ProxyFeatureHolder): FeatureApiHolder
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ package io.novafoundation.nova.app.root.navigation.account

import io.novafoundation.nova.app.root.navigation.NavStackInterScreenCommunicator
import io.novafoundation.nova.app.root.navigation.NavigationHolder
import io.novafoundation.nova.feature_account_api.presenatation.account.wallet.list.SelectAddressCommunicator
import io.novafoundation.nova.feature_account_api.presenatation.account.wallet.list.SelectAddressForTransactionRequester
import io.novafoundation.nova.feature_account_api.presenatation.account.wallet.list.SelectAddressForTransactionResponder
import io.novafoundation.nova.feature_account_api.presenatation.mixin.selectAddress.SelectAddressCommunicator
import io.novafoundation.nova.feature_account_api.presenatation.mixin.selectAddress.SelectAddressRequester
import io.novafoundation.nova.feature_account_api.presenatation.mixin.selectAddress.SelectAddressResponder
import io.novafoundation.nova.feature_account_impl.presentation.account.list.selectAddress.SelectAddressFragment
import io.novafoundation.nova.feature_assets.presentation.AssetsRouter

class SelectAddressCommunicatorImpl(private val router: AssetsRouter, navigationHolder: NavigationHolder) :
NavStackInterScreenCommunicator<SelectAddressForTransactionRequester.Request, SelectAddressForTransactionResponder.Response>(navigationHolder),
NavStackInterScreenCommunicator<SelectAddressRequester.Request, SelectAddressResponder.Response>(navigationHolder),
SelectAddressCommunicator {

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

router.openSelectAddress(SelectAddressFragment.getBundle(request))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,8 @@ class ParachainStakingNavigator(
actionId = R.id.action_setupYieldBoostFragment_to_yieldBoostConfirmFragment,
args = YieldBoostConfirmFragment.getBundle(payload)
)

override fun openAddStakingProxy() {
performNavigation(R.id.action_open_addStakingProxyFragment)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,12 @@ import io.novafoundation.nova.feature_staking_impl.presentation.staking.bond.con
import io.novafoundation.nova.feature_staking_impl.presentation.staking.bond.confirm.ConfirmBondMorePayload
import io.novafoundation.nova.feature_staking_impl.presentation.staking.bond.select.SelectBondMoreFragment
import io.novafoundation.nova.feature_staking_impl.presentation.staking.bond.select.SelectBondMorePayload
import io.novafoundation.nova.feature_staking_impl.presentation.staking.controller.confirm.ConfirmSetControllerFragment
import io.novafoundation.nova.feature_staking_impl.presentation.staking.controller.confirm.ConfirmSetControllerPayload
import io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.controller.confirm.ConfirmSetControllerFragment
import io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.controller.confirm.ConfirmSetControllerPayload
import io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.proxy.add.confirm.ConfirmAddStakingProxyFragment
import io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.proxy.add.confirm.ConfirmAddStakingProxyPayload
import io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.proxy.revoke.ConfirmRemoveStakingProxyFragment
import io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.proxy.revoke.ConfirmRemoveStakingProxyPayload
import io.novafoundation.nova.feature_staking_impl.presentation.staking.main.model.StakingStoryModel
import io.novafoundation.nova.feature_staking_impl.presentation.staking.rebond.confirm.ConfirmRebondFragment
import io.novafoundation.nova.feature_staking_impl.presentation.staking.rebond.confirm.ConfirmRebondPayload
Expand Down Expand Up @@ -222,4 +226,24 @@ class RelayStakingNavigator(
returnToStakingMain()
}
}

override fun openAddStakingProxy() {
performNavigation(R.id.action_open_addStakingProxyFragment)
}

override fun openConfirmAddStakingProxy(payload: ConfirmAddStakingProxyPayload) {
performNavigation(
R.id.action_addStakingProxyFragment_to_confirmAddStakingProxyFragment,
ConfirmAddStakingProxyFragment.getBundle(payload)
)
}

override fun openStakingProxyList() {
performNavigation(R.id.action_open_stakingProxyList)
}

override fun openConfirmRemoveStakingProxy(payload: ConfirmRemoveStakingProxyPayload) {
val arguments = ConfirmRemoveStakingProxyFragment.getBundle(payload)
performNavigation(R.id.action_open_confirmRemoveStakingProxyFragment, arguments)
}
}
59 changes: 57 additions & 2 deletions app/src/main/res/navigation/staking_main_graph.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,60 @@
app:popEnterAnim="@anim/fragment_close_enter"
app:popExitAnim="@anim/fragment_close_exit" />

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

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

<action
android:id="@+id/action_open_confirmRemoveStakingProxyFragment"
app:destination="@id/confirmRemoveStakingProxyFragment"
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
android:id="@+id/stakingProxyListFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.proxy.list.StakingProxyListFragment"
android:label="StakingFragment" />

<fragment
android:id="@+id/addStakingProxyFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.proxy.add.set.AddStakingProxyFragment"
android:label="AddStakingProxyFragment">

<action
android:id="@+id/action_addStakingProxyFragment_to_confirmAddStakingProxyFragment"
app:destination="@id/confirmAddStakingProxyFragment"
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/confirmRemoveStakingProxyFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.proxy.revoke.ConfirmRemoveStakingProxyFragment"
android:label="ConfirmRemoveStakingProxyFragment" />

<fragment
android:id="@+id/confirmAddStakingProxyFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.proxy.add.confirm.ConfirmAddStakingProxyFragment"
android:label="ConfirmAddStakingProxyFragment" />

<fragment
android:id="@+id/stakingFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.main.StakingFragment"
Expand Down Expand Up @@ -288,7 +342,7 @@

<fragment
android:id="@+id/setControllerAccountFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.controller.set.SetControllerFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.controller.set.SetControllerFragment"
android:label="SelectBondMoreFragment"
tools:layout="@layout/fragment_set_controller_account">

Expand All @@ -303,7 +357,7 @@

<fragment
android:id="@+id/confirmSetControllerAccount"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.controller.confirm.ConfirmSetControllerFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.delegation.controller.confirm.ConfirmSetControllerFragment"
android:label="ConfirmSetControllerFragment"
tools:layout="@layout/fragment_confirm_set_controller" />

Expand Down Expand Up @@ -335,6 +389,7 @@
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.bond.confirm.ConfirmBondMoreFragment"
android:label="ConfirmBondMoreFragment"
tools:layout="@layout/fragment_confirm_bond_more" />

<fragment
android:id="@+id/selectUnbondFragment"
android:name="io.novafoundation.nova.feature_staking_impl.presentation.staking.unbond.select.SelectUnbondFragment"
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 = '7.7.5'
versionCode = 114
versionName = '7.8.0'
versionCode = 115

applicationId = "io.novafoundation.nova"
releaseApplicationSuffix = "market"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -235,6 +235,8 @@ fun RuntimeMetadata.assetConversionOrNull() = moduleOrNull(Modules.ASSET_CONVERS

fun RuntimeMetadata.assetConversion() = module(Modules.ASSET_CONVERSION)

fun RuntimeMetadata.proxyOrNull() = moduleOrNull(Modules.PROXY)

fun RuntimeMetadata.proxy() = module(Modules.PROXY)

fun RuntimeMetadata.firstExistingModuleName(vararg options: String): String {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,11 @@ interface OptionsFilter<T, O> : Filter<T> {
val options: List<O>
}

class EverythingFilter<T> : Filter<T> {

override fun shouldInclude(model: T) = true
}

fun <T> List<T>.applyFilters(filters: List<Filter<T>>): List<T> {
return filter { item -> filters.all { filter -> filter.shouldInclude(item) } }
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ fun View.showSoftKeyboard() {
inputMethodManager.showSoftInput(this, InputMethodManager.SHOW_IMPLICIT)
}

/**
* Make sure that the insets are not consumed by the layer above for this method to work correctly
*/
fun Lifecycle.setKeyboardVisibilityListener(view: View, callback: KeyboardVisibilityCallback?) {
if (callback == null) {
ViewCompat.setOnApplyWindowInsetsListener(view, null)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -227,6 +227,9 @@ open class TableCellView @JvmOverloads constructor(
val titleText = typedArray.getString(R.styleable.TableCellView_title)
setTitle(titleText)

val primaryValueText = typedArray.getString(R.styleable.TableCellView_primaryValue)
primaryValueText?.let { showValue(it) }

val dividerVisible = typedArray.getBoolean(R.styleable.TableCellView_dividerVisible, true)
setDividerVisible(dividerVisible)

Expand Down Expand Up @@ -256,9 +259,9 @@ open class TableCellView @JvmOverloads constructor(

val titleIconStart = typedArray.getResourceIdOrNull(R.styleable.TableCellView_titleIconStart)
titleIconStart?.let {
val titleIconTint = typedArray.getResourceIdOrNull(R.styleable.TableCellView_titleIconTint)
val titleIconStartTint = typedArray.getResourceIdOrNull(R.styleable.TableCellView_titleIconStartTint)

setTitleIconStart(titleIconStart, titleIconTint)
setTitleIconStart(titleIconStart, titleIconStartTint)
}

val titleTextAppearance = typedArray.getResourceIdOrNull(R.styleable.TableCellView_titleValueTextAppearance)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package io.novafoundation.nova.common.view

import android.content.Context
import android.util.AttributeSet
import android.view.Gravity
import android.view.View
import android.widget.LinearLayout
import androidx.core.view.setPadding
import io.novafoundation.nova.common.R
import io.novafoundation.nova.common.utils.dp
import io.novafoundation.nova.common.utils.getRippleMask
import io.novafoundation.nova.common.utils.getRoundedCornerDrawable
import io.novafoundation.nova.common.utils.withRippleMask

class YourWalletsView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : LinearLayout(context, attrs, defStyleAttr) {

init {
View.inflate(context, R.layout.view_your_wallets, this)

setPadding(4.dp)
background = getRoundedCornerDrawable(cornerSizeDp = 8).withRippleMask(getRippleMask(cornerSizeDp = 8))
orientation = LinearLayout.HORIZONTAL
gravity = Gravity.CENTER_VERTICAL
}
}
10 changes: 10 additions & 0 deletions common/src/main/res/drawable/ic_delete.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M8.083,3C7.769,3 7.516,3.249 7.516,3.556V5.405H4.68C4.305,5.405 4,5.704 4,6.072V9.401C4,9.757 4.285,10.048 4.643,10.067L5.706,20.416C5.749,20.75 6.038,21 6.382,21L17.618,21C17.962,21 18.251,20.749 18.294,20.415L19.357,10.067C19.715,10.048 20,9.757 20,9.401V6.072C20,5.703 19.695,5.405 19.32,5.405H16.484V3.556C16.484,3.249 16.23,3 15.917,3L8.083,3ZM15.35,5.405V4.112L8.65,4.112V5.405L15.35,5.405ZM6.018,10.068L17.982,10.068L17.018,19.666L6.982,19.666L6.018,10.068ZM18.639,6.739V8.734L5.361,8.734V6.739L18.639,6.739ZM14.199,12.353C14.465,12.614 14.465,13.036 14.199,13.297L12.979,14.493L14.199,15.689C14.465,15.949 14.465,16.372 14.199,16.632C13.933,16.893 13.502,16.893 13.237,16.632L12.017,15.436L10.797,16.632C10.531,16.893 10.1,16.893 9.834,16.632C9.569,16.372 9.569,15.949 9.834,15.689L11.054,14.493L9.834,13.297C9.569,13.036 9.569,12.614 9.834,12.353C10.1,12.093 10.531,12.093 10.797,12.353L12.017,13.55L13.237,12.353C13.502,12.093 13.933,12.093 14.199,12.353Z"
android:fillColor="#ffffff"
android:fillType="evenOdd"/>
</vector>
38 changes: 38 additions & 0 deletions common/src/main/res/layout/view_your_wallets.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
<merge 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:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
tools:background="@color/secondary_screen_background"
tools:parentTag="android.widget.LinearLayout">

<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginEnd="5dp"
app:srcCompat="@drawable/ic_users"
app:tint="@color/icon_accent"
tools:tint="@color/icon_accent" />

<TextView
style="@style/TextAppearance.NovaFoundation.Regular.Footnote"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:gravity="center"
android:includeFontPadding="false"
android:text="@string/assets_select_send_your_wallets"
android:textColor="@color/button_text_accent" />

<ImageView
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_gravity="center_vertical"
android:scaleType="centerInside"
app:srcCompat="@drawable/ic_chevron_down"
app:tint="@color/icon_accent"
tools:tint="@color/icon_accent" />

</merge>

0 comments on commit 33e8d7f

Please sign in to comment.