|
@ -1,6 +1,14 @@
|
||||||
Changelog
|
Changelog
|
||||||
==========
|
==========
|
||||||
|
|
||||||
|
Version 3.0.1 *(2017-12-06)*
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
* Fix missing launcher icon on some devices
|
||||||
|
* Added an info bubble at scrolling by dragging
|
||||||
|
* Allow zooming gifs
|
||||||
|
* Display raw .dng files
|
||||||
|
|
||||||
Version 3.0.0 *(2017-12-04)*
|
Version 3.0.0 *(2017-12-04)*
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,8 @@ android {
|
||||||
applicationId "com.simplemobiletools.gallery"
|
applicationId "com.simplemobiletools.gallery"
|
||||||
minSdkVersion 16
|
minSdkVersion 16
|
||||||
targetSdkVersion 27
|
targetSdkVersion 27
|
||||||
versionCode 146
|
versionCode 147
|
||||||
versionName "3.0.0"
|
versionName "3.0.1"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
setProperty("archivesBaseName", "gallery")
|
setProperty("archivesBaseName", "gallery")
|
||||||
}
|
}
|
||||||
|
@ -43,13 +43,14 @@ ext {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation 'com.simplemobiletools:commons:3.1.4'
|
implementation 'com.simplemobiletools:commons:3.2.0'
|
||||||
implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.8.0'
|
implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.8.0'
|
||||||
implementation 'com.theartofdev.edmodo:android-image-cropper:2.4.0'
|
implementation 'com.theartofdev.edmodo:android-image-cropper:2.4.0'
|
||||||
implementation 'com.android.support:multidex:1.0.2'
|
implementation 'com.android.support:multidex:1.0.2'
|
||||||
implementation 'com.google.code.gson:gson:2.8.2'
|
implementation 'com.google.code.gson:gson:2.8.2'
|
||||||
implementation 'it.sephiroth.android.exif:library:1.0.1'
|
implementation 'it.sephiroth.android.exif:library:1.0.1'
|
||||||
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.8'
|
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.8'
|
||||||
|
implementation 'com.github.chrisbanes:PhotoView:2.1.3'
|
||||||
|
|
||||||
debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion"
|
debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion"
|
||||||
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion"
|
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion"
|
||||||
|
|
|
@ -57,6 +57,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
||||||
private var mStoredCropThumbnails = true
|
private var mStoredCropThumbnails = true
|
||||||
private var mStoredScrollHorizontally = true
|
private var mStoredScrollHorizontally = true
|
||||||
private var mStoredShowMediaCount = true
|
private var mStoredShowMediaCount = true
|
||||||
|
private var mStoredShowInfoBubble = true
|
||||||
private var mStoredTextColor = 0
|
private var mStoredTextColor = 0
|
||||||
private var mLoadedInitialPhotos = false
|
private var mLoadedInitialPhotos = false
|
||||||
private var mIsPasswordProtectionPending = false
|
private var mIsPasswordProtectionPending = false
|
||||||
|
@ -113,7 +114,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
||||||
getDirectoryAdapter()?.updateShowMediaCount(config.showMediaCount)
|
getDirectoryAdapter()?.updateShowMediaCount(config.showMediaCount)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mStoredScrollHorizontally != config.scrollHorizontally) {
|
if (mStoredScrollHorizontally != config.scrollHorizontally || mStoredShowInfoBubble != config.showInfoBubble) {
|
||||||
getDirectoryAdapter()?.updateScrollHorizontally(config.viewTypeFolders != VIEW_TYPE_LIST && config.scrollHorizontally)
|
getDirectoryAdapter()?.updateScrollHorizontally(config.viewTypeFolders != VIEW_TYPE_LIST && config.scrollHorizontally)
|
||||||
setupScrollDirection()
|
setupScrollDirection()
|
||||||
}
|
}
|
||||||
|
@ -122,6 +123,8 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
||||||
getDirectoryAdapter()?.updateTextColor(config.textColor)
|
getDirectoryAdapter()?.updateTextColor(config.textColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
directories_horizontal_fastscroller.updateBubbleColors()
|
||||||
|
directories_vertical_fastscroller.updateBubbleColors()
|
||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
directories_empty_text_label.setTextColor(config.textColor)
|
directories_empty_text_label.setTextColor(config.textColor)
|
||||||
directories_empty_text.setTextColor(config.primaryColor)
|
directories_empty_text.setTextColor(config.primaryColor)
|
||||||
|
@ -200,6 +203,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
||||||
mStoredCropThumbnails = cropThumbnails
|
mStoredCropThumbnails = cropThumbnails
|
||||||
mStoredScrollHorizontally = scrollHorizontally
|
mStoredScrollHorizontally = scrollHorizontally
|
||||||
mStoredShowMediaCount = showMediaCount
|
mStoredShowMediaCount = showMediaCount
|
||||||
|
mStoredShowInfoBubble = showInfoBubble
|
||||||
mStoredTextColor = textColor
|
mStoredTextColor = textColor
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -581,8 +585,12 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
||||||
directories_horizontal_fastscroller.beVisibleIf(allowHorizontalScroll)
|
directories_horizontal_fastscroller.beVisibleIf(allowHorizontalScroll)
|
||||||
|
|
||||||
if (allowHorizontalScroll) {
|
if (allowHorizontalScroll) {
|
||||||
directories_horizontal_fastscroller.setViews(directories_grid, directories_refresh_layout)
|
directories_horizontal_fastscroller.allowBubbleDisplay = config.showInfoBubble
|
||||||
|
directories_horizontal_fastscroller.setViews(directories_grid, directories_refresh_layout) {
|
||||||
|
directories_horizontal_fastscroller.updateBubbleText(mDirs[it].getBubbleText())
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
directories_vertical_fastscroller.allowBubbleDisplay = config.showInfoBubble
|
||||||
directories_vertical_fastscroller.setViews(directories_grid, directories_refresh_layout) {
|
directories_vertical_fastscroller.setViews(directories_grid, directories_refresh_layout) {
|
||||||
directories_vertical_fastscroller.updateBubbleText(mDirs[it].getBubbleText())
|
directories_vertical_fastscroller.updateBubbleText(mDirs[it].getBubbleText())
|
||||||
}
|
}
|
||||||
|
@ -595,7 +603,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
||||||
|
|
||||||
mLastMediaHandler.removeCallbacksAndMessages(null)
|
mLastMediaHandler.removeCallbacksAndMessages(null)
|
||||||
mLastMediaHandler.postDelayed({
|
mLastMediaHandler.postDelayed({
|
||||||
Thread({
|
Thread {
|
||||||
val mediaId = getLatestMediaId()
|
val mediaId = getLatestMediaId()
|
||||||
if (mLatestMediaId != mediaId) {
|
if (mLatestMediaId != mediaId) {
|
||||||
mLatestMediaId = mediaId
|
mLatestMediaId = mediaId
|
||||||
|
@ -605,7 +613,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
|
||||||
} else {
|
} else {
|
||||||
checkLastMediaChanged()
|
checkLastMediaChanged()
|
||||||
}
|
}
|
||||||
}).start()
|
}.start()
|
||||||
}, LAST_MEDIA_CHECK_PERIOD)
|
}, LAST_MEDIA_CHECK_PERIOD)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -53,6 +53,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
private var mStoredAnimateGifs = true
|
private var mStoredAnimateGifs = true
|
||||||
private var mStoredCropThumbnails = true
|
private var mStoredCropThumbnails = true
|
||||||
private var mStoredScrollHorizontally = true
|
private var mStoredScrollHorizontally = true
|
||||||
|
private var mStoredShowInfoBubble = true
|
||||||
private var mStoredTextColor = 0
|
private var mStoredTextColor = 0
|
||||||
private var mLastDrawnHashCode = 0
|
private var mLastDrawnHashCode = 0
|
||||||
private var mLatestMediaId = 0L
|
private var mLatestMediaId = 0L
|
||||||
|
@ -74,7 +75,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
mAllowPickingMultiple = getBooleanExtra(Intent.EXTRA_ALLOW_MULTIPLE, false)
|
mAllowPickingMultiple = getBooleanExtra(Intent.EXTRA_ALLOW_MULTIPLE, false)
|
||||||
}
|
}
|
||||||
|
|
||||||
media_refresh_layout.setOnRefreshListener({ getMedia() })
|
media_refresh_layout.setOnRefreshListener { getMedia() }
|
||||||
mPath = intent.getStringExtra(DIRECTORY)
|
mPath = intent.getStringExtra(DIRECTORY)
|
||||||
storeStateVariables()
|
storeStateVariables()
|
||||||
if (mShowAll)
|
if (mShowAll)
|
||||||
|
@ -100,7 +101,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
getMediaAdapter()?.updateCropThumbnails(config.cropThumbnails)
|
getMediaAdapter()?.updateCropThumbnails(config.cropThumbnails)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mStoredScrollHorizontally != config.scrollHorizontally) {
|
if (mStoredScrollHorizontally != config.scrollHorizontally || mStoredShowInfoBubble != config.showInfoBubble) {
|
||||||
getMediaAdapter()?.updateScrollHorizontally(config.viewTypeFiles != VIEW_TYPE_LIST || !config.scrollHorizontally)
|
getMediaAdapter()?.updateScrollHorizontally(config.viewTypeFiles != VIEW_TYPE_LIST || !config.scrollHorizontally)
|
||||||
setupScrollDirection()
|
setupScrollDirection()
|
||||||
}
|
}
|
||||||
|
@ -109,6 +110,8 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
getMediaAdapter()?.updateTextColor(config.textColor)
|
getMediaAdapter()?.updateTextColor(config.textColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
media_horizontal_fastscroller.updateBubbleColors()
|
||||||
|
media_vertical_fastscroller.updateBubbleColors()
|
||||||
tryloadGallery()
|
tryloadGallery()
|
||||||
invalidateOptionsMenu()
|
invalidateOptionsMenu()
|
||||||
media_empty_text_label.setTextColor(config.textColor)
|
media_empty_text_label.setTextColor(config.textColor)
|
||||||
|
@ -140,6 +143,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
mStoredAnimateGifs = animateGifs
|
mStoredAnimateGifs = animateGifs
|
||||||
mStoredCropThumbnails = cropThumbnails
|
mStoredCropThumbnails = cropThumbnails
|
||||||
mStoredScrollHorizontally = scrollHorizontally
|
mStoredScrollHorizontally = scrollHorizontally
|
||||||
|
mStoredShowInfoBubble = showInfoBubble
|
||||||
mStoredTextColor = textColor
|
mStoredTextColor = textColor
|
||||||
mShowAll = showAll
|
mShowAll = showAll
|
||||||
}
|
}
|
||||||
|
@ -149,7 +153,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
handlePermission(PERMISSION_WRITE_STORAGE) {
|
handlePermission(PERMISSION_WRITE_STORAGE) {
|
||||||
if (it) {
|
if (it) {
|
||||||
val dirName = getHumanizedFilename(mPath)
|
val dirName = getHumanizedFilename(mPath)
|
||||||
title = if (mShowAll) resources.getString(R.string.all_folders) else dirName
|
supportActionBar?.title = if (mShowAll) resources.getString(R.string.all_folders) else dirName
|
||||||
getMedia()
|
getMedia()
|
||||||
setupLayoutManager()
|
setupLayoutManager()
|
||||||
checkIfColorChanged()
|
checkIfColorChanged()
|
||||||
|
@ -201,8 +205,12 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
media_horizontal_fastscroller.beVisibleIf(allowHorizontalScroll)
|
media_horizontal_fastscroller.beVisibleIf(allowHorizontalScroll)
|
||||||
|
|
||||||
if (allowHorizontalScroll) {
|
if (allowHorizontalScroll) {
|
||||||
media_horizontal_fastscroller.setViews(media_grid, media_refresh_layout)
|
media_horizontal_fastscroller.allowBubbleDisplay = config.showInfoBubble
|
||||||
|
media_horizontal_fastscroller.setViews(media_grid, media_refresh_layout) {
|
||||||
|
media_horizontal_fastscroller.updateBubbleText(mMedia[it].getBubbleText())
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
media_vertical_fastscroller.allowBubbleDisplay = config.showInfoBubble
|
||||||
media_vertical_fastscroller.setViews(media_grid, media_refresh_layout) {
|
media_vertical_fastscroller.setViews(media_grid, media_refresh_layout) {
|
||||||
media_vertical_fastscroller.updateBubbleText(mMedia[it].getBubbleText())
|
media_vertical_fastscroller.updateBubbleText(mMedia[it].getBubbleText())
|
||||||
}
|
}
|
||||||
|
@ -215,7 +223,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
|
|
||||||
mLastMediaHandler.removeCallbacksAndMessages(null)
|
mLastMediaHandler.removeCallbacksAndMessages(null)
|
||||||
mLastMediaHandler.postDelayed({
|
mLastMediaHandler.postDelayed({
|
||||||
Thread({
|
Thread {
|
||||||
val mediaId = getLatestMediaId()
|
val mediaId = getLatestMediaId()
|
||||||
if (mLatestMediaId != mediaId) {
|
if (mLatestMediaId != mediaId) {
|
||||||
mLatestMediaId = mediaId
|
mLatestMediaId = mediaId
|
||||||
|
@ -225,7 +233,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
|
||||||
} else {
|
} else {
|
||||||
checkLastMediaChanged()
|
checkLastMediaChanged()
|
||||||
}
|
}
|
||||||
}).start()
|
}.start()
|
||||||
}, LAST_MEDIA_CHECK_PERIOD)
|
}, LAST_MEDIA_CHECK_PERIOD)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
|
||||||
val bundle = Bundle()
|
val bundle = Bundle()
|
||||||
val file = File(mUri.toString())
|
val file = File(mUri.toString())
|
||||||
mMedium = Medium(getFilenameFromUri(mUri!!), mUri.toString(), mIsVideo, 0, 0, file.length())
|
mMedium = Medium(getFilenameFromUri(mUri!!), mUri.toString(), mIsVideo, 0, 0, file.length())
|
||||||
title = mMedium!!.name
|
supportActionBar?.title = mMedium!!.name
|
||||||
bundle.putSerializable(MEDIUM, mMedium)
|
bundle.putSerializable(MEDIUM, mMedium)
|
||||||
|
|
||||||
if (savedInstanceState == null) {
|
if (savedInstanceState == null) {
|
||||||
|
|
|
@ -114,7 +114,7 @@ class SetWallpaperActivity : SimpleActivity(), CropImageView.OnCropImageComplete
|
||||||
|
|
||||||
if (result.error == null) {
|
if (result.error == null) {
|
||||||
toast(R.string.setting_wallpaper)
|
toast(R.string.setting_wallpaper)
|
||||||
Thread({
|
Thread {
|
||||||
val bitmap = result.bitmap
|
val bitmap = result.bitmap
|
||||||
val wantedHeight = wallpaperManager.desiredMinimumHeight
|
val wantedHeight = wallpaperManager.desiredMinimumHeight
|
||||||
val ratio = wantedHeight / bitmap.height.toFloat()
|
val ratio = wantedHeight / bitmap.height.toFloat()
|
||||||
|
@ -132,7 +132,7 @@ class SetWallpaperActivity : SimpleActivity(), CropImageView.OnCropImageComplete
|
||||||
setResult(Activity.RESULT_CANCELED)
|
setResult(Activity.RESULT_CANCELED)
|
||||||
}
|
}
|
||||||
finish()
|
finish()
|
||||||
}).start()
|
}.start()
|
||||||
} else {
|
} else {
|
||||||
toast("${getString(R.string.image_editing_failed)}: ${result.error.message}")
|
toast("${getString(R.string.image_editing_failed)}: ${result.error.message}")
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,6 +55,7 @@ class SettingsActivity : SimpleActivity() {
|
||||||
setupAllowVideoGestures()
|
setupAllowVideoGestures()
|
||||||
setupShowMediaCount()
|
setupShowMediaCount()
|
||||||
setupKeepLastModified()
|
setupKeepLastModified()
|
||||||
|
setupShowInfoBubble()
|
||||||
setupShowExtendedDetails()
|
setupShowExtendedDetails()
|
||||||
setupManageExtendedDetails()
|
setupManageExtendedDetails()
|
||||||
updateTextColors(settings_holder)
|
updateTextColors(settings_holder)
|
||||||
|
@ -254,6 +255,14 @@ class SettingsActivity : SimpleActivity() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun setupShowInfoBubble() {
|
||||||
|
settings_show_info_bubble.isChecked = config.showInfoBubble
|
||||||
|
settings_show_info_bubble_holder.setOnClickListener {
|
||||||
|
settings_show_info_bubble.toggle()
|
||||||
|
config.showInfoBubble = settings_show_info_bubble.isChecked
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private fun setupScreenRotation() {
|
private fun setupScreenRotation() {
|
||||||
settings_screen_rotation.text = getScreenRotationText()
|
settings_screen_rotation.text = getScreenRotationText()
|
||||||
settings_screen_rotation_holder.setOnClickListener {
|
settings_screen_rotation_holder.setOnClickListener {
|
||||||
|
|
|
@ -185,7 +185,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
||||||
showSystemUI()
|
showSystemUI()
|
||||||
|
|
||||||
mDirectory = File(mPath).parent
|
mDirectory = File(mPath).parent
|
||||||
title = mPath.getFilenameFromPath()
|
supportActionBar?.title = mPath.getFilenameFromPath()
|
||||||
|
|
||||||
view_pager.onGlobalLayout {
|
view_pager.onGlobalLayout {
|
||||||
if (!isActivityDestroyed()) {
|
if (!isActivityDestroyed()) {
|
||||||
|
@ -463,7 +463,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
||||||
private fun toggleFileVisibility(hide: Boolean) {
|
private fun toggleFileVisibility(hide: Boolean) {
|
||||||
toggleFileVisibility(getCurrentFile(), hide) {
|
toggleFileVisibility(getCurrentFile(), hide) {
|
||||||
val newFileName = it.absolutePath.getFilenameFromPath()
|
val newFileName = it.absolutePath.getFilenameFromPath()
|
||||||
title = newFileName
|
supportActionBar?.title = newFileName
|
||||||
|
|
||||||
getCurrentMedium()!!.apply {
|
getCurrentMedium()!!.apply {
|
||||||
name = newFileName
|
name = newFileName
|
||||||
|
@ -499,9 +499,9 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
||||||
SaveAsDialog(this, currPath, false) {
|
SaveAsDialog(this, currPath, false) {
|
||||||
val selectedFile = File(it)
|
val selectedFile = File(it)
|
||||||
handleSAFDialog(selectedFile) {
|
handleSAFDialog(selectedFile) {
|
||||||
Thread({
|
Thread {
|
||||||
saveImageToFile(currPath, it)
|
saveImageToFile(currPath, it)
|
||||||
}).start()
|
}.start()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -835,7 +835,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
||||||
private fun updateActionbarTitle() {
|
private fun updateActionbarTitle() {
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
if (mPos < getCurrentMedia().size) {
|
if (mPos < getCurrentMedia().size) {
|
||||||
title = getCurrentMedia()[mPos].path.getFilenameFromPath()
|
supportActionBar?.title = getCurrentMedia()[mPos].path.getFilenameFromPath()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.simplemobiletools.gallery.adapters
|
package com.simplemobiletools.gallery.adapters
|
||||||
|
|
||||||
import android.graphics.PorterDuff
|
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
@ -342,8 +341,8 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: MutableList<Direc
|
||||||
dir_name.setTextColor(textColor)
|
dir_name.setTextColor(textColor)
|
||||||
dir_path.setTextColor(textColor)
|
dir_path.setTextColor(textColor)
|
||||||
photo_cnt.setTextColor(textColor)
|
photo_cnt.setTextColor(textColor)
|
||||||
dir_pin.setColorFilter(textColor, PorterDuff.Mode.SRC_IN)
|
dir_pin.applyColorFilter(textColor)
|
||||||
dir_sd_card.setColorFilter(textColor, PorterDuff.Mode.SRC_IN)
|
dir_sd_card.applyColorFilter(textColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
package com.simplemobiletools.gallery.adapters
|
package com.simplemobiletools.gallery.adapters
|
||||||
|
|
||||||
import android.graphics.PorterDuff
|
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
import android.view.View
|
import android.view.View
|
||||||
|
@ -19,7 +18,7 @@ import com.simplemobiletools.gallery.dialogs.DeleteWithRememberDialog
|
||||||
import com.simplemobiletools.gallery.extensions.*
|
import com.simplemobiletools.gallery.extensions.*
|
||||||
import com.simplemobiletools.gallery.helpers.VIEW_TYPE_LIST
|
import com.simplemobiletools.gallery.helpers.VIEW_TYPE_LIST
|
||||||
import com.simplemobiletools.gallery.models.Medium
|
import com.simplemobiletools.gallery.models.Medium
|
||||||
import kotlinx.android.synthetic.main.photo_video_item_grid.view.*
|
import kotlinx.android.synthetic.main.photo_video_item_list.view.*
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
|
@ -142,7 +141,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList<Medium>,
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun toggleFileVisibility(hide: Boolean) {
|
private fun toggleFileVisibility(hide: Boolean) {
|
||||||
Thread({
|
Thread {
|
||||||
getSelectedMedia().forEach {
|
getSelectedMedia().forEach {
|
||||||
val oldFile = File(it.path)
|
val oldFile = File(it.path)
|
||||||
activity.toggleFileVisibility(oldFile, hide)
|
activity.toggleFileVisibility(oldFile, hide)
|
||||||
|
@ -151,7 +150,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList<Medium>,
|
||||||
listener?.refreshItems()
|
listener?.refreshItems()
|
||||||
finishActMode()
|
finishActMode()
|
||||||
}
|
}
|
||||||
}).start()
|
}.start()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun shareMedia() {
|
private fun shareMedia() {
|
||||||
|
@ -264,7 +263,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList<Medium>,
|
||||||
|
|
||||||
if (isListViewType) {
|
if (isListViewType) {
|
||||||
photo_name.setTextColor(textColor)
|
photo_name.setTextColor(textColor)
|
||||||
play_outline.setColorFilter(textColor, PorterDuff.Mode.SRC_IN)
|
play_outline.applyColorFilter(textColor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@ package com.simplemobiletools.gallery.dialogs
|
||||||
|
|
||||||
import android.content.DialogInterface
|
import android.content.DialogInterface
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||||
|
@ -20,7 +19,7 @@ class ChangeSortingDialog(val activity: BaseSimpleActivity, val isDirectorySorti
|
||||||
private var view: View
|
private var view: View
|
||||||
|
|
||||||
init {
|
init {
|
||||||
view = LayoutInflater.from(activity).inflate(R.layout.dialog_change_sorting, null).apply {
|
view = activity.layoutInflater.inflate(R.layout.dialog_change_sorting, null).apply {
|
||||||
use_for_this_folder_divider.beVisibleIf(showFolderCheckbox)
|
use_for_this_folder_divider.beVisibleIf(showFolderCheckbox)
|
||||||
sorting_dialog_use_for_this_folder.beVisibleIf(showFolderCheckbox)
|
sorting_dialog_use_for_this_folder.beVisibleIf(showFolderCheckbox)
|
||||||
sorting_dialog_use_for_this_folder.isChecked = config.hasCustomSorting(path)
|
sorting_dialog_use_for_this_folder.isChecked = config.hasCustomSorting(path)
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.simplemobiletools.gallery.dialogs
|
package com.simplemobiletools.gallery.dialogs
|
||||||
|
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.RadioButton
|
import android.widget.RadioButton
|
||||||
import android.widget.RadioGroup
|
import android.widget.RadioGroup
|
||||||
|
@ -18,7 +17,7 @@ class ExcludeFolderDialog(val activity: BaseSimpleActivity, val selectedPaths: L
|
||||||
var radioGroup: RadioGroup? = null
|
var radioGroup: RadioGroup? = null
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val view = LayoutInflater.from(activity).inflate(R.layout.dialog_exclude_folder, null).apply {
|
val view = activity.layoutInflater.inflate(R.layout.dialog_exclude_folder, null).apply {
|
||||||
exclude_folder_parent.beVisibleIf(alternativePaths.size > 1)
|
exclude_folder_parent.beVisibleIf(alternativePaths.size > 1)
|
||||||
|
|
||||||
radioGroup = exclude_folder_radio_group
|
radioGroup = exclude_folder_radio_group
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
package com.simplemobiletools.gallery.dialogs
|
package com.simplemobiletools.gallery.dialogs
|
||||||
|
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||||
import com.simplemobiletools.gallery.R
|
import com.simplemobiletools.gallery.R
|
||||||
|
@ -13,7 +11,7 @@ import com.simplemobiletools.gallery.helpers.VIDEOS
|
||||||
import kotlinx.android.synthetic.main.dialog_filter_media.view.*
|
import kotlinx.android.synthetic.main.dialog_filter_media.view.*
|
||||||
|
|
||||||
class FilterMediaDialog(val activity: BaseSimpleActivity, val callback: (result: Int) -> Unit) {
|
class FilterMediaDialog(val activity: BaseSimpleActivity, val callback: (result: Int) -> Unit) {
|
||||||
private var view: View = LayoutInflater.from(activity).inflate(R.layout.dialog_filter_media, null)
|
private var view = activity.layoutInflater.inflate(R.layout.dialog_filter_media, null)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val filterMedia = activity.config.filterMedia
|
val filterMedia = activity.config.filterMedia
|
||||||
|
|
|
@ -1,18 +1,15 @@
|
||||||
package com.simplemobiletools.gallery.dialogs
|
package com.simplemobiletools.gallery.dialogs
|
||||||
|
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
import com.simplemobiletools.commons.extensions.setupDialogStuff
|
||||||
import com.simplemobiletools.gallery.R
|
import com.simplemobiletools.gallery.R
|
||||||
import com.simplemobiletools.gallery.activities.SimpleActivity
|
|
||||||
import com.simplemobiletools.gallery.extensions.config
|
import com.simplemobiletools.gallery.extensions.config
|
||||||
import com.simplemobiletools.gallery.helpers.*
|
import com.simplemobiletools.gallery.helpers.*
|
||||||
import kotlinx.android.synthetic.main.dialog_manage_extended_details.view.*
|
import kotlinx.android.synthetic.main.dialog_manage_extended_details.view.*
|
||||||
|
|
||||||
class ManageExtendedDetailsDialog(val activity: BaseSimpleActivity, val callback: (result: Int) -> Unit) {
|
class ManageExtendedDetailsDialog(val activity: BaseSimpleActivity, val callback: (result: Int) -> Unit) {
|
||||||
private var view: View = LayoutInflater.from(activity).inflate(R.layout.dialog_manage_extended_details, null)
|
private var view = activity.layoutInflater.inflate(R.layout.dialog_manage_extended_details, null)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val details = activity.config.extendedDetails
|
val details = activity.config.extendedDetails
|
||||||
|
|
|
@ -2,7 +2,6 @@ package com.simplemobiletools.gallery.dialogs
|
||||||
|
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.support.v7.widget.GridLayoutManager
|
import android.support.v7.widget.GridLayoutManager
|
||||||
import android.view.LayoutInflater
|
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
import com.simplemobiletools.commons.dialogs.FilePickerDialog
|
import com.simplemobiletools.commons.dialogs.FilePickerDialog
|
||||||
import com.simplemobiletools.commons.extensions.beGoneIf
|
import com.simplemobiletools.commons.extensions.beGoneIf
|
||||||
|
@ -23,7 +22,7 @@ import kotlinx.android.synthetic.main.dialog_directory_picker.view.*
|
||||||
class PickDirectoryDialog(val activity: BaseSimpleActivity, val sourcePath: String, val callback: (path: String) -> Unit) {
|
class PickDirectoryDialog(val activity: BaseSimpleActivity, val sourcePath: String, val callback: (path: String) -> Unit) {
|
||||||
var dialog: AlertDialog
|
var dialog: AlertDialog
|
||||||
var shownDirectories = ArrayList<Directory>()
|
var shownDirectories = ArrayList<Directory>()
|
||||||
var view = LayoutInflater.from(activity).inflate(R.layout.dialog_directory_picker, null)
|
var view = activity.layoutInflater.inflate(R.layout.dialog_directory_picker, null)
|
||||||
var isGridViewType = activity.config.viewTypeFolders == VIEW_TYPE_GRID
|
var isGridViewType = activity.config.viewTypeFolders == VIEW_TYPE_GRID
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
@ -84,9 +83,15 @@ class PickDirectoryDialog(val activity: BaseSimpleActivity, val sourcePath: Stri
|
||||||
directories_horizontal_fastscroller.beVisibleIf(scrollHorizontally)
|
directories_horizontal_fastscroller.beVisibleIf(scrollHorizontally)
|
||||||
|
|
||||||
if (scrollHorizontally) {
|
if (scrollHorizontally) {
|
||||||
directories_horizontal_fastscroller.setViews(directories_grid)
|
directories_horizontal_fastscroller.allowBubbleDisplay = activity.config.showInfoBubble
|
||||||
|
directories_horizontal_fastscroller.setViews(directories_grid) {
|
||||||
|
directories_horizontal_fastscroller.updateBubbleText(dirs[it].getBubbleText())
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
directories_vertical_fastscroller.setViews(directories_grid)
|
directories_vertical_fastscroller.allowBubbleDisplay = activity.config.showInfoBubble
|
||||||
|
directories_vertical_fastscroller.setViews(directories_grid) {
|
||||||
|
directories_vertical_fastscroller.updateBubbleText(dirs[it].getBubbleText())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,6 @@ package com.simplemobiletools.gallery.dialogs
|
||||||
|
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.support.v7.widget.GridLayoutManager
|
import android.support.v7.widget.GridLayoutManager
|
||||||
import android.view.LayoutInflater
|
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
import com.simplemobiletools.commons.extensions.beGoneIf
|
import com.simplemobiletools.commons.extensions.beGoneIf
|
||||||
import com.simplemobiletools.commons.extensions.beVisibleIf
|
import com.simplemobiletools.commons.extensions.beVisibleIf
|
||||||
|
@ -19,7 +18,7 @@ import kotlinx.android.synthetic.main.dialog_medium_picker.view.*
|
||||||
class PickMediumDialog(val activity: BaseSimpleActivity, val path: String, val callback: (path: String) -> Unit) {
|
class PickMediumDialog(val activity: BaseSimpleActivity, val path: String, val callback: (path: String) -> Unit) {
|
||||||
var dialog: AlertDialog
|
var dialog: AlertDialog
|
||||||
var shownMedia = ArrayList<Medium>()
|
var shownMedia = ArrayList<Medium>()
|
||||||
val view = LayoutInflater.from(activity).inflate(R.layout.dialog_medium_picker, null)
|
val view = activity.layoutInflater.inflate(R.layout.dialog_medium_picker, null)
|
||||||
var isGridViewType = activity.config.viewTypeFiles == VIEW_TYPE_GRID
|
var isGridViewType = activity.config.viewTypeFiles == VIEW_TYPE_GRID
|
||||||
|
|
||||||
init {
|
init {
|
||||||
|
@ -74,9 +73,15 @@ class PickMediumDialog(val activity: BaseSimpleActivity, val path: String, val c
|
||||||
media_horizontal_fastscroller.beVisibleIf(scrollHorizontally)
|
media_horizontal_fastscroller.beVisibleIf(scrollHorizontally)
|
||||||
|
|
||||||
if (scrollHorizontally) {
|
if (scrollHorizontally) {
|
||||||
media_horizontal_fastscroller.setViews(media_grid)
|
media_horizontal_fastscroller.allowBubbleDisplay = activity.config.showInfoBubble
|
||||||
|
media_horizontal_fastscroller.setViews(media_grid) {
|
||||||
|
media_horizontal_fastscroller.updateBubbleText(media[it].getBubbleText())
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
media_vertical_fastscroller.setViews(media_grid)
|
media_vertical_fastscroller.allowBubbleDisplay = activity.config.showInfoBubble
|
||||||
|
media_vertical_fastscroller.setViews(media_grid) {
|
||||||
|
media_vertical_fastscroller.updateBubbleText(media[it].getBubbleText())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@ import android.graphics.Point
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.text.Editable
|
import android.text.Editable
|
||||||
import android.text.TextWatcher
|
import android.text.TextWatcher
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import android.widget.EditText
|
import android.widget.EditText
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
|
@ -16,7 +15,7 @@ import kotlinx.android.synthetic.main.resize_image.view.*
|
||||||
|
|
||||||
class ResizeDialog(val activity: BaseSimpleActivity, val size: Point, val callback: (newSize: Point) -> Unit) {
|
class ResizeDialog(val activity: BaseSimpleActivity, val size: Point, val callback: (newSize: Point) -> Unit) {
|
||||||
init {
|
init {
|
||||||
val view = LayoutInflater.from(activity).inflate(R.layout.resize_image, null)
|
val view = activity.layoutInflater.inflate(R.layout.resize_image, null)
|
||||||
val widthView = view.image_width
|
val widthView = view.image_width
|
||||||
val heightView = view.image_height
|
val heightView = view.image_height
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.simplemobiletools.gallery.dialogs
|
package com.simplemobiletools.gallery.dialogs
|
||||||
|
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
|
||||||
|
@ -15,7 +14,7 @@ class SaveAsDialog(val activity: BaseSimpleActivity, val path: String, val appen
|
||||||
|
|
||||||
init {
|
init {
|
||||||
var realPath = File(path).parent.trimEnd('/')
|
var realPath = File(path).parent.trimEnd('/')
|
||||||
val view = LayoutInflater.from(activity).inflate(R.layout.dialog_save_as, null).apply {
|
val view = activity.layoutInflater.inflate(R.layout.dialog_save_as, null).apply {
|
||||||
save_as_path.text = activity.humanizePath(realPath)
|
save_as_path.text = activity.humanizePath(realPath)
|
||||||
|
|
||||||
val fullName = path.getFilenameFromPath()
|
val fullName = path.getFilenameFromPath()
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package com.simplemobiletools.gallery.dialogs
|
package com.simplemobiletools.gallery.dialogs
|
||||||
|
|
||||||
import android.support.v7.app.AlertDialog
|
import android.support.v7.app.AlertDialog
|
||||||
import android.view.LayoutInflater
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.WindowManager
|
import android.view.WindowManager
|
||||||
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
import com.simplemobiletools.commons.activities.BaseSimpleActivity
|
||||||
|
@ -17,7 +16,7 @@ class SlideshowDialog(val activity: BaseSimpleActivity, val callback: () -> Unit
|
||||||
val view: View
|
val view: View
|
||||||
|
|
||||||
init {
|
init {
|
||||||
view = LayoutInflater.from(activity).inflate(R.layout.dialog_slideshow, null).apply {
|
view = activity.layoutInflater.inflate(R.layout.dialog_slideshow, null).apply {
|
||||||
interval_value.setOnClickListener {
|
interval_value.setOnClickListener {
|
||||||
val text = interval_value.text
|
val text = interval_value.text
|
||||||
if (text.isNotEmpty()) {
|
if (text.isNotEmpty()) {
|
||||||
|
|
|
@ -70,7 +70,7 @@ fun Activity.launchCamera() {
|
||||||
|
|
||||||
fun SimpleActivity.launchAbout() {
|
fun SimpleActivity.launchAbout() {
|
||||||
startAboutActivity(R.string.app_name, LICENSE_KOTLIN or LICENSE_GLIDE or LICENSE_CROPPER or LICENSE_MULTISELECT or LICENSE_RTL
|
startAboutActivity(R.string.app_name, LICENSE_KOTLIN or LICENSE_GLIDE or LICENSE_CROPPER or LICENSE_MULTISELECT or LICENSE_RTL
|
||||||
or LICENSE_SUBSAMPLING or LICENSE_PATTERN or LICENSE_REPRINT or LICENSE_GIF_DRAWABLE, BuildConfig.VERSION_NAME)
|
or LICENSE_SUBSAMPLING or LICENSE_PATTERN or LICENSE_REPRINT or LICENSE_GIF_DRAWABLE or LICENSE_PHOTOVIEW, BuildConfig.VERSION_NAME)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun AppCompatActivity.showSystemUI() {
|
fun AppCompatActivity.showSystemUI() {
|
||||||
|
|
|
@ -223,7 +223,7 @@ class PhotoFragment : ViewPagerFragment() {
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addZoomableView() {
|
private fun addZoomableView() {
|
||||||
if ((medium.isImage()) && isFragmentVisible && view.subsampling_view.isGone()) {
|
if ((medium.isImage()) && isFragmentVisible && view.subsampling_view.isGone() && !medium.isDng()) {
|
||||||
val exif = android.media.ExifInterface(medium.path)
|
val exif = android.media.ExifInterface(medium.path)
|
||||||
val orientation = exif.getAttributeInt(android.media.ExifInterface.TAG_ORIENTATION, android.media.ExifInterface.ORIENTATION_NORMAL)
|
val orientation = exif.getAttributeInt(android.media.ExifInterface.TAG_ORIENTATION, android.media.ExifInterface.ORIENTATION_NORMAL)
|
||||||
|
|
||||||
|
|
|
@ -41,9 +41,10 @@ data class Directory(val path: String, val tmb: String, val name: String, var me
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getBubbleText() = when {
|
fun getBubbleText() = when {
|
||||||
|
sorting and SORT_BY_NAME != 0 -> name
|
||||||
|
sorting and SORT_BY_PATH != 0 -> path
|
||||||
sorting and SORT_BY_SIZE != 0 -> size.formatSize()
|
sorting and SORT_BY_SIZE != 0 -> size.formatSize()
|
||||||
sorting and SORT_BY_DATE_MODIFIED != 0 -> modified.formatDate()
|
sorting and SORT_BY_DATE_MODIFIED != 0 -> modified.formatDate()
|
||||||
sorting and SORT_BY_DATE_TAKEN != 0 -> taken.formatDate()
|
else -> taken.formatDate()
|
||||||
else -> name
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,12 +18,15 @@ data class Medium(var name: String, var path: String, val video: Boolean, val mo
|
||||||
|
|
||||||
fun isImage() = !isGif() && !video
|
fun isImage() = !isGif() && !video
|
||||||
|
|
||||||
|
fun isDng() = path.isDng()
|
||||||
|
|
||||||
fun getMimeType() = path.getMimeTypeFromPath()
|
fun getMimeType() = path.getMimeTypeFromPath()
|
||||||
|
|
||||||
override fun compareTo(other: Medium): Int {
|
override fun compareTo(other: Medium): Int {
|
||||||
var result: Int
|
var result: Int
|
||||||
when {
|
when {
|
||||||
sorting and SORT_BY_NAME != 0 -> result = AlphanumericComparator().compare(name.toLowerCase(), other.name.toLowerCase())
|
sorting and SORT_BY_NAME != 0 -> result = AlphanumericComparator().compare(name.toLowerCase(), other.name.toLowerCase())
|
||||||
|
sorting and SORT_BY_PATH != 0 -> result = AlphanumericComparator().compare(path.toLowerCase(), other.path.toLowerCase())
|
||||||
sorting and SORT_BY_SIZE != 0 -> result = when {
|
sorting and SORT_BY_SIZE != 0 -> result = when {
|
||||||
size == other.size -> 0
|
size == other.size -> 0
|
||||||
size > other.size -> 1
|
size > other.size -> 1
|
||||||
|
@ -48,9 +51,10 @@ data class Medium(var name: String, var path: String, val video: Boolean, val mo
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getBubbleText() = when {
|
fun getBubbleText() = when {
|
||||||
|
sorting and SORT_BY_NAME != 0 -> name
|
||||||
|
sorting and SORT_BY_PATH != 0 -> path
|
||||||
sorting and SORT_BY_SIZE != 0 -> size.formatSize()
|
sorting and SORT_BY_SIZE != 0 -> size.formatSize()
|
||||||
sorting and SORT_BY_DATE_MODIFIED != 0 -> modified.formatDate()
|
sorting and SORT_BY_DATE_MODIFIED != 0 -> modified.formatDate()
|
||||||
sorting and SORT_BY_DATE_TAKEN != 0 -> taken.formatDate()
|
else -> taken.formatDate()
|
||||||
else -> name
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -63,13 +63,7 @@
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:paddingTop="@dimen/normal_margin">
|
android:paddingTop="@dimen/normal_margin">
|
||||||
|
|
||||||
<ImageView
|
<include layout="@layout/fastscroller_handle_horizontal"/>
|
||||||
android:id="@+id/fastscroller_handle_horizontal"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:alpha="0"
|
|
||||||
android:background="@drawable/fastscroller_handle_horizontal"/>
|
|
||||||
|
|
||||||
</com.simplemobiletools.commons.views.FastScroller>
|
</com.simplemobiletools.commons.views.FastScroller>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
|
@ -63,13 +63,7 @@
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:paddingTop="@dimen/normal_margin">
|
android:paddingTop="@dimen/normal_margin">
|
||||||
|
|
||||||
<ImageView
|
<include layout="@layout/fastscroller_handle_horizontal"/>
|
||||||
android:id="@+id/fastscroller_handle_horizontal"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:alpha="0"
|
|
||||||
android:background="@drawable/fastscroller_handle_horizontal"/>
|
|
||||||
|
|
||||||
</com.simplemobiletools.commons.views.FastScroller>
|
</com.simplemobiletools.commons.views.FastScroller>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
|
@ -408,6 +408,26 @@
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/settings_show_info_bubble_holder"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginTop="@dimen/medium_margin"
|
||||||
|
android:background="?attr/selectableItemBackground"
|
||||||
|
android:padding="@dimen/activity_margin">
|
||||||
|
|
||||||
|
<com.simplemobiletools.commons.views.MySwitchCompat
|
||||||
|
android:id="@+id/settings_show_info_bubble"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:background="@null"
|
||||||
|
android:clickable="false"
|
||||||
|
android:paddingLeft="@dimen/medium_margin"
|
||||||
|
android:paddingStart="@dimen/medium_margin"
|
||||||
|
android:text="@string/show_info_bubble"/>
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/settings_show_extended_details_holder"
|
android:id="@+id/settings_show_extended_details_holder"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -37,13 +37,7 @@
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:paddingTop="@dimen/normal_margin">
|
android:paddingTop="@dimen/normal_margin">
|
||||||
|
|
||||||
<ImageView
|
<include layout="@layout/fastscroller_handle_horizontal"/>
|
||||||
android:id="@+id/fastscroller_handle_horizontal"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:alpha="0"
|
|
||||||
android:background="@drawable/fastscroller_handle_horizontal"/>
|
|
||||||
|
|
||||||
</com.simplemobiletools.commons.views.FastScroller>
|
</com.simplemobiletools.commons.views.FastScroller>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
|
@ -36,13 +36,7 @@
|
||||||
android:layout_alignParentStart="true"
|
android:layout_alignParentStart="true"
|
||||||
android:paddingTop="@dimen/normal_margin">
|
android:paddingTop="@dimen/normal_margin">
|
||||||
|
|
||||||
<ImageView
|
<include layout="@layout/fastscroller_handle_horizontal"/>
|
||||||
android:id="@+id/fastscroller_handle_horizontal"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_gravity="bottom"
|
|
||||||
android:alpha="0"
|
|
||||||
android:background="@drawable/fastscroller_handle_horizontal"/>
|
|
||||||
|
|
||||||
</com.simplemobiletools.commons.views.FastScroller>
|
</com.simplemobiletools.commons.views.FastScroller>
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
|
@ -29,7 +29,8 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="@dimen/activity_margin"
|
android:layout_marginBottom="@dimen/activity_margin"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:textCursorDrawable="@null"/>
|
android:textCursorDrawable="@null"
|
||||||
|
android:textSize="@dimen/normal_text_size"/>
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
android:id="@+id/save_as_extension_label"
|
android:id="@+id/save_as_extension_label"
|
||||||
|
@ -43,6 +44,7 @@
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginBottom="@dimen/activity_margin"
|
android:layout_marginBottom="@dimen/activity_margin"
|
||||||
android:singleLine="true"
|
android:singleLine="true"
|
||||||
android:textCursorDrawable="@null"/>
|
android:textCursorDrawable="@null"
|
||||||
|
android:textSize="@dimen/normal_text_size"/>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
|
@ -33,7 +33,8 @@
|
||||||
android:imeOptions="actionDone"
|
android:imeOptions="actionDone"
|
||||||
android:inputType="number"
|
android:inputType="number"
|
||||||
android:maxLength="2"
|
android:maxLength="2"
|
||||||
android:textCursorDrawable="@null"/>
|
android:textCursorDrawable="@null"
|
||||||
|
android:textSize="@dimen/normal_text_size"/>
|
||||||
|
|
||||||
<RelativeLayout
|
<RelativeLayout
|
||||||
android:id="@+id/include_photos_holder"
|
android:id="@+id/include_photos_holder"
|
||||||
|
|
|
@ -4,9 +4,9 @@
|
||||||
android:id="@+id/dir_holder"
|
android:id="@+id/dir_holder"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:paddingLeft="@dimen/small_margin"
|
|
||||||
android:clickable="true"
|
android:clickable="true"
|
||||||
android:focusable="true"
|
android:focusable="true"
|
||||||
|
android:paddingLeft="@dimen/small_margin"
|
||||||
android:paddingTop="@dimen/small_margin">
|
android:paddingTop="@dimen/small_margin">
|
||||||
|
|
||||||
<com.simplemobiletools.gallery.views.MySquareImageView
|
<com.simplemobiletools.gallery.views.MySquareImageView
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent">
|
||||||
|
|
||||||
<ImageView
|
<com.github.chrisbanes.photoview.PhotoView
|
||||||
android:id="@+id/gif_view"
|
android:id="@+id/gif_view"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
|
|
|
@ -22,7 +22,8 @@
|
||||||
android:inputType="number"
|
android:inputType="number"
|
||||||
android:maxLength="6"
|
android:maxLength="6"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:textCursorDrawable="@null"/>
|
android:textCursorDrawable="@null"
|
||||||
|
android:textSize="@dimen/normal_text_size"/>
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyTextView
|
<com.simplemobiletools.commons.views.MyTextView
|
||||||
android:id="@+id/image_height_label"
|
android:id="@+id/image_height_label"
|
||||||
|
@ -43,7 +44,8 @@
|
||||||
android:inputType="number"
|
android:inputType="number"
|
||||||
android:maxLength="6"
|
android:maxLength="6"
|
||||||
android:maxLines="1"
|
android:maxLines="1"
|
||||||
android:textCursorDrawable="@null"/>
|
android:textCursorDrawable="@null"
|
||||||
|
android:textSize="@dimen/normal_text_size"/>
|
||||||
|
|
||||||
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
|
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
|
||||||
android:id="@+id/keep_aspect_ratio"
|
android:id="@+id/keep_aspect_ratio"
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
<vector
|
|
||||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
|
||||||
android:width="108dp"
|
|
||||||
android:height="108dp"
|
|
||||||
android:viewportHeight="108"
|
|
||||||
android:viewportWidth="108">
|
|
||||||
<path
|
|
||||||
android:fillColor="#F57C00"
|
|
||||||
android:pathData="M54.3,103.2L54.3,103.2c-27,0 -48.9,-21.9 -48.9,-48.9v0c0,-27 21.9,-48.9 48.9,-48.9h0c27,0 48.9,21.9 48.9,48.9v0C103.2,81.3 81.3,103.2 54.3,103.2z"/>
|
|
||||||
<path
|
|
||||||
android:fillColor="#FFFFFF"
|
|
||||||
android:pathData="M65.8,37.5m-6.9,0a6.9,6.9 0,1 1,13.8 0a6.9,6.9 0,1 1,-13.8 0"/>
|
|
||||||
<path
|
|
||||||
android:fillColor="#FFFFFF"
|
|
||||||
android:pathData="M68.1,56.4l-7.1,10.1l-14.7,-21.2l-21,30.6l54.7,0z"/>
|
|
||||||
</vector>
|
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 5.7 KiB |
|
@ -38,7 +38,7 @@
|
||||||
<string name="hide_folder_description">Questa funzione nasconde la cartella aggiungendo un file \'.nomedia\' all\'interno, nasconderà anche tutte le sottocartelle. Puoi vederle attivando l\'opzione \'Mostra cartelle nascoste\' nelle impostazioni. Continuare?</string>
|
<string name="hide_folder_description">Questa funzione nasconde la cartella aggiungendo un file \'.nomedia\' all\'interno, nasconderà anche tutte le sottocartelle. Puoi vederle attivando l\'opzione \'Mostra cartelle nascoste\' nelle impostazioni. Continuare?</string>
|
||||||
<string name="exclude">Escludi</string>
|
<string name="exclude">Escludi</string>
|
||||||
<string name="excluded_folders">Cartelle escluse</string>
|
<string name="excluded_folders">Cartelle escluse</string>
|
||||||
<string name="manage_excluded_folders">Gestisci cartelle escluse</string>
|
<string name="manage_excluded_folders">Gestisci le cartelle escluse</string>
|
||||||
<string name="exclude_folder_description">Questo escluderà la selezione e le relative sottocartelle solo da Simple Gallery. Puoi gestire le cartelle escluse nelle impostazioni.</string>
|
<string name="exclude_folder_description">Questo escluderà la selezione e le relative sottocartelle solo da Simple Gallery. Puoi gestire le cartelle escluse nelle impostazioni.</string>
|
||||||
<string name="exclude_folder_parent">Vuoi invece escluderne una superiore?</string>
|
<string name="exclude_folder_parent">Vuoi invece escluderne una superiore?</string>
|
||||||
<string name="excluded_activity_placeholder">L\'esclusione delle cartelle e delle sottocartelle le renderà nascoste solo in Simple Gallery, saranno ancora visibili in altre applicazioni.\\n\\nSe desideri nasconderle anche nelle altre app, usa la funzione Nascondi.</string>
|
<string name="excluded_activity_placeholder">L\'esclusione delle cartelle e delle sottocartelle le renderà nascoste solo in Simple Gallery, saranno ancora visibili in altre applicazioni.\\n\\nSe desideri nasconderle anche nelle altre app, usa la funzione Nascondi.</string>
|
||||||
|
@ -47,7 +47,7 @@
|
||||||
|
|
||||||
<!-- Include folders -->
|
<!-- Include folders -->
|
||||||
<string name="include_folders">Includi cartelle</string>
|
<string name="include_folders">Includi cartelle</string>
|
||||||
<string name="manage_included_folders">Gestisci cartelle incluse</string>
|
<string name="manage_included_folders">Gestisci le cartelle incluse</string>
|
||||||
<string name="add_folder">Aggiungi cartella</string>
|
<string name="add_folder">Aggiungi cartella</string>
|
||||||
<string name="included_activity_placeholder">Se hai alcune cartelle che contengono media, ma non sono state riconosciute dall\'app, puoi aggiungerle manualmente qui.</string>
|
<string name="included_activity_placeholder">Se hai alcune cartelle che contengono media, ma non sono state riconosciute dall\'app, puoi aggiungerle manualmente qui.</string>
|
||||||
|
|
||||||
|
@ -88,9 +88,9 @@
|
||||||
<string name="wallpaper_set_successfully">Sfondo impostato correttamente</string>
|
<string name="wallpaper_set_successfully">Sfondo impostato correttamente</string>
|
||||||
<string name="portrait_aspect_ratio">Proporzioni ritratto</string>
|
<string name="portrait_aspect_ratio">Proporzioni ritratto</string>
|
||||||
<string name="landscape_aspect_ratio">Proporzioni panorama</string>
|
<string name="landscape_aspect_ratio">Proporzioni panorama</string>
|
||||||
<string name="home_screen">Home screen</string>
|
<string name="home_screen">Schermata principale</string>
|
||||||
<string name="lock_screen">Lock screen</string>
|
<string name="lock_screen">Schermata di blocco</string>
|
||||||
<string name="home_and_lock_screen">Home and lock screen</string>
|
<string name="home_and_lock_screen">Entrambe le schermate</string>
|
||||||
|
|
||||||
<!-- Slideshow -->
|
<!-- Slideshow -->
|
||||||
<string name="slideshow">Presentazione</string>
|
<string name="slideshow">Presentazione</string>
|
||||||
|
@ -111,19 +111,19 @@
|
||||||
<string name="list">Elenco</string>
|
<string name="list">Elenco</string>
|
||||||
|
|
||||||
<!-- Settings -->
|
<!-- Settings -->
|
||||||
<string name="show_hidden_media">Mostra cartelle nascoste</string>
|
<string name="show_hidden_media">Mostra le cartelle nascoste</string>
|
||||||
<string name="autoplay_videos">Riproduci video automaticamente</string>
|
<string name="autoplay_videos">Riproduci i video automaticamente</string>
|
||||||
<string name="toggle_filename">Visibilità nome del file</string>
|
<string name="toggle_filename">Visibilità nome del file</string>
|
||||||
<string name="loop_videos">Ripeti i video</string>
|
<string name="loop_videos">Ripeti i video</string>
|
||||||
<string name="animate_gifs">Anima le GIF in miniatura</string>
|
<string name="animate_gifs">Anima le GIF in miniatura</string>
|
||||||
<string name="max_brightness">Luminosità max durante visualizzazione</string>
|
<string name="max_brightness">Luminosità max durante la visualizzazione</string>
|
||||||
<string name="crop_thumbnails">Ritaglia le miniature in quadrati</string>
|
<string name="crop_thumbnails">Ritaglia le miniature in quadrati</string>
|
||||||
<string name="screen_rotation_by">Ruota schermo per</string>
|
<string name="screen_rotation_by">Ruota schermo per</string>
|
||||||
<string name="screen_rotation_system_setting">Impostazione di sistema</string>
|
<string name="screen_rotation_system_setting">Impostazione di sistema</string>
|
||||||
<string name="screen_rotation_device_rotation">Rotazione dispositivo</string>
|
<string name="screen_rotation_device_rotation">Rotazione dispositivo</string>
|
||||||
<string name="screen_rotation_aspect_ratio">Proporzioni</string>
|
<string name="screen_rotation_aspect_ratio">Proporzioni</string>
|
||||||
<string name="dark_background_at_fullscreen">Sfondo scuro a schermo intero</string>
|
<string name="dark_background_at_fullscreen">Sfondo scuro a schermo intero</string>
|
||||||
<string name="scroll_thumbnails_horizontally">Scorri miniature orizzontalmente</string>
|
<string name="scroll_thumbnails_horizontally">Scorri le miniature orizzontalmente</string>
|
||||||
<string name="hide_system_ui_at_fullscreen">Nascondi UI di sistema con media a schermo intero</string>
|
<string name="hide_system_ui_at_fullscreen">Nascondi UI di sistema con media a schermo intero</string>
|
||||||
<string name="delete_empty_folders">Elimina cartelle vuote dopo averne eliminato il contenuto</string>
|
<string name="delete_empty_folders">Elimina cartelle vuote dopo averne eliminato il contenuto</string>
|
||||||
<string name="allow_video_gestures">Gestisci il volume e la luminosità dei video con gesti verticali</string>
|
<string name="allow_video_gestures">Gestisci il volume e la luminosità dei video con gesti verticali</string>
|
||||||
|
|
|
@ -23,8 +23,8 @@
|
||||||
<string name="volume">Volume</string>
|
<string name="volume">Volume</string>
|
||||||
<string name="brightness">Brilho</string>
|
<string name="brightness">Brilho</string>
|
||||||
<string name="do_not_ask_again">Não perguntar novamente por enquanto</string>
|
<string name="do_not_ask_again">Não perguntar novamente por enquanto</string>
|
||||||
<string name="lock_orientation">Lock orientation</string>
|
<string name="lock_orientation">Travar orientação</string>
|
||||||
<string name="unlock_orientation">Unlock orientation</string>
|
<string name="unlock_orientation">Destravar orientação</string>
|
||||||
|
|
||||||
<!-- Filter -->
|
<!-- Filter -->
|
||||||
<string name="filter_media">Filtrar mídia</string>
|
<string name="filter_media">Filtrar mídia</string>
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
<string name="manage_excluded_folders">Gerenciar pastas excluídas</string>
|
<string name="manage_excluded_folders">Gerenciar pastas excluídas</string>
|
||||||
<string name="exclude_folder_description">Esta ação irá excluir as pastas selecionadas apenas dentro deste aplicativo. Você pode gerenciar as pastas excuídas nas Configurações do aplicativo.</string>
|
<string name="exclude_folder_description">Esta ação irá excluir as pastas selecionadas apenas dentro deste aplicativo. Você pode gerenciar as pastas excuídas nas Configurações do aplicativo.</string>
|
||||||
<string name="exclude_folder_parent">Excluir antes a pasta raíz?</string>
|
<string name="exclude_folder_parent">Excluir antes a pasta raíz?</string>
|
||||||
<string name="excluded_activity_placeholder">A exlusão de uma pasta apenas oculta o seu conteúdo da galeria, pois todos os outros aplicativos poderão acessá-las.\\n\\nSe quiser ocultar de todos os aplicativos, utilize a função ocultar.</string>
|
<string name="excluded_activity_placeholder">A exclusão de uma pasta apenas oculta o seu conteúdo da galeria, pois todos os outros aplicativos poderão acessá-las.\\n\\nSe quiser ocultar de todos os aplicativos, utilize a função ocultar.</string>
|
||||||
<string name="remove_all">Remover todas</string>
|
<string name="remove_all">Remover todas</string>
|
||||||
<string name="remove_all_description">Remover todas as pastas da lista de exclusões? Esta ação não apaga as pastas.</string>
|
<string name="remove_all_description">Remover todas as pastas da lista de exclusões? Esta ação não apaga as pastas.</string>
|
||||||
|
|
||||||
|
@ -84,13 +84,13 @@
|
||||||
<string name="set_as_wallpaper_failed">Falha ao definir como papel de parede</string>
|
<string name="set_as_wallpaper_failed">Falha ao definir como papel de parede</string>
|
||||||
<string name="set_as_wallpaper_with">Definir papel de parede com:</string>
|
<string name="set_as_wallpaper_with">Definir papel de parede com:</string>
|
||||||
<string name="no_capable_app_found">Aplicativo não encontrado</string>
|
<string name="no_capable_app_found">Aplicativo não encontrado</string>
|
||||||
<string name="setting_wallpaper">Definindo como papel de parede;</string>
|
<string name="setting_wallpaper">Definindo como papel de parede</string>
|
||||||
<string name="wallpaper_set_successfully">Papel de parede com sucesso</string>
|
<string name="wallpaper_set_successfully">Papel de parede com sucesso</string>
|
||||||
<string name="portrait_aspect_ratio">Retrato</string>
|
<string name="portrait_aspect_ratio">Retrato</string>
|
||||||
<string name="landscape_aspect_ratio">Paisagem</string>
|
<string name="landscape_aspect_ratio">Paisagem</string>
|
||||||
<string name="home_screen">Home screen</string>
|
<string name="home_screen">Tela inicial</string>
|
||||||
<string name="lock_screen">Lock screen</string>
|
<string name="lock_screen">Tela de bloqueio</string>
|
||||||
<string name="home_and_lock_screen">Home and lock screen</string>
|
<string name="home_and_lock_screen">Tela inicial e de bloqueio</string>
|
||||||
|
|
||||||
<!-- Slideshow -->
|
<!-- Slideshow -->
|
||||||
<string name="slideshow">Slideshow</string>
|
<string name="slideshow">Slideshow</string>
|
||||||
|
|