[Android] Fix a playlist dialog empty view refresh issue
Nicolas Pomepuy
git at videolan.org
Fri Mar 14 09:31:18 UTC 2025
vlc-android | branch: master | Nicolas Pomepuy <nicolas at videolabs.io> | Fri Mar 7 06:37:20 2025 +0100| [eb3f7d7e2f456bdd269aeb688fa952ed71cba74c] | committer: Nicolas Pomepuy
Fix a playlist dialog empty view refresh issue
> https://code.videolan.org/videolan/vlc-android/commit/eb3f7d7e2f456bdd269aeb688fa952ed71cba74c
---
.../src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt
index a1d28e333f..8903512c19 100644
--- a/application/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt
+++ b/application/vlc-android/src/org/videolan/vlc/gui/dialogs/SavePlaylistDialog.kt
@@ -32,6 +32,7 @@ import android.view.inputmethod.EditorInfo
import android.widget.TextView
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.LinearLayoutManager
+import androidx.recyclerview.widget.RecyclerView
import com.google.android.material.bottomsheet.BottomSheetBehavior.STATE_EXPANDED
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -63,6 +64,7 @@ import org.videolan.vlc.gui.helpers.UiTools
import org.videolan.vlc.gui.helpers.UiTools.showPinIfNeeded
import org.videolan.vlc.providers.FileBrowserProvider
import org.videolan.vlc.util.isSchemeStreaming
+import org.videolan.vlc.util.onAnyChange
import org.videolan.vlc.viewmodels.browser.TYPE_FILE
import org.videolan.vlc.viewmodels.browser.getBrowserModel
import java.util.LinkedList
@@ -99,6 +101,7 @@ class SavePlaylistDialog : VLCBottomSheetDialogFragment(), View.OnClickListener,
private val coroutineContextProvider: CoroutineContextProvider
private val alreadyAdding = AtomicBoolean(false)
+ private lateinit var dataObserver: RecyclerView.AdapterDataObserver
override fun initialFocusedView(): View = binding.dialogPlaylistName.editText ?: binding.dialogPlaylistName
@@ -112,6 +115,9 @@ class SavePlaylistDialog : VLCBottomSheetDialogFragment(), View.OnClickListener,
lifecycleScope.launch { if (requireActivity().showPinIfNeeded()) dismiss() }
medialibrary = Medialibrary.getInstance()
adapter = SimpleAdapter(this)
+ dataObserver = adapter.onAnyChange {
+ updateEmptyView()
+ }
adapter.defaultCover = UiTools.getDefaultPlaylistDrawable(requireActivity())
newTracks = try {
@Suppress("UNCHECKED_CAST")
@@ -146,6 +152,11 @@ class SavePlaylistDialog : VLCBottomSheetDialogFragment(), View.OnClickListener,
selectedPlaylist = savedInstanceState?.getSerializable(SELECTED_PLAYLIST) as ArrayList<Playlist>?
}
+ override fun onDestroy() {
+ super.onDestroy()
+ if (::dataObserver.isInitialized) adapter.unregisterAdapterDataObserver(dataObserver)
+ }
+
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
binding = DialogPlaylistBinding.inflate(layoutInflater, container, false)
binding.isLoading = isLoading
More information about the Android
mailing list