Skip to content

Commit 0776bd2

Browse files
authored
Merge pull request #1193 from soramitsu/staging
staging to master
2 parents 664277d + 9680bac commit 0776bd2

File tree

233 files changed

+11404
-1275
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

233 files changed

+11404
-1275
lines changed

android-foundation

Submodule android-foundation updated 43 files

app/build.gradle

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
//file:noinspection GroovyImplicitNullArgumentCall
12
import com.github.triplet.gradle.androidpublisher.ReleaseStatus
23

34
apply plugin: 'com.android.application'
@@ -129,10 +130,6 @@ android {
129130
resources.excludes.add("META-INF/**/*")
130131
resources.excludes.add("META-INF/*")
131132
}
132-
133-
configurations.configureEach {
134-
exclude group: "org.bouncycastle", module: "bcprov-jdk15on"
135-
}
136133
}
137134

138135
play {
@@ -142,6 +139,7 @@ play {
142139
}
143140

144141
dependencies {
142+
implementation project(':android-foundation')
145143
implementation fileTree(dir: 'libs', include: ['*.jar'])
146144
implementation project(':core-db')
147145
implementation project(':common')
@@ -179,6 +177,9 @@ dependencies {
179177
implementation project(':feature-nft-api')
180178
implementation project(':feature-nft-impl')
181179

180+
implementation project(':feature-liquiditypools-api')
181+
implementation project(':feature-liquiditypools-impl')
182+
182183
implementation libs.kotlin.stdlib.jdk7
183184

184185
implementation libs.appcompat
@@ -233,8 +234,8 @@ dependencies {
233234
androidTestImplementation libs.ext.junit
234235
}
235236

236-
task printVersion {
237-
doLast {
238-
println "versionName:${computeVersionName()}"
239-
}
237+
tasks.register('printVersion') {
238+
doLast {
239+
println "versionName:${computeVersionName()}"
240+
}
240241
}

app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
33
xmlns:tools="http://schemas.android.com/tools">
44

5+
<uses-feature android:name="android.hardware.camera" android:required="false" />
6+
57
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
68
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
79
<uses-permission android:name="android.permission.CAMERA" />

app/src/main/java/jp/co/soramitsu/app/di/app/NavigationModule.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import javax.inject.Singleton
99
import jp.co.soramitsu.account.impl.presentation.AccountRouter
1010
import jp.co.soramitsu.app.root.navigation.Navigator
1111
import jp.co.soramitsu.crowdloan.impl.presentation.CrowdloanRouter
12+
import jp.co.soramitsu.liquiditypools.navigation.LiquidityPoolsRouter
1213
import jp.co.soramitsu.nft.navigation.NFTRouter
1314
import jp.co.soramitsu.onboarding.impl.OnboardingRouter
1415
import jp.co.soramitsu.polkaswap.api.presentation.PolkaswapRouter
@@ -69,4 +70,8 @@ class NavigationModule {
6970
@Singleton
7071
@Provides
7172
fun provideNFTRouter(navigator: Navigator): NFTRouter = navigator
73+
74+
@Singleton
75+
@Provides
76+
fun provideLiquidityPoolsRouter(navigator: Navigator): LiquidityPoolsRouter = navigator
7277
}

app/src/main/java/jp/co/soramitsu/app/root/navigation/Navigator.kt

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import co.jp.soramitsu.walletconnect.domain.WalletConnectRouter
1616
import co.jp.soramitsu.walletconnect.model.ChainChooseResult
1717
import co.jp.soramitsu.walletconnect.model.ChainChooseState
1818
import it.airgap.beaconsdk.blockchain.substrate.data.SubstrateSignerPayload
19-
import java.math.BigDecimal
2019
import jp.co.soramitsu.account.api.domain.model.ImportMode
2120
import jp.co.soramitsu.account.api.presentation.account.create.ChainAccountCreatePayload
2221
import jp.co.soramitsu.account.api.presentation.actions.AddAccountPayload
@@ -46,6 +45,7 @@ import jp.co.soramitsu.account.impl.presentation.node.add.AddNodeFragment
4645
import jp.co.soramitsu.account.impl.presentation.node.details.NodeDetailsFragment
4746
import jp.co.soramitsu.account.impl.presentation.node.details.NodeDetailsPayload
4847
import jp.co.soramitsu.account.impl.presentation.node.list.NodesFragment
48+
import jp.co.soramitsu.account.impl.presentation.nomis_scoring.ScoreDetailsFragment
4949
import jp.co.soramitsu.account.impl.presentation.options_switch_node.OptionsSwitchNodeFragment
5050
import jp.co.soramitsu.account.impl.presentation.optionsaddaccount.OptionsAddAccountFragment
5151
import jp.co.soramitsu.account.impl.presentation.pincode.PinCodeAction
@@ -72,6 +72,7 @@ import jp.co.soramitsu.crowdloan.impl.presentation.contribute.custom.CustomContr
7272
import jp.co.soramitsu.crowdloan.impl.presentation.contribute.custom.model.CustomContributePayload
7373
import jp.co.soramitsu.crowdloan.impl.presentation.contribute.select.CrowdloanContributeFragment
7474
import jp.co.soramitsu.crowdloan.impl.presentation.contribute.select.parcel.ContributePayload
75+
import jp.co.soramitsu.liquiditypools.navigation.LiquidityPoolsRouter
7576
import jp.co.soramitsu.nft.impl.presentation.NFTFlowFragment
7677
import jp.co.soramitsu.nft.navigation.NFTRouter
7778
import jp.co.soramitsu.onboarding.impl.OnboardingRouter
@@ -121,7 +122,6 @@ import jp.co.soramitsu.staking.impl.presentation.validators.change.custom.settin
121122
import jp.co.soramitsu.staking.impl.presentation.validators.details.CollatorDetailsFragment
122123
import jp.co.soramitsu.staking.impl.presentation.validators.details.ValidatorDetailsFragment
123124
import jp.co.soramitsu.staking.impl.presentation.validators.parcel.CollatorDetailsParcelModel
124-
import jp.co.soramitsu.staking.impl.presentation.validators.parcel.ValidatorDetailsParcelModel
125125
import jp.co.soramitsu.success.presentation.SuccessFragment
126126
import jp.co.soramitsu.success.presentation.SuccessRouter
127127
import jp.co.soramitsu.wallet.api.domain.model.XcmChainType
@@ -168,7 +168,6 @@ import jp.co.soramitsu.walletconnect.impl.presentation.requestpreview.RequestPre
168168
import jp.co.soramitsu.walletconnect.impl.presentation.sessionproposal.SessionProposalFragment
169169
import jp.co.soramitsu.walletconnect.impl.presentation.sessionrequest.SessionRequestFragment
170170
import jp.co.soramitsu.walletconnect.impl.presentation.transactionrawdata.RawDataFragment
171-
import kotlin.coroutines.coroutineContext
172171
import kotlinx.coroutines.flow.Flow
173172
import kotlinx.coroutines.flow.MutableStateFlow
174173
import kotlinx.coroutines.flow.StateFlow
@@ -184,6 +183,8 @@ import kotlinx.coroutines.flow.onEach
184183
import kotlinx.coroutines.flow.onStart
185184
import kotlinx.coroutines.job
186185
import kotlinx.parcelize.Parcelize
186+
import java.math.BigDecimal
187+
import kotlin.coroutines.coroutineContext
187188

188189
@Parcelize
189190
class NavComponentDelayedNavigation(val globalActionId: Int, val extras: Bundle? = null) : DelayedNavigation
@@ -200,7 +201,8 @@ class Navigator :
200201
SuccessRouter,
201202
SoraCardRouter,
202203
WalletConnectRouter,
203-
NFTRouter
204+
NFTRouter,
205+
LiquidityPoolsRouter
204206
{
205207

206208
private var navController: NavController? = null
@@ -614,8 +616,8 @@ class Navigator :
614616
navController?.navigate(R.id.confirmJoinPoolFragment)
615617
}
616618

617-
override fun openPoolInfo(poolInfo: PoolInfo) {
618-
navController?.navigate(R.id.poolInfoFragment, PoolInfoFragment.getBundle(poolInfo))
619+
override fun openPoolInfo(poolId: Int) {
620+
navController?.navigate(R.id.poolInfoFragment, PoolInfoFragment.getBundle(poolId))
619621
}
620622

621623
override fun openManagePoolStake() {
@@ -728,8 +730,8 @@ class Navigator :
728730
navController?.navigate(R.id.close_swap)
729731
}
730732

731-
override fun openValidatorDetails(validatorDetails: ValidatorDetailsParcelModel) {
732-
navController?.navigate(R.id.validatorDetailsFragment, ValidatorDetailsFragment.getBundle(validatorDetails))
733+
override fun openValidatorDetails(validatorIdHex: String) {
734+
navController?.navigate(R.id.validatorDetailsFragment, ValidatorDetailsFragment.getBundle(validatorIdHex))
733735
}
734736

735737
override fun openSelectedValidators() {
@@ -1511,4 +1513,12 @@ class Navigator :
15111513
override fun openServiceScreen() {
15121514
navController?.navigate(R.id.serviceFragment)
15131515
}
1516+
1517+
override fun openScoreDetailsScreen(metaId: Long) {
1518+
navController?.navigate(R.id.scoreDetailsFragment, ScoreDetailsFragment.getBundle(metaId))
1519+
}
1520+
1521+
override fun openPools() {
1522+
navController?.navigate(R.id.poolsFlowFragment)
1523+
}
15141524
}

app/src/main/java/jp/co/soramitsu/app/root/presentation/main/MainViewModel.kt

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
package jp.co.soramitsu.app.root.presentation.main
22

3-
import androidx.lifecycle.viewModelScope
43
import dagger.hilt.android.lifecycle.HiltViewModel
5-
import javax.inject.Inject
64
import jp.co.soramitsu.app.root.domain.RootInteractor
75
import jp.co.soramitsu.common.base.BaseViewModel
86
import jp.co.soramitsu.core.runtime.ChainConnection
97
import jp.co.soramitsu.polkaswap.api.domain.PolkaswapInteractor
108
import jp.co.soramitsu.polkaswap.api.presentation.PolkaswapRouter
119
import jp.co.soramitsu.wallet.impl.presentation.WalletRouter
1210
import kotlinx.coroutines.flow.MutableStateFlow
13-
import kotlinx.coroutines.flow.launchIn
14-
import kotlinx.coroutines.flow.onEach
11+
import javax.inject.Inject
1512

1613
@HiltViewModel
1714
class MainViewModel @Inject constructor(
@@ -24,29 +21,19 @@ class MainViewModel @Inject constructor(
2421

2522
init {
2623
externalRequirements.value = ChainConnection.ExternalRequirement.ALLOWED
27-
walletRouter.listenPolkaswapDisclaimerResultFlowFromMainScreen()
28-
.onEach {
29-
if (it) {
30-
walletRouter.openSwapTokensScreen(
31-
chainId = null,
32-
assetIdFrom = null,
33-
assetIdTo = null
34-
)
35-
}
36-
}.launchIn(viewModelScope)
3724
}
3825

3926
val stakingAvailableLiveData = interactor.stakingAvailableFlow()
4027
.asLiveData()
4128

4229
fun navigateToSwapScreen() {
43-
if (polkaswapInteractor.hasReadDisclaimer) {
44-
walletRouter.openSwapTokensScreen(
45-
chainId = null,
46-
assetIdFrom = null,
47-
assetIdTo = null
48-
)
49-
} else {
30+
walletRouter.openSwapTokensScreen(
31+
chainId = null,
32+
assetIdFrom = null,
33+
assetIdTo = null
34+
)
35+
36+
if (!polkaswapInteractor.hasReadDisclaimer) {
5037
polkaswapRouter.openPolkaswapDisclaimerFromMainScreen()
5138
}
5239
}

app/src/main/res/navigation/bottom_nav_graph.xml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77

88
<fragment
99
android:id="@+id/profileFragment"
10-
tools:layout="@layout/fragment_profile"
1110
android:name="jp.co.soramitsu.account.impl.presentation.profile.ProfileFragment"
1211
android:label="ProfileFragment" />
1312

app/src/main/res/navigation/main_nav_graph.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -934,6 +934,11 @@
934934
app:popExitAnim="?android:attr/fragmentCloseExitAnimation" />
935935
</dialog>
936936

937+
<dialog
938+
android:id="@+id/poolsFlowFragment"
939+
android:name="jp.co.soramitsu.liquiditypools.impl.presentation.PoolsFlowFragment"
940+
android:label="poolsFlowFragment" />
941+
937942
<fragment
938943
android:id="@+id/settingsCustomValidatorsFragment"
939944
android:name="jp.co.soramitsu.staking.impl.presentation.validators.change.custom.settings.CustomValidatorsSettingsFragment"
@@ -1362,4 +1367,9 @@
13621367
android:name="jp.co.soramitsu.wallet.impl.presentation.beacon.sign.TransactionRawDataFragment"
13631368
android:label="TransactionRawDataFragment" />
13641369

1370+
<fragment
1371+
android:id="@+id/scoreDetailsFragment"
1372+
android:name="jp.co.soramitsu.account.impl.presentation.nomis_scoring.ScoreDetailsFragment"
1373+
android:label="ScoreDetailsFragment" />
1374+
13651375
</navigation>

build.gradle

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,20 @@ apply plugin: "org.sonarqube"
55
buildscript {
66
ext {
77
// App version
8-
versionName = '3.6.1'
9-
versionCode = 192
8+
versionName = '3.7.1'
9+
versionCode = 200
1010

1111
// SDK and tools
1212
compileSdkVersion = 34
13-
minSdkVersion = 24
13+
minSdkVersion = 26
1414
targetSdkVersion = 34
1515

16-
composeCompilerVersion = '1.5.11'
16+
composeCompilerVersion = '1.5.14'
1717

1818
withoutBasic = { exclude group: 'jp.co.soramitsu.xnetworking', module: 'basic' }
1919
withoutJna = { exclude group: 'net.java.dev.jna' }
2020
withoutJavaWS = { exclude module: 'java-websocket-lib' }
21+
withoutAndroidFoundation = { exclude module: 'android-foundation' }
2122
}
2223

2324
repositories {
@@ -61,10 +62,24 @@ allprojects {
6162
}
6263
}
6364
}
65+
66+
configurations {
67+
cleanedAnnotations
68+
implementation.exclude group: 'com.intellij' , module:'annotations'
69+
}
70+
71+
configurations.configureEach {
72+
resolutionStrategy {
73+
// add dependency substitution rules
74+
dependencySubstitution {
75+
substitute module('org.bouncycastle:bcprov-jdk15on') using module('org.bouncycastle:bcprov-jdk18on:1.78')
76+
}
77+
}
78+
}
6479
}
6580

6681
tasks.register('clean', Delete) {
67-
delete rootProject.buildDir
82+
delete rootProject.layout.buildDirectory
6883
}
6984

7085
tasks.register('runTest', GradleBuild) {

buildSrc/src/main/kotlin/detekt-setup.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ fun Detekt.setup(autoCorrect: Boolean) {
3333

3434
// TODO: Remove exclude paths after merge detekt to develop
3535
exclude(
36+
"**/androidfoundation/**",
3637
"**/common/**",
3738
"**/core-api/**",
3839
"**/core-db/**",

common/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,5 +163,5 @@ dependencies {
163163
testImplementation libs.mockito.inline
164164
testImplementation project(':test-shared')
165165

166-
api libs.sharedFeaturesCoreDep
166+
api libs.sharedFeaturesCoreDep, withoutAndroidFoundation
167167
}

common/src/main/java/jp/co/soramitsu/common/compose/component/Address.kt

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package jp.co.soramitsu.common.compose.component
22

3-
import androidx.compose.foundation.background
43
import androidx.compose.foundation.clickable
54
import androidx.compose.foundation.layout.Row
65
import androidx.compose.foundation.layout.padding
@@ -13,16 +12,15 @@ import androidx.compose.material.Text
1312
import androidx.compose.runtime.Composable
1413
import androidx.compose.ui.Alignment.Companion.CenterVertically
1514
import androidx.compose.ui.Modifier
16-
import androidx.compose.ui.graphics.Color
1715
import androidx.compose.ui.platform.testTag
1816
import androidx.compose.ui.res.painterResource
1917
import androidx.compose.ui.tooling.preview.Preview
2018
import androidx.compose.ui.unit.dp
2119
import jp.co.soramitsu.common.R
22-
import jp.co.soramitsu.common.compose.theme.FearlessTheme
23-
import jp.co.soramitsu.common.compose.theme.customColors
20+
import jp.co.soramitsu.common.compose.theme.FearlessAppTheme
2421
import jp.co.soramitsu.common.compose.theme.customTypography
2522
import jp.co.soramitsu.common.compose.theme.white
23+
import jp.co.soramitsu.common.compose.theme.white08
2624
import jp.co.soramitsu.common.utils.formatting.shortenAddress
2725

2826
@Composable
@@ -32,10 +30,9 @@ fun Address(
3230
onClick: () -> Unit
3331
) {
3432
Surface(
35-
modifier.background(
36-
color = MaterialTheme.customColors.white08,
37-
shape = RoundedCornerShape(100.dp)
38-
)
33+
color = white08,
34+
shape = RoundedCornerShape(100.dp),
35+
modifier = modifier
3936
) {
4037
Row(
4138
modifier = Modifier
@@ -45,7 +42,7 @@ fun Address(
4542
Text(
4643
text = address.shortenAddress(),
4744
style = MaterialTheme.customTypography.body2,
48-
color = Color.White,
45+
color = white,
4946
maxLines = 1,
5047
modifier = Modifier
5148
.testTag("address")
@@ -68,12 +65,10 @@ fun Address(
6865
@Preview
6966
@Composable
7067
private fun AddressPreview() {
71-
FearlessTheme {
72-
Surface(Modifier.background(Color.Black)) {
68+
FearlessAppTheme {
7369
Address(
7470
address = "0x32141235qwegtf24315reqwerfasdgqwert243rfasdvgergsdf",
7571
onClick = {}
7672
)
77-
}
7873
}
7974
}

0 commit comments

Comments
 (0)