Update UniFile

Which has more correct nullability for some methods and case insensitivity for listFiles where possible.
This commit is contained in:
arkon 2023-11-27 22:21:40 -05:00
parent d85a76484c
commit a74a689c90
9 changed files with 17 additions and 16 deletions

View file

@ -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()
}
}

View file

@ -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) {

View file

@ -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)
}

View file

@ -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 ?: ""))

View file

@ -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())
}

View file

@ -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 }
}
/**

View file

@ -245,7 +245,7 @@ object ImageUtil {
// Remove pre-existing split if exists (this split shouldn't exist under normal circumstances)
tmpDir.findFile(splitImageName)?.delete()
val splitFile = tmpDir.createFile(splitImageName)
val splitFile = tmpDir.createFile(splitImageName)!!
val region = Rect(0, splitData.topOffset, splitData.splitWidth, splitData.bottomOffset)

View file

@ -30,7 +30,7 @@ quickjs-android = "app.cash.quickjs:quickjs-android:0.9.2"
jsoup = "org.jsoup:jsoup:1.16.2"
disklrucache = "com.jakewharton:disklrucache:2.0.2"
unifile = "com.github.tachiyomiorg:unifile:17bec43"
unifile = "com.github.tachiyomiorg:unifile:7c257e1c64"
junrar = "com.github.junrar:junrar:7.5.5"
sqlite-framework = { module = "androidx.sqlite:sqlite-framework", version.ref = "sqlite" }

View file

@ -34,7 +34,7 @@ actual class LocalCoverManager(
return null
}
val targetFile = find(manga.url) ?: directory.createFile(DEFAULT_COVER_NAME)
val targetFile = find(manga.url) ?: directory.createFile(DEFAULT_COVER_NAME)!!
inputStream.use { input ->
targetFile.openOutputStream().use { output ->