diff --git a/app/build.gradle b/app/build.gradle index 65bdcd6..607d46e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,12 +8,12 @@ plugins { } android { - compileSdk 31 + compileSdk 32 defaultConfig { applicationId "gq.kirmanak.mealient" minSdk 23 - targetSdk 31 + targetSdk 32 versionCode 11 versionName "0.2.2" @@ -58,25 +58,36 @@ android { 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 } } + + lint { + disable 'ObsoleteLintCustomCheck', 'IconMissingDensityFolder' + enable 'ConvertToWebp', 'DuplicateStrings', 'EasterEgg', 'ExpensiveAssertion', 'IconExpectedSize', 'ImplicitSamInstance', 'InvalidPackage', 'KotlinPropertyAccess', 'LambdaLast', 'MinSdkTooLow', 'NegativeMargin', 'NoHardKeywords', 'Registered', 'RequiredSize', 'UnknownNullness', 'WrongThreadInterprocedural' + } + + namespace 'gq.kirmanak.mealient' + + packagingOptions { + resources.excludes += "DebugProbesKt.bin" + } } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { @@ -87,7 +98,7 @@ tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { dependencies { // https://github.com/material-components/material-components-android - implementation "com.google.android.material:material:1.5.0" + implementation "com.google.android.material:material:1.6.0" implementation "androidx.navigation:navigation-fragment-ktx:$nav_version" implementation "androidx.navigation:navigation-runtime-ktx:$nav_version" @@ -100,7 +111,7 @@ dependencies { implementation "androidx.appcompat:appcompat:1.4.1" // https://developer.android.com/jetpack/androidx/releases/constraintlayout - implementation "androidx.constraintlayout:constraintlayout:2.1.3" + implementation "androidx.constraintlayout:constraintlayout:2.1.4" // https://developer.android.com/jetpack/androidx/releases/swiperefreshlayout implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" @@ -127,7 +138,7 @@ dependencies { debugImplementation "com.squareup.okhttp3:logging-interceptor" // https://github.com/Kotlin/kotlinx.serialization/releases - implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.2" + implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.3" // https://github.com/JakeWharton/timber/releases implementation 'com.jakewharton.timber:timber:5.0.1' @@ -146,10 +157,10 @@ dependencies { testImplementation "androidx.room:room-testing:$room_version" // https://github.com/Kotlin/kotlinx-datetime/releases - implementation "org.jetbrains.kotlinx:kotlinx-datetime:0.3.1" + implementation "org.jetbrains.kotlinx:kotlinx-datetime:0.3.3" // https://github.com/bumptech/glide/releases - def glide_version = "4.13.1" + def glide_version = "4.13.2" implementation "com.github.bumptech.glide:glide:$glide_version" implementation "com.github.bumptech.glide:okhttp3-integration:$glide_version" implementation("com.github.bumptech.glide:recyclerview-integration:$glide_version") { @@ -161,20 +172,22 @@ dependencies { // https://github.com/androidbroadcast/ViewBindingPropertyDelegate/releases implementation "com.github.kirich1409:viewbindingpropertydelegate-noreflection:1.5.6" - // https://developer.android.com/topic/libraries/architecture/datastore + // https://developer.android.com/jetpack/androidx/releases/datastore implementation "androidx.datastore:datastore-preferences:1.0.0" - // https://developer.android.com/topic/security/data#include-library + // https://developer.android.com/jetpack/androidx/releases/security implementation "androidx.security:security-crypto:1.0.0" // 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.6.0" + def coroutines_version = "1.6.1" + implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutines_version" + testImplementation "org.jetbrains.kotlinx:kotlinx-coroutines-test:$coroutines_version" // https://github.com/robolectric/robolectric/releases - testImplementation "org.robolectric:robolectric:4.7.3" + testImplementation "org.robolectric:robolectric:4.8.1" // https://developer.android.com/jetpack/androidx/releases/test testImplementation "androidx.test.ext:junit-ktx:1.1.3" @@ -183,10 +196,10 @@ dependencies { testImplementation "com.google.truth:truth:1.1.3" // https://mockk.io/ - testImplementation "io.mockk:mockk:1.12.3" + testImplementation "io.mockk:mockk:1.12.4" // https://github.com/facebook/flipper/releases - def flipper_version = "0.140.0" + def flipper_version = "0.147.0" debugImplementation "com.facebook.flipper:flipper:$flipper_version" debugImplementation "com.facebook.flipper:flipper-leakcanary2-plugin:$flipper_version" debugImplementation "com.facebook.flipper:flipper-network-plugin:$flipper_version" @@ -195,6 +208,6 @@ dependencies { debugImplementation "com.facebook.soloader:soloader:0.10.3" // https://github.com/square/leakcanary/releases - debugImplementation "com.squareup.leakcanary:leakcanary-android:2.8.1" + debugImplementation "com.squareup.leakcanary:leakcanary-android:2.9.1" } \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 66a71cc..344237a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,7 +1,6 @@ + xmlns:tools="http://schemas.android.com/tools"> diff --git a/app/src/main/java/gq/kirmanak/mealient/extensions/FragmentExtensions.kt b/app/src/main/java/gq/kirmanak/mealient/extensions/FragmentExtensions.kt index c285394..dd4e678 100644 --- a/app/src/main/java/gq/kirmanak/mealient/extensions/FragmentExtensions.kt +++ b/app/src/main/java/gq/kirmanak/mealient/extensions/FragmentExtensions.kt @@ -4,11 +4,11 @@ import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.Flow -import kotlinx.coroutines.flow.collect +import kotlinx.coroutines.flow.FlowCollector -inline fun Fragment.collectWhenViewResumed( +fun Fragment.collectWhenViewResumed( flow: Flow, - crossinline collector: suspend (T) -> Unit, + collector: FlowCollector, ) = launchWhenViewResumed { flow.collect(collector) } fun Fragment.launchWhenViewResumed( diff --git a/build.gradle b/build.gradle index f6d1e61..8fba958 100644 --- a/build.gradle +++ b/build.gradle @@ -4,10 +4,10 @@ buildscript { nav_version = "2.4.2" // https://dagger.dev/hilt/gradle-setup - hilt_version = "2.41" + hilt_version = "2.42" // https://kotlinlang.org/docs/gradle.html - kotlin_version = "1.6.20" + kotlin_version = "1.6.21" } repositories { @@ -17,7 +17,7 @@ buildscript { dependencies { // https://maven.google.com/web/index.html?q=com.android.tools.build#com.android.tools.build:gradle - classpath "com.android.tools.build:gradle:7.1.3" + classpath 'com.android.tools.build:gradle:7.2.1' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:$nav_version" diff --git a/gradle.properties b/gradle.properties index 98bed16..1dc1822 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,11 +6,11 @@ # http://www.gradle.org/docs/current/userguide/build_environment.html # Specifies the JVM arguments used for the daemon process. # The setting is particularly useful for tweaking memory settings. -org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 -XX:+UseParallelGC # When configured, Gradle will run in incubating parallel mode. # This option should only be used with decoupled projects. More details, visit # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects -# org.gradle.parallel=true +org.gradle.parallel=true # AndroidX package structure to make it clearer which packages are bundled with the # Android operating system, and which are packaged with your app"s APK # https://developer.android.com/topic/libraries/support-library/androidx-rn diff --git a/lint.xml b/lint.xml new file mode 100644 index 0000000..04a6f06 --- /dev/null +++ b/lint.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file