Skip to content

Commit a26531e

Browse files
committed
Fixed custom validator
1 parent 5b962d7 commit a26531e

File tree

8 files changed

+40
-6
lines changed

8 files changed

+40
-6
lines changed

example/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ dependencies {
8686
transitive = true
8787
}
8888

89+
//==================== Debug ====================
90+
debugImplementation depends.stetho.core
91+
debugImplementation depends.stetho.okhttp3
92+
8993
//==================== Test ====================
9094
testImplementation depends.junit
9195
testImplementation depends.mockitoKotlin

example/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77

88
<application
9+
android:name=".App"
910
android:allowBackup="true"
1011
android:hardwareAccelerated="true"
1112
android:icon="@mipmap/ic_launcher"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package co.kyash.vtl.example
2+
3+
import android.app.Application
4+
import com.facebook.stetho.Stetho
5+
6+
class App : Application() {
7+
8+
override fun onCreate() {
9+
super.onCreate()
10+
setUpStetho()
11+
}
12+
13+
private fun setUpStetho() {
14+
Stetho.initializeWithDefaults(this)
15+
}
16+
}

example/src/main/java/co/kyash/vtl/example/MainActivity.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ import android.widget.Toast
99
import co.kyash.vtl.ValidatableView
1010
import co.kyash.vtl.example.api.MaterialDesignColorsApi
1111
import co.kyash.vtl.example.databinding.ActivityMainBinding
12+
import co.kyash.vtl.example.validators.MaterialDesignColorsValidator
1213
import co.kyash.vtl.validators.AsciiOnlyValidator
1314
import co.kyash.vtl.validators.EmailValidator
1415
import co.kyash.vtl.validators.NumberOnlyValidator
1516
import co.kyash.vtl.validators.RequiredValidator
1617
import com.crashlytics.android.Crashlytics
18+
import com.facebook.stetho.okhttp3.StethoInterceptor
1719
import com.squareup.moshi.Moshi
1820
import io.fabric.sdk.android.Fabric
1921
import io.reactivex.Completable
@@ -42,7 +44,7 @@ class MainActivity : AppCompatActivity() {
4244
.baseUrl("https://raw.githubusercontent.com")
4345
.addConverterFactory(MoshiConverterFactory.create(Moshi.Builder().build()))
4446
.addCallAdapterFactory(RxJava2CallAdapterFactory.createAsync())
45-
.client(OkHttpClient.Builder().build())
47+
.client(OkHttpClient.Builder().addNetworkInterceptor(StethoInterceptor()).build())
4648
.build()
4749
.create(MaterialDesignColorsApi::class.java)
4850

@@ -68,6 +70,8 @@ class MainActivity : AppCompatActivity() {
6870
validatableViewsForTriggerFocusChanged.addAll(arrayOf(
6971
binding.email2.register(EmailValidator(getString(R.string.validation_error_email)))
7072
))
73+
74+
binding.colors.register(MaterialDesignColorsValidator(api, this))
7175
}
7276

7377
private fun onSubmitClick(@Suppress("UNUSED_PARAMETER") view: View) {

example/src/main/java/co/kyash/vtl/example/validators/MaterialDesignColorsValidator.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@ class MaterialDesignColorsValidator(
1818
.onErrorResumeNext { Single.error(VtlValidationFailureException(context.getString(R.string.validation_error_server))) }
1919
.flatMapCompletable { list ->
2020
if (text?.trim() != null) {
21-
list.filter { it == text }
22-
.first { return@flatMapCompletable Completable.complete() }
21+
list.filter { it == text.trim().toLowerCase() }
22+
.forEach { return@flatMapCompletable Completable.complete() }
2323
}
2424
return@flatMapCompletable Completable.error(VtlValidationFailureException(getErrorMessage()))
2525
}

example/src/main/res/layout/activity_main.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@
184184
<TextView
185185
style="@style/Description"
186186
android:layout_marginTop="@dimen/space_8dp"
187-
android:text="@string/validator_colors" />
187+
android:text="@string/validator_colors_description" />
188188

189189
<android.support.v7.widget.CardView
190190
android:layout_width="match_parent"
@@ -206,11 +206,11 @@
206206
<co.kyash.vtl.ValidatableTextInputLayout
207207
android:id="@+id/colors"
208208
style="@style/InputRow"
209-
app:trigger="focus_changed">
209+
app:trigger="text_changed">
210210

211211
<EditText
212212
style="@style/BaseEditText"
213-
android:hint="@string/first_name"
213+
android:hint="@string/material_design_colors"
214214
android:inputType="text" />
215215

216216
</co.kyash.vtl.ValidatableTextInputLayout>

example/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
<string name="ascii">Ascii Only</string>
1414
<string name="submit">Submit</string>
1515

16+
<string name="material_design_colors">Material design colors</string>
17+
1618
<string name="validation_error_required">Required</string>
1719
<string name="validation_error_email">Invalid email</string>
1820
<string name="validation_error_number_only">Input only number</string>

versions.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ ext {
1313
supportLibrary : "26.1.0",
1414
espresso : "3.0.1",
1515
retrofit : "2.3.0",
16+
stetho : "1.5.0",
1617
kotshi : "0.3.0-beta1",
1718
]
1819

@@ -54,6 +55,12 @@ ext {
5455
compiler: "com.android.databinding:compiler:3.0.1",
5556
],
5657

58+
//==================== Debug ====================
59+
stetho : [
60+
core : "com.facebook.stetho:stetho:$versions.stetho",
61+
okhttp3: "com.facebook.stetho:stetho-okhttp3:$versions.stetho",
62+
],
63+
5764
//==================== Test ====================
5865
junit : "junit:junit:4.12",
5966
mockitoKotlin: "com.nhaarman:mockito-kotlin:1.5.0",

0 commit comments

Comments
 (0)