* Fix systemUiVisibility deprecation warnings This commit extracts setSystemUiVisibility as an extension and uses the new API depending on the Build.VERSION * Fix splash fragment vector issues Clip-path isn't available before V24 and width/height should not exceed 200 dp. * Remove unused disclaimer fragment header * Remove unused ic_launcher_round * Ignore IconMissingDensityFolder lint Ignoring it because all the images are vector * Ignore UnusedAttribute lint It warns about networkSecurityConfig which is used only in debug builds to allow user SSL certificates. Lint says it's not available before v24. But it doesn't matter since before v24 the user SSL certificates were allowed by default. * Use plurals for disclaimer count down
160 lines
6.4 KiB
Groovy
160 lines
6.4 KiB
Groovy
plugins {
|
|
id 'kotlin-android'
|
|
id 'kotlin-kapt'
|
|
id 'com.android.application'
|
|
id 'androidx.navigation.safeargs.kotlin'
|
|
id 'dagger.hilt.android.plugin'
|
|
id 'org.jetbrains.kotlin.plugin.serialization'
|
|
}
|
|
|
|
android {
|
|
compileSdk 31
|
|
|
|
defaultConfig {
|
|
applicationId "gq.kirmanak.mealient"
|
|
minSdk 21
|
|
targetSdk 31
|
|
versionCode 3
|
|
versionName "0.1.2"
|
|
}
|
|
|
|
signingConfigs {
|
|
release {
|
|
rootProject.file("keystore.properties").with { keystorePropertiesFile ->
|
|
if (keystorePropertiesFile.canRead()) {
|
|
def keystoreProperties = new Properties()
|
|
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
|
|
|
keyAlias keystoreProperties['keyAlias']
|
|
keyPassword keystoreProperties['keyPassword']
|
|
storeFile file(keystoreProperties['storeFile'])
|
|
storePassword keystoreProperties['storePassword']
|
|
} else {
|
|
println 'Unable to read keystore.properties'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
}
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
signingConfig signingConfigs.release
|
|
}
|
|
}
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_1_8
|
|
targetCompatibility JavaVersion.VERSION_1_8
|
|
}
|
|
kotlinOptions {
|
|
jvmTarget = '1.8'
|
|
}
|
|
buildFeatures {
|
|
viewBinding true
|
|
}
|
|
lintOptions {
|
|
disable 'ObsoleteLintCustomCheck', 'IconMissingDensityFolder'
|
|
enable 'ConvertToWebp', 'DuplicateStrings', 'EasterEgg', 'ExpensiveAssertion', 'IconExpectedSize', 'ImplicitSamInstance', 'InvalidPackage', 'KotlinPropertyAccess', 'LambdaLast', 'MinSdkTooLow', 'NegativeMargin', 'NoHardKeywords', 'Registered', 'RequiredSize', 'UnknownNullness', 'WrongThreadInterprocedural'
|
|
}
|
|
testOptions {
|
|
unitTests {
|
|
includeAndroidResources = true
|
|
}
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
// https://github.com/material-components/material-components-android
|
|
implementation "com.google.android.material:material:1.4.0"
|
|
|
|
implementation "androidx.navigation:navigation-fragment-ktx:$nav_version"
|
|
implementation "androidx.navigation:navigation-runtime-ktx:$nav_version"
|
|
implementation "androidx.navigation:navigation-ui-ktx:$nav_version"
|
|
|
|
// https://developer.android.com/kotlin/ktx#core
|
|
implementation "androidx.core:core-ktx:1.7.0"
|
|
|
|
// https://developer.android.com/jetpack/androidx/releases/appcompat
|
|
implementation "androidx.appcompat:appcompat:1.4.0"
|
|
|
|
// https://developer.android.com/jetpack/androidx/releases/constraintlayout
|
|
implementation "androidx.constraintlayout:constraintlayout:2.1.2"
|
|
|
|
// https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout
|
|
implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0"
|
|
|
|
// https://developer.android.com/jetpack/androidx/releases/lifecycle
|
|
def lifecycle_version = "2.4.0"
|
|
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
|
|
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
|
|
|
|
implementation "com.google.dagger:hilt-android:$hilt_version"
|
|
kapt "com.google.dagger:hilt-compiler:$hilt_version"
|
|
kaptTest "com.google.dagger:hilt-android-compiler:$hilt_version"
|
|
testImplementation "com.google.dagger:hilt-android-testing:$hilt_version"
|
|
|
|
// https://github.com/square/retrofit/tags
|
|
implementation "com.squareup.retrofit2:retrofit:2.9.0"
|
|
|
|
// https://github.com/JakeWharton/retrofit2-kotlinx-serialization-converter/tags
|
|
implementation "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0"
|
|
|
|
// https://search.maven.org/artifact/com.squareup.okhttp3/okhttp
|
|
def okhttp_version = "4.9.2"
|
|
implementation "com.squareup.okhttp3:okhttp:$okhttp_version"
|
|
implementation "com.squareup.okhttp3:logging-interceptor:$okhttp_version"
|
|
testImplementation "com.squareup.okhttp3:mockwebserver:$okhttp_version"
|
|
|
|
// https://github.com/Kotlin/kotlinx.serialization/releases
|
|
implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.1"
|
|
|
|
// https://developer.android.com/jetpack/androidx/releases/preference
|
|
implementation "androidx.preference:preference-ktx:1.1.1"
|
|
|
|
// https://github.com/JakeWharton/timber/releases
|
|
implementation 'com.jakewharton.timber:timber:5.0.1'
|
|
|
|
// https://developer.android.com/jetpack/androidx/releases/paging
|
|
def paging_version = "3.1.0"
|
|
implementation "androidx.paging:paging-runtime-ktx:$paging_version"
|
|
testImplementation "androidx.paging:paging-common-ktx:$paging_version"
|
|
|
|
// https://developer.android.com/jetpack/androidx/releases/room
|
|
def room_version = "2.4.0-beta02"
|
|
implementation "androidx.room:room-runtime:$room_version"
|
|
implementation "androidx.room:room-ktx:$room_version"
|
|
implementation "androidx.room:room-paging:$room_version"
|
|
kapt "androidx.room:room-compiler:$room_version"
|
|
testImplementation "androidx.room:room-testing:$room_version"
|
|
|
|
// https://github.com/Kotlin/kotlinx-datetime/releases
|
|
implementation "org.jetbrains.kotlinx:kotlinx-datetime:0.3.1"
|
|
|
|
// https://github.com/bumptech/glide/releases
|
|
def glide_version = "4.12.0"
|
|
implementation "com.github.bumptech.glide:glide:$glide_version"
|
|
implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version"
|
|
kapt "com.github.bumptech.glide:compiler:$glide_version"
|
|
|
|
// https://github.com/junit-team/junit4/releases
|
|
testImplementation "junit:junit:4.13.2"
|
|
|
|
// https://github.com/Kotlin/kotlinx.coroutines/releases
|
|
testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:1.5.2"
|
|
|
|
// https://github.com/robolectric/robolectric/releases
|
|
testImplementation "org.robolectric:robolectric:4.7.1"
|
|
|
|
// https://developer.android.com/jetpack/androidx/releases/test
|
|
testImplementation "androidx.test.ext:junit-ktx:1.1.3"
|
|
|
|
// https://mvnrepository.com/artifact/com.google.truth/truth
|
|
testImplementation "com.google.truth:truth:1.1.3"
|
|
} |