diff --git a/app/src/main/java/com/github/libretube/api/MediaServiceRepository.kt b/app/src/main/java/com/github/libretube/api/MediaServiceRepository.kt index 9212a5136..c3123e2ae 100644 --- a/app/src/main/java/com/github/libretube/api/MediaServiceRepository.kt +++ b/app/src/main/java/com/github/libretube/api/MediaServiceRepository.kt @@ -39,13 +39,11 @@ interface MediaServiceRepository { suspend fun getPlaylistNextPage(playlistId: String, nextPage: String): Playlist companion object { - val instance by lazy { - if (PlayerHelper.disablePipedProxy && PlayerHelper.localStreamExtraction) { - // TODO: LocalStreamsExtractionPipedMediaServiceRepository() - NewPipeMediaServiceRepository() - } else { - PipedMediaServiceRepository() + val instance: MediaServiceRepository + get() = when { + PlayerHelper.fullLocalMode -> NewPipeMediaServiceRepository() + PlayerHelper.localStreamExtraction -> LocalStreamsExtractionPipedMediaServiceRepository() + else -> PipedMediaServiceRepository() } - } } } \ No newline at end of file diff --git a/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt b/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt index 04ee5ef80..48be21253 100644 --- a/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt +++ b/app/src/main/java/com/github/libretube/constants/PreferenceKeys.kt @@ -133,6 +133,7 @@ object PreferenceKeys { const val MAX_CONCURRENT_DOWNLOADS = "max_parallel_downloads" const val EXTERNAL_DOWNLOAD_PROVIDER = "external_download_provider" const val DISABLE_VIDEO_IMAGE_PROXY = "disable_video_image_proxy" + const val FULL_LOCAL_MODE = "full_local_mode" const val LOCAL_RYD = "local_return_youtube_dislikes" const val LOCAL_STREAM_EXTRACTION = "local_stream_extraction" diff --git a/app/src/main/java/com/github/libretube/helpers/PlayerHelper.kt b/app/src/main/java/com/github/libretube/helpers/PlayerHelper.kt index 0969e1a01..fce7521de 100644 --- a/app/src/main/java/com/github/libretube/helpers/PlayerHelper.kt +++ b/app/src/main/java/com/github/libretube/helpers/PlayerHelper.kt @@ -357,6 +357,12 @@ object PlayerHelper { false ) + val fullLocalMode: Boolean + get() = PreferenceHelper.getBoolean( + PreferenceKeys.FULL_LOCAL_MODE, + false + ) + val localStreamExtraction: Boolean get() = PreferenceHelper.getBoolean( PreferenceKeys.LOCAL_STREAM_EXTRACTION, diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 9253d5048..8821649c1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -472,6 +472,7 @@ Crashlog Never show this again Update information + Mode of operation Import subscriptions from @@ -532,6 +533,9 @@ Directly fetch the feed from YouTube. This may be significantly slower. Show upcoming videos Updating feed … + Full local mode + Directly fetch everything from YouTube, without using Piped. + Authentication Download Service diff --git a/app/src/main/res/xml/instance_settings.xml b/app/src/main/res/xml/instance_settings.xml index 4e5a14562..fd70d0c5e 100644 --- a/app/src/main/res/xml/instance_settings.xml +++ b/app/src/main/res/xml/instance_settings.xml @@ -2,6 +2,26 @@ + + + + + + + + + + + + + + + + - - - - - - - - - - - + + android:icon="@drawable/ic_list" + android:summary="@string/hls_instead_of_dash_summary" + android:title="@string/hls_instead_of_dash" + app:key="use_hls" /> - + + + - - - - - - \ No newline at end of file