From 600c3ace69aaf1571b1c71694735fc72570c061f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Geoffrey=20M=C3=A9tais?= Date: Mon, 29 Oct 2018 17:26:04 +0100 Subject: [PATCH] Upgrade Kotlin to v1.3 --- build.gradle | 4 +-- .../java/org/videolan/tools/IOScopedObject.kt | 6 ++--- .../org/videolan/tools/KotlinExtensions.kt | 11 ++++---- vlc-android/build.gradle | 2 -- .../org/videolan/vlc/MediaParsingService.kt | 6 ++--- .../org/videolan/vlc/MediaSessionCallback.kt | 11 ++++---- .../src/org/videolan/vlc/PlaybackService.kt | 6 ++--- .../videolan/vlc/PreviewVideoInputService.kt | 7 +++--- .../videolan/vlc/RecommendationsService.kt | 3 +-- .../src/org/videolan/vlc/RendererDelegate.kt | 6 ++--- .../org/videolan/vlc/database/Migrations.kt | 7 +++--- .../src/org/videolan/vlc/gui/AboutFragment.kt | 13 +++------- .../org/videolan/vlc/gui/DiffUtilAdapter.kt | 12 ++++----- .../org/videolan/vlc/gui/audio/AudioPlayer.kt | 6 ++--- .../vlc/gui/browser/BaseBrowserFragment.kt | 19 ++++++-------- .../vlc/gui/browser/FilePickerFragment.kt | 6 ++--- .../vlc/gui/browser/StorageBrowserAdapter.kt | 6 ++--- .../vlc/gui/browser/StorageBrowserFragment.kt | 25 ++++++++----------- .../videolan/vlc/gui/dialogs/ContextSheet.kt | 2 +- .../SubtitleDownloaderDialogFragment.kt | 4 +-- .../vlc/gui/dialogs/SubtitlesAdapter.kt | 2 +- .../videolan/vlc/gui/helpers/ImageLoader.kt | 6 ++--- .../gui/helpers/hf/BaseHeadlessFragment.kt | 6 ++--- .../helpers/hf/StoragePermissionsDelegate.kt | 2 +- .../gui/helpers/hf/WriteExternalDelegate.kt | 2 +- .../videolan/vlc/gui/network/MRLAdapter.kt | 2 +- .../vlc/gui/network/MRLPanelFragment.kt | 2 +- .../org/videolan/vlc/gui/tv/MainTvFragment.kt | 2 +- .../org/videolan/vlc/gui/tv/SearchFragment.kt | 2 +- .../src/org/videolan/vlc/gui/tv/TvUtil.kt | 6 ++--- .../vlc/gui/wizard/MLWizardActivity.kt | 4 +-- .../src/org/videolan/vlc/media/MediaUtils.kt | 6 ++--- .../videolan/vlc/media/PlayerController.kt | 6 ++--- .../org/videolan/vlc/media/PlaylistManager.kt | 8 +++--- .../videolan/vlc/providers/BrowserProvider.kt | 20 +++++++-------- .../vlc/providers/FileBrowserProvider.kt | 8 +++--- .../videolan/vlc/providers/NetworkProvider.kt | 2 +- .../vlc/repository/BrowserFavRepository.kt | 5 ++-- .../vlc/repository/DirectoryRepository.kt | 6 ++--- .../vlc/repository/ExternalSubRepository.kt | 2 +- .../vlc/repository/OpenSubtitleRepository.kt | 4 ++- .../vlc/repository/SlaveRepository.kt | 2 +- .../org/videolan/vlc/util/FilterDelegate.kt | 4 +-- .../src/org/videolan/vlc/util/Kextensions.kt | 9 ++++--- .../src/org/videolan/vlc/util/TvChannels.kt | 2 +- .../src/org/videolan/vlc/util/Workers.kt | 2 +- .../org/videolan/vlc/viewmodels/BaseModel.kt | 12 ++++----- .../videolan/vlc/viewmodels/HistoryModel.kt | 4 +-- .../vlc/viewmodels/MedialibraryModel.kt | 2 +- .../videolan/vlc/viewmodels/PlaylistModel.kt | 2 +- .../videolan/vlc/viewmodels/ScopedModel.kt | 6 ++--- .../videolan/vlc/viewmodels/StreamsModel.kt | 7 +++--- .../videolan/vlc/viewmodels/SubtitlesModel.kt | 2 +- .../videolan/vlc/viewmodels/VideosModel.kt | 9 +++---- .../vlc/viewmodels/audio/AlbumModel.kt | 5 ++-- .../vlc/viewmodels/audio/ArtistModel.kt | 5 ++-- .../vlc/viewmodels/audio/GenresModel.kt | 5 ++-- .../vlc/viewmodels/audio/PlaylistsModel.kt | 5 ++-- .../vlc/viewmodels/audio/TracksModel.kt | 5 ++-- .../vlc/viewmodels/browser/BrowserModel.kt | 10 ++++---- .../vlc/viewmodels/paged/MLPagedModel.kt | 2 +- .../vlc/viewmodels/paged/PagedTracksModel.kt | 7 +++--- 62 files changed, 171 insertions(+), 201 deletions(-) diff --git a/build.gradle b/build.gradle index 6acd647c3..0812888d0 100644 --- a/build.gradle +++ b/build.gradle @@ -1,8 +1,8 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.android_plugin_version = '3.2.1' - ext.kotlin_version = '1.2.71' - ext.kotlinx_version = '0.30.2' + ext.kotlin_version = '1.3.0' + ext.kotlinx_version = '1.0.0' repositories { flatDir dirs: "gradle/plugins" google() diff --git a/tools/src/main/java/org/videolan/tools/IOScopedObject.kt b/tools/src/main/java/org/videolan/tools/IOScopedObject.kt index 9b0ff97f0..ce84a1e2e 100644 --- a/tools/src/main/java/org/videolan/tools/IOScopedObject.kt +++ b/tools/src/main/java/org/videolan/tools/IOScopedObject.kt @@ -1,9 +1,7 @@ package org.videolan.tools -import kotlinx.coroutines.experimental.CoroutineScope -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.IO - +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers open class IOScopedObject : CoroutineScope { override val coroutineContext = Dispatchers.IO diff --git a/tools/src/main/java/org/videolan/tools/KotlinExtensions.kt b/tools/src/main/java/org/videolan/tools/KotlinExtensions.kt index aa1cdf4d7..be37bae29 100644 --- a/tools/src/main/java/org/videolan/tools/KotlinExtensions.kt +++ b/tools/src/main/java/org/videolan/tools/KotlinExtensions.kt @@ -3,10 +3,10 @@ package org.videolan.tools import androidx.lifecycle.GenericLifecycleObserver import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleOwner -import kotlinx.coroutines.experimental.CoroutineScope -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.Job -import kotlinx.coroutines.experimental.android.Main +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.ExperimentalCoroutinesApi +import kotlinx.coroutines.Job fun LifecycleOwner.createJob(cancelEvent: Lifecycle.Event = Lifecycle.Event.ON_DESTROY): Job = Job().also { job -> lifecycle.addObserver(object : GenericLifecycleObserver { @@ -20,10 +20,11 @@ fun LifecycleOwner.createJob(cancelEvent: Lifecycle.Event = Lifecycle.Event.ON_D } private val lifecycleCoroutineScopes = mutableMapOf() +@ExperimentalCoroutinesApi val LifecycleOwner.coroutineScope: CoroutineScope get() = lifecycleCoroutineScopes[lifecycle] ?: createJob().let { val newScope = CoroutineScope(it + Dispatchers.Main.immediate) lifecycleCoroutineScopes[lifecycle] = newScope - it.invokeOnCompletion { _ -> lifecycleCoroutineScopes -= lifecycle } + it.invokeOnCompletion { lifecycleCoroutineScopes -= lifecycle } newScope } \ No newline at end of file diff --git a/vlc-android/build.gradle b/vlc-android/build.gradle index 875434a25..a9717bd27 100644 --- a/vlc-android/build.gradle +++ b/vlc-android/build.gradle @@ -193,8 +193,6 @@ android { } } -kotlin.experimental.coroutines = "enable" - task generateSources (type: Jar) { classifier = 'sources' from android.sourceSets.main.java.srcDirs diff --git a/vlc-android/src/org/videolan/vlc/MediaParsingService.kt b/vlc-android/src/org/videolan/vlc/MediaParsingService.kt index e18b3ddab..fc3170412 100644 --- a/vlc-android/src/org/videolan/vlc/MediaParsingService.kt +++ b/vlc-android/src/org/videolan/vlc/MediaParsingService.kt @@ -38,9 +38,9 @@ import androidx.core.content.ContextCompat import androidx.localbroadcastmanager.content.LocalBroadcastManager import android.text.TextUtils import android.util.Log -import kotlinx.coroutines.experimental.* -import kotlinx.coroutines.experimental.channels.Channel -import kotlinx.coroutines.experimental.channels.actor +import kotlinx.coroutines.* +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.actor import org.videolan.libvlc.util.AndroidUtil import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.interfaces.DevicesDiscoveryCb diff --git a/vlc-android/src/org/videolan/vlc/MediaSessionCallback.kt b/vlc-android/src/org/videolan/vlc/MediaSessionCallback.kt index ffb5c5cec..623524cc7 100644 --- a/vlc-android/src/org/videolan/vlc/MediaSessionCallback.kt +++ b/vlc-android/src/org/videolan/vlc/MediaSessionCallback.kt @@ -5,9 +5,11 @@ import android.net.Uri import android.os.Bundle import android.support.v4.media.session.MediaSessionCompat import android.support.v4.media.session.PlaybackStateCompat -import android.util.Log import android.view.KeyEvent -import kotlinx.coroutines.experimental.* +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.Runnable +import kotlinx.coroutines.launch import org.videolan.medialibrary.Tools import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper @@ -25,11 +27,10 @@ internal class MediaSessionCallback(private val playbackService: PlaybackService } override fun onMediaButtonEvent(mediaButtonEvent: Intent): Boolean { - val keyEvent by lazy(LazyThreadSafetyMode.NONE) { mediaButtonEvent.getParcelableExtra(Intent.EXTRA_KEY_EVENT) as KeyEvent? } - if (!playbackService.hasMedia() && keyEvent != null + val keyEvent = mediaButtonEvent.getParcelableExtra(Intent.EXTRA_KEY_EVENT) as KeyEvent? ?: return false + if (!playbackService.hasMedia() && (keyEvent.keyCode == KeyEvent.KEYCODE_MEDIA_PLAY || keyEvent.keyCode == KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE)) { return if (keyEvent.action == KeyEvent.ACTION_DOWN) { - Log.d(TAG, KeyEvent.keyCodeToString(keyEvent.keyCode)) PlaybackService.loadLastAudio(playbackService) true } else false diff --git a/vlc-android/src/org/videolan/vlc/PlaybackService.kt b/vlc-android/src/org/videolan/vlc/PlaybackService.kt index 9e58adf5c..843f729ee 100644 --- a/vlc-android/src/org/videolan/vlc/PlaybackService.kt +++ b/vlc-android/src/org/videolan/vlc/PlaybackService.kt @@ -41,9 +41,9 @@ import androidx.annotation.MainThread import androidx.core.app.NotificationManagerCompat import androidx.core.app.ServiceCompat import androidx.core.content.ContextCompat -import kotlinx.coroutines.experimental.* -import kotlinx.coroutines.experimental.channels.Channel -import kotlinx.coroutines.experimental.channels.actor +import kotlinx.coroutines.* +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.actor import org.videolan.libvlc.IVLCVout import org.videolan.libvlc.Media import org.videolan.libvlc.MediaPlayer diff --git a/vlc-android/src/org/videolan/vlc/PreviewVideoInputService.kt b/vlc-android/src/org/videolan/vlc/PreviewVideoInputService.kt index 3bc9920e6..7597ac23f 100644 --- a/vlc-android/src/org/videolan/vlc/PreviewVideoInputService.kt +++ b/vlc-android/src/org/videolan/vlc/PreviewVideoInputService.kt @@ -10,10 +10,9 @@ import android.net.Uri import android.os.Build import android.util.Log import android.view.Surface -import kotlinx.coroutines.experimental.CoroutineScope -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.android.Main -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import org.videolan.libvlc.Media import org.videolan.libvlc.MediaPlayer import org.videolan.vlc.media.MediaPlayerEventListener diff --git a/vlc-android/src/org/videolan/vlc/RecommendationsService.kt b/vlc-android/src/org/videolan/vlc/RecommendationsService.kt index c88e4679f..0e48beb59 100644 --- a/vlc-android/src/org/videolan/vlc/RecommendationsService.kt +++ b/vlc-android/src/org/videolan/vlc/RecommendationsService.kt @@ -31,8 +31,7 @@ import android.os.Build import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import androidx.core.content.ContextCompat -import kotlinx.coroutines.experimental.* -import kotlinx.coroutines.experimental.android.Main +import kotlinx.coroutines.* import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.gui.helpers.BitmapUtil import org.videolan.vlc.gui.video.VideoPlayerActivity diff --git a/vlc-android/src/org/videolan/vlc/RendererDelegate.kt b/vlc-android/src/org/videolan/vlc/RendererDelegate.kt index 0b005a463..ca3ca5ef9 100644 --- a/vlc-android/src/org/videolan/vlc/RendererDelegate.kt +++ b/vlc-android/src/org/videolan/vlc/RendererDelegate.kt @@ -21,9 +21,9 @@ package org.videolan.vlc import androidx.lifecycle.LiveData import androidx.lifecycle.MutableLiveData -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.libvlc.RendererDiscoverer import org.videolan.libvlc.RendererItem import org.videolan.vlc.util.AppScope diff --git a/vlc-android/src/org/videolan/vlc/database/Migrations.kt b/vlc-android/src/org/videolan/vlc/database/Migrations.kt index 4f9d668f5..3843eafdb 100644 --- a/vlc-android/src/org/videolan/vlc/database/Migrations.kt +++ b/vlc-android/src/org/videolan/vlc/database/Migrations.kt @@ -23,10 +23,9 @@ package org.videolan.vlc.database import androidx.sqlite.db.SupportSQLiteDatabase import androidx.room.migration.Migration import android.content.Context -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.GlobalScope -import kotlinx.coroutines.experimental.IO -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch import org.videolan.vlc.VLCApplication import org.videolan.vlc.repository.BrowserFavRepository import org.videolan.vlc.util.AndroidDevices diff --git a/vlc-android/src/org/videolan/vlc/gui/AboutFragment.kt b/vlc-android/src/org/videolan/vlc/gui/AboutFragment.kt index 0178f008f..61b84ca42 100644 --- a/vlc-android/src/org/videolan/vlc/gui/AboutFragment.kt +++ b/vlc-android/src/org/videolan/vlc/gui/AboutFragment.kt @@ -21,20 +21,15 @@ package org.videolan.vlc.gui import android.os.Bundle -import com.google.android.material.tabs.TabLayout -import androidx.fragment.app.Fragment -import androidx.viewpager.widget.ViewPager -import androidx.appcompat.app.AppCompatActivity import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.webkit.WebView import android.widget.ScrollView -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.IO -import kotlinx.coroutines.experimental.android.UI -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import androidx.appcompat.app.AppCompatActivity +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.libvlc.util.AndroidUtil import org.videolan.tools.coroutineScope import org.videolan.vlc.BuildConfig diff --git a/vlc-android/src/org/videolan/vlc/gui/DiffUtilAdapter.kt b/vlc-android/src/org/videolan/vlc/gui/DiffUtilAdapter.kt index a81cf15b1..6d08fc323 100644 --- a/vlc-android/src/org/videolan/vlc/gui/DiffUtilAdapter.kt +++ b/vlc-android/src/org/videolan/vlc/gui/DiffUtilAdapter.kt @@ -2,13 +2,11 @@ package org.videolan.vlc.gui import androidx.annotation.MainThread import androidx.recyclerview.widget.DiffUtil -import androidx.recyclerview.widget.RecyclerView -import kotlinx.coroutines.experimental.CoroutineScope -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.android.Main -import kotlinx.coroutines.experimental.channels.Channel -import kotlinx.coroutines.experimental.channels.actor -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.actor +import kotlinx.coroutines.withContext abstract class DiffUtilAdapter : androidx.recyclerview.widget.RecyclerView.Adapter(), CoroutineScope { override val coroutineContext = Dispatchers.Main.immediate diff --git a/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt b/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt index 9f7ad0cd0..2b1529abd 100644 --- a/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt +++ b/vlc-android/src/org/videolan/vlc/gui/audio/AudioPlayer.kt @@ -49,9 +49,9 @@ import android.view.ViewGroup import android.view.inputmethod.InputMethodManager import android.widget.SeekBar import android.widget.SeekBar.OnSeekBarChangeListener -import kotlinx.coroutines.experimental.* -import kotlinx.coroutines.experimental.channels.Channel -import kotlinx.coroutines.experimental.channels.actor +import kotlinx.coroutines.* +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.actor import org.videolan.medialibrary.Tools import org.videolan.medialibrary.media.MediaWrapper import org.videolan.tools.coroutineScope diff --git a/vlc-android/src/org/videolan/vlc/gui/browser/BaseBrowserFragment.kt b/vlc-android/src/org/videolan/vlc/gui/browser/BaseBrowserFragment.kt index 8440e43e1..97445428f 100644 --- a/vlc-android/src/org/videolan/vlc/gui/browser/BaseBrowserFragment.kt +++ b/vlc-android/src/org/videolan/vlc/gui/browser/BaseBrowserFragment.kt @@ -22,23 +22,20 @@ */ package org.videolan.vlc.gui.browser -import androidx.lifecycle.Observer import android.content.Intent import android.net.Uri import android.os.Bundle import android.os.Message -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentManager -import androidx.core.content.ContextCompat -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout -import androidx.appcompat.view.ActionMode -import androidx.recyclerview.widget.DividerItemDecoration -import androidx.recyclerview.widget.LinearLayoutManager -import androidx.recyclerview.widget.RecyclerView import android.text.TextUtils import android.view.* -import kotlinx.coroutines.experimental.* -import kotlinx.coroutines.experimental.android.UI +import androidx.appcompat.view.ActionMode +import androidx.core.content.ContextCompat +import androidx.lifecycle.Observer +import androidx.recyclerview.widget.LinearLayoutManager +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.Runnable +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper import org.videolan.tools.coroutineScope diff --git a/vlc-android/src/org/videolan/vlc/gui/browser/FilePickerFragment.kt b/vlc-android/src/org/videolan/vlc/gui/browser/FilePickerFragment.kt index 733a0285b..9306d3384 100644 --- a/vlc-android/src/org/videolan/vlc/gui/browser/FilePickerFragment.kt +++ b/vlc-android/src/org/videolan/vlc/gui/browser/FilePickerFragment.kt @@ -28,12 +28,10 @@ import androidx.lifecycle.ViewModelProviders import android.content.Intent import android.net.Uri import android.os.Bundle -import androidx.fragment.app.Fragment import android.text.TextUtils import android.view.View -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.IO -import kotlinx.coroutines.experimental.runBlocking +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.runBlocking import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.R diff --git a/vlc-android/src/org/videolan/vlc/gui/browser/StorageBrowserAdapter.kt b/vlc-android/src/org/videolan/vlc/gui/browser/StorageBrowserAdapter.kt index c799505b4..be71a121f 100644 --- a/vlc-android/src/org/videolan/vlc/gui/browser/StorageBrowserAdapter.kt +++ b/vlc-android/src/org/videolan/vlc/gui/browser/StorageBrowserAdapter.kt @@ -25,12 +25,10 @@ package org.videolan.vlc.gui.browser import android.content.Context import android.net.Uri -import android.preference.PreferenceManager import android.view.View import android.widget.CheckBox -import kotlinx.coroutines.experimental.Job -import kotlinx.coroutines.experimental.android.UI -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper diff --git a/vlc-android/src/org/videolan/vlc/gui/browser/StorageBrowserFragment.kt b/vlc-android/src/org/videolan/vlc/gui/browser/StorageBrowserFragment.kt index 7439dd5e3..5cc4c29d1 100644 --- a/vlc-android/src/org/videolan/vlc/gui/browser/StorageBrowserFragment.kt +++ b/vlc-android/src/org/videolan/vlc/gui/browser/StorageBrowserFragment.kt @@ -24,25 +24,20 @@ package org.videolan.vlc.gui.browser import android.annotation.TargetApi -import androidx.lifecycle.ViewModelProviders import android.content.DialogInterface -import androidx.databinding.DataBindingUtil import android.os.Build import android.os.Bundle -import com.google.android.material.snackbar.Snackbar -import androidx.fragment.app.Fragment -import androidx.collection.SimpleArrayMap -import androidx.appcompat.app.AlertDialog -import androidx.appcompat.widget.AppCompatEditText import android.text.InputType import android.view.Menu import android.view.MenuItem import android.view.View import android.widget.CheckBox -import kotlinx.coroutines.experimental.CoroutineExceptionHandler -import kotlinx.coroutines.experimental.android.UI -import kotlinx.coroutines.experimental.launch - +import androidx.appcompat.app.AlertDialog +import androidx.appcompat.widget.AppCompatEditText +import androidx.databinding.DataBindingUtil +import androidx.lifecycle.ViewModelProviders +import kotlinx.coroutines.CoroutineExceptionHandler +import kotlinx.coroutines.launch import org.videolan.libvlc.util.AndroidUtil import org.videolan.medialibrary.interfaces.EntryPointsEventsCb import org.videolan.medialibrary.media.MediaLibraryItem @@ -53,13 +48,13 @@ import org.videolan.vlc.R import org.videolan.vlc.VLCApplication import org.videolan.vlc.databinding.BrowserItemBinding import org.videolan.vlc.gui.AudioPlayerContainerActivity -import org.videolan.vlc.gui.dialogs.* +import org.videolan.vlc.gui.dialogs.showContext import org.videolan.vlc.gui.helpers.ThreeStatesCheckbox import org.videolan.vlc.gui.helpers.UiTools -import org.videolan.vlc.util.* +import org.videolan.vlc.util.AndroidDevices +import org.videolan.vlc.util.CTX_CUSTOM_REMOVE import org.videolan.vlc.viewmodels.browser.BrowserModel -import org.videolan.vlc.viewmodels.browser.* - +import org.videolan.vlc.viewmodels.browser.TYPE_STORAGE import java.io.File const val KEY_IN_MEDIALIB = "key_in_medialib" diff --git a/vlc-android/src/org/videolan/vlc/gui/dialogs/ContextSheet.kt b/vlc-android/src/org/videolan/vlc/gui/dialogs/ContextSheet.kt index 508e41c74..ae139b074 100644 --- a/vlc-android/src/org/videolan/vlc/gui/dialogs/ContextSheet.kt +++ b/vlc-android/src/org/videolan/vlc/gui/dialogs/ContextSheet.kt @@ -29,7 +29,7 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.launch import org.videolan.tools.coroutineScope import org.videolan.vlc.R import org.videolan.vlc.databinding.ContextItemBinding diff --git a/vlc-android/src/org/videolan/vlc/gui/dialogs/SubtitleDownloaderDialogFragment.kt b/vlc-android/src/org/videolan/vlc/gui/dialogs/SubtitleDownloaderDialogFragment.kt index a14df947e..da8bc53eb 100644 --- a/vlc-android/src/org/videolan/vlc/gui/dialogs/SubtitleDownloaderDialogFragment.kt +++ b/vlc-android/src/org/videolan/vlc/gui/dialogs/SubtitleDownloaderDialogFragment.kt @@ -10,8 +10,8 @@ import android.view.ViewGroup import android.widget.Toast import androidx.annotation.StringRes import androidx.lifecycle.ViewModelProviders -import kotlinx.coroutines.experimental.channels.actor -import kotlinx.coroutines.experimental.isActive +import kotlinx.coroutines.channels.actor +import kotlinx.coroutines.isActive import org.videolan.tools.coroutineScope import org.videolan.vlc.R import org.videolan.vlc.databinding.SubtitleDownloaderDialogBinding diff --git a/vlc-android/src/org/videolan/vlc/gui/dialogs/SubtitlesAdapter.kt b/vlc-android/src/org/videolan/vlc/gui/dialogs/SubtitlesAdapter.kt index d9a1f234c..1c68e4a19 100644 --- a/vlc-android/src/org/videolan/vlc/gui/dialogs/SubtitlesAdapter.kt +++ b/vlc-android/src/org/videolan/vlc/gui/dialogs/SubtitlesAdapter.kt @@ -3,7 +3,7 @@ package org.videolan.vlc.gui.dialogs import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import kotlinx.coroutines.experimental.channels.SendChannel +import kotlinx.coroutines.channels.SendChannel import org.videolan.vlc.databinding.SubtitleDownloadItemBinding internal class SubtitlesAdapter(private val eventActor: SendChannel) : androidx.recyclerview.widget.RecyclerView.Adapter() { diff --git a/vlc-android/src/org/videolan/vlc/gui/helpers/ImageLoader.kt b/vlc-android/src/org/videolan/vlc/gui/helpers/ImageLoader.kt index 917860bb0..da5a9d68b 100644 --- a/vlc-android/src/org/videolan/vlc/gui/helpers/ImageLoader.kt +++ b/vlc-android/src/org/videolan/vlc/gui/helpers/ImageLoader.kt @@ -13,9 +13,9 @@ import androidx.core.view.ViewCompat import android.view.View import android.widget.ImageView import android.widget.TextView -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.BR diff --git a/vlc-android/src/org/videolan/vlc/gui/helpers/hf/BaseHeadlessFragment.kt b/vlc-android/src/org/videolan/vlc/gui/helpers/hf/BaseHeadlessFragment.kt index 9ab70655f..394341a82 100644 --- a/vlc-android/src/org/videolan/vlc/gui/helpers/hf/BaseHeadlessFragment.kt +++ b/vlc-android/src/org/videolan/vlc/gui/helpers/hf/BaseHeadlessFragment.kt @@ -27,9 +27,9 @@ import android.content.Context import android.os.Bundle import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity -import kotlinx.coroutines.experimental.channels.Channel -import kotlinx.coroutines.experimental.channels.SendChannel -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.SendChannel +import kotlinx.coroutines.launch import org.videolan.vlc.util.AppScope open class diff --git a/vlc-android/src/org/videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt b/vlc-android/src/org/videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt index 007b404c8..c31371476 100644 --- a/vlc-android/src/org/videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt +++ b/vlc-android/src/org/videolan/vlc/gui/helpers/hf/StoragePermissionsDelegate.kt @@ -30,7 +30,7 @@ import android.os.Build import android.os.Bundle import androidx.fragment.app.Fragment import androidx.fragment.app.FragmentActivity -import kotlinx.coroutines.experimental.channels.Channel +import kotlinx.coroutines.channels.Channel import org.videolan.libvlc.util.AndroidUtil import org.videolan.vlc.startMedialibrary import org.videolan.vlc.util.EXTRA_FIRST_RUN diff --git a/vlc-android/src/org/videolan/vlc/gui/helpers/hf/WriteExternalDelegate.kt b/vlc-android/src/org/videolan/vlc/gui/helpers/hf/WriteExternalDelegate.kt index 3fc263e11..002ae49c4 100644 --- a/vlc-android/src/org/videolan/vlc/gui/helpers/hf/WriteExternalDelegate.kt +++ b/vlc-android/src/org/videolan/vlc/gui/helpers/hf/WriteExternalDelegate.kt @@ -12,7 +12,7 @@ import androidx.documentfile.provider.DocumentFile import androidx.appcompat.app.AlertDialog import androidx.preference.PreferenceManager import android.text.TextUtils -import kotlinx.coroutines.experimental.channels.Channel +import kotlinx.coroutines.channels.Channel import org.videolan.libvlc.util.AndroidUtil import org.videolan.vlc.R import org.videolan.vlc.VLCApplication diff --git a/vlc-android/src/org/videolan/vlc/gui/network/MRLAdapter.kt b/vlc-android/src/org/videolan/vlc/gui/network/MRLAdapter.kt index efade03e8..69aa2877e 100644 --- a/vlc-android/src/org/videolan/vlc/gui/network/MRLAdapter.kt +++ b/vlc-android/src/org/videolan/vlc/gui/network/MRLAdapter.kt @@ -26,7 +26,7 @@ import androidx.recyclerview.widget.RecyclerView import android.view.LayoutInflater import android.view.View import android.view.ViewGroup -import kotlinx.coroutines.experimental.channels.SendChannel +import kotlinx.coroutines.channels.SendChannel import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.R import org.videolan.vlc.databinding.MrlItemBinding diff --git a/vlc-android/src/org/videolan/vlc/gui/network/MRLPanelFragment.kt b/vlc-android/src/org/videolan/vlc/gui/network/MRLPanelFragment.kt index 5aaf1024d..44ad7aece 100644 --- a/vlc-android/src/org/videolan/vlc/gui/network/MRLPanelFragment.kt +++ b/vlc-android/src/org/videolan/vlc/gui/network/MRLPanelFragment.kt @@ -37,7 +37,7 @@ import android.view.ViewGroup import android.view.inputmethod.EditorInfo import android.widget.EditText import android.widget.TextView -import kotlinx.coroutines.experimental.channels.actor +import kotlinx.coroutines.channels.actor import org.videolan.medialibrary.media.MediaWrapper import org.videolan.tools.coroutineScope import org.videolan.vlc.R diff --git a/vlc-android/src/org/videolan/vlc/gui/tv/MainTvFragment.kt b/vlc-android/src/org/videolan/vlc/gui/tv/MainTvFragment.kt index 07aa87560..c4d6fd309 100644 --- a/vlc-android/src/org/videolan/vlc/gui/tv/MainTvFragment.kt +++ b/vlc-android/src/org/videolan/vlc/gui/tv/MainTvFragment.kt @@ -34,7 +34,7 @@ import androidx.leanback.app.BrowseSupportFragment import androidx.leanback.widget.* import androidx.core.content.ContextCompat import android.view.View -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.launch import org.videolan.libvlc.util.AndroidUtil import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.DummyItem diff --git a/vlc-android/src/org/videolan/vlc/gui/tv/SearchFragment.kt b/vlc-android/src/org/videolan/vlc/gui/tv/SearchFragment.kt index 2dd8afb86..1af36e551 100644 --- a/vlc-android/src/org/videolan/vlc/gui/tv/SearchFragment.kt +++ b/vlc-android/src/org/videolan/vlc/gui/tv/SearchFragment.kt @@ -29,7 +29,7 @@ import android.os.Bundle import androidx.leanback.app.SearchSupportFragment import androidx.leanback.widget.* import android.text.TextUtils -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.launch import org.videolan.medialibrary.Tools import org.videolan.medialibrary.media.* import org.videolan.tools.coroutineScope diff --git a/vlc-android/src/org/videolan/vlc/gui/tv/TvUtil.kt b/vlc-android/src/org/videolan/vlc/gui/tv/TvUtil.kt index f2e71dd19..56c5ffb98 100644 --- a/vlc-android/src/org/videolan/vlc/gui/tv/TvUtil.kt +++ b/vlc-android/src/org/videolan/vlc/gui/tv/TvUtil.kt @@ -37,9 +37,9 @@ import androidx.fragment.app.FragmentActivity import androidx.core.content.ContextCompat import android.text.TextUtils import android.view.View -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.medialibrary.media.DummyItem import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper diff --git a/vlc-android/src/org/videolan/vlc/gui/wizard/MLWizardActivity.kt b/vlc-android/src/org/videolan/vlc/gui/wizard/MLWizardActivity.kt index bba56c51a..561a819d3 100644 --- a/vlc-android/src/org/videolan/vlc/gui/wizard/MLWizardActivity.kt +++ b/vlc-android/src/org/videolan/vlc/gui/wizard/MLWizardActivity.kt @@ -29,8 +29,8 @@ import androidx.databinding.DataBindingUtil import android.os.Bundle import androidx.appcompat.app.AppCompatActivity import android.view.View -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import org.videolan.tools.coroutineScope import org.videolan.vlc.R import org.videolan.vlc.databinding.MlWizardActivityBinding diff --git a/vlc-android/src/org/videolan/vlc/media/MediaUtils.kt b/vlc-android/src/org/videolan/vlc/media/MediaUtils.kt index bf4996e96..658cbf087 100644 --- a/vlc-android/src/org/videolan/vlc/media/MediaUtils.kt +++ b/vlc-android/src/org/videolan/vlc/media/MediaUtils.kt @@ -13,9 +13,9 @@ import android.provider.OpenableColumns import android.text.TextUtils import androidx.appcompat.app.AppCompatActivity import androidx.core.content.ContextCompat -import kotlinx.coroutines.experimental.* -import kotlinx.coroutines.experimental.channels.Channel -import kotlinx.coroutines.experimental.channels.actor +import kotlinx.coroutines.* +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.actor import org.videolan.libvlc.util.AndroidUtil import org.videolan.medialibrary.Tools import org.videolan.medialibrary.media.Album diff --git a/vlc-android/src/org/videolan/vlc/media/PlayerController.kt b/vlc-android/src/org/videolan/vlc/media/PlayerController.kt index 9841c127a..49888f115 100644 --- a/vlc-android/src/org/videolan/vlc/media/PlayerController.kt +++ b/vlc-android/src/org/videolan/vlc/media/PlayerController.kt @@ -6,9 +6,9 @@ import android.support.v4.media.session.PlaybackStateCompat import android.widget.Toast import androidx.annotation.MainThread import androidx.lifecycle.MutableLiveData -import kotlinx.coroutines.experimental.* -import kotlinx.coroutines.experimental.channels.Channel -import kotlinx.coroutines.experimental.channels.actor +import kotlinx.coroutines.* +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.actor import org.videolan.libvlc.* import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.BuildConfig diff --git a/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt b/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt index 1f1ffdf7a..e7f9a5b1f 100644 --- a/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt +++ b/vlc-android/src/org/videolan/vlc/media/PlaylistManager.kt @@ -8,10 +8,10 @@ import android.util.Log import android.widget.Toast import androidx.annotation.MainThread import androidx.lifecycle.MutableLiveData -import kotlinx.coroutines.experimental.CoroutineScope -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.libvlc.Media import org.videolan.libvlc.MediaPlayer import org.videolan.libvlc.RendererItem diff --git a/vlc-android/src/org/videolan/vlc/providers/BrowserProvider.kt b/vlc-android/src/org/videolan/vlc/providers/BrowserProvider.kt index 5fd521c9c..4fcb04a79 100644 --- a/vlc-android/src/org/videolan/vlc/providers/BrowserProvider.kt +++ b/vlc-android/src/org/videolan/vlc/providers/BrowserProvider.kt @@ -20,19 +20,16 @@ package org.videolan.vlc.providers -import androidx.lifecycle.MutableLiveData import android.content.Context import android.net.Uri import android.os.Handler import android.os.HandlerThread import android.os.Process -import androidx.collection.SimpleArrayMap -import kotlinx.coroutines.experimental.* -import kotlinx.coroutines.experimental.android.Main -import kotlinx.coroutines.experimental.channels.Channel -import kotlinx.coroutines.experimental.channels.actor -import kotlinx.coroutines.experimental.channels.mapNotNullTo -import kotlinx.coroutines.experimental.channels.mapTo +import androidx.lifecycle.MutableLiveData +import kotlinx.coroutines.* +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.actor +import kotlinx.coroutines.channels.mapNotNullTo import org.videolan.libvlc.Media import org.videolan.libvlc.util.MediaBrowser import org.videolan.libvlc.util.MediaBrowser.EventListener @@ -41,7 +38,10 @@ import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper import org.videolan.medialibrary.media.Storage import org.videolan.vlc.R -import org.videolan.vlc.util.* +import org.videolan.vlc.util.LiveDataset +import org.videolan.vlc.util.Settings +import org.videolan.vlc.util.VLCInstance +import org.videolan.vlc.util.isBrowserMedia import java.util.* const val TAG = "VLC/BrowserProvider" @@ -84,7 +84,7 @@ abstract class BrowserProvider(val context: Context, val dataset: LiveDataset launch(Dispatchers.Main) { - dataset.value = list + dataset.value = list ?: return@launch prefetchLists.remove(url) parseSubDirectories() } diff --git a/vlc-android/src/org/videolan/vlc/providers/FileBrowserProvider.kt b/vlc-android/src/org/videolan/vlc/providers/FileBrowserProvider.kt index 0dd4bdd4e..7ceee8279 100644 --- a/vlc-android/src/org/videolan/vlc/providers/FileBrowserProvider.kt +++ b/vlc-android/src/org/videolan/vlc/providers/FileBrowserProvider.kt @@ -25,10 +25,10 @@ import android.content.Context import android.hardware.usb.UsbDevice import android.net.Uri import android.text.TextUtils -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.cancelAndJoin -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.cancelAndJoin +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.libvlc.util.AndroidUtil import org.videolan.medialibrary.media.DummyItem import org.videolan.medialibrary.media.MediaLibraryItem diff --git a/vlc-android/src/org/videolan/vlc/providers/NetworkProvider.kt b/vlc-android/src/org/videolan/vlc/providers/NetworkProvider.kt index cc659d4e9..a6c0f1573 100644 --- a/vlc-android/src/org/videolan/vlc/providers/NetworkProvider.kt +++ b/vlc-android/src/org/videolan/vlc/providers/NetworkProvider.kt @@ -22,7 +22,7 @@ package org.videolan.vlc.providers import androidx.lifecycle.Observer import android.content.Context -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.launch import org.videolan.medialibrary.media.DummyItem import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper diff --git a/vlc-android/src/org/videolan/vlc/repository/BrowserFavRepository.kt b/vlc-android/src/org/videolan/vlc/repository/BrowserFavRepository.kt index 97f57a97c..6ec67797b 100644 --- a/vlc-android/src/org/videolan/vlc/repository/BrowserFavRepository.kt +++ b/vlc-android/src/org/videolan/vlc/repository/BrowserFavRepository.kt @@ -24,9 +24,8 @@ import androidx.lifecycle.MediatorLiveData import android.content.Context import android.net.Uri import androidx.annotation.WorkerThread -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.android.Main -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import org.videolan.medialibrary.media.MediaWrapper import org.videolan.tools.IOScopedObject import org.videolan.tools.SingletonHolder diff --git a/vlc-android/src/org/videolan/vlc/repository/DirectoryRepository.kt b/vlc-android/src/org/videolan/vlc/repository/DirectoryRepository.kt index 25a4cd6c7..6a81a0c4c 100644 --- a/vlc-android/src/org/videolan/vlc/repository/DirectoryRepository.kt +++ b/vlc-android/src/org/videolan/vlc/repository/DirectoryRepository.kt @@ -2,9 +2,9 @@ package org.videolan.vlc.repository import android.content.Context import android.text.TextUtils -import kotlinx.coroutines.experimental.Job -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Job +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.libvlc.util.AndroidUtil import org.videolan.medialibrary.media.MediaWrapper import org.videolan.tools.IOScopedObject diff --git a/vlc-android/src/org/videolan/vlc/repository/ExternalSubRepository.kt b/vlc-android/src/org/videolan/vlc/repository/ExternalSubRepository.kt index a6e14d7d8..851032078 100644 --- a/vlc-android/src/org/videolan/vlc/repository/ExternalSubRepository.kt +++ b/vlc-android/src/org/videolan/vlc/repository/ExternalSubRepository.kt @@ -24,7 +24,7 @@ import androidx.lifecycle.LiveData import androidx.lifecycle.Transformations import android.content.Context import android.net.Uri -import kotlinx.coroutines.experimental.* +import kotlinx.coroutines.* import org.videolan.tools.SingletonHolder import org.videolan.vlc.database.models.ExternalSub import org.videolan.vlc.database.ExternalSubDao diff --git a/vlc-android/src/org/videolan/vlc/repository/OpenSubtitleRepository.kt b/vlc-android/src/org/videolan/vlc/repository/OpenSubtitleRepository.kt index 87c10bd6a..afec0922f 100644 --- a/vlc-android/src/org/videolan/vlc/repository/OpenSubtitleRepository.kt +++ b/vlc-android/src/org/videolan/vlc/repository/OpenSubtitleRepository.kt @@ -6,7 +6,9 @@ import org.videolan.vlc.api.OpenSubtitleClient import retrofit2.Call import retrofit2.Callback import retrofit2.Response -import kotlin.coroutines.experimental.suspendCoroutine +import kotlin.coroutines.suspendCoroutine +import kotlin.coroutines.resume +import kotlin.coroutines.resumeWithException class OpenSubtitleRepository(private val openSubtitleService: IOpenSubtitleService) { diff --git a/vlc-android/src/org/videolan/vlc/repository/SlaveRepository.kt b/vlc-android/src/org/videolan/vlc/repository/SlaveRepository.kt index 7685d226b..aadeb43e5 100644 --- a/vlc-android/src/org/videolan/vlc/repository/SlaveRepository.kt +++ b/vlc-android/src/org/videolan/vlc/repository/SlaveRepository.kt @@ -22,7 +22,7 @@ package org.videolan.vlc.repository import android.content.Context import android.net.Uri -import kotlinx.coroutines.experimental.* +import kotlinx.coroutines.* import org.videolan.libvlc.Media import org.videolan.medialibrary.media.MediaWrapper import org.videolan.tools.IOScopedObject diff --git a/vlc-android/src/org/videolan/vlc/util/FilterDelegate.kt b/vlc-android/src/org/videolan/vlc/util/FilterDelegate.kt index 84451694c..dffc628b1 100644 --- a/vlc-android/src/org/videolan/vlc/util/FilterDelegate.kt +++ b/vlc-android/src/org/videolan/vlc/util/FilterDelegate.kt @@ -1,8 +1,8 @@ package org.videolan.vlc.util import androidx.lifecycle.MutableLiveData -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.VLCApplication diff --git a/vlc-android/src/org/videolan/vlc/util/Kextensions.kt b/vlc-android/src/org/videolan/vlc/util/Kextensions.kt index f7f774ea3..14ba2c82f 100644 --- a/vlc-android/src/org/videolan/vlc/util/Kextensions.kt +++ b/vlc-android/src/org/videolan/vlc/util/Kextensions.kt @@ -5,9 +5,9 @@ import android.content.SharedPreferences import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProviders import androidx.preference.PreferenceManager -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.delay -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.delay +import kotlinx.coroutines.withContext import org.videolan.libvlc.Media import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.MediaWrapper @@ -18,7 +18,8 @@ import java.io.File import java.net.URI import java.net.URISyntaxException import java.util.* -import kotlin.coroutines.experimental.suspendCoroutine +import kotlin.coroutines.suspendCoroutine +import kotlin.coroutines.resume object Settings : SingletonHolder({ PreferenceManager.getDefaultSharedPreferences(it) }) diff --git a/vlc-android/src/org/videolan/vlc/util/TvChannels.kt b/vlc-android/src/org/videolan/vlc/util/TvChannels.kt index 2f0f36932..9696db031 100644 --- a/vlc-android/src/org/videolan/vlc/util/TvChannels.kt +++ b/vlc-android/src/org/videolan/vlc/util/TvChannels.kt @@ -30,7 +30,7 @@ import androidx.tvprovider.media.tv.TvContractCompat import androidx.tvprovider.media.tv.WatchNextProgram import android.text.TextUtils import android.util.Log -import kotlinx.coroutines.experimental.* +import kotlinx.coroutines.* import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.* diff --git a/vlc-android/src/org/videolan/vlc/util/Workers.kt b/vlc-android/src/org/videolan/vlc/util/Workers.kt index d2132a05b..e760b536a 100644 --- a/vlc-android/src/org/videolan/vlc/util/Workers.kt +++ b/vlc-android/src/org/videolan/vlc/util/Workers.kt @@ -1,7 +1,7 @@ package org.videolan.vlc.util import android.os.Looper -import kotlinx.coroutines.experimental.* +import kotlinx.coroutines.* fun runBackground(runnable: Runnable) { if (Looper.myLooper() != Looper.getMainLooper()) runnable.run() diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/BaseModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/BaseModel.kt index 1939f10b3..5b8ee3242 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/BaseModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/BaseModel.kt @@ -22,12 +22,12 @@ package org.videolan.vlc.viewmodels import androidx.lifecycle.MediatorLiveData import android.content.Context -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.channels.Channel -import kotlinx.coroutines.experimental.channels.actor -import kotlinx.coroutines.experimental.isActive -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.channels.Channel +import kotlinx.coroutines.channels.actor +import kotlinx.coroutines.isActive +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.vlc.util.FilterDelegate import org.videolan.vlc.util.LiveDataset diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/HistoryModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/HistoryModel.kt index 2c5310dd4..6da74e782 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/HistoryModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/HistoryModel.kt @@ -23,8 +23,8 @@ package org.videolan.vlc.viewmodels import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import android.content.Context -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.MediaWrapper diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/MedialibraryModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/MedialibraryModel.kt index 5b905fbe0..4f8d3cf94 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/MedialibraryModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/MedialibraryModel.kt @@ -21,7 +21,7 @@ package org.videolan.vlc.viewmodels import android.content.Context -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.launch import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.MediaLibraryItem diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/PlaylistModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/PlaylistModel.kt index 30388a575..658f70abd 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/PlaylistModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/PlaylistModel.kt @@ -25,7 +25,7 @@ import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProviders import androidx.fragment.app.Fragment -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.launch import org.videolan.medialibrary.Tools import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.PlaybackService diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/ScopedModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/ScopedModel.kt index fc8bc8cdd..5a0da7c09 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/ScopedModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/ScopedModel.kt @@ -2,9 +2,9 @@ package org.videolan.vlc.viewmodels import androidx.lifecycle.ViewModel import android.util.Log -import kotlinx.coroutines.experimental.CoroutineScope -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.SupervisorJob +import kotlinx.coroutines.CoroutineScope +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.SupervisorJob open class ScopedModel : ViewModel(), CoroutineScope { diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/StreamsModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/StreamsModel.kt index 6858a70b4..553f0aab2 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/StreamsModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/StreamsModel.kt @@ -22,10 +22,9 @@ package org.videolan.vlc.viewmodels import androidx.lifecycle.MutableLiveData import androidx.databinding.ObservableField -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.IO -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.VLCApplication diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/SubtitlesModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/SubtitlesModel.kt index e61918356..f5f438d3b 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/SubtitlesModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/SubtitlesModel.kt @@ -5,7 +5,7 @@ import android.content.Context import androidx.databinding.Observable import androidx.databinding.ObservableBoolean import androidx.databinding.ObservableField -import kotlinx.coroutines.experimental.* +import kotlinx.coroutines.* import org.videolan.vlc.R import org.videolan.vlc.api.NoConnectivityException import org.videolan.vlc.api.OpenSubtitle diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/VideosModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/VideosModel.kt index 3750eb844..0a7e25365 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/VideosModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/VideosModel.kt @@ -20,15 +20,14 @@ package org.videolan.vlc.viewmodels +import android.content.Context import androidx.lifecycle.Observer import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProviders -import android.content.Context -import androidx.fragment.app.Fragment -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.isActive -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.isActive +import kotlinx.coroutines.withContext import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.R diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/audio/AlbumModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/audio/AlbumModel.kt index fe8b71ddd..0a9fcb14e 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/audio/AlbumModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/audio/AlbumModel.kt @@ -23,9 +23,8 @@ package org.videolan.vlc.viewmodels.audio import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import android.content.Context -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.IO -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.Artist import org.videolan.medialibrary.media.Genre diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/audio/ArtistModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/audio/ArtistModel.kt index d7548e06b..37c2ab844 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/audio/ArtistModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/audio/ArtistModel.kt @@ -23,9 +23,8 @@ package org.videolan.vlc.viewmodels.audio import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import android.content.Context -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.IO -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.vlc.util.EmptyMLCallbacks diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/audio/GenresModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/audio/GenresModel.kt index 2552ce51d..b36dfd6ba 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/audio/GenresModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/audio/GenresModel.kt @@ -23,9 +23,8 @@ package org.videolan.vlc.viewmodels.audio import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import android.content.Context -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.IO -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.vlc.util.EmptyMLCallbacks diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/audio/PlaylistsModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/audio/PlaylistsModel.kt index d6514e269..71127885d 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/audio/PlaylistsModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/audio/PlaylistsModel.kt @@ -23,9 +23,8 @@ package org.videolan.vlc.viewmodels.audio import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import android.content.Context -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.IO -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.vlc.util.EmptyMLCallbacks diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/audio/TracksModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/audio/TracksModel.kt index 38e414bf9..19a7f893c 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/audio/TracksModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/audio/TracksModel.kt @@ -23,9 +23,8 @@ package org.videolan.vlc.viewmodels.audio import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import android.content.Context -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.IO -import kotlinx.coroutines.experimental.withContext +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.withContext import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.* import org.videolan.vlc.util.Settings diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/browser/BrowserModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/browser/BrowserModel.kt index faecdf48d..61fab775b 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/browser/BrowserModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/browser/BrowserModel.kt @@ -20,13 +20,13 @@ package org.videolan.vlc.viewmodels.browser -import androidx.lifecycle.ViewModel -import androidx.lifecycle.ViewModelProvider import android.content.Context import androidx.annotation.MainThread -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.launch -import kotlinx.coroutines.experimental.withContext +import androidx.lifecycle.ViewModel +import androidx.lifecycle.ViewModelProvider +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.medialibrary.media.MediaWrapper import org.videolan.vlc.providers.* diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/paged/MLPagedModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/paged/MLPagedModel.kt index 5ebf739e4..892244274 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/paged/MLPagedModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/paged/MLPagedModel.kt @@ -6,7 +6,7 @@ import androidx.paging.DataSource import androidx.paging.LivePagedListBuilder import androidx.paging.PagedList import androidx.paging.PositionalDataSource -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.launch import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.MediaLibraryItem import org.videolan.vlc.viewmodels.SortableModel diff --git a/vlc-android/src/org/videolan/vlc/viewmodels/paged/PagedTracksModel.kt b/vlc-android/src/org/videolan/vlc/viewmodels/paged/PagedTracksModel.kt index f70f383b2..bea153240 100644 --- a/vlc-android/src/org/videolan/vlc/viewmodels/paged/PagedTracksModel.kt +++ b/vlc-android/src/org/videolan/vlc/viewmodels/paged/PagedTracksModel.kt @@ -1,11 +1,10 @@ package org.videolan.vlc.viewmodels.paged +import android.content.Context import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider -import android.content.Context -import kotlinx.coroutines.experimental.Dispatchers -import kotlinx.coroutines.experimental.android.Main -import kotlinx.coroutines.experimental.launch +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.launch import org.videolan.medialibrary.Medialibrary import org.videolan.medialibrary.media.* import org.videolan.vlc.util.EmptyMLCallbacks