mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-22 14:11:50 +01:00
Rename source download folder on source rename (#7898)
* Rename source download folder on source rename * Review Changes * Review Changes 2
This commit is contained in:
parent
fc6946ed61
commit
53f5ea7fe9
@ -343,6 +343,30 @@ class DownloadManager(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Renames source download folder
|
||||
*
|
||||
* @param oldSource the old source.
|
||||
* @param newSource the new source.
|
||||
*/
|
||||
fun renameSource(oldSource: Source, newSource: Source) {
|
||||
val oldFolder = provider.findSourceDir(oldSource) ?: return
|
||||
val newName = provider.getSourceDirName(newSource)
|
||||
|
||||
val capitalizationChanged = oldFolder.name.equals(newName, ignoreCase = true)
|
||||
if (capitalizationChanged) {
|
||||
val tempName = newName + "_tmp"
|
||||
if (oldFolder.renameTo(tempName).not()) {
|
||||
logcat(LogPriority.ERROR) { "Could not rename source download folder: ${oldFolder.name}." }
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if (oldFolder.renameTo(newName).not()) {
|
||||
logcat(LogPriority.ERROR) { "Could not rename source download folder: ${oldFolder.name}." }
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Renames an already downloaded chapter
|
||||
*
|
||||
|
@ -4,6 +4,7 @@ import android.content.Context
|
||||
import eu.kanade.domain.source.model.SourceData
|
||||
import eu.kanade.domain.source.repository.SourceDataRepository
|
||||
import eu.kanade.tachiyomi.R
|
||||
import eu.kanade.tachiyomi.data.download.DownloadManager
|
||||
import eu.kanade.tachiyomi.extension.ExtensionManager
|
||||
import eu.kanade.tachiyomi.source.model.Page
|
||||
import eu.kanade.tachiyomi.source.model.SChapter
|
||||
@ -19,12 +20,14 @@ import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import rx.Observable
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
|
||||
class SourceManager(
|
||||
private val context: Context,
|
||||
private val extensionManager: ExtensionManager,
|
||||
private val sourceRepository: SourceDataRepository,
|
||||
) {
|
||||
private val downloadManager: DownloadManager by injectLazy()
|
||||
|
||||
private val scope = CoroutineScope(Job() + Dispatchers.IO)
|
||||
|
||||
@ -89,7 +92,12 @@ class SourceManager(
|
||||
private fun registerStubSource(sourceData: SourceData) {
|
||||
scope.launch {
|
||||
val (id, lang, name) = sourceData
|
||||
val dbSourceData = sourceRepository.getSourceData(id)
|
||||
if (dbSourceData == sourceData) return@launch
|
||||
sourceRepository.upsertSourceData(id, lang, name)
|
||||
if (dbSourceData != null) {
|
||||
downloadManager.renameSource(StubSource(dbSourceData), StubSource(sourceData))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user