Browse Source

Rename PlaylistActivity to HeaderMediaListActivity

merge-requests/1454/head
Duncan McNamara 4 years ago
parent
commit
dc0c8d99ec
  1. 10
      application/app/src/androidTest/java/org/videolan/vlc/gui/HeaderMediaListActivityUITest.kt
  2. 2
      application/vlc-android/AndroidManifest.xml
  3. 18
      application/vlc-android/src/org/videolan/vlc/gui/HeaderMediaListActivity.kt
  4. 2
      application/vlc-android/src/org/videolan/vlc/gui/PlaylistFragment.kt
  5. 3
      application/vlc-android/src/org/videolan/vlc/gui/audio/AudioAlbumsSongsFragment.kt
  6. 4
      application/vlc-android/src/org/videolan/vlc/gui/audio/AudioBrowserFragment.kt
  7. 10
      application/vlc-android/src/org/videolan/vlc/viewmodels/mobile/PlaylistViewModel.kt

10
application/app/src/androidTest/java/org/videolan/vlc/gui/PlaylistActivityUITest.kt → application/app/src/androidTest/java/org/videolan/vlc/gui/HeaderMediaListActivityUITest.kt

@ -9,6 +9,8 @@ import androidx.test.espresso.contrib.DrawerActions.*
import androidx.test.espresso.matcher.RootMatchers.*
import androidx.test.espresso.matcher.ViewMatchers.*
import androidx.test.rule.ActivityTestRule
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ObsoleteCoroutinesApi
import org.hamcrest.Matchers.*
import org.junit.Rule
import org.junit.Test
@ -20,12 +22,14 @@ import org.videolan.vlc.databinding.AudioBrowserItemBinding
import org.videolan.vlc.gui.audio.AudioBrowserAdapter
import org.videolan.vlc.gui.audio.AudioBrowserFragment
class PlaylistActivityUITest: BaseUITest() {
@ObsoleteCoroutinesApi
@ExperimentalCoroutinesApi
class HeaderMediaListActivityUITest: BaseUITest() {
@Rule
@JvmField
val activityTestRule = ActivityTestRule(PlaylistActivity::class.java, true, false)
val activityTestRule = ActivityTestRule(HeaderMediaListActivity::class.java, true, false)
lateinit var activity: PlaylistActivity
lateinit var activity: HeaderMediaListActivity
override fun beforeTest() {
// TODO: Hack because of IO Dispatcher used in MediaParsingService channel

2
application/vlc-android/AndroidManifest.xml

@ -472,7 +472,7 @@
android:theme="@style/Theme.VLC"
android:windowSoftInputMode="adjustPan"/>
<activity
android:name=".gui.PlaylistActivity"
android:name=".gui.HeaderMediaListActivity"
android:theme="@style/Theme.VLC.NoStatus"/>
<activity
android:name=".gui.InfoActivity"

18
application/vlc-android/src/org/videolan/vlc/gui/PlaylistActivity.kt → application/vlc-android/src/org/videolan/vlc/gui/HeaderMediaListActivity.kt

@ -75,7 +75,9 @@ import org.videolan.vlc.viewmodels.mobile.PlaylistViewModel
import org.videolan.vlc.viewmodels.mobile.getViewModel
import java.util.*
open class PlaylistActivity : AudioPlayerContainerActivity(), IEventsHandler<MediaLibraryItem>, IListEventsHandler, ActionMode.Callback, View.OnClickListener, CtxActionReceiver, Filterable, SearchView.OnQueryTextListener, MenuItem.OnActionExpandListener {
@ObsoleteCoroutinesApi
@ExperimentalCoroutinesApi
open class HeaderMediaListActivity : AudioPlayerContainerActivity(), IEventsHandler<MediaLibraryItem>, IListEventsHandler, ActionMode.Callback, View.OnClickListener, CtxActionReceiver, Filterable, SearchView.OnQueryTextListener, MenuItem.OnActionExpandListener {
private lateinit var searchView: SearchView
private lateinit var itemTouchHelperCallback: SwipeDragItemTouchHelperCallback
@ -142,7 +144,7 @@ open class PlaylistActivity : AudioPlayerContainerActivity(), IEventsHandler<Med
}
}
if (cover != null) {
binding.cover = BitmapDrawable(this@PlaylistActivity.resources, cover)
binding.cover = BitmapDrawable(this@HeaderMediaListActivity.resources, cover)
binding.appbar.setExpanded(true, true)
if (savedInstanceState != null) {
if (fabVisibility)
@ -161,7 +163,7 @@ open class PlaylistActivity : AudioPlayerContainerActivity(), IEventsHandler<Med
val lp = binding.fab.layoutParams as CoordinatorLayout.LayoutParams
lp.anchorId = R.id.songs
lp.anchorGravity = Gravity.BOTTOM or Gravity.END
lp.behavior = FloatingActionButtonBehavior(this@PlaylistActivity, null)
lp.behavior = FloatingActionButtonBehavior(this@HeaderMediaListActivity, null)
binding.fab.layoutParams = lp
binding.fab.show()
}
@ -429,13 +431,13 @@ open class PlaylistActivity : AudioPlayerContainerActivity(), IEventsHandler<Med
for (item in items) {
val deleteAction = kotlinx.coroutines.Runnable {
lifecycleScope.launch {
MediaUtils.deleteItem(this@PlaylistActivity, item) {
UiTools.snacker(this@PlaylistActivity, getString(R.string.msg_delete_failed, it.title))
MediaUtils.deleteItem(this@HeaderMediaListActivity, item) {
UiTools.snacker(this@HeaderMediaListActivity, getString(R.string.msg_delete_failed, it.title))
}
if (isStarted()) viewModel.refresh()
}
}
if (Permissions.checkWritePermission(this@PlaylistActivity, item, deleteAction)) deleteAction.run()
if (Permissions.checkWritePermission(this@HeaderMediaListActivity, item, deleteAction)) deleteAction.run()
}
}
}
@ -449,7 +451,7 @@ open class PlaylistActivity : AudioPlayerContainerActivity(), IEventsHandler<Med
if (parentPath != null && FileUtils.deleteFile(path) && media.id > 0L && !foldersToReload.contains(parentPath)) {
foldersToReload.add(parentPath)
} else
UiTools.snacker(this@PlaylistActivity, getString(R.string.msg_delete_failed, media.title))
UiTools.snacker(this@HeaderMediaListActivity, getString(R.string.msg_delete_failed, media.title))
}
for (folder in foldersToReload) mediaLibrary.reload(folder)
}
@ -473,7 +475,7 @@ open class PlaylistActivity : AudioPlayerContainerActivity(), IEventsHandler<Med
}
}
var removedMessage = if (indexes.size>1) getString(R.string.removed_from_playlist_anonymous) else getString(R.string.remove_playlist_item,list.first().title)
UiTools.snackerWithCancel(this@PlaylistActivity, removedMessage, action = {}) {
UiTools.snackerWithCancel(this@HeaderMediaListActivity, removedMessage, action = {}) {
for ((key, value) in itemsRemoved) {
playlist.add(value, key)
}

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

@ -194,7 +194,7 @@ class PlaylistFragment : BaseAudioBrowser<PlaylistsViewModel>(), SwipeRefreshLay
override fun onClick(v: View, position: Int, item: MediaLibraryItem) {
if (actionMode == null) {
val i = Intent(activity, PlaylistActivity::class.java)
val i = Intent(activity, HeaderMediaListActivity::class.java)
i.putExtra(AudioBrowserFragment.TAG_ITEM, item)
startActivity(i)
} else super.onClick(v, position, item)

3
application/vlc-android/src/org/videolan/vlc/gui/audio/AudioAlbumsSongsFragment.kt

@ -42,6 +42,7 @@ import org.videolan.vlc.R
import org.videolan.vlc.gui.ContentActivity
import org.videolan.vlc.gui.PlaylistActivity
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.HeaderMediaListActivity
import org.videolan.vlc.gui.view.FastScroller
import org.videolan.vlc.gui.view.RecyclerSectionItemGridDecoration
import org.videolan.vlc.media.MediaUtils
@ -210,7 +211,7 @@ class AudioAlbumsSongsFragment : BaseAudioBrowser<AlbumSongsViewModel>(), SwipeR
return
}
if (item is Album) {
val i = Intent(activity, PlaylistActivity::class.java)
val i = Intent(activity, HeaderMediaListActivity::class.java)
i.putExtra(AudioBrowserFragment.TAG_ITEM, item)
startActivity(i)
} else {

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

@ -50,7 +50,7 @@ import org.videolan.tools.putSingle
import org.videolan.vlc.R
import org.videolan.vlc.gui.AudioPlayerContainerActivity
import org.videolan.vlc.gui.ContentActivity
import org.videolan.vlc.gui.PlaylistActivity
import org.videolan.vlc.gui.HeaderMediaListActivity
import org.videolan.vlc.gui.SecondaryActivity
import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.view.EmptyLoadingState
@ -362,7 +362,7 @@ class AudioBrowserFragment : BaseAudioBrowser<AudioBrowserViewModel>() {
i.putExtra(TAG_ITEM, item)
}
MediaLibraryItem.TYPE_ALBUM -> {
i = Intent(activity, PlaylistActivity::class.java)
i = Intent(activity, HeaderMediaListActivity::class.java)
i.putExtra(TAG_ITEM, item)
}
else -> return

10
application/vlc-android/src/org/videolan/vlc/viewmodels/mobile/PlaylistViewModel.kt

@ -24,16 +24,20 @@ import android.content.Context
import androidx.lifecycle.ViewModel
import androidx.lifecycle.ViewModelProvider
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.ObsoleteCoroutinesApi
import kotlinx.coroutines.withContext
import org.videolan.medialibrary.interfaces.media.Album
import org.videolan.medialibrary.interfaces.media.MediaWrapper
import org.videolan.medialibrary.interfaces.media.Playlist
import org.videolan.medialibrary.media.MediaLibraryItem
import org.videolan.vlc.gui.PlaylistActivity
import org.videolan.vlc.gui.HeaderMediaListActivity
import org.videolan.vlc.providers.medialibrary.MedialibraryProvider
import org.videolan.vlc.providers.medialibrary.TracksProvider
import org.videolan.vlc.viewmodels.MedialibraryViewModel
@ExperimentalCoroutinesApi
class PlaylistViewModel(context: Context, val playlist: MediaLibraryItem) : MedialibraryViewModel(context) {
val tracksProvider = TracksProvider(playlist, context, this)
@ -60,4 +64,6 @@ class PlaylistViewModel(context: Context, val playlist: MediaLibraryItem) : Medi
}
}
internal fun PlaylistActivity.getViewModel(playlist: MediaLibraryItem) = ViewModelProvider(this, PlaylistViewModel.Factory(this, playlist)).get(PlaylistViewModel::class.java)
@ObsoleteCoroutinesApi
@ExperimentalCoroutinesApi
internal fun HeaderMediaListActivity.getViewModel(playlist: MediaLibraryItem) = ViewModelProvider(this, PlaylistViewModel.Factory(this, playlist)).get(PlaylistViewModel::class.java)
Loading…
Cancel
Save