Skip to content

Commit 0d36e00

Browse files
authored
Merge pull request #307 from soramitsu/rc/1.8.1
Rc/1.8.1
2 parents ab68bb7 + 6eaeb6d commit 0d36e00

File tree

120 files changed

+2395
-612
lines changed

Some content is hidden

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

120 files changed

+2395
-612
lines changed

app/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ dependencies {
117117
implementation lifecycleDep
118118
kapt lifecycleKapt
119119

120+
implementation lifeCycleKtxDep
121+
120122
implementation retrofitDep
121123
implementation gsonConvertedDep
122124

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

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package jp.co.soramitsu.app.root.navigation
22

33
import android.os.Bundle
44
import androidx.appcompat.app.AppCompatActivity
5+
import androidx.lifecycle.asFlow
56
import androidx.navigation.NavController
67
import androidx.navigation.NavOptions
78
import jp.co.soramitsu.app.R
@@ -30,6 +31,9 @@ import jp.co.soramitsu.feature_account_impl.presentation.pincode.ToolbarConfigur
3031
import jp.co.soramitsu.feature_crowdloan_impl.presentation.CrowdloanRouter
3132
import jp.co.soramitsu.feature_crowdloan_impl.presentation.contribute.confirm.ConfirmContributeFragment
3233
import jp.co.soramitsu.feature_crowdloan_impl.presentation.contribute.confirm.parcel.ConfirmContributePayload
34+
import jp.co.soramitsu.feature_crowdloan_impl.presentation.contribute.custom.BonusPayload
35+
import jp.co.soramitsu.feature_crowdloan_impl.presentation.contribute.custom.CustomContributeFragment
36+
import jp.co.soramitsu.feature_crowdloan_impl.presentation.contribute.custom.model.CustomContributePayload
3337
import jp.co.soramitsu.feature_crowdloan_impl.presentation.contribute.select.CrowdloanContributeFragment
3438
import jp.co.soramitsu.feature_crowdloan_impl.presentation.contribute.select.parcel.ContributePayload
3539
import jp.co.soramitsu.feature_onboarding_impl.OnboardingRouter
@@ -46,6 +50,8 @@ import jp.co.soramitsu.feature_staking_impl.presentation.staking.controller.conf
4650
import jp.co.soramitsu.feature_staking_impl.presentation.staking.main.model.StakingStoryModel
4751
import jp.co.soramitsu.feature_staking_impl.presentation.staking.rebond.confirm.ConfirmRebondFragment
4852
import jp.co.soramitsu.feature_staking_impl.presentation.staking.rebond.confirm.ConfirmRebondPayload
53+
import jp.co.soramitsu.feature_staking_impl.presentation.staking.redeem.RedeemFragment
54+
import jp.co.soramitsu.feature_staking_impl.presentation.staking.redeem.RedeemPayload
4955
import jp.co.soramitsu.feature_staking_impl.presentation.staking.rewardDestination.confirm.ConfirmRewardDestinationFragment
5056
import jp.co.soramitsu.feature_staking_impl.presentation.staking.rewardDestination.confirm.parcel.ConfirmRewardDestinationPayload
5157
import jp.co.soramitsu.feature_staking_impl.presentation.staking.unbond.confirm.ConfirmUnbondFragment
@@ -63,6 +69,7 @@ import jp.co.soramitsu.feature_wallet_impl.presentation.send.confirm.ConfirmTran
6369
import jp.co.soramitsu.feature_wallet_impl.presentation.transaction.detail.TransactionDetailFragment
6470
import jp.co.soramitsu.splash.SplashRouter
6571
import kotlinx.android.parcel.Parcelize
72+
import kotlinx.coroutines.flow.Flow
6673

6774
@Parcelize
6875
class NavComponentDelayedNavigation(val globalActionId: Int, val extras: Bundle? = null) : DelayedNavigation
@@ -213,8 +220,8 @@ class Navigator :
213220
navController?.navigate(R.id.action_selectUnbondFragment_to_confirmUnbondFragment, ConfirmUnbondFragment.getBundle(payload))
214221
}
215222

