Skip to content
Snippets Groups Projects
Commit be9e3868 authored by Nicolas Pomepuy's avatar Nicolas Pomepuy
Browse files

Missing media: snackbar and settings shortcut

parent 6c42a273
No related branches found
No related tags found
No related merge requests found
......@@ -800,6 +800,9 @@
<string name="enqueuing">Loading your medias</string>
<string name="soundfont">MIDI SoundFont</string>
<string name="soundfont_summary">Pick a SoundFont file to play midi audio tracks</string>
<string name="missing_media_snack">Media is missing. Hide all missing media?</string>
<string name="browser_show_missing_media">Show missing medias</string>
<string name="browser_show_missing_media_summary">Show distant medias event if they are not present</string>
<string name="search_prefs">Search settings</string>
<string name="preferred_resolution">Preferred video resolution</string>
<string name="preferred_resolution_summary">Maximum video quality for streams, when applicable, will be: %s</string>
......
......@@ -41,6 +41,13 @@
android:summary="@string/show_headers_summary"
android:title="@string/show_headers"/>
<CheckBoxPreference
app:singleLineTitle="false"
android:key="include_missing"
android:defaultValue="true"
android:summary="@string/browser_show_missing_media_summary"
android:title="@string/browser_show_missing_media"/>
<PreferenceCategory
android:title="@string/video"
android:key="ui_video_category">
......
......@@ -53,6 +53,7 @@ import org.videolan.vlc.gui.AudioPlayerContainerActivity
import org.videolan.vlc.gui.ContentActivity
import org.videolan.vlc.gui.PlaylistActivity
import org.videolan.vlc.gui.SecondaryActivity
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.view.EmptyLoadingState
import org.videolan.vlc.gui.view.RecyclerSectionItemGridDecoration
import org.videolan.vlc.media.MediaUtils
......@@ -324,6 +325,10 @@ class AudioBrowserFragment : BaseAudioBrowser<AudioBrowserViewModel>() {
return
}
if (item.itemType == MediaLibraryItem.TYPE_MEDIA) {
if (item is MediaWrapper && !item.isPresent) {
UiTools.snackerMissing(requireActivity())
return
}
MediaUtils.openMedia(activity, item as MediaWrapper)
return
}
......
......@@ -83,6 +83,8 @@ import org.videolan.vlc.gui.dialogs.AddToGroupDialog
import org.videolan.vlc.gui.dialogs.SavePlaylistDialog
import org.videolan.vlc.gui.dialogs.VLCBillingDialog
import org.videolan.vlc.gui.dialogs.VideoTracksDialog
import org.videolan.vlc.gui.preferences.EXTRA_PREF_END_POINT
import org.videolan.vlc.gui.preferences.PreferencesActivity
import org.videolan.vlc.media.MediaUtils
import org.videolan.vlc.providers.medialibrary.MedialibraryProvider
import org.videolan.vlc.util.FileUtils
......@@ -289,6 +291,20 @@ object UiTools {
return Snackbar.make(view, message, Snackbar.LENGTH_INDEFINITE)
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
fun snackerMissing(activity: Activity) {
val view = getSnackAnchorView(activity) ?: return
val snack = Snackbar.make(view, activity.getString(R.string.missing_media_snack), Snackbar.LENGTH_LONG)
.setAction(R.string.ok) {
val intent = Intent(activity, PreferencesActivity::class.java)
intent.putExtra(EXTRA_PREF_END_POINT, "include_missing")
activity.startActivityForResult(intent, ACTIVITY_RESULT_PREFERENCES)
}
if (AndroidUtil.isLolliPopOrLater)
snack.view.elevation = view.resources.getDimensionPixelSize(R.dimen.audio_player_elevation).toFloat()
snack.show()
}
/**
* Get a resource id from an attribute id.
*
......
......@@ -60,7 +60,9 @@ class PreferencesFragment : BasePreferenceFragment(), SharedPreferences.OnShared
preferenceScreen.sharedPreferences.unregisterOnSharedPreferenceChangeListener(this)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
}
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState)
findPreference<Preference>("extensions_category")?.isVisible = BuildConfig.DEBUG
......
......@@ -26,6 +26,7 @@ package org.videolan.vlc.gui.preferences
import android.content.SharedPreferences
import android.os.Bundle
import android.text.InputType
import android.view.View
import androidx.appcompat.app.AppCompatDelegate
import androidx.preference.EditTextPreference
import androidx.preference.ListPreference
......
......@@ -34,6 +34,7 @@ import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.tools.FORCE_PLAY_ALL
import org.videolan.tools.Settings
import org.videolan.tools.isStarted
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.UiTools.addToPlaylist
import org.videolan.vlc.gui.video.VideoGridFragment
import org.videolan.vlc.media.MediaUtils
......@@ -128,6 +129,10 @@ class VideosViewModel(context: Context, type: VideoGroupingType, val folder: Fol
internal fun playVideo(context: Activity?, mw: MediaWrapper, position: Int, fromStart: Boolean = false, forceAll:Boolean = false) {
if (context === null) return
if (!mw.isPresent) {
UiTools.snackerMissing(context)
return
}
mw.removeFlags(MediaWrapper.MEDIA_FORCE_AUDIO)
val settings = Settings.getInstance(context)
if (!fromStart && (settings.getBoolean(FORCE_PLAY_ALL, false) || forceAll)) {
......
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