aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2019-06-07 16:13:51 -0400
committerGitHub <noreply@github.com>2019-06-07 16:13:51 -0400
commit065f2db88e4b87b53b3216a5313d5e1e22fa2867 (patch)
treed03866b74ef8146dbd900d20994de47a0de6c705
parenteb9317015c6535bfa36166d254ec954f81d8df97 (diff)
parentd30cdac9ca74ca5e202c681af228fa4ca3a8e389 (diff)
downloadkau-065f2db88e4b87b53b3216a5313d5e1e22fa2867.tar.gz
kau-065f2db88e4b87b53b3216a5313d5e1e22fa2867.tar.bz2
kau-065f2db88e4b87b53b3216a5313d5e1e22fa2867.zip
Merge pull request #202 from AllanWang/plugin-object
Plugin object
-rw-r--r--about/build.gradle2
-rw-r--r--adapter/build.gradle6
-rw-r--r--android-lib.gradle24
-rw-r--r--build.gradle20
-rw-r--r--buildSrc/README.md72
-rw-r--r--buildSrc/build.gradle.kts11
-rw-r--r--buildSrc/src/main/kotlin/ca/allanwang/kau/Dependencies.kt14
-rw-r--r--buildSrc/src/main/kotlin/ca/allanwang/kau/KauPlugin.kt17
-rw-r--r--buildSrc/src/main/kotlin/ca/allanwang/kau/Plugins.kt15
-rw-r--r--buildSrc/src/main/kotlin/kau/ChangelogGenerator.kt (renamed from buildSrc/src/main/kotlin/ca/allanwang/kau/ChangelogGenerator.kt)10
-rw-r--r--buildSrc/src/main/kotlin/kau/Dependencies.kt13
-rw-r--r--buildSrc/src/main/kotlin/kau/Plugins.kt14
-rw-r--r--buildSrc/src/main/kotlin/kau/Versions.kt (renamed from buildSrc/src/main/kotlin/ca/allanwang/kau/Versions.kt)66
-rw-r--r--colorpicker/build.gradle4
-rw-r--r--core-ui/build.gradle2
-rw-r--r--core/build.gradle22
-rw-r--r--core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt9
-rw-r--r--docs/Migration.md10
-rw-r--r--kpref-activity/build.gradle2
-rw-r--r--mediapicker/build.gradle6
-rw-r--r--sample/build.gradle30
21 files changed, 160 insertions, 209 deletions
diff --git a/about/build.gradle b/about/build.gradle
index 29f77c0..7578ce0 100644
--- a/about/build.gradle
+++ b/about/build.gradle
@@ -10,7 +10,7 @@ dependencies {
implementation project(':core-ui')
implementation project(':adapter')
- api("com.mikepenz:aboutlibraries:${kau.aboutLibraries}@aar") {
+ api("com.mikepenz:aboutlibraries:${kau.Versions.aboutLibraries}@aar") {
transitive = false
}
}
diff --git a/adapter/build.gradle b/adapter/build.gradle
index a4f2583..a37330e 100644
--- a/adapter/build.gradle
+++ b/adapter/build.gradle
@@ -1,12 +1,12 @@
-ext.kauSubModuleMinSdk = kau.coreMinSdk
+ext.kauSubModuleMinSdk = kau.Versions.coreMinSdk
apply from: '../android-lib.gradle'
dependencies {
implementation project(':core')
- api "com.mikepenz:fastadapter-commons:${kau.fastAdapterCommons}@aar"
- api "com.mikepenz:fastadapter:${kau.fastAdapter}@aar"
+ api "com.mikepenz:fastadapter-commons:${kau.Versions.fastAdapterCommons}@aar"
+ api "com.mikepenz:fastadapter:${kau.Versions.fastAdapter}@aar"
}
apply from: '../artifacts.gradle'
diff --git a/android-lib.gradle b/android-lib.gradle
index 28fc945..90ec6bf 100644
--- a/android-lib.gradle
+++ b/android-lib.gradle
@@ -6,15 +6,15 @@ apply plugin: 'com.getkeepsafe.dexcount'
group = "ca.allanwang"
android {
- compileSdkVersion kau.targetSdk
- buildToolsVersion kau.buildTools
+ compileSdkVersion kau.Versions.targetSdk
+ buildToolsVersion kau.Versions.buildTools
androidGitVersion {
codeFormat = 'MMNNPPXX'
format = '%tag%%.count%%-commit%'
}
- def kauMinSdk = kau.minSdk
+ def kauMinSdk = kau.Versions.minSdk
if (project.hasProperty('kauSubModuleMinSdk'))
kauMinSdk = kauSubModuleMinSdk
@@ -26,7 +26,7 @@ android {
defaultConfig {
minSdkVersion kauMinSdk
- targetSdkVersion kau.targetSdk
+ targetSdkVersion kau.Versions.targetSdk
versionName androidGitVersion.name()
versionCode androidGitVersion.code()
consumerProguardFiles 'progress-proguard.txt'
@@ -62,8 +62,8 @@ android {
}
compileOptions {
- sourceCompatibility '1.8'
- targetCompatibility '1.8'
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets {
@@ -87,11 +87,11 @@ android {
}
dependencies {
- testImplementation kauDependency.kotlinTest
- testImplementation kauDependency.junit
+ testImplementation kau.Dependencies.kotlinTest
+ testImplementation kau.Dependencies.junit
- androidTestImplementation kauDependency.kotlinTest
- androidTestImplementation kauDependency.espresso
- androidTestImplementation kauDependency.testRules
- androidTestImplementation kauDependency.testRunner
+ androidTestImplementation kau.Dependencies.kotlinTest
+ androidTestImplementation kau.Dependencies.espresso
+ androidTestImplementation kau.Dependencies.testRules
+ androidTestImplementation kau.Dependencies.testRunner
} \ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 39aba6f..81655fb 100644
--- a/build.gradle
+++ b/build.gradle
@@ -6,29 +6,25 @@ buildscript {
maven { url "https://plugins.gradle.org/m2/" }
}
- apply plugin: "ca.allanwang.kau"
-
dependencies {
- classpath kauPlugin.android
- classpath kauPlugin.kotlin
- classpath kauPlugin.androidMaven
- classpath kauPlugin.playPublisher
- classpath kauPlugin.dexCount
- classpath kauPlugin.gitVersion
- classpath kauPlugin.spotless
+ classpath kau.Plugins.android
+ classpath kau.Plugins.kotlin
+ classpath kau.Plugins.androidMaven
+ classpath kau.Plugins.playPublisher
+ classpath kau.Plugins.dexCount
+ classpath kau.Plugins.gitVersion
+ classpath kau.Plugins.spotless
}
wrapper.setDistributionType(Wrapper.DistributionType.ALL)
}
-apply plugin: "ca.allanwang.kau"
-
task clean(type: Delete) {
delete rootProject.buildDir
}
task generateChangelogMd {
- kauChangelog.generate("${project.rootDir}/sample/src/main/res/xml/kau_changelog.xml")
+ kau.ChangelogGenerator.generate("${project.rootDir}/sample/src/main/res/xml/kau_changelog.xml", "${project.rootDir}/docs/Changelog.md")
}
subprojects {
diff --git a/buildSrc/README.md b/buildSrc/README.md
index 91a60ac..14ae3d6 100644
--- a/buildSrc/README.md
+++ b/buildSrc/README.md
@@ -5,75 +5,47 @@
KAU holds quite a big collection of projects, with the intent on making it easy to reuse complex features, and also to update.
This plugin aims to help maintain version updates straight from the source, and also adds on a few nice functions.
-As a note, this is located under `buildSrc` as it is automatically included when building KAU.
+As a note, this is located under `buildSrc` as it is automatically included when building
Everything here is used when generating the library, so it's always tested.
## Contents
-* [Versions](#versions)
-* [Plugins](#plugins)
-* [Dependencies](#dependencies)
+* [Usage](#usage)
+* [Constants](#constants)
* [Changelog Generator](#changelog-generator)
## Usage
-Firstly, add KAU to the buildscript:
+The easiest way to use this is to create your own `buildSrc` folder, and include `ca.allanwang.kau:gradle-plugin:${KAU}` as a dependency.
+This way, you can also use items in your buildscript.
+You can also add your own classes to manage versions in your app.
-```gradle
-buildscript {
- repositories {
- ...
- maven { url "https://jitpack.io" }
- }
-
- dependencies {
- ...
- classpath "ca.allanwang:kau:${KAU}"
- }
-}
-```
-
-Then where necessary, apply the plugin using
-
-```gradle
-apply plugin: 'ca.allanwang.kau'
-```
-
-# Versions
-
-> [Versions.groovy](/buildSrc/src/main/groovy/ca/allanwang/kau/Versions.groovy)
-
-Contains the version code for any external library used in KAU.
-You are free to use the values through `kau.[tagName]`.
-
-As an example, AppCompat is imported in KAU using
+When making your own `buildSrc`, make sure you add the jitpack repository:
```gradle
-api "androidx.appcompat:appcompat:${kau.appcompat}"
+repositories {
+ ...
+ maven { url "https://jitpack.io" }
+}
```
-# Plugins
+---
-> [Plugins.groovy](/buildSrc/src/main/groovy/ca/allanwang/kau/Plugins.groovy)
+Currently, the plugin is a collection of simple classes.
-Unfortunately, it seems like you can't use the plugin directly in the buildscript, so this is mainly internal.
+## Constants
-The plugins data, found using `kauPlugins.[tagName]` contains a collection of useful plugin classpaths.
-The versions are taken from `Versions.groovy`, so it is always in sync.
+`Versions`, `Plugins`, and `Dependencies` supply constants you can use for your classpath and dependencies
-# Dependencies
-
-> [Dependencies.groovy](/buildSrc/src/main/groovy/ca/allanwang/kau/Dependencies.groovy)
-
-Contains the dependency string for common libraries.
-You are free to use the values through `kauDependency.[tagName]`.
-
-As an example, adding junit can be done through
+Eg
```gradle
-testImplementation kauDependency.junit
+dependencies {
+ ...
+ implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:${kau.Versions.coroutines}"
+}
```
-# Changelog Generator
+## Changelog Generator
In conjunction with [core](/core#changelog-xml),
the xml changelog can be converted to markdown.
@@ -82,7 +54,7 @@ To allow for compilation per build, add your own task:
```gradle
task generateChangelogMd() {
- kauChangelog.generate([inputPath], [outputPath])
+ kau.ChangelogGenerator.generate([inputPath], [outputPath])
}
```
diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts
index 83a3370..89cba29 100644
--- a/buildSrc/build.gradle.kts
+++ b/buildSrc/build.gradle.kts
@@ -5,15 +5,6 @@ plugins {
group = "ca.allanwang"
-gradlePlugin {
- plugins {
- register("kau-plugin") {
- id = "ca.allanwang.kau"
- implementationClass = "ca.allanwang.kau.KauPlugin"
- }
- }
-}
-
repositories {
- mavenCentral()
+ jcenter()
} \ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/ca/allanwang/kau/Dependencies.kt b/buildSrc/src/main/kotlin/ca/allanwang/kau/Dependencies.kt
deleted file mode 100644
index 9e23ac4..0000000
--- a/buildSrc/src/main/kotlin/ca/allanwang/kau/Dependencies.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package ca.allanwang.kau
-
-/**
- * Some common dependencies, backed by the supplied versions
- */
-open class Dependencies {
- private val v = Versions()
- val kotlin = "org.jetbrains.kotlin:kotlin-stdlib:${v.kotlin}"
- val kotlinTest = "org.jetbrains.kotlin:kotlin-test-junit:${v.kotlin}"
- val junit = "junit:junit:${v.junit}"
- val espresso = "androidx.test.espresso:espresso-core:${v.espresso}"
- val testRunner = "androidx.test.ext:junit:${v.testRunner}"
- val testRules = "androidx.test:rules:${v.testRules}"
-} \ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/ca/allanwang/kau/KauPlugin.kt b/buildSrc/src/main/kotlin/ca/allanwang/kau/KauPlugin.kt
deleted file mode 100644
index 6be15e5..0000000
--- a/buildSrc/src/main/kotlin/ca/allanwang/kau/KauPlugin.kt
+++ /dev/null
@@ -1,17 +0,0 @@
-package ca.allanwang.kau
-
-import org.gradle.api.Plugin
-import org.gradle.api.Project
-import org.gradle.kotlin.dsl.create
-
-class KauPlugin : Plugin<Project> {
-
- override fun apply(project: Project) {
- project.extensions.run {
- create<Versions>("kau")
- create<Dependencies>("kauDependency")
- create<Plugins>("kauPlugin")
- create<ChangelogGenerator>("kauChangelog", project)
- }
- }
-} \ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/ca/allanwang/kau/Plugins.kt b/buildSrc/src/main/kotlin/ca/allanwang/kau/Plugins.kt
deleted file mode 100644
index 30caad7..0000000
--- a/buildSrc/src/main/kotlin/ca/allanwang/kau/Plugins.kt
+++ /dev/null
@@ -1,15 +0,0 @@
-package ca.allanwang.kau
-
-/**
- * Some common buildscript plugins, backed by the supplied versions
- */
-open class Plugins {
- private val v = Versions()
- val android = "com.android.tools.build:gradle:${v.gradlePlugin}"
- val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${v.kotlin}"
- val androidMaven = "com.github.dcendents:android-maven-gradle-plugin:${v.mavenPlugin}"
- val playPublisher = "com.github.triplet.gradle:play-publisher:${v.playPublishPlugin}"
- val dexCount = "com.getkeepsafe.dexcount:dexcount-gradle-plugin:${v.dexCountPlugin}"
- val gitVersion = "com.gladed.androidgitversion:gradle-android-git-version:${v.gitVersionPlugin}"
- val spotless = "com.diffplug.spotless:spotless-plugin-gradle:${v.spotless}"
-} \ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/ca/allanwang/kau/ChangelogGenerator.kt b/buildSrc/src/main/kotlin/kau/ChangelogGenerator.kt
index 5e21b7e..20e8eef 100644
--- a/buildSrc/src/main/kotlin/ca/allanwang/kau/ChangelogGenerator.kt
+++ b/buildSrc/src/main/kotlin/kau/ChangelogGenerator.kt
@@ -1,9 +1,8 @@
-package ca.allanwang.kau
+package kau
import groovy.util.Node
import groovy.util.XmlParser
import org.gradle.api.GradleException
-import org.gradle.api.Project
import java.io.File
/**
@@ -20,7 +19,7 @@ import java.io.File
*
* Outputs a changelog in markdown format
*/
-open class ChangelogGenerator(private val project: Project) {
+object ChangelogGenerator {
class ChangelogException(message: String) : GradleException(message)
@@ -35,6 +34,7 @@ open class ChangelogGenerator(private val project: Project) {
}
}
+ @JvmStatic
fun read(inputUri: String): List<ChangelogEntry> {
val input = File(inputUri)
if (!input.exists()) {
@@ -71,8 +71,8 @@ open class ChangelogGenerator(private val project: Project) {
return entries
}
- @JvmOverloads
- fun generate(inputUri: String, outputUri: String = "${project.rootDir}/docs/Changelog.md"): List<ChangelogEntry> {
+ @JvmStatic
+ fun generate(inputUri: String, outputUri: String): List<ChangelogEntry> {
val entries = read(inputUri)
val output = File(outputUri)
if (output.exists()) {
diff --git a/buildSrc/src/main/kotlin/kau/Dependencies.kt b/buildSrc/src/main/kotlin/kau/Dependencies.kt
new file mode 100644
index 0000000..62c938c
--- /dev/null
+++ b/buildSrc/src/main/kotlin/kau/Dependencies.kt
@@ -0,0 +1,13 @@
+package kau
+
+/**
+ * Some common dependencies, backed by the supplied versions
+ */
+object Dependencies {
+ const val kotlin = "org.jetbrains.kotlin:kotlin-stdlib:${Versions.kotlin}"
+ const val kotlinTest = "org.jetbrains.kotlin:kotlin-test-junit:${Versions.kotlin}"
+ const val junit = "junit:junit:${Versions.junit}"
+ const val espresso = "androidx.test.espresso:espresso-core:${Versions.espresso}"
+ const val testRunner = "androidx.test.ext:junit:${Versions.testRunner}"
+ const val testRules = "androidx.test:rules:${Versions.testRules}"
+} \ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/kau/Plugins.kt b/buildSrc/src/main/kotlin/kau/Plugins.kt
new file mode 100644
index 0000000..cdee364
--- /dev/null
+++ b/buildSrc/src/main/kotlin/kau/Plugins.kt
@@ -0,0 +1,14 @@
+package kau
+
+/**
+ * Some common buildscript plugins, backed by the supplied versions
+ */
+object Plugins {
+ const val android = "com.android.tools.build:gradle:${Versions.gradlePlugin}"
+ const val kotlin = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
+ const val androidMaven = "com.github.dcendents:android-maven-gradle-plugin:${Versions.mavenPlugin}"
+ const val playPublisher = "com.github.triplet.gradle:play-publisher:${Versions.playPublishPlugin}"
+ const val dexCount = "com.getkeepsafe.dexcount:dexcount-gradle-plugin:${Versions.dexCountPlugin}"
+ const val gitVersion = "com.gladed.androidgitversion:gradle-android-git-version:${Versions.gitVersionPlugin}"
+ const val spotless = "com.diffplug.spotless:spotless-plugin-gradle:${Versions.spotless}"
+} \ No newline at end of file
diff --git a/buildSrc/src/main/kotlin/ca/allanwang/kau/Versions.kt b/buildSrc/src/main/kotlin/kau/Versions.kt
index d48e236..32db3a5 100644
--- a/buildSrc/src/main/kotlin/ca/allanwang/kau/Versions.kt
+++ b/buildSrc/src/main/kotlin/kau/Versions.kt
@@ -1,80 +1,80 @@
-package ca.allanwang.kau
+package kau
-open class Versions {
- val coreMinSdk = 19
- val minSdk = 21
- val targetSdk = 28
+object Versions {
+ const val coreMinSdk = 19
+ const val minSdk = 21
+ const val targetSdk = 28
// https://developer.android.com/studio/releases/build-tools
- val buildTools = "28.0.3"
+ const val buildTools = "28.0.3"
// https://mvnrepository.com/artifact/androidx.appcompat/appcompat?repo=google
- val appcompat = "1.0.2"
+ const val appcompat = "1.0.2"
// https://mvnrepository.com/artifact/com.google.android.material/material
- val googleMaterial = "1.0.0"
+ const val googleMaterial = "1.0.0"
// https://mvnrepository.com/artifact/androidx.recyclerview/recyclerview
- val recyclerView = "1.0.0"
+ const val recyclerView = "1.0.0"
// https://mvnrepository.com/artifact/androidx.cardview/cardview
- val cardView = "1.0.0"
+ const val cardView = "1.0.0"
// https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout
- val constraintLayout = "1.1.3"
+ const val constraintLayout = "1.1.3"
// https://kotlinlang.org/docs/reference/using-gradle.html
- val kotlin = "1.3.31"
+ const val kotlin = "1.3.31"
// https://github.com/Kotlin/kotlinx.coroutines/releases
- val coroutines = "1.3.0-M1"
+ const val coroutines = "1.3.0-M1"
// https://github.com/mikepenz/AboutLibraries/releases
- val aboutLibraries = "6.2.3"
+ const val aboutLibraries = "6.2.3"
// https://github.com/wasabeef/Blurry/releases
- val blurry = "3.0.0"
+ const val blurry = "3.0.0"
// https://github.com/mikepenz/FastAdapter#using-maven
- val fastAdapter = "3.3.1"
- val fastAdapterCommons = fastAdapter
+ const val fastAdapter = "3.3.1"
+ const val fastAdapterCommons = fastAdapter
// https://github.com/bumptech/glide/releases
- val glide = "4.9.0"
+ const val glide = "4.9.0"
// https://github.com/mikepenz/Android-Iconics#1-provide-the-gradle-dependency
- val iconics = "3.2.5"
- val iconicsGoogle = "3.0.1.3"
- val iconicsMaterial = "2.2.0.5"
- val iconicsCommunity = "3.5.95.1"
+ const val iconics = "3.2.5"
+ const val iconicsGoogle = "3.0.1.3"
+ const val iconicsMaterial = "2.2.0.5"
+ const val iconicsCommunity = "3.5.95.1"
// https://github.com/afollestad/material-dialogs/releases
- val materialDialog = "3.0.0-rc2"
+ const val materialDialog = "3.0.0-rc2"
// https://mvnrepository.com/artifact/androidx.test.espresso/espresso-core?repo=google
- val espresso = "3.1.1"
+ const val espresso = "3.1.1"
// https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api
- val junit = "4.12"
+ const val junit = "4.12"
- val testRunner = "1.1.0"
+ const val testRunner = "1.1.0"
// https://mvnrepository.com/artifact/androidx.test/rules?repo=google
- val testRules = "1.1.1"
+ const val testRules = "1.1.1"
// https://github.com/diffplug/spotless/blob/master/plugin-gradle/CHANGES.md
- val spotless = "3.18.0"
+ const val spotless = "3.18.0"
// https://mvnrepository.com/artifact/com.android.tools.build/gradle?repo=google
- val gradlePlugin = "3.4.1"
+ const val gradlePlugin = "3.4.1"
// https://github.com/dcendents/android-maven-gradle-plugin/releases
- val mavenPlugin = "2.1"
+ const val mavenPlugin = "2.1"
// https://github.com/Triple-T/gradle-play-publisher/releases
- val playPublishPlugin = "2.2.1"
+ const val playPublishPlugin = "2.2.1"
// https://github.com/KeepSafe/dexcount-gradle-plugin/releases
- val dexCountPlugin = "0.8.6"
+ const val dexCountPlugin = "0.8.6"
// https://github.com/gladed/gradle-android-git-version/releases
- val gitVersionPlugin = "0.4.9"
+ const val gitVersionPlugin = "0.4.9"
} \ No newline at end of file
diff --git a/colorpicker/build.gradle b/colorpicker/build.gradle
index 4b89e10..0b58996 100644
--- a/colorpicker/build.gradle
+++ b/colorpicker/build.gradle
@@ -1,13 +1,13 @@
ext.kauSubModuleResourcePrefix = "kau_color_"
-ext.kauSubModuleMinSdk = kau.coreMinSdk
+ext.kauSubModuleMinSdk = kau.Versions.coreMinSdk
apply from: '../android-lib.gradle'
dependencies {
implementation project(':core')
- implementation "com.afollestad.material-dialogs:color:${kau.materialDialog}"
+ implementation "com.afollestad.material-dialogs:color:${kau.Versions.materialDialog}"
}
apply from: '../artifacts.gradle'
diff --git a/core-ui/build.gradle b/core-ui/build.gradle
index 397d4ab..c2732c6 100644
--- a/core-ui/build.gradle
+++ b/core-ui/build.gradle
@@ -1,4 +1,4 @@
-ext.kauSubModuleMinSdk = kau.coreMinSdk
+ext.kauSubModuleMinSdk = kau.Versions.coreMinSdk
apply from: '../android-lib.gradle'
diff --git a/core/build.gradle b/core/build.gradle
index 3ac4f36..43cdc6d 100644
--- a/core/build.gradle
+++ b/core/build.gradle
@@ -1,22 +1,22 @@
-ext.kauSubModuleMinSdk = kau.coreMinSdk
+ext.kauSubModuleMinSdk = kau.Versions.coreMinSdk
apply from: '../android-lib.gradle'
dependencies {
- api kauDependency.kotlin
+ api kau.Dependencies.kotlin
- api "androidx.appcompat:appcompat:${kau.appcompat}"
- api "androidx.recyclerview:recyclerview:${kau.recyclerView}"
- api "androidx.cardview:cardview:${kau.cardView}"
- api "androidx.constraintlayout:constraintlayout:${kau.constraintLayout}"
- api "com.google.android.material:material:${kau.googleMaterial}"
+ api "androidx.appcompat:appcompat:${kau.Versions.appcompat}"
+ api "androidx.recyclerview:recyclerview:${kau.Versions.recyclerView}"
+ api "androidx.cardview:cardview:${kau.Versions.cardView}"
+ api "androidx.constraintlayout:constraintlayout:${kau.Versions.constraintLayout}"
+ api "com.google.android.material:material:${kau.Versions.googleMaterial}"
- api "org.jetbrains.kotlinx:kotlinx-coroutines-android:${kau.coroutines}"
+ api "org.jetbrains.kotlinx:kotlinx-coroutines-android:${kau.Versions.coroutines}"
- api "com.mikepenz:iconics-core:${kau.iconics}@aar"
- api "com.mikepenz:google-material-typeface:${kau.iconicsGoogle}.original@aar"
+ api "com.mikepenz:iconics-core:${kau.Versions.iconics}@aar"
+ api "com.mikepenz:google-material-typeface:${kau.Versions.iconicsGoogle}.original@aar"
- api "com.afollestad.material-dialogs:core:${kau.materialDialog}"
+ api "com.afollestad.material-dialogs:core:${kau.Versions.materialDialog}"
}
apply from: '../artifacts.gradle'
diff --git a/core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt b/core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt
index 82d5608..e8680dc 100644
--- a/core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt
+++ b/core/src/main/kotlin/ca/allanwang/kau/utils/ContextUtils.kt
@@ -203,12 +203,15 @@ fun Context.resolveString(@AttrRes attr: Int, fallback: String = ""): String {
inline fun Context.materialDialog(
dialogBehavior: DialogBehavior = ModalDialog,
action: MaterialDialog.() -> Unit
-) {
+): MaterialDialog {
val dialog = MaterialDialog(this, dialogBehavior)
+ dialog.action()
if (isFinishing) {
- return KL.d { "Material Dialog triggered from finishing context; did not show" }
+ KL.d { "Material Dialog triggered from finishing context; did not show" }
+ } else {
+ dialog.show()
}
- dialog.show(action)
+ return dialog
}
fun Context.getDip(value: Float): Float =
diff --git a/docs/Migration.md b/docs/Migration.md
index 203dc1d..a7162fa 100644
--- a/docs/Migration.md
+++ b/docs/Migration.md
@@ -15,12 +15,20 @@ Alongside such changes, `:colorpicker` is no longer as necessary. It exists main
After Material Dialog 2.x, a decision was made to enforce theming through xml styles only to avoid reflection.
As a result, options to supply custom dialog colors are now removed (ie in the changelog dialog and color picker kprefs).
-## Update ProgressAnimator
+## ProgressAnimator
`ProgressAnimator` has been completely rewritten to be an extension of `ValueAnimator`.
This for the most part is not a breaking change, apart from the fact that creating an animator will not start it immediately.
Make sure to call `.start()` to begin the animation.
+## Gradle Plugin
+
+The plugin has been converted to kotlin objects.
+Now, usage is done through the classes directly, and no extensions are provided within the project.
+For instance, instead of using `kauDependencies`, we now use `kau.Dependencies`.
+There is also no longer a need to use `apply plugin 'ca.allanwang.kau'`;
+adding the plugin to the classpath suffices.
+
# v4.0.1-alpha02
* `kauParseFaq` is now synchronous.
diff --git a/kpref-activity/build.gradle b/kpref-activity/build.gradle
index ef91e2b..e2e2771 100644
--- a/kpref-activity/build.gradle
+++ b/kpref-activity/build.gradle
@@ -1,4 +1,4 @@
-ext.kauSubModuleMinSdk = kau.coreMinSdk
+ext.kauSubModuleMinSdk = kau.Versions.coreMinSdk
ext.kauSubModuleResourcePrefix = "kau_pref_"
diff --git a/mediapicker/build.gradle b/mediapicker/build.gradle
index 20d7750..5f4e6a7 100644
--- a/mediapicker/build.gradle
+++ b/mediapicker/build.gradle
@@ -1,4 +1,4 @@
-ext.kauSubModuleMinSdk = kau.coreMinSdk
+ext.kauSubModuleMinSdk = kau.Versions.coreMinSdk
apply from: '../android-lib.gradle'
apply plugin: 'kotlin-kapt'
@@ -8,8 +8,8 @@ dependencies {
implementation project(':adapter')
//noinspection GradleDependency
- api "com.github.bumptech.glide:glide:${kau.glide}"
- implementation "jp.wasabeef:blurry:${kau.blurry}"
+ api "com.github.bumptech.glide:glide:${kau.Versions.glide}"
+ implementation "jp.wasabeef:blurry:${kau.Versions.blurry}"
}
apply from: '../artifacts.gradle'
diff --git a/sample/build.gradle b/sample/build.gradle
index d11e5bd..11be396 100644
--- a/sample/build.gradle
+++ b/sample/build.gradle
@@ -9,8 +9,8 @@ play {
}
android {
- compileSdkVersion kau.targetSdk
- buildToolsVersion kau.buildTools
+ compileSdkVersion kau.Versions.targetSdk
+ buildToolsVersion kau.Versions.buildTools
androidGitVersion {
codeFormat = 'MMNNPPXX'
@@ -19,8 +19,8 @@ android {
defaultConfig {
applicationId "ca.allanwang.kau.sample"
- minSdkVersion kau.minSdk
- targetSdkVersion kau.targetSdk
+ minSdkVersion kau.Versions.minSdk
+ targetSdkVersion kau.Versions.targetSdk
versionName androidGitVersion.name()
versionCode androidGitVersion.code()
multiDexEnabled true
@@ -81,8 +81,8 @@ android {
}
compileOptions {
- sourceCompatibility '1.8'
- targetCompatibility '1.8'
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
}
sourceSets {
@@ -127,15 +127,15 @@ dependencies {
implementation project(':searchview')
implementation project(':mediapicker')
- implementation "com.afollestad.material-dialogs:input:${kau.materialDialog}"
+ implementation "com.afollestad.material-dialogs:input:${kau.Versions.materialDialog}"
- testImplementation kauDependency.kotlinTest
- testImplementation kauDependency.junit
+ testImplementation kau.Dependencies.kotlinTest
+ testImplementation kau.Dependencies.junit
- androidTestImplementation kauDependency.kotlinTest
- androidTestImplementation kauDependency.espresso
- androidTestImplementation "androidx.test.espresso:espresso-intents:${kau.espresso}"
- androidTestImplementation "androidx.test.espresso:espresso-contrib:${kau.espresso}"
- androidTestImplementation kauDependency.testRules
- androidTestImplementation kauDependency.testRunner
+ androidTestImplementation kau.Dependencies.kotlinTest
+ androidTestImplementation kau.Dependencies.espresso
+ androidTestImplementation "androidx.test.espresso:espresso-intents:${kau.Versions.espresso}"
+ androidTestImplementation "androidx.test.espresso:espresso-contrib:${kau.Versions.espresso}"
+ androidTestImplementation kau.Dependencies.testRules
+ androidTestImplementation kau.Dependencies.testRunner
}