216-
override fun openRedeem() {
217-
navController?.navigate(R.id.action_stakingBalanceFragment_to_redeemFragment)
223+
override fun openRedeem(payload: RedeemPayload) {
224+
navController?.navigate(R.id.action_open_redeemFragment, RedeemFragment.getBundle(payload))
218225
}
219226

220227
override fun openConfirmRebond(payload: ConfirmRebondPayload) {
@@ -225,6 +232,23 @@ class Navigator :
225232
navController?.navigate(R.id.action_mainFragment_to_crowdloanContributeFragment, CrowdloanContributeFragment.getBundle(payload))
226233
}
227234

235+
override val customBonusFlow: Flow<BonusPayload?>
236+
get() = navController!!.currentBackStackEntry!!.savedStateHandle
237+
.getLiveData<BonusPayload?>(CrowdloanContributeFragment.KEY_BONUS_LIVE_DATA)
238+
.asFlow()
239+
240+
override val latestCustomBonus: BonusPayload?
241+
get() = navController!!.currentBackStackEntry!!.savedStateHandle
242+
.get(CrowdloanContributeFragment.KEY_BONUS_LIVE_DATA)
243+
244+
override fun openCustomContribute(payload: CustomContributePayload) {
245+
navController?.navigate(R.id.action_crowdloanContributeFragment_to_customContributeFragment, CustomContributeFragment.getBundle(payload))
246+
}
247+
248+
override fun setCustomBonus(payload: BonusPayload) {
249+
navController!!.previousBackStackEntry!!.savedStateHandle.set(CrowdloanContributeFragment.KEY_BONUS_LIVE_DATA, payload)
250+
}
251+
228252
override fun openConfirmContribute(payload: ConfirmContributePayload) {
229253
navController?.navigate(R.id.action_crowdloanContributeFragment_to_confirmContributeFragment, ConfirmContributeFragment.getBundle(payload))
230254
}

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

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -551,13 +551,7 @@
551551
app:popEnterAnim="@anim/fragment_close_enter"
552552
app:popExitAnim="@anim/fragment_close_exit" />
553553

554-
<action
555-
android:id="@+id/action_stakingBalanceFragment_to_redeemFragment"
556-
app:destination="@id/redeemFragment"
557-
app:enterAnim="@anim/fragment_open_enter"
558-
app:exitAnim="@anim/fragment_open_exit"
559-
app:popEnterAnim="@anim/fragment_close_enter"
560-
app:popExitAnim="@anim/fragment_close_exit" />
554+
561555
<action
562556
android:id="@+id/action_stakingBalanceFragment_to_customRebondFragment"
563557
app:destination="@id/customRebondFragment"
@@ -637,6 +631,14 @@
637631
android:name="jp.co.soramitsu.feature_staking_impl.presentation.staking.unbond.confirm.ConfirmUnbondFragment"
638632
android:label="ConfirmUnbondFragment" />
639633

634+
<action
635+
android:id="@+id/action_open_redeemFragment"
636+
app:destination="@id/redeemFragment"
637+
app:enterAnim="@anim/fragment_open_enter"
638+
app:exitAnim="@anim/fragment_open_exit"
639+
app:popEnterAnim="@anim/fragment_close_enter"
640+
app:popExitAnim="@anim/fragment_close_exit" />
641+
640642
<fragment
641643
android:id="@+id/redeemFragment"
642644
android:name="jp.co.soramitsu.feature_staking_impl.presentation.staking.redeem.RedeemFragment"
@@ -702,6 +704,14 @@
702704
app:popExitAnim="@anim/fragment_close_exit"
703705
android:id="@+id/action_crowdloanContributeFragment_to_confirmContributeFragment"
704706
app:destination="@id/confirmContributeFragment" />
707+
708+
<action
709+
app:enterAnim="@anim/fragment_open_enter"
710+
app:exitAnim="@anim/fragment_open_exit"
711+
app:popEnterAnim="@anim/fragment_close_enter"
712+
app:popExitAnim="@anim/fragment_close_exit"
713+
android:id="@+id/action_crowdloanContributeFragment_to_customContributeFragment"
714+
app:destination="@id/customContributeFragment" />
705715
</fragment>
706716

707717
<fragment
@@ -710,4 +720,10 @@
710720
android:name="jp.co.soramitsu.feature_crowdloan_impl.presentation.contribute.confirm.ConfirmContributeFragment"
711721
android:label="ConfirmContributeFragment" />
712722

723+
<fragment
724+
tools:layout="@layout/fragment_custom_contribute"
725+
android:id="@+id/customContributeFragment"
726+
android:name="jp.co.soramitsu.feature_crowdloan_impl.presentation.contribute.custom.CustomContributeFragment"
727+
android:label="CustomContributeFragment" />
728+
713729
</navigation>

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
buildscript {
22
ext {
33
// App version
4-
versionName = '1.8 RC1'
5-
versionCode = 14
4+
versionName = '1.8.1'
5+
versionCode = 15
66

77
// SDK and tools
88
compileSdkVersion = 29

common/src/main/java/jp/co/soramitsu/common/utils/FlowExt.kt

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package jp.co.soramitsu.common.utils
22

3+
import android.widget.CompoundButton
34
import android.widget.EditText
5+
import androidx.lifecycle.LifecycleCoroutineScope
46
import androidx.lifecycle.LiveData
57
import androidx.lifecycle.MutableLiveData
68
import jp.co.soramitsu.common.presentation.LoadingState
@@ -77,3 +79,28 @@ fun EditText.bindTo(flow: MutableStateFlow<String>, scope: CoroutineScope) {
7779
}
7880
}
7981
}
82+
83+
fun CompoundButton.bindTo(flow: MutableStateFlow<Boolean>, scope: CoroutineScope) {
84+
scope.launch {
85+
flow.collect { newValue ->
86+
if (isChecked != newValue) {
87+
isChecked = newValue
88+
}
89+
}
90+
}
91+
92+
setOnCheckedChangeListener { _, newValue ->
93+
scope.launch {
94+
flow.emit(newValue)
95+
}
96+
}
97+
}
98+
99+
inline fun <T> Flow<T>.observe(
100+
scope: LifecycleCoroutineScope,
101+
crossinline collector: suspend (T) -> Unit
102+
) {
103+
scope.launchWhenResumed {
104+
collect(collector)
105+
}
106+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package jp.co.soramitsu.common.utils
2+
3+
import android.text.Spannable
4+
import android.text.SpannableString
5+
import android.text.TextPaint
6+
import android.text.style.ClickableSpan
7+
import android.view.View
8+
9+
private fun clickableSpan(onClick: () -> Unit) = object : ClickableSpan() {
10+
override fun updateDrawState(ds: TextPaint) {
11+
super.updateDrawState(ds)
12+
ds.isUnderlineText = false
13+
}
14+
15+
override fun onClick(widget: View) {
16+
onClick()
17+
}
18+
}
19+
20+
class SpannableBuilder(val content: String) {
21+
22+
private val buildingSpannable = SpannableString(content)
23+
24+
fun clickable(text: String, onClick: () -> Unit) {
25+
val startIndex = content.indexOf(text)
26+
27+
if (startIndex == -1) {
28+
return
29+
}
30+
31+
val endIndex = startIndex + text.length
32+
33+
buildingSpannable.setSpan(clickableSpan(onClick), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE)
34+
}
35+
36+
fun build() = buildingSpannable
37+
}
38+
39+
fun createSpannable(content: String, block: SpannableBuilder.() -> Unit): Spannable {
40+
val builder = SpannableBuilder(content)
41+
42+
builder.block()
43+
44+
return builder.build()
45+
}

common/src/main/java/jp/co/soramitsu/common/view/AddressView.kt

Lines changed: 0 additions & 58 deletions
This file was deleted.

common/src/main/java/jp/co/soramitsu/common/view/ElementChooserView.kt

Lines changed: 0 additions & 58 deletions
This file was deleted.

common/src/main/java/jp/co/soramitsu/common/view/FearlessProgressDialog.kt

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)