mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-04 08:08:55 +01:00 
			
		
		
		
	Minor changes to download cache. Also keep the library view, as recreation is expensive
This commit is contained in:
		@@ -26,7 +26,7 @@ import java.util.concurrent.TimeUnit
 | 
			
		||||
class DownloadCache(private val context: Context,
 | 
			
		||||
                    private val provider: DownloadProvider,
 | 
			
		||||
                    private val sourceManager: SourceManager = Injekt.get(),
 | 
			
		||||
                    preferences: PreferencesHelper = Injekt.get()) {
 | 
			
		||||
                    private val preferences: PreferencesHelper = Injekt.get()) {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * The interval after which this cache should be invalidated. 1 hour shouldn't cause major
 | 
			
		||||
@@ -42,24 +42,23 @@ class DownloadCache(private val context: Context,
 | 
			
		||||
    /**
 | 
			
		||||
     * The root directory for downloads.
 | 
			
		||||
     */
 | 
			
		||||
    private var rootDir = setRootDir(preferences.downloadsDirectory().getOrDefault())
 | 
			
		||||
    private var rootDir = RootDirectory(getDirectoryFromPreference())
 | 
			
		||||
 | 
			
		||||
    init {
 | 
			
		||||
        setRootDir(preferences.downloadsDirectory().getOrDefault())
 | 
			
		||||
        preferences.downloadsDirectory().asObservable()
 | 
			
		||||
                .skip(1)
 | 
			
		||||
                .subscribe { setRootDir(it) }
 | 
			
		||||
                .subscribe {
 | 
			
		||||
                    lastRenew = 0L // invalidate cache
 | 
			
		||||
                    rootDir = RootDirectory(getDirectoryFromPreference())
 | 
			
		||||
                }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Sets the root downloads directory and invalidates the cache.
 | 
			
		||||
     *
 | 
			
		||||
     * @param directory the downloads directory in [Uri] format.
 | 
			
		||||
     * Returns the downloads directory from the user's preferences.
 | 
			
		||||
     */
 | 
			
		||||
    private fun setRootDir(directory: String): RootDirectory {
 | 
			
		||||
        rootDir = RootDirectory(UniFile.fromUri(context, Uri.parse(directory)))
 | 
			
		||||
        lastRenew = 0L
 | 
			
		||||
        return rootDir
 | 
			
		||||
    private fun getDirectoryFromPreference(): UniFile {
 | 
			
		||||
        val dir = preferences.downloadsDirectory().getOrDefault()
 | 
			
		||||
        return UniFile.fromUri(context, Uri.parse(dir))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
 
 | 
			
		||||
@@ -429,7 +429,7 @@ class LibraryController(
 | 
			
		||||
        presenter.onOpenManga()
 | 
			
		||||
 | 
			
		||||
        router.pushController(RouterTransaction.with(MangaController(manga))
 | 
			
		||||
                .pushChangeHandler(FadeChangeHandler())
 | 
			
		||||
                .pushChangeHandler(FadeChangeHandler(false))
 | 
			
		||||
                .popChangeHandler(FadeChangeHandler()))
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user