Skip to content
Snippets Groups Projects
Commit fe85c9e3 authored by Geoffrey Métais's avatar Geoffrey Métais
Browse files

TV: Video playlist mode option

fix #845
parent 4ea20292
No related branches found
No related tags found
No related merge requests found
......@@ -4,22 +4,30 @@
android:key="video_category"
android:title="@string/video_prefs_category">
<ListPreference
android:defaultValue="6"
android:entries="@array/video_min_group_length_list"
android:entryValues="@array/video_min_group_length_values"
android:key="video_min_group_length"
android:persistent="true"
android:summary="@string/video_min_group_length_summary"
android:title="@string/video_min_group_length_title" />
<CheckBoxPreference
android:defaultValue="true"
android:key="media_seen"
android:summary="@string/media_seen_summary"
android:title="@string/media_seen" />
<CheckBoxPreference
android:defaultValue="false"
android:key="force_play_all"
android:summary="@string/force_play_all_summary"
android:title="@string/force_play_all_title" />
<CheckBoxPreference
android:defaultValue="false"
android:key="force_list_portrait"
android:summary="@string/force_list_portrait_summary"
android:title="@string/force_list_portrait" />
<CheckBoxPreference
android:defaultValue="true"
android:key="show_video_thumbnails"
android:summary="@string/show_video_thumbnails_summary"
android:title="@string/show_video_thumbnails" />
<CheckBoxPreference
android:defaultValue="false"
android:key="save_brightness"
......@@ -53,11 +61,6 @@
android:key="audio_boost"
android:summary="@string/audio_boost_summary"
android:title="@string/audio_boost_title" />
<CheckBoxPreference
android:defaultValue="false"
android:key="force_play_all"
android:summary="@string/force_play_all_summary"
android:title="@string/force_play_all_title" />
<CheckBoxPreference
android:defaultValue="true"
android:key="enable_volume_gesture"
......
......@@ -11,6 +11,7 @@ import kotlinx.coroutines.ObsoleteCoroutinesApi
import kotlinx.coroutines.launch
import org.videolan.medialibrary.Medialibrary
import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.medialibrary.media.MediaWrapper
import org.videolan.vlc.R
import org.videolan.vlc.gui.tv.MediaTvItemAdapter
import org.videolan.vlc.gui.tv.TvItemAdapter
......@@ -31,7 +32,7 @@ class MediaBrowserTvFragment : BaseBrowserTvFragment() {
override lateinit var adapter: TvItemAdapter
override fun getTitle() = when (arguments?.getLong(CATEGORY, CATEGORY_SONGS)) {
override fun getTitle() = when ((viewModel as MediaBrowserViewModel).category) {
CATEGORY_SONGS -> getString(R.string.tracks)
CATEGORY_ALBUMS -> getString(R.string.albums)
CATEGORY_ARTISTS -> getString(R.string.artists)
......@@ -39,7 +40,7 @@ class MediaBrowserTvFragment : BaseBrowserTvFragment() {
else -> getString(R.string.video)
}
override fun getColumnNumber() = when (arguments?.getLong(CATEGORY, CATEGORY_SONGS)) {
override fun getColumnNumber() = when ((viewModel as MediaBrowserViewModel).category) {
CATEGORY_VIDEOS -> resources.getInteger(R.integer.tv_videos_col_count)
else -> resources.getInteger(R.integer.tv_songs_col_count)
}
......@@ -79,11 +80,15 @@ class MediaBrowserTvFragment : BaseBrowserTvFragment() {
headerAdapter.items = headerItems
headerAdapter.notifyDataSetChanged()
})
}
override fun onClick(v: View, position: Int, item: MediaLibraryItem) {
launch { TvUtil.openMediaFromPaged(requireActivity(), item, viewModel.provider as MedialibraryProvider<out MediaLibraryItem>) }
launch {
if ((viewModel as MediaBrowserViewModel).category == CATEGORY_VIDEOS && !Settings.getInstance(requireContext()).getBoolean(FORCE_PLAY_ALL, true)) {
TvUtil.playMedia(requireActivity(), item as MediaWrapper)
} else {
TvUtil.openMediaFromPaged(requireActivity(), item, viewModel.provider as MedialibraryProvider<out MediaLibraryItem>)
}
}
}
}
......@@ -42,6 +42,9 @@ class PreferencesVideo : BasePreferenceFragment() {
override fun getTitleId() = R.string.video_prefs_category
override fun onCreate(savedInstanceState: Bundle?) {
Settings.getInstance(activity).run {
if (!contains(FORCE_PLAY_ALL)) edit().putBoolean(FORCE_PLAY_ALL, true).apply()
}
super.onCreate(savedInstanceState)
findPreference(FORCE_LIST_PORTRAIT).isVisible = false
......@@ -51,7 +54,6 @@ class PreferencesVideo : BasePreferenceFragment() {
findPreference(ENABLE_BRIGHTNESS_GESTURE).isVisible = AndroidDevices.hasTsp
findPreference(POPUP_KEEPSCREEN).isVisible = false
findPreference(POPUP_FORCE_LEGACY).isVisible = false
findPreference(FORCE_PLAY_ALL).isVisible = false
}
override fun onPreferenceTreeClick(preference: Preference): Boolean {
......
......@@ -16,7 +16,7 @@ import org.videolan.vlc.viewmodels.MedialibraryViewModel
@ExperimentalCoroutinesApi
class MediaBrowserViewModel(context: Context, category: Long) : MedialibraryViewModel(context), TvBrowserModel {
class MediaBrowserViewModel(context: Context, val category: Long) : MedialibraryViewModel(context), TvBrowserModel {
override var nbColumns = 0
......
......@@ -8,6 +8,4 @@ interface TvBrowserModel {
var currentItem: MediaLibraryItem?
var nbColumns: Int
val provider: HeaderProvider
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment