diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt index 108f34310..172317755 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt @@ -125,36 +125,24 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { super.onResume() config.isThirdPartyIntent = false if (mStoredAnimateGifs != config.animateGifs) { - (directories_grid.adapter as? DirectoryAdapter)?.apply { - animateGifs = config.animateGifs - notifyDataSetChanged() - } + getDirectoryAdapter()?.updateAnimateGifs(config.animateGifs) } if (mStoredCropThumbnails != config.cropThumbnails) { - (directories_grid.adapter as? DirectoryAdapter)?.apply { - cropThumbnails = config.cropThumbnails - notifyDataSetChanged() - } + getDirectoryAdapter()?.updateCropThumbnails(config.cropThumbnails) } if (mStoredShowMediaCount != config.showMediaCount) { - (directories_grid.adapter as? DirectoryAdapter)?.apply { - showMediaCount = config.showMediaCount - notifyDataSetChanged() - } + getDirectoryAdapter()?.updateShowMediaCount(config.showMediaCount) } if (mStoredScrollHorizontally != config.scrollHorizontally) { - (directories_grid.adapter as? DirectoryAdapter)?.apply { - scrollVertically = config.viewTypeFolders == VIEW_TYPE_LIST || !config.scrollHorizontally - notifyDataSetChanged() - } + getDirectoryAdapter()?.updateScrollHorizontally(config.viewTypeFolders != VIEW_TYPE_LIST && config.scrollHorizontally) setupScrollDirection() } if (mStoredTextColor != config.textColor) { - (directories_grid.adapter as? DirectoryAdapter)?.updateTextColor(config.textColor) + getDirectoryAdapter()?.updateTextColor(config.textColor) } tryloadGallery() @@ -183,6 +171,8 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { removeTempFolder() } + private fun getDirectoryAdapter() = directories_grid.adapter as? DirectoryAdapter + private fun storeStateVariables() { config.apply { mStoredAnimateGifs = animateGifs diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt index ca3df1126..1b1040443 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt @@ -90,29 +90,20 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { override fun onResume() { super.onResume() if (mStoredAnimateGifs != config.animateGifs) { - (media_grid.adapter as? MediaAdapter)?.apply { - animateGifs = config.animateGifs - notifyDataSetChanged() - } + getMediaAdapter()?.updateAnimateGifs(config.animateGifs) } if (mStoredCropThumbnails != config.cropThumbnails) { - (media_grid.adapter as? MediaAdapter)?.apply { - cropThumbnails = config.cropThumbnails - notifyDataSetChanged() - } + getMediaAdapter()?.updateCropThumbnails(config.cropThumbnails) } if (mStoredScrollHorizontally != config.scrollHorizontally) { - (media_grid.adapter as? MediaAdapter)?.apply { - scrollVertically = config.viewTypeFiles == VIEW_TYPE_LIST || !config.scrollHorizontally - notifyDataSetChanged() - } + getMediaAdapter()?.updateScrollHorizontally(config.viewTypeFiles != VIEW_TYPE_LIST || !config.scrollHorizontally) setupScrollDirection() } if (mStoredTextColor != config.textColor) { - (media_grid.adapter as? MediaAdapter)?.updateTextColor(config.textColor) + getMediaAdapter()?.updateTextColor(config.textColor) } tryloadGallery() @@ -159,6 +150,8 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { } } + private fun getMediaAdapter() = media_grid.adapter as? MediaAdapter + private fun checkIfColorChanged() { if (media_grid.adapter != null && getRecyclerAdapter().primaryColor != config.primaryColor) { getRecyclerAdapter().primaryColor = config.primaryColor diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt index ed836f91d..b2f585e07 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt @@ -33,10 +33,6 @@ class DirectoryAdapter(val activity: SimpleActivity, var dirs: MutableList() private var textColor = config.textColor private var pinnedFolders = config.pinnedFolders + private var scrollHorizontally = config.scrollHorizontally + private var showMediaCount = config.showMediaCount + private var animateGifs = config.animateGifs + private var cropThumbnails = config.cropThumbnails fun toggleItemSelection(select: Boolean, pos: Int) { if (select) { @@ -355,7 +355,7 @@ class DirectoryAdapter(val activity: SimpleActivity, var dirs: MutableList (Unit)) : SwappingHolder(view, MultiSelector()) { - fun bindView(directory: Directory, isPinned: Boolean, scrollVertically: Boolean, isListView: Boolean, textColor: Int, showMediaCount: Boolean, + fun bindView(directory: Directory, isPinned: Boolean, scrollHorizontally: Boolean, isListView: Boolean, textColor: Int, showMediaCount: Boolean, animateGifs: Boolean, cropThumbnails: Boolean): View { itemView.apply { dir_name.text = directory.name dir_path?.text = "${directory.path.substringBeforeLast("/")}/" photo_cnt.text = directory.mediaCnt.toString() - activity.loadImage(directory.tmb, dir_thumbnail, scrollVertically, animateGifs, cropThumbnails) + activity.loadImage(directory.tmb, dir_thumbnail, scrollHorizontally, animateGifs, cropThumbnails) dir_pin.beVisibleIf(isPinned) dir_sd_card.beVisibleIf(activity.isPathOnSD(directory.path)) photo_cnt.beVisibleIf(showMediaCount) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt index 82e9d9fae..c4f8b2e09 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt @@ -31,9 +31,6 @@ class MediaAdapter(val activity: SimpleActivity, var media: MutableList, private val config = activity.config var actMode: ActionMode? = null var primaryColor = config.primaryColor - var scrollVertically = !config.scrollHorizontally - var animateGifs = config.animateGifs - var cropThumbnails = config.cropThumbnails private val multiSelector = MultiSelector() private val isListViewType = config.viewTypeFiles == VIEW_TYPE_LIST @@ -41,6 +38,9 @@ class MediaAdapter(val activity: SimpleActivity, var media: MutableList, private var itemViews = SparseArray() private val selectedPositions = HashSet() + private var scrollHorizontally = config.scrollHorizontally + private var animateGifs = config.animateGifs + private var cropThumbnails = config.cropThumbnails private var textColor = config.textColor private var displayFilenames = config.displayFileNames @@ -287,7 +287,7 @@ class MediaAdapter(val activity: SimpleActivity, var media: MutableList, } override fun onBindViewHolder(holder: ViewHolder, position: Int) { - itemViews.put(position, holder.bindView(media[position], displayFilenames, scrollVertically, isListViewType, textColor, animateGifs, cropThumbnails)) + itemViews.put(position, holder.bindView(media[position], displayFilenames, scrollHorizontally, isListViewType, textColor, animateGifs, cropThumbnails)) toggleItemSelection(selectedPositions.contains(position), position) holder.itemView.tag = holder } @@ -310,6 +310,21 @@ class MediaAdapter(val activity: SimpleActivity, var media: MutableList, notifyDataSetChanged() } + fun updateAnimateGifs(animateGifs: Boolean) { + this.animateGifs = animateGifs + notifyDataSetChanged() + } + + fun updateCropThumbnails(cropThumbnails: Boolean) { + this.cropThumbnails = cropThumbnails + notifyDataSetChanged() + } + + fun updateScrollHorizontally(scrollHorizontally: Boolean) { + this.scrollHorizontally = scrollHorizontally + notifyDataSetChanged() + } + fun updateTextColor(textColor: Int) { this.textColor = textColor notifyDataSetChanged() @@ -358,13 +373,13 @@ class MediaAdapter(val activity: SimpleActivity, var media: MutableList, val multiSelector: MultiSelector, val listener: MediaOperationsListener?, val allowMultiplePicks: Boolean, val itemClick: (Medium) -> (Unit)) : SwappingHolder(view, MultiSelector()) { - fun bindView(medium: Medium, displayFilenames: Boolean, scrollVertically: Boolean, isListViewType: Boolean, textColor: Int, + fun bindView(medium: Medium, displayFilenames: Boolean, scrollHorizontally: Boolean, isListViewType: Boolean, textColor: Int, animateGifs: Boolean, cropThumbnails: Boolean): View { itemView.apply { play_outline.visibility = if (medium.video) View.VISIBLE else View.GONE photo_name.beVisibleIf(displayFilenames || isListViewType) photo_name.text = medium.name - activity.loadImage(medium.path, medium_thumbnail, scrollVertically, animateGifs, cropThumbnails) + activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails) if (isListViewType) { photo_name.setTextColor(textColor) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/activity.kt index c7fd3b5e9..5423a0777 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/activity.kt @@ -201,8 +201,8 @@ fun SimpleActivity.toggleFileVisibility(oldFile: File, hide: Boolean, callback: } } -fun Activity.loadImage(path: String, target: MySquareImageView, verticalScroll: Boolean, animateGifs: Boolean, cropThumbnails: Boolean) { - target.isVerticalScrolling = verticalScroll +fun Activity.loadImage(path: String, target: MySquareImageView, horizontalScroll: Boolean, animateGifs: Boolean, cropThumbnails: Boolean) { + target.isHorizontalScrolling = horizontalScroll if (path.isImageFast() || path.isVideoFast()) { if (path.isPng()) { loadPng(path, target, cropThumbnails) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/views/MySquareImageView.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/views/MySquareImageView.kt index f254d4183..39a2f74be 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/views/MySquareImageView.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/views/MySquareImageView.kt @@ -5,7 +5,7 @@ import android.util.AttributeSet import android.widget.ImageView class MySquareImageView : ImageView { - var isVerticalScrolling = true + var isHorizontalScrolling = false constructor(context: Context) : super(context) @@ -14,7 +14,7 @@ class MySquareImageView : ImageView { constructor(context: Context, attrs: AttributeSet, defStyle: Int) : super(context, attrs, defStyle) override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) { - val spec = if (isVerticalScrolling) widthMeasureSpec else heightMeasureSpec + val spec = if (isHorizontalScrolling) heightMeasureSpec else widthMeasureSpec super.onMeasure(spec, spec) } }