mirror of
https://github.com/f-droid/fdroidclient.git
synced 2026-04-20 06:47:06 -04:00
Merge branch 'glide-only-mirrors' into 'master'
Remove deprecated HttpGlideUrlLoader as we always use DownloadRequest with mirrors now Closes #2429 See merge request fdroid/fdroidclient!1189
This commit is contained in:
@@ -9,7 +9,6 @@ import com.bumptech.glide.GlideBuilder;
|
||||
import com.bumptech.glide.Registry;
|
||||
import com.bumptech.glide.annotation.GlideModule;
|
||||
import com.bumptech.glide.load.DecodeFormat;
|
||||
import com.bumptech.glide.load.model.GlideUrl;
|
||||
import com.bumptech.glide.load.resource.bitmap.BitmapTransitionOptions;
|
||||
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions;
|
||||
import com.bumptech.glide.module.AppGlideModule;
|
||||
@@ -17,15 +16,12 @@ import com.bumptech.glide.request.RequestOptions;
|
||||
|
||||
import org.fdroid.download.DownloadRequest;
|
||||
import org.fdroid.download.glide.DownloadRequestLoader;
|
||||
import org.fdroid.download.glide.HttpGlideUrlLoader;
|
||||
import org.fdroid.fdroid.Preferences;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import java.io.InputStream;
|
||||
|
||||
import info.guardianproject.netcipher.NetCipher;
|
||||
|
||||
/**
|
||||
* The one time initialization of Glide.
|
||||
*/
|
||||
@@ -43,9 +39,6 @@ public class FDroidGlideModule extends AppGlideModule {
|
||||
|
||||
@Override
|
||||
public void registerComponents(@NonNull Context context, @NonNull Glide glide, Registry registry) {
|
||||
HttpGlideUrlLoader.Factory urlLoaderFactory =
|
||||
new HttpGlideUrlLoader.Factory(DownloaderFactory.HTTP_MANAGER, NetCipher::getProxy);
|
||||
registry.replace(GlideUrl.class, InputStream.class, urlLoaderFactory);
|
||||
DownloadRequestLoader.Factory requestLoaderFactory =
|
||||
new DownloadRequestLoader.Factory(DownloaderFactory.HTTP_MANAGER);
|
||||
registry.append(DownloadRequest.class, InputStream.class, requestLoaderFactory);
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
package org.fdroid.download.glide
|
||||
|
||||
import android.net.Uri
|
||||
import com.bumptech.glide.Priority
|
||||
import com.bumptech.glide.load.DataSource
|
||||
import com.bumptech.glide.load.data.DataFetcher
|
||||
import com.bumptech.glide.load.model.GlideUrl
|
||||
import io.ktor.client.engine.ProxyConfig
|
||||
import io.ktor.utils.io.jvm.javaio.toInputStream
|
||||
import kotlinx.coroutines.DelicateCoroutinesApi
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
@@ -14,7 +11,6 @@ import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.launch
|
||||
import org.fdroid.download.DownloadRequest
|
||||
import org.fdroid.download.HttpManager
|
||||
import org.fdroid.download.Mirror
|
||||
import java.io.InputStream
|
||||
|
||||
internal class HttpFetcher(
|
||||
@@ -22,21 +18,7 @@ internal class HttpFetcher(
|
||||
private val downloadRequest: DownloadRequest,
|
||||
) : DataFetcher<InputStream> {
|
||||
|
||||
@Deprecated("Use DownloadRequests with other constructor instead")
|
||||
constructor(
|
||||
httpManager: HttpManager,
|
||||
glideUrl: GlideUrl,
|
||||
proxy: ProxyConfig?,
|
||||
) : this(httpManager, getDownloadRequest(glideUrl, proxy))
|
||||
|
||||
companion object {
|
||||
private fun getDownloadRequest(glideUrl: GlideUrl, proxy: ProxyConfig?): DownloadRequest {
|
||||
val (mirror, path) = glideUrl.toStringUrl().split("/repo/")
|
||||
return DownloadRequest(Uri.decode(path), listOf(Mirror("$mirror/repo")), proxy)
|
||||
}
|
||||
}
|
||||
|
||||
var job: Job? = null
|
||||
private var job: Job? = null
|
||||
|
||||
@OptIn(DelicateCoroutinesApi::class)
|
||||
override fun loadData(priority: Priority, callback: DataFetcher.DataCallback<in InputStream>) {
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
package org.fdroid.download.glide
|
||||
|
||||
import com.bumptech.glide.load.Options
|
||||
import com.bumptech.glide.load.model.GlideUrl
|
||||
import com.bumptech.glide.load.model.ModelLoader
|
||||
import com.bumptech.glide.load.model.ModelLoader.LoadData
|
||||
import com.bumptech.glide.load.model.ModelLoaderFactory
|
||||
import com.bumptech.glide.load.model.MultiModelLoaderFactory
|
||||
import io.ktor.client.engine.ProxyConfig
|
||||
import mu.KotlinLogging
|
||||
import org.fdroid.download.HttpManager
|
||||
import java.io.InputStream
|
||||
|
||||
@Deprecated("Use DownloadRequestLoader instead")
|
||||
public class HttpGlideUrlLoader(
|
||||
private val httpManager: HttpManager,
|
||||
private val proxyGetter: () -> ProxyConfig?,
|
||||
) : ModelLoader<GlideUrl, InputStream> {
|
||||
|
||||
private companion object {
|
||||
private val log = KotlinLogging.logger { }
|
||||
}
|
||||
|
||||
override fun handles(url: GlideUrl): Boolean {
|
||||
return true
|
||||
}
|
||||
|
||||
override fun buildLoadData(
|
||||
glideUrl: GlideUrl,
|
||||
width: Int,
|
||||
height: Int,
|
||||
options: Options,
|
||||
): LoadData<InputStream> {
|
||||
if (log.isDebugEnabled) log.warn { "Not using mirrors when loading $glideUrl" }
|
||||
else log.warn { "Not using mirrors for load" }
|
||||
return LoadData(glideUrl, HttpFetcher(httpManager, glideUrl, proxyGetter()))
|
||||
}
|
||||
|
||||
public class Factory(
|
||||
private val httpManager: HttpManager,
|
||||
private val proxyGetter: () -> ProxyConfig?,
|
||||
) : ModelLoaderFactory<GlideUrl, InputStream> {
|
||||
override fun build(
|
||||
multiFactory: MultiModelLoaderFactory,
|
||||
): ModelLoader<GlideUrl, InputStream> {
|
||||
return HttpGlideUrlLoader(httpManager, proxyGetter)
|
||||
}
|
||||
|
||||
override fun teardown() {}
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user