Browse Source

Move VLCInstance & VLCOptions to resources module

merge-requests/509/head
Geoffrey Métais 7 years ago
committed by Geoffrey Métais
parent
commit
4a4e181a21
  1. 2
      application/app/src/main/java/org/videolan/mobile/app/AppSetupDelegate.kt
  2. 2
      application/resources/src/main/java/org/videolan/resources/Constants.kt
  3. 8
      application/resources/src/main/java/org/videolan/resources/VLCInstance.kt
  4. 13
      application/resources/src/main/java/org/videolan/resources/VLCOptions.kt
  5. 9
      application/resources/src/main/java/org/videolan/resources/util/VLCCrashHandler.kt
  6. 0
      application/resources/src/main/res/values-land/booleans.xml
  7. 0
      application/resources/src/main/res/values-sw400dp/booleans.xml
  8. 0
      application/resources/src/main/res/values-v19/booleans.xml
  9. 0
      application/resources/src/main/res/values/booleans.xml
  10. 2
      application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesAdvanced.kt
  11. 2
      application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesAudio.kt
  12. 2
      application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesSubtitles.kt
  13. 3
      application/tools/src/main/java/org/videolan/tools/KotlinExtensions.kt
  14. 2
      application/vlc-android/src/org/videolan/vlc/PreviewVideoInputService.kt
  15. 4
      application/vlc-android/src/org/videolan/vlc/RendererDelegate.kt
  16. 2
      application/vlc-android/src/org/videolan/vlc/StoragesMonitor.kt
  17. 1
      application/vlc-android/src/org/videolan/vlc/gui/InfoActivity.kt
  18. 4
      application/vlc-android/src/org/videolan/vlc/gui/audio/EqualizerFragment.kt
  19. 1
      application/vlc-android/src/org/videolan/vlc/gui/helpers/PlayerOptionsDelegate.kt
  20. 2
      application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesAdvanced.kt
  21. 2
      application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesAudio.kt
  22. 2
      application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesCasting.kt
  23. 2
      application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesSubtitles.kt
  24. 2
      application/vlc-android/src/org/videolan/vlc/gui/video/benchmark/BenchActivity.kt
  25. 3
      application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt
  26. 2
      application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt
  27. 2
      application/vlc-android/src/org/videolan/vlc/providers/BrowserProvider.kt
  28. 2
      application/vlc-android/src/org/videolan/vlc/util/Kextensions.kt
  29. 1
      application/vlc-android/src/org/videolan/vlc/util/Util.kt

2
application/app/src/main/java/org/videolan/mobile/app/AppSetupDelegate.kt

