diff --git a/.gitignore b/.gitignore
index a1c018bec..660f31f5d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,4 +8,4 @@
/build
/captures
keystore.jks
-signing.properties
+keystore.properties
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 3e27c64a2..32bca140f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,11 +1,45 @@
Changelog
==========
+Version 6.0.4 *(2018-12-04)*
+----------------------------
+
+ * Limit automatic spam folder exclusion to the "/Android/data" folder
+
+Version 6.0.3 *(2018-12-02)*
+----------------------------
+
+ * Added multiple predefined aspect ratios at the Editor + remember the last used ratio
+ * Fix some issue with deleted items not appearing in the Recycle Bin, causing the app to take up too much space
+ * At delete/copy/move operations on folders apply them only on the visible files, take filters/hiding into account
+ * Do not exclude whole Data folder by default, be smarter about filtering out spam folders
+ * Added support for Sony RAW ".arw" files
+ * Optimize video duration fetching at thumbnails
+
+Version 6.0.2 *(2018-11-19)*
+----------------------------
+
+ * Adding a crashfix related to showing video duration
+
+Version 6.0.1 *(2018-11-19)*
+----------------------------
+
+ * Added optional displaying video duration on thumbnails
+ * Fixed keeping last_modified value at copy/move in some cases
+ * Exclude the Data folder by default
+ * Many translation, UX and stability improvements
+
Version 6.0.0 *(2018-11-04)*
----------------------------
* Initial Pro version
+Version 5.1.4 *(2018-11-28)*
+----------------------------
+
+ * Make sure the "Upgrade to Pro" popup isn't shown at first launch
+ * This version of the app is no longer maintained, please upgrade to the Pro version. You can find the Upgrade button at the top of the app Settings.
+
Version 5.1.3 *(2018-11-04)*
----------------------------
@@ -15,7 +49,6 @@ Version 5.1.3 *(2018-11-04)*
* Remove some glitches related to third party file opening
* Do not exclude the Data folder by default
* Removed the "Avoid showing Whats New at app startup" option
- * This version of the app is no longer maintained. Please upgrade to the Pro version. It is free till Nov 12 2018. You can find the Upgrade button at the top of the app Settings.
Version 5.1.2 *(2018-10-30)*
----------------------------
diff --git a/README.md b/README.md
index 62eb04481..473b2ca61 100644
--- a/README.md
+++ b/README.md
@@ -31,7 +31,7 @@ The fingerprint permission is needed for locking either hidden item visibility,
This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
-
+
diff --git a/app/build.gradle b/app/build.gradle
index fec06abda..aa7e98b3c 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -3,6 +3,10 @@ apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
+def keystorePropertiesFile = rootProject.file("keystore.properties")
+def keystoreProperties = new Properties()
+keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
+
android {
compileSdkVersion 28
buildToolsVersion "28.0.3"
@@ -11,14 +15,19 @@ android {
applicationId "com.simplemobiletools.gallery.pro"
minSdkVersion 21
targetSdkVersion 28
- versionCode 208
- versionName "6.0.0"
+ versionCode 212
+ versionName "6.0.4"
multiDexEnabled true
setProperty("archivesBaseName", "gallery")
}
signingConfigs {
- release
+ release {
+ keyAlias keystoreProperties['keyAlias']
+ keyPassword keystoreProperties['keyPassword']
+ storeFile file(keystoreProperties['storeFile'])
+ storePassword keystoreProperties['storePassword']
+ }
}
buildTypes {
@@ -48,13 +57,13 @@ android {
}
dependencies {
- implementation 'com.simplemobiletools:commons:5.3.9'
- implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
+ implementation 'com.simplemobiletools:commons:5.5.4'
+ implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
implementation 'androidx.multidex:multidex:2.0.0'
implementation 'it.sephiroth.android.exif:library:1.0.1'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.15'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha2'
- implementation 'com.google.android.exoplayer:exoplayer-core:2.9.0'
+ implementation 'com.google.android.exoplayer:exoplayer-core:2.9.2'
implementation 'com.google.vr:sdk-panowidget:1.170.0'
implementation 'com.google.vr:sdk-videowidget:1.170.0'
implementation 'org.apache.sanselan:sanselan:0.97-incubator'
@@ -63,9 +72,9 @@ dependencies {
implementation 'com.caverock:androidsvg-aar:1.3'
kapt 'com.github.bumptech.glide:compiler:4.8.0' // keep it here too, not just in Commons, else loading SVGs wont work
- kapt "androidx.room:room-compiler:2.0.0"
- implementation "androidx.room:room-runtime:2.0.0"
- annotationProcessor "androidx.room:room-compiler:2.0.0"
+ kapt 'androidx.room:room-compiler:2.0.0'
+ implementation 'androidx.room:room-runtime:2.0.0'
+ annotationProcessor 'androidx.room:room-compiler:2.0.0'
//implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0'
implementation 'com.github.tibbi:subsampling-scale-image-view:v3.10.1-fork'
@@ -73,22 +82,3 @@ dependencies {
// implementation 'com.github.chrisbanes:PhotoView:2.1.4'
implementation 'com.github.tibbi:PhotoView:2.2.1-fork'
}
-
-Properties props = new Properties()
-def propFile = new File('signing.properties')
-if (propFile.canRead()) {
- props.load(new FileInputStream(propFile))
-
- if (props != null && props.containsKey('STORE_FILE') && props.containsKey('KEY_ALIAS') && props.containsKey('PASSWORD')) {
- android.signingConfigs.release.storeFile = file(props['STORE_FILE'])
- android.signingConfigs.release.storePassword = props['PASSWORD']
- android.signingConfigs.release.keyAlias = props['KEY_ALIAS']
- android.signingConfigs.release.keyPassword = props['PASSWORD']
- } else {
- println 'signing.properties found but some entries are missing'
- android.buildTypes.release.signingConfig = null
- }
-} else {
- println 'signing.properties not found'
- android.buildTypes.release.signingConfig = null
-}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt
index b71a979e7..285c110fb 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt
@@ -27,11 +27,12 @@ import com.simplemobiletools.commons.helpers.REAL_FILE_PATH
import com.simplemobiletools.commons.models.FileDirItem
import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.adapters.FiltersAdapter
+import com.simplemobiletools.gallery.pro.dialogs.OtherAspectRatioDialog
import com.simplemobiletools.gallery.pro.dialogs.ResizeDialog
import com.simplemobiletools.gallery.pro.dialogs.SaveAsDialog
import com.simplemobiletools.gallery.pro.extensions.config
import com.simplemobiletools.gallery.pro.extensions.openEditor
-import com.simplemobiletools.gallery.pro.helpers.FilterThumbnailsManager
+import com.simplemobiletools.gallery.pro.helpers.*
import com.simplemobiletools.gallery.pro.models.FilterItem
import com.theartofdev.edmodo.cropper.CropImageView
import com.zomato.photofilters.FilterPack
@@ -54,11 +55,6 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
private val ASPECT_Y = "aspectY"
private val CROP = "crop"
- private val ASPECT_RATIO_FREE = 0
- private val ASPECT_RATIO_ONE_ONE = 1
- private val ASPECT_RATIO_FOUR_THREE = 2
- private val ASPECT_RATIO_SIXTEEN_NINE = 3
-
// constants for bottom primary action groups
private val PRIMARY_ACTION_NONE = 0
private val PRIMARY_ACTION_FILTER = 1
@@ -71,6 +67,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
private lateinit var saveUri: Uri
private var resizeWidth = 0
private var resizeHeight = 0
+ private var lastOtherAspectRatio: Pair
? = null
private var currPrimaryAction = PRIMARY_ACTION_NONE
private var currCropRotateAction = CROP_ROTATE_NONE
private var currAspectRatio = ASPECT_RATIO_FREE
@@ -133,6 +130,11 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
loadDefaultImageView()
setupBottomActions()
+
+ if (config.lastEditorCropAspectRatio == ASPECT_RATIO_OTHER) {
+ lastOtherAspectRatio = Pair(config.lastEditorCropOtherAspectRatioX, config.lastEditorCropOtherAspectRatioY)
+ }
+ updateAspectRatio(config.lastEditorCropAspectRatio)
}
override fun onResume() {
@@ -328,6 +330,16 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
bottom_aspect_ratio_sixteen_nine.setOnClickListener {
updateAspectRatio(ASPECT_RATIO_SIXTEEN_NINE)
}
+
+ bottom_aspect_ratio_other.setOnClickListener {
+ OtherAspectRatioDialog(this, lastOtherAspectRatio) {
+ lastOtherAspectRatio = it
+ config.lastEditorCropOtherAspectRatioX = it.first
+ config.lastEditorCropOtherAspectRatioY = it.second
+ updateAspectRatio(ASPECT_RATIO_OTHER)
+ }
+ }
+
updateAspectRatioButtons()
}
@@ -400,6 +412,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
private fun updateAspectRatio(aspectRatio: Int) {
currAspectRatio = aspectRatio
+ config.lastEditorCropAspectRatio = aspectRatio
updateAspectRatioButtons()
crop_image_view.apply {
@@ -409,7 +422,8 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
val newAspectRatio = when (aspectRatio) {
ASPECT_RATIO_ONE_ONE -> Pair(1, 1)
ASPECT_RATIO_FOUR_THREE -> Pair(4, 3)
- else -> Pair(16, 9)
+ ASPECT_RATIO_SIXTEEN_NINE -> Pair(16, 9)
+ else -> Pair(lastOtherAspectRatio!!.first, lastOtherAspectRatio!!.second)
}
setAspectRatio(newAspectRatio.first, newAspectRatio.second)
@@ -418,7 +432,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
}
private fun updateAspectRatioButtons() {
- arrayOf(bottom_aspect_ratio_free, bottom_aspect_ratio_one_one, bottom_aspect_ratio_four_three, bottom_aspect_ratio_sixteen_nine).forEach {
+ arrayOf(bottom_aspect_ratio_free, bottom_aspect_ratio_one_one, bottom_aspect_ratio_four_three, bottom_aspect_ratio_sixteen_nine, bottom_aspect_ratio_other).forEach {
it.setTextColor(Color.WHITE)
}
@@ -426,7 +440,8 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
ASPECT_RATIO_FREE -> bottom_aspect_ratio_free
ASPECT_RATIO_ONE_ONE -> bottom_aspect_ratio_one_one
ASPECT_RATIO_FOUR_THREE -> bottom_aspect_ratio_four_three
- else -> bottom_aspect_ratio_sixteen_nine
+ ASPECT_RATIO_SIXTEEN_NINE -> bottom_aspect_ratio_sixteen_nine
+ else -> bottom_aspect_ratio_other
}
currentAspectRatioButton.setTextColor(config.primaryColor)
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt
index 5a8925adc..9fd6eb352 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt
@@ -239,7 +239,10 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
config.tempSkipDeleteConfirmation = false
mTempShowHiddenHandler.removeCallbacksAndMessages(null)
removeTempFolder()
- GalleryDatabase.destroyInstance()
+
+ if (!config.showAll) {
+ GalleryDatabase.destroyInstance()
+ }
}
}
@@ -494,9 +497,18 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
if (config.useRecycleBin) {
val pathsToDelete = ArrayList()
+ val filter = config.filterMedia
+ val showHidden = config.shouldShowHidden
fileDirItems.filter { it.isDirectory }.forEach {
val files = File(it.path).listFiles()
- files?.filter { it.absolutePath.isMediaFile() }?.mapTo(pathsToDelete) { it.absolutePath }
+ files?.filter {
+ it.absolutePath.isMediaFile() && (showHidden || !it.name.startsWith('.')) &&
+ ((it.isImageFast() && filter and TYPE_IMAGES != 0) ||
+ (it.isVideoFast() && filter and TYPE_VIDEOS != 0) ||
+ (it.isGif() && filter and TYPE_GIFS != 0) ||
+ (it.isRawFast() && filter and TYPE_RAWS != 0) ||
+ (it.isSvg() && filter and TYPE_SVGS != 0))
+ }?.mapTo(pathsToDelete) { it.absolutePath }
}
movePathsInRecycleBin(pathsToDelete, mMediumDao) {
@@ -798,7 +810,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
return
}
- val curMedia = mediaFetcher.getFilesFrom(directory.path, getImagesOnly, getVideosOnly, getProperDateTaken, favoritePaths)
+ val curMedia = mediaFetcher.getFilesFrom(directory.path, getImagesOnly, getVideosOnly, getProperDateTaken, favoritePaths, false)
val newDir = if (curMedia.isEmpty()) {
if (directory.path != tempFolderPath) {
dirPathsToRemove.add(directory.path)
@@ -835,7 +847,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
if (!curMedia.contains(it)) {
val path = (it as? Medium)?.path
if (path != null) {
- mMediumDao.deleteMediumPath(path)
+ deleteDBPath(mMediumDao, path)
}
}
}
@@ -871,7 +883,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
return
}
- val newMedia = mediaFetcher.getFilesFrom(folder, getImagesOnly, getVideosOnly, getProperDateTaken, favoritePaths)
+ val newMedia = mediaFetcher.getFilesFrom(folder, getImagesOnly, getVideosOnly, getProperDateTaken, favoritePaths, false)
if (newMedia.isEmpty()) {
continue
}
@@ -913,7 +925,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
}
mDirs = dirs.clone() as ArrayList
- if (config.appRunCount < 5 && mDirs.size > 100) {
+ if (mDirs.size > 100) {
excludeSpamFolders()
}
}
@@ -925,15 +937,15 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
}
private fun showSortedDirs(dirs: ArrayList) {
- val updatedDirs = getUniqueSortedDirs(dirs)
+ val updatedDirs = getUniqueSortedDirs(dirs).toMutableList() as ArrayList
runOnUiThread {
(directories_grid.adapter as? DirectoryAdapter)?.updateDirs(updatedDirs)
}
}
private fun getUniqueSortedDirs(dirs: ArrayList): ArrayList {
- val sortedDirs = dirs.distinctBy { it.path.getDistinctPath() } as ArrayList
- return getSortedDirectories(sortedDirs)
+ val distinctDirs = dirs.distinctBy { it.path.getDistinctPath() } as ArrayList
+ return getSortedDirectories(distinctDirs)
}
private fun createDirectoryFromMedia(path: String, curMedia: ArrayList, albumCovers: ArrayList, hiddenString: String,
@@ -1102,32 +1114,37 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
private fun excludeSpamFolders() {
Thread {
try {
- val internalPath = config.internalStoragePath
- val sdPath = config.sdCardPath
- val pathParts = ArrayList>()
- mDirs.asSequence().map { it.path.removePrefix(internalPath).removePrefix(sdPath) }.sorted().toList().forEach {
- val parts = it.split("/").asSequence().filter { it.isNotEmpty() }.toMutableList() as ArrayList
- if (parts.size > 3) {
- pathParts.add(parts)
+ val internalPath = internalStoragePath
+ val checkedPaths = ArrayList()
+ val oftenRepeatedPaths = ArrayList()
+ val paths = mDirs.map { it.path.removePrefix(internalPath) }.toMutableList() as ArrayList
+ paths.forEach {
+ val parts = it.split("/")
+ var currentString = ""
+ for (i in 0 until parts.size) {
+ currentString += "${parts[i]}/"
+
+ if (!checkedPaths.contains(currentString)) {
+ val cnt = paths.count { it.startsWith(currentString) }
+ if (cnt > 50 && currentString.startsWith("/Android/data", true)) {
+ oftenRepeatedPaths.add(currentString)
+ }
+ }
+
+ checkedPaths.add(currentString)
}
}
- val keys = getLongestCommonStrings(pathParts)
- pathParts.clear()
- keys.forEach { it ->
- val parts = it.split("/").asSequence().filter { it.isNotEmpty() }.toMutableList() as ArrayList
- pathParts.add(parts)
+ val substringToRemove = oftenRepeatedPaths.filter {
+ val path = it
+ it == "/" || oftenRepeatedPaths.any { it != path && it.startsWith(path) }
}
- getLongestCommonStrings(pathParts).forEach {
- var file = File("$internalPath/$it")
+ oftenRepeatedPaths.removeAll(substringToRemove)
+ oftenRepeatedPaths.forEach {
+ val file = File("$internalPath/$it")
if (file.exists()) {
config.addExcludedFolder(file.absolutePath)
- } else {
- file = File("$sdPath/$it")
- if (file.exists()) {
- config.addExcludedFolder(file.absolutePath)
- }
}
}
} catch (e: Exception) {
@@ -1135,40 +1152,6 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
}.start()
}
- private fun getLongestCommonStrings(pathParts: ArrayList>): ArrayList {
- val commonStrings = ArrayList()
- return try {
- val cnt = pathParts.size
- for (i in 0..cnt) {
- var longestCommonString = ""
- for (j in i..cnt) {
- var currentCommonString = ""
- if (i != j) {
- val originalParts = pathParts.getOrNull(i)
- val otherParts = pathParts.getOrNull(j)
- if (originalParts != null && otherParts != null) {
- originalParts.forEachIndexed { index, string ->
- if (string == otherParts.getOrNull(index)) {
- currentCommonString += "$string/"
- if (currentCommonString.length > longestCommonString.length) {
- longestCommonString = currentCommonString.trimEnd('/')
- }
- }
- }
- }
- }
- }
-
- if (longestCommonString.isNotEmpty()) {
- commonStrings.add(longestCommonString)
- }
- }
- commonStrings.groupingBy { it }.eachCount().filter { it.value > 5 && it.key.length > 10 }.map { it.key }.toMutableList() as ArrayList
- } catch (e: Exception) {
- ArrayList()
- }
- }
-
override fun refreshItems() {
getDirectories()
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt
index 4dca15ec7..791cabd78 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt
@@ -34,6 +34,7 @@ import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.adapters.MediaAdapter
import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask
+import com.simplemobiletools.gallery.pro.databases.GalleryDatabase
import com.simplemobiletools.gallery.pro.dialogs.ChangeGroupingDialog
import com.simplemobiletools.gallery.pro.dialogs.ChangeSortingDialog
import com.simplemobiletools.gallery.pro.dialogs.ExcludeFolderDialog
@@ -192,6 +193,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
if (config.showAll && !isChangingConfigurations) {
config.temporarilyShowHidden = false
config.tempSkipDeleteConfirmation = false
+ GalleryDatabase.destroyInstance()
}
mTempShowHiddenHandler.removeCallbacksAndMessages(null)
@@ -882,8 +884,8 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
Thread {
val useRecycleBin = config.useRecycleBin
filtered.forEach {
- if (!useRecycleBin) {
- mMediumDao.deleteMediumPath(it.path)
+ if (it.path.startsWith(recycleBinPath) || !useRecycleBin) {
+ deleteDBPath(mMediumDao, it.path)
}
}
}.start()
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt
index 7199811e9..6ab3b2478 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt
@@ -111,7 +111,7 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
}
mIsVideo = type == TYPE_VIDEOS
- mMedium = Medium(null, filename, mUri.toString(), mUri!!.path.getParentPath(), 0, 0, file.length(), type, false, 0L)
+ mMedium = Medium(null, filename, mUri.toString(), mUri!!.path.getParentPath(), 0, 0, file.length(), type, 0, false, 0L)
supportActionBar?.title = mMedium!!.name
bundle.putSerializable(MEDIUM, mMedium)
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt
index 71a424365..8426bd8c4 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt
@@ -57,6 +57,7 @@ class SettingsActivity : SimpleActivity() {
setupAllowVideoGestures()
setupAllowDownGesture()
setupBottomActions()
+ setupThumbnailVideoDuration()
setupShowMediaCount()
setupKeepLastModified()
setupShowInfoBubble()
@@ -196,6 +197,14 @@ class SettingsActivity : SimpleActivity() {
}
}
+ private fun setupThumbnailVideoDuration() {
+ settings_show_thumbnail_video_duration.isChecked = config.showThumbnailVideoDuration
+ settings_show_thumbnail_video_duration_holder.setOnClickListener {
+ settings_show_thumbnail_video_duration.toggle()
+ config.showThumbnailVideoDuration = settings_show_thumbnail_video_duration.isChecked
+ }
+ }
+
private fun setupDarkBackground() {
settings_black_background.isChecked = config.blackBackground
settings_black_background_holder.setOnClickListener {
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryAdapter.kt
index 30c358160..b4241f18e 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryAdapter.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/DirectoryAdapter.kt
@@ -323,8 +323,15 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: ArrayList {
val paths = ArrayList()
- activity.getOTGFolderChildren(path)?.forEach {
- if (!it.isDirectory && it.name!!.isMediaFile() && (showHidden || !it.name!!.startsWith('.'))) {
+ val filter = config.filterMedia
+ activity.getOTGFolderChildren(path)?.filter { it.name != null }?.forEach {
+ if (!it.isDirectory &&
+ it.name!!.isMediaFile() && (showHidden || !it.name!!.startsWith('.')) &&
+ ((it.name!!.isImageFast() && filter and TYPE_IMAGES != 0) ||
+ (it.name!!.isVideoFast() && filter and TYPE_VIDEOS != 0) ||
+ (it.name!!.isGif() && filter and TYPE_GIFS != 0) ||
+ (it.name!!.isRawFast() && filter and TYPE_RAWS != 0) ||
+ (it.name!!.isSvg() && filter and TYPE_SVGS != 0))
+ ) {
val relativePath = it.uri.path.substringAfterLast("${activity.config.OTGPartition}:")
paths.add("$OTG_PATH$relativePath")
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt
index df1cb2e51..8731f0a30 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/adapters/MediaAdapter.kt
@@ -2,6 +2,7 @@ package com.simplemobiletools.gallery.pro.adapters
import android.content.ContentProviderOperation
import android.media.ExifInterface
+import android.media.MediaMetadataRetriever
import android.os.Handler
import android.os.Looper
import android.provider.MediaStore
@@ -161,7 +162,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList()
val mediumDao = activity.galleryDB.MediumDao()
val paths = getSelectedPaths()
@@ -342,10 +344,11 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList()
foldersToScan.forEach {
- val newMedia = mediaFetcher.getFilesFrom(it, isPickImage, isPickVideo, getProperDateTaken, favoritePaths)
+ val newMedia = mediaFetcher.getFilesFrom(it, isPickImage, isPickVideo, getProperDateTaken, favoritePaths, getVideoDurations)
media.addAll(newMedia)
}
mediaFetcher.sortMedia(media, context.config.getFileSorting(SHOW_ALL))
media
} else {
- mediaFetcher.getFilesFrom(mPath, isPickImage, isPickVideo, getProperDateTaken, favoritePaths)
+ mediaFetcher.getFilesFrom(mPath, isPickImage, isPickVideo, getProperDateTaken, favoritePaths, getVideoDurations)
}
return mediaFetcher.groupMedia(media, pathToUse)
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/databases/GalleryDatabase.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/databases/GalleryDatabase.kt
index 54c3b1d0f..d6412cda5 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/databases/GalleryDatabase.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/databases/GalleryDatabase.kt
@@ -4,13 +4,14 @@ import android.content.Context
import androidx.room.Database
import androidx.room.Room
import androidx.room.RoomDatabase
-import com.simplemobiletools.gallery.pro.objects.MyExecutor
+import androidx.room.migration.Migration
+import androidx.sqlite.db.SupportSQLiteDatabase
import com.simplemobiletools.gallery.pro.interfaces.DirectoryDao
import com.simplemobiletools.gallery.pro.interfaces.MediumDao
import com.simplemobiletools.gallery.pro.models.Directory
import com.simplemobiletools.gallery.pro.models.Medium
-@Database(entities = [(Directory::class), (Medium::class)], version = 4)
+@Database(entities = [Directory::class, Medium::class], version = 5)
abstract class GalleryDatabase : RoomDatabase() {
abstract fun DirectoryDao(): DirectoryDao
@@ -25,10 +26,8 @@ abstract class GalleryDatabase : RoomDatabase() {
synchronized(GalleryDatabase::class) {
if (db == null) {
db = Room.databaseBuilder(context.applicationContext, GalleryDatabase::class.java, "gallery.db")
- .fallbackToDestructiveMigration()
- .setQueryExecutor(MyExecutor.myExecutor)
+ .addMigrations(MIGRATION_4_5)
.build()
- db!!.openHelper.setWriteAheadLoggingEnabled(true)
}
}
}
@@ -38,5 +37,11 @@ abstract class GalleryDatabase : RoomDatabase() {
fun destroyInstance() {
db = null
}
+
+ private val MIGRATION_4_5 = object : Migration(4, 5) {
+ override fun migrate(database: SupportSQLiteDatabase) {
+ database.execSQL("ALTER TABLE media ADD COLUMN video_duration INTEGER default 0 NOT NULL")
+ }
+ }
}
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/OtherAspectRatioDialog.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/OtherAspectRatioDialog.kt
new file mode 100644
index 000000000..60cd259b6
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/OtherAspectRatioDialog.kt
@@ -0,0 +1,62 @@
+package com.simplemobiletools.gallery.pro.dialogs
+
+import androidx.appcompat.app.AlertDialog
+import com.simplemobiletools.commons.activities.BaseSimpleActivity
+import com.simplemobiletools.commons.extensions.setupDialogStuff
+import com.simplemobiletools.gallery.pro.R
+import kotlinx.android.synthetic.main.dialog_other_aspect_ratio.view.*
+
+class OtherAspectRatioDialog(val activity: BaseSimpleActivity, val lastOtherAspectRatio: Pair?, val callback: (aspectRatio: Pair) -> Unit) {
+ private val dialog: AlertDialog
+
+ init {
+ val view = activity.layoutInflater.inflate(R.layout.dialog_other_aspect_ratio, null).apply {
+ other_aspect_ratio_2_1.setOnClickListener { ratioPicked(Pair(2, 1)) }
+ other_aspect_ratio_3_2.setOnClickListener { ratioPicked(Pair(3, 2)) }
+ other_aspect_ratio_4_3.setOnClickListener { ratioPicked(Pair(4, 3)) }
+ other_aspect_ratio_5_3.setOnClickListener { ratioPicked(Pair(5, 3)) }
+ other_aspect_ratio_16_9.setOnClickListener { ratioPicked(Pair(16, 9)) }
+ other_aspect_ratio_19_9.setOnClickListener { ratioPicked(Pair(19, 9)) }
+
+ other_aspect_ratio_1_2.setOnClickListener { ratioPicked(Pair(1, 2)) }
+ other_aspect_ratio_2_3.setOnClickListener { ratioPicked(Pair(2, 3)) }
+ other_aspect_ratio_3_4.setOnClickListener { ratioPicked(Pair(3, 4)) }
+ other_aspect_ratio_3_5.setOnClickListener { ratioPicked(Pair(3, 5)) }
+ other_aspect_ratio_9_16.setOnClickListener { ratioPicked(Pair(9, 16)) }
+ other_aspect_ratio_9_19.setOnClickListener { ratioPicked(Pair(9, 19)) }
+
+ val radio1SelectedItemId = when (lastOtherAspectRatio) {
+ Pair(2, 1) -> other_aspect_ratio_2_1.id
+ Pair(3, 2) -> other_aspect_ratio_3_2.id
+ Pair(4, 3) -> other_aspect_ratio_4_3.id
+ Pair(5, 3) -> other_aspect_ratio_5_3.id
+ Pair(16, 9) -> other_aspect_ratio_16_9.id
+ Pair(19, 9) -> other_aspect_ratio_19_9.id
+ else -> 0
+ }
+ other_aspect_ratio_dialog_radio_1.check(radio1SelectedItemId)
+
+ val radio2SelectedItemId = when (lastOtherAspectRatio) {
+ Pair(1, 2) -> other_aspect_ratio_1_2.id
+ Pair(2, 3) -> other_aspect_ratio_2_3.id
+ Pair(3, 4) -> other_aspect_ratio_3_4.id
+ Pair(3, 5) -> other_aspect_ratio_3_5.id
+ Pair(9, 16) -> other_aspect_ratio_9_16.id
+ Pair(9, 19) -> other_aspect_ratio_9_19.id
+ else -> 0
+ }
+ other_aspect_ratio_dialog_radio_2.check(radio2SelectedItemId)
+ }
+
+ dialog = AlertDialog.Builder(activity)
+ .setNegativeButton(R.string.cancel, null)
+ .create().apply {
+ activity.setupDialogStuff(view, this)
+ }
+ }
+
+ private fun ratioPicked(pair: Pair) {
+ callback(pair)
+ dialog.dismiss()
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt
index 83f1bc600..21cf823ce 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt
@@ -16,6 +16,7 @@ import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.activities.SimpleActivity
import com.simplemobiletools.gallery.pro.dialogs.PickDirectoryDialog
import com.simplemobiletools.gallery.pro.helpers.NOMEDIA
+import com.simplemobiletools.gallery.pro.helpers.RECYCLE_BIN
import com.simplemobiletools.gallery.pro.interfaces.MediumDao
import java.io.File
import java.io.InputStream
@@ -192,7 +193,7 @@ fun BaseSimpleActivity.tryDeleteFileDirItem(fileDirItem: FileDirItem, allowDelet
deleteFile(fileDirItem, allowDeleteFolder) {
if (deleteFromDatabase) {
Thread {
- galleryDB.MediumDao().deleteMediumPath(fileDirItem.path)
+ deleteDBPath(galleryDB.MediumDao(), fileDirItem.path)
runOnUiThread {
callback?.invoke(it)
}
@@ -211,10 +212,12 @@ fun BaseSimpleActivity.movePathsInRecycleBin(paths: ArrayList, mediumDao
val internalFile = File(recycleBinPath, it)
try {
if (file.copyRecursively(internalFile, true)) {
- mediumDao.updateDeleted(it, System.currentTimeMillis())
+ mediumDao.updateDeleted("$RECYCLE_BIN$it", System.currentTimeMillis(), it)
pathsCnt--
}
- } catch (ignored: Exception) {
+ } catch (e: Exception) {
+ showErrorToast(e)
+ return@forEach
}
}
callback?.invoke(pathsCnt == 0)
@@ -238,7 +241,7 @@ fun BaseSimpleActivity.restoreRecycleBinPaths(paths: ArrayList, mediumDa
inputStream = getFileInputStreamSync(source)!!
inputStream.copyTo(out!!)
if (File(source).length() == File(destination).length()) {
- mediumDao.updateDeleted(destination, 0)
+ mediumDao.updateDeleted(destination.removePrefix(recycleBinPath), 0, "$RECYCLE_BIN$destination")
}
} catch (e: Exception) {
showErrorToast(e)
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Context.kt
index dfb74bc2f..d7430f161 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Context.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Context.kt
@@ -218,7 +218,7 @@ fun Context.rescanFolderMediaSync(path: String) {
if (!newMedia.contains(it)) {
val mediumPath = (it as? Medium)?.path
if (mediumPath != null) {
- mediumDao.deleteMediumPath(mediumPath)
+ deleteDBPath(mediumDao, mediumPath)
}
}
}
@@ -437,7 +437,7 @@ fun Context.getCachedMedia(path: String, getVideosOnly: Boolean = false, getImag
val mediaToDelete = ArrayList()
media.filter { !getDoesFilePathExist(it.path) }.forEach {
if (it.path.startsWith(recycleBinPath)) {
- mediumDao.deleteMediumPath(it.path.removePrefix(recycleBinPath))
+ deleteDBPath(mediumDao, it.path)
} else {
mediaToDelete.add(it)
}
@@ -470,10 +470,15 @@ fun Context.getOTGFolderChildrenNames(path: String) = getOTGFolderChildren(path)
fun Context.getFavoritePaths() = galleryDB.MediumDao().getFavoritePaths() as ArrayList
+// remove the "recycle_bin" from the file path prefix, replace it with real bin path /data/user...
fun Context.getUpdatedDeletedMedia(mediumDao: MediumDao): ArrayList {
val media = mediumDao.getDeletedMedia() as ArrayList
media.forEach {
- it.path = File(recycleBinPath, it.path).toString()
+ it.path = File(recycleBinPath, it.path.removePrefix(RECYCLE_BIN)).toString()
}
return media
}
+
+fun Context.deleteDBPath(mediumDao: MediumDao, path: String) {
+ mediumDao.deleteMediumPath(path.replaceFirst(recycleBinPath, RECYCLE_BIN))
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/String.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/String.kt
index 4e5808a33..ee08503bf 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/String.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/String.kt
@@ -1,5 +1,6 @@
package com.simplemobiletools.gallery.pro.extensions
+import android.media.MediaMetadataRetriever
import com.bumptech.glide.signature.ObjectKey
import com.simplemobiletools.commons.helpers.OTG_PATH
import java.io.File
@@ -43,3 +44,14 @@ fun String.getDistinctPath(): String {
toLowerCase()
}
}
+
+fun String.getVideoDuration(): Int {
+ var seconds = 0
+ try {
+ val retriever = MediaMetadataRetriever()
+ retriever.setDataSource(this)
+ seconds = Math.round(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION).toInt() / 1000f)
+ } catch (e: Exception) {
+ }
+ return seconds
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt
index 7618cdf9d..5d28ff477 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt
@@ -4,7 +4,6 @@ import android.content.Intent
import android.content.res.Configuration
import android.graphics.Point
import android.graphics.SurfaceTexture
-import android.media.MediaMetadataRetriever
import android.net.Uri
import android.os.Bundle
import android.os.Handler
@@ -145,7 +144,7 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S
checkFullscreen()
mWasFragmentInit = true
- mExoPlayer = ExoPlayerFactory.newSimpleInstance(context, DefaultTrackSelector())
+ mExoPlayer = ExoPlayerFactory.newSimpleInstance(context)
mExoPlayer!!.seekParameters = SeekParameters.CLOSEST_SYNC
initExoPlayerListeners()
@@ -381,16 +380,10 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S
val realDisplayMetrics = DisplayMetrics()
display.getRealMetrics(realDisplayMetrics)
- val realHeight = realDisplayMetrics.heightPixels
- val realWidth = realDisplayMetrics.widthPixels
-
val displayMetrics = DisplayMetrics()
display.getMetrics(displayMetrics)
- val displayHeight = displayMetrics.heightPixels
- val displayWidth = displayMetrics.widthPixels
-
- return realWidth - displayWidth > 0 || realHeight - displayHeight > 0
+ return (realDisplayMetrics.widthPixels - displayMetrics.widthPixels > 0) || (realDisplayMetrics.heightPixels - displayMetrics.heightPixels > 0)
}
private fun setupTimeHolder() {
@@ -524,13 +517,7 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S
}
private fun setupVideoDuration() {
- try {
- val retriever = MediaMetadataRetriever()
- retriever.setDataSource(medium.path)
- mDuration = Math.round(retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION).toInt() / 1000f)
- } catch (ignored: Exception) {
- }
-
+ mDuration = medium.path.getVideoDuration()
setupTimeHolder()
setPosition(0)
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt
index 26e42fcc2..8c2545ff7 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt
@@ -1,5 +1,6 @@
package com.simplemobiletools.gallery.pro.fragments
+import android.provider.MediaStore
import android.view.MotionEvent
import androidx.fragment.app.Fragment
import com.simplemobiletools.commons.extensions.*
@@ -56,7 +57,7 @@ abstract class ViewPagerFragment : Fragment() {
}
if (detailsFlag and EXT_LAST_MODIFIED != 0) {
- file.lastModified().formatDate().let { if (it.isNotEmpty()) details.appendln(it) }
+ getFileLastModified(file).let { if (it.isNotEmpty()) details.appendln(it) }
}
if (detailsFlag and EXT_DATE_TAKEN != 0) {
@@ -75,6 +76,23 @@ abstract class ViewPagerFragment : Fragment() {
fun getPathToLoad(medium: Medium) = if (medium.path.startsWith(OTG_PATH)) medium.path.getOTGPublicPath(context!!) else medium.path
+ private fun getFileLastModified(file: File): String {
+ val projection = arrayOf(MediaStore.Images.Media.DATE_MODIFIED)
+ val uri = MediaStore.Files.getContentUri("external")
+ val selection = "${MediaStore.MediaColumns.DATA} = ?"
+ val selectionArgs = arrayOf(file.absolutePath)
+ val cursor = context!!.contentResolver.query(uri, projection, selection, selectionArgs, null)
+ cursor?.use {
+ return if (cursor.moveToFirst()) {
+ val dateModified = cursor.getLongValue(MediaStore.Images.Media.DATE_MODIFIED) * 1000L
+ dateModified.formatDate()
+ } else {
+ file.lastModified().formatDate()
+ }
+ }
+ return ""
+ }
+
protected fun handleEvent(event: MotionEvent) {
when (event.actionMasked) {
MotionEvent.ACTION_DOWN -> {
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt
index cb8be5ace..e25a4073d 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt
@@ -117,7 +117,7 @@ class Config(context: Context) : BaseConfig(context) {
}
var excludedFolders: MutableSet
- get() = prefs.getStringSet(EXCLUDED_FOLDERS, HashSet())
+ get() = prefs.getStringSet(EXCLUDED_FOLDERS, HashSet())
set(excludedFolders) = prefs.edit().remove(EXCLUDED_FOLDERS).putStringSet(EXCLUDED_FOLDERS, excludedFolders).apply()
fun addIncludedFolder(path: String) {
@@ -152,6 +152,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getBoolean(CROP_THUMBNAILS, true)
set(cropThumbnails) = prefs.edit().putBoolean(CROP_THUMBNAILS, cropThumbnails).apply()
+ var showThumbnailVideoDuration: Boolean
+ get() = prefs.getBoolean(SHOW_THUMBNAIL_VIDEO_DURATION, false)
+ set(showThumbnailVideoDuration) = prefs.edit().putBoolean(SHOW_THUMBNAIL_VIDEO_DURATION, showThumbnailVideoDuration).apply()
+
var screenRotation: Int
get() = prefs.getInt(SCREEN_ROTATION, ROTATE_BY_SYSTEM_SETTING)
set(screenRotation) = prefs.edit().putInt(SCREEN_ROTATION, screenRotation).apply()
@@ -407,4 +411,16 @@ class Config(context: Context) : BaseConfig(context) {
var allowDownGesture: Boolean
get() = prefs.getBoolean(ALLOW_DOWN_GESTURE, true)
set(allowDownGesture) = prefs.edit().putBoolean(ALLOW_DOWN_GESTURE, allowDownGesture).apply()
+
+ var lastEditorCropAspectRatio: Int
+ get() = prefs.getInt(LAST_EDITOR_CROP_ASPECT_RATIO, ASPECT_RATIO_FREE)
+ set(lastEditorCropAspectRatio) = prefs.edit().putInt(LAST_EDITOR_CROP_ASPECT_RATIO, lastEditorCropAspectRatio).apply()
+
+ var lastEditorCropOtherAspectRatioX: Int
+ get() = prefs.getInt(LAST_EDITOR_CROP_OTHER_ASPECT_RATIO_X, 2)
+ set(lastEditorCropOtherAspectRatioX) = prefs.edit().putInt(LAST_EDITOR_CROP_OTHER_ASPECT_RATIO_X, lastEditorCropOtherAspectRatioX).apply()
+
+ var lastEditorCropOtherAspectRatioY: Int
+ get() = prefs.getInt(LAST_EDITOR_CROP_OTHER_ASPECT_RATIO_Y, 1)
+ set(lastEditorCropOtherAspectRatioY) = prefs.edit().putInt(LAST_EDITOR_CROP_OTHER_ASPECT_RATIO_Y, lastEditorCropOtherAspectRatioY).apply()
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt
index ab2e18712..f868a1747 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt
@@ -15,6 +15,7 @@ const val LOOP_VIDEOS = "loop_videos"
const val ANIMATE_GIFS = "animate_gifs"
const val MAX_BRIGHTNESS = "max_brightness"
const val CROP_THUMBNAILS = "crop_thumbnails"
+const val SHOW_THUMBNAIL_VIDEO_DURATION = "show_thumbnail_video_duration"
const val SCREEN_ROTATION = "screen_rotation"
const val DISPLAY_FILE_NAMES = "display_file_names"
const val DARK_BACKGROUND = "dark_background"
@@ -67,6 +68,9 @@ const val WAS_SVG_SHOWING_HANDLED = "was_svg_showing_handled"
const val LAST_BIN_CHECK = "last_bin_check"
const val SHOW_HIGHEST_QUALITY = "show_highest_quality"
const val ALLOW_DOWN_GESTURE = "allow_down_gesture"
+const val LAST_EDITOR_CROP_ASPECT_RATIO = "last_editor_crop_aspect_ratio"
+const val LAST_EDITOR_CROP_OTHER_ASPECT_RATIO_X = "last_editor_crop_other_aspect_ratio_x"
+const val LAST_EDITOR_CROP_OTHER_ASPECT_RATIO_Y = "last_editor_crop_other_aspect_ratio_y"
// slideshow
const val SLIDESHOW_INTERVAL = "slideshow_interval"
@@ -79,7 +83,7 @@ const val SLIDESHOW_MOVE_BACKWARDS = "slideshow_move_backwards"
const val SLIDESHOW_LOOP = "loop_slideshow"
const val SLIDESHOW_DEFAULT_INTERVAL = 5
const val SLIDESHOW_SCROLL_DURATION = 500L
-const val SLIDESHOW_START_ON_ENTER= "slideshow_start_on_enter"
+const val SLIDESHOW_START_ON_ENTER = "slideshow_start_on_enter"
const val NOMEDIA = ".nomedia"
const val FAVORITES = "favorites"
@@ -161,3 +165,10 @@ const val BOTTOM_ACTION_RENAME = 1024
const val BOTTOM_ACTION_SET_AS = 2048
const val DEFAULT_BOTTOM_ACTIONS = BOTTOM_ACTION_TOGGLE_FAVORITE or BOTTOM_ACTION_EDIT or BOTTOM_ACTION_SHARE or BOTTOM_ACTION_DELETE
+
+// aspect ratios used at the editor for cropping
+const val ASPECT_RATIO_FREE = 0
+const val ASPECT_RATIO_ONE_ONE = 1
+const val ASPECT_RATIO_FOUR_THREE = 2
+const val ASPECT_RATIO_SIXTEEN_NINE = 3
+const val ASPECT_RATIO_OTHER = 4
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt
index 4dab1cf17..24d571dfa 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt
@@ -18,7 +18,8 @@ import java.util.*
class MediaFetcher(val context: Context) {
var shouldStop = false
- fun getFilesFrom(curPath: String, isPickImage: Boolean, isPickVideo: Boolean, getProperDateTaken: Boolean, favoritePaths: ArrayList): ArrayList {
+ fun getFilesFrom(curPath: String, isPickImage: Boolean, isPickVideo: Boolean, getProperDateTaken: Boolean, favoritePaths: ArrayList,
+ getVideoDurations: Boolean): ArrayList {
val filterMedia = context.config.filterMedia
if (filterMedia == 0) {
return ArrayList()
@@ -26,10 +27,10 @@ class MediaFetcher(val context: Context) {
val curMedia = ArrayList()
if (curPath.startsWith(OTG_PATH)) {
- val newMedia = getMediaOnOTG(curPath, isPickImage, isPickVideo, filterMedia, favoritePaths)
+ val newMedia = getMediaOnOTG(curPath, isPickImage, isPickVideo, filterMedia, favoritePaths, getVideoDurations)
curMedia.addAll(newMedia)
} else {
- val newMedia = getMediaInFolder(curPath, isPickImage, isPickVideo, filterMedia, getProperDateTaken, favoritePaths)
+ val newMedia = getMediaInFolder(curPath, isPickImage, isPickVideo, filterMedia, getProperDateTaken, favoritePaths, getVideoDurations)
curMedia.addAll(newMedia)
}
@@ -122,7 +123,7 @@ class MediaFetcher(val context: Context) {
val foldersToIgnore = arrayListOf("/storage/emulated/legacy")
val config = context.config
val includedFolders = config.includedFolders
- var foldersToScan = config.everShownFolders.toMutableList() as ArrayList
+ var foldersToScan = config.everShownFolders.filter { it == FAVORITES || it == RECYCLE_BIN || context.getDoesFilePathExist(it) }.toMutableList() as ArrayList
cursor.use {
if (cursor.moveToFirst()) {
@@ -167,7 +168,7 @@ class MediaFetcher(val context: Context) {
}
private fun getMediaInFolder(folder: String, isPickImage: Boolean, isPickVideo: Boolean, filterMedia: Int, getProperDateTaken: Boolean,
- favoritePaths: ArrayList): ArrayList {
+ favoritePaths: ArrayList, getVideoDurations: Boolean): ArrayList {
val media = ArrayList()
val deletedMedia = if (folder == RECYCLE_BIN) {
@@ -231,6 +232,7 @@ class MediaFetcher(val context: Context) {
} else {
val lastModified = file.lastModified()
var dateTaken = lastModified
+ val videoDuration = if (getVideoDurations && isVideo) path.getVideoDuration() else 0
if (getProperDateTaken) {
dateTaken = dateTakens.remove(filename) ?: lastModified
@@ -245,14 +247,15 @@ class MediaFetcher(val context: Context) {
}
val isFavorite = favoritePaths.contains(path)
- val medium = Medium(null, filename, path, file.parent, lastModified, dateTaken, size, type, isFavorite, 0L)
+ val medium = Medium(null, filename, path, file.parent, lastModified, dateTaken, size, type, videoDuration, isFavorite, 0L)
media.add(medium)
}
}
return media
}
- private fun getMediaOnOTG(folder: String, isPickImage: Boolean, isPickVideo: Boolean, filterMedia: Int, favoritePaths: ArrayList): ArrayList {
+ private fun getMediaOnOTG(folder: String, isPickImage: Boolean, isPickVideo: Boolean, filterMedia: Int, favoritePaths: ArrayList,
+ getVideoDurations: Boolean): ArrayList {
val media = ArrayList()
val files = context.getDocumentFile(folder)?.listFiles() ?: return media
val doExtraCheck = context.config.doExtraCheck
@@ -307,8 +310,9 @@ class MediaFetcher(val context: Context) {
}
val path = Uri.decode(file.uri.toString().replaceFirst("${context.config.OTGTreeUri}/document/${context.config.OTGPartition}%3A", OTG_PATH))
+ val videoDuration = if (getVideoDurations) path.getVideoDuration() else 0
val isFavorite = favoritePaths.contains(path)
- val medium = Medium(null, filename, path, folder, dateModified, dateTaken, size, type, isFavorite, 0L)
+ val medium = Medium(null, filename, path, folder, dateModified, dateTaken, size, type, videoDuration, isFavorite, 0L)
media.add(medium)
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediumDao.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediumDao.kt
index bf2d68d9f..1ce2bb641 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediumDao.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/MediumDao.kt
@@ -9,16 +9,16 @@ import com.simplemobiletools.gallery.pro.models.Medium
@Dao
interface MediumDao {
- @Query("SELECT filename, full_path, parent_path, last_modified, date_taken, size, type, is_favorite, deleted_ts FROM media WHERE deleted_ts = 0 AND parent_path = :path COLLATE NOCASE")
+ @Query("SELECT filename, full_path, parent_path, last_modified, date_taken, size, type, video_duration, is_favorite, deleted_ts FROM media WHERE deleted_ts = 0 AND parent_path = :path COLLATE NOCASE")
fun getMediaFromPath(path: String): List
- @Query("SELECT filename, full_path, parent_path, last_modified, date_taken, size, type, is_favorite, deleted_ts FROM media WHERE deleted_ts = 0 AND is_favorite = 1")
+ @Query("SELECT filename, full_path, parent_path, last_modified, date_taken, size, type, video_duration, is_favorite, deleted_ts FROM media WHERE deleted_ts = 0 AND is_favorite = 1")
fun getFavorites(): List
@Query("SELECT full_path FROM media WHERE deleted_ts = 0 AND is_favorite = 1")
fun getFavoritePaths(): List
- @Query("SELECT filename, full_path, parent_path, last_modified, date_taken, size, type, is_favorite, deleted_ts FROM media WHERE deleted_ts != 0")
+ @Query("SELECT filename, full_path, parent_path, last_modified, date_taken, size, type, video_duration, is_favorite, deleted_ts FROM media WHERE deleted_ts != 0")
fun getDeletedMedia(): List
@Insert(onConflict = REPLACE)
@@ -42,8 +42,8 @@ interface MediumDao {
@Query("UPDATE media SET is_favorite = :isFavorite WHERE full_path = :path COLLATE NOCASE")
fun updateFavorite(path: String, isFavorite: Boolean)
- @Query("UPDATE media SET deleted_ts = :deletedTS WHERE full_path = :path COLLATE NOCASE")
- fun updateDeleted(path: String, deletedTS: Long)
+ @Query("UPDATE OR REPLACE media SET full_path = :newPath, deleted_ts = :deletedTS WHERE full_path = :oldPath COLLATE NOCASE")
+ fun updateDeleted(newPath: String, deletedTS: Long, oldPath: String)
@Query("UPDATE media SET date_taken = :dateTaken WHERE full_path = :path COLLATE NOCASE")
fun updateFavoriteDateTaken(path: String, dateTaken: Long)
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Medium.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Medium.kt
index 68f8008a8..e6d95da66 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Medium.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Medium.kt
@@ -25,6 +25,7 @@ data class Medium(
@ColumnInfo(name = "date_taken") var taken: Long,
@ColumnInfo(name = "size") val size: Long,
@ColumnInfo(name = "type") val type: Int,
+ @ColumnInfo(name = "video_duration") val videoDuration: Int,
@ColumnInfo(name = "is_favorite") var isFavorite: Boolean,
@ColumnInfo(name = "deleted_ts") var deletedTS: Long) : Serializable, ThumbnailItem() {
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/objects/MyExecutor.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/objects/MyExecutor.kt
deleted file mode 100644
index bc2d57129..000000000
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/objects/MyExecutor.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package com.simplemobiletools.gallery.pro.objects
-
-import java.util.concurrent.Executors
-
-object MyExecutor {
- val myExecutor = Executors.newSingleThreadExecutor()
-}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/RefreshMediaReceiver.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/RefreshMediaReceiver.kt
index 01e4591e2..3e3f35ec9 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/RefreshMediaReceiver.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/receivers/RefreshMediaReceiver.kt
@@ -16,7 +16,7 @@ class RefreshMediaReceiver : BroadcastReceiver() {
Thread {
val medium = Medium(null, path.getFilenameFromPath(), path, path.getParentPath(), System.currentTimeMillis(), System.currentTimeMillis(),
- File(path).length(), getFileType(path), false, 0L)
+ File(path).length(), getFileType(path), 0, false, 0L)
context.galleryDB.MediumDao().insert(medium)
}.start()
}
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 5fda2a812..84912ef58 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -17,8 +17,8 @@
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:paddingLeft="@dimen/big_margin"
- android:paddingRight="@dimen/big_margin"
android:paddingTop="@dimen/activity_margin"
+ android:paddingRight="@dimen/big_margin"
android:text="@string/no_media_with_filters"
android:textSize="@dimen/bigger_text_size"
android:visibility="gone"/>
@@ -49,8 +49,8 @@
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
- android:paddingLeft="@dimen/normal_margin"
android:paddingStart="@dimen/normal_margin"
+ android:paddingLeft="@dimen/normal_margin"
android:visibility="gone">
@@ -61,9 +61,9 @@
android:id="@+id/directories_horizontal_fastscroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentBottom="true"
android:paddingTop="@dimen/normal_margin"
android:visibility="gone">
diff --git a/app/src/main/res/layout/activity_manage_folders.xml b/app/src/main/res/layout/activity_manage_folders.xml
index b1256ecc8..e4526f204 100644
--- a/app/src/main/res/layout/activity_manage_folders.xml
+++ b/app/src/main/res/layout/activity_manage_folders.xml
@@ -20,8 +20,8 @@
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:paddingLeft="@dimen/big_margin"
- android:paddingRight="@dimen/big_margin"
android:paddingTop="@dimen/activity_margin"
+ android:paddingRight="@dimen/big_margin"
android:text="@string/excluded_activity_placeholder"
android:visibility="gone"/>
diff --git a/app/src/main/res/layout/activity_media.xml b/app/src/main/res/layout/activity_media.xml
index fe95394c1..222ca5826 100644
--- a/app/src/main/res/layout/activity_media.xml
+++ b/app/src/main/res/layout/activity_media.xml
@@ -17,8 +17,8 @@
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:paddingLeft="@dimen/big_margin"
- android:paddingRight="@dimen/big_margin"
android:paddingTop="@dimen/activity_margin"
+ android:paddingRight="@dimen/big_margin"
android:text="@string/no_media_with_filters"
android:textSize="@dimen/bigger_text_size"
android:visibility="gone"/>
@@ -49,8 +49,8 @@
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
- android:paddingLeft="@dimen/normal_margin"
android:paddingStart="@dimen/normal_margin"
+ android:paddingLeft="@dimen/normal_margin"
android:visibility="gone">
@@ -61,9 +61,9 @@
android:id="@+id/media_horizontal_fastscroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentBottom="true"
android:paddingTop="@dimen/normal_margin"
android:visibility="gone">
diff --git a/app/src/main/res/layout/activity_panorama_photo.xml b/app/src/main/res/layout/activity_panorama_photo.xml
index 4592d8838..199fb8d8f 100644
--- a/app/src/main/res/layout/activity_panorama_photo.xml
+++ b/app/src/main/res/layout/activity_panorama_photo.xml
@@ -4,7 +4,7 @@
android:id="@+id/panorama_holder"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="#FF000000">
+ android:background="@color/md_grey_black">
+ android:background="@color/md_grey_black">
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/dialog_change_grouping.xml b/app/src/main/res/layout/dialog_change_grouping.xml
index 21292ec5d..d4e6fc02f 100644
--- a/app/src/main/res/layout/dialog_change_grouping.xml
+++ b/app/src/main/res/layout/dialog_change_grouping.xml
@@ -11,8 +11,8 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_margin"
- android:paddingRight="@dimen/activity_margin"
- android:paddingTop="@dimen/activity_margin">
+ android:paddingTop="@dimen/activity_margin"
+ android:paddingRight="@dimen/activity_margin">
@@ -84,16 +84,16 @@
android:id="@+id/grouping_dialog_radio_ascending"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingBottom="@dimen/medium_margin"
android:paddingTop="@dimen/medium_margin"
+ android:paddingBottom="@dimen/medium_margin"
android:text="@string/ascending"/>
@@ -105,8 +105,8 @@
android:id="@+id/grouping_dialog_use_for_this_folder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:paddingBottom="@dimen/activity_margin"
android:paddingTop="@dimen/activity_margin"
+ android:paddingBottom="@dimen/activity_margin"
android:text="@string/use_for_this_folder"/>
diff --git a/app/src/main/res/layout/dialog_delete_with_remember.xml b/app/src/main/res/layout/dialog_delete_with_remember.xml
index df4ea5519..2f9fc47d5 100644
--- a/app/src/main/res/layout/dialog_delete_with_remember.xml
+++ b/app/src/main/res/layout/dialog_delete_with_remember.xml
@@ -5,8 +5,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="@dimen/big_margin"
- android:paddingRight="@dimen/big_margin"
- android:paddingTop="@dimen/big_margin">
+ android:paddingTop="@dimen/big_margin"
+ android:paddingRight="@dimen/big_margin">
+ android:paddingTop="@dimen/activity_margin"
+ android:paddingRight="@dimen/activity_margin">
diff --git a/app/src/main/res/layout/dialog_manage_bottom_actions.xml b/app/src/main/res/layout/dialog_manage_bottom_actions.xml
index 6e58322e4..3e5f7f790 100644
--- a/app/src/main/res/layout/dialog_manage_bottom_actions.xml
+++ b/app/src/main/res/layout/dialog_manage_bottom_actions.xml
@@ -11,103 +11,103 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_margin"
- android:paddingRight="@dimen/activity_margin"
- android:paddingTop="@dimen/medium_margin">
+ android:paddingTop="@dimen/medium_margin"
+ android:paddingRight="@dimen/activity_margin">
diff --git a/app/src/main/res/layout/dialog_manage_extended_details.xml b/app/src/main/res/layout/dialog_manage_extended_details.xml
index 129adf95e..4b42ab9b2 100644
--- a/app/src/main/res/layout/dialog_manage_extended_details.xml
+++ b/app/src/main/res/layout/dialog_manage_extended_details.xml
@@ -11,71 +11,71 @@
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="@dimen/activity_margin"
- android:paddingRight="@dimen/activity_margin"
- android:paddingTop="@dimen/medium_margin">
+ android:paddingTop="@dimen/medium_margin"
+ android:paddingRight="@dimen/activity_margin">
diff --git a/app/src/main/res/layout/dialog_medium_picker.xml b/app/src/main/res/layout/dialog_medium_picker.xml
index 087ca553c..c9b59d2d8 100644
--- a/app/src/main/res/layout/dialog_medium_picker.xml
+++ b/app/src/main/res/layout/dialog_medium_picker.xml
@@ -20,8 +20,8 @@
android:layout_height="match_parent"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
- android:paddingLeft="@dimen/normal_margin"
- android:paddingStart="@dimen/normal_margin">
+ android:paddingStart="@dimen/normal_margin"
+ android:paddingLeft="@dimen/normal_margin">
@@ -31,9 +31,9 @@
android:id="@+id/media_horizontal_fastscroller"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
- android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentBottom="true"
android:paddingTop="@dimen/normal_margin">
diff --git a/app/src/main/res/layout/dialog_other_aspect_ratio.xml b/app/src/main/res/layout/dialog_other_aspect_ratio.xml
new file mode 100644
index 000000000..76fbb1b4a
--- /dev/null
+++ b/app/src/main/res/layout/dialog_other_aspect_ratio.xml
@@ -0,0 +1,159 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/dialog_save_as.xml b/app/src/main/res/layout/dialog_save_as.xml
index 7fa48abe4..61033e0bc 100644
--- a/app/src/main/res/layout/dialog_save_as.xml
+++ b/app/src/main/res/layout/dialog_save_as.xml
@@ -18,10 +18,10 @@
android:id="@+id/save_as_path"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginBottom="@dimen/activity_margin"
android:layout_marginLeft="@dimen/activity_margin"
- android:paddingRight="@dimen/small_margin"
- android:paddingTop="@dimen/small_margin"/>
+ android:layout_marginBottom="@dimen/activity_margin"
+ android:paddingTop="@dimen/small_margin"
+ android:paddingRight="@dimen/small_margin"/>
+ android:paddingLeft="@dimen/medium_margin"
+ android:paddingTop="@dimen/activity_margin"
+ android:paddingBottom="@dimen/activity_margin">
+ android:paddingLeft="@dimen/medium_margin"
+ android:paddingTop="@dimen/activity_margin"
+ android:paddingBottom="@dimen/activity_margin">
+ android:paddingLeft="@dimen/medium_margin"
+ android:paddingTop="@dimen/activity_margin"
+ android:paddingBottom="@dimen/activity_margin">
+ android:paddingLeft="@dimen/medium_margin"
+ android:paddingTop="@dimen/activity_margin"
+ android:paddingBottom="@dimen/activity_margin">
+ android:paddingLeft="@dimen/medium_margin"
+ android:paddingTop="@dimen/activity_margin"
+ android:paddingBottom="@dimen/activity_margin">
+ android:paddingLeft="@dimen/medium_margin"
+ android:paddingTop="@dimen/activity_margin"
+ android:paddingBottom="@dimen/activity_margin">
+ android:paddingBottom="@dimen/small_margin">
diff --git a/app/src/main/res/layout/directory_item_list.xml b/app/src/main/res/layout/directory_item_list.xml
index a22820f5b..4a0036d7f 100644
--- a/app/src/main/res/layout/directory_item_list.xml
+++ b/app/src/main/res/layout/directory_item_list.xml
@@ -18,9 +18,9 @@
android:id="@+id/dir_check"
android:layout_width="@dimen/selection_check_size"
android:layout_height="@dimen/selection_check_size"
+ android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
- android:layout_alignParentTop="true"
android:layout_margin="@dimen/small_margin"
android:background="@drawable/circle_background"
android:padding="@dimen/tiny_margin"
@@ -43,8 +43,8 @@
android:id="@+id/dir_path"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_alignLeft="@+id/dir_name"
android:layout_below="@+id/dir_name"
+ android:layout_alignLeft="@+id/dir_name"
android:layout_marginRight="@dimen/activity_margin"
android:alpha="0.4"
android:ellipsize="end"
@@ -67,9 +67,9 @@
android:id="@+id/dir_icon_holder"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
+ android:layout_alignParentBottom="true"
android:layout_marginRight="@dimen/small_margin"
android:gravity="end"
android:orientation="horizontal"
diff --git a/app/src/main/res/layout/photo_video_item_grid.xml b/app/src/main/res/layout/photo_video_item_grid.xml
index 03d5fe30b..14c85348d 100644
--- a/app/src/main/res/layout/photo_video_item_grid.xml
+++ b/app/src/main/res/layout/photo_video_item_grid.xml
@@ -17,10 +17,10 @@
android:id="@+id/medium_check"
android:layout_width="@dimen/selection_check_size"
android:layout_height="@dimen/selection_check_size"
+ android:layout_alignRight="@+id/medium_name"
+ android:layout_alignParentTop="true"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
- android:layout_alignParentTop="true"
- android:layout_alignRight="@+id/photo_name"
android:layout_margin="@dimen/small_margin"
android:background="@drawable/circle_background"
android:padding="@dimen/tiny_margin"
@@ -31,27 +31,44 @@
android:id="@+id/play_outline"
android:layout_width="@dimen/selection_check_size"
android:layout_height="@dimen/selection_check_size"
- android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
+ android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_margin="@dimen/small_margin"
android:src="@drawable/img_play_outline"
android:visibility="gone"/>
+
+
diff --git a/app/src/main/res/layout/photo_video_item_list.xml b/app/src/main/res/layout/photo_video_item_list.xml
index e24bbfa2f..46f772e8a 100644
--- a/app/src/main/res/layout/photo_video_item_list.xml
+++ b/app/src/main/res/layout/photo_video_item_list.xml
@@ -1,6 +1,7 @@
+
+
قلب أفقيا
قلب عموديا
تعديل باستخدام
- Free
+ Free
+ Other
خلفية بسيطة
@@ -143,6 +144,7 @@
عرض صور GIF المتحركة في الصور المصغرة
أقصى سطوع عند عرض الوسائط
قص الصور المصغرة الى مستطيلات
+ Show video durations
تدوير وسائط ملء الشاشة بواسطة
اعدادات النظام
تدوير الجهاز
diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml
index d2eb21889..9bf9ff4b5 100644
--- a/app/src/main/res/values-az/strings.xml
+++ b/app/src/main/res/values-az/strings.xml
@@ -88,7 +88,8 @@
Flip horizontally
Flip vertically
Edit with
- Free
+ Free
+ Other
Simple Wallpaper
@@ -139,6 +140,7 @@
Animate GIFs at thumbnails
Max brightness when viewing fullscreen media
Crop thumbnails into squares
+ Show video durations
Rotate fullscreen media by
System setting
Device rotation
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
index a5272db32..25833a288 100644
--- a/app/src/main/res/values-ca/strings.xml
+++ b/app/src/main/res/values-ca/strings.xml
@@ -89,6 +89,7 @@
Verticalment
Editar amb
Lliure
+ Other
Fons de pantalla de Simple Gallery
@@ -139,6 +140,7 @@
Animar les miniatures dels GIFs
Brillantor màxima quan es mostra multimèdia
Retallar miniatures en quadrats
+ Show video durations
Gira els mitjans a pantalla completa segons
Configuració del sistema
Rotació del dispositiu
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index b08b981a0..291bda22e 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -4,11 +4,11 @@
Galerie
Upravit
Spustit fotoaparát
- (skryté)
- (excluded)
+ (skryto)
+ (vyloučeno)
Připnout složku
Odepnout složku
- Pin to the top
+ Připnout nahoru
Zobrazit obsah všech složek
Všechny složky
Přepnout na zobrazení složek
@@ -17,33 +17,33 @@
Neznámá poloha
Zvýšit počet sloupců
Snížit počet sloupců
- Change cover image
- Select photo
- Use default
- Volume
- Brightness
- Lock orientation
- Unlock orientation
- Change orientation
- Force portrait
- Force landscape
- Use default orientation
- Fix Date Taken value
- Fixing…
- Dates fixed successfully
+ Změnit obal alba
+ Vybrat fotografii
+ Použít výchozí
+ Hlasitost
+ Jas
+ Uzamknout orientaci
+ Odemknout orientaci
+ Změnit orientaci
+ Vynutit orientaci na výšku
+ Vynutit orientaci na šířku
+ Použít výchozí orientaci
+ Opravit datum vytvoření
+ Opravuji…
+ Datumy byly úspěšně opraveny
- Filter media
- Images
- Videos
- GIFs
- RAW images
- SVGs
- No media files have been found with the selected filters.
- Change filters
+ Filtr médií
+ Obrázky
+ Videa
+ GIFy
+ RAW obrázky
+ SVGčka
+ Se zvolenými filtry nebyly nalezeny žádné médiální soubory.
+ Změnit filtry
- Tato funkce skryje složku, včetně podsložek, přidáním souboru \'.nomedia\'. Zobrazíte je zvolením možnosti \'Zobrazit skryté položky\' v nastavení. Pokračovat?
+ Tato funkce skryje složku včetně podsložek přidáním souboru \'.nomedia\'. Zobrazíte je zvolením možnosti \'Zobrazit skryté položky\' v nastavení. Pokračovat?
Vyloučit
Vyloučené složky
Spravovat vyloučené složky
@@ -52,9 +52,9 @@
Vyloučené složky budou spolu s podsložkami vyloučeny jen z Jednoduché Galerie, ostatní aplikace je nadále uvidí.\n\nPokud je chcete skrýt i před ostatními aplikacemi, použijte funkci Skrýt.
Odstranit všechny
Odstranit všechny složky ze seznamu vyloučených? Tato operace neodstraní obsah složek.
- Hidden folders
- Manage hidden folders
- Seems like you don\'t have any folders hidden with a \".nomedia\" file.
+ Skryté složky
+ Spravovat skryté složky
+ Zdá se, že nemáte žádné složky skryté pomocí souboru \".nomedia\".
Přidané složky
@@ -87,8 +87,9 @@
Překlopit
Překlopit vodorovně
Překlopit svisle
- Edit with
- Free
+ Upravit s
+ Volný
+ Other
Jednoduchá tapeta
@@ -97,146 +98,147 @@
Nastavit jako tapetu pomocí:
Nastavuje se tapeta…
Tapeta byla úspěšně změněna
- Portrait aspect ratio
- Landscape aspect ratio
- Home screen
- Lock screen
- Home and lock screen
+ Poměr stran na výšku
+ Poměr stran na šířku
+ Domovská obrazovka
+ Zamykací obrazovka
+ Domovská a zamykací obrazovka
- Slideshow
- Interval (seconds):
- Include photos
- Include videos
- Include GIFs
- Random order
- Use fade animations
- Move backwards
- Loop slideshow
- The slideshow ended
- No media for the slideshow have been found
+ Prezentace
+ Interval (sekundy):
+ Zahrnout fotografie
+ Zahrnout videa
+ Zahrnout GIFy
+ Náhodné pořadí
+ Použít miznoucí animace
+ Jít opačným směrem
+ Smyčková prezentace
+ Prezentace skončila
+ Nebyla nalezena žádná média pro prezentaci
- Change view type
- Grid
- List
- Group direct subfolders
+ Změnit typ zobrazení
+ Mřížka
+ Seznam
+ Sloučit přímé podsložky
- Group by
- Do not group files
- Folder
- Last modified
- Date taken
- File type
- Extension
+ Seskupit podle
+ Soubory neseskupovat
+ Složky
+ Data poslední úpravy
+ Data pořízení
+ Typu souboru
+ Přípony
Automaticky přehrávat videa
- Remember last video playback position
+ Zapamatovat pozici posledního přehraného videa
Přepnout viditelnost názvů souborů
Přehrávat videa ve smyčce
Animovat náhledy souborů GIF
Nastavit jas obrazovky na max při zobrazení médií
- Crop thumbnails into squares
- Rotate fullscreen media by
- System setting
- Device rotation
- Aspect ratio
- Black background and status bar at fullscreen media
- Scroll thumbnails horizontally
- Automatically hide system UI at fullscreen media
- Delete empty folders after deleting their content
- Allow controlling photo brightness with vertical gestures
- Allow controlling video volume and brightness with vertical gestures
- Show folder media count on the main view
- Replace Share with Rotate at fullscreen menu
- Show extended details over fullscreen media
- Manage extended details
- Allow one finger zoom at fullscreen media
- Allow instantly changing media by clicking on screen sides
- Allow deep zooming images
- Hide extended details when status bar is hidden
- Do an extra check to avoid showing invalid files
- Show some action buttons at the bottom of the screen
- Show the Recycle Bin at the folders screen
- Deep zoomable images
- Show images in the highest possible quality
- Show the Recycle Bin as the last item on the main screen
- Allow closing the fullscreen view with a down gesture
+ Oříznout náhledy na čtverce
+ Show video durations
+ Otočit média podle
+ Systémového nastavení
+ Otočení zařízení
+ Poměru stran
+ Černé pozadí a stavová lišta při médiích na celou obrazovku
+ Prohlížet miniatury vodorovně
+ Automaticky skrývat systémové lišty při celoobrazovkových médiích
+ Odstranit prázdné složky po smazání jejich obsahu
+ Povolit ovládání jasu vertikálními tahy
+ Povolit ovládání hlasitosti a jasu videí vertikálními tahy
+ Zobrazit počet médií ve složce na hlavní obrazovce
+ Nahradit Sdílení s Otočením v celoobrazovkovém menu
+ Zobrazit rozšířené vlastnosti přes celoobrazovkové média
+ Spravovat rozšířené vlastnosti
+ Povolit přibližování jedním prstem v celoobrazovkovém režimu
+ Povolit okamžité přepínání médií kliknutím na okraj obrazovky
+ Povolit hluboké přibližování obrázků
+ Skrýt rozšířené vlastnosti pokud je skrytá stavová lišta
+ Předejít zobrazování neplatných souborů dodatečnou kontrolou
+ Zobrazit některé akční tlačítka na spodní straně obrazovky
+ Zobrazit odpadkový koš na obrazovce se složkami
+ Hluboce priblížitelné obrázky
+ Zobrazit obrázky v nejlepší možné kvalitě
+ Zobrazit odpadkový koš jako poslední položku na hlavní obrazovce
+ Povolit zavírání celoobrazovkového režimu tažením prstu dolů
- Thumbnails
- Fullscreen media
- Extended details
- Bottom actions
+ Náhledy
+ Celoobrazovkový režim
+ Rozšířené vlastnosti
+ Spodní skční tlačítka
- Manage visible bottom actions
- Toggle favorite
- Toggle file visibility
+ Upravit viditelné spodní akční tlačítka
+ Přepnutí oblíbenosti
+ Přepnutí viditelnosti souboru
- How can I make Simple Gallery the default device gallery?
- First you have to find the currently default gallery in the Apps section of your device settings, look for a button that says something like \"Open by default\", click on it, then select \"Clear defaults\".
- The next time you will try opening an image or video you should see an app picker, where you can select Simple Gallery and make it the default app.
- I locked the app with a password, but I forgot it. What can I do?
- You can solve it in 2 ways. You can either reinstall the app, or find the app in your device settings and select \"Clear data\". It will reset all your settings, it will not remove any media files.
- How can I make an album always appear at the top?
- You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.
- How can I fast-forward videos?
- You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.
- What is the difference between hiding and excluding a folder?
- Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.
- Why do folders with music cover art or stickers show up?
- It can happen that you will see some unusual albums show up. You can easily exclude them by long pressing them and selecting Exclude. In the next dialog you can then select the parent folder, chances are it will prevent the other related albums showing up too.
- A folder with images isn\'t showing up, what can I do?
- That can have multiple reasons, but solving it is easy. Just go in Settings -> Manage Included Folders, select Plus and navigate to the required folder.
- What if I want just a few particular folders visible?
- Adding a folder at the Included Folders doesn\'t automatically exclude anything. What you can do is go in Settings -> Manage Excluded Folders, exclude the root folder \"/\", then add the desired folders at Settings -> Manage Included Folders.
- That will make only the selected folders visible, as both excluding and including are recursive and if a folder is both excluded and included, it will show up.
- Fullscreen images have weird artifacts, can I somehow improve the quality?
- Yea, there is a toggle in Settings saying \"Replace deep zoomable images with better quality ones\", you can use that. It will improve the quality of the images, but they will get blurred once you try zooming in too much.
- Can I crop images with this app?
- Yes, you can crop images in the editor, by dragging the image corners. You can get to the editor either by long pressing an image thumbnail and selecting Edit, or selecting Edit from the fullscreen view.
- Can I somehow group media file thumbnails?
- Sure, just use the \"Group by\" menu item while at the thumbnails view. You can group files by multiple criteria, including Date Taken. If you use the \"Show all folders content\" function you can group them by folders too.
- Sorting by Date Taken doesn\'t seem to work properly, how can I fix it?
- It is most likely caused by the files being copied from somewhere. You can fix it by selecting the file thumbnails and selecting \"Fix Date Taken value\".
- I see some color banding on the images. How can I improve the quality?
- The current solution for displaying images works fine in the vast majority of cases, but if you want even better image quality, you can enable the \"Show images in the highest possible quality\" at the app settings, in the \"Deep zoomable images\" section.
- I have hidden a file/folder. How can I unhide it?
- You can either press the \"Temporarily show hidden items\" menu item at the main screen, or toggle \"Show hidden items\" in the app settings to see the hidden item. If you want to unhide it, just long press it and select \"Unhide\". Folders are hidden by adding a hidden \".nomedia\" file into them, you can delete the file with any file manager too.
+ Jak můžu udělat Jednoduchou Galerii výchozí galerií zařízení?
+ Nejdřív musíte najít v nastavení zařízení sekci Aplikace, současnou výchozí galerii, zvolit tlačítko s textem ve smyslu \"Nastavení výchozího otevírání\" a následně \"Vymazat výchozí nastavení\".
+ Pokud potom zkusíte otevřít obrázek nebo video, zobrazí se seznam aplikací, kde můžete zvolit Jednoduchou Galerii a nastavit ji jako výchozí.
+ Uzamknul jsem aplikaci heslem, ale zapomněl jsem ho. Co můžu udělat?
+ Můžete to vyriešǐť 2 způsoby. Můžete aplikaci buď přeinstalovat nebo ji najít v nastavení zařízení a zvolit \"Vymazat data\". Vymaže to pouze nastavení, nikoli soubory.
+ Jak můžu dosáhnout, aby bylo dané album stále zobrazeno první?
+ Můžete označit danou složku dlouhým podržením a zvolit tlačítko s obrázkem připínáčku, to jej připne na vrch. Můžete připnout i více složek, budou seřazeny podle zvoleného řazení.
+ Jak můžu rychle posunout videa?
+ Můžete kliknout na texty současné nebo maximální délky videa, které jsou vedle indikátoru současného progresu. To posune video buď vpřed, nebo vzad.
+ Jaký je rozdíl mezi Skrytím a Vyloučením složky?
+ Zatímco vyloučení předejde zobrazení složky pouze vrámci Jednoduché Galerie, skrytí ho ukryje vrámci celého systému, tedy to ovlivní i ostatní galerie. Skrytí funguje pomocí vytvoření prázdného \".nomedia\" souboru v daném adresáři, který můžete vymazat i nějakým správcem souborů.
+ Proč se mi zobrazují složky s obaly hudebních alb, nebo nálepkami?
+ Může se stát, že se vám zobrazí také neobvyklé složky. Můžete je ale jednoduše skrýt pomocí jejich zvolení dlouhým podržením a zvolením Vyloučit. Pokud na následujícím dialogu zvolíte vyloučení rodičovské složky, pravděpodobně budou vyloučeny i ostatní podobné složky.
+ Složka s fotkami se mi nezobrazuje, co můžu udělat?
+ Může to mít několik důvodů, řešení je ale jednoduché. Jděte do Nastavení -> Spravovat přidané složky, zvolte Plus a zvolte požadovanou složku.
+ Co v případě, že chci mít zobrazeno pouze několik složek?
+ Přidání složky mezi Přidané složky automaticky nevyloučí ostatní. Můžete ale jít do Nastavení -> Spravovat vyloučené složky a zvolit Kořenovou složku \"/\", následně přidat požadované složky v Nastavení -> Spravovat přidané složky.
+ To způsobí, že budou zobrazeny pouze vyžádané složky, protože vyloučení i přidání fungují rekurzivně a pokud je složka vyloučena i přidaná, bude viditelná.
+ Fotky přes celou obrazovku mají zhoršenou kvalitu, můžu to nějak zlepšit?
+ Ano, v nastavení je přepínač s textem \"Nahradit hluboko priblížiteľné obrázky s obrázky s lepší kvalitou\", můžete to zkusit. Způsobí to vyšší kvalitu obrázků, po přiblížení se ale budou rozmazávat mnohem dříve.
+ Můžu s touto aplikací oříznout obrázky?
+ Ano, oříznutí je možné v editoru potažením rohů obrázků. Do editoru se můžete dostat buď dlouhým podržením náhledu obrázku a zvolením menu položky Upravit nebo zvolením Upravit při celoobrazovkovém režimu.
+ Můžu nějakým způsobem seskupit náhledy souborů?
+ Ano, použitím funkce \"Seskupit podle\" v menu obrazovky s náhledy. Seskupení je možné na základě různých kritérií včetně data vytvoření. Pokud použijete funkci \"Zobrazit obsah všech složek\", můžete je seskupit také podle složek.
+ Řazení podle data vytvoření nefunguje správně, jak to můžu opravit?
+ Je to pravděpodobně způsobeno kopírováním souborů. Můžete to opravit označením jednotlivých náhledů souborů a zvolit \"Opravit datum vytvoření\".
+ Na obrázcích vidím nějaké barevné pásy. Jak můžu zlepšit kvalitu obrázků?
+ Současné řešení funguje správně v drtivé většině případů, pokud ale chcete zobrazit obrázky v lepší kvalitě, můžete povolit možnost \"Zobrazit obrázky v nejlepší možné kvalitě\" v nastavení aplikace v sekcí \"Hluboko priblížitelné obrázky\".
+ Skryl jsem soubor/složku, jak to můžu odkrýt?
+ Můžete buď použít menu tlačítko \"Dočasně zobrazit skryté položky\" na hlavní obrazovce, nebo v nastavení aplikace zapnout možnost \"Zobrazit skryté položky\", tím se skryté položky zobrazí. Pokud je chcete odkrýt, stačí je dlouho podržet a zvolit možnost \"Odkrýt\". Složky jsou skrývané přidáním souboru \".nomedia\", ten můžete vymazat i libovolným správcem souborů.
Galerie na prohlížení obrázků a videí bez reklam.
- A highly customizable gallery capable of displaying many different image and video types including SVGs, RAWs, panoramic photos and videos.
+ Přizpůsobitelná galerie na zobrazování množství rozličných druhů obrázků a videí, včetně SVG, RAW souborů, panoramatických fotek a videí.
- It is open source, contains no ads or unnecessary permissions.
+ Je open source, neobsahuje reklamy a nepotřebné oprávnění.
- Let\'s list some of its features worth mentioning:
- 1. Search
- 2. Slideshow
- 3. Notch support
- 4. Pinning folders to the top
- 5. Filtering media files by type
- 6. Recycle bin for easy file recovery
- 7. Fullscreen view orientation locking
- 8. Marking favorite files for easy access
- 9. Quick fullscreen media closing with down gesture
- 10. An editor for modifying images and applying filters
- 11. Password protection for protecting hidden items or the whole app
- 12. Changing the thumbnail column count with gestures or menu buttons
- 13. Customizable bottom actions at the fullscreen view for quick access
- 14. Showing extended details over fullscreen media with desired file properties
- 15. Several different ways of sorting or grouping items, both ascending and descending
- 16. Hiding folders (affects other apps too), excluding folders (affects only Simple Gallery)
+ Seznamte se s některými funkcemi, které stojí za zmínku:
+ 1. Vyhledávání
+ 2. Prezentace
+ 3. Podpora pro výřez v displeji
+ 4. Připínání složek na vrch
+ 5. Filtování médií podle typu
+ 6. Odpadkový koš pro snadnou obnovu souborů
+ 7. Uzamykání orientace celoobrazovkového režimu
+ 8. Označování oblíbených položek pro snadný přístup
+ 9. Rychlé ukončování celoobrazovkového režimu pomocí potažení prstu dolů
+ 10. Editor pro úpravu obrázků a aplikaci filtrů
+ 11. Ochrana heslem pro zobrazování skrytých souborů nebo celé aplikace
+ 12. Změna počtu sloupců s náhledy buď gesty nebo pomocí menu tlačítek
+ 13. Nastavitelné spodní akce na celoobrazovkovém režimu pro rychlý přístup
+ 14. Zobrazení nastavitelných rozšířených vlastností přes celoobrazovkové média
+ 15. Několik různých způsobů řazení a seskupování položek vzestupně nebo sestupně
+ 16. Ukrývání složek (ovlivňuje i jiné aplikace), nebo jejich vyloučení (ovlivní pouze Jednoduchou galerii)
- The fingerprint permission is needed for locking either hidden item visibility, the whole app, or protecting files from being deleted.
+ Oprávnění k otiskům prstů je potřebný pro ochranu zobrazení skrytých položek, celé aplikace, nebo ochranu souborů před jejich odstraněním.
- This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
+ Tato aplikace je pouze jednou ze skupiny aplikací. Ostatní můžete najít na https://www.simplemobiletools.com
+ Free
+ Other
Simple Wallpaper
@@ -139,6 +140,7 @@
Animér GIF\'er i miniaturer
Maksimal lysstyrke ved fuldskærmsvisning af medier
Beskær miniaturer til kvadrater
+ Show video durations
Roter fuldskærmsmedier efter
Systemindstilling
Enhedens orientering
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index ca0c2ac16..141cad8b7 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -88,7 +88,8 @@
Horizontal spiegeln
Vertikal spiegeln
Bearbeiten mit:
- Beliebiges Seitenverhältnis
+ Beliebiges
+ Other
Schlichter Hintergrund
@@ -133,12 +134,13 @@
Videos automatisch abspielen
- Remember last video playback position
+ Letzte Videowiedergabeposition erinnern
Beschriftungen ein/aus
Videos in Endlosschleife abspielen
Kacheln von GIFs animieren
Helligkeit beim Betrachten maximieren
Kacheln quadratisch zuschneiden
+ Show video durations
Im Vollbild ausrichten nach:
Systemeinstellung
Gerätedrehung
@@ -163,7 +165,7 @@
Stark vergrösserbare Bilder
Zeige Bilder in der höchstmöglichen Qualität
Zeige den Papierkorb als letztes Element auf dem Hauptbildschirm
- Allow closing the fullscreen view with a down gesture
+ Erlaube das Schließen der Vollbildansicht mit einer Abwärtsgeste
Thumbnails
@@ -211,31 +213,31 @@
Eine schlichte Galerie zum Betrachten von Bildern und Videos, ganz ohne Werbung.
- A highly customizable gallery capable of displaying many different image and video types including SVGs, RAWs, panoramic photos and videos.
+ Eine stark anpassbare Galerie fähig zur Anzeige von diversen Bild- und Videoarten u. a. SVG, RAW, Panoramafotos und -videos.
- It is open source, contains no ads or unnecessary permissions.
+ Sie ist Open Source, enthält keine Werbung und verlangt keine unnötigen Berechtigungen.
- Let\'s list some of its features worth mentioning:
- 1. Search
- 2. Slideshow
- 3. Notch support
- 4. Pinning folders to the top
- 5. Filtering media files by type
- 6. Recycle bin for easy file recovery
- 7. Fullscreen view orientation locking
- 8. Marking favorite files for easy access
- 9. Quick fullscreen media closing with down gesture
- 10. An editor for modifying images and applying filters
- 11. Password protection for protecting hidden items or the whole app
- 12. Changing the thumbnail column count with gestures or menu buttons
- 13. Customizable bottom actions at the fullscreen view for quick access
- 14. Showing extended details over fullscreen media with desired file properties
- 15. Several different ways of sorting or grouping items, both ascending and descending
- 16. Hiding folders (affects other apps too), excluding folders (affects only Simple Gallery)
+ Hier eine Liste von einigen nennenswerten Eigenschaften:
+ 1. Suche
+ 2. Diashow
+ 3. Kerbenunterstützung
+ 4. Ordner zuoberst anheften
+ 5. Mediendateien nach Typ filtern
+ 6. Papierkorb für die einfache Dateiwiederherstellung
+ 7. Orientierung der Vollbildansicht arretieren
+ 8. Markierung von favorisierten Dateien für einfachen Zugriff
+ 9. Rasches Schliessen der Vollbildansicht durch Abwärtsgeste
+ 10. Ein Editor für die Bearbeitung von Bildern und die Anwendung von Filtern
+ 11. Passwortschutz für den Schutz von versteckten Elementen oder der ganzen App
+ 12. Ändern der Vorschauspaltenanzahl mit Gesten oder Menüknöpfen
+ 13. Anpassbare Aktionen am unteren Ende der Vollbildansicht für raschen Zugriff
+ 14. Anzeigen von weiteren Eigenschaften der Datei in der Vollbildansicht
+ 15. Diverse Arten der Sortierung oder Gruppierung von Elementen, beides an- und absteigend
+ 16. Ordner verstecken (betrifft andere Apps ebenfalls) und ausschliessen (betrifft nur Schlichte Galerie)
- The fingerprint permission is needed for locking either hidden item visibility, the whole app, or protecting files from being deleted.
+ Die Fingerabdruckberechtigung ist nötig für entweder das Festsetzen der Sichtbarkeit von versteckten Elementen/der ganzen App oder das Schützen von Dateien vor dem Löschen.
- This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
+ Diese App ist nur ein Teil einer grösseren Serie von Apps. Der Rest befindet sich unter https://www.simplemobiletools.com .
+ Other
Simple Wallpaper
@@ -133,12 +134,13 @@
Αυτόματη αναπαραγωγή βίντεο
- Remember last video playback position
+ Απομνημόνευση της τελευταίας θέσης αναπαραγωγής βίντεο
Αλλαγή προβολής ονόματος αρχείων
Επανάληψη βίντεο
Εμφάνιση κινούμενων GIFs στα εικονίδια
Μέγιστη φωτεινότητα κατά την προβολή πλήρους οθόνης
Κόψιμο εικονιδίων σε τετράγωνα
+ Εμφάνιση διάρκειας βίντεο
Περιστροφή σε πλήρη οθόνη απο
Ρυθμίσεις συστήματος
Περιστροφή συσκευής
@@ -163,7 +165,7 @@
Βαθιά μεγέθυνση εικόνων
Εμφάνιση εικόνων με την υψηλότερη δυνατή ποιότητα
Εμφάνιση του Κάδου ως τελευταίο στοιχείο στην κύρια οθόνη
- Allow closing the fullscreen view with a down gesture
+ Επιτρέψτε το κλείσιμο προβολής πλήρους οθόνης με χειρονομία προς τα κάτω
Εικονίδια
@@ -212,31 +214,31 @@
Μία Gallery για την προβολή φωτογραφιών και βίντεο χωρίς διαφημίσεις.
- A highly customizable gallery capable of displaying many different image and video types including SVGs, RAWs, panoramic photos and videos.
+ Μια εξαιρετικά προσαρμόσιμη Gallery ικανή να εμφανίζει πολλούς διαφορετικούς τύπους εικόνας και βίντεο, όπως SVGs, RAWs, πανοραμικές φωτογραφίες και βίντεο.
- It is open source, contains no ads or unnecessary permissions.
+ Είναι ανοικτού κώδικα, δεν περιέχει διαφημίσεις ή περιττά δικαιώματα.
- Let\'s list some of its features worth mentioning:
- 1. Search
+ Ας περιγράψουμε μερικά από τα χαρακτηριστικά που αξίζει να αναφέρουμε:
+ 1. Αναζήτηση
2. Slideshow
- 3. Notch support
- 4. Pinning folders to the top
- 5. Filtering media files by type
- 6. Recycle bin for easy file recovery
- 7. Fullscreen view orientation locking
- 8. Marking favorite files for easy access
- 9. Quick fullscreen media closing with down gesture
- 10. An editor for modifying images and applying filters
- 11. Password protection for protecting hidden items or the whole app
- 12. Changing the thumbnail column count with gestures or menu buttons
- 13. Customizable bottom actions at the fullscreen view for quick access
- 14. Showing extended details over fullscreen media with desired file properties
- 15. Several different ways of sorting or grouping items, both ascending and descending
- 16. Hiding folders (affects other apps too), excluding folders (affects only Simple Gallery)
+ 3. Υποστήριξη Notch
+ 4. Καρφίτσωμα φακέλων στην αρχή
+ 5. Φιλτράρισμα αρχείων πολυμέσων ανά τύπο
+ 6. Κάδος για εύκολη ανάκτηση αρχείων
+ 7. Κλείδωμα προσανατολισμού πλήρους οθόνης
+ 8. Σήμανση αγαπημένων αρχείων για εύκολη πρόσβαση
+ 9. Γρήγορο κλείσιμο πολυμέσων πλήρους οθόνης με χειρονομία κάτω
+ 10. Ένα πρόγρ. επεξεργασίας εικόνων για τροποποίηση και εφαρμογή φίλτρων
+ 11. Προστασία με κωδικό για προστασία κρυφών στοιχείων ή ολόκληρης της εφαρμ.
+ 12. Αλλαγή αριθμού στήλης μικρογραφιών με χειρονομίες ή με πλήκτρα μενού
+ 13. Προσαρμόσιμες λειτουργίες κάτω σε πλήρη οθόνη για γρήγορη πρόσβαση
+ 14. Εμφάνιση πρόσθετων λεπτομ. πολυμέσων σε πλήρη οθόνη με επιθυμητές ιδιότητες αρχείου
+ 15. Διάφοροι διαφορετικοί τρόποι Ταξιν/Ομαδοπ, τόσο προς τα επάνω ή κάτω
+ 16. Απόκρυψη φακέλων (επηρεάζει και άλλες εφαρμ.), με εξαίρεση τους φακέλους (επηρεάζει μόνο την Simple Gallery)
- The fingerprint permission is needed for locking either hidden item visibility, the whole app, or protecting files from being deleted.
+ Το δικαίωμα δακτυλικών αποτυπωμάτων είναι απαραίτητο για το κλείδωμα, είτε της προβολής κρυφών στοιχείων, ή της εφαρμογής ή των αρχείων από τη διαγραφή τους.
- This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
+ Αυτή η εφαρμογή είναι μόνο ένα μέρος μιας ευρείας σειράς εφαρμογών. Μπορείτε να βρείτε τις υπόλοιπες στο https://www.simplemobiletools.com
+ Libre
+ Other
Fondos de pantalla Simple Gallery
@@ -139,6 +140,7 @@
Animar las miniaturas de GIFs
Brillo máximo cuando se muestra multimedia
Recortar miniaturas en cuadrados
+ Show video durations
Rotar multimedia en pantalla completa según
Configuración del sistema
Rotación del dispositivo
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index c862f51f2..e26cef2a7 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -88,7 +88,8 @@
Pyöräytä vaakasuoraan
Pyöräytä pystysuoraan
Muokkaa sovelluksella
- Free
+ Free
+ Other
Simple Wallpaper
@@ -139,6 +140,7 @@
Animoi GIFit pienoiskuvissa
Täysi kirkkaus mediaa katsoessa
Leikkaa pienoiskuvat neliöiksi
+ Show video durations
Käännä koko ruudun mediaa
Järjestelmän asetukset
Laitteen kierto
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index d7ec4d5c2..c2c905a9f 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -88,7 +88,8 @@
Retourner horizontalement
Retourner verticalement
Modifier avec
- Libre
+ Libre
+ Other
Fond d\'écran simple
@@ -139,6 +140,7 @@
GIFs animés sur les miniatures
Luminosité maximale
Recadrer les miniatures en carrés
+ Show video durations
Pivoter l\'affichage selon
Paramètres système
Rotation de l\'appareil
diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml
index 0a7f4032f..07e7df693 100644
--- a/app/src/main/res/values-gl/strings.xml
+++ b/app/src/main/res/values-gl/strings.xml
@@ -88,7 +88,8 @@
Voltear horizontalmente
Voltear verticalmente
Editar con
- Free
+ Free
+ Other
Fondo de pantalla
@@ -139,6 +140,7 @@
Animar os GIFs na icona
Brillo ao máximo cando mire medios
Recortar iconas a cadrados
+ Show video durations
Rotar medios a pantalla completa a
Axuste do sistema
Rotación do dispositivo
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index 5ac572a6e..6090e559b 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -88,7 +88,8 @@
Okreni horizontalno
Okreni vertikalno
Uredi pomoću
- Slobodan odabir
+ Slobodan odabir
+ Other
Jednostavna pozadina
@@ -139,6 +140,7 @@
Prikaz animacije GIF-ova na sličicama
Maksimalna svjetlina pri pregledu datoteka
Izreži sličice u kvadrate
+ Show video durations
Rotiraj datoteku u punom zaslonu za
Postavke sustava
Rotacija uređaja
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index 84f679fac..65468b93e 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -21,7 +21,7 @@
Válasszon fotót
Alapértelmezett használata
Hangerő
- Fényesség
+ Fényerő
Tájolás zárolása
Tájolás feloldása
Tájolás változtatása
@@ -88,7 +88,8 @@
Tükrözés vízszintesen
Tükrözés függőlegesen
Szerkesztés ezzel
- Szabad
+ Kötetlen
+ Egyéb
@@ -124,8 +125,8 @@
Közvetlen almappa csoport
- Csoport
- Nincsenek csoportosított fájlok
+ Csoportosítás
+ Nincs csoportosítás
Mappa
Utolsó módosítás
Dátum
@@ -140,6 +141,7 @@
Animált GIF miniatűr
Maximális fényerő a teljes képernyős médiánál
Miniatűrök négyzet alakúra vágva
+ Mutassa a videó időtartamát
Teljes képernyős média forgatása
Rendszer beállítások
Eszköz elforgatás
@@ -150,7 +152,7 @@
Az üres mappák törlése a tartalom törlése után
Engedélyezi a kép fényerő módosítást függőleges gesztusokkal
Engedélyezi a videó hangerő és fényerő módosítást függőleges gesztusokkal
- Mutassa be a mappák számát a főnézetben
+ Mutassa a fájlok számát a mappákban
Cserélje meg a Megosztást a Forgatással a teljes képernyős menüben
Mutassa a kiterjesztett adatokat a teljes képernyős médián keresztül
Bővített részletek kezelése
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 21b24254c..95b22925f 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -88,7 +88,8 @@
Capovolgi orizzontalmente
Capovolgi verticalmente
Modifica con
- Libero
+ Libero
+ Altro
Sfondo semplice
@@ -114,7 +115,7 @@
Scorri al contrario
Ripeti presentazione
La presentazione è terminata
- Nessun media trovato per la presentazione
+ Nessun file trovato per la presentazione
Cambia modalità visualizzazione
@@ -133,12 +134,13 @@
Riproduci i video automaticamente
- Remember last video playback position
+ Ricorda l\'ultimo stato di riproduzione dei video
Visibilità nome del file
Ripeti i video
Anima le GIF in miniatura
Luminosità max durante la visualizzazione
Ritaglia le miniature in quadrati
+ Mostra la durata del video
Ruota schermo per
Impostazione di sistema
Rotazione dispositivo
@@ -214,7 +216,7 @@
Una galleria altamente personalizzabile e capace di visualizzare tipi di file immagini e video differenti, fra cui SVG, RAW, foto panoramiche e video.
- È open source, non contiene pubblicità e permessi superflui.
+ È open source, non contiene pubblicità e autorizzazioni superflue.
Alcune funzionalità che vale la pena accennare:
1. Ricerca
@@ -234,7 +236,7 @@
15. Molti modi per ordinare o raggruppare gli elementi, sia in ordine crescente che decrescente
16. Cartelle nascoste (anche per altre applicazioni), cartelle escluse (solo per Simple Gallery)
- Il permesso di leggere le impronte digitali è necessario per il blocco della visibilità degli elementi, dell\'intera applicazione o per proteggere alcuni file dalla loro eliminazione.
+ L\'autorizzazione per leggere le impronte digitali è necessaria per il blocco della visibilità degli elementi, dell\'intera applicazione o per proteggere alcuni file dalla loro eliminazione.
Questa applicazione è solamente una di una serie più grande. Si possono trovare le altre su https://www.simplemobiletools.com
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 96707db26..d1a8bc92e 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -88,7 +88,8 @@
水平方向に反転
垂直方向に反転
他のアプリで編集
- Free
+ Free
+ Other
シンプル壁紙
@@ -139,6 +140,7 @@
アニメーションGIFを動かす
再生時には明るさを最大にする
サムネイルを正方形に切り取る
+ Show video durations
フルスクリーン再生の表示切り替え
システム設定に従う
端末の向きに従う
diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml
index 9a69c6c48..974054786 100644
--- a/app/src/main/res/values-ko-rKR/strings.xml
+++ b/app/src/main/res/values-ko-rKR/strings.xml
@@ -88,7 +88,8 @@
가로 반전
세로 반전
이미지편집 프로그램 연결
- Free
+ Free
+ Other
Simple Wallpaper
@@ -139,6 +140,7 @@
섬네일에서 GIFs 애니메이션 활성화
미디어 최대 밝기
미리보기 사각형으로 자름
+ Show video durations
전체화면으로 회전기준
시스템 설정
디바이스 회전
diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml
index 37d2ff2e7..f0f73e1a1 100644
--- a/app/src/main/res/values-lt/strings.xml
+++ b/app/src/main/res/values-lt/strings.xml
@@ -88,7 +88,8 @@
Apversti horizontaliai
Apversti vertikaliai
Redaguoti su
- Free
+ Free
+ Other
Paprastas darbalaukio fonas
@@ -139,6 +140,7 @@
Animuoti GIF\'us miniatiūrose
Maksimalus ryškumas, kai medija peržiūrima viso ekrano rėžimu
Apkirpti miniatiūras kvadratu
+ Show video durations
Sukti viso ekrano mediją pagal
Sistemos nustatymai
Įrenginio sukimas
diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml
index 07b01f30e..a866ca6e4 100644
--- a/app/src/main/res/values-nb/strings.xml
+++ b/app/src/main/res/values-nb/strings.xml
@@ -88,7 +88,8 @@
Speilvend horisontalt
Speilvend vertikalt
Rediger med
- Fri
+ Fri
+ Other
Bakgrunnsbilde
@@ -139,6 +140,7 @@
Animert GIF i minibildevisning
Maks lysstyrke ved mediavisning
Beskjær minibilder i kvadrater
+ Vis videolengde
Roter media etter
Systeminnstilling
Enhetsrotasjon
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index f62a9bf3f..0e3a92429 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -88,7 +88,8 @@
Horizontaal kantelen
Verticaal kantelen
Bewerken met
- Vrij
+ Vrij
+ Anders
Achtergrond
@@ -139,6 +140,7 @@
GIF-bestanden afspelen in overzicht
Maximale helderheid in volledig scherm
Miniatuurvoorbeelden bijsnijden
+ Lengte van video\'s tonen
Media in volledig scherm roteren volgens
Systeeminstelling
Oriëntatie van apparaat
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 39b32cbf5..991c22e7b 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -88,7 +88,8 @@
Przewróć w poziomie
Przewróć w pionie
Edytuj w:
- Wolne
+ Wolne
+ Other
Tapeta
@@ -133,12 +134,13 @@
Odtwarzaj filmy automatycznie
- Remember last video playback position
+ Pamiętaj ostatni moment odtwarzania filmów
Pokazuj / ukrywaj nazwy plików
Zapętlaj odtwarzanie filmów
Animowane miniatury GIFów
Maksymalna jasność podczas wyświetlania multimediów
Przycinaj miniatury do kwadratów
+ Pokazuj czas trwania filmów
Obracaj pełnoekranowe multimedia według
Ustawień systemowych
Orientacji urządzenia
@@ -202,39 +204,39 @@
Sortowanie według daty utworzenia nie działa poprawnie. Dlaczego tak się dzieje i jak mogę to naprawić?
Dzieje się tak, gdyż prawdopodobnie pliki zostały skądś do urządzenia skopiowane. Naprawić to można wybierając miniatury plików, a następnie opcję \'Napraw datę utworzenia\'.
Na obrazach widzę wyraźne zmiany w kolorach. Jak mogę to naprawić?
- Obecne rozwiązanie służące wyświetlaniu obrazów działa jak powinno w większości w przypadków. Jeśli jednak tak nie jest, pomocna może okazać się opcja \"Pokazuj obrazy w najwyższej możliwej jakości\" w sekcji \"Duże powiększanie obrazów\".
+ Obecne rozwiązanie służące wyświetlaniu obrazów działa jak powinno w większości w przypadków. Jeśli jednak tak nie jest, pomocna może okazać się opcja \'Pokazuj obrazy w najwyższej możliwej jakości\' w sekcji \'Duże powiększanie obrazów\'.
Mam ukryte pliki i / lub foldery. Jak mogę zobaczyć?
- Możesz to zrobić albo wybierając opcję \"Tymczasowo pokaż ukryte multimedia\" w menu na ekranie głównym, lub \"Pokazuj ukryte elementy\" w ustawieniach. Foldery są ukrywane poprzez dodanie do nich pustego, ukrytego pliku \".nomedia\", usunąć go możesz dowolnym menedżerem plików.
+ Możesz to zrobić albo wybierając opcję \'Tymczasowo pokaż ukryte multimedia\' w menu na ekranie głównym, lub \'Pokazuj ukryte elementy\' w ustawieniach. Foldery są ukrywane poprzez dodanie do nich pustego, ukrytego pliku \'.nomedia\'. Usunąć go możesz dowolnym menedżerem plików.
Prosta galeria bez reklam do przeglądania obrazów i filmów.
- A highly customizable gallery capable of displaying many different image and video types including SVGs, RAWs, panoramic photos and videos.
+ Wysoce konfigurowalna galeria obsługująca wiele formatów obrazów i filmów, w tym SVG, RAW oraz multimedia panoramiczne.
+
+ Jest otwartoźródłowa, nie zawiera reklam i nie potrzebuje masy uprawnień.
- It is open source, contains no ads or unnecessary permissions.
+ Oto lista wartych wspomnienia funkcji:
+ 1. Wyszukiwanie
+ 2. Pokazy slajdów
+ 3. Wsparcie dla wcięć w ekranach
+ 4. Przypinanie folderów
+ 5. Filtrowanie plików według typu
+ 6. Kosz dla łatwego odzyskiwania plików
+ 7. Blokowanie orientacji ekranu w widoku pełnoekranowym
+ 8. Oznaczanie plików jako ulubione dla łatwiejszego do nich dostępu
+ 9. Szybkie zamykanie pełnoekranowego widoku gestem pociągnięcia w dół
+ 10. Edytor do szybkich modyfikacji i poprawek
+ 11. Ochrona plików i/lub całej aplikacji hasłem
+ 12. Zmiana ilości kolumn w widoku miniatur gestami lub w menu
+ 13. Konfigurowalne przyciski akcji w widoku pełnoekranowym
+ 14. Rozszerzone informacje o multimediach w widoku pełnoekranowym
+ 15. Wiele sposobów sortowania i grupowania plików i folderów, rosnąco i malejąco
+ 16. Ukrywanie folderów (wszędzie) i ich wykluczanie (tylko w obrębie tej aplikacji)
- Let\'s list some of its features worth mentioning:
- 1. Search
- 2. Slideshow
- 3. Notch support
- 4. Pinning folders to the top
- 5. Filtering media files by type
- 6. Recycle bin for easy file recovery
- 7. Fullscreen view orientation locking
- 8. Marking favorite files for easy access
- 9. Quick fullscreen media closing with down gesture
- 10. An editor for modifying images and applying filters
- 11. Password protection for protecting hidden items or the whole app
- 12. Changing the thumbnail column count with gestures or menu buttons
- 13. Customizable bottom actions at the fullscreen view for quick access
- 14. Showing extended details over fullscreen media with desired file properties
- 15. Several different ways of sorting or grouping items, both ascending and descending
- 16. Hiding folders (affects other apps too), excluding folders (affects only Simple Gallery)
+ Uprawnienie odnośnie odcisków palców potrzebne jest do blokowania widoczności plików i folderów, do ochrony przed ich usunięciem i do blokowania dostępu do aplikacji.
- The fingerprint permission is needed for locking either hidden item visibility, the whole app, or protecting files from being deleted.
-
- This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
+ Aplikacja ta jest tylko częścią serii. Pozostałe znajdziesz tutaj: https://www.simplemobiletools.com
+ Free
+ Other
Simple Wallpaper
@@ -139,6 +140,7 @@
Animação de GIFs nas miniaturas
Brilho máximo ao visualizar mídia
Recortar miniaturas em quadrados
+ Show video durations
Critério para rotação de tela
Padrão do sistema
Sensor do aparelho
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 6298c9547..681704fec 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -43,7 +43,7 @@
Alterar filtros
- Esta opção oculta uma pasta com a adição de um ficheiro \'.nomedia\' na pasta, e irá ocultar todas as subpastas existentes. Pode ver as pastas com a opção \'Mostrar pastas ocultas\'. Continuar?
+ Esta opção oculta uma pasta com a adição de um ficheiro \'.nomedia\' e irá ocultar todas as sub-pastas existentes. Pode ver as pastas com a opção \'Mostrar pastas ocultas\'. Continuar?
Exclusão
Pastas excluídas
Gerir pastas excluídas
@@ -88,7 +88,8 @@
Horizontalmente
Verticalmente
Editar com
- Livre
+ Livre
+ Other
Simple Wallpaper
@@ -133,12 +134,13 @@
Reproduzir vídeos automaticamente
- Remember last video playback position
+ Memorizar posição da reprodução
Mostrar/ocultar nome do ficheiro
Vídeos em ciclo
Animação de GIF nas miniaturas
Brilho máximo permitido
Recortar miniaturas em quadrados
+ Mostrar duração do vídeo
Rodar em ecrã completo por
Definições do sistema
Rotação do dispositivo
@@ -155,15 +157,15 @@
Gerir detalhes exibidos
Permitir ampliação com um dedo se em ecrã completo
Permitir troca imediata de ficheiro ao tocar nas margens do ecrã
- Perimitir ampliação profunda de imagens
+ Permitir ampliação profunda de imagens
Ocultar detalhes extra se a barra de estado estiver oculta
- Efetuar uma dupla verificação para evitar mostrar os ficheiros inválidos
+ Dupla verificação para evitar mostrar os ficheiros inválidos
Mostrar alguns botões de ação na base do ecrã
Mostrar reciclagem no ecrã de pastas
- Deep zoomable images
+ Ampliação de imagens
Mostrar fotos com a melhor qualidade possível
Mostrar a reciclagem como o último item do ecrã principal
- Allow closing the fullscreen view with a down gesture
+ Sair de ecrã completo com um gesto para baixo
Miniaturas
@@ -212,31 +214,31 @@
Uma aplicação para ver fotografias e vídeos.
- A highly customizable gallery capable of displaying many different image and video types including SVGs, RAWs, panoramic photos and videos.
+ Um aplicação capaz de mostrar diversos tipos de imagens e vídeos incluíndo SVG, RAW, fotos panorâmicas e vídeos.
- It is open source, contains no ads or unnecessary permissions.
+ É totalmente open source, não tem anúncios nem requer permissões desnecessárias.
- Let\'s list some of its features worth mentioning:
- 1. Search
- 2. Slideshow
- 3. Notch support
- 4. Pinning folders to the top
- 5. Filtering media files by type
- 6. Recycle bin for easy file recovery
- 7. Fullscreen view orientation locking
- 8. Marking favorite files for easy access
- 9. Quick fullscreen media closing with down gesture
- 10. An editor for modifying images and applying filters
- 11. Password protection for protecting hidden items or the whole app
- 12. Changing the thumbnail column count with gestures or menu buttons
- 13. Customizable bottom actions at the fullscreen view for quick access
- 14. Showing extended details over fullscreen media with desired file properties
- 15. Several different ways of sorting or grouping items, both ascending and descending
- 16. Hiding folders (affects other apps too), excluding folders (affects only Simple Gallery)
+ Algumas das suas funcionalidades:
+ 1. Pesquisa
+ 2. Apresentações
+ 3. Suporte notch
+ 4. Fixação de pastas
+ 5. Filtro de ficheiros por tipo
+ 6. Reciclagem para recuperação de ficheiros
+ 7. Possibilidade de bloquer a orientação da vista
+ 8. Possibilidade de marcar ficheiros como favoritos
+ 9. Possibilidade de sair de ecrã completo com um gesto
+ 10. Editor para modificar imagens e aplicar filtros
+ 11. Possibilidade de proteger ficheiros com palavra-passe
+ 12. Possibilidade de alterar o número de colunas com gestos ou botões de menu
+ 13. Botões de ação personalizados
+ 14. Possibilidade de mostrar detalhes extra em ecrã completo bem como as propriedades dos ficheiros
+ 15. Diversas formas para organizar e agrupar itens
+ 16. Proteção de pastas (com efeito nas outras aplicações) e exclusão de pastas (apenas Simple Gallery)
- The fingerprint permission is needed for locking either hidden item visibility, the whole app, or protecting files from being deleted.
+ A permissão Impressão digital é necessária para proteger a visibilidade dos itens ocultos, a aplicação e/ou para impedir a eliminação dos ficheiros.
- This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
+ Esta aplicação é apenas parte de um conjunto mais vasto de aplicações. Saiba mais em http://www.simplemobiletools.com
+ Произвольно
+ Other
Простые обои
@@ -138,7 +139,8 @@
Повтор видео
Анимировать эскизы GIF
Максимальная яркость при просмотре файлов
- Нарезать миниатюры в квадраты
+ Нарезать миниатюры на квадраты
+ Показывать длительность видео
Поворот экрана при просмотре изображения
Использовать системные настройки
При повороте устройства
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index 7d057a389..a081eb7a5 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -88,7 +88,8 @@
Preklopiť vodorovne
Preklopiť zvisle
Upraviť s
- Voľný
+ Voľný
+ Iný
Jednoduchá tapeta
@@ -139,6 +140,7 @@
Animovať GIF súbory pri náhľade
Maximálny jas pri prezeraní médií
Orezať náhľady na štvorce
+ Zobraziť dĺžku videí
Otáčať obrazovku podľa Rotate fullscreen media by
Systémového nastavenia
Otočenia zariadenia
diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml
new file mode 100644
index 000000000..3dfff7213
--- /dev/null
+++ b/app/src/main/res/values-sl/strings.xml
@@ -0,0 +1,247 @@
+
+
+ Simple Gallery
+ Galerija
+ Uredi
+ Zaženi fotoaparat
+ (skrito)
+ (izključeno)
+ Pripni mapo
+ Odpni mapo
+ Pripni na vrh
+ Prikaži vso vsebino mape
+ Vse mape
+ Preklopi na pogled map
+ Druga mapa
+ Prikaži na zemljevidu
+ Neznana lokacija
+ Povečaj število stolpcev
+ Zmanjšaj število stolpcev
+ Spremeni naslovno fotografijo
+ Izberi fotografijo
+ Uporabi privzeto
+ Glasnost
+ Svetlost
+ Zakleni usmerjenost
+ Odkleni usmerjenost
+ Spremeni usmerjenost
+ Vsili pokončen format
+ Vsili ležeč format
+ Uporabi privzeto usmerjenost
+ Popravi datum posnetka
+ Popravljam…
+ Datumi uspešno popravljeni
+
+
+ Filtriranje datotek
+ Slike
+ Videoposnetki
+ GIFi
+ RAW slike
+ SVGji
+ Na podlagi izbranih filtrov ne najdem nobenih medijskih datotek.
+ Spremeni filtre
+
+
+ Ta funkcija skrije mapo tako, da vanjo doda \'.nomedia\' datoteko, kar skrije tudi vse podmape. Ponovno jih lahko prikažete z uporabo možnosti \'Prikaži skrite elemente\' v Nastavitvah. Nadaljujem?
+ Izključi
+ Izključene mape
+ Urejaj izključene mape
+ Izbira bo skupaj s podmapami izključena zgolj iz te Galerije. Izključene mape lahko urejate v Nastavitvah.
+ Namesto tega izključim nadredno mapo?
+ Izključevanje map jih bo skupaj s podmapami skrilo zgolj v tej Galeriji, v ostalih aplikacijah bodo normalno vidne.\n\nČe jih želite skriti tudi v drugih aplikacijah, uporabite funkcijo Skrij.
+ Odstrani vse
+ Odstranim vse mape iz seznama izključenih? Mape ne bodo izbrisane.
+ Skrite mape
+ Urejaj skrite mape
+ Kot kaže skrite mape z \".nomedia\" datoteko ne obstajajo.
+
+
+ Vključene mape
+ Urejaj vključene mape
+ Dodaj mapo
+ Če imate mape, ki vsebujejo medijske datoteke, ki jih aplikacija ni prepoznala, jih lahko ročno dodate tukaj.\n\nDodajanje novih elementov ne bo izključilo drugih.
+
+
+ Spremeni velikost
+ Spremeni velikost izbora in shrani
+ Širina
+ Višina
+ Obdrži razmerje stranic
+ Vnesite veljavno ločljivost
+
+
+ Urejevalnik
+ Shrani
+ Zavrti
+ Pot
+ Napačna pot
+ Urejanje slike ni uspelo
+ Uredi sliko z:
+ Ne najdem urejevalnika slik
+ Neznana lokacija datoteke
+ Ne morem prepisati izvorne datoteke
+ Zavrti levo
+ Zavrti desno
+ Zavrti za 180º
+ Zrcaljenje
+ Zrcali horizontalno
+ Zrcali vertikalno
+ Uredi z
+ Prosto
+ Other
+
+
+ Simple ozadje
+ Nastavi kot ozadje
+ Nastavljanje ozadja ni uspelo
+ Nastavi kot ozadje z:
+ Nastavljam ozadje…
+ Ozadje uspešno nastavljeno
+ Pokončno razmerje stranic
+ Ležeče razmerje stranic
+ Domači zaslon
+ Zaklenjeni zaslon
+ Domači in zaklenjeni zaslon
+
+
+ Diaprojekcija
+ Interval (sekund):
+ Vključi fotografije
+ Vključi videoposnetke
+ Vključi GIFe
+ Naključni vrstni red
+ Uporabi zameglitev animacij
+ Premik nazaj
+ Ponavljaj diaprojekcijo
+ Diaprojekcija se je zaključila
+ Ne najdem datotek za diaprojekcijo
+
+
+ Spremeni tip pogleda
+ Mreža
+ Seznam
+ Združi neposredne podmape
+
+
+ Združi po
+ Ne združuj datotek
+ Mapa
+ Zadnjič spremenjeno
+ Posneto
+ Tip datoteke
+ Končnica
+
+
+ Avtomatično predvajaj videoposnetke
+ Zapomni si zadnji položaj predvajanja
+ Preklopi vidljivost imen datotek
+ Ponavljaj videoposnetke
+ Animiraj GIFe v predogledu
+ Najvišja svetlost pri celozaslonskem predvajanju
+ Obreži predoglede slik v kvadrate
+ Prikaži trajanje posnetkov
+ Zavrti celozaslonski medij za
+ Sistemska nastavitev
+ Obračanje naprave
+ Razmerje stranic
+ Črno ozadje in statusna vrstica pri celozaslonskem mediju
+ Horizontalno pomikanje sličic
+ Avtomatično skrij sistemski UI v celozaslonskem načinu
+ Izbriši prazne mape po brisanju njihove vsebine
+ Dovoli nadzor svetlosti fotografije z vertikalnimi gestami
+ Dovoli nadzor glasnosti in svetlosti videoposnetka z vertikalnimi gestami
+ Pokaži število elementov v glavnem pogledu
+ Zamenjaj Deli z Obrni v celozaslonskem meniju
+ Prikaži razširjene podrobnosti nad celozaslonskim prikazom
+ Urejaj razširjene podrobnosti
+ Dovoli enoprstno povečavo v celozaslonskem načinu
+ Dovoli takojšnje spremembe medija s klikanjem na robove zaslona
+ Dovoli globoko povečavo slik
+ Skrij razširjene podrobnosti, ko je statusna vrstica skrita
+ Dvojna kontrola za izogibanje prikazovanja napačnih datotek
+ Prikaži določene akcijske gumbe na dnu zaslona
+ Prikaži Koš na zaslonih map
+ Globoko povečljive slike
+ Prikaži slike v največji možni kvaliteti
+ Prikaži Koš kot zadnji element na glavnem zaslonu
+ Dovoli zapiranje celozaslonskega načina z gesto navzdol
+
+
+ Sličice
+ Celozaslonski prikaz
+ Razširjene podrobnosti
+ Akcije na dnu
+
+
+ Urejaj vidne akcije na dnu
+ Preklopi priljubljene
+ Preklopi vidljivost datotek
+
+
+ Kako naredim Simple galerijo za privzeto aplikacijo na napravi?
+ Najprej morate najti trenutno privzeto aplikacijo za prikaz slik med aplikacijami v nastavitvah naprave, kjer poiščete gumb v smislu \"Odpri kot privzeto\", kliknite nanj in izberite \"Izbriši privzeto\".
+ Ko boste naslednjič želeli odpreti fotografijo ali videoposnetek, bi se moral pokazati izbirnik, v katerem lahko izberete Simple galerijo in jo določite kot privzeto aplikacijo.
+ Aplikacijo sem zaklenil z geslom, ki se ga ne spomnim več. Kaj lahko naredimo?
+ To lahko rešite na 2 načina. Lahko ali ponovno namestite aplikacijo ali pa jo poiščete v nastavitvah in kliknete \"Počisti podatke\". To bo ponastavilo vaše nastavitve, ne bo pa izbrisalo nobenih datotek.
+ Kako nastaviti, da se določen album vedno prikaže na vrhu?
+ Z dolgim pritiskom na album se vam prikaže meni, v katerem je na voljo bucika, s katero pripnete album na željeno mesto. Na ta način lahko pripnete več albumov, ki bodo razvrščeni v skladu s privzetim načinom razvrščanja.
+ Ali lahko hitro predvajam videoposnetke?
+ Lahko kliknete na napis trenutnega ali maksimalnega trajanja poleg vrstice položaja, kar premakne/preskoči video naprej ali nazaj.
+ Kakšna je razlika med skrivanjem in izključevanjem mape?
+ Izključevanje mape jo skrije le v Simple galeriji, medtem ko jo skrivanje skrije tudi v ostalih aplikacijah oz. galerijah. Deluje tako, da kreira prazno \".nomedia\" datoteko v izbrani mapi, katero lahko odstranite tudi s katerimkoli urejevalnikom datotek.
+ Zakaj se v galeriji prikažejo datoteke z naslovnicami glasbenih map ali nalepk?
+ Lahko se zgodi, da se vam prikažejo nepoznani albumi, ki vsebujejo tovrstne datoteke. Lahko jih preprosto skrijete tako, da z dolgim pritiskom na album prikličete meni in tam izberete Izključi. V naslednjem oknu lahko izberete tudi nadrejeno mapo, obstaja pa verjetnost, da bo to preprečilo tudi prikazovanje ostalih povezanih albumov.
+ Mapa s slikami se ne prikaže. Kaj naj naredim?
+ Razlogi so lahko različni, rešitev je vseeno preprosta. Pojdite v Nastavitve in izberite Urejaj vključene mape, izberite plus in poiščite željeno mapo.
+ Kaj, če želim prikazati le nekaj izbranih map?
+ Dodajanje mape med vključene mape avtomatično ne izključi ničesar. Lahko pa naredite sledeče: v Nastavitvah -> Urejaj izključene mape izključite korensko mapo \"/\", željene mape pa dodajte v Nastavitvah -> Urejaj vključene mape.
+ To bo naredilo vidne le vključene mape, saj sta tako vključevanje kot tudi izključevanje rekurzivna, kar pomeni, da je mapa, ki je istočasno izključena in vključena, vidna.
+ Celozaslonske slike imajo čuden izgled, lahko kako popravim kvaliteto?
+ Da, v Nastavitvah je opcija \"Nadomesti globoko povečljive slike z bolj kvalitetnimi\", ki jo lahko uporabite. To bo slike izboljšalo, vendar bodo te bolj zamegljene, ko jih boste želeli preveč povečati.
+ Ali lahko obrezujem slike s to aplikacijo?
+ Da, slike lahko obrezujete z vlečenjem kotov slike. Do urejevalnika lahko pridete z dolgim pritiskom na sličico fotografije in izborom opcije Uredi ali izborom funkcije Uredi iz celozaslonskega načina prikaza.
+ Ali lahko združujem sličice medijskih datotek?
+ Seveda, uporabite \"Združi po\" opcijo v meniju, ki je na voljo v pregledu sličic. Datoteke lahko združujete po različnih kriterijih, vključujoč po datumu posnetka. Če uporabite funkcijo \"Prikaži vso vsebino map\" jih lahko združujete tudi po mapah.
+ Kot kaže razvrščanje po datumu posnetka ne deluje pravilno. Kako lahko to popravim?
+ To se najverjetneje zgodi po kopiranju datotek iz nekje drugje. To lahko popravite tako, da izberete sličice in uporabite funkcijo \"Popravi datum posnetka\".
+ Opaziti je slabo barvno povezovanje na slikah. Kako lahko izboljšam kvaliteto?
+ Trenutna rešitev prikazovanja slik deluje dobro v veliki večini primerov, če pa vseeno želite višjo kvaliteto, lahko uporabite funkcijo \"Prikaži slike v najvišji možni kvaliteti\" v Nastavitvah v razdelku \"Globoko povečljive slike\".
+ Skril sem mapo/datoteko. Kako jo lahko zopet prikažem?
+ Lahko uporabite funkcijo \"Začasno prikaži skrite elemente\", ki se nahaja v meniju na glavnem zaslonu ali preklopite \"Prikaži skrite elemente\" v Nastavitvah aplikacije. Če želite element označiti kot viden, z dolgim pritiskom nanj prikličite meni in izberite \"Prikaži\". Skrivanje map deluje tako, da se kreira prazno \".nomedia\" datoteko v izbrani mapi, ki jo lahko odstranite tudi s katerimkoli urejevalnikom datotek.
+
+
+ Galerija za ogled fotografij in videoposnetkov brez reklam.
+
+ Visoko prilagodljiva galerija, zmožna prikazovanja različnih tipov fotografij in videoposnetkov, vključno s SVGji, RAWi, panoramskimi fotografijami in videoposnetki.
+
+ Temelji na odprtokodnem principu, ne vsebuje reklam in ne zahteva nepotrebnih dovoljenj.
+
+ Poglejmo nekaj glavnih funkcij vrednih omembe:
+ 1. Iskanje
+ 2. Diaprojekcija
+ 3. Podpora za notch
+ 4. Pripenjanje map na vrh
+ 5. Filtriranje medijskih datotek po tipu
+ 6. Koš za preprosto vračanje izbrisanih datotek
+ 7. Zaklepanje orientacije zaslona v celozaslonskem načinu
+ 8. Označevanje priljubljenih datotek za lažji dostop
+ 9. Hitro zapiranje celozaslonskega načina z gestami
+ 10. Urejevalnih slik za urejanje in apliciranje različnih filtrov
+ 11. Zaščita skritih datotek ali celotne aplikacije z geslom
+ 12. Spreminjanje števila stolpcev z gestami ali gumbi v meniju
+ 13. Nastavljive akcije na dnu zaslona v celozaslonskem načinu
+ 14. Prikaz razširjenih podrobnosti nad prikazom v celozaslonskem načinu
+ 15. Različni načini razvrščanja in združevanja datotek, tako naraščajoče kot tudi padajoče
+ 16. Skrivanje map (vpliva tudi na druge aplikacije), izključevanje map (vpliva zgolj na Simple galerijo)
+
+ Dovoljenje za prstni odtis je potrebno za zaklepanje vidljivosti skritih elementov, celotne aplikacije ali zaščito datotek pred brisanjem.
+
+ Ta aplikacija je le del večje zbirke aplikacij. Ostale lahko najdete na https://www.simplemobiletools.com
+
+
+
+
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 3137d4210..04dd09abc 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -88,7 +88,8 @@
Vänd horisontellt
Vänd vertikalt
Redigera med
- Fritt
+ Fritt
+ Other
Bakgrund
@@ -139,6 +140,7 @@
Animera GIF-bilders miniatyrer
Maximal ljusstyrka när media visas i helskärmsläge
Beskär miniatyrer till kvadrater
+ Show video durations
Rotera media i helskärmsläge
Systeminställning
Enhetens rotation
@@ -160,9 +162,9 @@
Gör en extra kontroll för att hindra ogiltiga filer från att visas
Visa några åtgärdsknappar längst ned på skärmen
Visa Papperskorgen i mappvyn
- Deep zoomable images
- Show images in the highest possible quality
- Show the Recycle Bin as the last item on the main screen
+ Djupt zoombara bilder
+ Visa bilder i högsta möjliga kvalitet
+ Visa Papperskorgen som det sista objektet i huvudvyn
Allow closing the fullscreen view with a down gesture
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index bab52d012..cabbb3093 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -5,11 +5,11 @@
Düzenle
Kamerayı aç
(gizli)
- (excluded)
- Pin klasör
- Klasörü çöz
- Pin to the top
- Tüm klasörlerin içeriğini göster
+ (hariç)
+ Klasörü sabitle
+ Klasörü ayır
+ Üste sabitle
+ Tüm klasör içeriğini göster
Tüm klasörler
Klasör görünümüne geç
Diğer klasör
@@ -17,50 +17,50 @@
Bilinmeyen konum
Sütun sayısını artır
Sütun sayısını azalt
- Change cover image
- Select photo
- Use default
- Volume
- Brightness
- Lock orientation
- Unlock orientation
- Change orientation
- Force portrait
- Force landscape
- Use default orientation
- Fix Date Taken value
- Fixing…
- Dates fixed successfully
+ Kapak resmini değiştir
+ Fotoğraf seç
+ Varsayılanı kullan
+ Ses
+ Parlaklık
+ Yönü kilitle
+ Yönün kilidini aç
+ Yönü değiştir
+ Dikeye zorla
+ Yataya zorla
+ Varsayılan yönü kullan
+ Çekilen tarih değerini düzelt
+ Düzeltiliyor…
+ Tarihler başarıyla düzeltildi
- Filter media
- Images
- Videos
- GIFs
- RAW images
- SVGs
- No media files have been found with the selected filters.
- Change filters
+ Medyayı filtrele
+ Resimler
+ Videolar
+ GIF\'ler
+ RAW resimler
+ SVG\'ler
+ Seçilen filtrelerle hiçbir medya dosyası bulunamadı.
+ Filtreleri değiştir
- Bu işlev, klasöre\'.medya yok\'dosyası ekleyerek gizler; tüm alt klasörleri de gizler. Bunları Ayarlar\'da\'Gizli klasörleri göster\'seçeneğine basarak görebilirsiniz. Devam et?
- Dışlama
+ Bu işlev, klasöre bir \'.nomedia\' dosyası ekleyerek gizler, tüm alt klasörleri de gizler. Ayarlar\'dan \'Gizli öğeleri göster\' seçeneğini değiştirerek onları görebilirsiniz. Devam edilsin mi?
+ Hariç tut
Hariç tutulan klasörler
Hariç tutulan klasörleri yönet
- Bu, seçimi alt klasörleriyle birlikte yalnızca Basit Galeri\'den hariç tutacaktır. Dışlanan klasörleri Ayarlar\'dan yönetebilirsiniz.
- Bunun yerine ebeveynleri hariç tutun?
- Klasörler hariç tutulduğunda, onları Basit Galeri\'de gizli olan alt klasörleriyle bir araya getirirler, ancak yine de diğer uygulamalarda görünür olurlar.\n\nBunları diğer uygulamalardan gizlemek isterseniz, Gizle işlevini kullanın.
- Hepsini sil
- Hariç tutulanlar listesinden tüm klasörleri kaldırmak mı istiyorsunuz? Bu, klasörler silinmez.
- Hidden folders
- Manage hidden folders
- Seems like you don\'t have any folders hidden with a \".nomedia\" file.
+ Bu, alt klasörleriyle birlikte seçimi yalnızca Basit Galeriden hariç tutacaktır. Hariç tutulan klasörleri Ayarlar\'dan yönetebilirsiniz.
+ Bunun yerine bir üst dizin hariç tutulsun mu?
+ Klasörleri hariç tutmak, onları yalnızca Basit Galeri\'de gizlenen alt klasörleriyle bir araya getirecek, diğer uygulamalarda görünmeye devam edecektir.\n\nBunları diğer uygulamalardan gizlemek istiyorsanız, Gizle işlevini kullanın.
+ Tümünü kaldır
+ Tüm klasörler hariç tutulanlar listesinden kaldırılsın mı? Bu klasörleri silmez.
+ Gizli klasörler
+ Gizli klasörleri yönet
+ \".nomedia\" dosyasıyla gizlenmiş herhangi bir klasörünüz yok gibi görünüyor.
Dahil edilen klasörler
Dahil edilen klasörleri yönet
Klasör ekle
- Ortam içeren, ancak uygulama tarafından tanınmayan bazı klasörleriniz varsa, bunları el ile buradan ekleyebilirsiniz.
+ Medya içeren, ancak uygulama tarafından tanınmayan bazı klasörleriniz varsa, bunları elle ekleyebilirsiniz.\n\nBuraya bazı öğeler eklemek başka bir klasörü hariç tutmaz.
Yeniden boyutlandır
@@ -68,175 +68,177 @@
Genişlik
Yükseklik
En-boy oranını koru
- Lütfen geçerli bir çözüm önerisi girin
+ Lütfen geçerli bir çözünürlük girin
- Editör
+ Düzenleyici
Kaydet
Döndür
Yol
- Görüntü yolu geçersiz
+ Geçersiz resim yolu
Resim düzenleme başarısız
- İle resmi düzenle:
- Resim editörü bulunamadı
+ Resmi şununla düzenle:
+ Resim düzenleyici bulunamadı
Bilinmeyen dosya konumu
Kaynak dosyanın üzerine yazılamadı
Sola döndür
Sağa döndür
- Ters çevir 180º
+ 180º döndür
Çevir
- Yatay
- Dikey
- Edit with
- Free
+ Yatay olarak çevir
+ Dikey olarak çevir
+ Şununla düzenle
+ Serbest
+ Other
Basit Duvar Kağıdı
Duvar kağıdı olarak ayarla
- Duvar Kağıdı Olarak Ayarlanılamıyor
- İle duvar kağıdı olarak ayarla:
- Duvar kağıdını ayarlama…
+ Duvar kağıdı olarak ayarlanmadı
+ Şununla duvar kağıdı olarak ayarla:
+ Duvar kağıdı ayarlanıyor…
Duvar kağıdı başarıyla ayarlandı
- Portrait aspect ratio
- Landscape aspect ratio
- Home screen
- Lock screen
- Home and lock screen
+ Dikey en boy oranı
+ Yatay en boy oranı
+ Ana ekran
+ Kilit ekranı
+ Ana ve kilit ekranı
- Slideshow
- Interval (seconds):
- Include photos
- Include videos
- Include GIFs
- Random order
- Use fade animations
- Move backwards
- Loop slideshow
- The slideshow ended
- No media for the slideshow have been found
+ Slayt gösterisi
+ Süre (saniye):
+ Fotoğrafları dahil et
+ Videoları dahil et
+ GIF\'leri dahil et
+ Rastgele sırala
+ Soldurma animasyonlarını kullan
+ Geriye doğru git
+ Slayt gösterisini tekrarla
+ Slayt gösterisi sona erdi
+ Slayt gösterisi için medya bulunamadı
- Change view type
- Grid
- List
- Group direct subfolders
+ Görünüm türünü değiştir
+ Izgara
+ Liste
+ Doğrudan alt klasörleri gruplandır
- Group by
- Do not group files
- Folder
- Last modified
- Date taken
- File type
- Extension
+ Gruplandırma
+ Dosyaları gruplandırma
+ Klasör
+ Son değiştirilme
+ Çekildiği tarih
+ Dosya türü
+ Uzantı
- Videoları otomatik olarak oynat
- Remember last video playback position
- Dosya adı görünürlüğünü değiştir
- Videolar döngüsü
- Küçük resimlerde GIF\'leri canlandırın
- Ortam görüntülerken azami parlaklık
+ Videoları otomatik oynat
+ Son video oynatma konumunu hatırla
+ Dosya adı görünürlüğünü aç/kapat
+ Videoları tekrarla
+ Küçük resimlerdeki GIF\'leri hareketlendir
+ Tam ekran medya görüntülerken maksimum parlaklık
Küçük resimleri karelere kırp
- Tarafından tam ekran medyayı döndür
- Sistem ayarı
- Cihaz döndürme
- En-boy oranı
- Black background and status bar at fullscreen media
- Scroll thumbnails horizontally
- Automatically hide system UI at fullscreen media
- Delete empty folders after deleting their content
- Allow controlling photo brightness with vertical gestures
- Allow controlling video volume and brightness with vertical gestures
- Show folder media count on the main view
- Replace Share with Rotate at fullscreen menu
- Show extended details over fullscreen media
- Manage extended details
- Allow one finger zoom at fullscreen media
- Allow instantly changing media by clicking on screen sides
- Allow deep zooming images
- Hide extended details when status bar is hidden
- Do an extra check to avoid showing invalid files
- Show some action buttons at the bottom of the screen
- Show the Recycle Bin at the folders screen
- Deep zoomable images
- Show images in the highest possible quality
- Show the Recycle Bin as the last item on the main screen
- Allow closing the fullscreen view with a down gesture
+ Show video durations
+ Tam ekran medyayı döndür
+ Sistem ayarları
+ Cihaz yönü
+ En boy oranı
+ Tam ekran medyada siyah arka plan ve durum çubuğu
+ Küçük resimleri yatay olarak kaydır
+ Tam ekran medyada sistem arayüzünü otomatik gizle
+ İçeriğini sildikten sonra boş klasörleri sil
+ Dikey hareketlerle fotoğraf parlaklığının kontrolüne izin ver
+ Video sesini ve parlaklığını dikey hareketlerle kontrol etmeye izin ver
+ Ana görünümde klasör medya sayısını göster
+ Tam ekran menüsünde Döndür ile Paylaş\'ın yerini değiştir
+ Tam ekran medya üzerinde genişletilmiş ayrıntıları göster
+ Genişletilmiş ayrıntıları yönet
+ Tam ekran medyalarda tek parmakla yakınlaştırmaya izin ver
+ Ekran kenarlarına tıklayarak anında medya değiştirmeye izin ver
+ Derin yakınlaştırma resimlerine izin ver
+ Durum çubuğu gizlendiğinde genişletilmiş ayrıntıları gizle
+ Geçersiz dosyaları göstermemek için ekstra kontrol yap
+ Ekranın alt kısmındaki bazı eylem düğmelerini göster
+ Geri dönüşüm kutusu\'nu klasörler ekranında gösterme
+ Derin yakınlaştırılabilir resimler
+ Resimleri mümkün olan en yüksek kalitede göster
+ Geri dönüşüm kutusu\'nu ana ekranda son öğe olarak göster
+ Tam ekran görünümünü aşağı hareketi ile kapatmaya izin ver
- Thumbnails
- Fullscreen media
- Extended details
- Bottom actions
+ Küçük resimler
+ Tam ekran medya
+ Genişletilmiş ayrıntılar
+ Alt eylemler
- Manage visible bottom actions
- Toggle favorite
- Toggle file visibility
+ Görünür alt eylemleri yönet
+ Favoriyi göster/gizle
+ Dosya görünürlüğünü aç/kapat
- How can I make Simple Gallery the default device gallery?
- First you have to find the currently default gallery in the Apps section of your device settings, look for a button that says something like \"Open by default\", click on it, then select \"Clear defaults\".
- The next time you will try opening an image or video you should see an app picker, where you can select Simple Gallery and make it the default app.
- I locked the app with a password, but I forgot it. What can I do?
- You can solve it in 2 ways. You can either reinstall the app, or find the app in your device settings and select \"Clear data\". It will reset all your settings, it will not remove any media files.
- How can I make an album always appear at the top?
- You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.
- How can I fast-forward videos?
- You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.
- What is the difference between hiding and excluding a folder?
- Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.
- Why do folders with music cover art or stickers show up?
- It can happen that you will see some unusual albums show up. You can easily exclude them by long pressing them and selecting Exclude. In the next dialog you can then select the parent folder, chances are it will prevent the other related albums showing up too.
- A folder with images isn\'t showing up, what can I do?
- That can have multiple reasons, but solving it is easy. Just go in Settings -> Manage Included Folders, select Plus and navigate to the required folder.
- What if I want just a few particular folders visible?
- Adding a folder at the Included Folders doesn\'t automatically exclude anything. What you can do is go in Settings -> Manage Excluded Folders, exclude the root folder \"/\", then add the desired folders at Settings -> Manage Included Folders.
- That will make only the selected folders visible, as both excluding and including are recursive and if a folder is both excluded and included, it will show up.
- Fullscreen images have weird artifacts, can I somehow improve the quality?
- Yea, there is a toggle in Settings saying \"Replace deep zoomable images with better quality ones\", you can use that. It will improve the quality of the images, but they will get blurred once you try zooming in too much.
- Can I crop images with this app?
- Yes, you can crop images in the editor, by dragging the image corners. You can get to the editor either by long pressing an image thumbnail and selecting Edit, or selecting Edit from the fullscreen view.
- Can I somehow group media file thumbnails?
- Sure, just use the \"Group by\" menu item while at the thumbnails view. You can group files by multiple criteria, including Date Taken. If you use the \"Show all folders content\" function you can group them by folders too.
- Sorting by Date Taken doesn\'t seem to work properly, how can I fix it?
- It is most likely caused by the files being copied from somewhere. You can fix it by selecting the file thumbnails and selecting \"Fix Date Taken value\".
- I see some color banding on the images. How can I improve the quality?
- The current solution for displaying images works fine in the vast majority of cases, but if you want even better image quality, you can enable the \"Show images in the highest possible quality\" at the app settings, in the \"Deep zoomable images\" section.
- I have hidden a file/folder. How can I unhide it?
- You can either press the \"Temporarily show hidden items\" menu item at the main screen, or toggle \"Show hidden items\" in the app settings to see the hidden item. If you want to unhide it, just long press it and select \"Unhide\". Folders are hidden by adding a hidden \".nomedia\" file into them, you can delete the file with any file manager too.
+ Basit Galeri\'yi nasıl varsayılan cihaz galerisi yapabilirim?
+ Önce cihaz ayarlarınızın Uygulamalar bölümünde varsayılan galeriyi bulmanız, \"Varsayılan olarak aç\" gibi bir şey söyleyen bir düğme aramanız, üzerine tıklamanız ve ardından \"Varsayılanları Temizle\"yi seçmeniz gerekir.
+ Gelecek sefer video veya resim açmayı denediğinizde, Basit Galeri\'yi seçip varsayılan uygulama haline getirebileceğiniz bir uygulama seçicisini görmelisiniz.
+ Uygulamayı bir şifre ile kilitledim ama unuttum. Ne yapabilirim?
+ Bunu 2 şekilde çözebilirsiniz. Uygulamayı yeniden yükleyebilir veya uygulamayı cihaz ayarlarınızdan bulabilir ve \"Verileri temizle\"yi seçebilirsiniz. Tüm ayarlarınızı sıfırlar, herhangi bir medya dosyasını kaldırmaz.
+ Bir albümün her zaman en üstte görünmesini nasıl sağlayabilirim?
+ İstediğiniz albüme uzunca basabilir ve eylem menüsündeki Sabitle simgesini seçebilirsiniz. Birden çok klasörü de sabitleyebilirsiniz, sabitlenmiş öğeler varsayılan sıralama yöntemine göre sıralanır.
+ Videoları nasıl hızlıca ileri sarabilirim?
+ Videoyu geriye ya da ileriye taşıyacak olan arama çubuğunun yakınındaki geçerli veya maksimum süre metinlerini tıklayabilirsiniz.
+ Klasörün gizlenmesi ve hariç tutulması arasındaki fark nedir?
+ Hariç tut, klasörü yalnızca Basit Galeri\'de görüntülemeyi engellerken, Gizle sistem genelinde çalışır ve klasörü diğer galerilerden de gizler. Verilen klasörde boş bir \".nomedia\" dosyası oluşturarak çalışır, daha sonra herhangi bir dosya yöneticisi ile kaldırabilirsiniz.
+ Neden albüm resimlerini içeren klasörler görünüyor?
+ Bazı olağandışı albümlerin ortaya çıktığını göreceksiniz. Onları uzun süre basarak ve Hariç tut\'u seçerek kolayca hariç tutabilirsiniz. Bir sonraki iletişim kutusunda, üst klasörü seçebilirsiniz, ancak diğer ilgili albümlerin de gösterilmesini önleyecektir.
+ Resimler içeren bir klasör görünmüyor, ne yapabilirim?
+ Bunun birden fazla nedeni olabilir, ancak bunu çözmek kolaydır. Sadece Ayarlar -> Dahil Edilen Klasörleri Yönet\'e gidin, Artı\'yı seçin ve gerekli klasöre gidin.
+ Sadece birkaç belirli klasörün görünmesini istersem ne olur?
+ Dahil Edilen Klasörler\'e bir klasör eklemek otomatik olarak hiçbir şeyi hariç tutmaz. Yapabilecekleriniz Ayarlar -> Hariç Tutulan Klasörleri Yönet, kök klasörü \"/\" hariç tut, ardından Ayarlar -> Dahil Edilen Klasörleri Yönet.
+ Bu, hem hariç tutulan hem de dahil edilen olmak üzere, yalnızca seçilen klasörleri görünür hale getirir ve bir klasör her ikisi de hariç tutulur ve dahil edilirse, görünür.
+ Tam ekran görüntülerde garip eserler var, bir şekilde kaliteyi artırabilir miyim?
+ Evet, Ayarlar\'da \"Daha iyi kalitede olanlar ile derin yakınlaştırılabilir resimleri değiştir\" diyen bir geçiş var. Bunu kullanabilirsiniz. Görüntülerin kalitesini artırır, ancak çok fazla zum yapmaya çalıştığınızda bulanıklaşır.
+ Bu uygulamayla görüntüleri kırpabilir miyim?
+ Evet, görüntü köşelerini sürükleyerek resimleri düzenleyicide kırpabilirsiniz. Düzenleyiciye, bir resim küçük resmine uzun basıp Düzenle\'yi seçerek veya tam ekran görünümünden Düzenle\'yi seçerek ulaşabilirsiniz.
+ Medya dosyası küçük resimlerini bir şekilde gruplayabilir miyim?
+ Elbette, küçük resimler görünümünde \"Gruplandırma\" menü öğesini kullanın. Çekildiği Tarih de dahil olmak üzere dosyaları birçok kritere göre gruplayabilirsiniz. \"Tüm klasörleri göster\" işlevini kullanırsanız, bunları klasörlere göre de gruplayabilirsiniz.
+ Çekildiği Tarihe Göre Sıralama düzgün çalışmıyor gibi görünüyor, nasıl düzeltebilirim?
+ Büyük olasılıkla bir yerden kopyalanan dosyalardan kaynaklanır. Dosya küçük resimlerini seçip \"Çekilen tarih değerini düzelt\" seçeneğini seçerek düzeltebilirsiniz.
+ Görüntülerde renk şeritleri görüyorum. Kaliteyi nasıl arttırabilirim?
+ Görüntüleri görüntülemek için geçerli çözüm, vakaların büyük çoğunluğunda iyi çalışır, ama daha iyi görüntü kalitesi istiyorsanız, \"Derin yakınlaştırılabilir resimler\" bölümündeki uygulama ayarlarında \"Resimleri mümkün olan en yüksek kalitede göster\" seçeneğini etkinleştirebilirsiniz.
+ Bir dosya/klasör gizledim. Nasıl gösterebilirim?
+ Ana ekranda \"Geçici olarak gizli öğeleri göster\" menü öğesine veya gizli öğeyi görmek için uygulama ayarlarında \"Gizli öğeleri göster\" seçeneğine tıklayabilirsiniz. Göstermek isterseniz, sadece uzun basın ve \"Göster\"i seçin. Klasörler gizlenmiş bir \".nomedia\" dosyası ekleyerek gizlenir, dosyayı herhangi bir dosya yöneticisi ile de silebilirsiniz.
- Fotoğrafları ve videoları reklamsız görüntülemek için kullanılan bir galeri.
+ Reklamsız fotoğrafları ve videoları görüntülemek için bir galeri.
- A highly customizable gallery capable of displaying many different image and video types including SVGs, RAWs, panoramic photos and videos.
+ SVG\'ler, RAW\'lar, panoramik fotoğraflar ve videolar dahil olmak üzere birçok farklı resim ve video türünü gösterebilen son derece özelleştirilebilir bir galeri.
- It is open source, contains no ads or unnecessary permissions.
+ Açık kaynaktır, hiçbir reklam veya gereksiz izinler içermez.
- Let\'s list some of its features worth mentioning:
- 1. Search
- 2. Slideshow
- 3. Notch support
- 4. Pinning folders to the top
- 5. Filtering media files by type
- 6. Recycle bin for easy file recovery
- 7. Fullscreen view orientation locking
- 8. Marking favorite files for easy access
- 9. Quick fullscreen media closing with down gesture
- 10. An editor for modifying images and applying filters
- 11. Password protection for protecting hidden items or the whole app
- 12. Changing the thumbnail column count with gestures or menu buttons
- 13. Customizable bottom actions at the fullscreen view for quick access
- 14. Showing extended details over fullscreen media with desired file properties
- 15. Several different ways of sorting or grouping items, both ascending and descending
- 16. Hiding folders (affects other apps too), excluding folders (affects only Simple Gallery)
+ Bahsetmeye değer özelliklerinden bazılarını listeleyelim:
+ 1. Arama
+ 2. Slayt gösterisi
+ 3. Çentik desteği
+ 4. Klasörleri en üste sabitleme
+ 5. Medya dosyalarını türüne göre filtreleme
+ 6. Kolayca dosya kurtarma için geri dönüşüm kutusu
+ 7. Tam ekran görünüm yönünü kilitleme
+ 8. Kolay erişim için favori dosyaları işaretleme
+ 9. Aşağı hareket ile hızlıca tam ekran medyayı kapatma
+ 10. Görüntüleri değiştirmek ve filtreleri uygulamak için bir düzenleyici
+ 11. Gizli öğeleri veya tüm uygulamayı korumak için parola koruması
+ 12. Küçük resim sütun sayısını hareketlerle veya menü düğmelerini kullanarak değiştirme
+ 13. Hızlı erişim için tam ekran görünümünde özelleştirilebilir alt eylemler
+ 14. İstenen dosya özellikleriyle tam ekran medya üzerinden genişletilmiş ayrıntıları gösterme
+ 15. Hem artan hem de azalan öğeleri sıralamak veya gruplandırmak için birkaç farklı yol
+ 16. Klasörleri gizleme (diğer uygulamaları da etkiler), klasörleri hariç tutma (yalnızca Basit Galeri\'yi etkiler)
- The fingerprint permission is needed for locking either hidden item visibility, the whole app, or protecting files from being deleted.
+ Parmak izi izni, gizli öğe görünürlüğünü, tüm uygulamayı kilitlemek veya dosyaların silinmesini önlemek için gereklidir.
- This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
+ Bu uygulama, daha büyük bir uygulama serisinden sadece bir parça. Geri kalanı http://www.simplemobiletools.com adresinde bulabilirsiniz
+ Вільне
+ Other
Simple Wallpaper
@@ -139,6 +140,7 @@
Анімувати ескізи GIF-файлів
Максимальна яскравість екрану при повноекранному перегляді медіафайлу
Обрізати ескізи у квадрат
+ Show video durations
При повноекранному перегляді обертати за…
системними налаштуваннями
поворотом пристрою
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index 04164d705..6dfe0a550 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -88,7 +88,8 @@
水平翻转
垂直翻转
编辑方式
- 自由
+ 自由
+ Other
简约壁纸
@@ -139,6 +140,7 @@
GIF 缩略图
浏览时最大亮度
裁剪缩略图
+ Show video durations
全屏方向
系统设置
设备方向
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index fadb18f64..423570191 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -88,7 +88,8 @@
水平翻轉
垂直翻轉
用其他程式編輯
- 自由
+ 自由
+ Other
簡易桌布
@@ -133,12 +134,13 @@
自動播放影片
- Remember last video playback position
+ 記住影片上次撥放位置
顯示檔案名稱
影片循環播放
縮圖顯示GIF動畫
瀏覽時最大亮度
縮圖裁剪成正方形
+ 顯示影片長度
全螢幕時旋轉方向
系統設定方向
裝置實際方向
@@ -163,7 +165,7 @@
可深度縮放的圖片
以最高品質顯示圖片
回收桶顯示在主畫面最後一項
- Allow closing the fullscreen view with a down gesture
+ 允許用下滑手勢來關閉全螢幕檢視
縮圖
@@ -212,31 +214,31 @@
一個用來瀏覽相片和影片,且沒有廣告的相簿。
- A highly customizable gallery capable of displaying many different image and video types including SVGs, RAWs, panoramic photos and videos.
+ 一個高自訂性的相簿,能夠顯示許多不同的圖片和影片類型,包含SVGs、RAWs、全景相片和影片。
- It is open source, contains no ads or unnecessary permissions.
+ 它是開源的,而且不包含廣告及非必要的權限。
- Let\'s list some of its features worth mentioning:
- 1. Search
- 2. Slideshow
- 3. Notch support
- 4. Pinning folders to the top
- 5. Filtering media files by type
- 6. Recycle bin for easy file recovery
- 7. Fullscreen view orientation locking
- 8. Marking favorite files for easy access
- 9. Quick fullscreen media closing with down gesture
- 10. An editor for modifying images and applying filters
- 11. Password protection for protecting hidden items or the whole app
- 12. Changing the thumbnail column count with gestures or menu buttons
- 13. Customizable bottom actions at the fullscreen view for quick access
- 14. Showing extended details over fullscreen media with desired file properties
- 15. Several different ways of sorting or grouping items, both ascending and descending
- 16. Hiding folders (affects other apps too), excluding folders (affects only Simple Gallery)
+ 讓我們列出一些值得一提的功能:
+ 1. 搜尋
+ 2. 投影片
+ 3. 支援瀏海螢幕
+ 4. 釘選資料夾在頂端
+ 5. 以類型篩選媒體檔案
+ 6. 輕鬆恢復檔案的回收桶
+ 7. 鎖定全螢幕檢視的方向
+ 8. 標記我的最愛檔案以輕鬆存取
+ 9. 下滑手勢來快速關閉全螢幕媒體
+ 10. 一個編輯器來修改圖片和添加濾鏡
+ 11. 用密碼保護隱藏的項目或整個應用程式
+ 12. 用手勢或選單按鈕來改變縮圖欄數
+ 13. 在全螢幕檢視下,自訂底部操作來快速存取
+ 14. 在全螢幕媒體顯示,要求的檔案屬性其詳細資訊
+ 15. 幾種不同的排序或歸類項目的方式,包含遞增和遞減
+ 16. 隱藏資料夾(也影響其他程式),排除資料夾(只影響簡易相簿)
- The fingerprint permission is needed for locking either hidden item visibility, the whole app, or protecting files from being deleted.
+ 指紋權限用來鎖定隱藏的項目、整個應用程式,或保護檔案不被刪除。
- This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com
+ 這程式只是一系列眾多應用程式的其中一項,你可以在這發現更多 https://www.simplemobiletools.com
+ Free
+ Other
Simple Wallpaper
@@ -139,6 +140,7 @@
Animate GIFs at thumbnails
Max brightness when viewing fullscreen media
Crop thumbnails into squares
+ Show video durations
Rotate fullscreen media by
System setting
Device rotation
diff --git a/build.gradle b/build.gradle
index 17a20ee31..1cfbb3a29 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,7 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
- ext.kotlin_version = '1.3.0'
+ ext.kotlin_version = '1.3.10'
repositories {
google()
diff --git a/keystore.properties_sample b/keystore.properties_sample
new file mode 100644
index 000000000..569edd736
--- /dev/null
+++ b/keystore.properties_sample
@@ -0,0 +1,4 @@
+storePassword=123456
+keyPassword=abcdef
+keyAlias=myAlias
+storeFile=../keystore.jks
diff --git a/signing.properties_sample b/signing.properties_sample
deleted file mode 100644
index cf8e23968..000000000
--- a/signing.properties_sample
+++ /dev/null
@@ -1,3 +0,0 @@
-STORE_FILE=/path/to/your.keystore
-KEY_ALIAS=projectkeyalias
-PASSWORD=yourpass