Browse Source

catch libvlc options IllegalStateException

3.3.x
Mehdi Sabwat 7 years ago
committed by Geoffrey Métais
parent
commit
0e476d2065
  1. 1
      application/resources/src/main/res/values/strings.xml
  2. 17
      application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesAdvanced.kt
  3. 18
      application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesAdvanced.kt

1
application/resources/src/main/res/values/strings.xml

@ -481,6 +481,7 @@
<string name="dump_logcat_success">Logcat successfully dumped to %1$s!</string>
<string name="dump_logcat_failure">Failed to dump logcat.</string>
<string name="custom_libvlc_options">Custom libVLC options</string>
<string name="custom_libvlc_options_invalid">Invalid libVLC options!</string>
<string name="serious_crash">Unfortunately, a serious error has occurred and VLC had to close.</string>
<string name="help_us_send_log">Help us improving VLC by sending the following crash log:</string>

17
application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesAdvanced.kt

@ -39,6 +39,7 @@ import kotlinx.coroutines.*
import org.videolan.medialibrary.interfaces.Medialibrary
import org.videolan.resources.AndroidDevices
import org.videolan.resources.VLCInstance
import org.videolan.tools.putSingle
import org.videolan.vlc.BuildConfig
import org.videolan.vlc.R
import org.videolan.vlc.gui.DebugLogActivity
@ -114,7 +115,7 @@ class PreferencesAdvanced : BasePreferenceFragment(), SharedPreferences.OnShared
}
"dump_media_db" -> {
if (Medialibrary.getInstance().isWorking)
UiTools.snacker(view!!, getString(R.string.settings_ml_block_scan))
activity?.let { Toast.makeText(it, R.string.settings_ml_block_scan, Toast.LENGTH_LONG).show() }
else {
val dst = File(AndroidDevices.EXTERNAL_PUBLIC_DIRECTORY + Medialibrary.VLC_MEDIA_DB_NAME)
launch {
@ -144,15 +145,25 @@ class PreferencesAdvanced : BasePreferenceFragment(), SharedPreferences.OnShared
editor.putInt("network_caching_value", 0)
val networkCachingPref = findPreference<EditTextPreference>(key)
networkCachingPref?.text = ""
Toast.makeText(activity, R.string.network_caching_popup, Toast.LENGTH_SHORT).show()
activity?.let { Toast.makeText(it, R.string.network_caching_popup, Toast.LENGTH_SHORT).show() }
}
editor.apply()
VLCInstance.restart()
(activity as? PreferencesActivity)?.restartMediaPlayer()
}
"custom_libvlc_options" -> {
try {
VLCInstance.restart()
} catch (e: IllegalStateException){
activity?.let { Toast.makeText(it, R.string.custom_libvlc_options_invalid, Toast.LENGTH_LONG).show() }
sharedPreferences.putSingle("custom_libvlc_options", "")
} finally {
(activity as? PreferencesActivity)?.restartMediaPlayer()
}
}
// No break because need VLCInstance.restart();
"opengl", "chroma_format", "custom_libvlc_options", "deblocking", "enable_frame_skip", "enable_time_stretching_audio", "enable_verbose_mode" -> {
"opengl", "chroma_format", "deblocking", "enable_frame_skip", "enable_time_stretching_audio", "enable_verbose_mode" -> {
VLCInstance.restart()
(activity as? PreferencesActivity)?.restartMediaPlayer()
}

18
application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesAdvanced.kt

@ -37,6 +37,7 @@ import kotlinx.coroutines.*
import org.videolan.medialibrary.interfaces.Medialibrary
import org.videolan.resources.AndroidDevices
import org.videolan.resources.VLCInstance
import org.videolan.tools.putSingle
import org.videolan.vlc.BuildConfig
import org.videolan.vlc.R
import org.videolan.vlc.gui.DebugLogActivity
@ -141,14 +142,23 @@ class PreferencesAdvanced : BasePreferenceFragment(), SharedPreferences.OnShared
networkCachingPref?.text = ""
UiTools.snacker(view!!, R.string.network_caching_popup)
}
editor.apply()
VLCInstance.restart()
if (activity != null)
(activity as PreferencesActivity).restartMediaPlayer()
(activity as? PreferencesActivity)?.restartMediaPlayer()
}
// No break because need VLCInstance.restart();
"opengl", "chroma_format", "custom_libvlc_options", "deblocking", "enable_frame_skip", "enable_time_stretching_audio", "enable_verbose_mode" -> {
"custom_libvlc_options" -> {
try {
VLCInstance.restart()
} catch (e: IllegalStateException){
view?.let { UiTools.snacker(it, R.string.custom_libvlc_options_invalid) }
sharedPreferences.putSingle("custom_libvlc_options", "")
} finally {
(activity as? PreferencesActivity)?.restartMediaPlayer()
}
}
"opengl", "chroma_format", "deblocking", "enable_frame_skip", "enable_time_stretching_audio", "enable_verbose_mode" -> {
VLCInstance.restart()
(activity as? PreferencesActivity)?.restartMediaPlayer()
}

Loading…
Cancel
Save