Skip to content
Snippets Groups Projects
Commit f20c417b authored by Nicolas Pomepuy's avatar Nicolas Pomepuy Committed by Duncan McNamara
Browse files

Fix soundfont picker not working on TV

parent b08e97af
No related branches found
No related tags found
1 merge request!1953Leanback settings
Pipeline #500823 passed with stages
in 21 minutes and 20 seconds
......@@ -24,14 +24,17 @@
package org.videolan.television.ui.preferences
import android.app.Fragment
import android.content.Intent
import android.os.Bundle
import androidx.leanback.preference.LeanbackPreferenceFragment
import androidx.preference.EditTextPreference
import androidx.preference.Preference
import androidx.preference.PreferenceDialogFragment
import org.videolan.television.ui.dialogs.ConfirmationTvActivity
import org.videolan.vlc.R
const val RESTART_CODE = 10001
abstract class BasePreferenceFragment : LeanbackPreferenceFragment() {
protected abstract fun getXml(): Int
......@@ -56,6 +59,15 @@ abstract class BasePreferenceFragment : LeanbackPreferenceFragment() {
} else null
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RESTART_CODE) {
if (resultCode == ConfirmationTvActivity.ACTION_ID_POSITIVE) {
android.os.Process.killProcess(android.os.Process.myPid())
}
}
}
companion object {
private const val DIALOG_FRAGMENT_TAG = "androidx.preference.PreferenceFragment.DIALOG"
}
......
......@@ -93,7 +93,6 @@ import java.io.File
import java.io.IOException
private const val FILE_PICKER_RESULT_CODE = 10000
private const val RESTART_CODE = 10001
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
class PreferencesAdvanced : BasePreferenceFragment(), SharedPreferences.OnSharedPreferenceChangeListener, CoroutineScope by MainScope() {
override fun getXml(): Int {
......@@ -309,11 +308,6 @@ class PreferencesAdvanced : BasePreferenceFragment(), SharedPreferences.OnShared
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RESTART_CODE) {
if (resultCode == ConfirmationTvActivity.ACTION_ID_POSITIVE) {
android.os.Process.killProcess(android.os.Process.myPid())
}
}
if (data == null) return
if (requestCode == FILE_PICKER_RESULT_CODE) {
if (data.hasExtra(EXTRA_MRL)) {
......
......@@ -23,7 +23,9 @@
package org.videolan.television.ui.preferences
import android.annotation.TargetApi
import android.content.Intent
import android.content.SharedPreferences
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.text.InputFilter
......@@ -49,14 +51,21 @@ import org.videolan.tools.Settings
import org.videolan.tools.putSingle
import org.videolan.vlc.BuildConfig
import org.videolan.vlc.R
import org.videolan.vlc.gui.browser.EXTRA_MRL
import org.videolan.vlc.gui.browser.FilePickerActivity
import org.videolan.vlc.gui.browser.KEY_PICKER_TYPE
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.restartMediaPlayer
import org.videolan.vlc.isVLC4
import org.videolan.vlc.media.MediaUtils
import org.videolan.vlc.providers.PickerType
import org.videolan.vlc.util.LocaleUtil
import java.text.DecimalFormat
import java.text.DecimalFormatSymbols
import java.util.*
import java.util.Locale
private const val TAG = "VLC/PreferencesAudio"
private const val FILE_PICKER_RESULT_CODE = 10000
@Suppress("DEPRECATION")
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)
......@@ -169,6 +178,38 @@ class PreferencesAudio : BasePreferenceFragment(), SharedPreferences.OnSharedPre
}
}
override fun onPreferenceTreeClick(preference: Preference): Boolean {
if (preference.key == null) return false
when (preference.key) {
"soundfont" -> {
val filePickerIntent = Intent(activity, FilePickerActivity::class.java)
filePickerIntent.putExtra(KEY_PICKER_TYPE, PickerType.SOUNDFONT.ordinal)
startActivityForResult(
filePickerIntent,
FILE_PICKER_RESULT_CODE
)
}
}
return super.onPreferenceTreeClick(preference)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (data == null) return
if (requestCode == FILE_PICKER_RESULT_CODE) {
if (data.hasExtra(EXTRA_MRL)) {
launch {
MediaUtils.useAsSoundFont(activity, Uri.parse(data.getStringExtra(
EXTRA_MRL
)))
VLCInstance.restart()
}
UiTools.restartDialog(activity!!, true, RESTART_CODE, this)
}
}
}
private suspend fun restartLibVLC() {
VLCInstance.restart()
restartMediaPlayer()
......
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