meta: drop cronet

This commit is contained in:
Bnyro 2025-01-24 19:12:58 +01:00
parent 0db6635998
commit ebf9138026
8 changed files with 3 additions and 55 deletions

View File

@ -131,8 +131,6 @@ dependencies {
/* Cronet and Coil */ /* Cronet and Coil */
coreLibraryDesugaring(libs.desugaring) coreLibraryDesugaring(libs.desugaring)
implementation(libs.cronet.embedded)
implementation(libs.cronet.okhttp)
implementation(libs.coil) implementation(libs.coil)
/* Room */ /* Room */

View File

@ -1,16 +0,0 @@
package com.github.libretube.api
import com.github.libretube.LibreTubeApp
import com.google.net.cronet.okhttptransport.CronetCallFactory
import org.chromium.net.CronetEngine
object CronetHelper {
val cronetEngine: CronetEngine = CronetEngine.Builder(LibreTubeApp.instance)
.enableHttp2(true)
.enableQuic(true)
.enableBrotli(true)
.enableHttpCache(CronetEngine.Builder.HTTP_CACHE_IN_MEMORY, 1024L * 1024L) // 1MiB
.build()
val callFactory: CronetCallFactory = CronetCallFactory.newBuilder(cronetEngine).build()
}

View File

@ -3,7 +3,6 @@ package com.github.libretube.api
import com.github.libretube.BuildConfig import com.github.libretube.BuildConfig
import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.helpers.PreferenceHelper import com.github.libretube.helpers.PreferenceHelper
import com.google.net.cronet.okhttptransport.CronetInterceptor
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
import okhttp3.MediaType.Companion.toMediaType import okhttp3.MediaType.Companion.toMediaType
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
@ -38,7 +37,6 @@ object RetrofitInstance {
val api by resettableLazy(lazyMgr) { val api by resettableLazy(lazyMgr) {
Retrofit.Builder() Retrofit.Builder()
.baseUrl(apiUrl) .baseUrl(apiUrl)
.callFactory(CronetHelper.callFactory)
.client(httpClient) .client(httpClient)
.addConverterFactory(kotlinxConverterFactory) .addConverterFactory(kotlinxConverterFactory)
.build() .build()
@ -48,7 +46,6 @@ object RetrofitInstance {
val authApi by resettableLazy(lazyMgr) { val authApi by resettableLazy(lazyMgr) {
Retrofit.Builder() Retrofit.Builder()
.baseUrl(authUrl) .baseUrl(authUrl)
.callFactory(CronetHelper.callFactory)
.client(httpClient) .client(httpClient)
.addConverterFactory(kotlinxConverterFactory) .addConverterFactory(kotlinxConverterFactory)
.build() .build()
@ -58,7 +55,6 @@ object RetrofitInstance {
val externalApi by resettableLazy(lazyMgr) { val externalApi by resettableLazy(lazyMgr) {
Retrofit.Builder() Retrofit.Builder()
.baseUrl(apiUrl) .baseUrl(apiUrl)
.callFactory(CronetHelper.callFactory)
.client(httpClient) .client(httpClient)
.addConverterFactory(kotlinxConverterFactory) .addConverterFactory(kotlinxConverterFactory)
.build() .build()
@ -76,8 +72,6 @@ object RetrofitInstance {
httpClient.addInterceptor(loggingInterceptor) httpClient.addInterceptor(loggingInterceptor)
} }
httpClient.addInterceptor(CronetInterceptor.newBuilder(CronetHelper.cronetEngine).build())
return httpClient.build() return httpClient.build()
} }
} }

View File

@ -13,11 +13,9 @@ import coil.disk.DiskCache
import coil.request.CachePolicy import coil.request.CachePolicy
import coil.request.ImageRequest import coil.request.ImageRequest
import com.github.libretube.BuildConfig import com.github.libretube.BuildConfig
import com.github.libretube.api.CronetHelper
import com.github.libretube.constants.PreferenceKeys import com.github.libretube.constants.PreferenceKeys
import com.github.libretube.extensions.toAndroidUri import com.github.libretube.extensions.toAndroidUri
import com.github.libretube.util.DataSaverMode import com.github.libretube.util.DataSaverMode
import com.google.net.cronet.okhttptransport.CronetInterceptor
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import okhttp3.OkHttpClient import okhttp3.OkHttpClient
@ -46,10 +44,7 @@ object ImageHelper {
httpClient.addInterceptor(loggingInterceptor) httpClient.addInterceptor(loggingInterceptor)
} }
httpClient.addInterceptor(CronetInterceptor.newBuilder(CronetHelper.cronetEngine).build())
imageLoader = ImageLoader.Builder(context) imageLoader = ImageLoader.Builder(context)
.callFactory(CronetHelper.callFactory)
.crossfade(true) .crossfade(true)
.okHttpClient { .okHttpClient {
httpClient.build() httpClient.build()

View File

@ -22,7 +22,6 @@ import androidx.media3.common.TrackSelectionOverride
import androidx.media3.common.Tracks import androidx.media3.common.Tracks
import androidx.media3.common.util.UnstableApi import androidx.media3.common.util.UnstableApi
import androidx.media3.datasource.DefaultDataSource import androidx.media3.datasource.DefaultDataSource
import androidx.media3.datasource.cronet.CronetDataSource
import androidx.media3.exoplayer.DefaultLoadControl import androidx.media3.exoplayer.DefaultLoadControl
import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.ExoPlayer
import androidx.media3.exoplayer.LoadControl import androidx.media3.exoplayer.LoadControl
@ -31,7 +30,6 @@ import androidx.media3.exoplayer.trackselection.DefaultTrackSelector
import androidx.media3.ui.CaptionStyleCompat import androidx.media3.ui.CaptionStyleCompat
import com.github.libretube.LibreTubeApp import com.github.libretube.LibreTubeApp
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.api.CronetHelper
import com.github.libretube.api.obj.ChapterSegment import com.github.libretube.api.obj.ChapterSegment
import com.github.libretube.api.obj.Segment import com.github.libretube.api.obj.Segment
import com.github.libretube.api.obj.Streams import com.github.libretube.api.obj.Streams
@ -50,7 +48,6 @@ import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import java.util.Locale import java.util.Locale
import java.util.concurrent.Executors
import kotlin.math.absoluteValue import kotlin.math.absoluteValue
import kotlin.math.max import kotlin.math.max
import kotlin.math.roundToInt import kotlin.math.roundToInt
@ -520,11 +517,7 @@ object PlayerHelper {
trackSelector: DefaultTrackSelector, trackSelector: DefaultTrackSelector,
isBackgroundMode: Boolean isBackgroundMode: Boolean
): ExoPlayer { ): ExoPlayer {
val cronetDataSourceFactory = CronetDataSource.Factory( val dataSourceFactory = DefaultDataSource.Factory(context)
CronetHelper.cronetEngine,
Executors.newCachedThreadPool()
)
val dataSourceFactory = DefaultDataSource.Factory(context, cronetDataSourceFactory)
val audioAttributes = AudioAttributes.Builder() val audioAttributes = AudioAttributes.Builder()
.setUsage(C.USAGE_MEDIA) .setUsage(C.USAGE_MEDIA)
.setContentType(C.AUDIO_CONTENT_TYPE_MOVIE) .setContentType(C.AUDIO_CONTENT_TYPE_MOVIE)

View File

@ -20,7 +20,6 @@ import androidx.lifecycle.LifecycleService
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import com.github.libretube.LibreTubeApp.Companion.DOWNLOAD_CHANNEL_NAME import com.github.libretube.LibreTubeApp.Companion.DOWNLOAD_CHANNEL_NAME
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.api.CronetHelper
import com.github.libretube.api.StreamsExtractor import com.github.libretube.api.StreamsExtractor
import com.github.libretube.api.obj.Streams import com.github.libretube.api.obj.Streams
import com.github.libretube.constants.IntentData import com.github.libretube.constants.IntentData
@ -47,7 +46,6 @@ import com.github.libretube.receivers.NotificationReceiver.Companion.ACTION_DOWN
import com.github.libretube.receivers.NotificationReceiver.Companion.ACTION_DOWNLOAD_RESUME import com.github.libretube.receivers.NotificationReceiver.Companion.ACTION_DOWNLOAD_RESUME
import com.github.libretube.receivers.NotificationReceiver.Companion.ACTION_DOWNLOAD_STOP import com.github.libretube.receivers.NotificationReceiver.Companion.ACTION_DOWNLOAD_STOP
import com.github.libretube.ui.activities.MainActivity import com.github.libretube.ui.activities.MainActivity
import com.google.net.cronet.okhttptransport.CronetInterceptor
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job import kotlinx.coroutines.Job
import kotlinx.coroutines.SupervisorJob import kotlinx.coroutines.SupervisorJob
@ -95,12 +93,9 @@ class DownloadService : LifecycleService() {
val downloadFlow: SharedFlow<Pair<Int, DownloadStatus>> = _downloadFlow val downloadFlow: SharedFlow<Pair<Int, DownloadStatus>> = _downloadFlow
private val httpClient: OkHttpClient by lazy { private val httpClient: OkHttpClient by lazy {
val cronetInterceptor = CronetInterceptor.newBuilder(CronetHelper.cronetEngine).build()
OkHttpClient.Builder() OkHttpClient.Builder()
.connectTimeout(Duration.ofMillis(DownloadHelper.DEFAULT_TIMEOUT.toLong())) .connectTimeout(Duration.ofMillis(DownloadHelper.DEFAULT_TIMEOUT.toLong()))
.readTimeout(Duration.ofMillis(DownloadHelper.DEFAULT_TIMEOUT.toLong())) .readTimeout(Duration.ofMillis(DownloadHelper.DEFAULT_TIMEOUT.toLong()))
.addInterceptor(cronetInterceptor)
.retryOnConnectionFailure(true) .retryOnConnectionFailure(true)
.build() .build()
} }

View File

@ -8,10 +8,9 @@ import androidx.media3.common.MediaItem
import androidx.media3.common.MediaItem.SubtitleConfiguration import androidx.media3.common.MediaItem.SubtitleConfiguration
import androidx.media3.common.MimeTypes import androidx.media3.common.MimeTypes
import androidx.media3.common.Player import androidx.media3.common.Player
import androidx.media3.datasource.cronet.CronetDataSource import androidx.media3.datasource.DefaultDataSource
import androidx.media3.exoplayer.hls.HlsMediaSource import androidx.media3.exoplayer.hls.HlsMediaSource
import com.github.libretube.R import com.github.libretube.R
import com.github.libretube.api.CronetHelper
import com.github.libretube.api.JsonHelper import com.github.libretube.api.JsonHelper
import com.github.libretube.api.RetrofitInstance import com.github.libretube.api.RetrofitInstance
import com.github.libretube.api.StreamsExtractor import com.github.libretube.api.StreamsExtractor
@ -37,7 +36,6 @@ import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import kotlinx.serialization.encodeToString import kotlinx.serialization.encodeToString
import java.util.concurrent.Executors
/** /**
* Loads the selected videos audio in background mode with a notification area. * Loads the selected videos audio in background mode with a notification area.
@ -52,11 +50,6 @@ open class OnlinePlayerService : AbstractPlayerService() {
private var channelId: String? = null private var channelId: String? = null
private var startTimestamp: Long? = null private var startTimestamp: Long? = null
private val cronetDataSourceFactory = CronetDataSource.Factory(
CronetHelper.cronetEngine,
Executors.newCachedThreadPool()
)
/** /**
* The response that gets when called the Api. * The response that gets when called the Api.
*/ */
@ -290,7 +283,7 @@ open class OnlinePlayerService : AbstractPlayerService() {
} }
// HLS // HLS
streams.hls != null -> { streams.hls != null -> {
val hlsMediaSourceFactory = HlsMediaSource.Factory(cronetDataSourceFactory) val hlsMediaSourceFactory = HlsMediaSource.Factory(DefaultDataSource.Factory(this))
.setPlaylistParserFactory(YoutubeHlsPlaylistParser.Factory()) .setPlaylistParserFactory(YoutubeHlsPlaylistParser.Factory())
val mediaItem = createMediaItem( val mediaItem = createMediaItem(

View File

@ -17,8 +17,6 @@ espresso = "3.6.1"
workRuntime = "2.9.1" workRuntime = "2.9.1"
retrofit = "2.11.0" retrofit = "2.11.0"
desugaring = "2.1.4" desugaring = "2.1.4"
cronetEmbedded = "119.6045.31"
cronetOkHttp = "0.1.0"
coil = "2.7.0" coil = "2.7.0"
room = "2.6.1" room = "2.6.1"
kotlinxSerialization = "1.6.3" kotlinxSerialization = "1.6.3"
@ -65,8 +63,6 @@ androidx-media3-ui = { group="androidx.media3", name="media3-ui", version.ref="m
newpipeextractor = { module = "com.github.teamnewpipe:NewPipeExtractor", version.ref = "newpipeextractor" } newpipeextractor = { module = "com.github.teamnewpipe:NewPipeExtractor", version.ref = "newpipeextractor" }
square-retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" } square-retrofit = { group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit" }
desugaring = { group = "com.android.tools", name = "desugar_jdk_libs_nio", version.ref = "desugaring" } desugaring = { group = "com.android.tools", name = "desugar_jdk_libs_nio", version.ref = "desugaring" }
cronet-embedded = { group = "org.chromium.net", name = "cronet-embedded", version.ref = "cronetEmbedded" }
cronet-okhttp = { group = "com.google.net.cronet", name = "cronet-okhttp", version.ref = "cronetOkHttp" }
coil = { group = "io.coil-kt", name = "coil", version.ref="coil" } coil = { group = "io.coil-kt", name = "coil", version.ref="coil" }
lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycle" } lifecycle-viewmodel = { group = "androidx.lifecycle", name = "lifecycle-viewmodel-ktx", version.ref = "lifecycle" }
lifecycle-runtime = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle" } lifecycle-runtime = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycle" }