@ -43,7 +43,7 @@ import org.videolan.vlc.gui.helpers.AudioUtil
import org.videolan.vlc.gui.helpers.NotificationHelper
import org.videolan.vlc.util.DialogDelegate
import org.videolan.vlc.util.SettingsMigration
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
interface AppDelegate {
val appContextProvider : AppContextProvider

2
application/resources/src/main/java/org/videolan/resources/Constants.kt

@ -194,3 +194,5 @@ const val CRASH_ML_MSG = "crash_ml_msg"
fun String.buildPkgString() = "${BuildConfig.APP_ID}.$this"
// Activity names
const val COMPATERROR_ACTIVITY = "org.videolan.vlc.gui.CompatErrorActivity"

8
application/vlc-android/src/org/videolan/vlc/util/VLCInstance.kt → application/resources/src/main/java/org/videolan/resources/VLCInstance.kt

@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*/
package org.videolan.vlc.util
package org.videolan.resources
import android.annotation.SuppressLint
import android.app.Activity
@ -30,9 +30,7 @@ import org.videolan.libvlc.FactoryManager
import org.videolan.libvlc.interfaces.ILibVLC
import org.videolan.libvlc.interfaces.ILibVLCFactory
import org.videolan.libvlc.util.VLCUtil
import org.videolan.resources.AppContextProvider
import org.videolan.vlc.VLCCrashHandler
import org.videolan.vlc.gui.CompatErrorActivity
import org.videolan.resources.util.VLCCrashHandler
@ObsoleteCoroutinesApi
object VLCInstance {
@ -75,7 +73,7 @@ object VLCInstance {
fun testCompatibleCPU(context: Context): Boolean {
return if (sLibVLC == null && !VLCUtil.hasCompatibleCPU(context)) {
if (context is Activity) {
val i = Intent(context, CompatErrorActivity::class.java)
val i = Intent(Intent.ACTION_VIEW).setClassName(context.applicationContext, COMPATERROR_ACTIVITY)
context.startActivity(i)
}
false

13
application/vlc-android/src/org/videolan/vlc/util/VLCOptions.kt → application/resources/src/main/java/org/videolan/resources/VLCOptions.kt

@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*/
package org.videolan.vlc.util
package org.videolan.resources
import android.content.Context
import android.content.SharedPreferences
@ -33,15 +33,12 @@ import org.videolan.libvlc.util.AndroidUtil
import org.videolan.libvlc.util.HWDecoderUtil
import org.videolan.libvlc.util.VLCUtil
import org.videolan.medialibrary.interfaces.media.MediaWrapper
import org.videolan.resources.AppContextProvider
import org.videolan.resources.R.*
import org.videolan.tools.Preferences
import org.videolan.tools.Settings
import org.videolan.vlc.PlaybackService
import org.videolan.vlc.R
import java.io.File
import java.util.*
object VLCOptions {
private val TAG = "VLCConfig"
@ -69,7 +66,7 @@ object VLCOptions {
val options = ArrayList<String>(50)
val timeStrechingDefault = context != null && context.resources.getBoolean(R.bool.time_stretching_default)
val timeStrechingDefault = context != null && context.resources.getBoolean(bool.time_stretching_default)
val timeStreching = pref.getBoolean("enable_time_stretching_audio", timeStrechingDefault)
val subtitlesEncoding = pref.getString("subtitle_text_encoding", "") ?: ""
val frameSkip = pref.getBoolean("enable_frame_skip", false)
@ -202,7 +199,7 @@ object VLCOptions {
return ret
}
fun setMediaOptions(media: IMedia, context: Context, flags: Int) {
fun setMediaOptions(media: IMedia, context: Context, flags: Int, hasRenderer: Boolean) {
val noHardwareAcceleration = flags and MediaWrapper.MEDIA_NO_HWACCEL != 0
val noVideo = flags and MediaWrapper.MEDIA_VIDEO == 0
val benchmark = flags and MediaWrapper.MEDIA_BENCHMARK != 0
@ -231,7 +228,7 @@ object VLCOptions {
if (!prefs.getBoolean("subtitles_autoload", true)) media.addOption(":sub-language=none")
if (!benchmark && prefs.getBoolean("media_fast_seek", true)) media.addOption(":input-fast-seek")
if (PlaybackService.hasRenderer()) {
if (hasRenderer) {
media.addOption(":sout-chromecast-audio-passthrough=" + prefs.getBoolean("casting_passthrough", true))
media.addOption(":sout-chromecast-conversion-quality=" + prefs.getString("casting_quality", "2")!!)
}

9
application/vlc-android/src/org/videolan/vlc/VLCCrashHandler.kt → application/resources/src/main/java/org/videolan/resources/util/VLCCrashHandler.kt

@ -18,7 +18,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*/
package org.videolan.vlc
package org.videolan.resources.util
import android.os.Environment
import android.text.format.DateFormat
@ -29,6 +29,8 @@ import org.videolan.tools.Logcat
import java.io.*
import java.lang.Thread.UncaughtExceptionHandler
private const val TAG = "VLC/VlcCrashHandler"
class VLCCrashHandler : UncaughtExceptionHandler {
private val defaultUEH: UncaughtExceptionHandler = Thread.getDefaultUncaughtExceptionHandler()
@ -98,9 +100,4 @@ class VLCCrashHandler : UncaughtExceptionHandler {
}
}
companion object {
private val TAG = "VLC/VlcCrashHandler"
}
}

0
application/vlc-android/res/values-land/booleans.xml → application/resources/src/main/res/values-land/booleans.xml

0
application/vlc-android/res/values-sw400dp/booleans.xml → application/resources/src/main/res/values-sw400dp/booleans.xml

0
application/vlc-android/res/values-v19/booleans.xml → application/resources/src/main/res/values-v19/booleans.xml

0
application/vlc-android/res/values/booleans.xml → application/resources/src/main/res/values/booleans.xml

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

@ -44,7 +44,7 @@ import org.videolan.vlc.gui.DebugLogActivity
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.hf.StoragePermissionsDelegate.Companion.getWritePermission
import org.videolan.vlc.util.FileUtils
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
import java.io.File
@ExperimentalCoroutinesApi

2
application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesAudio.kt

@ -35,7 +35,7 @@ import org.videolan.libvlc.util.HWDecoderUtil
import org.videolan.vlc.R
import org.videolan.tools.AUDIO_DUCKING
import org.videolan.tools.RESUME_PLAYBACK
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
@ExperimentalCoroutinesApi
@ObsoleteCoroutinesApi

2
application/television/src/main/java/org/videolan/television/ui/preferences/PreferencesSubtitles.kt

@ -29,7 +29,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ObsoleteCoroutinesApi
import org.videolan.vlc.R
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
@ExperimentalCoroutinesApi
@ObsoleteCoroutinesApi

3
application/tools/src/main/java/org/videolan/tools/KotlinExtensions.kt

@ -16,6 +16,7 @@ import androidx.annotation.AttrRes
import androidx.core.content.ContextCompat.getSystemService
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleOwner
import androidx.lifecycle.ProcessLifecycleOwner
import kotlinx.coroutines.CancellationException
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.channels.Channel
@ -35,6 +36,8 @@ fun <T> List<T>.getposition(target: T): Int {
return -1
}
fun isAppStarted() = ProcessLifecycleOwner.get().isStarted()
fun LifecycleOwner.isStarted() = lifecycle.currentState.isAtLeast(Lifecycle.State.STARTED)
fun View.isVisible() = visibility == View.VISIBLE

2
application/vlc-android/src/org/videolan/vlc/PreviewVideoInputService.kt

@ -19,7 +19,7 @@ import org.videolan.resources.util.getFromMl
import org.videolan.tools.getContextWithLocale
import org.videolan.vlc.media.MediaPlayerEventListener
import org.videolan.vlc.media.PlayerController
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
import org.videolan.vlc.util.random
import java.io.IOException

4
application/vlc-android/src/org/videolan/vlc/RendererDelegate.kt

@ -27,8 +27,8 @@ import org.videolan.tools.AppScope
import org.videolan.tools.NetworkMonitor
import org.videolan.tools.retry
import org.videolan.tools.livedata.LiveDataset
import org.videolan.vlc.util.VLCInstance
import org.videolan.vlc.util.isAppStarted
import org.videolan.resources.VLCInstance
import org.videolan.tools.isAppStarted
import java.util.*
@ObsoleteCoroutinesApi

2
application/vlc-android/src/org/videolan/vlc/StoragesMonitor.kt

@ -14,7 +14,7 @@ import org.videolan.medialibrary.interfaces.Medialibrary
import org.videolan.tools.AppScope
import org.videolan.vlc.gui.DialogActivity
import org.videolan.resources.util.getFromMl
import org.videolan.vlc.util.isAppStarted
import org.videolan.tools.isAppStarted
import org.videolan.vlc.util.scanAllowed

1
application/vlc-android/src/org/videolan/vlc/gui/InfoActivity.kt

@ -32,6 +32,7 @@ import org.videolan.medialibrary.interfaces.media.Artist
import org.videolan.medialibrary.interfaces.media.MediaWrapper
import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.resources.TAG_ITEM
import org.videolan.resources.VLCInstance
import org.videolan.tools.readableFileSize
import org.videolan.vlc.R
import org.videolan.vlc.databinding.InfoActivityBinding

4
application/vlc-android/src/org/videolan/vlc/gui/audio/EqualizerFragment.kt

@ -49,8 +49,8 @@ import org.videolan.vlc.gui.dialogs.VLCBottomSheetDialogFragment
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.view.EqualizerBar
import org.videolan.vlc.interfaces.OnEqualizerBarChangeListener
import org.videolan.vlc.util.VLCInstance
import org.videolan.vlc.util.VLCOptions
import org.videolan.resources.VLCInstance
import org.videolan.resources.VLCOptions
import java.lang.Runnable
@ObsoleteCoroutinesApi

1
application/vlc-android/src/org/videolan/vlc/gui/helpers/PlayerOptionsDelegate.kt

@ -38,7 +38,6 @@ import org.videolan.vlc.gui.dialogs.*
import org.videolan.vlc.gui.video.VideoPlayerActivity
import org.videolan.vlc.interfaces.IPlaybackSettingsController
import org.videolan.vlc.media.PlayerController
import org.videolan.vlc.util.*
import java.util.*
private const val ACTION_AUDIO_DELAY = 2

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

@ -42,7 +42,7 @@ import org.videolan.vlc.gui.DebugLogActivity
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.hf.StoragePermissionsDelegate.Companion.getWritePermission
import org.videolan.vlc.util.FileUtils
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
import java.io.File
@ExperimentalCoroutinesApi

2
application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesAudio.kt

@ -35,7 +35,7 @@ import org.videolan.vlc.R
import org.videolan.tools.AUDIO_DUCKING
import org.videolan.resources.AndroidDevices
import org.videolan.tools.RESUME_PLAYBACK
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
@ExperimentalCoroutinesApi
@ObsoleteCoroutinesApi

2
application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesCasting.kt

@ -26,7 +26,7 @@ import android.content.SharedPreferences
import android.os.Bundle
import androidx.preference.Preference
import org.videolan.vlc.R
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
class PreferencesCasting : BasePreferenceFragment(), SharedPreferences.OnSharedPreferenceChangeListener {

2
application/vlc-android/src/org/videolan/vlc/gui/preferences/PreferencesSubtitles.kt

@ -27,7 +27,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ObsoleteCoroutinesApi
import org.videolan.vlc.R
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
@ObsoleteCoroutinesApi
@ExperimentalCoroutinesApi

2
application/vlc-android/src/org/videolan/vlc/gui/video/benchmark/BenchActivity.kt

@ -49,7 +49,7 @@ import org.videolan.libvlc.MediaPlayer
import org.videolan.vlc.PlaybackService
import org.videolan.tools.AppScope
import org.videolan.tools.Settings
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
import java.io.*
/**

3
application/vlc-android/src/org/videolan/vlc/media/PlayerController.kt

@ -14,13 +14,14 @@ import org.videolan.libvlc.interfaces.IMedia
import org.videolan.libvlc.interfaces.IMediaList
import org.videolan.libvlc.interfaces.IVLCVout
import org.videolan.medialibrary.interfaces.media.MediaWrapper
import org.videolan.resources.VLCInstance
import org.videolan.resources.VLCOptions
import org.videolan.tools.KEY_PLAYBACK_RATE
import org.videolan.tools.KEY_PLAYBACK_SPEED_PERSIST
import org.videolan.tools.Settings
import org.videolan.vlc.BuildConfig
import org.videolan.vlc.PlaybackService
import org.videolan.vlc.repository.SlaveRepository
import org.videolan.vlc.util.*
import kotlin.math.abs
@ObsoleteCoroutinesApi

2
application/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt

@ -312,7 +312,7 @@ class PlaylistManager(val service: PlaybackService) : MediaWrapperList.EventList
val start = getStartTime(mw)
val media = mediaFactory.getFromUri(VLCInstance.get(service), uri)
media.addOption(":start-time=${start/1000L}")
VLCOptions.setMediaOptions(media, ctx, flags or mw.flags)
VLCOptions.setMediaOptions(media, ctx, flags or mw.flags, PlaybackService.hasRenderer())
/* keeping only video during benchmark */
if (isBenchmark) {
media.addOption(":no-audio")

2
application/vlc-android/src/org/videolan/vlc/providers/BrowserProvider.kt

@ -48,7 +48,7 @@ import org.videolan.tools.Settings
import org.videolan.tools.livedata.LiveDataset
import org.videolan.vlc.R
import org.videolan.vlc.util.ModelsHelper
import org.videolan.vlc.util.VLCInstance
import org.videolan.resources.VLCInstance
import org.videolan.vlc.util.isBrowserMedia
import org.videolan.vlc.util.isMedia
import java.util.*

2
application/vlc-android/src/org/videolan/vlc/util/Kextensions.kt

@ -153,8 +153,6 @@ fun asyncTextItem(view: TextView, item: MediaLibraryItem?) {
(view as AppCompatTextView).setTextFuture(PrecomputedTextCompat.getTextFuture(text, params, null))
}
fun isAppStarted() = ProcessLifecycleOwner.get().isStarted()
fun Int.toPixel(): Int {
val metrics = Resources.getSystem().displayMetrics
val px = toFloat() * (metrics.densityDpi / 160f)

1
application/vlc-android/src/org/videolan/vlc/util/Util.kt

@ -27,6 +27,7 @@ import android.text.TextUtils
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ObsoleteCoroutinesApi
import org.videolan.resources.AppContextProvider
import org.videolan.resources.VLCInstance
import org.videolan.tools.CloseableUtils
import org.videolan.tools.runBackground
import org.videolan.tools.runOnMainThread

Loading…
Cancel
Save