diff --git a/app/build.gradle b/app/build.gradle index f967d46..3543007 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -94,17 +94,17 @@ implementation 'com.gyf.immersionbar:immersionbar:3.0.0' //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' - //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.5.1" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" - implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" + def vm_version = '2.5.1' //Kotlin协程 - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1' - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1' + implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + //MVVM+LiveData + implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 - implementation 'io.github.lucksiege:pictureselector:v3.0.4' + implementation 'io.github.lucksiege:pictureselector:v3.11.1' //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' @@ -115,7 +115,7 @@ implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.okhttp3:okhttp:4.9.0' //官方Json解析库 - implementation 'com.google.code.gson:gson:2.9.0' + implementation 'com.google.code.gson:gson:2.10.1' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航、定位、地图三合一 diff --git a/app/build.gradle b/app/build.gradle index f967d46..3543007 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -94,17 +94,17 @@ implementation 'com.gyf.immersionbar:immersionbar:3.0.0' //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' - //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.5.1" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" - implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" + def vm_version = '2.5.1' //Kotlin协程 - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1' - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1' + implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + //MVVM+LiveData + implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 - implementation 'io.github.lucksiege:pictureselector:v3.0.4' + implementation 'io.github.lucksiege:pictureselector:v3.11.1' //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' @@ -115,7 +115,7 @@ implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.okhttp3:okhttp:4.9.0' //官方Json解析库 - implementation 'com.google.code.gson:gson:2.9.0' + implementation 'com.google.code.gson:gson:2.10.1' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航、定位、地图三合一 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a86bc9a..e081719 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -28,15 +29,21 @@ - + - + + + + + - - - + + + + + - - - \ No newline at end of file diff --git a/app/build.gradle b/app/build.gradle index f967d46..3543007 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -94,17 +94,17 @@ implementation 'com.gyf.immersionbar:immersionbar:3.0.0' //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' - //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.5.1" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" - implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" + def vm_version = '2.5.1' //Kotlin协程 - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1' - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1' + implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + //MVVM+LiveData + implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 - implementation 'io.github.lucksiege:pictureselector:v3.0.4' + implementation 'io.github.lucksiege:pictureselector:v3.11.1' //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' @@ -115,7 +115,7 @@ implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.okhttp3:okhttp:4.9.0' //官方Json解析库 - implementation 'com.google.code.gson:gson:2.9.0' + implementation 'com.google.code.gson:gson:2.10.1' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航、定位、地图三合一 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a86bc9a..e081719 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -28,15 +29,21 @@ - + - + + + + + - - - + + + + + - - - \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/app/smartwell/utils/GlideLoadEngine.kt index 17c2fd4..933ede2 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/GlideLoadEngine.kt @@ -1,19 +1,13 @@ package com.casic.app.smartwell.utils import android.content.Context -import android.graphics.Bitmap -import android.graphics.drawable.Drawable import android.widget.ImageView -import androidx.annotation.Nullable import com.bumptech.glide.Glide import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.request.RequestOptions -import com.bumptech.glide.request.target.CustomTarget -import com.bumptech.glide.request.transition.Transition import com.casic.app.smartwell.R import com.luck.picture.lib.engine.ImageEngine -import com.luck.picture.lib.interfaces.OnCallbackListener import com.luck.picture.lib.utils.ActivityCompatHelper class GlideLoadEngine private constructor() : ImageEngine { @@ -27,36 +21,23 @@ if (!ActivityCompatHelper.assertValidRequest(context)) { return } - Glide.with(context).load(url).into(imageView); + Glide.with(context).load(url).into(imageView) } - override fun loadImageBitmap( + override fun loadImage( context: Context, + imageView: ImageView, url: String, maxWidth: Int, - maxHeight: Int, - call: OnCallbackListener? + maxHeight: Int ) { if (!ActivityCompatHelper.assertValidRequest(context)) { return } Glide.with(context) - .asBitmap() - .override(maxWidth, maxHeight) .load(url) - .into(object : CustomTarget() { - override fun onResourceReady( - resource: Bitmap, @Nullable transition: Transition? - ) { - call?.onCall(resource) - } - - override fun onLoadFailed(@Nullable errorDrawable: Drawable?) { - call?.onCall(null) - } - - override fun onLoadCleared(@Nullable placeholder: Drawable?) {} - }) + .override(maxWidth, maxHeight) + .into(imageView) } override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) { diff --git a/app/build.gradle b/app/build.gradle index f967d46..3543007 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -94,17 +94,17 @@ implementation 'com.gyf.immersionbar:immersionbar:3.0.0' //fragment快速实现 implementation 'com.gyf.immersionbar:immersionbar-components:3.0.0' - //MVVM+LiveData - implementation "androidx.lifecycle:lifecycle-livedata-ktx:2.5.1" - implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1" - implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" + def vm_version = '2.5.1' //Kotlin协程 - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.1' - implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.1' + implementation "androidx.lifecycle:lifecycle-runtime-ktx:${vm_version}" + //MVVM+LiveData + implementation "androidx.lifecycle:lifecycle-livedata-ktx:${vm_version}" + implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:${vm_version}" + implementation "androidx.lifecycle:lifecycle-extensions:2.2.0" //图片加载框架 implementation 'com.github.bumptech.glide:glide:4.9.0' //图片选择框架 - implementation 'io.github.lucksiege:pictureselector:v3.0.4' + implementation 'io.github.lucksiege:pictureselector:v3.11.1' //返回值转换器 implementation 'com.jakewharton.retrofit:retrofit2-kotlin-coroutines-adapter:0.9.2' implementation 'com.squareup.retrofit2:converter-scalars:2.3.0' @@ -115,7 +115,7 @@ implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.okhttp3:okhttp:4.9.0' //官方Json解析库 - implementation 'com.google.code.gson:gson:2.9.0' + implementation 'com.google.code.gson:gson:2.10.1' //上拉加载下拉刷新 implementation 'com.scwang.smartrefresh:SmartRefreshLayout:1.1.0' //高德导航、定位、地图三合一 diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index a86bc9a..e081719 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -1,5 +1,6 @@ @@ -28,15 +29,21 @@ - + - + + + + + - - - + + + + + - - - \ No newline at end of file diff --git a/app/src/main/java/com/casic/app/smartwell/utils/GlideLoadEngine.kt b/app/src/main/java/com/casic/app/smartwell/utils/GlideLoadEngine.kt index 17c2fd4..933ede2 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/GlideLoadEngine.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/GlideLoadEngine.kt @@ -1,19 +1,13 @@ package com.casic.app.smartwell.utils import android.content.Context -import android.graphics.Bitmap -import android.graphics.drawable.Drawable import android.widget.ImageView -import androidx.annotation.Nullable import com.bumptech.glide.Glide import com.bumptech.glide.load.resource.bitmap.CenterCrop import com.bumptech.glide.load.resource.bitmap.RoundedCorners import com.bumptech.glide.request.RequestOptions -import com.bumptech.glide.request.target.CustomTarget -import com.bumptech.glide.request.transition.Transition import com.casic.app.smartwell.R import com.luck.picture.lib.engine.ImageEngine -import com.luck.picture.lib.interfaces.OnCallbackListener import com.luck.picture.lib.utils.ActivityCompatHelper class GlideLoadEngine private constructor() : ImageEngine { @@ -27,36 +21,23 @@ if (!ActivityCompatHelper.assertValidRequest(context)) { return } - Glide.with(context).load(url).into(imageView); + Glide.with(context).load(url).into(imageView) } - override fun loadImageBitmap( + override fun loadImage( context: Context, + imageView: ImageView, url: String, maxWidth: Int, - maxHeight: Int, - call: OnCallbackListener? + maxHeight: Int ) { if (!ActivityCompatHelper.assertValidRequest(context)) { return } Glide.with(context) - .asBitmap() - .override(maxWidth, maxHeight) .load(url) - .into(object : CustomTarget() { - override fun onResourceReady( - resource: Bitmap, @Nullable transition: Transition? - ) { - call?.onCall(resource) - } - - override fun onLoadFailed(@Nullable errorDrawable: Drawable?) { - call?.onCall(null) - } - - override fun onLoadCleared(@Nullable placeholder: Drawable?) {} - }) + .override(maxWidth, maxHeight) + .into(imageView) } override fun loadAlbumCover(context: Context, url: String, imageView: ImageView) { diff --git a/app/src/main/java/com/casic/app/smartwell/utils/LocaleConstant.kt b/app/src/main/java/com/casic/app/smartwell/utils/LocaleConstant.kt index 1c98651..6341fd4 100644 --- a/app/src/main/java/com/casic/app/smartwell/utils/LocaleConstant.kt +++ b/app/src/main/java/com/casic/app/smartwell/utils/LocaleConstant.kt @@ -9,10 +9,11 @@ Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, - Manifest.permission.READ_EXTERNAL_STORAGE, - Manifest.permission.WRITE_EXTERNAL_STORAGE, + Manifest.permission.CAMERA, + Manifest.permission.READ_MEDIA_IMAGES, Manifest.permission.MANAGE_EXTERNAL_STORAGE, - Manifest.permission.CAMERA + Manifest.permission.READ_EXTERNAL_STORAGE, + Manifest.permission.WRITE_EXTERNAL_STORAGE ) const val FIVE_YEARS = 5L * 365 * 60 * 60 * 24 * 1000L