diff --git a/app/src/main/java/org/lineageos/glimpse/fragments/AlbumFragment.kt b/app/src/main/java/org/lineageos/glimpse/fragments/AlbumFragment.kt
index 58a1449..4eee023 100644
--- a/app/src/main/java/org/lineageos/glimpse/fragments/AlbumFragment.kt
+++ b/app/src/main/java/org/lineageos/glimpse/fragments/AlbumFragment.kt
@@ -18,7 +18,9 @@
 import androidx.core.view.updatePadding
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
+import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
 import androidx.navigation.fragment.findNavController
 import androidx.navigation.ui.AppBarConfiguration
 import androidx.navigation.ui.setupWithNavController
@@ -64,9 +66,11 @@
                 requireActivity().finish()
             } else {
                 viewLifecycleOwner.lifecycleScope.launch {
-                    mediaViewModel.setBucketId(album.id)
-                    mediaViewModel.mediaForAlbum.collectLatest { data ->
-                        thumbnailAdapter.data = data.toTypedArray()
+                    viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
+                        mediaViewModel.setBucketId(album.id)
+                        mediaViewModel.mediaForAlbum.collectLatest { data ->
+                            thumbnailAdapter.data = data.toTypedArray()
+                        }
                     }
                 }
             }
@@ -123,8 +127,10 @@
         } else {
             mediaViewModel.setBucketId(album.id)
             viewLifecycleOwner.lifecycleScope.launch {
-                mediaViewModel.mediaForAlbum.collectLatest { data ->
-                    thumbnailAdapter.data = data.toTypedArray()
+                viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
+                    mediaViewModel.mediaForAlbum.collectLatest { data ->
+                        thumbnailAdapter.data = data.toTypedArray()
+                    }
                 }
             }
         }
diff --git a/app/src/main/java/org/lineageos/glimpse/fragments/AlbumsFragment.kt b/app/src/main/java/org/lineageos/glimpse/fragments/AlbumsFragment.kt
index 37398e1..2a8e70e 100644
--- a/app/src/main/java/org/lineageos/glimpse/fragments/AlbumsFragment.kt
+++ b/app/src/main/java/org/lineageos/glimpse/fragments/AlbumsFragment.kt
@@ -17,7 +17,9 @@
 import androidx.core.view.updatePadding
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
+import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
 import androidx.navigation.fragment.findNavController
 import androidx.recyclerview.widget.GridLayoutManager
 import androidx.recyclerview.widget.RecyclerView
@@ -74,8 +76,10 @@
         }
 
         viewLifecycleOwner.lifecycleScope.launch {
-            mediaViewModel.albums.collectLatest {
-                albumThumbnailAdapter.data = it.toTypedArray()
+            viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
+                mediaViewModel.albums.collectLatest {
+                    albumThumbnailAdapter.data = it.toTypedArray()
+                }
             }
         }
     }
diff --git a/app/src/main/java/org/lineageos/glimpse/fragments/MediaViewerFragment.kt b/app/src/main/java/org/lineageos/glimpse/fragments/MediaViewerFragment.kt
index 381595a..e27b09e 100644
--- a/app/src/main/java/org/lineageos/glimpse/fragments/MediaViewerFragment.kt
+++ b/app/src/main/java/org/lineageos/glimpse/fragments/MediaViewerFragment.kt
@@ -23,7 +23,9 @@
 import androidx.core.view.updateLayoutParams
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
+import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
 import androidx.media3.common.C
 import androidx.media3.common.MediaItem
 import androidx.media3.exoplayer.ExoPlayer
@@ -80,8 +82,10 @@
                 requireActivity().finish()
             } else {
                 viewLifecycleOwner.lifecycleScope.launch {
-                    mediaViewModel.setBucketId(album?.id)
-                    mediaViewModel.mediaForAlbum.collectLatest(::initData)
+                    viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
+                        mediaViewModel.setBucketId(album?.id)
+                        mediaViewModel.mediaForAlbum.collectLatest(::initData)
+                    }
                 }
             }
         }
@@ -302,8 +306,10 @@
             mainPermissionsRequestLauncher.launch(PermissionsUtils.mainPermissions)
         } else {
             viewLifecycleOwner.lifecycleScope.launch {
-                mediaViewModel.setBucketId(album?.id)
-                mediaViewModel.mediaForAlbum.collectLatest(::initData)
+                viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
+                    mediaViewModel.setBucketId(album?.id)
+                    mediaViewModel.mediaForAlbum.collectLatest(::initData)
+                }
             }
         }
     }
diff --git a/app/src/main/java/org/lineageos/glimpse/fragments/ReelsFragment.kt b/app/src/main/java/org/lineageos/glimpse/fragments/ReelsFragment.kt
index 7f67801..12a0259 100644
--- a/app/src/main/java/org/lineageos/glimpse/fragments/ReelsFragment.kt
+++ b/app/src/main/java/org/lineageos/glimpse/fragments/ReelsFragment.kt
@@ -18,7 +18,9 @@
 import androidx.core.view.updatePadding
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
+import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.repeatOnLifecycle
 import androidx.navigation.fragment.findNavController
 import androidx.recyclerview.widget.RecyclerView
 import kotlinx.coroutines.flow.collectLatest
@@ -60,8 +62,10 @@
                 requireActivity().finish()
             } else {
                 viewLifecycleOwner.lifecycleScope.launch {
-                    mediaViewModel.media.collectLatest { data ->
-                        thumbnailAdapter.data = data.toTypedArray()
+                    viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
+                        mediaViewModel.media.collectLatest { data ->
+                            thumbnailAdapter.data = data.toTypedArray()
+                        }
                     }
                 }
                 permissionsUtils.showManageMediaPermissionDialogIfNeeded()
@@ -105,8 +109,10 @@
             mainPermissionsRequestLauncher.launch(PermissionsUtils.mainPermissions)
         } else {
             viewLifecycleOwner.lifecycleScope.launch {
-                mediaViewModel.media.collectLatest { data ->
-                    thumbnailAdapter.data = data.toTypedArray()
+                viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.RESUMED) {
+                    mediaViewModel.media.collectLatest { data ->
+                        thumbnailAdapter.data = data.toTypedArray()
+                    }
                 }
             }
             permissionsUtils.showManageMediaPermissionDialogIfNeeded()
