mirror of
https://github.com/FossifyOrg/Gallery.git
synced 2024-11-26 14:37:59 +01:00
show an icon at the folder for OTG devices too
This commit is contained in:
parent
db2e0dc776
commit
85a0a69599
10 changed files with 30 additions and 15 deletions
|
@ -47,7 +47,7 @@ ext {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.simplemobiletools:commons:3.19.10'
|
implementation 'com.simplemobiletools:commons:3.19.11'
|
||||||
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
|
implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
|
||||||
implementation 'com.android.support:multidex:1.0.3'
|
implementation 'com.android.support:multidex:1.0.3'
|
||||||
implementation 'it.sephiroth.android.exif:library:1.0.1'
|
implementation 'it.sephiroth.android.exif:library:1.0.1'
|
||||||
|
|
|
@ -676,7 +676,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
||||||
val lastModified = if (isSortingAscending) Math.min(firstItem.modified, lastItem.modified) else Math.max(firstItem.modified, lastItem.modified)
|
val lastModified = if (isSortingAscending) Math.min(firstItem.modified, lastItem.modified) else Math.max(firstItem.modified, lastItem.modified)
|
||||||
val dateTaken = if (isSortingAscending) Math.min(firstItem.taken, lastItem.taken) else Math.max(firstItem.taken, lastItem.taken)
|
val dateTaken = if (isSortingAscending) Math.min(firstItem.taken, lastItem.taken) else Math.max(firstItem.taken, lastItem.taken)
|
||||||
val size = curMedia.sumByLong { it.size }
|
val size = curMedia.sumByLong { it.size }
|
||||||
return Directory(null, path, thumbnail, dirName, curMedia.size, lastModified, dateTaken, size, isPathOnSD(path), mediaTypes)
|
return Directory(null, path, thumbnail, dirName, curMedia.size, lastModified, dateTaken, size, getPathLocation(path), mediaTypes)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun setupAdapter(dirs: ArrayList<Directory>) {
|
private fun setupAdapter(dirs: ArrayList<Directory>) {
|
||||||
|
|
|
@ -19,10 +19,7 @@ import com.simplemobiletools.gallery.R
|
||||||
import com.simplemobiletools.gallery.dialogs.ExcludeFolderDialog
|
import com.simplemobiletools.gallery.dialogs.ExcludeFolderDialog
|
||||||
import com.simplemobiletools.gallery.dialogs.PickMediumDialog
|
import com.simplemobiletools.gallery.dialogs.PickMediumDialog
|
||||||
import com.simplemobiletools.gallery.extensions.*
|
import com.simplemobiletools.gallery.extensions.*
|
||||||
import com.simplemobiletools.gallery.helpers.TYPE_GIFS
|
import com.simplemobiletools.gallery.helpers.*
|
||||||
import com.simplemobiletools.gallery.helpers.TYPE_IMAGES
|
|
||||||
import com.simplemobiletools.gallery.helpers.TYPE_VIDEOS
|
|
||||||
import com.simplemobiletools.gallery.helpers.VIEW_TYPE_LIST
|
|
||||||
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 kotlinx.android.synthetic.main.directory_item_list.view.*
|
import kotlinx.android.synthetic.main.directory_item_list.view.*
|
||||||
|
@ -420,7 +417,11 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: ArrayList<Directo
|
||||||
|
|
||||||
activity.loadImage(thumbnailType, directory.tmb, dir_thumbnail, scrollHorizontally, animateGifs, cropThumbnails)
|
activity.loadImage(thumbnailType, directory.tmb, dir_thumbnail, scrollHorizontally, animateGifs, cropThumbnails)
|
||||||
dir_pin.beVisibleIf(pinnedFolders.contains(directory.path))
|
dir_pin.beVisibleIf(pinnedFolders.contains(directory.path))
|
||||||
dir_sd_card.beVisibleIf(directory.isOnSDCard)
|
dir_location.beVisibleIf(directory.location != LOCAITON_INTERNAL)
|
||||||
|
if (dir_location.isVisible()) {
|
||||||
|
dir_location.setImageResource(if (directory.location == LOCATION_SD) R.drawable.ic_sd_card else R.drawable.ic_usb)
|
||||||
|
}
|
||||||
|
|
||||||
photo_cnt.beVisibleIf(showMediaCount)
|
photo_cnt.beVisibleIf(showMediaCount)
|
||||||
|
|
||||||
if (isListViewType) {
|
if (isListViewType) {
|
||||||
|
@ -428,7 +429,7 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: ArrayList<Directo
|
||||||
dir_path.setTextColor(textColor)
|
dir_path.setTextColor(textColor)
|
||||||
photo_cnt.setTextColor(textColor)
|
photo_cnt.setTextColor(textColor)
|
||||||
dir_pin.applyColorFilter(textColor)
|
dir_pin.applyColorFilter(textColor)
|
||||||
dir_sd_card.applyColorFilter(textColor)
|
dir_location.applyColorFilter(textColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import com.simplemobiletools.gallery.interfaces.MediumDao
|
||||||
import com.simplemobiletools.gallery.models.Directory
|
import com.simplemobiletools.gallery.models.Directory
|
||||||
import com.simplemobiletools.gallery.models.Medium
|
import com.simplemobiletools.gallery.models.Medium
|
||||||
|
|
||||||
@Database(entities = [(Directory::class), (Medium::class)], version = 1)
|
@Database(entities = [(Directory::class), (Medium::class)], version = 2)
|
||||||
abstract class GalleryDataBase : RoomDatabase() {
|
abstract class GalleryDataBase : RoomDatabase() {
|
||||||
|
|
||||||
abstract fun DirectoryDao(): DirectoryDao
|
abstract fun DirectoryDao(): DirectoryDao
|
||||||
|
@ -22,7 +22,9 @@ abstract class GalleryDataBase : RoomDatabase() {
|
||||||
fun getInstance(context: Context): GalleryDataBase {
|
fun getInstance(context: Context): GalleryDataBase {
|
||||||
if (INSTANCE == null) {
|
if (INSTANCE == null) {
|
||||||
synchronized(GalleryDataBase::class) {
|
synchronized(GalleryDataBase::class) {
|
||||||
INSTANCE = Room.databaseBuilder(context.applicationContext, GalleryDataBase::class.java, "gallery.db").build()
|
INSTANCE = Room.databaseBuilder(context.applicationContext, GalleryDataBase::class.java, "gallery.db")
|
||||||
|
.fallbackToDestructiveMigration()
|
||||||
|
.build()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return INSTANCE!!
|
return INSTANCE!!
|
||||||
|
|
|
@ -215,13 +215,21 @@ fun Context.addTempFolderIfNeeded(dirs: ArrayList<Directory>): ArrayList<Directo
|
||||||
val directories = ArrayList<Directory>()
|
val directories = ArrayList<Directory>()
|
||||||
val tempFolderPath = config.tempFolderPath
|
val tempFolderPath = config.tempFolderPath
|
||||||
if (tempFolderPath.isNotEmpty()) {
|
if (tempFolderPath.isNotEmpty()) {
|
||||||
val newFolder = Directory(null, tempFolderPath, "", tempFolderPath.getFilenameFromPath(), 0, 0, 0, 0L, isPathOnSD(tempFolderPath), 0)
|
val newFolder = Directory(null, tempFolderPath, "", tempFolderPath.getFilenameFromPath(), 0, 0, 0, 0L, getPathLocation(tempFolderPath), 0)
|
||||||
directories.add(newFolder)
|
directories.add(newFolder)
|
||||||
}
|
}
|
||||||
directories.addAll(dirs)
|
directories.addAll(dirs)
|
||||||
return directories
|
return directories
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun Context.getPathLocation(path: String): Int {
|
||||||
|
return when {
|
||||||
|
isPathOnSD(path) -> LOCATION_SD
|
||||||
|
path.startsWith(OTG_PATH) -> LOCATION_OTG
|
||||||
|
else -> LOCAITON_INTERNAL
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun Context.loadPng(path: String, target: MySquareImageView, cropThumbnails: Boolean) {
|
fun Context.loadPng(path: String, target: MySquareImageView, cropThumbnails: Boolean) {
|
||||||
val options = RequestOptions()
|
val options = RequestOptions()
|
||||||
.signature(path.getFileSignature())
|
.signature(path.getFileSignature())
|
||||||
|
|
|
@ -102,3 +102,7 @@ const val EXT_ALBUM = 1024
|
||||||
const val TYPE_IMAGES = 1
|
const val TYPE_IMAGES = 1
|
||||||
const val TYPE_VIDEOS = 2
|
const val TYPE_VIDEOS = 2
|
||||||
const val TYPE_GIFS = 4
|
const val TYPE_GIFS = 4
|
||||||
|
|
||||||
|
const val LOCAITON_INTERNAL = 1
|
||||||
|
const val LOCATION_SD = 2
|
||||||
|
const val LOCATION_OTG = 3
|
||||||
|
|
|
@ -9,7 +9,7 @@ import com.simplemobiletools.gallery.models.Directory
|
||||||
|
|
||||||
@Dao
|
@Dao
|
||||||
interface DirectoryDao {
|
interface DirectoryDao {
|
||||||
@Query("SELECT path, thumbnail, filename, media_count, last_modified, date_taken, size, is_on_sd_card, media_types FROM directories")
|
@Query("SELECT path, thumbnail, filename, media_count, last_modified, date_taken, size, location, media_types FROM directories")
|
||||||
fun getAll(): List<Directory>
|
fun getAll(): List<Directory>
|
||||||
|
|
||||||
@Insert(onConflict = REPLACE)
|
@Insert(onConflict = REPLACE)
|
||||||
|
|
|
@ -19,7 +19,7 @@ data class Directory(
|
||||||
@ColumnInfo(name = "last_modified") var modified: Long,
|
@ColumnInfo(name = "last_modified") var modified: Long,
|
||||||
@ColumnInfo(name = "date_taken") var taken: Long,
|
@ColumnInfo(name = "date_taken") var taken: Long,
|
||||||
@ColumnInfo(name = "size") var size: Long,
|
@ColumnInfo(name = "size") var size: Long,
|
||||||
@ColumnInfo(name = "is_on_sd_card") val isOnSDCard: Boolean,
|
@ColumnInfo(name = "location") val location: Int,
|
||||||
@ColumnInfo(name = "media_types") var types: Int) : Serializable, Comparable<Directory> {
|
@ColumnInfo(name = "media_types") var types: Int) : Serializable, Comparable<Directory> {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
|
|
@ -82,7 +82,7 @@
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/dir_sd_card"
|
android:id="@+id/dir_location"
|
||||||
android:layout_width="@dimen/sd_card_icon_size"
|
android:layout_width="@dimen/sd_card_icon_size"
|
||||||
android:layout_height="@dimen/sd_card_icon_size"
|
android:layout_height="@dimen/sd_card_icon_size"
|
||||||
android:layout_alignParentBottom="true"
|
android:layout_alignParentBottom="true"
|
||||||
|
|
|
@ -76,7 +76,7 @@
|
||||||
android:paddingBottom="@dimen/tiny_margin">
|
android:paddingBottom="@dimen/tiny_margin">
|
||||||
|
|
||||||
<ImageView
|
<ImageView
|
||||||
android:id="@+id/dir_sd_card"
|
android:id="@+id/dir_location"
|
||||||
android:layout_width="@dimen/sd_card_icon_size"
|
android:layout_width="@dimen/sd_card_icon_size"
|
||||||
android:layout_height="@dimen/sd_card_icon_size"
|
android:layout_height="@dimen/sd_card_icon_size"
|
||||||
android:paddingBottom="@dimen/small_margin"
|
android:paddingBottom="@dimen/small_margin"
|
||||||
|
|
Loading…
Reference in a new issue