mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-27 23:40:33 +05:30
feat: add full local mode option to instance settings
This commit is contained in:
parent
7db8212c72
commit
676c62a7e0
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -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"
|
||||
|
||||
|
@ -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,
|
||||
|
@ -472,6 +472,7 @@
|
||||
<string name="crashlog">Crashlog</string>
|
||||
<string name="never_show_again">Never show this again</string>
|
||||
<string name="update_information">Update information</string>
|
||||
<string name="mode_of_operation">Mode of operation</string>
|
||||
|
||||
<!-- Backup & Restore Settings -->
|
||||
<string name="import_subscriptions_from">Import subscriptions from</string>
|
||||
@ -532,6 +533,9 @@
|
||||
<string name="local_feed_extraction_summary">Directly fetch the feed from YouTube. This may be significantly slower.</string>
|
||||
<string name="show_upcoming_videos">Show upcoming videos</string>
|
||||
<string name="updating_feed">Updating feed …</string>
|
||||
<string name="full_local_mode">Full local mode</string>
|
||||
<string name="full_local_mode_desc">Directly fetch everything from YouTube, without using Piped.</string>
|
||||
<string name="authentication">Authentication</string>
|
||||
|
||||
<!-- Notification channel strings -->
|
||||
<string name="download_channel_name">Download Service</string>
|
||||
|
@ -2,6 +2,26 @@
|
||||
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<PreferenceCategory app:title="@string/mode_of_operation">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:icon="@drawable/ic_region"
|
||||
android:defaultValue="false"
|
||||
android:title="@string/full_local_mode"
|
||||
android:key="full_local_mode"
|
||||
android:disableDependentsState="true"
|
||||
android:summary="@string/full_local_mode_desc" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:icon="@drawable/ic_region"
|
||||
android:dependency="full_local_mode"
|
||||
android:summary="@string/local_stream_extraction_summary"
|
||||
android:title="@string/local_stream_extraction"
|
||||
app:key="local_stream_extraction" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory app:title="@string/instance">
|
||||
|
||||
<ListPreference
|
||||
@ -10,19 +30,41 @@
|
||||
app:entries="@array/instances"
|
||||
app:entryValues="@array/instancesValue"
|
||||
app:key="selectInstance"
|
||||
android:dependency="full_local_mode"
|
||||
app:title="@string/instances" />
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_add_instance"
|
||||
app:key="customInstance"
|
||||
android:dependency="full_local_mode"
|
||||
app:summary="@string/customInstance_summary"
|
||||
app:title="@string/customInstance" />
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_trash"
|
||||
app:key="clearCustomInstances"
|
||||
android:dependency="full_local_mode"
|
||||
app:title="@string/clear_customInstances" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_server"
|
||||
android:dependency="full_local_mode"
|
||||
android:summary="@string/disable_proxy_summary"
|
||||
android:title="@string/disable_proxy"
|
||||
app:key="disable_video_image_proxy" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory android:title="@string/authentication">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_region"
|
||||
android:summary="@string/local_feed_extraction_summary"
|
||||
android:title="@string/local_feed_extraction"
|
||||
app:key="local_feed_extraction" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_auth"
|
||||
@ -39,21 +81,6 @@
|
||||
app:key="selectAuthInstance"
|
||||
app:title="@string/auth_instances" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory app:title="@string/audio_video">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_list"
|
||||
android:summary="@string/hls_instead_of_dash_summary"
|
||||
android:title="@string/hls_instead_of_dash"
|
||||
app:key="use_hls" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory app:title="@string/account">
|
||||
|
||||
<Preference
|
||||
android:icon="@drawable/ic_login_filled"
|
||||
android:summary="@string/notgmail"
|
||||
@ -75,42 +102,27 @@
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory app:title="@string/proxy">
|
||||
<PreferenceCategory app:title="@string/audio_video">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_server"
|
||||
android:summary="@string/disable_proxy_summary"
|
||||
android:title="@string/disable_proxy"
|
||||
app:key="disable_video_image_proxy" />
|
||||
android:icon="@drawable/ic_list"
|
||||
android:summary="@string/hls_instead_of_dash_summary"
|
||||
android:title="@string/hls_instead_of_dash"
|
||||
app:key="use_hls" />
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:icon="@drawable/ic_region"
|
||||
android:summary="@string/local_stream_extraction_summary"
|
||||
android:title="@string/local_stream_extraction"
|
||||
android:dependency="disable_video_image_proxy"
|
||||
app:key="local_stream_extraction" />
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory app:title="@string/misc">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="true"
|
||||
android:icon="@drawable/ic_dislike"
|
||||
android:dependency="local_stream_extraction"
|
||||
android:summary="@string/local_ryd_summary"
|
||||
android:title="@string/local_ryd"
|
||||
android:dependency="local_stream_extraction"
|
||||
app:key="local_return_youtube_dislikes" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
<PreferenceCategory app:title="@string/subscriptions">
|
||||
|
||||
<SwitchPreferenceCompat
|
||||
android:defaultValue="false"
|
||||
android:icon="@drawable/ic_region"
|
||||
android:summary="@string/local_feed_extraction_summary"
|
||||
android:title="@string/local_feed_extraction"
|
||||
app:key="local_feed_extraction" />
|
||||
|
||||
</PreferenceCategory>
|
||||
|
||||
</PreferenceScreen>
|
Loading…
x
Reference in New Issue
Block a user