Skip to content

Commit 362521e

Browse files
authored
Merge pull request #146 from soramitsu/rc/1.2.0
Rc/1.2.0
2 parents 003bd96 + 32dc889 commit 362521e

File tree

77 files changed

+309
-682
lines changed

Some content is hidden

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

77 files changed

+309
-682
lines changed

app/src/debug/res/values/strings.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3-
<string name="app_name" translatable="false">Fearless Dev</string>
3+
<string name="app_name" translatable="false">[Debug] Fearless</string>
44
</resources>
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<string name="app_name" translatable="false">[Dev] Fearless</string>
4+
</resources>

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -115,14 +115,6 @@ class Navigator : SplashRouter, OnboardingRouter, AccountRouter, WalletRouter, R
115115
navController?.navigate(R.id.action_profileFragment_to_aboutFragment)
116116
}
117117

118-
override fun openTermsScreen() {
119-
navController?.navigate(R.id.openTerms)
120-
}
121-
122-
override fun openPrivacyScreen() {
123-
navController?.navigate(R.id.openPrivacy)
124-
}
125-
126118
override fun openImportAccountScreen(selectedNetworkType: Node.NetworkType?) {
127119
navController?.navigate(R.id.importAction, ImportAccountFragment.getBundle(selectedNetworkType))
128120
}

app/src/main/res/layout/fragment_coming_soon.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
android:layout_marginBottom="35dp"
2626
android:adjustViewBounds="true"
2727
android:scaleType="fitXY"
28-
android:src="@drawable/ic_logo_about"
28+
android:src="@drawable/drawable_fearless_logo"
2929
app:layout_constraintBottom_toTopOf="@+id/comingSoonLabel"
3030
app:layout_constraintEnd_toEndOf="parent"
3131
app:layout_constraintStart_toStartOf="parent" />
1.91 KB
Loading
784 Bytes
Loading
3.66 KB
Loading
7.38 KB
Loading
9.92 KB
Loading

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

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -27,22 +27,6 @@
2727
app:popEnterAnim="@anim/fragment_close_enter"
2828
app:popExitAnim="@anim/fragment_close_exit" />
2929

30-
<action
31-
android:id="@+id/openPrivacy"
32-
app:destination="@id/privacyFragment"
33-
app:enterAnim="@anim/fragment_open_enter"
34-
app:exitAnim="@anim/fragment_open_exit"
35-
app:popEnterAnim="@anim/fragment_close_enter"
36-
app:popExitAnim="@anim/fragment_close_exit" />
37-
38-
<action
39-
android:id="@+id/openTerms"
40-
app:destination="@id/termsFragment"
41-
app:enterAnim="@anim/fragment_open_enter"
42-
app:exitAnim="@anim/fragment_open_exit"
43-
app:popEnterAnim="@anim/fragment_close_enter"
44-
app:popExitAnim="@anim/fragment_close_exit" />
45-
4630
<fragment
4731
android:id="@+id/splashFragment"
4832
android:name="jp.co.soramitsu.splash.presentation.SplashFragment"
@@ -72,15 +56,4 @@
7256
android:label="fragment_pincode"
7357
tools:layout="@layout/fragment_pincode" />
7458

75-
<fragment
76-
android:id="@+id/privacyFragment"
77-
android:name="jp.co.soramitsu.feature_onboarding_impl.presentation.privacy.PrivacyFragment"
78-
tools:layout="@layout/fragment_privacy" />
79-
80-
<fragment
81-
android:id="@+id/termsFragment"
82-
android:name="jp.co.soramitsu.feature_onboarding_impl.presentation.terms.TermsFragment"
83-
android:label="fragment_terms"
84-
tools:layout="@layout/fragment_terms" />
85-
8659
</navigation>
Loading
4.18 KB
Loading
13.7 KB
Loading
Loading
Loading

build.gradle

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

77
// SDK and tools
88
compileSdkVersion = 29
99
minSdkVersion = 24
1010
targetSdkVersion = 29
1111

12-
kotlinVersion = '1.3.61'
12+
kotlinVersion = '1.4.21'
1313

