mirror of
https://github.com/FossifyOrg/Gallery.git
synced 2024-11-23 13:08:00 +01:00
delete medium from the local db on delete too
This commit is contained in:
parent
ee07da6277
commit
cb5ac8510f
5 changed files with 29 additions and 7 deletions
|
@ -244,7 +244,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
|||
val newFolder = File(config.tempFolderPath)
|
||||
if (newFolder.exists() && newFolder.isDirectory) {
|
||||
if (newFolder.list()?.isEmpty() == true) {
|
||||
deleteFile(newFolder.toFileDirItem(applicationContext), true)
|
||||
tryDeleteFileDirItem(newFolder.toFileDirItem(applicationContext), true)
|
||||
}
|
||||
}
|
||||
config.tempFolderPath = ""
|
||||
|
|
|
@ -444,7 +444,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
|||
private fun deleteDirectoryIfEmpty() {
|
||||
val fileDirItem = FileDirItem(mPath, mPath.getFilenameFromPath())
|
||||
if (config.deleteEmptyFolders && !fileDirItem.isDownloadsFolder() && fileDirItem.isDirectory && fileDirItem.getProperFileCount(applicationContext, true) == 0) {
|
||||
deleteFile(fileDirItem, true)
|
||||
tryDeleteFileDirItem(fileDirItem, true)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -669,6 +669,15 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
|||
override fun deleteFiles(fileDirItems: ArrayList<FileDirItem>) {
|
||||
val filtered = fileDirItems.filter { it.path.isImageVideoGif() } as ArrayList
|
||||
deleteFiles(filtered) {
|
||||
Thread {
|
||||
val mediumDao = galleryDB.MediumDao()
|
||||
filtered.forEach {
|
||||
if (!File(it.path).exists()) {
|
||||
mediumDao.deleteMediumPath(it.path)
|
||||
}
|
||||
}
|
||||
}.start()
|
||||
|
||||
if (!it) {
|
||||
toast(R.string.unknown_error_occurred)
|
||||
} else if (mMedia.isEmpty()) {
|
||||
|
|
|
@ -547,7 +547,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
}
|
||||
|
||||
if (tmpFile.length() > 0 && getDoesFilePathExist(newPath)) {
|
||||
deleteFile(FileDirItem(newPath, newPath.getFilenameFromPath()))
|
||||
tryDeleteFileDirItem(FileDirItem(newPath, newPath.getFilenameFromPath()))
|
||||
}
|
||||
copyFile(tmpFile, newFile)
|
||||
scanPath(newPath)
|
||||
|
@ -575,7 +575,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
} catch (e: Exception) {
|
||||
showErrorToast(e)
|
||||
} finally {
|
||||
deleteFile(FileDirItem(tmpFile.absolutePath, tmpFile.absolutePath.getFilenameFromPath()))
|
||||
tryDeleteFileDirItem(FileDirItem(tmpFile.absolutePath, tmpFile.absolutePath.getFilenameFromPath()))
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -741,7 +741,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
|
||||
private fun deleteConfirmed() {
|
||||
val path = getCurrentMedia()[mPos].path
|
||||
deleteFile(FileDirItem(path, path.getFilenameFromPath())) {
|
||||
tryDeleteFileDirItem(FileDirItem(path, path.getFilenameFromPath())) {
|
||||
refreshViewPager()
|
||||
}
|
||||
}
|
||||
|
@ -819,7 +819,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
private fun deleteDirectoryIfEmpty() {
|
||||
val fileDirItem = FileDirItem(mDirectory, mDirectory.getFilenameFromPath(), getIsPathDirectory(mDirectory))
|
||||
if (config.deleteEmptyFolders && !fileDirItem.isDownloadsFolder() && fileDirItem.isDirectory && fileDirItem.getProperFileCount(applicationContext, true) == 0) {
|
||||
deleteFile(fileDirItem, true)
|
||||
tryDeleteFileDirItem(fileDirItem, true)
|
||||
}
|
||||
|
||||
scanPath(mDirectory)
|
||||
|
|
|
@ -134,7 +134,7 @@ fun BaseSimpleActivity.removeNoMedia(path: String, callback: (() -> Unit)? = nul
|
|||
return
|
||||
}
|
||||
|
||||
deleteFile(file.toFileDirItem(applicationContext)) {
|
||||
tryDeleteFileDirItem(file.toFileDirItem(applicationContext)) {
|
||||
callback?.invoke()
|
||||
}
|
||||
}
|
||||
|
@ -165,3 +165,13 @@ fun BaseSimpleActivity.tryCopyMoveFilesTo(fileDirItems: ArrayList<FileDirItem>,
|
|||
copyMoveFilesTo(fileDirItems, source.trimEnd('/'), it, isCopyOperation, true, config.shouldShowHidden, callback)
|
||||
}
|
||||
}
|
||||
|
||||
fun BaseSimpleActivity.tryDeleteFileDirItem(fileDirItem: FileDirItem, allowDeleteFolder: Boolean = false, callback: ((wasSuccess: Boolean) -> Unit)? = null) {
|
||||
deleteFile(fileDirItem, allowDeleteFolder) {
|
||||
callback?.invoke(it)
|
||||
|
||||
Thread {
|
||||
galleryDB.MediumDao().deleteMediumPath(fileDirItem.path)
|
||||
}.start()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -19,4 +19,7 @@ interface MediumDao {
|
|||
|
||||
@Insert(onConflict = REPLACE)
|
||||
fun insertAll(media: List<Medium>)
|
||||
|
||||
@Query("DELETE FROM media WHERE full_path = :path")
|
||||
fun deleteMediumPath(path: String)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue