mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-11-03 23:58:55 +01:00 
			
		
		
		
	Update UniFile
Which has more correct nullability for some methods and case insensitivity for listFiles where possible.
This commit is contained in:
		@@ -99,8 +99,9 @@ object SettingsDataScreen : SearchableSettings {
 | 
			
		||||
 | 
			
		||||
                context.contentResolver.takePersistableUriPermission(uri, flags)
 | 
			
		||||
 | 
			
		||||
                val file = UniFile.fromUri(context, uri)
 | 
			
		||||
                storageDirPref.set(file.uri.toString())
 | 
			
		||||
                UniFile.fromUri(context, uri)?.let {
 | 
			
		||||
                    storageDirPref.set(it.uri.toString())
 | 
			
		||||
                }
 | 
			
		||||
                Injekt.get<DownloadCache>().invalidateCache()
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -58,7 +58,7 @@ class BackupCreateJob(private val context: Context, workerParams: WorkerParamete
 | 
			
		||||
            if (isAutoBackup) {
 | 
			
		||||
                backupPreferences.lastAutoBackupTimestamp().set(Date().time)
 | 
			
		||||
            } else {
 | 
			
		||||
                notifier.showBackupComplete(UniFile.fromUri(context, location.toUri()))
 | 
			
		||||
                notifier.showBackupComplete(UniFile.fromUri(context, location.toUri())!!)
 | 
			
		||||
            }
 | 
			
		||||
            Result.success()
 | 
			
		||||
        } catch (e: Exception) {
 | 
			
		||||
 
 | 
			
		||||
@@ -95,14 +95,14 @@ class BackupCreator(
 | 
			
		||||
                    val dir = UniFile.fromUri(context, uri)
 | 
			
		||||
 | 
			
		||||
                    // Delete older backups
 | 
			
		||||
                    dir.listFiles { _, filename -> Backup.filenameRegex.matches(filename) }
 | 
			
		||||
                    dir?.listFiles { _, filename -> Backup.filenameRegex.matches(filename) }
 | 
			
		||||
                        .orEmpty()
 | 
			
		||||
                        .sortedByDescending { it.name }
 | 
			
		||||
                        .drop(MAX_AUTO_BACKUPS - 1)
 | 
			
		||||
                        .forEach { it.delete() }
 | 
			
		||||
 | 
			
		||||
                    // Create new file to place backup
 | 
			
		||||
                    dir.createFile(Backup.getFilename())
 | 
			
		||||
                    dir?.createFile(Backup.getFilename())
 | 
			
		||||
                } else {
 | 
			
		||||
                    UniFile.fromUri(context, uri)
 | 
			
		||||
                }
 | 
			
		||||
 
 | 
			
		||||
@@ -37,8 +37,8 @@ class DownloadProvider(
 | 
			
		||||
    internal fun getMangaDir(mangaTitle: String, source: Source): UniFile {
 | 
			
		||||
        try {
 | 
			
		||||
            return downloadsDir!!
 | 
			
		||||
                .createDirectory(getSourceDirName(source))
 | 
			
		||||
                .createDirectory(getMangaDirName(mangaTitle))
 | 
			
		||||
                .createDirectory(getSourceDirName(source))!!
 | 
			
		||||
                .createDirectory(getMangaDirName(mangaTitle))!!
 | 
			
		||||
        } catch (e: Throwable) {
 | 
			
		||||
            logcat(LogPriority.ERROR, e) { "Invalid download directory" }
 | 
			
		||||
            throw Exception(context.stringResource(MR.strings.invalid_location, downloadsDir ?: ""))
 | 
			
		||||
 
 | 
			
		||||
@@ -335,7 +335,7 @@ class Downloader(
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        val chapterDirname = provider.getChapterDirName(download.chapter.name, download.chapter.scanlator)
 | 
			
		||||
        val tmpDir = mangaDir.createDirectory(chapterDirname + TMP_DIR_SUFFIX)
 | 
			
		||||
        val tmpDir = mangaDir.createDirectory(chapterDirname + TMP_DIR_SUFFIX)!!
 | 
			
		||||
 | 
			
		||||
        try {
 | 
			
		||||
            // If the page list already exists, start from the file
 | 
			
		||||
@@ -480,7 +480,7 @@ class Downloader(
 | 
			
		||||
        page.progress = 0
 | 
			
		||||
        return flow {
 | 
			
		||||
            val response = source.getImage(page)
 | 
			
		||||
            val file = tmpDir.createFile("$filename.tmp")
 | 
			
		||||
            val file = tmpDir.createFile("$filename.tmp")!!
 | 
			
		||||
            try {
 | 
			
		||||
                response.body.source().saveTo(file.openOutputStream())
 | 
			
		||||
                val extension = getImageExtension(response, file)
 | 
			
		||||
@@ -512,7 +512,7 @@ class Downloader(
 | 
			
		||||
     * @param filename the filename of the image.
 | 
			
		||||
     */
 | 
			
		||||
    private fun copyImageFromCache(cacheFile: File, tmpDir: UniFile, filename: String): UniFile {
 | 
			
		||||
        val tmpFile = tmpDir.createFile("$filename.tmp")
 | 
			
		||||
        val tmpFile = tmpDir.createFile("$filename.tmp")!!
 | 
			
		||||
        cacheFile.inputStream().use { input ->
 | 
			
		||||
            tmpFile.openOutputStream().use { output ->
 | 
			
		||||
                input.copyTo(output)
 | 
			
		||||
@@ -603,7 +603,7 @@ class Downloader(
 | 
			
		||||
        dirname: String,
 | 
			
		||||
        tmpDir: UniFile,
 | 
			
		||||
    ) {
 | 
			
		||||
        val zip = mangaDir.createFile("$dirname.cbz$TMP_DIR_SUFFIX")
 | 
			
		||||
        val zip = mangaDir.createFile("$dirname.cbz$TMP_DIR_SUFFIX")!!
 | 
			
		||||
        ZipOutputStream(BufferedOutputStream(zip.openOutputStream())).use { zipOut ->
 | 
			
		||||
            zipOut.setMethod(ZipEntry.STORED)
 | 
			
		||||
 | 
			
		||||
@@ -643,7 +643,7 @@ class Downloader(
 | 
			
		||||
        val comicInfo = getComicInfo(manga, chapter, chapterUrl, categories)
 | 
			
		||||
        // Remove the old file
 | 
			
		||||
        dir.findFile(COMIC_INFO_FILE)?.delete()
 | 
			
		||||
        dir.createFile(COMIC_INFO_FILE).openOutputStream().use {
 | 
			
		||||
        dir.createFile(COMIC_INFO_FILE)!!.openOutputStream().use {
 | 
			
		||||
            val comicInfoString = xml.encodeToString(ComicInfo.serializer(), comicInfo)
 | 
			
		||||
            it.write(comicInfoString.toByteArray())
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -165,7 +165,7 @@ fun Context.createReaderThemeContext(): Context {
 | 
			
		||||
 * @return document size of [uri] or null if size can't be obtained
 | 
			
		||||
 */
 | 
			
		||||
fun Context.getUriSize(uri: Uri): Long? {
 | 
			
		||||
    return UniFile.fromUri(this, uri).length().takeIf { it >= 0 }
 | 
			
		||||
    return UniFile.fromUri(this, uri)?.length()?.takeIf { it >= 0 }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user