mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 18:00:02 +01:00
Move the org.signal.glide code inside signal-android into lib/glide.
This commit is contained in:
committed by
Greyson Parrelli
parent
709adf05aa
commit
7bd3482367
@@ -1,16 +0,0 @@
|
||||
/*
|
||||
* Copyright 2025 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.thoughtcrime.securesms.mms
|
||||
|
||||
import android.net.Uri
|
||||
import com.bumptech.glide.load.Key
|
||||
import java.security.MessageDigest
|
||||
|
||||
data class DecryptableUri(val uri: Uri) : Key {
|
||||
override fun updateDiskCacheKey(messageDigest: MessageDigest) {
|
||||
messageDigest.update(uri.toString().toByteArray())
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
/*
|
||||
* Copyright 2025 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.thoughtcrime.securesms.mms
|
||||
|
||||
import android.content.Context
|
||||
import com.bumptech.glide.Priority
|
||||
import com.bumptech.glide.load.DataSource
|
||||
import com.bumptech.glide.load.data.DataFetcher
|
||||
import org.signal.glide.common.io.InputStreamFactory
|
||||
|
||||
/**
|
||||
* A Glide [DataFetcher] that retrieves an [InputStreamFactory] for a [DecryptableUri].
|
||||
*/
|
||||
class DecryptableUriStreamFetcher(
|
||||
private val context: Context,
|
||||
private val decryptableUri: DecryptableUri
|
||||
) : DataFetcher<InputStreamFactory> {
|
||||
|
||||
override fun getDataClass(): Class<InputStreamFactory> = InputStreamFactory::class.java
|
||||
override fun getDataSource(): DataSource = DataSource.LOCAL
|
||||
|
||||
override fun loadData(priority: Priority, callback: DataFetcher.DataCallback<in InputStreamFactory>) {
|
||||
try {
|
||||
callback.onDataReady(InputStreamFactory.build(context, decryptableUri.uri))
|
||||
} catch (e: Exception) {
|
||||
callback.onLoadFailed(e)
|
||||
}
|
||||
}
|
||||
|
||||
override fun cancel() = Unit
|
||||
override fun cleanup() = Unit
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
/*
|
||||
* Copyright 2025 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.thoughtcrime.securesms.mms
|
||||
|
||||
import android.content.Context
|
||||
import com.bumptech.glide.load.Options
|
||||
import com.bumptech.glide.load.model.ModelLoader
|
||||
import com.bumptech.glide.load.model.ModelLoaderFactory
|
||||
import com.bumptech.glide.load.model.MultiModelLoaderFactory
|
||||
import com.bumptech.glide.signature.ObjectKey
|
||||
import org.signal.glide.common.io.InputStreamFactory
|
||||
|
||||
/**
|
||||
* A Glide [ModelLoader] that handles conversion from [DecryptableUri] to [InputStreamFactory].
|
||||
*/
|
||||
class DecryptableUriStreamLoader(
|
||||
private val context: Context
|
||||
) : ModelLoader<DecryptableUri, InputStreamFactory> {
|
||||
|
||||
override fun handles(model: DecryptableUri): Boolean = true
|
||||
|
||||
override fun buildLoadData(
|
||||
model: DecryptableUri,
|
||||
width: Int,
|
||||
height: Int,
|
||||
options: Options
|
||||
): ModelLoader.LoadData<InputStreamFactory> {
|
||||
val sourceKey = ObjectKey(model)
|
||||
val dataFetcher = DecryptableUriStreamFetcher(context, model)
|
||||
return ModelLoader.LoadData(sourceKey, dataFetcher)
|
||||
}
|
||||
|
||||
class Factory(
|
||||
private val context: Context
|
||||
) : ModelLoaderFactory<DecryptableUri, InputStreamFactory> {
|
||||
override fun build(multiFactory: MultiModelLoaderFactory): ModelLoader<DecryptableUri, InputStreamFactory> {
|
||||
return DecryptableUriStreamLoader(context)
|
||||
}
|
||||
|
||||
override fun teardown() = Unit
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user