1414
supportVersion = '1.1.0'
1515
cardViewVersion = '1.0.0'
@@ -41,7 +41,7 @@ buildscript {
4141

4242
bouncyCastleVersion = '1.60'
4343

44-
fearlessLibVersion = '1.0.28'
44+
fearlessLibVersion = '1.0.30'
4545

4646
gifVersion = '1.2.19'
4747

common/src/main/java/jp/co/soramitsu/common/account/AddressIconGenerator.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,16 @@ package jp.co.soramitsu.common.account
33
import io.reactivex.Single
44
import jp.co.soramitsu.common.resources.ResourceManager
55
import jp.co.soramitsu.fearless_utils.icon.IconGenerator
6+
import jp.co.soramitsu.fearless_utils.ss58.SS58Encoder
67

78
class AddressIconGenerator(
89
private val iconGenerator: IconGenerator,
10+
private val sS58Encoder: SS58Encoder,
911
private val resourceManager: ResourceManager
1012
) {
11-
fun createAddressModel(accountAddress: String, addressId: ByteArray, sizeInDp: Int): Single<AddressModel> {
13+
fun createAddressModel(accountAddress: String, sizeInDp: Int): Single<AddressModel> {
1214
return Single.fromCallable {
15+
val addressId = sS58Encoder.decode(accountAddress)
1316
val sizeInPx = resourceManager.measureInPx(sizeInDp)
1417
val icon = iconGenerator.getSvgImage(addressId, sizeInPx)
1518
AddressModel(accountAddress, icon)

common/src/main/java/jp/co/soramitsu/common/base/BaseFragment.kt

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import androidx.appcompat.app.AlertDialog
88
import androidx.fragment.app.Fragment
99
import androidx.lifecycle.LiveData
1010
import androidx.lifecycle.MutableLiveData
11-
import androidx.lifecycle.Observer
1211
import jp.co.soramitsu.common.R
1312
import jp.co.soramitsu.common.utils.Event
1413
import jp.co.soramitsu.common.utils.EventObserver
@@ -19,8 +18,6 @@ abstract class BaseFragment<T : BaseViewModel> : Fragment() {
1918

2019
@Inject protected open lateinit var viewModel: T
2120

22-
private val observables = mutableListOf<LiveData<*>>()
23-
2421
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
2522
super.onViewCreated(view, savedInstanceState)
2623

@@ -59,27 +56,14 @@ abstract class BaseFragment<T : BaseViewModel> : Fragment() {
5956
.show()
6057
}
6158

62-
override fun onDestroyView() {
63-
observables.forEach { it.removeObservers(this) }
64-
super.onDestroyView()
65-
}
66-
67-
@Suppress("unchecked_cast")
68-
protected fun <V : Any?> observe(source: LiveData<V>, observer: Observer<V>) {
69-
source.observe(viewLifecycleOwner, observer as Observer<in Any?>)
70-
observables.add(source)
71-
}
72-
7359
inline fun <V> LiveData<Event<V>>.observeEvent(crossinline observer: (V) -> Unit) {
7460
observe(viewLifecycleOwner, EventObserver {
7561
observer.invoke(it)
7662
})
7763
}
7864

79-
inline fun <V> LiveData<V>.observe(crossinline observer: (V) -> Unit) {
80-
observe(viewLifecycleOwner, Observer {
81-
observer.invoke(it)
82-
})
65+
fun <V> LiveData<V>.observe(observer: (V) -> Unit) {
66+
observe(viewLifecycleOwner, observer)
8367
}
8468

8569
protected fun EditText.bindTo(liveData: MutableLiveData<String>) = bindTo(liveData, viewLifecycleOwner)

common/src/main/java/jp/co/soramitsu/common/di/modules/CommonModule.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,8 +132,9 @@ class CommonModule {
132132
@ApplicationScope
133133
fun provideAddressModelCreator(
134134
resourceManager: ResourceManager,
135+
sS58Encoder: SS58Encoder,
135136
iconGenerator: IconGenerator
136-
): AddressIconGenerator = AddressIconGenerator(iconGenerator, resourceManager)
137+
): AddressIconGenerator = AddressIconGenerator(iconGenerator, sS58Encoder, resourceManager)
137138

138139
@Provides
139140
@ApplicationScope
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
package jp.co.soramitsu.common.utils
2+
3+
import jp.co.soramitsu.fearless_utils.ss58.SS58Encoder
4+
import jp.co.soramitsu.feature_account_api.domain.model.Node
5+
6+
fun SS58Encoder.encode(publicKey: ByteArray, networkType: Node.NetworkType): String {
7+
return encode(publicKey, networkType.runtimeConfiguration.addressByte)
8+
}

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,16 @@ fun MutableLiveData<Event<Unit>>.sendEvent() {
1313
}
1414

1515
fun <FROM, TO> LiveData<FROM>.map(mapper: (FROM) -> TO): LiveData<TO> {
16-
return Transformations.map(this, mapper)
16+
return map(null, mapper)
1717
}
1818

19-
fun <FROM, TO> LiveData<FROM>.mapMutable(mapper: (FROM) -> TO): MutableLiveData<TO> {
19+
fun <FROM, TO> LiveData<FROM>.map(initial: TO?, mapper: (FROM) -> TO): LiveData<TO> {
2020
return MediatorLiveData<TO>().apply {
21-
addSource(this@mapMutable) {
21+
addSource(this@map) {
2222
value = mapper.invoke(it)
2323
}
24+
25+
initial?.let(::setValue)
2426
}
2527
}
2628

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

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.annotation.ColorRes
1515
import androidx.annotation.DrawableRes
1616
import androidx.annotation.LayoutRes
1717
import androidx.core.content.ContextCompat
18+
import androidx.recyclerview.widget.LinearLayoutManager
1819
import androidx.recyclerview.widget.RecyclerView
1920

2021
fun View.updatePadding(
@@ -105,7 +106,7 @@ fun View.hideSoftKeyboard() {
105106
fun RecyclerView.enableShowingNewlyAddedTopElements(): RecyclerView.AdapterDataObserver {
106107
val adapterDataObserver = object : RecyclerView.AdapterDataObserver() {
107108
override fun onItemRangeInserted(positionStart: Int, itemCount: Int) {
108-
if (positionStart == 0) {
109+
if (positionStart == 0 && wasAtBeginningBeforeInsertion(itemCount)) {
109110
scrollToPosition(0)
110111
}
111112
}
@@ -114,4 +115,11 @@ fun RecyclerView.enableShowingNewlyAddedTopElements(): RecyclerView.AdapterDataO
114115
adapter?.registerAdapterDataObserver(adapterDataObserver)
115116

116117
return adapterDataObserver
118+
}
119+
120+
private fun RecyclerView.wasAtBeginningBeforeInsertion(insertedCount: Int) =
121+
findFirstVisiblePosition() < insertedCount && insertedCount != adapter!!.itemCount
122+
123+
fun RecyclerView.findFirstVisiblePosition(): Int {
124+
return (layoutManager as LinearLayoutManager).findFirstVisibleItemPosition()
117125
}

0 commit comments

Comments
 (0)