Skip to content

Commit d213662

Browse files
committed
Migrated to AndroidX
1 parent 5fa7cc9 commit d213662

File tree

11 files changed

+211
-124
lines changed

11 files changed

+211
-124
lines changed

build.gradle

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
buildscript {
2-
apply from: "${rootDir.absolutePath}/versions.gradle"
1+
import dependencies.Depends
32

3+
buildscript {
44
repositories {
55
google()
66
jcenter()
@@ -10,11 +10,11 @@ buildscript {
1010
maven { url "https://jitpack.io" }
1111
}
1212
dependencies {
13-
classpath "com.android.tools.build:gradle:$versions.gradleBuildTool"
14-
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin"
15-
classpath "gradle.plugin.org.jlleitschuh.gradle:ktlint-gradle:$versions.ktlintGradle"
16-
classpath "io.fabric.tools:gradle:$versions.fabricGradleTool"
17-
classpath "com.github.dcendents:android-maven-gradle-plugin:$versions.mavenGradle"
13+
classpath Depends.GradlePlugin.android
14+
classpath Depends.GradlePlugin.kotlin
15+
classpath Depends.GradlePlugin.ktlint
16+
classpath Depends.GradlePlugin.fabric
17+
classpath Depends.GradlePlugin.androidMaven
1818
}
1919
}
2020

buildSrc/.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

buildSrc/build.gradle.kts

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
plugins {
2+
`kotlin-dsl`
3+
}
4+
repositories {
5+
jcenter()
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
package dependencies
2+
3+
@Suppress("unused")
4+
object Depends {
5+
object GradlePlugin {
6+
const val android = "com.android.tools.build:gradle:3.2.1"
7+
const val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Kotlin.version}"
8+
const val ktlint = "gradle.plugin.org.jlleitschuh.gradle:ktlint-gradle:3.0.0"
9+
const val fabric = "io.fabric.tools:gradle:1.25.4"
10+
const val androidMaven = "com.github.dcendents:android-maven-gradle-plugin:2.0"
11+
}
12+
13+
object Test {
14+
const val junit = "junit:junit:4.12"
15+
const val testRunner = "androidx.test:runner:1.1.0"
16+
const val mockitoKotlin = "com.nhaarman.mockitokotlin2:mockito-kotlin:2.0.0"
17+
const val robolectric = "org.robolectric:robolectric:3.5.1"
18+
19+
object Espresso {
20+
const val core = "androidx.test.espresso:espresso-core:3.1.0-alpha4"
21+
const val intents = "androidx.test.espresso:espresso-intents:3.1.0-alpha4"
22+
}
23+
}
24+
25+
object AndroidX {
26+
const val appCompat = "androidx.appcompat:appcompat:1.0.0"
27+
const val recyclerView = "androidx.recyclerview:recyclerview:1.0.0"
28+
const val cardView = "androidx.cardview:cardview:1.0.0"
29+
const val design = "com.google.android.material:material:1.1.0-alpha01"
30+
}
31+
32+
object Kotlin {
33+
const val version = "1.3.11"
34+
const val stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$version"
35+
}
36+
37+
object Stetho {
38+
const val version = "1.5.0"
39+
const val core = "com.facebook.stetho:stetho:$version"
40+
const val okhttp = "com.facebook.stetho:stetho-okhttp3:$version"
41+
}
42+
43+
object Crashlytics {
44+
const val core = "com.crashlytics.sdk.android:crashlytics:2.8.0@aar"
45+
}
46+
47+
object Retrofit {
48+
private const val version = "2.5.0"
49+
const val core = "com.squareup.retrofit2:retrofit:$version"
50+
const val converterMoshi = "com.squareup.retrofit2:converter-moshi:$version"
51+
const val adapterRxJava2 = "com.squareup.retrofit2:adapter-rxjava2:$version"
52+
}
53+
54+
object Kotshi {
55+
private const val version = "1.0.6"
56+
const val api = "se.ansman.kotshi:api:$version"
57+
const val compiler = "se.ansman.kotshi:compiler:$version"
58+
}
59+
60+
object Rx {
61+
const val RxJava = "io.reactivex.rxjava2:rxjava:2.2.4"
62+
const val RxAndroid = "io.reactivex.rxjava2:rxandroid:2.1.0"
63+
const val RxKotlin = "io.reactivex.rxjava2:rxkotlin:2.3.0"
64+
}
65+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package dependencies
2+
3+
private object Versions {
4+
val androidCompileSdkVersion = 28
5+
val androidTargetSdkVersion = 28
6+
val androidMinSdkVersion = 19
7+
}

example/build.gradle

+30-27
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
1+
import dependencies.Depends
2+
import dependencies.Versions
3+
14
apply plugin: 'com.android.application'
25
apply plugin: 'kotlin-android'
36
apply plugin: 'kotlin-kapt'
47
apply plugin: "org.jlleitschuh.gradle.ktlint"
58
apply plugin: 'io.fabric'
9+
apply from: "${rootDir.absolutePath}/versions.gradle"
610

7-
def versionMajor = 0
8-
def versionMinor = 1
11+
def versionMajor = 1
12+
def versionMinor = 0
913
def versionPatch = 0
1014

1115
android {
12-
compileSdkVersion versions.compileSdk
16+
compileSdkVersion Versions.androidCompileSdkVersion
1317
dataBinding.enabled = true
1418

1519
defaultConfig {
1620
applicationId "co.kyash.vtl.sample"
17-
minSdkVersion versions.minSdk
18-
targetSdkVersion versions.targetSdk
21+
minSdkVersion Versions.androidMinSdkVersion
22+
targetSdkVersion Versions.androidTargetSdkVersion
1923
versionCode versionMajor * 10000 + versionMinor * 100 + versionPatch
2024
versionName "$versionMajor.$versionMinor.$versionPatch"
2125
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
@@ -58,43 +62,42 @@ dependencies {
5862
implementation project(':library')
5963

6064
//==================== Kotlin ====================
61-
implementation depends.kotlin.stdlib
65+
implementation Depends.Kotlin.stdlib
6266

6367
//==================== Support Library ====================
64-
implementation depends.support.appcompat
65-
implementation depends.support.design
66-
implementation depends.support.cardview
68+
implementation Depends.AndroidX.appCompat
69+
implementation Depends.AndroidX.design
70+
implementation Depends.AndroidX.cardView
6771

6872
//==================== Network ====================
69-
implementation depends.retrofit.core
70-
implementation depends.retrofit.converterMoshi
71-
implementation depends.retrofit.adapterRxJava2
73+
implementation Depends.Retrofit.core
74+
implementation Depends.Retrofit.converterMoshi
75+
implementation Depends.Retrofit.adapterRxJava2
7276

7377
//==================== Structure ====================
74-
implementation depends.kotshi.api
75-
kapt depends.kotshi.compiler
78+
implementation Depends.Kotshi.api
79+
kapt Depends.Kotshi.compiler
7680

77-
implementation depends.rxjava2.core
78-
implementation depends.rxjava2.android
79-
implementation depends.rxjava2.kotlin
81+
implementation Depends.Rx.RxJava
82+
implementation Depends.Rx.RxAndroid
83+
implementation Depends.Rx.RxKotlin
8084

8185
//==================== Debug ====================
82-
implementation(depends.crashlytics) {
86+
implementation(Depends.Crashlytics.core) {
8387
transitive = true
8488
}
8589

8690
//==================== Debug ====================
87-
debugImplementation depends.stetho.core
88-
debugImplementation depends.stetho.okhttp3
91+
implementation Depends.Stetho.core
92+
implementation Depends.Stetho.okhttp
8993

9094
//==================== Test ====================
91-
testImplementation depends.junit
92-
testImplementation depends.mockitoKotlin
93-
testImplementation depends.robolectric.core
94-
androidTestImplementation depends.supporttest.runner
95-
androidTestImplementation depends.supporttest.espresso
96-
androidTestImplementation depends.espresso.core
97-
androidTestImplementation depends.espresso.intents
95+
testImplementation Depends.Test.junit
96+
testImplementation Depends.Test.mockitoKotlin
97+
testImplementation Depends.Test.robolectric
98+
androidTestImplementation Depends.Test.testRunner
99+
androidTestImplementation Depends.Test.Espresso.core
100+
androidTestImplementation Depends.Test.Espresso.intents
98101
}
99102

100103
ktlint {

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

+31-31
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
package co.kyash.vtl.example
22

3-
import android.databinding.DataBindingUtil
43
import android.os.Bundle
5-
import android.support.v7.app.AppCompatActivity
64
import android.util.Log
75
import android.view.View
86
import android.widget.Toast
7+
import androidx.appcompat.app.AppCompatActivity
8+
import androidx.databinding.DataBindingUtil
99
import co.kyash.vtl.ValidatableView
1010
import co.kyash.vtl.example.api.MaterialDesignColorsApi
1111
import co.kyash.vtl.example.databinding.ActivityMainBinding
@@ -42,12 +42,12 @@ class MainActivity : AppCompatActivity() {
4242
private val compositeDisposable = CompositeDisposable()
4343

4444
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)
5151

5252
override fun onCreate(savedInstanceState: Bundle?) {
5353
super.onCreate(savedInstanceState)
@@ -65,33 +65,33 @@ class MainActivity : AppCompatActivity() {
6565
private fun initValidators() {
6666
// Example 1
6767
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)))
7373
))
7474

7575
// Example 2
7676
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)))
7878
))
7979

8080
// Example 3
8181
binding.colors.register(MaterialDesignColorsValidator(api, this))
8282

8383
// Example 4
8484
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)))
8787
))
8888
val validations: List<Flowable<Any>> = validatableViewsForButtonEnable.flatMap { it.validationFlowables }
8989
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 }, { })
9595
}
9696

9797

@@ -113,16 +113,16 @@ class MainActivity : AppCompatActivity() {
113113
compositeDisposable.clear()
114114

115115
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+
})
126126
)
127127
}
128128

0 commit comments

Comments
 (0)