From 23616d4062cec84d758f46de864c77e1487d3249 Mon Sep 17 00:00:00 2001 From: Tarek-Bohdima Date: Mon, 27 Feb 2023 00:39:24 +0200 Subject: [PATCH] update gradle version update dependencies update theme in styles.xml update AndroidManifest.xml update build.gradle update viewbinding update Glide module class to use GlideApp instead of Glide in AppNameGlideModule.kt and BindingAdapters.kt update kotlin version --- .gitignore | 4 +- app/build.gradle | 44 ++-- app/src/main/AndroidManifest.xml | 6 +- .../devbyteviewer/util/AppNameGlideModule.kt | 16 ++ .../devbyteviewer/util/BindingAdapters.kt | 3 +- .../viewmodels/DevByteViewModel.kt | 2 +- app/src/main/res/values/styles.xml | 2 +- build.gradle | 27 +- gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 59821 bytes gradle/wrapper/gradle-wrapper.properties | 5 + gradlew | 234 ++++++++++++++++++ gradlew.bat | 89 +++++++ 12 files changed, 397 insertions(+), 35 deletions(-) create mode 100644 app/src/main/java/com/example/android/devbyteviewer/util/AppNameGlideModule.kt create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100755 gradlew create mode 100644 gradlew.bat diff --git a/.gitignore b/.gitignore index 428a6f63..89e5840b 100644 --- a/.gitignore +++ b/.gitignore @@ -13,5 +13,5 @@ # gradle -gradle/ -gradlew* +#gradle/ +#gradlew* diff --git a/app/build.gradle b/app/build.gradle index c462488c..f8e4a53d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,18 +15,22 @@ * */ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlin-kapt' -apply plugin: "androidx.navigation.safeargs" -apply plugin: 'kotlin-android-extensions' +plugins { + id 'com.android.application' + id 'kotlin-android' + id 'kotlin-kapt' + id 'kotlin-parcelize' +// id 'kotlin-android-extensions' + id 'androidx.navigation.safeargs.kotlin' + id 'org.jetbrains.kotlin.android' +} android { - compileSdkVersion 30 + compileSdkVersion 33 defaultConfig { applicationId "com.example.android.devbyteviewer" minSdkVersion 19 - targetSdkVersion 30 + targetSdkVersion 33 versionCode 1 versionName "1.0" multiDexEnabled true @@ -41,11 +45,13 @@ android { buildFeatures { dataBinding true + viewBinding true } kotlinOptions { jvmTarget = "1.8" } + namespace 'com.example.android.devbyteviewer' } @@ -55,15 +61,14 @@ dependencies { // Support libraries implementation "androidx.appcompat:appcompat:$version_appcompat" - implementation "androidx.fragment:fragment:$version_fragment" + implementation "androidx.fragment:fragment-ktx:$version_fragment" implementation "androidx.constraintlayout:constraintlayout:$version_constraint_layout" - // Android KTX - implementation "androidx.core:core-ktx:$version_core" - // Navigation - implementation "android.arch.navigation:navigation-fragment-ktx:$version_navigation" - implementation "android.arch.navigation:navigation-ui-ktx:$version_navigation" +// implementation "android.arch.navigation:navigation-fragment-ktx:$version_navigation" +// implementation "android.arch.navigation:navigation-ui-ktx:$version_navigation" + implementation "androidx.navigation:navigation-fragment-ktx:$version_navigation" + implementation "androidx.navigation:navigation-ui-ktx:$version_navigation" // Coroutines for getting off the UI thread implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:$version_kotlin_coroutines" @@ -82,14 +87,25 @@ dependencies { implementation "joda-time:joda-time:$version_joda" // ViewModel and LiveData (arch components) - implementation "androidx.lifecycle:lifecycle-extensions:$version_lifecycle_extensions" + implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version" + implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version" + + // Saved state module for ViewModel + implementation "androidx.lifecycle:lifecycle-viewmodel-savedstate:$lifecycle_version" + + // Annotation processor + kapt "androidx.lifecycle:lifecycle-common-java8:$version_lifecycle_extensions" + // Logging implementation "com.jakewharton.timber:timber:$version_timber" // Glide for images implementation "com.github.bumptech.glide:glide:$version_glide" + implementation 'androidx.core:core-ktx:1.9.0' + implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1' + kapt "com.github.bumptech.glide:compiler:$version_glide" // Room database implementation "androidx.room:room-runtime:$version_room" diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 5572a6be..a260a3d8 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -17,8 +17,7 @@ --> + xmlns:tools="http://schemas.android.com/tools"> @@ -31,7 +30,8 @@ android:supportsRtl="true" android:theme="@style/AppTheme" tools:ignore="GoogleAppIndexingWarning"> - + diff --git a/app/src/main/java/com/example/android/devbyteviewer/util/AppNameGlideModule.kt b/app/src/main/java/com/example/android/devbyteviewer/util/AppNameGlideModule.kt new file mode 100644 index 00000000..8dd5ae2a --- /dev/null +++ b/app/src/main/java/com/example/android/devbyteviewer/util/AppNameGlideModule.kt @@ -0,0 +1,16 @@ +package com.example.android.devbyteviewer.util + +import android.content.Context +import com.bumptech.glide.GlideBuilder +import com.bumptech.glide.annotation.GlideModule +import com.bumptech.glide.load.engine.DiskCacheStrategy +import com.bumptech.glide.module.AppGlideModule +import com.bumptech.glide.request.RequestOptions + +@GlideModule +class AppNameGlideModule: AppGlideModule() { + override fun applyOptions(context: Context, builder: GlideBuilder) { + super.applyOptions(context, builder) + builder.apply { RequestOptions().diskCacheStrategy(DiskCacheStrategy.ALL) } + } +} diff --git a/app/src/main/java/com/example/android/devbyteviewer/util/BindingAdapters.kt b/app/src/main/java/com/example/android/devbyteviewer/util/BindingAdapters.kt index 46c0a6c5..28834321 100644 --- a/app/src/main/java/com/example/android/devbyteviewer/util/BindingAdapters.kt +++ b/app/src/main/java/com/example/android/devbyteviewer/util/BindingAdapters.kt @@ -20,7 +20,6 @@ package com.example.android.devbyteviewer.util import android.view.View import android.widget.ImageView import androidx.databinding.BindingAdapter -import com.bumptech.glide.Glide /** * Binding adapter used to hide the spinner once data is available @@ -35,5 +34,5 @@ fun goneIfNotNull(view: View, it: Any?) { */ @BindingAdapter("imageUrl") fun setImageUrl(imageView: ImageView, url: String) { - Glide.with(imageView.context).load(url).into(imageView) + GlideApp.with(imageView.context).load(url).into(imageView) } diff --git a/app/src/main/java/com/example/android/devbyteviewer/viewmodels/DevByteViewModel.kt b/app/src/main/java/com/example/android/devbyteviewer/viewmodels/DevByteViewModel.kt index 24ab7016..1cd14a8c 100644 --- a/app/src/main/java/com/example/android/devbyteviewer/viewmodels/DevByteViewModel.kt +++ b/app/src/main/java/com/example/android/devbyteviewer/viewmodels/DevByteViewModel.kt @@ -70,7 +70,7 @@ class DevByteViewModel(application: Application) : AndroidViewModel(application) * Factory for constructing DevByteViewModel with parameter */ class Factory(val app: Application) : ViewModelProvider.Factory { - override fun create(modelClass: Class): T { + override fun create(modelClass: Class): T { if (modelClass.isAssignableFrom(DevByteViewModel::class.java)) { @Suppress("UNCHECKED_CAST") return DevByteViewModel(app) as T diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 6b5d7f25..d652850f 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -18,7 +18,7 @@ -