mirror of
https://github.com/FossifyOrg/Gallery.git
synced 2024-11-23 13:08:00 +01:00
remove the old way of caching media files
This commit is contained in:
parent
cb5ac8510f
commit
af7108fd12
5 changed files with 24 additions and 62 deletions
|
@ -652,18 +652,6 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
|
|
||||||
setupAdapter()
|
setupAdapter()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isFromCache) {
|
|
||||||
storeFolder()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun storeFolder() {
|
|
||||||
if (!config.temporarilyShowHidden) {
|
|
||||||
Thread {
|
|
||||||
storeFolderItems(mPath, mMedia)
|
|
||||||
}.start()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun deleteFiles(fileDirItems: ArrayList<FileDirItem>) {
|
override fun deleteFiles(fileDirItems: ArrayList<FileDirItem>) {
|
||||||
|
|
|
@ -187,7 +187,8 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList<Medium>,
|
||||||
val fileDirItems = paths.map { FileDirItem(it, it.getFilenameFromPath()) } as ArrayList
|
val fileDirItems = paths.map { FileDirItem(it, it.getFilenameFromPath()) } as ArrayList
|
||||||
activity.tryCopyMoveFilesTo(fileDirItems, isCopyOperation) {
|
activity.tryCopyMoveFilesTo(fileDirItems, isCopyOperation) {
|
||||||
config.tempFolderPath = ""
|
config.tempFolderPath = ""
|
||||||
activity.applicationContext.updateStoredFolderItems(it)
|
activity.applicationContext.rescanFolderMedia(it)
|
||||||
|
activity.applicationContext.rescanFolderMedia(fileDirItems.first().getParentPath())
|
||||||
if (!isCopyOperation) {
|
if (!isCopyOperation) {
|
||||||
listener?.refreshItems()
|
listener?.refreshItems()
|
||||||
}
|
}
|
||||||
|
@ -237,7 +238,6 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList<Medium>,
|
||||||
media.removeAll(removeMedia)
|
media.removeAll(removeMedia)
|
||||||
listener?.deleteFiles(fileDirItems)
|
listener?.deleteFiles(fileDirItems)
|
||||||
removeSelectedItems()
|
removeSelectedItems()
|
||||||
updateStoredFolderItems()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -247,14 +247,6 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList<Medium>,
|
||||||
return selectedMedia
|
return selectedMedia
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateStoredFolderItems() {
|
|
||||||
Thread {
|
|
||||||
if (media.isNotEmpty()) {
|
|
||||||
activity.applicationContext.storeFolderItems(media.first().parentPath, media as ArrayList<Medium>)
|
|
||||||
}
|
|
||||||
}.start()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun updateMedia(newMedia: ArrayList<Medium>) {
|
fun updateMedia(newMedia: ArrayList<Medium>) {
|
||||||
if (newMedia.hashCode() != currentMediaHash) {
|
if (newMedia.hashCode() != currentMediaHash) {
|
||||||
currentMediaHash = newMedia.hashCode()
|
currentMediaHash = newMedia.hashCode()
|
||||||
|
|
|
@ -15,7 +15,6 @@ import com.bumptech.glide.load.DecodeFormat
|
||||||
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
import com.bumptech.glide.load.engine.DiskCacheStrategy
|
||||||
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
|
import com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions
|
||||||
import com.bumptech.glide.request.RequestOptions
|
import com.bumptech.glide.request.RequestOptions
|
||||||
import com.google.gson.Gson
|
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.OTG_PATH
|
import com.simplemobiletools.commons.helpers.OTG_PATH
|
||||||
import com.simplemobiletools.gallery.R
|
import com.simplemobiletools.gallery.R
|
||||||
|
@ -106,7 +105,6 @@ fun Context.getNoMediaFolders(callback: (folders: ArrayList<String>) -> Unit) {
|
||||||
val sortOrder = "${MediaStore.Files.FileColumns.DATE_MODIFIED} DESC"
|
val sortOrder = "${MediaStore.Files.FileColumns.DATE_MODIFIED} DESC"
|
||||||
|
|
||||||
var cursor: Cursor? = null
|
var cursor: Cursor? = null
|
||||||
|
|
||||||
try {
|
try {
|
||||||
cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder)
|
cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder)
|
||||||
if (cursor?.moveToFirst() == true) {
|
if (cursor?.moveToFirst() == true) {
|
||||||
|
@ -126,37 +124,25 @@ fun Context.getNoMediaFolders(callback: (folders: ArrayList<String>) -> Unit) {
|
||||||
}.start()
|
}.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.isPathInMediaStore(path: String): Boolean {
|
fun Context.rescanFolderMedia(path: String) {
|
||||||
if (path.startsWith(OTG_PATH)) {
|
Thread {
|
||||||
return false
|
getCachedMedia(path) {
|
||||||
}
|
val cached = it
|
||||||
|
GetMediaAsynctask(applicationContext, path, false, false, false) {
|
||||||
|
Thread {
|
||||||
|
val newMedia = it
|
||||||
|
val mediumDao = galleryDB.MediumDao()
|
||||||
|
mediumDao.insertAll(newMedia)
|
||||||
|
|
||||||
val projection = arrayOf(MediaStore.Images.Media.DATE_MODIFIED)
|
cached.forEach {
|
||||||
val uri = MediaStore.Files.getContentUri("external")
|
if (!newMedia.contains(it)) {
|
||||||
val selection = "${MediaStore.MediaColumns.DATA} = ?"
|
mediumDao.deleteMediumPath(it.path)
|
||||||
val selectionArgs = arrayOf(path)
|
}
|
||||||
val cursor = contentResolver.query(uri, projection, selection, selectionArgs, null)
|
}
|
||||||
|
}.start()
|
||||||
cursor?.use {
|
}.execute()
|
||||||
return cursor.moveToFirst()
|
}
|
||||||
}
|
}.start()
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Context.updateStoredFolderItems(path: String) {
|
|
||||||
GetMediaAsynctask(this, path, false, false, false) {
|
|
||||||
storeFolderItems(path, it)
|
|
||||||
}.execute()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun Context.storeFolderItems(path: String, items: ArrayList<Medium>) {
|
|
||||||
try {
|
|
||||||
val subList = items.subList(0, Math.min(SAVE_MEDIA_CNT, items.size))
|
|
||||||
val json = Gson().toJson(subList)
|
|
||||||
config.saveFolderMedia(path, json)
|
|
||||||
} catch (ignored: Exception) {
|
|
||||||
} catch (ignored: OutOfMemoryError) {
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.updateStoredDirectories() {
|
fun Context.updateStoredDirectories() {
|
||||||
|
@ -275,5 +261,9 @@ fun Context.getCachedMedia(path: String, callback: (ArrayList<Medium>) -> Unit)
|
||||||
val mediumDao = galleryDB.MediumDao()
|
val mediumDao = galleryDB.MediumDao()
|
||||||
val media = mediumDao.getMediaFromPath(path) as ArrayList<Medium>
|
val media = mediumDao.getMediaFromPath(path) as ArrayList<Medium>
|
||||||
callback(media)
|
callback(media)
|
||||||
|
|
||||||
|
media.filter { !File(it.path).exists() }.forEach {
|
||||||
|
mediumDao.deleteMediumPath(it.path)
|
||||||
|
}
|
||||||
}.start()
|
}.start()
|
||||||
}
|
}
|
||||||
|
|
|
@ -131,12 +131,6 @@ class Config(context: Context) : BaseConfig(context) {
|
||||||
get() = prefs.getStringSet(INCLUDED_FOLDERS, HashSet<String>())
|
get() = prefs.getStringSet(INCLUDED_FOLDERS, HashSet<String>())
|
||||||
set(includedFolders) = prefs.edit().remove(INCLUDED_FOLDERS).putStringSet(INCLUDED_FOLDERS, includedFolders).apply()
|
set(includedFolders) = prefs.edit().remove(INCLUDED_FOLDERS).putStringSet(INCLUDED_FOLDERS, includedFolders).apply()
|
||||||
|
|
||||||
fun saveFolderMedia(path: String, json: String) {
|
|
||||||
prefs.edit().putString(SAVE_FOLDER_PREFIX + path, json).apply()
|
|
||||||
}
|
|
||||||
|
|
||||||
fun loadFolderMedia(path: String) = prefs.getString(SAVE_FOLDER_PREFIX + path, "")
|
|
||||||
|
|
||||||
var autoplayVideos: Boolean
|
var autoplayVideos: Boolean
|
||||||
get() = prefs.getBoolean(AUTOPLAY_VIDEOS, false)
|
get() = prefs.getBoolean(AUTOPLAY_VIDEOS, false)
|
||||||
set(autoplay) = prefs.edit().putBoolean(AUTOPLAY_VIDEOS, autoplay).apply()
|
set(autoplay) = prefs.edit().putBoolean(AUTOPLAY_VIDEOS, autoplay).apply()
|
||||||
|
|
|
@ -25,7 +25,6 @@ const val MEDIA_LANDSCAPE_COLUMN_CNT = "media_landscape_column_cnt"
|
||||||
const val MEDIA_HORIZONTAL_COLUMN_CNT = "media_horizontal_column_cnt"
|
const val MEDIA_HORIZONTAL_COLUMN_CNT = "media_horizontal_column_cnt"
|
||||||
const val MEDIA_LANDSCAPE_HORIZONTAL_COLUMN_CNT = "media_landscape_horizontal_column_cnt"
|
const val MEDIA_LANDSCAPE_HORIZONTAL_COLUMN_CNT = "media_landscape_horizontal_column_cnt"
|
||||||
const val SHOW_ALL = "show_all" // display images and videos from all folders together
|
const val SHOW_ALL = "show_all" // display images and videos from all folders together
|
||||||
const val SAVE_FOLDER_PREFIX = "folder2_"
|
|
||||||
const val HIDE_FOLDER_TOOLTIP_SHOWN = "hide_folder_tooltip_shown"
|
const val HIDE_FOLDER_TOOLTIP_SHOWN = "hide_folder_tooltip_shown"
|
||||||
const val EXCLUDED_FOLDERS = "excluded_folders"
|
const val EXCLUDED_FOLDERS = "excluded_folders"
|
||||||
const val INCLUDED_FOLDERS = "included_folders"
|
const val INCLUDED_FOLDERS = "included_folders"
|
||||||
|
@ -66,7 +65,6 @@ const val MAX_COLUMN_COUNT = 20
|
||||||
const val SHOW_TEMP_HIDDEN_DURATION = 600000L
|
const val SHOW_TEMP_HIDDEN_DURATION = 600000L
|
||||||
const val CLICK_MAX_DURATION = 150
|
const val CLICK_MAX_DURATION = 150
|
||||||
const val DRAG_THRESHOLD = 8
|
const val DRAG_THRESHOLD = 8
|
||||||
const val SAVE_MEDIA_CNT = 80
|
|
||||||
|
|
||||||
const val DIRECTORY = "directory"
|
const val DIRECTORY = "directory"
|
||||||
const val MEDIUM = "medium"
|
const val MEDIUM = "medium"
|
||||||
|
|
Loading…
Reference in a new issue