diff --git a/app/build.gradle b/app/build.gradle deleted file mode 100644 index 7f239689..00000000 --- a/app/build.gradle +++ /dev/null @@ -1,180 +0,0 @@ -apply plugin: "com.android.application" -apply plugin: "kotlin-android" -apply plugin: 'kotlin-android-extensions' -apply plugin: "kotlin-kapt" -apply plugin: "io.fabric" -apply plugin: "com.github.ben-manes.versions" -apply plugin: 'com.novoda.build-properties' - -ext { - min_sdk = 21 - compile_sdk = 28 - target_sdk = 28 - version_code = 24 - version_name = '0.2.1' - - annotations = '17.0.0' - compat = '1.1.0-rc01' - material = '1.1.0-alpha09' - preference = '1.0.0' - thirtyinch = '0.9.0' - rxjava = '2.2.7' - rxandroid = '2.1.1' - ktx = '1.1.0-alpha05' - koptional = '1.6.0' - fuel = '2.0.1' - gson = '2.8.5' - room = '1.1.1' - android_state = '1.4.1' - zxing = '3.4.0' - zxing_embedded = '3.6.0' - glide = '4.9.0' - shaped = '0.8.6' - toasty = '1.4.0' - bottom_navigation = '2.0.2' - shortbread = '1.0.2' - timber = '4.7.1' - stetho = '1.5.0' - colorpicker = '1.1.4' - svg = '1.4' - room = '2.1.0' - // назвать переменную crashlytics нельзя - crashlytics_version = '2.9.9' -} - -buildProperties { - secrets { - using(rootProject.file("gradle.properties")).or(rootProject.file("gradle_debug.properties")) - } -} - -android { - compileSdkVersion compile_sdk - signingConfigs { - signing { - storeFile file(buildProperties.secrets['RELEASE_STORE_FILE'].string) - keyAlias buildProperties.secrets['RELEASE_KEY_ALIAS'].string - keyPassword buildProperties.secrets['RELEASE_KEY_PASSWORD'].string - storePassword buildProperties.secrets['RELEASE_STORE_PASSWORD'].string - } - } - defaultConfig { - applicationId "ru.fantlab.android" - minSdkVersion min_sdk - targetSdkVersion target_sdk - versionCode version_code - versionName version_name - archivesBaseName = "fantlab-${versionName}(${versionCode})" - buildConfigField "String", "REST_URL", '"https://api.fantlab.ru/"' - buildConfigField "String", "API_VERSION", '"0.9.3"' - resValue "string", "VERSION_NAME", "$versionName ($versionCode)" - javaCompileOptions { - annotationProcessorOptions { - includeCompileClasspath false - } - } - kapt { - arguments { - arg("room.schemaLocation", "$projectDir/schemas".toString()) - } - } - } - buildTypes { - debug { - signingConfig signingConfigs.signing - ext.alwaysUpdateBuildId = false - } - release { - minifyEnabled true - shrinkResources true - signingConfig signingConfigs.signing - proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" - } - } - sourceSets { - main { - java.srcDirs = ["src/main/kotlin"] - res.srcDirs = ["src/main/res/", - "src/main/res/layouts/main_layouts", - "src/main/res/layouts/row_layouts", - "src/main/res/layouts/other_layouts"] - } - } - lintOptions { - warningsAsErrors true - abortOnError true - htmlReport true - disable "InvalidPackage" - } - packagingOptions { - exclude "META-INF/NOTICE" - exclude "META-INF/NOTICE.txt" - exclude "META-INF/LICENSE" - exclude "META-INF/LICENSE.txt" - exclude "META-INF/rxjava.properties" - } - dexOptions { - jumboMode true - javaMaxHeapSize "4g" - } - androidExtensions { - experimental = true - } -} - -dependencyUpdates { - revision = "release" - outputFormatter = "json" - outputDir = "build/dependencyUpdates" -} - -repositories { - maven { url "https://jitpack.io" } - maven { url "https://maven.fabric.io/public" } -} - -dependencies { - implementation "androidx.appcompat:appcompat:$compat" - implementation "com.google.android.material:material:$material" - implementation "androidx.legacy:legacy-preference-v14:$preference" - - implementation "net.grandcentrix.thirtyinch:thirtyinch:$thirtyinch" - implementation "net.grandcentrix.thirtyinch:thirtyinch-rx2:$thirtyinch" - implementation "io.reactivex.rxjava2:rxjava:$rxjava" - implementation "io.reactivex.rxjava2:rxandroid:$rxandroid" - implementation "androidx.core:core-ktx:$ktx" - - implementation "com.gojuno.koptional:koptional:$koptional" - implementation "com.github.kittinunf.fuel:fuel-android:$fuel" - implementation "com.github.kittinunf.fuel:fuel-rxjava:$fuel" - implementation "com.github.kittinunf.fuel:fuel-gson:$fuel" - implementation "androidx.room:room-runtime:$room" - implementation "androidx.room:room-rxjava2:$room" - kapt "androidx.room:room-compiler:$room" - implementation "com.evernote:android-state:$android_state" - kapt "com.evernote:android-state-processor:$android_state" - - implementation "com.github.bumptech.glide:glide:$glide" - kapt "com.github.bumptech.glide:compiler:$glide" - - implementation "com.google.zxing:core:$zxing" - implementation("com.journeyapps:zxing-android-embedded:$zxing_embedded@aar") { - transitive = false - } - implementation "com.github.matthiasrobbers:shortbread:$shortbread" - kapt "com.github.matthiasrobbers:shortbread-compiler:$shortbread" - implementation "it.sephiroth.android.library.bottomnavigation:bottom-navigation:$bottom_navigation" - implementation "com.github.GrenderG:Toasty:$toasty" - implementation "cn.gavinliu:ShapedImageView:$shaped" - implementation "com.jakewharton.timber:timber:$timber" - implementation("com.crashlytics.sdk.android:crashlytics:$crashlytics_version@aar") { - transitive = true - } - implementation "com.google.firebase:firebase-core:16.0.8" - implementation "com.facebook.stetho:stetho:$stetho" - implementation "com.facebook.stetho:stetho-okhttp3:$stetho" - implementation "petrov.kristiyan:colorpicker-library:$colorpicker" - implementation "com.caverock:androidsvg-aar:$svg" -} - -apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/app/build.gradle.kts b/app/build.gradle.kts new file mode 100644 index 00000000..19670fbc --- /dev/null +++ b/app/build.gradle.kts @@ -0,0 +1,180 @@ +import java.util.Properties +import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask + +plugins { + id("com.android.application") + kotlin("android") + kotlin("android.extensions") + kotlin("kapt") + id("io.fabric") + id("com.github.ben-manes.versions") +} + +extra.apply { + set("min_sdk", 21) + set("compile_sdk", 28) + set("target_sdk", 28) + set("version_code", 24) + set("version_name", "0.2.1") + set("annotations", "17.0.0") + set("compat", "1.1.0-rc01") + set("material", "1.1.0-alpha09") + set("preference", "1.0.0") + set("thirtyinch", "0.9.0") + set("rxjava", "2.2.7") + set("rxandroid", "2.1.1") + set("ktx", "1.1.0-alpha05") + set("koptional", "1.6.0") + set("fuel", "2.0.1") + set("gson", "2.8.5") + set("room", "1.1.1") + set("android_state", "1.4.1") + set("zxing", "3.4.0") + set("zxing_embedded", "3.6.0") + set("glide", "4.9.0") + set("shaped", "0.8.6") + set("toasty", "1.4.2") + set("bottom_navigation", "2.0.2") + set("shortbread", "1.0.2") + set("timber", "4.7.1") + set("stetho", "1.5.0") + set("colorpicker", "1.1.4") + set("svg", "1.4") + set("room", "2.1.0") + set("crashlytics_version", "2.9.9") + set("firebase", "16.0.8") +} + +fun readProperties(propertiesFile: File) = Properties().apply { + propertiesFile.inputStream().use { fis -> + load(fis) + } +} + +android { + compileSdkVersion(extra["compile_sdk"] as Int) + signingConfigs { + create("release") { + if (gradle.startParameter.taskNames.toString().contains("release")) { + val buildProperties = readProperties(File(project.rootDir, "gradle.properties")) + storeFile = file(buildProperties["RELEASE_STORE_FILE"] as String) + keyAlias = buildProperties["RELEASE_KEY_ALIAS"] as String + keyPassword = buildProperties["RELEASE_KEY_PASSWORD"] as String + storePassword = buildProperties["RELEASE_STORE_PASSWORD"] as String + } + } + getByName("debug") { + val buildProperties = readProperties(File(project.rootDir, "gradle_debug.properties")) + storeFile = file(buildProperties["RELEASE_STORE_FILE"] as String) + keyAlias = buildProperties["RELEASE_KEY_ALIAS"] as String + keyPassword = buildProperties["RELEASE_KEY_PASSWORD"] as String + storePassword = buildProperties["RELEASE_STORE_PASSWORD"] as String + } + } + defaultConfig { + applicationId = "ru.fantlab.android" + minSdkVersion(extra["min_sdk"] as Int) + targetSdkVersion(extra["target_sdk"] as Int) + versionCode = extra["version_code"] as Int + versionName = extra["version_name"] as String + base.archivesBaseName = "fantlab-${versionName}(${versionCode})" + buildConfigField("String", "REST_URL", "\"https://api.fantlab.ru/\"") + buildConfigField("String", "API_VERSION", "\"0.9.3\"") + resValue("string", "VERSION_NAME", "$versionName ($versionCode)") + javaCompileOptions { + annotationProcessorOptions { + includeCompileClasspath = false + } + } + kapt { + arguments { + arg("room.schemaLocation", "$projectDir/schemas") + } + } + } + buildTypes { + getByName("debug") { + signingConfig = signingConfigs.getByName("debug") + ext.set("alwaysUpdateBuildId", false) + } + getByName("release") { + isMinifyEnabled = true + isShrinkResources = true + signingConfig = signingConfigs.getByName("release") + proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro") + } + } + sourceSets { + val main by getting + main.java.srcDirs("src/main/kotlin") + main.res.srcDirs("src/main/res/", + "src/main/res/layouts/main_layouts", + "src/main/res/layouts/row_layouts", + "src/main/res/layouts/other_layouts") + } + lintOptions { + isWarningsAsErrors = true + isAbortOnError = true + htmlReport = true + disable("InvalidPackage") + } + packagingOptions { + exclude("META-INF/NOTICE") + exclude("META-INF/NOTICE.txt") + exclude("META-INF/LICENSE") + exclude("META-INF/LICENSE.txt") + exclude("META-INF/rxjava.properties") + } + dexOptions { + jumboMode = true + javaMaxHeapSize = "4g" + } + androidExtensions { + isExperimental = true + } +} + + +tasks.withType { + revision = "release" + outputFormatter = "json" + outputDir = "build/dependencyUpdates" +} + +dependencies { + implementation("androidx.appcompat:appcompat:${extra["compat"]}") + implementation("com.google.android.material:material:${extra["material"]}") + implementation("androidx.legacy:legacy-preference-v14:${extra["preference"]}") + implementation("net.grandcentrix.thirtyinch:thirtyinch:${extra["thirtyinch"]}") + implementation("net.grandcentrix.thirtyinch:thirtyinch-rx2:${extra["thirtyinch"]}") + implementation("io.reactivex.rxjava2:rxjava:${extra["rxjava"]}") + implementation("io.reactivex.rxjava2:rxandroid:${extra["rxandroid"]}") + implementation("androidx.core:core-ktx:${extra["ktx"]}") + implementation("com.gojuno.koptional:koptional:${extra["koptional"]}") + implementation("com.github.kittinunf.fuel:fuel-android:${extra["fuel"]}") + implementation("com.github.kittinunf.fuel:fuel-rxjava:${extra["fuel"]}") + implementation("com.github.kittinunf.fuel:fuel-gson:${extra["fuel"]}") + implementation("androidx.room:room-runtime:${extra["room"]}") + implementation("androidx.room:room-rxjava2:${extra["room"]}") + kapt("androidx.room:room-compiler:${extra["room"]}") + implementation("com.evernote:android-state:${extra["android_state"]}") + kapt("com.evernote:android-state-processor:${extra["android_state"]}") + implementation("com.github.bumptech.glide:glide:${extra["glide"]}") + kapt("com.github.bumptech.glide:compiler:${extra["glide"]}") + implementation("com.google.zxing:core:${extra["zxing"]}") + implementation("com.journeyapps:zxing-android-embedded:${extra["zxing_embedded"]}@aar") { isTransitive = false } + implementation("com.github.matthiasrobbers:shortbread:${extra["shortbread"]}") + kapt("com.github.matthiasrobbers:shortbread-compiler:${extra["shortbread"]}") + implementation("it.sephiroth.android.library.bottomnavigation:bottom-navigation:${extra["bottom_navigation"]}") + implementation("com.github.GrenderG:Toasty:${extra["toasty"]}") + implementation("cn.gavinliu:ShapedImageView:${extra["shaped"]}") + implementation("com.jakewharton.timber:timber:${extra["timber"]}") + implementation("com.crashlytics.sdk.android:crashlytics:${extra["crashlytics_version"]}@aar") { isTransitive = true } + implementation("com.google.firebase:firebase-core:${extra["firebase"]}") + implementation("com.facebook.stetho:stetho:${extra["stetho"]}") + implementation("com.facebook.stetho:stetho-okhttp3:${extra["stetho"]}") + implementation("petrov.kristiyan:colorpicker-library:${extra["colorpicker"]}") + implementation("com.caverock:androidsvg-aar:${extra["svg"]}") +} + +apply(plugin = "com.google.gms.google-services") \ No newline at end of file diff --git a/build.gradle b/build.gradle deleted file mode 100644 index 8f6e6cb2..00000000 --- a/build.gradle +++ /dev/null @@ -1,27 +0,0 @@ -buildscript { - repositories { - google() - jcenter() - maven { url "https://maven.fabric.io/public" } - maven { url 'https://jitpack.io' } - } - dependencies { - classpath 'com.android.tools.build:gradle:3.5.0' - classpath "io.fabric.tools:gradle:1.26.1" - classpath "com.google.gms:google-services:4.3.1" - classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.41" - classpath "com.github.ben-manes:gradle-versions-plugin:0.20.0" - classpath 'com.novoda:gradle-build-properties-plugin:0.4.1' - } -} - -allprojects { - repositories { - google() - jcenter() - } -} - -task clean(type: Delete) { - delete rootProject.buildDir -} \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts new file mode 100644 index 00000000..c16ee174 --- /dev/null +++ b/build.gradle.kts @@ -0,0 +1,29 @@ +buildscript { + repositories { + google() + jcenter() + maven { url = uri("https://maven.fabric.io/public") } + maven { url = uri("https://jitpack.io") } + } + dependencies { + classpath("com.android.tools.build:gradle:3.5.0") + classpath("io.fabric.tools:gradle:1.26.1") + classpath("com.google.gms:google-services:4.3.1") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.41") + classpath("com.github.ben-manes:gradle-versions-plugin:0.20.0") + classpath("com.novoda:gradle-build-properties-plugin:0.4.1") + } +} + +allprojects { + repositories { + google() + jcenter() + maven { url = uri("https://maven.fabric.io/public") } + maven { url = uri("https://jitpack.io") } + } +} + +tasks.register("clean",Delete::class){ + delete(rootProject.buildDir) +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index e7b4def4..00000000 --- a/settings.gradle +++ /dev/null @@ -1 +0,0 @@ -include ':app' diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 00000000..15a801b1 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1 @@ +include(":app")