mirror of
https://github.com/FossifyOrg/Gallery.git
synced 2025-02-21 12:53:12 +01:00
store MediumDao and DirectoryDao globally in Main and Media activities
This commit is contained in:
parent
264ffa7422
commit
e1214b4d47
2 changed files with 32 additions and 21 deletions
|
@ -33,6 +33,7 @@ import com.simplemobiletools.gallery.extensions.*
|
||||||
import com.simplemobiletools.gallery.helpers.*
|
import com.simplemobiletools.gallery.helpers.*
|
||||||
import com.simplemobiletools.gallery.interfaces.DirectoryDao
|
import com.simplemobiletools.gallery.interfaces.DirectoryDao
|
||||||
import com.simplemobiletools.gallery.interfaces.DirectoryOperationsListener
|
import com.simplemobiletools.gallery.interfaces.DirectoryOperationsListener
|
||||||
|
import com.simplemobiletools.gallery.interfaces.MediumDao
|
||||||
import com.simplemobiletools.gallery.models.AlbumCover
|
import com.simplemobiletools.gallery.models.AlbumCover
|
||||||
import com.simplemobiletools.gallery.models.Directory
|
import com.simplemobiletools.gallery.models.Directory
|
||||||
import com.simplemobiletools.gallery.models.Medium
|
import com.simplemobiletools.gallery.models.Medium
|
||||||
|
@ -73,11 +74,17 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
private var mStoredTextColor = 0
|
private var mStoredTextColor = 0
|
||||||
private var mStoredPrimaryColor = 0
|
private var mStoredPrimaryColor = 0
|
||||||
|
|
||||||
|
private lateinit var mMediumDao: MediumDao
|
||||||
|
private lateinit var mDirectoryDao: DirectoryDao
|
||||||
|
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_main)
|
setContentView(R.layout.activity_main)
|
||||||
appLaunched(BuildConfig.APPLICATION_ID)
|
appLaunched(BuildConfig.APPLICATION_ID)
|
||||||
|
|
||||||
|
mMediumDao = galleryDB.MediumDao()
|
||||||
|
mDirectoryDao = galleryDB.DirectoryDao()
|
||||||
|
|
||||||
config.temporarilyShowHidden = false
|
config.temporarilyShowHidden = false
|
||||||
config.tempSkipDeleteConfirmation = false
|
config.tempSkipDeleteConfirmation = false
|
||||||
mIsPickImageIntent = isPickImageIntent(intent)
|
mIsPickImageIntent = isPickImageIntent(intent)
|
||||||
|
@ -435,9 +442,8 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
}
|
}
|
||||||
|
|
||||||
Thread {
|
Thread {
|
||||||
val directoryDao = galleryDB.DirectoryDao()
|
|
||||||
folders.filter { !it.exists() }.forEach {
|
folders.filter { !it.exists() }.forEach {
|
||||||
directoryDao.deleteDirPath(it.absolutePath)
|
mDirectoryDao.deleteDirPath(it.absolutePath)
|
||||||
}
|
}
|
||||||
}.start()
|
}.start()
|
||||||
}
|
}
|
||||||
|
@ -693,8 +699,6 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
val albumCovers = config.parseAlbumCovers()
|
val albumCovers = config.parseAlbumCovers()
|
||||||
val includedFolders = config.includedFolders
|
val includedFolders = config.includedFolders
|
||||||
val isSortingAscending = config.directorySorting and SORT_DESCENDING == 0
|
val isSortingAscending = config.directorySorting and SORT_DESCENDING == 0
|
||||||
val mediumDao = galleryDB.MediumDao()
|
|
||||||
val directoryDao = galleryDB.DirectoryDao()
|
|
||||||
val getProperDateTaken = config.directorySorting and SORT_BY_DATE_TAKEN != 0
|
val getProperDateTaken = config.directorySorting and SORT_BY_DATE_TAKEN != 0
|
||||||
val favoritePaths = getFavoritePaths()
|
val favoritePaths = getFavoritePaths()
|
||||||
|
|
||||||
|
@ -731,14 +735,14 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
// update directories and media files in the local db, delete invalid items
|
// update directories and media files in the local db, delete invalid items
|
||||||
updateDBDirectory(directory)
|
updateDBDirectory(directory)
|
||||||
if (!directory.isRecycleBin()) {
|
if (!directory.isRecycleBin()) {
|
||||||
mediumDao.insertAll(curMedia)
|
mMediumDao.insertAll(curMedia)
|
||||||
}
|
}
|
||||||
getCachedMedia(directory.path, getVideosOnly, getImagesOnly) {
|
getCachedMedia(directory.path, getVideosOnly, getImagesOnly) {
|
||||||
it.forEach {
|
it.forEach {
|
||||||
if (!curMedia.contains(it)) {
|
if (!curMedia.contains(it)) {
|
||||||
val path = (it as? Medium)?.path
|
val path = (it as? Medium)?.path
|
||||||
if (path != null) {
|
if (path != null) {
|
||||||
mediumDao.deleteMediumPath(path)
|
mMediumDao.deleteMediumPath(path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -782,9 +786,9 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
val newDir = createDirectoryFromMedia(folder, newMedia, albumCovers, hiddenString, includedFolders, isSortingAscending)
|
val newDir = createDirectoryFromMedia(folder, newMedia, albumCovers, hiddenString, includedFolders, isSortingAscending)
|
||||||
dirs.add(newDir)
|
dirs.add(newDir)
|
||||||
showSortedDirs(dirs)
|
showSortedDirs(dirs)
|
||||||
directoryDao.insert(newDir)
|
mDirectoryDao.insert(newDir)
|
||||||
if (folder != RECYCLE_BIN) {
|
if (folder != RECYCLE_BIN) {
|
||||||
mediumDao.insertAll(newMedia)
|
mMediumDao.insertAll(newMedia)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -795,7 +799,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
directories_refresh_layout.isRefreshing = false
|
directories_refresh_layout.isRefreshing = false
|
||||||
checkPlaceholderVisibility(dirs)
|
checkPlaceholderVisibility(dirs)
|
||||||
}
|
}
|
||||||
checkInvalidDirectories(dirs, directoryDao)
|
checkInvalidDirectories(dirs)
|
||||||
|
|
||||||
val everShownFolders = config.everShownFolders as HashSet
|
val everShownFolders = config.everShownFolders as HashSet
|
||||||
dirs.mapTo(everShownFolders) { it.path }
|
dirs.mapTo(everShownFolders) { it.path }
|
||||||
|
@ -895,7 +899,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun checkInvalidDirectories(dirs: ArrayList<Directory>, directoryDao: DirectoryDao) {
|
private fun checkInvalidDirectories(dirs: ArrayList<Directory>) {
|
||||||
val invalidDirs = ArrayList<Directory>()
|
val invalidDirs = ArrayList<Directory>()
|
||||||
dirs.filter { !it.areFavorites() && !it.isRecycleBin() }.forEach {
|
dirs.filter { !it.areFavorites() && !it.isRecycleBin() }.forEach {
|
||||||
if (!getDoesFilePathExist(it.path)) {
|
if (!getDoesFilePathExist(it.path)) {
|
||||||
|
@ -918,7 +922,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
|
|
||||||
if (config.useRecycleBin) {
|
if (config.useRecycleBin) {
|
||||||
val binFolder = dirs.firstOrNull { it.path == RECYCLE_BIN }
|
val binFolder = dirs.firstOrNull { it.path == RECYCLE_BIN }
|
||||||
if (binFolder != null && galleryDB.MediumDao().getDeletedMedia().isEmpty()) {
|
if (binFolder != null && mMediumDao.getDeletedMedia().isEmpty()) {
|
||||||
invalidDirs.add(binFolder)
|
invalidDirs.add(binFolder)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -927,7 +931,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
dirs.removeAll(invalidDirs)
|
dirs.removeAll(invalidDirs)
|
||||||
showSortedDirs(dirs)
|
showSortedDirs(dirs)
|
||||||
invalidDirs.forEach {
|
invalidDirs.forEach {
|
||||||
directoryDao.deleteDirPath(it.path)
|
mDirectoryDao.deleteDirPath(it.path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -971,11 +975,10 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
||||||
private fun checkRecycleBinItems() {
|
private fun checkRecycleBinItems() {
|
||||||
if (config.useRecycleBin) {
|
if (config.useRecycleBin) {
|
||||||
Thread {
|
Thread {
|
||||||
val mediumDao = galleryDB.MediumDao()
|
val deletedMedia = mMediumDao.getDeletedMedia()
|
||||||
val deletedMedia = mediumDao.getDeletedMedia()
|
|
||||||
deletedMedia.forEach {
|
deletedMedia.forEach {
|
||||||
if (System.currentTimeMillis() > it.deletedTS + MONTH_MILLISECONDS) {
|
if (System.currentTimeMillis() > it.deletedTS + MONTH_MILLISECONDS) {
|
||||||
mediumDao.deleteMediumPath(it.path)
|
mMediumDao.deleteMediumPath(it.path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.start()
|
}.start()
|
||||||
|
|
|
@ -39,7 +39,9 @@ import com.simplemobiletools.gallery.dialogs.ExcludeFolderDialog
|
||||||
import com.simplemobiletools.gallery.dialogs.FilterMediaDialog
|
import com.simplemobiletools.gallery.dialogs.FilterMediaDialog
|
||||||
import com.simplemobiletools.gallery.extensions.*
|
import com.simplemobiletools.gallery.extensions.*
|
||||||
import com.simplemobiletools.gallery.helpers.*
|
import com.simplemobiletools.gallery.helpers.*
|
||||||
|
import com.simplemobiletools.gallery.interfaces.DirectoryDao
|
||||||
import com.simplemobiletools.gallery.interfaces.MediaOperationsListener
|
import com.simplemobiletools.gallery.interfaces.MediaOperationsListener
|
||||||
|
import com.simplemobiletools.gallery.interfaces.MediumDao
|
||||||
import com.simplemobiletools.gallery.models.Medium
|
import com.simplemobiletools.gallery.models.Medium
|
||||||
import com.simplemobiletools.gallery.models.ThumbnailItem
|
import com.simplemobiletools.gallery.models.ThumbnailItem
|
||||||
import com.simplemobiletools.gallery.models.ThumbnailSection
|
import com.simplemobiletools.gallery.models.ThumbnailSection
|
||||||
|
@ -75,6 +77,9 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
||||||
private var mStoredTextColor = 0
|
private var mStoredTextColor = 0
|
||||||
private var mStoredPrimaryColor = 0
|
private var mStoredPrimaryColor = 0
|
||||||
|
|
||||||
|
private lateinit var mMediumDao: MediumDao
|
||||||
|
private lateinit var mDirectoryDao: DirectoryDao
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
var mMedia = ArrayList<ThumbnailItem>()
|
var mMedia = ArrayList<ThumbnailItem>()
|
||||||
}
|
}
|
||||||
|
@ -82,6 +87,10 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
setContentView(R.layout.activity_media)
|
setContentView(R.layout.activity_media)
|
||||||
|
|
||||||
|
mMediumDao = galleryDB.MediumDao()
|
||||||
|
mDirectoryDao = galleryDB.DirectoryDao()
|
||||||
|
|
||||||
intent.apply {
|
intent.apply {
|
||||||
mIsGetImageIntent = getBooleanExtra(GET_IMAGE_INTENT, false)
|
mIsGetImageIntent = getBooleanExtra(GET_IMAGE_INTENT, false)
|
||||||
mIsGetVideoIntent = getBooleanExtra(GET_VIDEO_INTENT, false)
|
mIsGetVideoIntent = getBooleanExtra(GET_VIDEO_INTENT, false)
|
||||||
|
@ -447,7 +456,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
||||||
val paths = mMedia.filter { it is Medium }.map { (it as Medium).path } as ArrayList<String>
|
val paths = mMedia.filter { it is Medium }.map { (it as Medium).path } as ArrayList<String>
|
||||||
restoreRecycleBinPaths(paths) {
|
restoreRecycleBinPaths(paths) {
|
||||||
Thread {
|
Thread {
|
||||||
galleryDB.DirectoryDao().deleteDirPath(RECYCLE_BIN)
|
mDirectoryDao.deleteDirPath(RECYCLE_BIN)
|
||||||
}.start()
|
}.start()
|
||||||
finish()
|
finish()
|
||||||
}
|
}
|
||||||
|
@ -575,7 +584,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
||||||
|
|
||||||
if (mPath == FAVORITES) {
|
if (mPath == FAVORITES) {
|
||||||
Thread {
|
Thread {
|
||||||
galleryDB.DirectoryDao().deleteDirPath(FAVORITES)
|
mDirectoryDao.deleteDirPath(FAVORITES)
|
||||||
}.start()
|
}.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -588,7 +597,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
||||||
|
|
||||||
private fun deleteDBDirectory() {
|
private fun deleteDBDirectory() {
|
||||||
Thread {
|
Thread {
|
||||||
galleryDB.DirectoryDao().deleteDirPath(mPath)
|
mDirectoryDao.deleteDirPath(mPath)
|
||||||
}.start()
|
}.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -815,7 +824,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
||||||
mLatestMediaDateId = getLatestMediaByDateId()
|
mLatestMediaDateId = getLatestMediaByDateId()
|
||||||
if (!isFromCache) {
|
if (!isFromCache) {
|
||||||
val mediaToInsert = (mMedia).filter { it is Medium && it.deletedTS == 0L }.map { it as Medium }
|
val mediaToInsert = (mMedia).filter { it is Medium && it.deletedTS == 0L }.map { it as Medium }
|
||||||
galleryDB.MediumDao().insertAll(mediaToInsert)
|
mMediumDao.insertAll(mediaToInsert)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -847,11 +856,10 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
||||||
mMedia.removeAll { filtered.map { it.path }.contains((it as? Medium)?.path) }
|
mMedia.removeAll { filtered.map { it.path }.contains((it as? Medium)?.path) }
|
||||||
|
|
||||||
Thread {
|
Thread {
|
||||||
val mediumDao = galleryDB.MediumDao()
|
|
||||||
val useRecycleBin = config.useRecycleBin
|
val useRecycleBin = config.useRecycleBin
|
||||||
filtered.forEach {
|
filtered.forEach {
|
||||||
if (!useRecycleBin) {
|
if (!useRecycleBin) {
|
||||||
mediumDao.deleteMediumPath(it.path)
|
mMediumDao.deleteMediumPath(it.path)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}.start()
|
}.start()
|
||||||
|
|
Loading…
Reference in a new issue