1
1
package co.kyash.vtl.example
2
2
3
- import android.databinding.DataBindingUtil
4
3
import android.os.Bundle
5
- import android.support.v7.app.AppCompatActivity
6
4
import android.util.Log
7
5
import android.view.View
8
6
import android.widget.Toast
7
+ import androidx.appcompat.app.AppCompatActivity
8
+ import androidx.databinding.DataBindingUtil
9
9
import co.kyash.vtl.ValidatableView
10
10
import co.kyash.vtl.example.api.MaterialDesignColorsApi
11
11
import co.kyash.vtl.example.databinding.ActivityMainBinding
@@ -42,12 +42,12 @@ class MainActivity : AppCompatActivity() {
42
42
private val compositeDisposable = CompositeDisposable ()
43
43
44
44
private val api = Retrofit .Builder ()
45
- .baseUrl(" https://raw.githubusercontent.com" )
46
- .addConverterFactory(MoshiConverterFactory .create(Moshi .Builder ().build()))
47
- .addCallAdapterFactory(RxJava2CallAdapterFactory .createAsync())
48
- .client(OkHttpClient .Builder ().addNetworkInterceptor(StethoInterceptor ()).build())
49
- .build()
50
- .create(MaterialDesignColorsApi ::class .java)
45
+ .baseUrl(" https://raw.githubusercontent.com" )
46
+ .addConverterFactory(MoshiConverterFactory .create(Moshi .Builder ().build()))
47
+ .addCallAdapterFactory(RxJava2CallAdapterFactory .createAsync())
48
+ .client(OkHttpClient .Builder ().addNetworkInterceptor(StethoInterceptor ()).build())
49
+ .build()
50
+ .create(MaterialDesignColorsApi ::class .java)
51
51
52
52
override fun onCreate (savedInstanceState : Bundle ? ) {
53
53
super .onCreate(savedInstanceState)
@@ -65,33 +65,33 @@ class MainActivity : AppCompatActivity() {
65
65
private fun initValidators () {
66
66
// Example 1
67
67
validatableViewsForTriggerTextChanged.addAll(arrayOf(
68
- binding.firstName.register(RequiredValidator (getString(R .string.validation_error_required))),
69
- binding.lastName.register(RequiredValidator (getString(R .string.validation_error_required))),
70
- binding.email.register(EmailValidator (getString(R .string.validation_error_email))),
71
- binding.numberOnly.register(NumberOnlyValidator (getString(R .string.validation_error_number_only))),
72
- binding.asciiOnly.register(AsciiOnlyValidator (getString(R .string.validation_error_ascii_only)))
68
+ binding.firstName.register(RequiredValidator (getString(R .string.validation_error_required))),
69
+ binding.lastName.register(RequiredValidator (getString(R .string.validation_error_required))),
70
+ binding.email.register(EmailValidator (getString(R .string.validation_error_email))),
71
+ binding.numberOnly.register(NumberOnlyValidator (getString(R .string.validation_error_number_only))),
72
+ binding.asciiOnly.register(AsciiOnlyValidator (getString(R .string.validation_error_ascii_only)))
73
73
))
74
74
75
75
// Example 2
76
76
validatableViewsForTriggerFocusChanged.addAll(arrayOf(
77
- binding.email2.register(EmailValidator (getString(R .string.validation_error_email)))
77
+ binding.email2.register(EmailValidator (getString(R .string.validation_error_email)))
78
78
))
79
79
80
80
// Example 3
81
81
binding.colors.register(MaterialDesignColorsValidator (api, this ))
82
82
83
83
// Example 4
84
84
validatableViewsForButtonEnable.addAll(arrayOf(
85
- binding.firstName2.register(RequiredValidator (getString(R .string.validation_error_required))),
86
- binding.lastName2.register(RequiredValidator (getString(R .string.validation_error_required)))
85
+ binding.firstName2.register(RequiredValidator (getString(R .string.validation_error_required))),
86
+ binding.lastName2.register(RequiredValidator (getString(R .string.validation_error_required)))
87
87
))
88
88
val validations: List <Flowable <Any >> = validatableViewsForButtonEnable.flatMap { it.validationFlowables }
89
89
Flowable .zip(validations) { Any () }
90
- .subscribeOn(Schedulers .computation())
91
- .observeOn(AndroidSchedulers .mainThread())
92
- .doOnError({ binding.submit3.isEnabled = false })
93
- .retry() // non-terminated stream
94
- .subscribe({ binding.submit3.isEnabled = true }, { })
90
+ .subscribeOn(Schedulers .computation())
91
+ .observeOn(AndroidSchedulers .mainThread())
92
+ .doOnError({ binding.submit3.isEnabled = false })
93
+ .retry() // non-terminated stream
94
+ .subscribe({ binding.submit3.isEnabled = true }, { })
95
95
}
96
96
97
97
@@ -113,16 +113,16 @@ class MainActivity : AppCompatActivity() {
113
113
compositeDisposable.clear()
114
114
115
115
compositeDisposable.add(
116
- Completable .mergeDelayError(validations)
117
- .subscribeOn(Schedulers .computation())
118
- .observeOn(AndroidSchedulers .mainThread())
119
- .subscribe({
120
- Log .d(" MainActivity" , " Validation cleared." )
121
- Toast .makeText(this , R .string.validation_success, Toast .LENGTH_SHORT ).show()
122
- }, { throwable ->
123
- Log .e(" MainActivity" , " Validation error occurred." , throwable)
124
- Toast .makeText(this , R .string.validation_error_occurred, Toast .LENGTH_SHORT ).show()
125
- })
116
+ Completable .mergeDelayError(validations)
117
+ .subscribeOn(Schedulers .computation())
118
+ .observeOn(AndroidSchedulers .mainThread())
119
+ .subscribe({
120
+ Log .d(" MainActivity" , " Validation cleared." )
121
+ Toast .makeText(this , R .string.validation_success, Toast .LENGTH_SHORT ).show()
122
+ }, { throwable ->
123
+ Log .e(" MainActivity" , " Validation error occurred." , throwable)
124
+ Toast .makeText(this , R .string.validation_error_occurred, Toast .LENGTH_SHORT ).show()
125
+ })
126
126
)
127
127
}
128
128
0 commit comments