[Android] Navigator: Deactivate fragments caching

Geoffrey Métais git at videolan.org
Tue Apr 30 16:51:17 CEST 2019


vlc-android | branch: 3.1.x | Geoffrey Métais <geoffrey.metais at gmail.com> | Tue Apr 30 16:01:30 2019 +0200| [753c58604838d1f236b72365fbb2cff1953fa148] | committer: Geoffrey Métais

Navigator: Deactivate fragments caching

(cherry picked from commit 62d72865c86ffdb1ec2bec659bcfb6f07797f8a0)

> https://code.videolan.org/videolan/vlc-android/commit/753c58604838d1f236b72365fbb2cff1953fa148
---

 .../src/org/videolan/vlc/gui/helpers/Navigator.kt  | 28 ++++------------------
 1 file changed, 5 insertions(+), 23 deletions(-)

diff --git a/vlc-android/src/org/videolan/vlc/gui/helpers/Navigator.kt b/vlc-android/src/org/videolan/vlc/gui/helpers/Navigator.kt
index ce1e52aba..8966be0f5 100644
--- a/vlc-android/src/org/videolan/vlc/gui/helpers/Navigator.kt
+++ b/vlc-android/src/org/videolan/vlc/gui/helpers/Navigator.kt
@@ -27,7 +27,6 @@ import android.content.Intent
 import android.content.SharedPreferences
 import android.os.Bundle
 import android.view.MenuItem
-import androidx.collection.SimpleArrayMap
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.FragmentManager
 import androidx.lifecycle.Lifecycle
@@ -44,13 +43,15 @@ import org.videolan.vlc.gui.MainActivity
 import org.videolan.vlc.gui.PlaylistFragment
 import org.videolan.vlc.gui.SecondaryActivity
 import org.videolan.vlc.gui.audio.AudioBrowserFragment
-import org.videolan.vlc.gui.browser.*
+import org.videolan.vlc.gui.browser.BaseBrowserFragment
+import org.videolan.vlc.gui.browser.ExtensionBrowser
+import org.videolan.vlc.gui.browser.FileBrowserFragment
+import org.videolan.vlc.gui.browser.NetworkBrowserFragment
 import org.videolan.vlc.gui.folders.FoldersFragment
 import org.videolan.vlc.gui.network.MRLPanelFragment
 import org.videolan.vlc.gui.preferences.PreferencesActivity
 import org.videolan.vlc.gui.video.VideoGridFragment
 import org.videolan.vlc.util.*
-import java.lang.ref.WeakReference
 
 private const val TAG = "Navigator"
 @ObsoleteCoroutinesApi
@@ -62,7 +63,6 @@ class Navigator(private val activity: MainActivity,
                 target: Int
 ): com.google.android.material.navigation.NavigationView.OnNavigationItemSelectedListener, LifecycleObserver {
 
-    private val fragmentsStack = SimpleArrayMap<String, WeakReference<Fragment>>()
     private val defaultFragmentId= R.id.nav_video
     var currentFragmentId = target
     var currentFragment: Fragment? = null
@@ -73,8 +73,6 @@ class Navigator(private val activity: MainActivity,
         state?.let {
             val fm = activity.supportFragmentManager
             currentFragment = fm.getFragment(it, "current_fragment")
-            //Restore fragments stack
-            restoreFragmentsStack(fm)
         }
     }
 
@@ -100,13 +98,7 @@ class Navigator(private val activity: MainActivity,
 
     fun showFragment(id: Int) {
         val tag = getTag(id)
-        //Get new fragment
-        val wr = fragmentsStack.get(tag)
-        var fragment = wr?.get()
-        if (fragment === null) {
-            fragment = getNewFragment(id)
-            fragmentsStack.put(tag, WeakReference(fragment))
-        }
+        val fragment = getNewFragment(id)
         showFragment(fragment, id, tag)
     }
 
@@ -122,16 +114,6 @@ class Navigator(private val activity: MainActivity,
         currentFragmentId = id
     }
 
-    private fun restoreFragmentsStack(fm: FragmentManager) {
-        val fragments = fm.fragments
-        val ft = fm.beginTransaction()
-        for (fragment in fragments) {
-            if (fragment is ExtensionBrowser) ft.remove(fragment)
-            else if (fragment is MediaBrowserFragment<*>) fragmentsStack.put(fragment.tag, WeakReference(fragment))
-        }
-        ft.commit()
-    }
-
     /**
      * Show a secondary fragment.
      */



More information about the Android mailing list