srctree

Robin Linden parent 5025392a 1e8181f4
Migrate from Glide to Coil for image loading

inlinesplit
atox/build.gradle.kts added: 26, removed: 18, total 8
@@ -77,7 +77,7 @@ dependencies {
 
implementation(libs.androidx.multidex)
 
implementation(libs.bumptech.glide)
implementation(libs.coil)
 
implementation(libs.nayuki.qrcodegen)
 
 
atox/src/main/kotlin/ui/NotificationHelper.kt added: 26, removed: 18, total 8
@@ -21,7 +21,10 @@ import androidx.core.graphics.drawable.IconCompat
import androidx.core.graphics.drawable.toBitmap
import androidx.core.os.bundleOf
import androidx.navigation.NavDeepLinkBuilder
import com.bumptech.glide.Glide
import coil.executeBlocking
import coil.imageLoader
import coil.request.ImageRequest
import coil.transform.CircleCropTransformation
import javax.inject.Inject
import javax.inject.Singleton
import ltd.evilcorp.atox.Action
@@ -104,7 +107,12 @@ class NotificationHelper @Inject constructor(
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val icon = if (contact.avatarUri.isNotEmpty()) {
IconCompat.createWithBitmap(
Glide.with(context).load(contact.avatarUri).circleCrop().submit().get().toBitmap()
context.imageLoader.executeBlocking(
ImageRequest.Builder(context)
.data(contact.avatarUri)
.transformations(CircleCropTransformation())
.build()
).drawable?.toBitmap()
)
} else null
 
 
atox/src/main/kotlin/ui/chat/ChatAdapter.kt added: 26, removed: 18, total 8
@@ -1,4 +1,4 @@
// SPDX-FileCopyrightText: 2020-2021 aTox contributors
// SPDX-FileCopyrightText: 2020-2022 aTox contributors
//
// SPDX-License-Identifier: GPL-3.0-only
 
@@ -19,9 +19,8 @@ import android.widget.ListView
import android.widget.ProgressBar
import android.widget.RelativeLayout
import android.widget.TextView
import com.bumptech.glide.Glide
import com.bumptech.glide.load.resource.bitmap.DownsampleStrategy
import com.bumptech.glide.signature.ObjectKey
import coil.load
import coil.size.Precision
import java.net.URLConnection
import java.text.DateFormat
import java.util.Locale
@@ -193,13 +192,14 @@ class ChatAdapter(
 
if (fileTransfer.isImage() && (fileTransfer.isComplete() || fileTransfer.outgoing)) {
vh.completedLayout.visibility = View.VISIBLE
Glide.with(vh.imagePreview)
.load(fileTransfer.destination)
vh.imagePreview.load(fileTransfer.destination) {
// Make sure fts with the same destination have unique caches.
.signature(ObjectKey(fileTransfer.id))
.downsample(DownsampleStrategy.AT_MOST)
.override((Resources.getSystem().displayMetrics.widthPixels * 0.75).roundToInt(), 1000)
.into(vh.imagePreview)
memoryCacheKey(
(fileTransfer.destination.hashCode() * 31 + fileTransfer.id.hashCode()).toString()
)
precision(Precision.INEXACT)
size((Resources.getSystem().displayMetrics.widthPixels * 0.75).roundToInt(), 1000)
}
} else {
vh.completedLayout.visibility = View.GONE
}
 
gradle/libs.versions.toml added: 26, removed: 18, total 8
@@ -59,7 +59,7 @@ nayuki-qrcodegen = "io.nayuki:qrcodegen:1.8.0"
 
square-leakcanary = "com.squareup.leakcanary:leakcanary-android:2.9.1"
 
bumptech-glide = "com.github.bumptech.glide:glide:4.13.1"
coil = "io.coil-kt:coil:1.4.0"
 
tox4j-android-aarch64 = { module = "org.toktok:tox4j-c_aarch64-linux-android", version.ref = "tox4j-android" }
tox4j-android-arm = { module = "org.toktok:tox4j-c_armv7a-linux-androideabi", version.ref = "tox4j-android" }