mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-14 22:30:30 +05:30
Use cronet with coil.
This commit is contained in:
parent
56b7a8e5cc
commit
f0ab7888fb
@ -25,6 +25,7 @@ import androidx.fragment.app.Fragment
|
|||||||
import androidx.navigation.NavController
|
import androidx.navigation.NavController
|
||||||
import androidx.navigation.findNavController
|
import androidx.navigation.findNavController
|
||||||
import androidx.navigation.ui.setupWithNavController
|
import androidx.navigation.ui.setupWithNavController
|
||||||
|
import coil.ImageLoader
|
||||||
import com.github.libretube.Globals
|
import com.github.libretube.Globals
|
||||||
import com.github.libretube.PIPED_API_URL
|
import com.github.libretube.PIPED_API_URL
|
||||||
import com.github.libretube.R
|
import com.github.libretube.R
|
||||||
@ -69,6 +70,9 @@ class MainActivity : AppCompatActivity() {
|
|||||||
startService(Intent(this, ClosingService::class.java))
|
startService(Intent(this, ClosingService::class.java))
|
||||||
|
|
||||||
CronetHelper.initCronet(this.applicationContext)
|
CronetHelper.initCronet(this.applicationContext)
|
||||||
|
ConnectionHelper.imageLoader = ImageLoader.Builder(this.applicationContext)
|
||||||
|
.callFactory(CronetHelper.callFactory)
|
||||||
|
.build()
|
||||||
|
|
||||||
RetrofitInstance.url =
|
RetrofitInstance.url =
|
||||||
PreferenceHelper.getString(PreferenceKeys.FETCH_INSTANCE, PIPED_API_URL)!!
|
PreferenceHelper.getString(PreferenceKeys.FETCH_INSTANCE, PIPED_API_URL)!!
|
||||||
|
@ -3,6 +3,7 @@ package com.github.libretube.util
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.net.ConnectivityManager
|
import android.net.ConnectivityManager
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
|
import coil.ImageLoader
|
||||||
import coil.load
|
import coil.load
|
||||||
import com.github.libretube.Globals
|
import com.github.libretube.Globals
|
||||||
|
|
||||||
@ -37,11 +38,13 @@ object ConnectionHelper {
|
|||||||
return connectivityManager.activeNetworkInfo?.isConnected ?: false
|
return connectivityManager.activeNetworkInfo?.isConnected ?: false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
lateinit var imageLoader: ImageLoader
|
||||||
|
|
||||||
// load an image from a url into an imageView
|
// load an image from a url into an imageView
|
||||||
fun loadImage(url: String?, target: ImageView) {
|
fun loadImage(url: String?, target: ImageView) {
|
||||||
// only load the image if the data saver mode is disabled
|
// only load the image if the data saver mode is disabled
|
||||||
if (!Globals.DATA_SAVER_MODE_ENABLED) {
|
if (!Globals.DATA_SAVER_MODE_ENABLED) {
|
||||||
target.load(url)
|
target.load(url, imageLoader)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,20 @@
|
|||||||
package com.github.libretube.util
|
package com.github.libretube.util
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
|
import com.google.net.cronet.okhttptransport.CronetCallFactory
|
||||||
import org.chromium.net.CronetEngine
|
import org.chromium.net.CronetEngine
|
||||||
|
|
||||||
class CronetHelper {
|
class CronetHelper {
|
||||||
companion object {
|
companion object {
|
||||||
private lateinit var engine: CronetEngine
|
private lateinit var engine: CronetEngine
|
||||||
|
lateinit var callFactory: CronetCallFactory
|
||||||
|
|
||||||
fun initCronet(context: Context) {
|
fun initCronet(context: Context) {
|
||||||
this.engine = CronetEngine.Builder(context)
|
this.engine = CronetEngine.Builder(context)
|
||||||
.enableBrotli(true)
|
.enableBrotli(true)
|
||||||
.build()
|
.build()
|
||||||
|
callFactory = CronetCallFactory.newBuilder(this.engine)
|
||||||
|
.build()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getCronetEngine(): CronetEngine {
|
fun getCronetEngine(): CronetEngine {
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package com.github.libretube.util
|
package com.github.libretube.util
|
||||||
|
|
||||||
import com.google.net.cronet.okhttptransport.CronetCallFactory
|
|
||||||
import retrofit2.Retrofit
|
import retrofit2.Retrofit
|
||||||
import retrofit2.converter.jackson.JacksonConverterFactory
|
import retrofit2.converter.jackson.JacksonConverterFactory
|
||||||
|
|
||||||
@ -8,13 +7,10 @@ object RetrofitInstance {
|
|||||||
lateinit var url: String
|
lateinit var url: String
|
||||||
lateinit var authUrl: String
|
lateinit var authUrl: String
|
||||||
val lazyMgr = resettableManager()
|
val lazyMgr = resettableManager()
|
||||||
private val callFactory: CronetCallFactory =
|
|
||||||
CronetCallFactory.newBuilder(CronetHelper.getCronetEngine())
|
|
||||||
.build()
|
|
||||||
val api: PipedApi by resettableLazy(lazyMgr) {
|
val api: PipedApi by resettableLazy(lazyMgr) {
|
||||||
Retrofit.Builder()
|
Retrofit.Builder()
|
||||||
.baseUrl(url)
|
.baseUrl(url)
|
||||||
.callFactory(callFactory)
|
.callFactory(CronetHelper.callFactory)
|
||||||
.addConverterFactory(JacksonConverterFactory.create())
|
.addConverterFactory(JacksonConverterFactory.create())
|
||||||
.build()
|
.build()
|
||||||
.create(PipedApi::class.java)
|
.create(PipedApi::class.java)
|
||||||
@ -22,7 +18,7 @@ object RetrofitInstance {
|
|||||||
val authApi: PipedApi by resettableLazy(lazyMgr) {
|
val authApi: PipedApi by resettableLazy(lazyMgr) {
|
||||||
Retrofit.Builder()
|
Retrofit.Builder()
|
||||||
.baseUrl(authUrl)
|
.baseUrl(authUrl)
|
||||||
.callFactory(callFactory)
|
.callFactory(CronetHelper.callFactory)
|
||||||
.addConverterFactory(JacksonConverterFactory.create())
|
.addConverterFactory(JacksonConverterFactory.create())
|
||||||
.build()
|
.build()
|
||||||
.create(PipedApi::class.java)
|
.create(PipedApi::class.java)
|
||||||
|
Loading…
Reference in New Issue
Block a user