avoid deleting newly created temporary folder too early

This commit is contained in:
tibbi 2018-04-26 16:08:20 +02:00
parent a0cf205c8c
commit 7b2a3d6365
3 changed files with 14 additions and 19 deletions

View file

@ -102,7 +102,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
NewAppDialog(this, NEW_APP_PACKAGE, "Simple Clock")
}*/
if (hasPermission(PERMISSION_WRITE_STORAGE)) {
if (!config.wasOTGHandled && hasPermission(PERMISSION_WRITE_STORAGE)) {
checkOTGInclusion()
}
}
@ -255,18 +255,16 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
}
private fun checkOTGInclusion() {
if (!config.wasOTGHandled) {
Thread {
if (hasOTGConnected()) {
runOnUiThread {
handleOTGPermission {
config.addIncludedFolder(OTG_PATH)
}
Thread {
if (hasOTGConnected()) {
runOnUiThread {
handleOTGPermission {
config.addIncludedFolder(OTG_PATH)
}
config.wasOTGHandled = true
}
}.start()
}
config.wasOTGHandled = true
}
}.start()
}
private fun tryLoadGallery() {
@ -301,7 +299,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
directories_refresh_layout.isRefreshing = true
}
}
gotDirectories(it)
gotDirectories(addTempFolderIfNeeded(it))
}
}
@ -377,8 +375,9 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
}
Thread {
val directoryDao = galleryDB.DirectoryDao()
folders.filter { !it.exists() }.forEach {
galleryDB.DirectoryDao().deleteDirPath(it.absolutePath)
directoryDao.deleteDirPath(it.absolutePath)
}
}.start()
}
@ -760,7 +759,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
dirs.forEach {
if (!getDoesFilePathExist(it.path)) {
invalidDirs.add(it)
} else {
} else if (it.path != config.tempFolderPath) {
val children = if (it.path.startsWith(OTG_PATH)) getOTGFolderChildrenNames(it.path) else File(it.path).list()?.asList()
val hasMediaFile = children?.any { it.isImageVideoGif() } ?: false
if (!hasMediaFile) {

View file

@ -312,7 +312,7 @@ fun Context.getCachedMedia(path: String, getVideosOnly: Boolean = false, getImag
fun Context.removeInvalidDBDirectories(dirs: ArrayList<Directory>? = null, directoryDao: DirectoryDao = galleryDB.DirectoryDao()) {
val dirsToCheck = dirs ?: directoryDao.getAll()
dirsToCheck.filter { !getDoesFilePathExist(it.path) }.forEach {
dirsToCheck.filter { !getDoesFilePathExist(it.path) && it.path != config.tempFolderPath }.forEach {
directoryDao.deleteDirPath(it.path)
}
}

View file

@ -1,7 +1,6 @@
package com.simplemobiletools.gallery.interfaces
import android.arch.persistence.room.Dao
import android.arch.persistence.room.Delete
import android.arch.persistence.room.Insert
import android.arch.persistence.room.OnConflictStrategy.REPLACE
import android.arch.persistence.room.Query
@ -18,9 +17,6 @@ interface DirectoryDao {
@Insert(onConflict = REPLACE)
fun insertAll(directories: List<Directory>)
@Delete
fun deleteDir(directory: Directory)
@Query("DELETE FROM directories WHERE path = :path")
fun deleteDirPath(path: String)