diff --git a/CHANGELOG.md b/CHANGELOG.md index 535083502..c4d6db2ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,57 @@ Changelog ========== +Version 6.12.0 *(2020-01-28)* +---------------------------- + + * Properly handle sorting by date taken after using "Fix Date Taken values" on the wrong files + * Fixed some issues at copying files, when the source was on an SD card + * Change the way Favorite items are stored, to avoid accidental removal + * Improved video looping (by ForgottenUmbrella) + * Recognize a new type of panoramic photos + * Properly remember last video playback position if the video is paused on exit + * Properly color the top status bar icons at using light primary colors + * Other UX and translation improvements + +Version 6.11.8 *(2020-01-19)* +---------------------------- + + * Reverted Glide to fix some crashes + +Version 6.11.7 *(2020-01-16)* +---------------------------- + + * Do not convert every edited file into a JPG, keep PNGs intact + * Fixed a glitch with empty portrait photos being shown as grey thumbnails + * Show a FAQ/settings prompt once at pressing Rate Us in the About section + * Added a 16:10 editor crop aspect ratio, used mostly on tablets + * Do some preparations for better handling Date Taken values and Favorites + * Other stability and translation improvements + +Version 6.11.6 *(2020-01-11)* +---------------------------- + + * Improved the image loading performance + * Allow excluding the root "/" folder + * Properly handle editing files with spaces in path + * Couple other UX, UI, translation and stability improvements + +Version 6.11.5 *(2020-01-04)* +---------------------------- + + * Fixed a few SD card related issues + * Fixed some theming issues + * Added some UI and translation improvements + +Version 6.11.4 *(2019-12-27)* +---------------------------- + + * Fixed a few SD card related issues + * Moved Focus in the editor as the last tool, to prioritize more popular tools + * Added a new Crop aspect ratio 37:18 to be used instead of 18.5x9 + * Some translation improvements + * Last app update for a while now, wishing you a Happy New Year! + Version 6.11.3 *(2019-12-25)* ---------------------------- diff --git a/README.md b/README.md index 75fbfa410..485b4d2da 100644 --- a/README.md +++ b/README.md @@ -2,33 +2,107 @@ Logo -A gallery for viewing photos and videos. +Simple Gallery Pro is a highly customizable lightweight gallery loved by millions of people for its great user experience. Organize and edit your photos, recover deleted files with the recycle bin, protect & hide files and easily view a huge variety of different photo and video formats including RAW, SVG, GIF, panoramic and much more. -A highly customizable gallery capable of displaying many different image and video types including SVGs, RAWs, panoramic photos and videos. +------------------------------------------------- +SIMPLE GALLERY PRO – FEATURES +------------------------------------------------- -It is open source, contains no ads or unnecessary permissions. +• A beautiful modern gallery with no ads or popups -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) +• Photo editor – crop, rotate, resize, draw, filters & more -The fingerprint permission is needed for locking either hidden item visibility, the whole app, or protecting files from being deleted. +• No internet access needed, giving you more privacy, security and stability -This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com +• No unnecessary permissions required + +• Quickly search images, videos & other files + +• Open and view many different photo and video types (RAW, SVG, panoramic, GIF etc) + +• A variety of intuitive gestures to easily edit, rotate & organize files + +• Lots of ways to filter, group and sort files + +• Customize the appearance of Simple Gallery Pro + +• Available in over 30 languages + +• Mark files as favorites for quick access + +• Protect your photos & videos with a pattern, pin or fingerprint + +• Use pin, pattern & fingerprint to protect the app launch or specific functions too + +• Recover deleted photos & videos from the recycle bin + +• Toggle visibility of files to hide photos & videos + +• Create a customizable slideshow of your files with many options + +• View detailed information of your files (resolution, EXIF values etc) + +• Zoom high quality photos, videos and GIFs easily with gestures + +• Easily force portrait or landscape orientation for easy video viewing + +• Quick file share to social media, email or anywhere else + +• Print images or set them as wallpaper with a few clicks + +• Create home screen shortcuts or widgets to easily access any file or folder + +• Show the image location on a map, if available + +• Obvious presence of standard operations like rename, copy/move, un/hide, delete + +• Rewind videos with horizontal gestures + +• Change photo and video brightness, or volume with vertical gestures + +• Reorder, lock folders or change cover thumbnails anytime + +• Set any image as wallpaper without hassle + +… and much much more! + +ADVANCED PHOTO EDITOR +Simple Gallery Pro makes it easy to edit your pictures on the fly. Crop, flip, rotate and resize your pictures. If you’re feeling a little more creative you can add filters and draw on your pictures! + + +SUPPORT FOR MANY FILE TYPES +Simple Gallery Pro supports a huge range of different file types including JPEG, PNG, MP4, MKV, RAW, SVG, GIF Panoramic photos, Panoramic videos and many more. + + +HIGHLY CUSTOMIZABLE FILE MANAGER +From the UI to the function buttons on the bottom toolbar, Simple Gallery Pro is highly customizable and works the way you want it to. No other gallery has this kind of flexibility! Thanks to being open source, we’re also available in over 30 languages! + + +RECOVER DELETED PHOTOS & VIDEOS +Accidentally deleted a precious photo or video? Don’t worry! Simple Gallery Pro features a handy recycle bin where you can recover deleted photos & videos easily. + + +PROTECT & HIDE PHOTOS, VIDEOS & FILES +Using pin, pattern or your device’s fingerprint scanner you can protect and hide photos, videos & entire albums. You can protect the app itself or place locks on specific functions of the app. For example, you can’t delete a file without a fingerprint scan, helping to protect your files from accidental deletion. + + +Check out the full suite of Simple Tools here: +https://www.simplemobiletools.com + + +Standalone website of Simple Gallery Pro: +https://www.simplemobiletools.com/gallery + + +Facebook: +https://www.facebook.com/simplemobiletools + + +Reddit: +https://www.reddit.com/r/SimpleMobileTools + + +Don't forget that if you uninstall any paid app within 2 hours, you will automatically be refunded. If you want a refund anytime later, just contact us at hello@simplemobiletools.com and you will get it. That makes it easy to try it out :) Get it on Google Play Get it on F-Droid diff --git a/app/build.gradle b/app/build.gradle index 81b672ac2..759a1442b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -17,8 +17,8 @@ android { applicationId "com.simplemobiletools.gallery.pro" minSdkVersion 21 targetSdkVersion 28 - versionCode 283 - versionName "6.11.3" + versionCode 289 + versionName "6.12.0" multiDexEnabled true setProperty("archivesBaseName", "gallery") vectorDrawables.useSupportLibrary = true @@ -69,7 +69,7 @@ android { } dependencies { - implementation 'com.simplemobiletools:commons:5.21.7' + implementation 'com.simplemobiletools:commons:5.21.28' implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0' implementation 'androidx.multidex:multidex:2.0.1' implementation 'it.sephiroth.android.exif:library:1.0.1' diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 200ec8081..763f4ff3b 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -12,3 +12,9 @@ -keepclassmembers class * implements android.os.Parcelable { static ** CREATOR; } + +# RenderScript +-keepclasseswithmembernames class * { +native ; +} +-keep class androidx.renderscript.** { *; } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ExcludedFoldersActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ExcludedFoldersActivity.kt index 530452b0b..2d584ab73 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ExcludedFoldersActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ExcludedFoldersActivity.kt @@ -50,7 +50,7 @@ class ExcludedFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener { } private fun addFolder() { - FilePickerDialog(this, config.lastFilepickerPath, false, config.shouldShowHidden, false, true) { + FilePickerDialog(this, config.lastFilepickerPath, false, config.shouldShowHidden, false, true, true) { config.lastFilepickerPath = it config.addExcludedFolder(it) updateFolders() 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 cf7ee98bf..7cad1ca04 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 @@ -36,9 +36,7 @@ import com.simplemobiletools.gallery.pro.dialogs.ChangeViewTypeDialog import com.simplemobiletools.gallery.pro.dialogs.FilterMediaDialog import com.simplemobiletools.gallery.pro.extensions.* import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.interfaces.DirectoryDao import com.simplemobiletools.gallery.pro.interfaces.DirectoryOperationsListener -import com.simplemobiletools.gallery.pro.interfaces.MediumDao import com.simplemobiletools.gallery.pro.jobs.NewPhotoFetcher import com.simplemobiletools.gallery.pro.models.Directory import com.simplemobiletools.gallery.pro.models.Medium @@ -85,17 +83,11 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { private var mStoredTextColor = 0 private var mStoredPrimaryColor = 0 - private lateinit var mMediumDao: MediumDao - private lateinit var mDirectoryDao: DirectoryDao - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) appLaunched(BuildConfig.APPLICATION_ID) - mMediumDao = galleryDB.MediumDao() - mDirectoryDao = galleryDB.DirectoryDao() - if (savedInstanceState == null) { config.temporarilyShowHidden = false config.tempSkipDeleteConfirmation = false @@ -464,7 +456,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { val getImagesOnly = mIsPickImageIntent || mIsGetImageContentIntent val getVideosOnly = mIsPickVideoIntent || mIsGetVideoContentIntent - getCachedDirectories(getVideosOnly, getImagesOnly, mDirectoryDao) { + getCachedDirectories(getVideosOnly, getImagesOnly) { gotDirectories(addTempFolderIfNeeded(it)) } } @@ -569,7 +561,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { val pathsToDelete = ArrayList() itemsToDelete.mapTo(pathsToDelete) { it.path } - movePathsInRecycleBin(pathsToDelete, mMediumDao) { + movePathsInRecycleBin(pathsToDelete) { if (it) { deleteFilteredFileDirItems(itemsToDelete, folders) } else { @@ -590,7 +582,13 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { ensureBackgroundThread { folders.filter { !getDoesFilePathExist(it.absolutePath, OTGPath) }.forEach { - mDirectoryDao.deleteDirPath(it.absolutePath) + directoryDao.deleteDirPath(it.absolutePath) + } + + if (config.deleteEmptyFolders) { + folders.filter { !it.absolutePath.isDownloadsFolder() && it.isDirectory && it.toFileDirItem(this).getProperFileCount(this, true) == 0 }.forEach { + tryDeleteFileDirItem(it.toFileDirItem(this), true, true) + } } } } @@ -930,16 +928,16 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { setupAdapter(dirs) // update directories and media files in the local db, delete invalid items - updateDBDirectory(directory, mDirectoryDao) + updateDBDirectory(directory) if (!directory.isRecycleBin()) { - mMediumDao.insertAll(curMedia) + mediaDB.insertAll(curMedia) } - getCachedMedia(directory.path, getVideosOnly, getImagesOnly, mMediumDao) { + getCachedMedia(directory.path, getVideosOnly, getImagesOnly) { it.forEach { if (!curMedia.contains(it)) { val path = (it as? Medium)?.path if (path != null) { - deleteDBPath(mMediumDao, path) + deleteDBPath(path) } } } @@ -949,7 +947,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { if (dirPathsToRemove.isNotEmpty()) { val dirsToRemove = dirs.filter { dirPathsToRemove.contains(it.path) } dirsToRemove.forEach { - mDirectoryDao.deleteDirPath(it.path) + directoryDao.deleteDirPath(it.path) } dirs.removeAll(dirsToRemove) setupAdapter(dirs) @@ -993,9 +991,9 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { dirs.add(newDir) setupAdapter(dirs) try { - mDirectoryDao.insert(newDir) + directoryDao.insert(newDir) if (folder != RECYCLE_BIN) { - mMediumDao.insertAll(newMedia) + mediaDB.insertAll(newMedia) } } catch (ignored: Exception) { } @@ -1150,7 +1148,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { if (config.useRecycleBin) { try { val binFolder = dirs.firstOrNull { it.path == RECYCLE_BIN } - if (binFolder != null && mMediumDao.getDeletedMedia().isEmpty()) { + if (binFolder != null && mediaDB.getDeletedMedia().isEmpty()) { invalidDirs.add(binFolder) } } catch (ignored: Exception) { @@ -1162,7 +1160,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { setupAdapter(dirs) invalidDirs.forEach { try { - mDirectoryDao.deleteDirPath(it.path) + directoryDao.deleteDirPath(it.path) } catch (ignored: Exception) { } } @@ -1212,7 +1210,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { Handler().postDelayed({ ensureBackgroundThread { try { - mMediumDao.deleteOldRecycleBinItems(System.currentTimeMillis() - MONTH_MILLISECONDS) + mediaDB.deleteOldRecycleBinItems(System.currentTimeMillis() - MONTH_MILLISECONDS) } catch (e: Exception) { } } @@ -1277,7 +1275,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener { override fun updateDirectories(directories: ArrayList) { ensureBackgroundThread { - storeDirectoryItems(directories, mDirectoryDao) + storeDirectoryItems(directories) removeInvalidDBDirectories() } } 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 6aa7d5fcd..7f05afad3 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 @@ -39,9 +39,7 @@ import com.simplemobiletools.gallery.pro.databases.GalleryDatabase import com.simplemobiletools.gallery.pro.dialogs.* import com.simplemobiletools.gallery.pro.extensions.* import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.interfaces.DirectoryDao import com.simplemobiletools.gallery.pro.interfaces.MediaOperationsListener -import com.simplemobiletools.gallery.pro.interfaces.MediumDao import com.simplemobiletools.gallery.pro.models.Medium import com.simplemobiletools.gallery.pro.models.ThumbnailItem import com.simplemobiletools.gallery.pro.models.ThumbnailSection @@ -78,9 +76,6 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { private var mStoredTextColor = 0 private var mStoredPrimaryColor = 0 - private lateinit var mMediumDao: MediumDao - private lateinit var mDirectoryDao: DirectoryDao - companion object { var mMedia = ArrayList() } @@ -89,9 +84,6 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { super.onCreate(savedInstanceState) setContentView(R.layout.activity_media) - mMediumDao = galleryDB.MediumDao() - mDirectoryDao = galleryDB.DirectoryDao() - intent.apply { mIsGetImageIntent = getBooleanExtra(GET_IMAGE_INTENT, false) mIsGetVideoIntent = getBooleanExtra(GET_VIDEO_INTENT, false) @@ -495,9 +487,9 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { private fun restoreAllFiles() { val paths = mMedia.filter { it is Medium }.map { (it as Medium).path } as ArrayList - restoreRecycleBinPaths(paths, mMediumDao) { + restoreRecycleBinPaths(paths) { ensureBackgroundThread { - mDirectoryDao.deleteDirPath(RECYCLE_BIN) + directoryDao.deleteDirPath(RECYCLE_BIN) } finish() } @@ -584,7 +576,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { if (mLoadedInitialPhotos) { startAsyncTask() } else { - getCachedMedia(mPath, mIsGetVideoIntent, mIsGetImageIntent, mMediumDao) { + getCachedMedia(mPath, mIsGetVideoIntent, mIsGetImageIntent) { if (it.isEmpty()) { runOnUiThread { media_refresh_layout.isRefreshing = true @@ -608,7 +600,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { try { gotMedia(newMedia, false) oldMedia.filter { !newMedia.contains(it) }.mapNotNull { it as? Medium }.filter { !getDoesFilePathExist(it.path) }.forEach { - mMediumDao.deleteMediumPath(it.path) + mediaDB.deleteMediumPath(it.path) } } catch (e: Exception) { } @@ -627,7 +619,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { if (mPath == FAVORITES) { ensureBackgroundThread { - mDirectoryDao.deleteDirPath(FAVORITES) + directoryDao.deleteDirPath(FAVORITES) } } @@ -641,7 +633,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { private fun deleteDBDirectory() { ensureBackgroundThread { try { - mDirectoryDao.deleteDirPath(mPath) + directoryDao.deleteDirPath(mPath) } catch (ignored: Exception) { } } @@ -897,7 +889,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { if (!isFromCache) { val mediaToInsert = (mMedia).filter { it is Medium && it.deletedTS == 0L }.map { it as Medium } try { - mMediumDao.insertAll(mediaToInsert) + mediaDB.insertAll(mediaToInsert) } catch (e: Exception) { } } @@ -913,7 +905,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { val movingItems = resources.getQuantityString(R.plurals.moving_items_into_bin, filtered.size, filtered.size) toast(movingItems) - movePathsInRecycleBin(filtered.map { it.path } as ArrayList, mMediumDao) { + movePathsInRecycleBin(filtered.map { it.path } as ArrayList) { if (it) { deleteFilteredFiles(filtered) } else { @@ -940,7 +932,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { val useRecycleBin = config.useRecycleBin filtered.forEach { if (it.path.startsWith(recycleBinPath) || !useRecycleBin) { - deleteDBPath(mMediumDao, it.path) + deleteDBPath(it.path) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/NewEditActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/NewEditActivity.kt index 4a9adb5ee..62215b769 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/NewEditActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/NewEditActivity.kt @@ -37,11 +37,11 @@ import kotlin.collections.set class NewEditActivity : SimpleActivity() { private val PESDK_EDIT_IMAGE = 1 private val SETTINGS_LIST = "SETTINGS_LIST" - private val SOURCE_IMAGE_PATH = "SOURCE_IMAGE_PATH" private val RESULT_IMAGE_PATH = "RESULT_IMAGE_PATH" private var sourceFileLastModified = 0L private var destinationFilePath = "" private var imagePathFromEditor = "" // delete the file stored at the internal app storage (the editor saves it there) in case moving to the selected location fails + private var sourceImageUri: Uri? = null private lateinit var uri: Uri private lateinit var saveUri: Uri @@ -102,7 +102,6 @@ class NewEditActivity : SimpleActivity() { override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { if (requestCode == PESDK_EDIT_IMAGE) { val extras = resultData?.extras - val source = extras?.getString(SOURCE_IMAGE_PATH, "") ?: "" imagePathFromEditor = extras?.getString(RESULT_IMAGE_PATH, "") ?: "" val settings = extras?.getParcelable(SETTINGS_LIST) @@ -113,12 +112,19 @@ class NewEditActivity : SimpleActivity() { config.editorBrushSize = brush.brushSize } - if (resultCode != Activity.RESULT_OK || source.isEmpty() || imagePathFromEditor.isEmpty() || source == imagePathFromEditor) { + if (resultCode != Activity.RESULT_OK || sourceImageUri == null || sourceImageUri.toString().isEmpty() || imagePathFromEditor.isEmpty() || sourceImageUri.toString() == imagePathFromEditor) { toast(R.string.image_editing_failed) finish() } else { // the image is stored at the internal app storage first, for example /data/user/0/com.simplemobiletools.gallery.pro/files/editor/IMG_20191207_183023.jpg // first we rename it to the desired name, then move + val sourceString = Uri.decode(sourceImageUri.toString())?.toString() ?: "" + val source = if (sourceString.isEmpty() || sourceString.startsWith("content")) { + internalStoragePath + } else { + sourceString.substringAfter("file://") + } + SaveAsDialog(this, source, true, cancelCallback = { toast(R.string.image_editing_failed) finish() @@ -173,10 +179,11 @@ class NewEditActivity : SimpleActivity() { } private fun openEditor(inputImage: Uri) { + sourceImageUri = inputImage val filename = inputImage.toString().getFilenameFromPath() val settingsList = createPesdkSettingsList(filename) - settingsList.getSettingsModel(EditorLoadSettings::class.java).imageSource = inputImage + settingsList.getSettingsModel(EditorLoadSettings::class.java).imageSource = sourceImageUri PhotoEditorBuilder(this) .setSettingsList(settingsList) @@ -194,6 +201,8 @@ class NewEditActivity : SimpleActivity() { add(CropAspectAsset("my_crop_4_5", 4, 5, false)) add(CropAspectAsset("my_crop_37_18", 37, 18, false)) add(CropAspectAsset("my_crop_18_37", 18, 37, false)) + add(CropAspectAsset("my_crop_16_10", 16, 10, false)) + add(CropAspectAsset("my_crop_10_16", 10, 16, false)) } settingsList.getSettingsModel(UiConfigAspect::class.java).aspectList.apply { @@ -201,6 +210,7 @@ class NewEditActivity : SimpleActivity() { add(ToggleAspectItem(CropAspectItem("my_crop_19_9"), CropAspectItem("my_crop_9_19"))) add(ToggleAspectItem(CropAspectItem("my_crop_5_4"), CropAspectItem("my_crop_4_5"))) add(ToggleAspectItem(CropAspectItem("my_crop_37_18"), CropAspectItem("my_crop_18_37"))) + add(ToggleAspectItem(CropAspectItem("my_crop_16_10"), CropAspectItem("my_crop_10_16"))) } settingsList.getSettingsModel(UiConfigFilter::class.java).setFilterList( @@ -236,6 +246,7 @@ class NewEditActivity : SimpleActivity() { settingsList.getSettingsModel(UiConfigTheme::class.java).theme = R.style.Imgly_Theme_NoFullscreen settingsList.getSettingsModel(EditorSaveSettings::class.java) + .setExportFormat(EditorSaveSettings.FORMAT.AUTO) .setOutputFilePath("$filesDir/editor/$filename") .savePolicy = EditorSaveSettings.SavePolicy.RETURN_SOURCE_OR_CREATE_OUTPUT_IF_NECESSARY diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SearchActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SearchActivity.kt index 0febbfd0b..2ef59a3bc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SearchActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SearchActivity.kt @@ -315,7 +315,7 @@ class SearchActivity : SimpleActivity(), MediaOperationsListener { val movingItems = resources.getQuantityString(R.plurals.moving_items_into_bin, filtered.size, filtered.size) toast(movingItems) - movePathsInRecycleBin(filtered.map { it.path } as ArrayList, galleryDB.MediumDao()) { + movePathsInRecycleBin(filtered.map { it.path } as ArrayList) { if (it) { deleteFilteredFiles(filtered) } else { @@ -342,7 +342,7 @@ class SearchActivity : SimpleActivity(), MediaOperationsListener { val useRecycleBin = config.useRecycleBin filtered.forEach { if (it.path.startsWith(recycleBinPath) || !useRecycleBin) { - deleteDBPath(galleryDB.MediumDao(), it.path) + deleteDBPath(it.path) } } } 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 0be79e7fe..50133ccf5 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 @@ -13,10 +13,7 @@ import com.simplemobiletools.commons.models.RadioItem import com.simplemobiletools.gallery.pro.R import com.simplemobiletools.gallery.pro.dialogs.ManageBottomActionsDialog import com.simplemobiletools.gallery.pro.dialogs.ManageExtendedDetailsDialog -import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.emptyTheRecycleBin -import com.simplemobiletools.gallery.pro.extensions.galleryDB -import com.simplemobiletools.gallery.pro.extensions.showRecycleBinEmptyingDialog +import com.simplemobiletools.gallery.pro.extensions.* import com.simplemobiletools.gallery.pro.helpers.* import com.simplemobiletools.gallery.pro.models.AlbumCover import kotlinx.android.synthetic.main.activity_settings.* @@ -593,7 +590,7 @@ class SettingsActivity : SimpleActivity() { private fun setupEmptyRecycleBin() { ensureBackgroundThread { try { - mRecycleBinContentSize = galleryDB.MediumDao().getDeletedMedia().sumByLong { it.size } + mRecycleBinContentSize = mediaDB.getDeletedMedia().sumByLong { it.size } } catch (ignored: Exception) { } runOnUiThread { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SplashActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SplashActivity.kt index 20c9c9387..9d0c0cc79 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SplashActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SplashActivity.kt @@ -2,9 +2,42 @@ package com.simplemobiletools.gallery.pro.activities import android.content.Intent import com.simplemobiletools.commons.activities.BaseSplashActivity +import com.simplemobiletools.commons.helpers.ensureBackgroundThread +import com.simplemobiletools.gallery.pro.extensions.config +import com.simplemobiletools.gallery.pro.extensions.favoritesDB +import com.simplemobiletools.gallery.pro.extensions.getFavoriteFromPath +import com.simplemobiletools.gallery.pro.extensions.mediaDB +import com.simplemobiletools.gallery.pro.models.Favorite class SplashActivity : BaseSplashActivity() { override fun initActivity() { + + // check if previously selected favorite items have been properly migrated into the new Favorites table + if (config.wereFavoritesMigrated) { + launchActivity() + } else { + if (config.appRunCount == 0) { + config.wereFavoritesMigrated = true + launchActivity() + } else { + config.wereFavoritesMigrated = true + ensureBackgroundThread { + val favorites = ArrayList() + val favoritePaths = mediaDB.getFavorites().map { it.path }.toMutableList() as ArrayList + favoritePaths.forEach { + favorites.add(getFavoriteFromPath(it)) + } + favoritesDB.insertAll(favorites) + + runOnUiThread { + launchActivity() + } + } + } + } + } + + private fun launchActivity() { startActivity(Intent(this, MainActivity::class.java)) finish() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index bed9bc018..27839af11 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -214,6 +214,9 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen mExoPlayer = ExoPlayerFactory.newSimpleInstance(applicationContext).apply { seekParameters = SeekParameters.CLOSEST_SYNC audioStreamType = C.STREAM_TYPE_MUSIC + if (config.loopVideos) { + repeatMode = Player.REPEAT_MODE_ONE + } prepare(audioSource) } initExoPlayerListeners() @@ -231,7 +234,13 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen override fun onLoadingChanged(isLoading: Boolean) {} - override fun onPositionDiscontinuity(reason: Int) {} + override fun onPositionDiscontinuity(reason: Int) { + // Reset progress views when video loops. + if (reason == Player.DISCONTINUITY_REASON_PERIOD_TRANSITION) { + video_seekbar.progress = 0 + video_curr_time.text = 0.getFormattedDuration() + } + } override fun onRepeatModeChanged(repeatMode: Int) {} @@ -338,13 +347,9 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen clearLastVideoSavedProgress() mCurrTime = (mExoPlayer!!.duration / 1000).toInt() - if (config.loopVideos) { - resumeVideo() - } else { - video_seekbar.progress = video_seekbar.max - video_curr_time.text = mDuration.getFormattedDuration() - pauseVideo() - } + video_seekbar.progress = video_seekbar.max + video_curr_time.text = mDuration.getFormattedDuration() + pauseVideo() } private fun didVideoEnd(): Boolean { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt index 0dc77ed6c..089d3da5d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt @@ -364,8 +364,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View if (intent.action == "com.android.camera.action.REVIEW") { ensureBackgroundThread { - val mediumDao = galleryDB.MediumDao() - if (mediumDao.getMediaFromPath(mPath).isEmpty()) { + if (mediaDB.getMediaFromPath(mPath).isEmpty()) { val type = when { mPath.isVideoFast() -> TYPE_VIDEOS mPath.isGif() -> TYPE_GIFS @@ -375,11 +374,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View else -> TYPE_IMAGES } - val isFavorite = mediumDao.isFavorite(mPath) + val isFavorite = favoritesDB.isFavorite(mPath) val duration = if (type == TYPE_VIDEOS) mPath.getVideoDuration() else 0 val ts = System.currentTimeMillis() val medium = Medium(null, mPath.getFilenameFromPath(), mPath, mPath.getParentPath(), ts, ts, File(mPath).length(), type, duration, isFavorite, 0) - mediumDao.insert(medium) + mediaDB.insert(medium) } } } @@ -864,7 +863,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View val medium = getCurrentMedium() ?: return medium.isFavorite = !medium.isFavorite ensureBackgroundThread { - galleryDB.MediumDao().updateFavorite(medium.path, medium.isFavorite) + updateFavorite(medium.path, medium.isFavorite) if (medium.isFavorite) { mFavoritePaths.add(medium.path) } else { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/WidgetConfigureActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/WidgetConfigureActivity.kt index f34a23e9b..3f0c66912 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/WidgetConfigureActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/WidgetConfigureActivity.kt @@ -150,7 +150,7 @@ class WidgetConfigureActivity : SimpleActivity() { } private fun changeSelectedFolder() { - PickDirectoryDialog(this, "", false) { + PickDirectoryDialog(this, "", false, true) { updateFolderImage(it) } } @@ -163,7 +163,7 @@ class WidgetConfigureActivity : SimpleActivity() { } ensureBackgroundThread { - val path = directoryDB.getDirectoryThumbnail(folderPath) + val path = directoryDao.getDirectoryThumbnail(folderPath) if (path != null) { runOnUiThread { loadJpg(path, config_image, config.cropThumbnails) 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 abc71941e..ec683644d 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 @@ -198,7 +198,7 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: ArrayList Unit) { +class PickDirectoryDialog(val activity: BaseSimpleActivity, val sourcePath: String, showOtherFolderButton: Boolean, val showFavoritesBin: Boolean, + val callback: (path: String) -> Unit) { private var dialog: AlertDialog private var shownDirectories = ArrayList() private var allDirectories = ArrayList() @@ -88,7 +89,8 @@ class PickDirectoryDialog(val activity: BaseSimpleActivity, val sourcePath: Stri if (allDirectories.isEmpty()) { allDirectories = newDirs.clone() as ArrayList } - val distinctDirs = newDirs.distinctBy { it.path.getDistinctPath() }.toMutableList() as ArrayList + + val distinctDirs = newDirs.filter { showFavoritesBin || (!it.isRecycleBin() && !it.areFavorites()) }.distinctBy { it.path.getDistinctPath() }.toMutableList() as ArrayList val sortedDirs = activity.getSortedDirectories(distinctDirs) val dirs = activity.getDirsToShow(sortedDirs, allDirectories, currentPathPrefix).clone() as ArrayList if (dirs.hashCode() == shownDirectories.hashCode()) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickMediumDialog.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickMediumDialog.kt index 99509354b..036b1eadf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickMediumDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/PickMediumDialog.kt @@ -54,7 +54,7 @@ class PickMediumDialog(val activity: BaseSimpleActivity, val path: String, val c } private fun showOtherFolder() { - PickDirectoryDialog(activity, path, true) { + PickDirectoryDialog(activity, path, true, true) { callback(it) dialog.dismiss() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SaveAsDialog.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SaveAsDialog.kt index a4dd80712..4331b3120 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SaveAsDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/SaveAsDialog.kt @@ -33,6 +33,7 @@ class SaveAsDialog(val activity: BaseSimpleActivity, val path: String, val appen save_as_name.setText(name) save_as_path.setOnClickListener { + activity.hideKeyboard(save_as_path) FilePickerDialog(activity, realPath, false, false, true, true) { save_as_path.text = activity.humanizePath(it) realPath = it 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 c2f273e6c..b23b28522 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 @@ -31,7 +31,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.RECYCLE_BIN -import com.simplemobiletools.gallery.pro.interfaces.MediumDao +import com.simplemobiletools.gallery.pro.models.DateTaken import com.squareup.picasso.Picasso import java.io.File import java.io.FileOutputStream @@ -208,7 +208,7 @@ fun BaseSimpleActivity.tryCopyMoveFilesTo(fileDirItems: ArrayList, } val source = fileDirItems[0].getParentPath() - PickDirectoryDialog(this, source, true) { + PickDirectoryDialog(this, source, true, false) { val destination = it handleSAFDialog(source) { if (it) { @@ -223,7 +223,7 @@ fun BaseSimpleActivity.tryDeleteFileDirItem(fileDirItem: FileDirItem, allowDelet deleteFile(fileDirItem, allowDeleteFolder) { if (deleteFromDatabase) { ensureBackgroundThread { - deleteDBPath(galleryDB.MediumDao(), fileDirItem.path) + deleteDBPath(fileDirItem.path) runOnUiThread { callback?.invoke(it) } @@ -234,7 +234,7 @@ fun BaseSimpleActivity.tryDeleteFileDirItem(fileDirItem: FileDirItem, allowDelet } } -fun BaseSimpleActivity.movePathsInRecycleBin(paths: ArrayList, mediumDao: MediumDao = galleryDB.MediumDao(), callback: ((wasSuccess: Boolean) -> Unit)?) { +fun BaseSimpleActivity.movePathsInRecycleBin(paths: ArrayList, callback: ((wasSuccess: Boolean) -> Unit)?) { ensureBackgroundThread { var pathsCnt = paths.size val OTGPath = config.OTGPath @@ -261,7 +261,7 @@ fun BaseSimpleActivity.movePathsInRecycleBin(paths: ArrayList, mediumDao out?.flush() if (fileDocument?.getItemSize(true) == copiedSize && getDoesFilePathExist(destination)) { - mediumDao.updateDeleted("$RECYCLE_BIN$source", System.currentTimeMillis(), source) + mediaDB.updateDeleted("$RECYCLE_BIN$source", System.currentTimeMillis(), source) pathsCnt-- } } catch (e: Exception) { @@ -277,7 +277,7 @@ fun BaseSimpleActivity.movePathsInRecycleBin(paths: ArrayList, mediumDao val lastModified = file.lastModified() try { if (file.copyRecursively(internalFile, true)) { - mediumDao.updateDeleted("$RECYCLE_BIN$source", System.currentTimeMillis(), source) + mediaDB.updateDeleted("$RECYCLE_BIN$source", System.currentTimeMillis(), source) pathsCnt-- if (config.keepLastModified) { @@ -295,10 +295,10 @@ fun BaseSimpleActivity.movePathsInRecycleBin(paths: ArrayList, mediumDao } fun BaseSimpleActivity.restoreRecycleBinPath(path: String, callback: () -> Unit) { - restoreRecycleBinPaths(arrayListOf(path), galleryDB.MediumDao(), callback) + restoreRecycleBinPaths(arrayListOf(path), callback) } -fun BaseSimpleActivity.restoreRecycleBinPaths(paths: ArrayList, mediumDao: MediumDao = galleryDB.MediumDao(), callback: () -> Unit) { +fun BaseSimpleActivity.restoreRecycleBinPaths(paths: ArrayList, callback: () -> Unit) { ensureBackgroundThread { val newPaths = ArrayList() for (source in paths) { @@ -328,7 +328,7 @@ fun BaseSimpleActivity.restoreRecycleBinPaths(paths: ArrayList, mediumDa out?.flush() if (File(source).length() == copiedSize) { - mediumDao.updateDeleted(destination.removePrefix(recycleBinPath), 0, "$RECYCLE_BIN$destination") + mediaDB.updateDeleted(destination.removePrefix(recycleBinPath), 0, "$RECYCLE_BIN$destination") } newPaths.add(destination) @@ -357,8 +357,8 @@ fun BaseSimpleActivity.emptyTheRecycleBin(callback: (() -> Unit)? = null) { ensureBackgroundThread { try { recycleBin.deleteRecursively() - galleryDB.MediumDao().clearRecycleBin() - galleryDB.DirectoryDao().deleteRecycleBin() + mediaDB.clearRecycleBin() + directoryDao.deleteRecycleBin() toast(R.string.recycle_bin_emptied) callback?.invoke() } catch (e: Exception) { @@ -413,9 +413,10 @@ fun Activity.fixDateTaken(paths: ArrayList, showToasts: Boolean, hasResc try { var didUpdateFile = false val operations = ArrayList() - val mediumDao = galleryDB.MediumDao() ensureBackgroundThread { + val dateTakens = ArrayList() + for (path in paths) { val dateTime = ExifInterface(path).getAttribute(ExifInterface.TAG_DATETIME_ORIGINAL) ?: ExifInterface(path).getAttribute(ExifInterface.TAG_DATETIME) ?: continue @@ -442,9 +443,11 @@ fun Activity.fixDateTaken(paths: ArrayList, showToasts: Boolean, hasResc operations.clear() } - mediumDao.updateFavoriteDateTaken(path, timestamp) + mediaDB.updateFavoriteDateTaken(path, timestamp) didUpdateFile = true + val dateTaken = DateTaken(null, path, path.getFilenameFromPath(), path.getParentPath(), timestamp, (System.currentTimeMillis() / 1000).toInt()) + dateTakens.add(dateTaken) if (!hasRescanned && getFileDateTaken(path) == 0L) { pathsToRescan.add(path) } @@ -456,6 +459,10 @@ fun Activity.fixDateTaken(paths: ArrayList, showToasts: Boolean, hasResc } if (hasRescanned || pathsToRescan.isEmpty()) { + if (dateTakens.isNotEmpty()) { + dateTakensDB.insertAll(dateTakens) + } + runOnUiThread { if (showToasts) { toast(if (didUpdateFile) R.string.dates_fixed_successfully else R.string.unknown_error_occurred) 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 552b47339..a3d542674 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 @@ -25,13 +25,8 @@ import com.simplemobiletools.gallery.pro.activities.SettingsActivity import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask import com.simplemobiletools.gallery.pro.databases.GalleryDatabase import com.simplemobiletools.gallery.pro.helpers.* -import com.simplemobiletools.gallery.pro.interfaces.DirectoryDao -import com.simplemobiletools.gallery.pro.interfaces.MediumDao -import com.simplemobiletools.gallery.pro.interfaces.WidgetsDao -import com.simplemobiletools.gallery.pro.models.AlbumCover -import com.simplemobiletools.gallery.pro.models.Directory -import com.simplemobiletools.gallery.pro.models.Medium -import com.simplemobiletools.gallery.pro.models.ThumbnailItem +import com.simplemobiletools.gallery.pro.interfaces.* +import com.simplemobiletools.gallery.pro.models.* import com.simplemobiletools.gallery.pro.svg.SvgSoftwareLayerSetter import com.simplemobiletools.gallery.pro.views.MySquareImageView import pl.droidsonroids.gif.GifDrawable @@ -113,11 +108,15 @@ fun Context.launchSettings() { val Context.config: Config get() = Config.newInstance(applicationContext) -val Context.galleryDB: GalleryDatabase get() = GalleryDatabase.getInstance(applicationContext) - val Context.widgetsDB: WidgetsDao get() = GalleryDatabase.getInstance(applicationContext).WidgetsDao() -val Context.directoryDB: DirectoryDao get() = GalleryDatabase.getInstance(applicationContext).DirectoryDao() +val Context.mediaDB: MediumDao get() = GalleryDatabase.getInstance(applicationContext).MediumDao() + +val Context.directoryDao: DirectoryDao get() = GalleryDatabase.getInstance(applicationContext).DirectoryDao() + +val Context.favoritesDB: FavoritesDao get() = GalleryDatabase.getInstance(applicationContext).FavoritesDao() + +val Context.dateTakensDB: DateTakensDao get() = GalleryDatabase.getInstance(applicationContext).DateTakensDao() val Context.recycleBin: File get() = filesDir @@ -400,16 +399,15 @@ fun Context.rescanFolderMediaSync(path: String) { GetMediaAsynctask(applicationContext, path, false, false, false) { ensureBackgroundThread { val newMedia = it - val mediumDao = galleryDB.MediumDao() val media = newMedia.filter { it is Medium } as ArrayList try { - mediumDao.insertAll(media) + mediaDB.insertAll(media) cached.forEach { if (!newMedia.contains(it)) { val mediumPath = (it as? Medium)?.path if (mediumPath != null) { - deleteDBPath(mediumDao, mediumPath) + deleteDBPath(mediumPath) } } } @@ -420,7 +418,7 @@ fun Context.rescanFolderMediaSync(path: String) { } } -fun Context.storeDirectoryItems(items: ArrayList, directoryDao: DirectoryDao) { +fun Context.storeDirectoryItems(items: ArrayList) { ensureBackgroundThread { directoryDao.insertAll(items) } @@ -559,7 +557,7 @@ fun Context.loadSVG(path: String, target: MySquareImageView, cropThumbnails: Boo .into(target) } -fun Context.getCachedDirectories(getVideosOnly: Boolean = false, getImagesOnly: Boolean = false, directoryDao: DirectoryDao = galleryDB.DirectoryDao(), forceShowHidden: Boolean = false, callback: (ArrayList) -> Unit) { +fun Context.getCachedDirectories(getVideosOnly: Boolean = false, getImagesOnly: Boolean = false, forceShowHidden: Boolean = false, callback: (ArrayList) -> Unit) { ensureBackgroundThread { val directories = try { directoryDao.getAll() as ArrayList @@ -602,22 +600,21 @@ fun Context.getCachedDirectories(getVideosOnly: Boolean = false, getImagesOnly: val clone = filteredDirectories.clone() as ArrayList callback(clone.distinctBy { it.path.getDistinctPath() } as ArrayList) - removeInvalidDBDirectories(filteredDirectories, directoryDao) + removeInvalidDBDirectories(filteredDirectories) } } -fun Context.getCachedMedia(path: String, getVideosOnly: Boolean = false, getImagesOnly: Boolean = false, mediumDao: MediumDao = galleryDB.MediumDao(), - callback: (ArrayList) -> Unit) { +fun Context.getCachedMedia(path: String, getVideosOnly: Boolean = false, getImagesOnly: Boolean = false, callback: (ArrayList) -> Unit) { ensureBackgroundThread { val mediaFetcher = MediaFetcher(this) val foldersToScan = if (path.isEmpty()) mediaFetcher.getFoldersToScan() else arrayListOf(path) var media = ArrayList() if (path == FAVORITES) { - media.addAll(mediumDao.getFavorites()) + media.addAll(mediaDB.getFavorites()) } if (path == RECYCLE_BIN) { - media.addAll(getUpdatedDeletedMedia(mediumDao)) + media.addAll(getUpdatedDeletedMedia()) } if (config.filterMedia and TYPE_PORTRAITS != 0) { @@ -634,7 +631,7 @@ fun Context.getCachedMedia(path: String, getVideosOnly: Boolean = false, getImag val shouldShowHidden = config.shouldShowHidden foldersToScan.filter { path.isNotEmpty() || !config.isFolderProtected(it) }.forEach { try { - val currMedia = mediumDao.getMediaFromPath(it) + val currMedia = mediaDB.getMediaFromPath(it) media.addAll(currMedia) } catch (ignored: Exception) { } @@ -667,7 +664,7 @@ fun Context.getCachedMedia(path: String, getVideosOnly: Boolean = false, getImag val mediaToDelete = ArrayList() media.filter { !getDoesFilePathExist(it.path, OTGPath) }.forEach { if (it.path.startsWith(recycleBinPath)) { - deleteDBPath(mediumDao, it.path) + deleteDBPath(it.path) } else { mediaToDelete.add(it) } @@ -675,14 +672,18 @@ fun Context.getCachedMedia(path: String, getVideosOnly: Boolean = false, getImag try { if (mediaToDelete.isNotEmpty()) { - mediumDao.deleteMedia(*mediaToDelete.toTypedArray()) + mediaDB.deleteMedia(*mediaToDelete.toTypedArray()) + + mediaToDelete.filter { it.isFavorite }.forEach { + favoritesDB.deleteFavoritePath(it.path) + } } } catch (ignored: Exception) { } } } -fun Context.removeInvalidDBDirectories(dirs: ArrayList? = null, directoryDao: DirectoryDao = galleryDB.DirectoryDao()) { +fun Context.removeInvalidDBDirectories(dirs: ArrayList? = null) { val dirsToCheck = dirs ?: directoryDao.getAll() val OTGPath = config.OTGPath dirsToCheck.filter { !it.areFavorites() && !it.isRecycleBin() && !getDoesFilePathExist(it.path, OTGPath) && it.path != config.tempFolderPath }.forEach { @@ -697,12 +698,13 @@ fun Context.updateDBMediaPath(oldPath: String, newPath: String) { val newFilename = newPath.getFilenameFromPath() val newParentPath = newPath.getParentPath() try { - galleryDB.MediumDao().updateMedium(oldPath, newParentPath, newFilename, newPath) + mediaDB.updateMedium(newFilename, newPath, newParentPath, oldPath) + favoritesDB.updateFavorite(newFilename, newPath, newParentPath, oldPath) } catch (ignored: Exception) { } } -fun Context.updateDBDirectory(directory: Directory, directoryDao: DirectoryDao) { +fun Context.updateDBDirectory(directory: Directory) { try { directoryDao.updateDirectory(directory.path, directory.tmb, directory.mediaCnt, directory.modified, directory.taken, directory.size, directory.types) } catch (ignored: Exception) { @@ -715,16 +717,26 @@ fun Context.getOTGFolderChildrenNames(path: String) = getOTGFolderChildren(path) fun Context.getFavoritePaths(): ArrayList { return try { - galleryDB.MediumDao().getFavoritePaths() as ArrayList + favoritesDB.getValidFavoritePaths() as ArrayList } catch (e: Exception) { ArrayList() } } +fun Context.getFavoriteFromPath(path: String) = Favorite(null, path, path.getFilenameFromPath(), path.getParentPath()) + +fun Context.updateFavorite(path: String, isFavorite: Boolean) { + if (isFavorite) { + favoritesDB.insert(getFavoriteFromPath(path)) + } else { + favoritesDB.deleteFavoritePath(path) + } +} + // remove the "recycle_bin" from the file path prefix, replace it with real bin path /data/user... -fun Context.getUpdatedDeletedMedia(mediumDao: MediumDao): ArrayList { +fun Context.getUpdatedDeletedMedia(): ArrayList { val media = try { - mediumDao.getDeletedMedia() as ArrayList + mediaDB.getDeletedMedia() as ArrayList } catch (ignored: Exception) { ArrayList() } @@ -735,9 +747,14 @@ fun Context.getUpdatedDeletedMedia(mediumDao: MediumDao): ArrayList { return media } -fun Context.deleteDBPath(mediumDao: MediumDao, path: String) { +fun Context.deleteDBPath(path: String) { + deleteMediumWithPath(path.replaceFirst(recycleBinPath, RECYCLE_BIN)) +} + +fun Context.deleteMediumWithPath(path: String) { try { - mediumDao.deleteMediumPath(path.replaceFirst(recycleBinPath, RECYCLE_BIN)) + mediaDB.deleteMediumPath(path) + favoritesDB.deleteFavoritePath(path) } catch (ignored: Exception) { } } @@ -826,13 +843,12 @@ fun Context.addPathToDB(path: String) { } try { - val mediumDao = galleryDB.MediumDao() - val isFavorite = mediumDao.isFavorite(path) + val isFavorite = favoritesDB.isFavorite(path) val videoDuration = if (type == TYPE_VIDEOS) path.getVideoDuration() else 0 val medium = Medium(null, path.getFilenameFromPath(), path, path.getParentPath(), System.currentTimeMillis(), System.currentTimeMillis(), File(path).length(), type, videoDuration, isFavorite, 0L) - mediumDao.insert(medium) + mediaDB.insert(medium) } catch (ignored: Exception) { } } @@ -876,7 +892,7 @@ fun Context.updateDirectoryPath(path: String) { val favoritePaths = getFavoritePaths() val curMedia = mediaFetcher.getFilesFrom(path, getImagesOnly, getVideosOnly, getProperDateTaken, getProperFileSize, favoritePaths, false) val directory = createDirectoryFromMedia(path, curMedia, albumCovers, hiddenString, includedFolders, isSortingAscending, getProperFileSize) - updateDBDirectory(directory, galleryDB.DirectoryDao()) + updateDBDirectory(directory) } fun Context.getFileDateTaken(path: String): Long { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/FileDirItem.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/FileDirItem.kt index 726fcc8a9..c67eebabb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/FileDirItem.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/FileDirItem.kt @@ -1,6 +1,5 @@ package com.simplemobiletools.gallery.pro.extensions -import android.os.Environment import com.simplemobiletools.commons.models.FileDirItem -fun FileDirItem.isDownloadsFolder() = path.equals(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString(), true) +fun FileDirItem.isDownloadsFolder() = path.isDownloadsFolder() 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 0d708ce1a..3a8eb02ae 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,6 +1,7 @@ package com.simplemobiletools.gallery.pro.extensions import android.media.MediaMetadataRetriever +import android.os.Environment import com.simplemobiletools.commons.extensions.doesThisOrParentHaveNoMedia import com.simplemobiletools.commons.helpers.NOMEDIA import java.io.File @@ -70,3 +71,5 @@ fun String.getVideoDuration(): Int { } return seconds } + +fun String.isDownloadsFolder() = equals(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString(), true) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt index 212f0da68..d7555a5b4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt @@ -490,6 +490,9 @@ class PhotoFragment : ViewPagerFragment() { mView.photo_portrait_stripe.scrollBy((coverIndex - fakeItemsCnt) * itemWidth, 0) adapter.setCurrentPhoto(coverIndex) mView.photo_portrait_stripe_wrapper.beVisible() + if (mIsFullscreen) { + mView.photo_portrait_stripe_wrapper.alpha = 0f + } } } } @@ -654,7 +657,9 @@ class PhotoFragment : ViewPagerFragment() { mIsPanorama = try { val inputStream = if (mMedium.path.startsWith("content:/")) context!!.contentResolver.openInputStream(Uri.parse(mMedium.path)) else File(mMedium.path).inputStream() val imageParser = JpegImageParser().getXmpXml(ByteSourceInputStream(inputStream, mMedium.name), HashMap()) - imageParser.contains("GPano:UsePanoramaViewer=\"True\"", true) || imageParser.contains("True", true) + imageParser.contains("GPano:UsePanoramaViewer=\"True\"", true) || + imageParser.contains("True", true) || + imageParser.contains("GPano:FullPanoWidthPixels=") } catch (e: Exception) { false } catch (e: OutOfMemoryError) { 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 96879d3c1..bc7a69b56 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 @@ -273,8 +273,12 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S } private fun saveVideoProgress() { - if (!videoEnded() && mExoPlayer != null) { - mConfig.saveLastVideoPosition(mMedium.path, mExoPlayer!!.currentPosition.toInt() / 1000) + if (!videoEnded()) { + if (mExoPlayer != null) { + mConfig.saveLastVideoPosition(mMedium.path, mExoPlayer!!.currentPosition.toInt() / 1000) + } else { + mConfig.saveLastVideoPosition(mMedium.path, mPositionAtPause.toInt() / 1000) + } } } @@ -313,6 +317,9 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S mExoPlayer = ExoPlayerFactory.newSimpleInstance(context) mExoPlayer!!.seekParameters = SeekParameters.CLOSEST_SYNC + if (mConfig.loopVideos) { + mExoPlayer?.repeatMode = Player.REPEAT_MODE_ONE + } val isContentUri = mMedium.path.startsWith("content://") val uri = if (isContentUri) Uri.parse(mMedium.path) else Uri.fromFile(File(mMedium.path)) @@ -346,7 +353,13 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S override fun onLoadingChanged(isLoading: Boolean) {} - override fun onPositionDiscontinuity(reason: Int) {} + override fun onPositionDiscontinuity(reason: Int) { + // Reset progress views when video loops. + if (reason == Player.DISCONTINUITY_REASON_PERIOD_TRANSITION) { + mSeekBar.progress = 0 + mCurrTimeView.text = 0.getFormattedDuration() + } + } override fun onRepeatModeChanged(repeatMode: Int) {} @@ -668,13 +681,9 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S } mCurrTime = (mExoPlayer!!.duration / 1000).toInt() - if (listener?.videoEnded() == false && mConfig.loopVideos) { - playVideo() - } else { - mSeekBar.progress = mSeekBar.max - mCurrTimeView.text = mDuration.getFormattedDuration() - pauseVideo() - } + mSeekBar.progress = mSeekBar.max + mCurrTimeView.text = mDuration.getFormattedDuration() + pauseVideo() } private fun cleanup() { 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 3c95c9927..7473326dd 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 @@ -40,7 +40,12 @@ abstract class ViewPagerFragment : Fragment() { } val path = "${file.parent.trimEnd('/')}/" - val exif = ExifInterface(medium.path) + val exif = try { + ExifInterface(medium.path) + } catch (e: Exception) { + return "" + } + val details = StringBuilder() val detailsFlag = context!!.config.extendedDetails if (detailsFlag and EXT_NAME != 0) { 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 4f8bce7c8..6769ec72d 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 @@ -494,4 +494,8 @@ class Config(context: Context) : BaseConfig(context) { var editorBrushSize: Float get() = prefs.getFloat(EDITOR_BRUSH_SIZE, 0.05f) set(editorBrushSize) = prefs.edit().putFloat(EDITOR_BRUSH_SIZE, editorBrushSize).apply() + + var wereFavoritesMigrated: Boolean + get() = prefs.getBoolean(WERE_FAVORITES_MIGRATED, false) + set(wereFavoritesMigrated) = prefs.edit().putBoolean(WERE_FAVORITES_MIGRATED, wereFavoritesMigrated).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 50ca3f376..9b549de78 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 @@ -80,6 +80,7 @@ const val SHOW_THUMBNAIL_FILE_TYPES = "show_thumbnail_file_types" const val EDITOR_BRUSH_COLOR = "editor_brush_color" const val EDITOR_BRUSH_HARDNESS = "editor_brush_hardness" const val EDITOR_BRUSH_SIZE = "editor_brush_size" +const val WERE_FAVORITES_MIGRATED = "were_favorites_migrated" // slideshow const val SLIDESHOW_INTERVAL = "slideshow_interval" 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 965771e9c..8f060f922 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 @@ -214,10 +214,9 @@ class MediaFetcher(val context: Context) { private fun getMediaInFolder(folder: String, isPickImage: Boolean, isPickVideo: Boolean, filterMedia: Int, getProperDateTaken: Boolean, getProperFileSize: Boolean, favoritePaths: ArrayList, getVideoDurations: Boolean): ArrayList { val media = ArrayList() - val isRecycleBin = folder == RECYCLE_BIN val deletedMedia = if (isRecycleBin) { - context.getUpdatedDeletedMedia(context.galleryDB.MediumDao()) + context.getUpdatedDeletedMedia() } else { ArrayList() } @@ -227,56 +226,43 @@ class MediaFetcher(val context: Context) { val checkFileExistence = config.fileLoadingPriority == PRIORITY_VALIDITY val showHidden = config.shouldShowHidden val showPortraits = filterMedia and TYPE_PORTRAITS != 0 - val dateTakens = if (getProperDateTaken && folder != FAVORITES && !isRecycleBin) getFolderDateTakens(folder) else HashMap() - - // used only for Portrait photos starting with "IMG_" for now - val subdirs = ArrayList() - val covers = ArrayList() + val dateTakens = if (getProperDateTaken && !isRecycleBin) getFolderDateTakens(folder) else HashMap() val files = when (folder) { FAVORITES -> favoritePaths.filter { showHidden || !it.contains("/.") }.map { File(it) }.toMutableList() as ArrayList RECYCLE_BIN -> deletedMedia.map { File(it.path) }.toMutableList() as ArrayList - else -> { - val allFiles = File(folder).listFiles() ?: return media - val notDirs = ArrayList() - allFiles.forEach { - if (it.isDirectory) { - if (showPortraits && it.name.startsWith("img_", true)) { - subdirs.add(it) - } - } else { - notDirs.add(it) - } - } - - notDirs - } + else -> File(folder).listFiles()?.toMutableList() ?: return media } - for (subdir in subdirs) { - val portraitFiles = subdir.listFiles() ?: continue - val cover = portraitFiles.firstOrNull { it.name.contains("cover", true) } ?: portraitFiles.firstOrNull() - if (cover != null) { - files.add(cover) - covers.add(cover.absolutePath) - } - } - - for (file in files) { + for (curFile in files) { + var file = curFile if (shouldStop) { break } - val path = file.absolutePath - val isPortrait = covers.contains(path) - val isImage = if (isPortrait) false else path.isImageFast() - val isVideo = if (isPortrait || isImage) false else path.isVideoFast() - val isGif = if (isPortrait || isImage || isVideo) false else path.isGif() - val isRaw = if (isPortrait || isImage || isVideo || isGif) false else path.isRawFast() - val isSvg = if (isPortrait || isImage || isVideo || isGif || isRaw) false else path.isSvg() + var path = file.absolutePath + var isPortrait = false + val isImage = path.isImageFast() + val isVideo = if (isImage) false else path.isVideoFast() + val isGif = if (isImage || isVideo) false else path.isGif() + val isRaw = if (isImage || isVideo || isGif) false else path.isRawFast() + val isSvg = if (isImage || isVideo || isGif || isRaw) false else path.isSvg() - if (!isPortrait && !isImage && !isVideo && !isGif && !isRaw && !isSvg) - continue + if (!isImage && !isVideo && !isGif && !isRaw && !isSvg) { + if (showPortraits && file.isDirectory && file.name.startsWith("img_", true)) { + val portraitFiles = file.listFiles() ?: continue + val cover = portraitFiles.firstOrNull { it.name.contains("cover", true) } ?: portraitFiles.firstOrNull() + if (cover != null && !files.contains(cover)) { + file = cover + path = cover.absolutePath + isPortrait = true + } else { + continue + } + } else { + continue + } + } if (isVideo && (isPickImage || filterMedia and TYPE_VIDEOS == 0)) continue @@ -316,7 +302,7 @@ class MediaFetcher(val context: Context) { val videoDuration = if (getVideoDurations && isVideo) path.getVideoDuration() else 0 if (getProperDateTaken) { - dateTaken = dateTakens.remove(filename) ?: lastModified + dateTaken = dateTakens.remove(path) ?: lastModified } val type = when { @@ -404,32 +390,44 @@ class MediaFetcher(val context: Context) { } private fun getFolderDateTakens(folder: String): HashMap { - val projection = arrayOf( - MediaStore.Images.Media.DISPLAY_NAME, - MediaStore.Images.Media.DATE_TAKEN - ) - - val uri = MediaStore.Files.getContentUri("external") - val selection = "${MediaStore.Images.Media.DATA} LIKE ? AND ${MediaStore.Images.Media.DATA} NOT LIKE ?" - val selectionArgs = arrayOf("$folder/%", "$folder/%/%") - val dateTakens = HashMap() - val cursor = context.contentResolver.query(uri, projection, selection, selectionArgs, null) - cursor?.use { - if (cursor.moveToFirst()) { - do { - try { - val dateTaken = cursor.getLongValue(MediaStore.Images.Media.DATE_TAKEN) - if (dateTaken != 0L) { - val path = cursor.getStringValue(MediaStore.Images.Media.DISPLAY_NAME) - dateTakens[path] = dateTaken + if (folder != FAVORITES) { + val projection = arrayOf( + MediaStore.Images.Media.DISPLAY_NAME, + MediaStore.Images.Media.DATE_TAKEN + ) + + val uri = MediaStore.Files.getContentUri("external") + val selection = "${MediaStore.Images.Media.DATA} LIKE ? AND ${MediaStore.Images.Media.DATA} NOT LIKE ?" + val selectionArgs = arrayOf("$folder/%", "$folder/%/%") + + val cursor = context.contentResolver.query(uri, projection, selection, selectionArgs, null) + cursor?.use { + if (cursor.moveToFirst()) { + do { + try { + val dateTaken = cursor.getLongValue(MediaStore.Images.Media.DATE_TAKEN) + if (dateTaken != 0L) { + val name = cursor.getStringValue(MediaStore.Images.Media.DISPLAY_NAME) + dateTakens["$folder/$name"] = dateTaken + } + } catch (e: Exception) { } - } catch (e: Exception) { - } - } while (cursor.moveToNext()) + } while (cursor.moveToNext()) + } } } + val dateTakenValues = if (folder == FAVORITES) { + context.dateTakensDB.getAllDateTakens() + } else { + context.dateTakensDB.getDateTakensFromPath(folder) + } + + dateTakenValues.forEach { + dateTakens[it.fullPath] = it.taken + } + return dateTakens } @@ -470,7 +468,6 @@ class MediaFetcher(val context: Context) { } fun groupMedia(media: ArrayList, path: String): ArrayList { - val mediumGroups = LinkedHashMap>() val pathToCheck = if (path.isEmpty()) SHOW_ALL else path val currentGrouping = context.config.getFolderGrouping(pathToCheck) if (currentGrouping and GROUP_BY_NONE != 0) { @@ -483,6 +480,7 @@ class MediaFetcher(val context: Context) { return thumbnailItems } + val mediumGroups = LinkedHashMap>() media.forEach { val key = it.getGroupingKey(currentGrouping) if (!mediumGroups.containsKey(key)) { @@ -561,7 +559,8 @@ class MediaFetcher(val context: Context) { TYPE_VIDEOS -> R.string.videos TYPE_GIFS -> R.string.gifs TYPE_RAWS -> R.string.raw_images - else -> R.string.svgs + TYPE_SVGS -> R.string.svgs + else -> R.string.portraits } return context.getString(stringId) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt index 199d90952..f2e1b3d02 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MyWidgetProvider.kt @@ -18,7 +18,7 @@ import com.simplemobiletools.commons.helpers.ensureBackgroundThread import com.simplemobiletools.gallery.pro.R import com.simplemobiletools.gallery.pro.activities.MediaActivity import com.simplemobiletools.gallery.pro.extensions.config -import com.simplemobiletools.gallery.pro.extensions.directoryDB +import com.simplemobiletools.gallery.pro.extensions.directoryDao import com.simplemobiletools.gallery.pro.extensions.getFolderNameFromPath import com.simplemobiletools.gallery.pro.extensions.widgetsDB import com.simplemobiletools.gallery.pro.models.Widget @@ -45,7 +45,7 @@ class MyWidgetProvider : AppWidgetProvider() { setText(R.id.widget_folder_name, context.getFolderNameFromPath(it.folderPath)) } - val path = context.directoryDB.getDirectoryThumbnail(it.folderPath) ?: return@forEach + val path = context.directoryDao.getDirectoryThumbnail(it.folderPath) ?: return@forEach val options = RequestOptions() .signature(path.getFileSignature()) .diskCacheStrategy(DiskCacheStrategy.RESOURCE) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt new file mode 100644 index 000000000..6f8b609a8 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/DateTakensDao.kt @@ -0,0 +1,19 @@ +package com.simplemobiletools.gallery.pro.interfaces + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import com.simplemobiletools.gallery.pro.models.DateTaken + +@Dao +interface DateTakensDao { + @Insert(onConflict = OnConflictStrategy.REPLACE) + fun insertAll(dateTakens: List) + + @Query("SELECT full_path, filename, parent_path, date_taken, last_fixed FROM date_takens WHERE parent_path = :path COLLATE NOCASE") + fun getDateTakensFromPath(path: String): List + + @Query("SELECT full_path, filename, parent_path, date_taken, last_fixed FROM date_takens") + fun getAllDateTakens(): List +} diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/FavoritesDao.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/FavoritesDao.kt new file mode 100644 index 000000000..39a4c4530 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/interfaces/FavoritesDao.kt @@ -0,0 +1,31 @@ +package com.simplemobiletools.gallery.pro.interfaces + +import androidx.room.Dao +import androidx.room.Insert +import androidx.room.OnConflictStrategy +import androidx.room.Query +import com.simplemobiletools.gallery.pro.models.Favorite + +@Dao +interface FavoritesDao { + @Insert(onConflict = OnConflictStrategy.REPLACE) + fun insert(favorite: Favorite) + + @Insert(onConflict = OnConflictStrategy.REPLACE) + fun insertAll(favorites: List) + + @Query("SELECT favorites.full_path FROM favorites INNER JOIN media ON favorites.full_path = media.full_path WHERE media.deleted_ts = 0") + fun getValidFavoritePaths(): List + + @Query("SELECT id FROM favorites WHERE full_path = :path COLLATE NOCASE") + fun isFavorite(path: String): Boolean + + @Query("UPDATE OR REPLACE favorites SET filename = :newFilename, full_path = :newFullPath, parent_path = :newParentPath WHERE full_path = :oldPath COLLATE NOCASE") + fun updateFavorite(newFilename: String, newFullPath: String, newParentPath: String, oldPath: String) + + @Query("DELETE FROM favorites WHERE full_path = :path COLLATE NOCASE") + fun deleteFavoritePath(path: String) + + @Query("DELETE FROM favorites") + fun clearFavorites() +} 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 490bd62f4..4affa1995 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 @@ -15,15 +15,9 @@ interface MediumDao { @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, video_duration, is_favorite, deleted_ts FROM media WHERE deleted_ts != 0") fun getDeletedMedia(): List - @Query("SELECT is_favorite FROM media WHERE full_path = :path COLLATE NOCASE") - fun isFavorite(path: String): Boolean - @Insert(onConflict = REPLACE) fun insert(medium: Medium) @@ -40,10 +34,7 @@ interface MediumDao { fun deleteOldRecycleBinItems(timestmap: Long) @Query("UPDATE OR REPLACE media SET filename = :newFilename, full_path = :newFullPath, parent_path = :newParentPath WHERE full_path = :oldPath COLLATE NOCASE") - fun updateMedium(oldPath: String, newParentPath: String, newFilename: String, newFullPath: String) - - @Query("UPDATE media SET is_favorite = :isFavorite WHERE full_path = :path COLLATE NOCASE") - fun updateFavorite(path: String, isFavorite: Boolean) + fun updateMedium(newFilename: String, newFullPath: String, newParentPath: String, oldPath: String) @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) @@ -51,9 +42,9 @@ interface MediumDao { @Query("UPDATE media SET date_taken = :dateTaken WHERE full_path = :path COLLATE NOCASE") fun updateFavoriteDateTaken(path: String, dateTaken: Long) - @Query("DELETE FROM media WHERE deleted_ts != 0") - fun clearRecycleBin() - @Query("UPDATE media SET is_favorite = 0") fun clearFavorites() + + @Query("DELETE FROM media WHERE deleted_ts != 0") + fun clearRecycleBin() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/DateTaken.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/DateTaken.kt new file mode 100644 index 000000000..293e2a619 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/DateTaken.kt @@ -0,0 +1,17 @@ +package com.simplemobiletools.gallery.pro.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.Index +import androidx.room.PrimaryKey + +// Date Taken in the MediaStore is unreliable and hard to work with, keep the values in an own database +// It is used at sorting files by date taken, checking EXIF file by file would be way too slow +@Entity(tableName = "date_takens", indices = [Index(value = ["full_path"], unique = true)]) +data class DateTaken( + @PrimaryKey(autoGenerate = true) var id: Int?, + @ColumnInfo(name = "full_path") var fullPath: String, + @ColumnInfo(name = "filename") var filename: String, + @ColumnInfo(name = "parent_path") var parentPath: String, + @ColumnInfo(name = "date_taken") var taken: Long, + @ColumnInfo(name = "last_fixed") var lastFixed: Int) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Favorite.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Favorite.kt new file mode 100644 index 000000000..8f37a9b41 --- /dev/null +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/models/Favorite.kt @@ -0,0 +1,13 @@ +package com.simplemobiletools.gallery.pro.models + +import androidx.room.ColumnInfo +import androidx.room.Entity +import androidx.room.Index +import androidx.room.PrimaryKey + +@Entity(tableName = "favorites", indices = [Index(value = ["full_path"], unique = true)]) +data class Favorite( + @PrimaryKey(autoGenerate = true) var id: Int?, + @ColumnInfo(name = "full_path") var fullPath: String, + @ColumnInfo(name = "filename") var filename: String, + @ColumnInfo(name = "parent_path") var parentPath: String) diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index e99e5adc5..b7d436f28 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -95,6 +95,8 @@ android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_toStartOf="@+id/settings_file_loading_priority" + android:ellipsize="end" + android:lines="1" android:paddingLeft="@dimen/medium_margin" android:paddingRight="@dimen/medium_margin" android:text="@string/file_loading_priority"/> diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png index ad7d954a9..e5c2534d4 100644 Binary files a/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png index 4be3d2926..b281f7196 100644 Binary files a/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png index 4648c335c..751916395 100644 Binary files a/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png index 56a5af235..0572eaa1a 100644 Binary files a/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png index 3bff06d84..015dd1e4c 100644 Binary files a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 95ab576ab..344bcce6b 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -317,7 +317,7 @@ المعرض البسيط الـ Pro - محرر ومدير الصور - تصفح ذكرياتك دون اي انقطاع. + Browse your memories without any interruptions with this photo and video gallery (تطبيق المعرض البسيط الـ Pro) هو معرض بدون إنترنت قابل للتخصيص بدرجة كبيرة يتمتع بتنظيم الصور وتحريرها وإستعادة الملفات المحذوفة من خلال "سلة المحذوفات" وحماية الملفات وإخفاؤها وعرض مجموعة كبيرة من تنسيقات الصور والفيديو المختلفة بما في ذلك تنسيقات RAW و SVG وغير ذلك الكثير. diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 6ab4d33ec..449778d15 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 3c079f438..bf388a9fd 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -53,7 +53,7 @@ Gestionar carpetes excloses Això exclou la selecció juntament amb les carpetes, només de Simple Gallery. Pots gestionar les carpetes excloses en els Ajustaments. Excloure millor la carpeta superior? - Excloure les carpetes les ocultarà junt amb les seves subcarpetes, però només a Simple Gallery. Seguirant sent visibles a altres aplicacions.\\n\\nSi vols ocultar-les d’altres aplicacions fes servir la opció Ocultar. + Excloure les carpetes les ocultarà junt amb les seves subcarpetes, però només a Simple Gallery. Seguirant sent visibles a altres aplicacions.\n\nSi vols ocultar-les d’altres aplicacions fes servir la opció Ocultar. Eliminar tot Eliminar totes les carpetes de la llista d’excloses? Això no eliminarà les carpetes. Carpetes ocultes @@ -203,85 +203,85 @@ Activa la visibilitat del fitxer - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness + Personalitzat + Reiniciar + Quadrat + Transformar + Filtrar + No + Ajustar + Ombres + Exposició + Destacat + Brillantor Contrast - Saturation - Clarity + Saturació + Claredat Gamma - Blacks - Whites - Temperature - Sharpness - Reset + Negres + Blancs + Temperatura + Nitidessa + Restablir Focus - None + No Radial - Linear - Mirrored - Gaussian + Lineal + Emmirallat + Gaussià Text - Text Options - Text Color + Opcions de Text + Color de Text Font - Add - Edit - Straighten - Font + Afegir + Editar + Allisar + Lletra Color - BG Color - Alignment - To Front - Delete - Your text - Brush + Color de fons + Alineació + Al davant + Eliminar + El teu text + Pinzell Color - Size - Hardness - To Front - Delete - Brush Color + Mida + Duresa + Al davant + Eliminar + de pinzellColor Editor - Close Editor? - Do you really want to discard the image? - Yes + Tancar Editor? + Vols realment descartar la imatge? + Si No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker + Cancel·lar + Acceptar + Desar + Exportar imatge… + Exportant imatge %s. + Voltejar H + Voltejar V + Desfer + Refer + Selector de colors Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid - Pink - Red - Orange - Gold - Yellow - Olive - Green - Aquamarin - Pipettable color + Blanc + Gris + Negre + Blau clar + Blau + Porpre + Orquídia + Rosa + Vermell + Taronja + Or + Groc + Oliva + Verd + Aiguamarina + Pipetejat de color Com puc fer que Simple Gallery sigui la galeria de dispositius predeterminada? @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Navegueu pels vostres records sense interrupcions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro és una galeria fora de línia altament personalitzable. Organitza i edita les teves fotos, recupera fitxers suprimits amb la paperera de reciclatge, protegeix i amaga fitxers, mostra una gran varietat de formats de foto i vídeo incloent RAW, SVG i molt més. diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 1200e499b..9ed63b894 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -32,8 +32,8 @@ Opravuji… Datumy byly úspěšně opraveny Sdílet verzi se změněnou velikostí - Zdravím,\n\nzdá se, že jse přešli ze staré bezplatné aplikace. Starou aplikaci, která má nahoře v nastavení tlačítko \'Stáhnout Pro verzi\', můžete již odinstalovat.\n\nZtratíte tím pouze soubory v odpadkovém koši, označení oblíbených souborů a také budete muset znovu nastavit položky v nastavení aplikace.\n\nDěkuji! - Switch to file search across all visible folders + Zdravím,\n\nzdá se, že jste přešli ze staré bezplatné aplikace. Starou aplikaci, která má nahoře v nastavení tlačítko \'Stáhnout Pro verzi\', můžete již odinstalovat.\n\nZtratíte tím pouze soubory v odpadkovém koši, označení oblíbených souborů a také budete muset znovu nastavit položky v nastavení aplikace.\n\nDěkuji! + Přepnout na vyhledávání souborů ve všech viditelných složkách Filtr médií @@ -42,8 +42,8 @@ GIFy RAW obrázky SVGčka - Portraits - Se zvolenými filtry nebyly nalezeny žádné médiální soubory. + Portréty + Se zvolenými filtry nebyly nalezeny žádné mediální soubory. Změnit filtry @@ -53,7 +53,7 @@ Spravovat vyloučené složky Tato funkce vyloučí výběr včetně podsložek jen z Jednoduché galerie. V nastavení můžete spravovat vyloučené složky. Chcete vyloučit nadřazenou složku? - 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. + 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. Skryté složky @@ -65,7 +65,7 @@ Spravovat přidané složky Přidat složku Pokud máte nějaké složky obsahující média, ale nebyly aplikací nalezeny, můžete je zde přidat ručně. - No media files have been found. You can solve it by adding the folders containing media files manually. + Nebyly nalezeny žádné mediální soubory. Můžete to napravit ručním přidáním složek, které obsahují média. Změnit velikost @@ -82,7 +82,7 @@ Cesta Neplatná cesta Úprava souboru selhala - File edited successfully + Soubor byl úspěšně upraven Upravit soubor pomocí: Nebyl nalezen žádný editor Neznámé umístění souboru @@ -111,17 +111,17 @@ Prezentace - Interval (vteřin): + Interval (sekund): Zahrnout fotografie Zahrnout videa Zahrnout GIFy Náhodné pořadí Jít opačným směrem Opakovat prezentaci ve smyčce - Animation - None - Fade - Slide + Animace + Žádná + Prolnutí + Posun Prezentace skončila Nebyla nalezena žádná média pro prezentaci @@ -136,11 +136,11 @@ Neseskupovat soubory Složky Data poslední úpravy - Last modified (daily) - Last modified (monthly) + Data poslední úpravy (denně) + Data poslední úpravy (měsíčně) Data pořízení - Date taken (daily) - Date taken (monthly) + Data pořízení (denně) + Data pořízení (měsíčně) Typu souboru Přípony Mějte prosím na paměti, že seskupování a řazení jsou 2 nezávislé hodnoty @@ -169,10 +169,10 @@ 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 - Zobrazit rozšířené vlastnosti přes celoobrazovkové média + 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í ťuknutím na okraj obrazovky + Povolit okamžité přepínání médií klepnutím na okraj obrazovky Povolit hluboké přibližování obrázků Skrýt rozšířené vlastnosti pokud je skrytá stavová lišta Zobrazit některá akční tlačítka ve spodní části obrazovky @@ -188,8 +188,8 @@ Priorita načítání obrázků Rychlost Kompromis - Vyvarovat se zobrazení neplatných souborů - Show image file types + Nezobrazovat neplatné soubory + Zobrazit typ obrázkových souborů Náhledy @@ -198,103 +198,103 @@ Spodní akční tlačítka - Upravit viditelné spodní akční tlačítka + Upravit viditelná spodní akční tlačítka Přepnutí oblíbenosti Přepnutí viditelnosti souboru - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast - Saturation - Clarity + Vlastní + Obnovit + Čtverec + Transformovat + Filtr + Žádný + Doladění + Stíny + Expozice + Světla + Jas + Kontrast + Sytost + Jasnost Gamma - Blacks - Whites - Temperature - Sharpness - Reset - Focus - None - Radial - Linear - Mirrored + Černé + Bílé + Teplota + Ostrost + Obnovit + Zaostření + Žádné + Radiální + Lineární + Zrcadlové Gaussian Text - Text Options - Text Color - Font - Add - Edit - Straighten - Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color + Nastavení textu + Barva textu + Písmo + Přidat + Upravit + Narovnat + Písmo + Barva + Pozadí + Zarovnání + Do popředí + Vymazat + Váš text + Štětec + Barva + Velikost + Tvrdost + Do popředí + Vymazat + Barva štětce Editor - Close Editor? - Do you really want to discard the image? - Yes - No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker - Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid - Pink - Red - Orange - Gold - Yellow - Olive - Green - Aquamarin - Pipettable color + Zavřít editor? + Opravdu chcete zahodit úpravy obrázku? + Ano + Ne + Zrušit + Potvrdit + Uložit + Exportuje se obrázek… + Export obrázku %s. + Překlopit H + Překlopit V + Vrátit + Zopakovat vrácené + Výběr barvy + Průsvitná + Bílá + Šedá + Černá + Světle modrá + Modrá + Fialová + Orchidej + Růžová + Červená + Oranžová + Zlatá + Žlutá + Olivová + Zelená + Akvamarín + Pipetovatelná barva - Jak nastavím Jednoduchou Galerii jako výchozí galerii? + Jak nastavím Jednoduchou galerii jako výchozí galerii? Nejdříve musíte najít v nastavení zařízení, v 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 poté zkusíte otevřít obrázek nebo video, zobrazí se seznam aplikací, kde můžete zvolit Jednoduchou Galerii a nastavit ji jako výchozí. + Pokud poté 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žou se pouze nastavení aplikace, nikoliv soubory. + Můžete to vyriešit 2 způsoby. Můžete aplikaci buď přeinstalovat nebo ji najít v nastavení zařízení a zvolit \"Vymazat data\". Vymažou se pouze nastavení aplikace, nikoliv soubory. Jak mohu dosáhnout, aby bylo dané album stále zobrazeno jako 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 ji připne na vrch. Můžete připnout i více složek, budou seřazeny podle zvoleného řazení. + Můžete označit danou složku dlouhým podržením a zvolit tlačítko s obrázkem připínáčku, to ji připne nahoru. Můžete připnout i více složek, budou seřazeny podle zvoleného řazení. Jak mohu video posunout vpřed? - Můžete toho dosáhnout buď tažením prstu vodorovně přes okno přehrávače nebo ťuknutím na text aktuální či celkové délky videa, které najdete po bocích indikátoru aktuální pozice. To posune video buď zpět nebo vpřed. + Můžete toho dosáhnout buď tažením prstu vodorovně přes okno přehrávače nebo klepnutím na text aktuální či celkové délky videa, který najdete po bocích indikátoru aktuální pozice. To posune video buď zpět nebo vpřed. Jaký je rozdíl mezi Skrytím a Vyloučením složky? - Zatímco vyloučení zamezí zobrazení složky pouze vrámci Jednoduché Galerie, skrytí ji ukryje vrámci celého systému, tedy to ovlivní i ostatní galerie. Skrytí funguje pomocí vytvoření prázdného souboru \".nomedia\" v daném adresáři, který můžete vymazat i libovolným správcem souborů. + Zatímco vyloučení zamezí zobrazení složky pouze vrámci Jednoduché galerie, skrytí ji ukryje v celém systému, tedy to ovlivní i ostatní galerie. Skrytí funguje pomocí vytvoření prázdného souboru \".nomedia\" v daném adresáři, který můžete vymazat i libovolný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 jejich vybráním pomocí dlouhého podržení a zvolením Vyloučit. Pokud na následujícím dialogu zvolíte vyloučení nadřazené složky, pravděpodobně budou vyloučeny i ostatní podobné složky. Složka s fotografiemi se mi nezobrazuje nebo ve složce nevidím všechny soubory. Co s tím? @@ -317,13 +317,13 @@ - Jednoduchá Galerie Pro - Organizér a editor fotografií + Jednoduchá galerie Pro - Organizér fotografií - Browse your memories without any interruptions. + Prohlížejte svoje vzpomínky bez prerušení s touto foto a video galerií. - Jednoduchá Galerie Pro je vysoce přizpůsobitelná offline galerie. Organizujte a upravujte své fotografie, obnovujte smazané fotografie s funkcí odpadkového koše, chraňte je a skrývejte. Prohlížejte množství různých foto a video formátů včetně RAW, SVG a mnoho dalších. + Jednoduchá galerie Pro je vysoce přizpůsobitelná offline galerie. Organizujte a upravujte své fotografie, obnovujte smazané fotografie s funkcí odpadkového koše, chraňte je a skrývejte. Prohlížejte množství různých foto a video formátů včetně RAW, SVG a mnoho dalších. - Aplikace neobsahuje žádné reklamy ani nepotřebná oprávnění. Tím, že ani nevyžaduje připojení k internetu je vaše soukromí maximálně chráněno. + Aplikace neobsahuje žádné reklamy ani nepotřebná oprávnění. Tím, že ani nevyžaduje připojení k internetu, je vaše soukromí maximálně chráněno. ------------------------------------------------- JEDNODUCHÁ GALERIE PRO – FUNKCE @@ -337,7 +337,7 @@ • Otevírejte mnoho rozličných formátů fotografií a videí (RAW, SVG, GIF, panorama, atd) • Množství intuitivních gest pro jednoduchou úpravu a organizaci souborů • Mnoho různých způsobů filtrování, seskupování a řazení souborů - • Změňte si vzhled Jednoduché galerie pro + • Změňte si vzhled Jednoduché galerie Pro • Dostupná ve 32 jazycích • Označte si oblíbené soubory pro rychlý přístup • Chraňte své fotografie a videa pomocí pinu, vzoru nebo otiskem prstu @@ -350,16 +350,16 @@ … a mnoho dalších! EDITOR OBRÁZKŮ - Jednoduchá Galerie Pro umožňuje snadnou úpravu obrázků. Ořezávejte, překlápějte, otáčejte či měňte jejich velikost. Pokud se cítíte kreativně, můžete také aplikovat filtry nebo do obrázku kreslit! + Jednoduchá galerie Pro umožňuje snadnou úpravu obrázků. Ořezávejte, překlápějte, otáčejte či měňte jejich velikost. Pokud se cítíte kreativně, můžete také aplikovat filtry nebo do obrázku kreslit! PODPORA MNOHA TYPŮ SOUBORŮ - Na rozdíl od některých galerií podporuje Jednoduchá Galerie Pro velké množství různých druhů souborů včetně JPEG, PNG, MP4, MKV, RAW, SVG, panoramatických fotografií a videí. + Na rozdíl od některých galerií podporuje Jednoduchá galerie Pro velké množství různých druhů souborů včetně JPEG, PNG, MP4, MKV, RAW, SVG, panoramatických fotografií a videí. Vysoce upravitelný správce galerie - Od vzhledu až po funkční tlačítka na spodní liště, Jednoduchá Galerie Pro je plně nastavitelná a bude fungovat přesně jak si budete přát. Žádná jiná galerie nenabízí takovou flexibilitu! A díky otevřenému kódu je naše aplikace dostupná ve 32 jazycích! + Od vzhledu až po funkční tlačítka na spodní liště, Jednoduchá galerie Pro je plně nastavitelná a bude fungovat přesně jak si budete přát. Žádná jiná galerie nenabízí takovou flexibilitu! A díky otevřenému kódu je naše aplikace dostupná ve 32 jazycích! OBNOVTE SMAZANÉ FOTOGRAFIE A VIDEA - Smazali jste nechtěně důležitou fotografii nebo video? Žádný strach! Jednoduchá Galerie Pro pro podobné případy nabízí funkci odpadkového koše, odkud smazané fotografie a videa snadno obnovíte. + Smazali jste nechtěně důležitou fotografii nebo video? Žádný strach! Jednoduchá galerie Pro pro podobné případy nabízí funkci odpadkového koše, odkud smazané fotografie a videa snadno obnovíte. CHRAŇTE A SKRÝVEJTE SVÉ FOTOGRAFIE A VIDEA Použitím pinu, vzoru nebo otisku prstu snadno své fotografie, videa či celá alba ochráníte nebo skryjete. Můžete ochránit i spuštění samotné aplikace, nebo některé její funkce. Například můžete zabránit náhodnému smazání souboru bez potvrzení otiskem prstu. diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 03cd3e395..a4fc7e372 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Billedhåndtering - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro er et offline-galleri med mange tilpasningsmuligheder. Organiser og rediger dine billeder, gendan slettede filer via papirkurven, beskyt og skjul filer og se adskillige forskellige billed- og videoformater inklusiv RAW, SVG og mange flere. diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index f22771d90..0e04da922 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -33,7 +33,7 @@ Datum erfolgreich korrigiert. Teile eine verkleinerte Version Hey,\n\nes sieht so aus, als hättest du von der alten kostenlosen App geupgraded. Du kannst nun die alte Version deinstallieren, die oben in den App-Einstellungen einen \'Upgrade auf Pro\' Button hat.\n\nEs wird nur der Papierkorb gelöscht, die Markierungen von Favoriten entfernt und die App-Einstellungen zurückgesetzt.\n\nDanke! - Switch to file search across all visible folders + Zur Dateisuche in allen sichtbaren Ordnern wechseln Filter @@ -47,13 +47,13 @@ Filter ändern - Diese Funktion versteckt die ausgewählten Ordner, indem im Dateisystem eine \'.nomedia\'-Datei abgelegt wird. Dadurch werden die ausgewählten Ordner und alle Unterverzeichnisse auch in anderen Apps nicht angezeigt. Solche Ordner werden nur gezeigt, wenn die Einstellung \'Versteckte Elemente anzeigen\' aktiv ist (auch andere Apps bieten üblicherweise eine solche Option).\\nFortfahren? + Diese Funktion versteckt die ausgewählten Ordner, indem im Dateisystem eine \'.nomedia\'-Datei abgelegt wird. Dadurch werden die ausgewählten Ordner und alle Unterverzeichnisse auch in anderen Apps nicht angezeigt. Solche Ordner werden nur gezeigt, wenn die Einstellung \'Versteckte Elemente anzeigen\' aktiv ist (auch andere Apps bieten üblicherweise eine solche Option).\nFortfahren? Ordner ausschließen Ausgeschlossene Ordner Ausgeschlossene Ordner verwalten Diese Funktion blendet die ausgewählten Ordner und deren Unterordner nur in dieser App aus. Ausgeschlossene Ordner können in den Einstellungen verwaltet werden. Möchtest du stattdessen einen höherliegenden Ordner ausschließen? - \'Ordner ausschließen\' wird ausgewählte Ordner und deren Unterordner nur in dieser App ausblenden. Andere Apps werden solche Ordner weiterhin anzeigen.\\n\\nWenn du Ordner auch für andere Apps verstecken willst, verwende dafür die Funktion \'Ordner verstecken\'. + \'Ordner ausschließen\' wird ausgewählte Ordner und deren Unterordner nur in dieser App ausblenden. Andere Apps werden solche Ordner weiterhin anzeigen.\n\nWenn du Ordner auch für andere Apps verstecken willst, verwende dafür die Funktion \'Ordner verstecken\'. Alle entfernen Alle Ordner aus der Liste ausgeblendeter Ordner entfernen? Die Ordner selbst werden nicht gelöscht. Versteckte Ordner @@ -65,7 +65,7 @@ Einbezogene Ordner verwalten Ordner hinzufügen Solltest du weitere Mediendateien haben, die von der App nicht gefunden wurden, kannst du deren Ordner hier manuell hinzufügen. - No media files have been found. You can solve it by adding the folders containing media files manually. + Es konnten keine Mediendateien gefunden werden. Das Problem kann behoben werden, indem die Ordner mit den Mediendateien manuell hinzugefügt werden. Größe ändern @@ -80,13 +80,13 @@ Speichern Drehen Pfad - Ungültiger Dateipfad. - Bildbearbeitung fehlgeschlagen. - File edited successfully + Ungültiger Dateipfad + Bildbearbeitung fehlgeschlagen + Datei erfolgreich bearbeitet Bild bearbeiten mit: - Keine Bildeditor-App gefunden. - Unbekannter Dateipfad. - Konnte Quelldatei nicht überschreiben. + Keine Bildeditor-App gefunden + Unbekannter Dateipfad + Konnte Quelldatei nicht überschreiben Nach links drehen Nach rechts drehen Um 180° drehen @@ -119,11 +119,11 @@ Rückwärts abspielen Endlos abspielen Animation - None - Fade - Slide - Diashow beendet. - Keine Medien für Diashow gefunden. + Keine + Verblassen + Schieben + Diashow beendet + Keine Medien für Diashow gefunden Darstellung ändern @@ -136,11 +136,11 @@ Dateien nicht gruppieren Ordner Datum der letzten Änderung - Last modified (daily) - Last modified (monthly) + Zuletzt geändert (täglich) + Zuletzt geändert (monatlich) Aufnahmedatum - Date taken (daily) - Date taken (monthly) + Aufnahmedatum (täglich) + Aufnahmedatum (monatlich) Dateityp (Bilder/Videos) Dateierweiterung Bitte beachte, dass Gruppieren und Sortieren zwei unabhängige Felder sind. @@ -182,14 +182,14 @@ Zeige den Papierkorb als letztes Element auf dem Hauptbildschirm Erlaube das Schließen der Vollbildansicht mit einer Abwärtsgeste Erlaube 1:1 Zoom mit zweimaligem, doppeltem Antippen - Öffne Videos immer auf einem seperaten Bildschirm mit neuen horizontalen Gesten - Show a notch if available + Öffne Videos immer auf einem separaten Bildschirm mit neuen horizontalen Gesten + Zeige eine Notch, wenn vorhanden Rotieren von Bildern mit Gesten zulassen Priorität beim Laden von Dateien Geschwindigkeit Kompromiss Das Anzeigen von ungültigen Dateien vermeiden - Show image file types + Bilddateitypen anzeigen Thumbnails @@ -203,85 +203,85 @@ Schaltet die Sichtbarkeit von Dateien um - Custom - Reset - Square - Transform + Benutzerdefiniert + Zurücksetzen + Quadrat + Umwandeln Filter - None - Adjust - Shadows - Exposure + Kein + Anpassen + Schatten + Belichtung Highlights - Brightness - Contrast - Saturation - Clarity + Helligkeit + Kontrast + Sättigung + Struktur Gamma - Blacks - Whites - Temperature - Sharpness - Reset - Focus - None + Schwarz + Weiß + Temperatur + Schärfe + Zurücksetzen + Fokus + Kein Radial Linear - Mirrored - Gaussian + Gespiegelt + Gaußsch Text - Text Options - Text Color - Font - Add - Edit - Straighten - Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color + Textoptionen + Textfarbe + Schriftart + Hinzufügen + Bearbeiten + Begradigen + Schrift + Farbe + Hintergrund + Ausrichtung + Nach Vorne + Löschen + Dein Text + Pinsel + Farbe + Größe + Stärke + Nach Vorne + Löschen + Pinselfarbe Editor - Close Editor? - Do you really want to discard the image? - Yes - No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker + Editor schließen? + Möchtest du das Bild wirklich verwerfen? + Ja + Nein + Abbrechen + Akzeptieren + Speichern + Bild wird exportiert… + Bild %s wird exportiert. + H spiegeln + V spiegeln + Rückgängig + Wiederholen + Farbauswahl Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid + Weiß + Grau + Schwarz + Hellblau + Blau + Violett + Orchidee Pink - Red + Rot Orange Gold - Yellow + Geld Olive - Green + Grün Aquamarin - Pipettable color + Pipettierbare Farbe Wie kann ich Schlichte Galerie als Standardanwendung auswählen? @@ -318,7 +318,7 @@ Schlichte Galerie Pro - Foto Manager & Editor - Browse your memories without any interruptions. + Bewahre deine Andenken ohne Unterbrechungen mit dieser Foto- und Videogalerie Schlichte Galerie Pro ist eine stark individualisierbare Offline Galerie. Ordne & bearbeite deine Fotos, stelle gelöschte Fotos mit Hilfe des Papierkorbs wieder her, schütze & verstecke Dateien und zeige eine Vielzahl von Bilder- & Videoformaten an, unter anderem RAW, SVG und viele mehr. diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index c75db686e..aa1793702 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -320,7 +320,7 @@ ΑΠΛΗ ΣΥΛΛΟΓΗ Pro - Διαχείριση & Επεξεργασία - Ξεφυλλίστε τις αναμνήσεις σας χωρίς διακοπές. + Περιηγηθείτε στις αναμνήσεις σας χωρίς διακοπές με αυτήν τη συλλογή φωτό & βίντεο Η Απλή Συλλογή Pro είναι χωρίς σύνδεση και εξαιρετικά προσαρμόσιμη. Οργανώστε και επεξεργαστείτε τις φωτογραφίες σας, ανακτήσετε διαγραμμένα αρχεία απο τον κάδο ανακύκλωσης, προστατεύσετε και αποκρύψτε αρχεία, προβάλετε πλήθος διαφορετικών φωτογραφιών και μορφών βίντεο, συμπεριλαμβανομένων των RAW, SVG και πολλών άλλων. diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index e1ac72856..f64c4896c 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -53,7 +53,7 @@ Gestionar carpetas excluidas Esto excluirá la selección junto con sus subcarpetas, solamente de Simple Gallery. Puede gestionar las carpetas excluidas en los Ajustes. ¿Excluir mejor la carpeta superior? - Excluir las carpetas las excluirá junto a sus subcarpetas sólo en Simple Gallery, estas seguirán siendo visibles en otras aplicaciones.\\n\\nSi desea ocultarlo de otras aplicaciones, utilice la función de \"Ocultar\". + Excluir las carpetas las excluirá junto a sus subcarpetas sólo en Simple Gallery, estas seguirán siendo visibles en otras aplicaciones.\n\nSi desea ocultarlo de otras aplicaciones, utilice la función de \"Ocultar\". Eliminar todo ¿Eliminar todas las carpetas de la lista de excluidas? Esto no borrará las carpetas. Carpetas ocultas @@ -203,85 +203,85 @@ Alternar visibilidad de archivo - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast - Saturation - Clarity - Gamma - Blacks - Whites - Temperature - Sharpness - Reset - Focus - None + Personalizado + Reiniciar + Cuadrado + Recortar + Filtros + Ninguno + Ajustes + Sombras + Exposición + Luces + Brillo + Contraste + Saturación + Claridad + Colores + Negros + Blancos + Temperatura + Nitidez + Reiniciar + Enfoque + Ninguno Radial - Linear - Mirrored - Gaussian - Text - Text Options - Text Color - Font - Add - Edit - Straighten - Font + Lineal + Reflejado + Gaussiano + Texto + Opciones de texto + Color de texto + Fuente + Añadir + Editar + Enderezar + Fuente Color - BG Color - Alignment - To Front - Delete - Your text - Brush + Color de fondo + Alineación + Traer al frente + Eliminar + Tu texto + Pincel Color - Size - Hardness - To Front - Delete - Brush Color + Tamaño + Dureza + Traer al frente + Eliminar + Color del pincel Editor - Close Editor? - Do you really want to discard the image? - Yes + ¿Cerrar editor? + ¿Realmente quieres descartar la imagen? + No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker - Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid - Pink - Red - Orange - Gold - Yellow - Olive - Green - Aquamarin - Pipettable color + Cancelar + Aceptar + Guardar + Exportando imagen… + Exportando imagen %s. + Girar Hor + Girar Vert + Deshacer + Rehacer + Cuentagotas + Transparente + Blanco + Gris + Negro + Azul claro + Azul + Púrpura + Orquídea + Rosa + Rojo + Naranja + Dorado + Amarillo + Oliva + Verde + Aguamarina + Color pipetable ¿Cómo puedo hacer que Simple Gallery sea la galería de dispositivos predeterminada? @@ -319,7 +319,7 @@ Simple Gallery Pro - Gestor y editor de fotos - Explore sus recuerdos sin interrupciones. + Explore sus recuerdos sin interrupciones con esta galeria de foto y vídeo Simple Gallery Pro es una galería altamente personalizable disponible sin conexión. Organiza y edita tus fotos, recupera archivos eliminados con la papelera de reciclaje, protege y oculta archivos y mira una gran variedad de diferentes formatos de fotos y videos incluyendo RAW, SVG y muchos más. diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 3a4f6ffdf..ec6c7a99e 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 07308d101..2f372892e 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -29,10 +29,10 @@ Forcer la vue paysage Utiliser l\'orientation par défaut Corriger les dates de prise de vue - Correction en cours... + Correction en cours… Dates corrigées Partager une version redimensionnée - Hey,\n\nseems like you upgraded from the old free app. You can now uninstall the old version, which has an \'Upgrade to Pro\' button at the top of the app settings.\n\nYou will only have the Recycle bin items deleted, favorite items unmarked and you will also have to reset your app settings.\n\nThanks! + Hé,\n\nvous avez apparemment fait une mise à niveau à partir de l\'ancienne application gratuite. Vous pouvez maintenant désinstaller l\'ancienne version avec le bouton \'Mettre à niveau vers Pro\' en haut des paramètres de l\'application.\n\nVos éléments de la corbeille seront supprimés, les éléments favoris seront non marqués et vous devrez également restaurer les paramètres de votre application.\n\nMerci ! Basculer vers la recherche de fichiers @@ -58,7 +58,7 @@ Supprimer tous les dossiers de la liste des exclusions ? Cela n\'effacera pas les dossiers. Dossiers cachés Gérer les dossiers cachés - Il semblerait que vous n\'ayez pas de dossier cachés avec un fichier \".nomedia\". + Il semblerait que vous n\'ayez pas de dossier caché avec un fichier \".nomedia\". Dossiers ajoutés @@ -81,9 +81,9 @@ Pivoter Emplacement Emplacement invalide - Échec de l\'édition de l\'image - File edited successfully - Modifier l\'image avec : + L\'édition de l\'image a échoué + L\'image a été éditée avec succès + Modifier l\'image avec: Aucun éditeur d\'image trouvé Emplacement du fichier inconnu Impossible de remplacer le fichier source @@ -100,8 +100,8 @@ Fond d\'écran simple Définir comme fond d\'écran Échec de la définition en tant que fond d\'écran - Définir comme fond d\'écran avec : - Définition du fond d\'écran en cours... + Définir comme fond d\'écran avec: + Définition du fond d\'écran en cours… Fond d\'écran défini Rapport d\'affichage portrait Rapport d\'affichage paysage @@ -111,7 +111,7 @@ Diaporama - Intervalle (secondes) : + Intervalle (secondes): Inclure les images Inclure les vidéos Inclure les GIFs @@ -146,7 +146,7 @@ \'Grouper par\' et \'Trier par\' sont 2 modes indépendants - Dossier affiché sur le widget : + Dossier affiché sur le widget: Afficher le nom du dossier @@ -188,7 +188,7 @@ Priorité de chargement des fichiers Rapide Compromis - Eviter l\'affichage de fichiers invalides + Éviter l\'affichage de fichiers invalides Afficher les types d\'image @@ -203,85 +203,85 @@ Visibilité du fichier - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast + Libre + Réinitialiser + Carré + Transformer + Filtres + Aucun + Ajuster + Ombres + Exposition + Détails + Luminosité + Contraste Saturation - Clarity + Clarté Gamma - Blacks - Whites - Temperature - Sharpness - Reset + Noirs + Blancs + Température + Netteté + Réinitialiser Focus - None + Aucun Radial - Linear - Mirrored - Gaussian - Text - Text Options - Text Color - Font - Add - Edit - Straighten - Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color - Editor - Close Editor? - Do you really want to discard the image? - Yes - No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker + Linéaire + Miroir + Gaussien + Texte + Options du texte + Couleur du texte + Police + Ajouter + Éditer + Redresser + Police + Couleur + Fond + Alignement + Devant + Supprimer + Votre texte + Pinceau + Couleur + Taille + Contour + Devant + Supprimer + Couleur du pinceau + Éditeur + Fermer l\'éditeur ? + Voulez-vous vraiment annuler l\'édition ? + Oui + Non + Annuler + Accepter + Enregistrer + Exportation de l\'image… + Exportation de l\'image %s + Symétrie H + Symétrie V + Annuler + Refaire + Sélecteur de couleur Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid - Pink - Red + Blanc + Gris + Noir + Bleu clair + Bleu + Violet + Orchidée + Rose + Rouge Orange - Gold - Yellow + Or + Jaune Olive - Green + Vert Aquamarin - Pipettable color + Couleur de la pipette Comment faire de Simple Gallery ma galerie par défaut ? @@ -317,7 +317,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index fa073d954..dc9b48aa7 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index f219ee7c4..ebb3c745c 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 3fc07f5b3..b052836be 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -1,327 +1,329 @@ - Simple Gallery - Galéria - Szerkesztés - Kamera megnyitása - (rejtett) - (kizárva) - Mappa kitűzés - Mappa kitűzés megszüntetése - Kitűzés felülre - Mutassa az összes mappa tartalmát - Összes mappa - Váltás mappa nézetre - Egyéb mappa - Mutassa a térképen - Ismeretlen helyszín - Növelje az oszlopok számát - Csökkentse az oszlopok számát - Borítókép változtatása - Válasszon fotót - Alapértelmezett használata - Hangerő - Fényerő - Tájolás zárolása - Tájolás feloldása - Tájolás változtatása - Álló mód kényszerítése - Fekvő mód kényszerítése - Alapértelmezett tájolás használata - Dátum javítása - Javítás… - Sikeres dátum javítás - Átméretezett verzió megosztása - Hey,\n\nseems like you upgraded from the old free app. You can now uninstall the old version, which has an \'Upgrade to Pro\' button at the top of the app settings.\n\nYou will only have the Recycle bin items deleted, favorite items unmarked and you will also have to reset your app settings.\n\nThanks! - Switch to file search across all visible folders - - - Média szűrő - Kép - Videó - GIF - RAW kép - SVG - Portraits - A kiválasztott szűrők nem találtak médiafájlokat. - Szűrők változtatása - - - Ez a funkció elrejti a mappát egy \'.nomedia\' fájl hozzáadásával, és elrejti az almappákat is. Láthatóvá teheti ezeket a Beállítások \"Mutassa a rejtett elemeket\" menüpontban. Folytatja? - Kizárás - Kizárt mappák - Kizárt mappák kezelése - Ez kizárja a kijelölést és az alkönyvtárakat a Simple Gallery alkalmazásból. A kizárt mappákat a Beállításokban kezelheti. - Kizárja a szülő mappát? - A mappák kizárásával az almappákkal együtt elrejti a Simple Gallery alkalmazásban, de továbbra is láthatóak maradnak más alkalmazásokban.\n\nHa el szeretné rejteni őket más alkalmazásokban is, használja az Elrejtés funkciót. - Összes eltávolítása - Összes mappa eltávolítása a Kizárás listából. Ez nem törli a mappákat. - Rejtett mappák - Rejtett mappák kezelése - Úgy tűnik, a mappái nincsenek elrejtve egy \".nomedia\" fájllal. - - - Befoglalt mappák - Befoglalt mappák kezelése - Mappa hozzáadása - Ha vannak olyan mappák, amelyek média fájlokat tartalmaznak, de az alkalmazás nem ismerte fel, akkor kézzel is hozzáadhatja ezeket.\n\nAz elemek hozzáadása nem zár ki más mappákat. - Nem talált médiafájlokat. Ezt megoldhatja a médiafájlokat tartalmazó mappák manuális hozzáadásával. - - - Átméretezés - Kiválasztás átméretezése és mentés - Szélesség - Magasság - Képarány megtartása - Írjon be érvényes felbontást - - - Szerkesztő - Mentés - Forgatás - Elérési útvonal - Érvénytelen kép elérési útvonal - Sikertelen kép szerkesztés - File edited successfully - Kép szerkesztés ezzel: - Nem található kép szerkesztő - Ismeretlen fájl hely - Nem lehet felülírni a forrás fájlt - Forgatás balra - Forgatás jobbra - 180º-os forgatás - Tükrözés - Tükrözés vízszintesen - Tükrözés függőlegesen - Kötetlen - Egyéb - - - - Simple Wallpaper - Beállítás háttérképként - Nem sikerült a beállítás háttérképként - Beállítás háttérképként ezzel: - Beállítás háttérképként… - Sikeresen beállítva háttérképnek - Álló képarány - Fekvő képarány - Kezdő képernyő - Zárolás képernyő - Kezdő és zárolás képernyő - - - Diavetítés - Időköz (másodperc): - Fotók befoglalása - Videók befoglalása - GIF befoglalása - Véletlen sorrend - Áthelyezés hátra - Diavetítés ismétlése - Animáció - Nincs - Áttűnés - Csúsztatás - A diavetítés vége - A diavetítéshez nem található média - - - Nézet típus változtatása - Rács - Lista - Közvetlen almappa csoport - - - Csoportosítás - Nincs csoportosítás - Mappa - Utolsó módosítás - Utoljára módosítva (naponta) - Utoljára módosítva (havonta) - Dátum - Felvétel dátuma (naponta) - Felvétel dátuma (havonta) - Fájl típus - Kiterjesztés - Kérjük, vegye figyelembe, hogy a csoportosítás és a rendezés 2 egymástól független mező - - - Mappa mutatása a widgeten: - Mutassa a mappa nevét - - - Automatikus videó lejátszás - Emlékezzen a videó utolsó lejátszási pozícióra - Fájlnév láthatóság módosítása - Videók ismétlése - 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 - Képarány - Fekete háttérszín teljes képernyős médiánál - Miniatűrök görgetése vízszintesen - Automatikusan elrejti a rendszer UI-t teljes képernyőn - 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 a fájlok számát a mappákban - Mutassa a kiterjesztett adatokat a teljes képernyős médián keresztül - Bővített részletek kezelése - Engedélyezi az egy ujjas nagyítást a teljes képernyős médiában - Engedélyezi a azonnali média váltást a képernyő oldalára kattintva - Engedélyezi a képek mély nagyítását - Bővített részletek elrejtése az állapotsor rejtett állapotában - Mutassa a művelet gombokat a képernyő alján - Mutassa a Lomtárat a mappák képernyőjén - Mély nagyítású képek - Mutassa a képeket a lehető legjobb minőségben - Mutassa a Lomtárat a fő képernyő utolsó elemeként - Engedélyezi a teljes képernyős nézetet a lefelé mozdulattal - Engedélyezi az 1:1 nagyítást két dupla érintéssel - Mindig külön képernyőn nyissa meg a videókat új vízszintes mozdulattal - Notch mutatása, ha elérhető - Engedélyezi a kép forgatását gesztusokkal - Fájl betöltés prioritása - Gyors - Kiegyensúlyozott - Kerülje az érvénytelen fájlok mutatását - Show image file types - - - Miniatűrök - Teljes képernyős média - Bővített részletek - Gomb műveletek - - - Látható gomb műveletek kezelése - Kedvencek módosítása - Fájl láthatóság módosítása - - - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast - Saturation - Clarity - Gamma - Blacks - Whites - Temperature - Sharpness - Reset - Focus - None - Radial - Linear - Mirrored - Gaussian - Text - Text Options - Text Color - Font - Add - Edit - Straighten - Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color - Editor - Close Editor? - Do you really want to discard the image? - Yes - No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker - Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid - Pink - Red - Orange - Gold - Yellow - Olive - Green - Aquamarin - Pipettable color - - - Hogyan tudom beállítani a Simple Gallery-t alapértelmezett galériának? - Először meg kell találnia az alapértelmezett galériát az eszköz beállításainak Alkalmazások részében. Keressen egy olyan gombot, amely valami olyasmit, mint az \"Legyen alapértelmezett\", kattintson rá, majd válassza a \"Alapértelmezések törlése\" pontot. + Simple Gallery + Galéria + Szerkesztés + Kamera megnyitása + (rejtett) + (kizárva) + Mappa kitűzés + Mappa kitűzés megszüntetése + Kitűzés felülre + Mutassa az összes mappa tartalmát + Összes mappa + Váltás mappa nézetre + Egyéb mappa + Mutassa a térképen + Ismeretlen helyszín + Növelje az oszlopok számát + Csökkentse az oszlopok számát + Borítókép változtatása + Válasszon fotót + Alapértelmezett használata + Hangerő + Fényerő + Tájolás zárolása + Tájolás feloldása + Tájolás változtatása + Álló mód kényszerítése + Fekvő mód kényszerítése + Alapértelmezett tájolás használata + Dátum javítása + Javítás... + Sikeres dátum javítás + Átméretezett verzió megosztása + Hey,\n\nseems like you upgraded from the old free app. You can now uninstall the old version, which has an \'Upgrade to Pro\' button at the top of the app settings.\n\nYou will only have the Recycle bin items deleted, favorite items unmarked and you will also have to reset your app settings.\n\nThanks! + Váltás a fájlkeresésre az összes látható mappában + + + Média szűrő + Kép + Videó + GIF + RAW kép + SVG + Portraits + A kiválasztott szűrők nem találtak médiafájlokat. + Szűrők változtatása + + + Ez a funkció elrejti a mappát egy \'.nomedia\' fájl hozzáadásával, és elrejti az almappákat is. Láthatóvá teheti ezeket a Beállítások \"Mutassa a rejtett elemeket\" menüpontban. Folytatja? + Kizárás + Kizárt mappák + Kizárt mappák kezelése + Ez kizárja a kijelölést és az alkönyvtárakat a Simple Gallery alkalmazásból. A kizárt mappákat a Beállításokban kezelheti. + Kizárja a szülő mappát? + A mappák kizárásával az almappákkal együtt elrejti a Simple Gallery alkalmazásban, de továbbra is láthatóak maradnak más alkalmazásokban.\n\nHa el szeretné rejteni őket más alkalmazásokban is, használja az Elrejtés funkciót. + Összes eltávolítása + Összes mappa eltávolítása a Kizárás listából. Ez nem törli a mappákat. + Rejtett mappák + Rejtett mappák kezelése + Úgy tűnik, a mappái nincsenek elrejtve egy \".nomedia\" fájllal. + + + Befoglalt mappák + Befoglalt mappák kezelése + Mappa hozzáadása + Ha vannak olyan mappák, amelyek média fájlokat tartalmaznak, de az alkalmazás nem ismerte fel, akkor kézzel is hozzáadhatja ezeket.\n\nAz elemek hozzáadása nem zár ki más mappákat. + Nem talált médiafájlokat. Ezt megoldhatja a médiafájlokat tartalmazó mappák manuális hozzáadásával. + + + Átméretezés + Kiválasztás átméretezése és mentés + Szélesség + Magasság + Képarány megtartása + Írjon be érvényes felbontást + + + Szerkesztő + Mentés + Forgatás + Elérési útvonal + Érvénytelen kép elérési útvonal + Sikertelen kép szerkesztés + A fájl szerkesztése sikerült + Kép szerkesztés ezzel: + Nem található kép szerkesztő + Ismeretlen fájl hely + Nem lehet felülírni a forrás fájlt + Forgatás balra + Forgatás jobbra + 180º-os forgatás + Tükrözés + Tükrözés vízszintesen + Tükrözés függőlegesen + Szabad + + + Egyéb + + + + Simple Wallpaper + Beállítás háttérképként + Nem sikerült a beállítás háttérképként + Beállítás háttérképként ezzel: + Beállítás háttérképként... + Sikeresen beállítva háttérképnek + Álló képarány + Fekvő képarány + Kezdő képernyő + Zárolás képernyő + Kezdő és zárolás képernyő + + + Diavetítés + Időköz (másodperc): + Fotók befoglalása + Videók befoglalása + GIF befoglalása + Véletlen sorrend + Áthelyezés hátra + Diavetítés ismétlése + Animáció + Nincs + Áttűnés + Csúsztatás + A diavetítés vége + A diavetítéshez nem található média + + + Nézet típus változtatása + Rács + Lista + Közvetlen almappa csoport + + + Csoportosítás + Nincs csoportosítás + Mappa + Utolsó módosítás + Utoljára módosítva (naponta) + Utoljára módosítva (havonta) + Dátum + Felvétel dátuma (naponta) + Felvétel dátuma (havonta) + Fájl típus + Kiterjesztés + Kérjük, vegye figyelembe, hogy a csoportosítás és a rendezés 2 egymástól független mező + + + Mappa mutatása a widgeten: + Mutassa a mappa nevét + + + Automatikus videó lejátszás + Emlékezzen a videó utolsó lejátszási pozícióra + Fájlnév láthatóság módosítása + Videók ismétlése + 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 + Képarány + Fekete háttérszín teljes képernyős médiánál + Miniatűrök görgetése vízszintesen + Automatikusan elrejti a rendszer UI-t teljes képernyőn + 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 a fájlok számát a mappákban + Mutassa a kiterjesztett adatokat a teljes képernyős médián keresztül + Bővített részletek kezelése + Engedélyezi az egy ujjas nagyítást a teljes képernyős médiában + Engedélyezi a azonnali média váltást a képernyő oldalára kattintva + Engedélyezi a képek mély nagyítását + Bővített részletek elrejtése az állapotsor rejtett állapotában + Mutassa a művelet gombokat a képernyő alján + Mutassa a Lomtárat a mappák képernyőjén + Mély nagyítású képek + Mutassa a képeket a lehető legjobb minőségben + Mutassa a Lomtárat a fő képernyő utolsó elemeként + Engedélyezi a teljes képernyős nézetet a lefelé mozdulattal + Engedélyezi az 1:1 nagyítást két dupla érintéssel + Mindig külön képernyőn nyissa meg a videókat új vízszintes mozdulattal + Notch mutatása, ha elérhető + Engedélyezi a kép forgatását gesztusokkal + Fájl betöltés prioritása + Gyors + Kiegyensúlyozott + Kerülje az érvénytelen fájlok mutatását + Mutassa a kép fájl típusokat + + + Miniatűrök + Teljes képernyős média + Bővített részletek + Gomb műveletek + + + Látható gomb műveletek kezelése + Kedvencek módosítása + Fájl láthatóság módosítása + + + Egyéni + Alaphelyzetbe + Square + Transform + Szűrő + Nincs + Beállít + Árnyékok + Exposure + Highlights + Fényesség + Kontraszt + Színtelítettség + Világosság + Gamma + Blacks + Whites + Színhőmérséklet + Élesség + Alaphelyzetbe + Fókusz + Nincs + Radial + Linear + Tükrözött + Gaussian + Szöveg + Szöveg beállítások + Szöveg színe + Betűtípus + Hozzáadás + Szerkesztés + Straighten + Betűtípus + Szín + Háttérszín + Igazítás + Előre + Törlés + Saját szöveg + Ecset + Szín + Méret + Keménység + Előre + Törlés + Ecset színe + Szerkesztő + Bezárja a szerkesztőt? + Valóban el akarja dobni a képet? + Igen + Nem + Mégsem + Elfogad + Mentés + Kép exportálása... + %s kép exportálása + Tükrözés vízszintesen + Tükrözés függőlegesen + Visszavonás + Visszavom + Színválasztó + Áttetsző + Fehér + Szürke + Fekete + Világoskék + Kék + Bíbor + Orchidea + Rózsaszín + Piros + Narancssárga + Arany + Sárga + Oliva + Zöld + Aquamarin + Pipetta szín + + + Hogyan tudom beállítani a Simple Gallery-t alapértelmezett galériának? + Először meg kell találnia az alapértelmezett galériát az eszköz beállításainak Alkalmazások részében. Keressen egy olyan gombot, amely valami olyasmit, mint az \"Legyen alapértelmezett\", kattintson rá, majd válassza a \"Alapértelmezések törlése\" pontot. A következő alkalommal, amikor megpróbál megnyitni egy képet vagy videót, megjelenik egy alkalmazásválasztó, ahol kiválaszthatja a Simple Gallery lehetőséget, és beállíthatja alapértelmezett alkalmazásnak. - Zároltam az alkalmazást jelszóval, de elfelejtettem. Mit tehetek? - 2 módon is megoldhatja. Újratelepítheti az alkalmazást, vagy megkeresi az alkalmazást az eszköz beállításai között, és válassza az \"Adatok törlése\" lehetőséget. Minden beállítást visszaállít alapértelmezettre. Ez nem távolítja el a média fájlokat. - Hogyan állíthatok be egy albumot úgy, hogy mindig felül legyen? - Hosszan nyomja meg a kívánt albumot, és válassza ki a Kitűzés ikont a művelet menüben, ami rögzíti felülre. Többféle mappát is kitűzhet, ezeket az elemeket az alapértelmezett rendezési mód szerint rendezi. - Hogyan tudom előre tekerni a videókat? - Húzhatja az ujját vízszintesen a videolejátszón, vagy kattintson az aktuális vagy a max. időtartam szövegekre a keresősáv közelében. Ez visszafelé vagy előre mozgatja a videót. - Mi a különbség a mappa elrejtése és kizárása között? - A Kizárás megakadályozza, hogy a mappát a Simple Gallery megjelenítse, az Elrejtés pedig rendszer szinten működik, és elrejti a mappát más galériákból is. Úgy működik, hogy létrehoz egy üres \". nomedia\" nevű fájlt az adott mappában, amelyet bármikor eltávolíthat bármilyen fájlkezelővel is. - Miért jelennek meg a zenei borítóval vagy matricával rendelkező mappák? - Lehet, hogy látni fog néhány szokatlan album megjelenést. Könnyen kizárhatja a hosszú megnyomással és a Kizárás kiválasztásával. A következő párbeszédablakban kiválaszthatja a szülő mappát, és valószínűleg megakadályozza, hogy a többi kapcsolódó album is megjelenjen. - A képekkel nem rendelkező mappa nem jelenik meg, vagy nem jeleníti meg az összes elemet. Mit tehetek? - Ennek több oka lehet, de megoldása egyszerű. Menjen a Beállítások -> Befoglalt mappák kezelése lehetőségre, válassza a plusz jelet, és keresse meg a kívánt mappát. - Mi van, ha csak néhány különleges mappát szeretnék látni? - A Befoglalt mappákhoz tartozó mappák hozzáadása nem zár ki automatikusan semmit. Amit tehetünk, menjünk a Beállítások -> Kizárt mappák kezelése, kizárjuk a gyökérmappát \"/ \", utána hozzáadjuk a kívánt mappákat a Beállítások -> Befoglalt mappák kezelése menüpontban. + Zároltam az alkalmazást jelszóval, de elfelejtettem. Mit tehetek? + 2 módon is megoldhatja. Újratelepítheti az alkalmazást, vagy megkeresi az alkalmazást az eszköz beállításai között, és válassza az \"Adatok törlése\" lehetőséget. Minden beállítást visszaállít alapértelmezettre. Ez nem távolítja el a média fájlokat. + Hogyan állíthatok be egy albumot úgy, hogy mindig felül legyen? + Hosszan nyomja meg a kívánt albumot, és válassza ki a Kitűzés ikont a művelet menüben, ami rögzíti felülre. Többféle mappát is kitűzhet, ezeket az elemeket az alapértelmezett rendezési mód szerint rendezi. + Hogyan tudom előre tekerni a videókat? + Húzhatja az ujját vízszintesen a videolejátszón, vagy kattintson az aktuális vagy a max. időtartam szövegekre a keresősáv közelében. Ez visszafelé vagy előre mozgatja a videót. + Mi a különbség a mappa elrejtése és kizárása között? + A Kizárás megakadályozza, hogy a mappát a Simple Gallery megjelenítse, az Elrejtés pedig rendszer szinten működik, és elrejti a mappát más galériákból is. Úgy működik, hogy létrehoz egy üres \". nomedia\" nevű fájlt az adott mappában, amelyet bármikor eltávolíthat bármilyen fájlkezelővel is. + Miért jelennek meg a zenei borítóval vagy matricával rendelkező mappák? + Lehet, hogy látni fog néhány szokatlan album megjelenést. Könnyen kizárhatja a hosszú megnyomással és a Kizárás kiválasztásával. A következő párbeszédablakban kiválaszthatja a szülő mappát, és valószínűleg megakadályozza, hogy a többi kapcsolódó album is megjelenjen. + A képekkel nem rendelkező mappa nem jelenik meg, vagy nem jeleníti meg az összes elemet. Mit tehetek? + Ennek több oka lehet, de megoldása egyszerű. Menjen a Beállítások -> Befoglalt mappák kezelése lehetőségre, válassza a plusz jelet, és keresse meg a kívánt mappát. + Mi van, ha csak néhány különleges mappát szeretnék látni? + A Befoglalt mappákhoz tartozó mappák hozzáadása nem zár ki automatikusan semmit. Amit tehetünk, menjünk a Beállítások -> Kizárt mappák kezelése, kizárjuk a gyökérmappát \"/ \", utána hozzáadjuk a kívánt mappákat a Beállítások -> Befoglalt mappák kezelése menüpontban. Ezzel csak a kiválasztott mappák láthatók, mivel a kizárás és a befoglalás rekurzív. Ha egy mappát hozzáadunk mindkettőhöz, akkor megjelenik. - Tudom vágni a képeket ezzel az alkalmazással? - Igen, megvághatja a képeket a szerkesztőben a kép sarkainak húzásával. A szerkesztőhöz eljuthat egy miniatűr kép hosszú megnyomásával és a Szerkesztés választásával, vagy a Szerkesztés választásával a teljes képernyős nézetben. - Valamilyen módon össze tudom csoportosítani a médiafájl bélyegképeit? - Persze, a miniatűr nézetben használja a \"Csoport\" menüpontot. A fájlokat többféle kritérium alapján csoportosíthatja, beleértve a dátumot is. Ha a \"Mutassa az összes mappa tartalmát\" funkciót választja, akkor mappákba is csoportosíthatja ezeket. - A dátum szerinti rendezés nem működik megfelelően, hogyan tudom megjavítani? - Valószínűleg a fájlok másolásából származik. Ezt a fájl bélyegképének kiválasztásával és a \"Dátum javítása\" lehetőség kiválasztásával oldhatja meg. - Néhány színcsíkot látok a képeken. Hogyan javíthatom a minőséget? - Az esetek többségében a kép megjelenítés jelenlegi megoldása jól működik. Ha még jobb képminőséget szeretne, engedélyezheti a \"Mutassa a képeket a lehető legjobb minőségben\" opcióval az alkalmazás beállításaiban, a \"Mély nagyítású képek\" szakaszban. - Elrejtettem egy fájlt/mappát. Hogyan tudom látni? - A rejtett elemek megtekintéséhez nyomja meg a \"Rejtettek ideiglenes mutatása\" elemet a fő képernyőn, vagy válassza a \"Mutassa a rejtett elemeket\" az alkalmazás beállításaiban. Ha meg akarja szüntetni, csak hosszan nyomja meg, és válassza a \"Elrejtés megszüntetés\" lehetőséget. A mappák elrejtése egy rejtett \". nomedia\" fájl hozzáadásával történik. Ezt a fájlt bármelyik fájlkezelővel is törölheti. - Miért használ az alkalmazás ennyi helyet? - Az alkalmazás gyorsítótára akár a 250 MB-ot is meghaladhatja, és ez gyorsabb megjelenítést biztosít. Ha az alkalmazás még több helyet foglal el, a legvalószínűbb oka, hogy a Lomtárban is van elem. Ezek a fájlok is az alkalmazás méretébe számítanak bele. Törölheti a Lomtárat azzal, hogy megnyitja és törli az összes fájlt vagy az alkalmazás beállításait. A Lomtárban lévő minden fájl 30 nap elteltével automatikusan törlődik. - - - - Simple Gallery Pro - Photo Manager & Editor - - Browse your memories without any interruptions. - + Tudom vágni a képeket ezzel az alkalmazással? + Igen, megvághatja a képeket a szerkesztőben a kép sarkainak húzásával. A szerkesztőhöz eljuthat egy miniatűr kép hosszú megnyomásával és a Szerkesztés választásával, vagy a Szerkesztés választásával a teljes képernyős nézetben. + Valamilyen módon össze tudom csoportosítani a médiafájl bélyegképeit? + Persze, a miniatűr nézetben használja a \"Csoport\" menüpontot. A fájlokat többféle kritérium alapján csoportosíthatja, beleértve a dátumot is. Ha a \"Mutassa az összes mappa tartalmát\" funkciót választja, akkor mappákba is csoportosíthatja ezeket. + A dátum szerinti rendezés nem működik megfelelően, hogyan tudom megjavítani? + Valószínűleg a fájlok másolásából származik. Ezt a fájl bélyegképének kiválasztásával és a \"Dátum javítása\" lehetőség kiválasztásával oldhatja meg. + Néhány színcsíkot látok a képeken. Hogyan javíthatom a minőséget? + Az esetek többségében a kép megjelenítés jelenlegi megoldása jól működik. Ha még jobb képminőséget szeretne, engedélyezheti a \"Mutassa a képeket a lehető legjobb minőségben\" opcióval az alkalmazás beállításaiban, a \"Mély nagyítású képek\" szakaszban. + Elrejtettem egy fájlt/mappát. Hogyan tudom látni? + A rejtett elemek megtekintéséhez nyomja meg a \"Rejtettek ideiglenes mutatása\" elemet a fő képernyőn, vagy válassza a \"Mutassa a rejtett elemeket\" az alkalmazás beállításaiban. Ha meg akarja szüntetni, csak hosszan nyomja meg, és válassza a \"Elrejtés megszüntetés\" lehetőséget. A mappák elrejtése egy rejtett \". nomedia\" fájl hozzáadásával történik. Ezt a fájlt bármelyik fájlkezelővel is törölheti. + Miért használ az alkalmazás ennyi helyet? + Az alkalmazás gyorsítótára akár a 250 MB-ot is meghaladhatja, és ez gyorsabb megjelenítést biztosít. Ha az alkalmazás még több helyet foglal el, a legvalószínűbb oka, hogy a Lomtárban is van elem. Ezek a fájlok is az alkalmazás méretébe számítanak bele. Törölheti a Lomtárat azzal, hogy megnyitja és törli az összes fájlt vagy az alkalmazás beállításait. A Lomtárban lévő minden fájl 30 nap elteltével automatikusan törlődik. + + + + Simple Gallery Pro - Photo Manager & Editor + + Browse your memories without any interruptions with this photo and video gallery + Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. The app contains no ads and unnecessary permissions. As the app doesn’t require internet access either, your privacy is protected. @@ -368,14 +370,16 @@ Ezzel csak a kiválasztott mappák láthatók, mivel a kizárás és a befoglal Nézze meg a Simple Tools csomagot itt: https://www.simplemobiletools.com + A Simple Gallery Pro önálló weboldala: + https://www.simplemobiletools.com/gallery + Facebook: https://www.facebook.com/simplemobiletools Reddit: https://www.reddit.com/r/SimpleMobileTools - - diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 5a1f4ce34..6536c8373 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -203,85 +203,85 @@ Ubah visibilitas berkas - Custom + Bebas Reset - Square - Transform + Persegi + Ukuran Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast - Saturation - Clarity + Tidak ada + Sesuaikan + Bayangan + Eksposur + Sorotan + Kecerahan + Kontras + Saturasi + Perjelas Gamma - Blacks - Whites - Temperature - Sharpness + Hitam + Putih + Suhu + Ketajaman Reset - Focus - None + Fokus + Tidak ada Radial Linear - Mirrored + Cermin Gaussian - Text - Text Options - Text Color + Teks + Opsi Teks + Warna Teks Font - Add + Tambah Edit - Straighten + Luruskan Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color + Warna + Warna BG + Perataan + Ke Depan + Hapus + Ketik teks + Kuas + Warna + Ukuran + Kekerasan + Ke Depan + hapus + Warna Kuas Editor - Close Editor? - Do you really want to discard the image? - Yes - No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker - Transparent - White - Gray - Black - Light blue - Blue - Purple + Tutup Editor? + Buang perubahan pada gambar? + Ya + Tidak + Batal + Terima + Simpan + Mengekspor gambar… + Mengekspor gambar %s. + Balik H + Balik V + Urungkan + Ulangi + Pemilih Warna + Transparan + Putih + Abu-abu + Hitam + Biru cerah + Biru + Ungu Orchid Pink - Red - Orange - Gold - Yellow + Merah + Oranye + Emas + Kuning Olive - Green + Hijau Aquamarin - Pipettable color + Warna pipet Bagaimana cara menjadikan Simple Gallery sebagai aplikasi galeri default? @@ -319,7 +319,7 @@ Simple Gallery Pro - Pengelola & Penyunting Foto - Menampilkan semua kenangan anda tanpa gangguan. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro adalah aplikasi galeri luring yang sangat mudah diubahsuai. Mengelola & menyunting foto anda, memulihkan berkas yang terhapus dari keranjang sampah, melindungi & menyembunyikan berkas, dan menampilkan banyak format foto & video, diantaranya RAW, SVG dan masih banyak lainnya. diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml index 5a1f4ce34..21a731990 100644 --- a/app/src/main/res/values-in/strings.xml +++ b/app/src/main/res/values-in/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Pengelola & Penyunting Foto - Menampilkan semua kenangan anda tanpa gangguan. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro adalah aplikasi galeri luring yang sangat mudah diubahsuai. Mengelola & menyunting foto anda, memulihkan berkas yang terhapus dari keranjang sampah, melindungi & menyembunyikan berkas, dan menampilkan banyak format foto & video, diantaranya RAW, SVG dan masih banyak lainnya. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7f4a943c2..34eb9b92c 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -42,7 +42,7 @@ GIF Immagini RAW SVG - Portraits + Ritratti Nessun file trovato con il filtro selezionato. Cambia filtro @@ -53,7 +53,7 @@ Gestisci le cartelle escluse Questo escluderà la selezione e le relative sottocartelle solo da Semplice Galleria. Si possono gestire le cartelle escluse nelle impostazioni. Vuoi invece escluderne una superiore? - L\'esclusione delle cartelle e delle sottocartelle le renderà nascoste solo in Semplice Galleria, saranno ancora visibili in altre applicazioni.\\n\\nSe si desidera nasconderle anche nelle altre app, usa la funzione Nascondi. + L\'esclusione delle cartelle e delle sottocartelle le renderà nascoste solo in Semplice Galleria, saranno ancora visibili in altre applicazioni.\n\nSe si desidera nasconderle anche nelle altre app, usa la funzione Nascondi. Rimuovi tutte Rimuovere tutte le cartelle dalla lista delle esclusioni? Ciò non eliminerà le cartelle. Cartelle nascoste @@ -203,85 +203,85 @@ Attiva / disattiva la visibilità dei file - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast - Saturation - Clarity + Libera + Reimposta + Quadrato + Trasformazione + Filtro + Nessuno + Regolazione + Ombre + Esposizione + Luci + Luminosità + Contrasto + Saturazione + Chiarezza Gamma - Blacks - Whites - Temperature - Sharpness - Reset - Focus - None - Radial - Linear - Mirrored - Gaussian - Text - Text Options - Text Color - Font - Add - Edit - Straighten - Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color + Neri + Bianchi + Temperatura + Nitidezza + Ripristina + Fuoco + Nessuno + Radiale + Lineare + Speculare + Gaussiano + Testo + Opzioni testo + Colore testo + Carattere + Aggiungi + Modifica + Raddrizza + Carattere + Colore + Colore sfondo + Allineamento + Porta davanti + Elimina + Il tuo testo + Pennello + Colore + Dimensione + Durezza + Porta davanti + Elimina + Colore pennello Editor - Close Editor? - Do you really want to discard the image? - Yes + Chiudere l\'editor? + Vuoi veramente scartare l\'immagine? + No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker - Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid - Pink - Red - Orange - Gold - Yellow - Olive - Green - Aquamarin - Pipettable color + Annulla + Accetta + Salva + Esportazione immagine… + Esportazione immagine %s. + Capovolgi O + Capovolgi V + Annulla + Ripeti + Selettore colore + Trasparente + Bianco + Grigio + Nero + Azzurro + Blu + Viola + Orchidea + Rosa + Rosso + Arancione + Oro + Giallo + Oliva + Verde + Acquamarina + Colore pipettabile Come posso impostare Semplice Galleria come la galleria predefinita del dispositivo? @@ -319,7 +319,7 @@ Semplice Galleria Pro - gestore di foto & editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Semplice Galleria Pro è una galleria offline altamente personalizzabile. Organizza, modifica le tue foto, recupera file con il cestino, progetti e nascondi file e visualizza una grande varietà di formati foto e video, inclusi RAW, SVG e molti altri. diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 780b1244b..f35577c8c 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -32,8 +32,8 @@ 修正中… 撮影日が正常に修正されました リサイズした画像を共有 - Hey,\n\nseems like you upgraded from the old free app. You can now uninstall the old version, which has an \'Upgrade to Pro\' button at the top of the app settings.\n\nYou will only have the Recycle bin items deleted, favorite items unmarked and you will also have to reset your app settings.\n\nThanks! - Switch to file search across all visible folders + あなたは無料版からアップグレードしたと思われます。\"Upgrade to Pro\"というボタンが設定の上部にある無料版はアンインストールすることができます。\n\nごみ箱の中身は削除され、お気に入りもアプリの設定もリセットされることになります。\n\nありがとう! + 表示されているすべてのフォルダで検索 に切り替え 表示する形式 @@ -42,7 +42,7 @@ GIF RAW SVG - Portraits + ポートレイト 条件に該当するメディアがありません。 絞り込み条件を変更 @@ -53,7 +53,7 @@ 除外フォルダの管理 選択したフォルダとそのサブフォルダを、Simple Galleyの一覧から除外します。除外したフォルダは「設定」で確認できます。 親フォルダを選択して除外することもできます。 - フォルダを除外すると、サブフォルダも含めSimple Galleyの一覧から除外します。他のアプリでは引き続き表示されます。\\n\\n他のアプリでも非表示にしたい場合は、「非表示」機能を使用してください。 + フォルダを除外すると、サブフォルダも含めSimple Galleyの一覧から除外します。他のアプリでは引き続き表示されます。\n\n他のアプリでも非表示にしたい場合は、「非表示」機能を使用してください。 すべて解除 除外するフォルダの登録をすべて解除しますか? フォルダ自体は削除されません。 非表示フォルダ @@ -82,7 +82,7 @@ パス 無効な画像パス 画像の編集に失敗しました - File edited successfully + ファイルの編集に成功しました 画像を編集: 画像エディターが見つかりません ファイルの場所が不明です @@ -180,11 +180,11 @@ 画像のズームを深くする 可能な限り高品質で画像を表示 ごみ箱をメイン画面の最後に表示 - Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + フルスクリーン表示を下にスワイプするジェスチャーで閉じる + ダブルタップして 1:1 ズームする Always open videos on a separate screen with new horizontal gestures Show a notch if available - Allow rotating images with gestures + ジェスチャーで画像を回転する File loading priority Speed Compromise @@ -203,69 +203,69 @@ 表示/非表示の切替 - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast - Saturation - Clarity - Gamma - Blacks - Whites - Temperature - Sharpness - Reset - Focus - None - Radial - Linear - Mirrored - Gaussian - Text - Text Options - Text Color - Font - Add - Edit - Straighten - Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color - Editor - Close Editor? - Do you really want to discard the image? - Yes - No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker - Transparent + カスタム + リセット + 正方形 + 変形 + フィルター + なし + 調整 + シャドウ + 露出 + ハイライト + 明るさ + コントラスト + 彩度 + 明瞭度 + ガンマ + 黒レベル + 白レベル + 色温度 + シャープネス + リセット + ぼかし + なし + 円形 + 直線 + ミラー + ガウス + テキスト + テキスト オプション + 文字色 + フォント + 追加 + 編集 + まっすぐにする + フォント + + 背景色 + 配置 + 前面に + 削除 + テキストを入力 + ブラシ + + 太さ + 硬度 + 前面に + 削除 + ブラシの色 + エディター + エディターを閉じますか? + 画像を破棄して閉じますか? + はい + いいえ + キャンセル + 了解 + 保存 + 画像を保存中…… + 画像を保存中 %s. + 水平方向に反転 + 垂直方向に反転 + 元に戻す + やり直し + カラーピッカー + 透明 White Gray Black @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. @@ -366,6 +366,9 @@ Check out the full suite of Simple Tools here: https://www.simplemobiletools.com + + Standalone website of Simple Gallery Pro: + https://www.simplemobiletools.com/gallery Facebook: https://www.facebook.com/simplemobiletools diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 1aae7ab77..bf2c14a64 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 568060164..7a8138d85 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 85b68bb6c..e0172c233 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/app/src/main/res/values-ne/strings.xml b/app/src/main/res/values-ne/strings.xml new file mode 100644 index 000000000..68e3e162f --- /dev/null +++ b/app/src/main/res/values-ne/strings.xml @@ -0,0 +1,384 @@ + + + सजिलो ग्यालरी + ग्यालरी + सम्पादन + क्यामेरा खोल्नुहोस + (लुकेको) + (excluded) + फोल्डरलाई पिन गर्नुहोस + फोल्डरलाई पिन गर्नुहोस + सबैभन्दा माथि पिन गर्नुहोस + फोल्डरको सबै बिषयबस्तु देखाउनुहोस + सबै फोल्डरहरु + फोल्डर भ्यू + अन्य फोल्डर + नक्सामा देखाउनुहोस + थाहानभएको ठाउ + कोलम सङ्खा बढाउनुहोस + कोलम सङ्खा घटाउनुहोस + कभर तस्बिर परिवर्तन गर्नुहोस + फोटो चयन गर्नुहोस + डिफल्ट प्रयोग गर्नुहोस + भोलुम + उज्यालोपन + Lock orientation + Unlock orientation + Change orientation + Force portrait + Force landscape + Use default orientation + Fix Date Taken value + Fixing… + Dates fixed successfully + Share a resized version + Hey,\n\nseems like you upgraded from the old free app. You can now uninstall the old version, which has an \'Upgrade to Pro\' button at the top of the app settings.\n\nYou will only have the Recycle bin items deleted, favorite items unmarked and you will also have to reset your app settings.\n\nThanks! + Switch to file search across all visible folders + + + Filter media + तस्बिरहरु + भिडियोहरु + GIFs + RAW ईमेजहरु + SVGs + Portraits + No media files have been found with the selected filters. + Change filters + + + This function hides the folder by adding a \'.nomedia\' file into it, it will hide all subfolders too. You can see them by toggling the \'Show hidden items\' option in Settings. Continue? + Exclude + Excluded folders + Manage excluded folders + This will exclude the selection together with its subfolders from Simple Gallery only. You can manage excluded folders in Settings. + Exclude a parent instead? + Excluding folders will make them together with their subfolders hidden just in Simple Gallery, they will still be visible in other applications.\n\nIf you want to hide them from other apps too, use the Hide function. + Remove all + Remove all folders from the list of excluded? This will not delete the folders. + Hidden folders + Manage hidden folders + Seems like you don\'t have any folders hidden with a \".nomedia\" file. + + + Included folders + Manage included folders + फोल्डर थप्नुहोस + If you have some folders which contain media, but were not recognized by the app, you can add them manually here.\n\nAdding some items here will not exclude any other folder. + No media files have been found. You can solve it by adding the folders containing media files manually. + + + Resize + Resize selection and save + चाैडाई + उचाई + Keep aspect ratio + Please enter a valid resolution + + + सम्पादक + बचत + घुमाउने + Path + Invalid image path + Image editing failed + File edited successfully + Edit image with: + No image editor found + Unknown file location + Could not overwrite the source file + Rotate left + Rotate right + Rotate by 180º + Flip + Flip horizontally + Flip vertically + स्वतन्त्र + अन्य + + + सजिलो वालपेपर + वालपेपरको रुपमा स्थापित गर्नुहोस + Setting as Wallpaper failed + Set as wallpaper with: + Setting wallpaper… + Wallpaper set successfully + Portrait aspect ratio + Landscape aspect ratio + होम स्क्रिन + लक स्क्रिन + होम र लक स्क्रिन + + + स्लाईडसो + Interval (seconds): + Include photos + Include videos + Include GIFs + Random order + Move backwards + Loop slideshow + Animation + केहि होईन + फेड + स्लाईड + स्लाईडसो समाप्त भयो + No media for the slideshow have been found + + + भ्यू प्रकार परिवर्तन गर्नुहोस + कोठे + सुची + Group direct subfolders + + + Group by + Do not group files + फोल्डर + Last modified + Last modified (daily) + Last modified (monthly) + Date taken + Date taken (daily) + Date taken (monthly) + फाईलको प्रकार + Extension + Please note that grouping and sorting are 2 independent fields + + + Folder shown on the widget: + फोल्डरको नाम देखाउनुहोस + + + भिडियोहरु आफै चल्ने + Remember last video playback position + Toggle filename visibility + भिडियो लुप + Animate GIFs at thumbnails + Max brightness when viewing fullscreen media + Crop thumbnails into squares + भिडियो अबधि देखाउने + Rotate fullscreen media by + सिस्टम सेटिङ + Device rotation + Aspect ratio + Black background 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 + 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 + 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 + Allow 1:1 zooming in with two double taps + Always open videos on a separate screen with new horizontal gestures + Show a notch if available + Allow rotating images with gestures + File loading priority + गति + Compromise + Avoid showing invalid files + तस्बिरको फाईल किसिम देखाउनुहोस + + + Thumbnails + Fullscreen media + Extended details + Bottom actions + + + Manage visible bottom actions + Toggle favorite + Toggle file visibility + + + Custom + Reset + Square + Transform + Filter + केहिहोईन + Adjust + Shadows + Exposure + Highlights + उज्यालोपन + Contrast + Saturation + Clarity + Gamma + Blacks + Whites + तापक्रम + Sharpness + Reset + Focus + None + Radial + Linear + Mirrored + Gaussian + टेक्स + Text Options + टेक्सको रङ + फन्ट + Add + सम्पादन + Straighten + फन्ट + रङ + BG Color + Alignment + To Front + Delete + Your text + Brush + Color + Size + Hardness + To Front + मेटाउनु + Brush Color + सम्पादक + Close Editor? + Do you really want to discard the image? + Yes + No + रद्द + स्विकार + बचत + Exporting image… + Exporting image %s. + Flip H + Flip V + Undo + Redo + Color Picker + पारदर्शी + सेतो + खरानि + कालो + Light blue + निलो + Purple + Orchid + Pink + रातो + सुन्तला + सुन + पहेलो + Olive + हरियो + Aquamarin + Pipettable color + + + 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 actions menu, 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 either drag your finger horizontally over the video player, or 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, or it doesn\'t show all items. 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. + 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. + Why does the app take up so much space? + App cache can take up to 250MB, it ensures quicker image loading. If the app is taking up even more space, it is most likely caused by you having items in the Recycle Bin. Those files count to the app size. You can clear the Recycle bin by opening it and deleting all files, or from the app settings. Every file in the Bin is deleted automatically after 30 days. + + + + Simple Gallery Pro - Photo Manager & Editor + + Browse your memories without any interruptions with this photo and video gallery + + Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. + + The app contains no ads and unnecessary permissions. As the app doesn’t require internet access either, your privacy is protected. + + ------------------------------------------------- + SIMPLE GALLERY PRO – FEATURES + ------------------------------------------------- + + • Offline gallery with no ads or popups + • Simple gallery photo editor – crop, rotate, resize, draw, filters & more + • No internet access needed, giving you more privacy and security + • No unnecessary permissions required + • Quickly search images, videos & files + • Open & view many different photo and video types (RAW, SVG, panoramic etc) + • A variety of intuitive gestures to easily edit & organize files + • Lots of ways to filter, group & sort files + • Customize the appearance of Simple Gallery Pro + • Available in 32 languages + • Mark files as favorites for quick access + • Protect your photos & videos with a pattern, pin or fingerprint + • Use pin, pattern & fingerprint to protect the app launch or specific functions too + • Recover deleted photos & videos from the recycle bin + • Toggle visibility of files to hide photos & videos + • Create a customizable slideshow of your files + • View detailed information of your files (resolution, EXIF values etc) + • Simple Gallery Pro is open source + … and much much more! + + PHOTO GALLERY EDITOR + Simple Gallery Pro makes it easy to edit your pictures on the fly. Crop, flip, rotate and resize your pictures. If you’re feeling a little more creative you can add filters and draw on your pictures! + + SUPPORT FOR MANY FILE TYPES + Unlike some other gallery viewers & photo organizers, Simple Gallery Pro supports a huge range of different file types including JPEG, PNG, MP4, MKV, RAW, SVG, Panoramic photos, Panoramic videos and many more. + + HIGHLY CUSTOMIZABLE GALLERY MANAGER + From the UI to the function buttons on the bottom toolbar, Simple Gallery Pro is highly customizable and works the way you want it to. No other gallery manager has this kind of flexibility! Thanks to being open source, we’re also available in 32 languages! + + RECOVER DELETED PHOTOS & VIDEOS + Accidentally deleted a precious photo or video? Don’t worry! Simple Gallery Pro features a handy recycle bin where you can recover deleted photos & videos easily. + + PROTECT & HIDE PHOTOS, VIDEOS & FILES + Using pin, pattern or your device’s fingerprint scanner you can protect and hide photos, videos & entire albums. You can protect the app itself or place locks on specific functions of the app. For example, you can’t delete a file without a fingerprint scan, helping to protect your files from accidental deletion. + + Check out the full suite of Simple Tools here: + https://www.simplemobiletools.com + + Standalone website of Simple Gallery Pro: + https://www.simplemobiletools.com/gallery + + Facebook: + https://www.facebook.com/simplemobiletools + + Reddit: + https://www.reddit.com/r/SimpleMobileTools + + + + diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 8361c816a..922dd0b3f 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -319,7 +319,7 @@ Eenvoudige Galerij Pro - Foto’s Beheren & Bewerken - Navigeer zonder afleidingen door al uw herinneringen. + Navigeer met deze galerij zonder afleidingen door al je herinneringen Eenvoudige Galerij Pro is een volledig aan te passen offline galerij. Organiseer & bewerk foto’s, herstel verwijderde bestanden met de prullenbakfunctie, beveilig & verberg items en bekijk een enorme hoeveelheid aan foto- & videoformaten, waaronder RAW, SVG en nog veel meer. diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index f916718a3..62cbd7aad 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -317,7 +317,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro to wysoce konfigurowalna galeria. Przeglądaj i edytuj swoje zdjęcia, dzięki funkcji kosza z łatwością odzyskuj przypadkowo (lub nie) ususnięte pliki, chroń je i ukrywaj dzięki różnym metodom zabezpieczeń. Nie martw się o obsługiwane formaty - wśród nich są m.in. RAW, SVG i wiele więcej. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index ac6970a1c..f76355c3e 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -53,7 +53,7 @@ Gerenciar pastas ignoradas Esta ação deixará de exibir as pastas selecionadas apenas dentro deste aplicativo. Você pode gerenciar as pastas ignoradas nas Configurações do aplicativo. Ignorar a pasta raiz ao invés desta? - Ignorar uma pasta apenas deixa de exibi-la nesta galeria. Ela continuará visível para outros aplicativos.\\n\\nSe você quiser ocultar a pasta para todos os aplicativos, utilize a função ocultar. + Ignorar uma pasta apenas deixa de exibi-la nesta galeria. Ela continuará visível para outros aplicativos.\n\nSe você quiser ocultar a pasta para todos os aplicativos, utilize a função ocultar. Remover todas Remover todas as pastas da lista de pastas ignoradas? Esta ação não exclui as pastas. Pastas ocultas @@ -318,7 +318,7 @@ Simple Galeria Pro - Gerenciador de Imagens - Procure suas memórias sem interrupções. + Browse your memories without any interruptions with this photo and video gallery A Simple Galeria Pro é uma galeria de imagens e vídeos altamente customizável. Organize e edite suas fotos e vídeos, recupere arquivos movidos para a lixeira, proteja e oculte seus arquivos, e visualize arquivos em uma grande variedade de formatos, incluindo RAW, SVG, e muito mais. Este app não inclui anúncios ou permissões desnecessárias e também não acessa a internet. Sua privacidade está protegida. diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 59101c006..7e387b5c0 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -53,7 +53,7 @@ Gerir pastas excluídas Esta ação apenas exclui as pastas selecionadas da lista de pastas desta aplicação. Pode gerir as pastas excluídas nas Definições. Excluir antes a pasta superior? - A exclusão de uma pasta apenas oculta o seu conteúdo do Simple Gallery porque as outras aplicações continuarão a poder aceder-lhes.\\n\\nSe quiser ocultar também das outras aplicações, utilize a função Ocultar. + A exclusão de uma pasta apenas oculta o seu conteúdo do Simple Gallery porque as outras aplicações continuarão a poder aceder-lhes.\n\nSe quiser ocultar também das outras aplicações, utilize a função Ocultar. Remover todas Remover todas as pastas de lista de exclusões? Esta ação não apaga as pastas. Pastas ocultas @@ -319,7 +319,7 @@ Simple Gallery Pro - Editor e gestor de fotos - Explore as suas memórias sem interrupções. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro é uma aplicação local para gerir fotos e vídeos. Pode organizar e editar as suas fotos, recuperar ficheiros através da reciclagem, proteger e ocultar ficheiros e ver imagens e vídeos disponíveis em vários formatos tais como RAW, SVG e muito mais. diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 5db3b5b4e..66cd4eeff 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -81,10 +81,10 @@ Поворот Путь Недопустимый путь изображения - Редактирование изображения не удалось + Редактирование изображения не выполнено Файл успешно отредактирован Редактировать изображение в: - Ни одного редактора изображений не найдено + Не найдено ни одного редактора изображений Неизвестное местоположение файла Не удалось перезаписать исходный файл Повернуть влево @@ -252,14 +252,14 @@ Цвет кисти Редактор Закрыть редактор? - Вы действительно хотите отказаться от изображения? + Вы действительно хотите отказаться от сделанных изменений изображения? Да Нет Отмена Принять Сохранить Экспорт изображения… - Экспорт изображения %s. + Экспорт изображения %s Г-поворот В-поворот Отмена @@ -319,7 +319,7 @@ Галерея Pro - управление изображениями - Просматривайте свои воспоминания без перерывов. + Просматривайте свои воспоминания без перерывов с этой фото- и видеогалереей Simple Gallery Pro — настраиваемая автономная галерея. Организуйте и редактируйте свои фотографии; восстанавливайте удалённые файлы при помощи функции "корзина"; защищайте и скрывайте личные файлы; просматривайте множество различных фото- и видеоформатов, включая RAW, SVG и многие другие. diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 968c47c60..565448a00 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -39,9 +39,9 @@ Filter médií Obrázky Videá - GIFká + GIF RAW obrázky - SVGčká + SVG Portréty So zvolenými filtrami sa nenašli žiadne média súbory. Zmeniť filtre @@ -53,7 +53,7 @@ Spravovať vylúčené priečinky Táto funkcia vylúči výber a jeho podpriečinky iba z Jednoduchej galérie. Spravovať vylúčené priečinky je možné v nastaveniach. Chcete ukryť rodičovský priečinok? - Vylúčené priečinky budú spolu s podpriečinkami ukryté iba pred Jednoduchou Galériou, ostatné aplikácie ich budú stále vidieť.\\n\\nAk ich chcete ukryť aj pred ostatnými aplikáciami, použite funkciu Skryť. + Vylúčené priečinky budú spolu s podpriečinkami ukryté iba pred Jednoduchou Galériou, ostatné aplikácie ich budú stále vidieť.\n\nAk ich chcete ukryť aj pred ostatnými aplikáciami, použite funkciu Skryť. Odstrániť všetky Odstrániť všetky priečinky zo zoznamu vylúčených? Táto operácia neodstráni samotný obsah priečinkov. Skryté priečinky @@ -319,7 +319,7 @@ Jednoduchá galéria Pro - Foto organizér a editor - Prehliadajte svoje spomienky bez prerušenia. + Prehliadajte svoje spomienky bez prerušenia s touto foto a video galériou. Jednoduchá Galéria Pro je vysoko prispôsobiteľná offline galéria. Organizujte a upravujte vaše fotky, obnovujte vymazané súbory pomocou odpadkového koša, ochraňujte a skrývajte ich, alebo prehliadajte množstvo rôznych foto a video formátov vrátane RAW, SVG a mnoho ďalších. diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 197c49554..58c3230db 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Pregledovalnik fotografij - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro je visoko prilagodljiva lokalna galerija. Organizirajte & urejajte vaše fotografije, vrnite izbrisane datoteke iz koša, zaščitite & skrijte datoteke in pregledujte ogromno različnih vrst foto & video formatov, vključujoč RAW, SVG in mnoge druge. diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml index d6cf72ebc..0a5ab8092 100644 --- a/app/src/main/res/values-sr/strings.xml +++ b/app/src/main/res/values-sr/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Једноставна галерија Про је високо прилагодљива галерија којој није неопходан интернет да би радила. Организуј и измени своје слике, опорави обрисане датотеке са кантом за отпатке, заштити и сакриј датотеке имај увид у огромну количину различитих фотографија и видео формата укључујући RAW, SVG и многих других. diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index cbe6289c3..a0cf7883a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -53,7 +53,7 @@ Hantera uteslutna mappar Detta utesluter bara den markerade mappen och dess undermappar från Simple Gallery. Du kan hantera uteslutna mappar i Inställningar. Vill du utesluta en överordnad mapp istället? - Uteslutning av mappar döljer bara dem och deras undermappar i Simple Gallery, de visas fortfarande i andra appar.\\n\\nAnvänd Dölj-funktionen om du även vill dölja dem från andra appar. + Uteslutning av mappar döljer bara dem och deras undermappar i Simple Gallery, de visas fortfarande i andra appar.\n\nAnvänd Dölj-funktionen om du även vill dölja dem från andra appar. Ta bort alla Vill du ta bort alla mappar från uteslutningslistan? Detta raderar inte mapparna. Dolda mappar @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index d044fb8ff..f04d9abc6 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -42,7 +42,7 @@ GIF\'ler RAW resimler SVG\'ler - Portraits + Portreler Seçilen filtrelerle hiçbir medya dosyası bulunamadı. Filtreleri değiştir @@ -82,7 +82,7 @@ Yol Geçersiz resim yolu Resim düzenleme başarısız - File edited successfully + Dosya başarıyla düzenlendi Resmi şununla düzenle: Resim düzenleyici bulunamadı Bilinmeyen dosya konumu @@ -203,85 +203,85 @@ Dosya görünürlüğünü aç/kapat - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast - Saturation - Clarity - Gamma - Blacks - Whites - Temperature - Sharpness - Reset - Focus - None - Radial - Linear - Mirrored - Gaussian - Text - Text Options - Text Color - Font - Add - Edit - Straighten - Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color - Editor - Close Editor? - Do you really want to discard the image? - Yes - No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker - Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid - Pink - Red - Orange - Gold - Yellow - Olive - Green - Aquamarin - Pipettable color + Özel + Sıfırla + Kare + Dönüştür + Filtre + Yok + Ayarla + Gölgeler + Pozlama + Vurgular + Parlaklık + Kontrast + Doygunluk + Berraklık + Gama + Siyahlar + Beyazlar + Sıcaklık + Netlik + Sıfırla + Odak + Yok + Radyal + Doğrusal + Aynalı + Gauss + Metin + Metin Seçenekleri + Metin Rengi + Yazı Tipi + Ekle + Düzenle + Düzle + Yazı Tipi + Renk + Arka Renk + Hizalama + Öne + Sil + Metniniz + Fırça + Renk + Boyut + Sertlik + Öne + Sil + Fırça Rengi + Editör + Editör kapatılsın mı? + Değişiklikler kaydedilmeden çıkılsın mı? + Evet + Hayır + İptal + Kabul Et + Kaydet + Resim dışa aktarılıyor… + Resim dışa aktarılıyor %s. + Yatay Çevir + Dikey Çevir + Geri Al + Yinele + Renk Seçici + Şeffaf + Beyaz + Gri + Siyah + Açık Mavi + Mavi + Mor + Orkide + Pembe + Kırmızı + Turuncu + Altın + Sarı + Zeytin + Yeşil + Akuamarin + Pipetlenebilir renk Basit Galeri\'yi nasıl varsayılan cihaz galerisi yapabilirim? @@ -317,9 +317,9 @@ - Basit Galeri Pro - Fotoğraf Yönetici & Düzenleyici + Basit Galeri Pro - Fotoğraf Yönetici, Düzenleyici - Browse your memories without any interruptions. + Bu fotoğraf ve video galerisinde kesintisiz olarak anılarınıza göz atın Basit Galeri Pro, özelleştirilebilir bir çevrimdışı galeridir. Fotoğraflarınızı düzenleyin ve organize edin, geri dönüşüm kutusuyla silinen dosyaları kurtarın, dosyaları koruyun ve gizleyin ve RAW, SVG ve çok daha fazlası dahil olmak üzere çok çeşitli fotoğraf ve video formatlarını görüntüleyin. diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index c29acb22a..b30d57e3f 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - фотоменеджер і редактор - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro - це офлайн-галерея з великою кількістю налаштувань. Впорядковуйте та редагуйте ваші фото, відновлюйте видалені файли з кошика, захищайте та приховуйте файли і переглядайте фото і відео різноманітних форматів, включаючи RAW, SVG та багато іншого. diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml index 4f949f7c1..f35990c78 100644 --- a/app/src/main/res/values-vi/strings.xml +++ b/app/src/main/res/values-vi/strings.xml @@ -1,373 +1,390 @@ Simple Gallery - Gallery - Edit - Open camera - (hidden) - (excluded) - Pin folder - Unpin folder - Pin to the top - Show all folders content - All folders - Switch to folder view - Other folder - Show on map - Unknown location - Increase column count - Reduce column count - 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 - Share a resized version - Hey,\n\nseems like you upgraded from the old free app. You can now uninstall the old version, which has an \'Upgrade to Pro\' button at the top of the app settings.\n\nYou will only have the Recycle bin items deleted, favorite items unmarked and you will also have to reset your app settings.\n\nThanks! - Switch to file search across all visible folders + Thư viện + Biên tập + Mở Camera + (ẩn) + (không bao gồm) + Ghim thư mục + Bỏ ghim thư mục + Ghim lên đầu + Hiển thị tất cả nội dung thư mục + Tất cả các thư mục + Chuyển sang xem thư mục + Thư mục khác + Hiển thị trên bản đồ + Vị trí không xác định + Tăng số lượng cột + Giảm số lượng cột + Thay đổi ảnh bìa + Chọn ảnh + Sử dụng mặc định + Âm lượng + Độ sáng + Khóa xoay màn hình + Mở khóa xoay + Thay đổi hướng màn hình + Bắt buộc dọc + Bắt buộc ngang + Sử dụng hướng mặc định + Sửa giá trị ngày chụp + Đang sửa… + Sửa ngày thành công + Chia sẻ phiên bản đã thay đổi kích thước + Xin chào, có vẻ như bạn đã nâng cấp từ ứng dụng miễn phí cũ. Giờ đây, bạn có thể gỡ cài đặt phiên bản cũ có nút \'Nâng cấp lên Pro\' ở đầu Cài đặt ứng dụng. \n\nBạn sẽ chỉ xóa các mục Thùng rác, các mục yêu thích không được đánh dấu và bạn cũng sẽ phải đặt lại cài đặt ứng dụng của bạn.\n\nCảm ơn! + Chuyển sang tìm kiếm tệp trên tất cả các thư mục hiển thị - Filter media - Images - Videos - GIFs - RAW images + Lọc + Hình ảnh + Video + Ảnh GIF + Ảnh RAW SVGs - Portraits - No media files have been found with the selected filters. - Change filters + Chân dung + Không có tập tin phương tiện nào được tìm thấy với các bộ lọc được chọn. + Thay đổi bộ lọc - This function hides the folder by adding a \'.nomedia\' file into it, it will hide all subfolders too. You can see them by toggling the \'Show hidden items\' option in Settings. Continue? - Exclude - Excluded folders - Manage excluded folders - This will exclude the selection together with its subfolders from Simple Gallery only. You can manage excluded folders in Settings. - Exclude a parent instead? - Excluding folders will make them together with their subfolders hidden just in Simple Gallery, they will still be visible in other applications.\n\nIf you want to hide them from other apps too, use the Hide function. - Remove all - Remove all folders from the list of excluded? This will not delete the folders. - Hidden folders - Manage hidden folders - Seems like you don\'t have any folders hidden with a \".nomedia\" file. + Chức năng này ẩn thư mục bằng cách thêm tệp \'.nomedia\' vào nó, nó cũng sẽ ẩn tất cả các thư mục con. Bạn có thể nhìn thấy chúng bằng cách bật tùy chọn \'Hiển thị các mục bị ẩn\' trong Cài đặt. Tiếp tục? + Loại trừ + Các thư mục bị loại trừ + Quản lý các thư mục loại trừ + Điều này sẽ loại trừ lựa chọn cùng với các thư mục con của nó khỏi Simple Gallery. Bạn có thể quản lý các thư mục loại trừ trong Cài đặt. + Loại trừ thư mục mẹ thay thế? + Các thư mục loại trừ sẽ làm cho chúng cùng với các thư mục con của chúng bị ẩn chỉ trong Simple Gallery, chúng vẫn sẽ hiển thị trong các ứng dụng khác.\n\nNếu bạn cũng muốn ẩn chúng khỏi các ứng dụng khác, hãy sử dụng chức năng Ẩn. + Xóa tất cả + Xóa tất cả các thư mục khỏi danh sách loại trừ? Điều này sẽ không xóa các thư mục. + Các thư mục ẩn + Quản lý thư mục ẩn + Có vẻ như bạn không có bất kỳ thư mục nào bị ẩn với tệp \".nomedia\". - Included folders - Manage included folders - Add folder - If you have some folders which contain media, but were not recognized by the app, you can add them manually here.\n\nAdding some items here will not exclude any other folder. - No media files have been found. You can solve it by adding the folders containing media files manually. + Bao gồm các thư mục + Quản lý các thư mục được bao gồm + Thêm thư mục + Nếu bạn có một số thư mục chứa tập tin phương tiện, nhưng ứng dụng không nhận ra, bạn có thể thêm chúng theo cách thủ công tại đây. \n\nThêm một số mục ở đây sẽ không loại trừ bất kỳ thư mục nào khác. + Không có tập tin phương tiện được tìm thấy. Bạn có thể thêm các thư mục chứa tệp phương tiện theo cách thủ công. - Resize - Resize selection and save - Width - Height - Keep aspect ratio - Please enter a valid resolution + Thay đổi kích thước + Thay đổi kích thước mục đã chọn và lưu + Chiều rộng + Chiều cao + Giữ tỷ lệ khung hình + Vui lòng nhập độ phân giải hợp lệ - Editor - Save - Rotate - Path - Invalid image path - Image editing failed - File edited successfully - Edit image with: - No image editor found - Unknown file location - Could not overwrite the source file - Rotate left - Rotate right - Rotate by 180º - Flip - Flip horizontally - Flip vertically - Free - Other + Trình biên tập + Lưu + Xoay + Đường dẫn + Đường dẫn hình ảnh không hợp lệ + Thất bại + Tập tin được chỉnh sửa thành công + Chỉnh sửa hình ảnh với: + Không tìm thấy trình chỉnh sửa hình ảnh + Vị trí tệp không xác định + Không thể ghi đè tệp nguồn + Xoay trái + Xoay phải + Xoay 180 độ + Lật + Lật theo chiều ngang + Lật theo chiều dọc + Tự do + Khác - Simple Wallpaper - Set as Wallpaper - Setting as Wallpaper failed - Set as wallpaper with: - Setting wallpaper… - Wallpaper set successfully - Portrait aspect ratio - Landscape aspect ratio - Home screen - Lock screen - Home and lock screen + Hình nền + Cài làm hình nền + Thất bại + Đặt làm hình nền với: + Cài đặt hình nền… + Đặt hình nền thành công + Tỷ lệ khung hình dọc + Tỷ lệ khung hình ngang + Màn hình chính + Màn hình khóa + Màn hình chính và khóa - Slideshow - Interval (seconds): - Include photos - Include videos - Include GIFs - Random order - Move backwards - Loop slideshow - Animation - None - Fade - Slide - The slideshow ended - No media for the slideshow have been found + Trình chiếu + Khoảng thời gian (giây): + Bao gồm hình ảnh + Bao gồm video + Bao gồm ảnh GIF + Thứ tự ngẫu nhiên + Lùi lại + Trình chiếu theo vòng lặp + Hiệu ứng + Không + Phai màu + Trượt + Trình chiếu kết thúc + Không có tập tin phương tiện cho trình chiếu được tìm thấy - Change view type - Grid - List - Group direct subfolders + Thay đổi kiểu xem + Lưới + Danh sách + Nhóm thư mục con trực tiếp - Group by - Do not group files - Folder - Last modified - Last modified (daily) - Last modified (monthly) - Date taken - Date taken (daily) - Date taken (monthly) - File type - Extension - Please note that grouping and sorting are 2 independent fields + Nhóm theo + Không nhóm các tệp + Thư mục + Sửa đổi lần cuối + Sửa đổi lần cuối (hàng ngày) + Sửa đổi lần cuối (hàng tháng) + Ngày chụp + Ngày chụp (hàng ngày) + Ngày chụp (hàng tháng) + Loại tệp + Phần mở rộng + Xin lưu ý rằng Nhóm và Sắp xếp là 2 trường độc lập - Folder shown on the widget: - Show folder name + Thư mục hiển thị trên widget: + Hiển thị tên thư mục - Play videos automatically - Remember last video playback position - Toggle filename visibility - Loop videos - 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 - Aspect ratio - Black background 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 - 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 - 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 - Allow 1:1 zooming in with two double taps - Always open videos on a separate screen with new horizontal gestures - Show a notch if available - Allow rotating images with gestures - File loading priority - Speed - Compromise - Avoid showing invalid files - Show image file types + Phát video tự động + Ghi nhớ vị trí phát video cuối cùng + Chuyển đổi khả năng hiển thị tên tệp + Tự động phát video đầu khi hết video cuối + GIF động tại hình thu nhỏ + Độ sáng tối đa khi xem tập tin phương tiện toàn màn hình + Cắt hình thu nhỏ thành hình vuông + Hiển thị thời lượng video + Xoay tập tin toàn màn hình theo + Thiết lập hệ thống + Hướng xoay của thiết bị + Tỷ lệ khung hình + Nền đen khi xem toàn màn hình + Cuộn hình thu nhỏ theo chiều ngang + Tự động ẩn giao diện người dùng hệ thống khi xem toàn màn hình + Xóa các thư mục trống sau khi xóa nội dung của chúng + Cho phép kiểm soát độ sáng của ảnh bằng cách vuốt dọc màn hình + Cho phép kiểm soát âm lượng và độ sáng của video bằng cách vuốt dọc màn hình + Hiển thị số thư mục trên giao diện chính + Hiển thị chi tiết mở rộng khi xem toàn màn hình + Quản lý chi tiết mở rộng + Cho phép thu phóng một ngón tay khi xem toàn màn hình + Cho phép chuyển tiếp ngay lập tức bằng cách nhấp vào các cạnh màn hình + Cho phép phóng to hình ảnh sâu + Ẩn chi tiết mở rộng khi thanh trạng thái bị ẩn + Hiển thị một số nút chức năng ở dưới cùng của màn hình + Hiển thị Thùng rác tại màn hình thư mục + Hình ảnh có thể phóng to + Hiển thị hình ảnh với chất lượng cao nhất có thể + Hiển thị Thùng rác là mục cuối cùng trên màn hình chính + Cho phép đóng chế độ xem toàn màn hình bằng cách vuốt xuống + Cho phép phóng to 1:1 với hai lần nháy đúp + Luôn mở video trên một màn hình riêng biệt bằng cử chỉ ngang mới + Hiển thị màn hình chữ V nếu có + Cho phép xoay hình ảnh bằng cử chỉ + Ưu tiên tải tệp + Tốc độ + Thỏa hiệp + Tránh hiển thị các tệp không hợp lệ + Hiển thị các loại tệp hình ảnh - Thumbnails - Fullscreen media - Extended details - Bottom actions + Hình thu nhỏ + Toàn màn hình + Chi tiết mở rộng + Hành động dưới cùng - Manage visible bottom actions - Toggle favorite - Toggle file visibility + Quản lý các hành động dưới cùng có thể nhìn thấy + Yêu thích + Ẩn/bỏ ẩn - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast - Saturation - Clarity - Gamma - Blacks - Whites - Temperature - Sharpness - Reset - Focus - None - Radial - Linear - Mirrored - Gaussian - Text - Text Options - Text Color + Tùy chỉnh + Cài lại + Hình vuông + Biến đổi + Bộ lọc + Không + Điều chỉnh + Đổ bóng + Phơi sáng + Làm nổi bật + Độ sáng + Tương phản + Độ bão hòa + Sáng sủa + Đồ thị gamma + Đen + Trắng + Nhiệt độ + Độ sắc nét + Đặt lại + Tiêu điểm + Không + Xuyên tâm + Tuyến tính + Nhân đôi + Đường cong gauss + Văn bản + Tùy chọn văn bản + Màu văn bản Font - Add - Edit - Straighten + Thêm + Biên tập + Duỗi thẳng Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color - Editor - Close Editor? - Do you really want to discard the image? - Yes - No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker - Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid - Pink - Red - Orange - Gold - Yellow - Olive - Green - Aquamarin - Pipettable color + Màu sắc + Màu BG + Căn chỉnh + Lên trước + Xóa + Văn bản của bạn + Cọ vẽ + Màu sắc + Kích thước + Độ đậm + Lên trước + Xóa bỏ + Màu cọ + Trình biên tập + Đóng trình biên tập? + Bạn có thực sự muốn loại bỏ hình ảnh? + + Không + Hủy bỏ + Chấp nhận + Lưu + Xuất hình ảnh… + Xuất hình ảnh %s. + Lật H + Lật V + Hoàn tác + Lui lại + Bộ chọn màu + Trong suốt + Trắng + Xám + Đen + Màu xanh nhạt + Màu xanh da trời + Màu tím + màu hoa lan + Hồng + Đỏ + Cam + Vàng kim + Màu vàng + Xanh ô-liu + Xanh lá + Xanh ngọc nước biển + Màu sắc dễ thương - 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 actions menu, 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 either drag your finger horizontally over the video player, or 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, or it doesn\'t show all items. 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. - 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. - Why does the app take up so much space? - App cache can take up to 250MB, it ensures quicker image loading. If the app is taking up even more space, it is most likely caused by you having items in the Recycle Bin. Those files count to the app size. You can clear the Recycle bin by opening it and deleting all files, or from the app settings. Every file in the Bin is deleted automatically after 30 days. + Làm thế nào để đặt Simple Gallery thành thư viện mặc định? + Trước tiên, bạn phải tìm thư viện hiện tại mặc định trong phần Ứng dụng trong Cài đặt thiết bị của bạn, tìm nút có nội dung như \"Mở theo mặc định\", nhấp vào đó, sau đó chọn \"Xóa mặc định\". +         Lần tới, bạn hãy thử mở một hình ảnh hoặc video, bạn sẽ thấy một bộ chọn ứng dụng, nơi bạn có thể chọn Simple Gallery và biến nó thành ứng dụng mặc định. + Tôi đã khóa ứng dụng bằng mật khẩu, nhưng tôi quên mất. Tôi có thể làm gì? + Bạn có thể giải quyết nó theo 2 cách. Bạn có thể cài đặt lại ứng dụng hoặc tìm ứng dụng trong cài đặt thiết bị của mình và chọn \"Xóa dữ liệu\". Nó sẽ thiết lập lại tất cả các cài đặt của bạn, nó sẽ không xóa bất kỳ tập tin phương tiện nào. + Làm thế nào tôi có thể làm cho một album luôn xuất hiện ở đầu? + Bạn có thể nhấn và giữ album mong muốn và chọn biểu tượng Ghim ở menu hành động, nó sẽ ghim nó lên trên cùng. Bạn cũng có thể ghim nhiều thư mục, các mục được ghim sẽ được sắp xếp theo phương pháp sắp xếp mặc định. + Làm cách nào tôi có tua video nhanh? + Bạn có thể kéo ngón tay của mình theo chiều ngang trên trình phát video hoặc nhấp vào văn bản thời lượng hiện tại hoặc tối đa gần thanh tìm kiếm. Điều đó sẽ di chuyển video hoặc lùi hoặc tiến. + Sự khác biệt giữa ẩn và loại trừ một thư mục là gì? + Loại trừ ngăn chỉ hiển thị thư mục trong Thư viện đơn giản, trong khi Ẩn hoạt động theo hệ thống và nó cũng ẩn thư mục khỏi các phòng trưng bày khác. Nó hoạt động bằng cách tạo một tệp \".nomedia\" trong thư mục đã cho, sau đó bạn cũng có thể xóa bằng bất kỳ trình quản lý tệp nào. + Tại sao hiển thị các thư mục với ảnh bìa hoặc nhãn dán? + Nó có thể xảy ra rằng bạn sẽ thấy một số album bất thường xuất hiện. Bạn có thể dễ dàng loại trừ chúng bằng cách nhấn giữ và chọn Loại trừ. Trong hộp thoại tiếp theo bạn có thể chọn thư mục mẹ sau đó, rất có thể nó sẽ ngăn các album liên quan khác xuất hiện. + Một thư mục chứa hình ảnh không hiển thị hoặc không hiển thị tất cả các mục. Tôi có thể làm gì? + Điều đó có thể có nhiều lý do, nhưng giải quyết nó là dễ dàng. Chỉ cần vào Cài đặt -> Quản lý các thư mục được bao gồm, chọn Thêm và điều hướng đến thư mục cần thiết. + Nếu tôi chỉ muốn một vài thư mục cụ thể hiển thị thì sao? + Thêm thư mục tại Thư mục được bao gồm sẽ không tự động loại trừ bất cứ điều gì. Những gì bạn có thể làm là vào Cài đặt -> Quản lý các thư mục bị loại trừ, loại trừ thư mục gốc \"/\", sau đó thêm các thư mục mong muốn tại Cài đặt -> Quản lý các thư mục được bao gồm. +         Điều đó sẽ chỉ hiển thị các thư mục đã chọn, vì cả loại trừ và bao gồm đều được đệ quy và nếu một thư mục được loại trừ và bao gồm, nó sẽ hiển thị. + Tôi có thể cắt hình ảnh với ứng dụng này không? + Có, bạn có thể cắt hình ảnh trong trình chỉnh sửa, bằng cách kéo các góc hình ảnh. Bạn có thể truy cập trình chỉnh sửa bằng cách nhấn và thu nhỏ hình ảnh và chọn Chỉnh sửa hoặc chọn Chỉnh sửa từ chế độ xem toàn màn hình. + Tôi có thể bằng cách nào đó nhóm hình thu nhỏ tập tin phương tiện không? + Được chứ, chỉ cần sử dụng mục menu \"Nhóm theo\" trong khi ở chế độ xem hình thu nhỏ. Bạn có thể nhóm các tệp theo nhiều tiêu chí, bao gồm cả Ngày chụp. Nếu bạn sử dụng chức năng \"Hiển thị tất cả các nội dung thư mục\", bạn cũng có thể nhóm chúng theo các thư mục. + Sắp xếp theo ngày chụp dường như không hoạt động đúng, làm thế nào tôi có thể sửa nó? + Rất có thể là do các tệp được sao chép từ đâu đó. Bạn có thể sửa nó bằng cách chọn hình thu nhỏ của tệp và chọn \"Sửa giá trị ngày chụp\". + Tôi thấy một số dải màu trên hình ảnh. Làm thế nào tôi có thể cải thiện chất lượng? + Giải pháp hiện tại để hiển thị hình ảnh hoạt động tốt trong phần lớn các trường hợp, nhưng nếu bạn muốn chất lượng hình ảnh tốt hơn nữa, bạn có thể bật \"Hiển thị hình ảnh ở chất lượng cao nhất có thể\" ở cài đặt ứng dụng, trong phần \"Hình ảnh có thể phóng to sâu\". + Tôi đã ẩn một tập tin/thư mục. Làm thế nào tôi có thể bỏ ẩn nó? + Bạn có thể nhấn mục menu \"Tạm thời hiển thị các mục bị ẩn\" ở màn hình chính hoặc chuyển đổi \"Hiển thị các mục bị ẩn\" trong Cài đặt ứng dụng để xem mục bị ẩn. Nếu bạn muốn bỏ ẩn nó, chỉ cần nhấn và giữ \"Bỏ ẩn\". Các thư mục được ẩn bằng cách thêm tệp ẩn \".nomedia\" vào chúng, bạn cũng có thể xóa tệp bằng bất kỳ trình quản lý tệp nào. + Tại sao ứng dụng chiếm quá nhiều dung lượng ? + Bộ nhớ cache ứng dụng có thể mất tới 250MB, nó đảm bảo tải hình ảnh nhanh hơn. Nếu ứng dụng chiếm nhiều dung lượng hơn, rất có thể là do bạn có nhiều mục trong Thùng rác. Những tập tin đó được tính vào kích thước ứng dụng. Bạn có thể xóa thùng rác bằng cách mở nó và xóa tất cả các tệp hoặc từ Cài đặt ứng dụng. Mọi tệp trong Thùng rác sẽ tự động bị xóa sau 30 ngày. - Simple Gallery Pro - Photo Manager & Editor + Simple Gallery Pro - Trình quản lý ảnh & biên tập - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery - Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. - - The app contains no ads and unnecessary permissions. As the app doesn’t require internet access either, your privacy is protected. + Simple Gallery Pro là một bộ sưu tập ngoại tuyến có khả năng tùy biến cao. Tổ chức & chỉnh sửa ảnh của bạn, khôi phục các tệp đã xóa bằng thùng rác, bảo vệ & ẩn các tệp và xem được nhiều định dạng ảnh & video bao gồm RAW, SVG và nhiều hơn nữa.     +      Ứng dụng này không chứa quảng cáo và các quyền không cần thiết. Vì ứng dụng không có yêu cầu truy cập internet, quyền riêng tư của bạn sẽ được bảo vệ. ------------------------------------------------- - SIMPLE GALLERY PRO – FEATURES + SIMPLE GALLERY PRO – TÍNH NĂNG ------------------------------------------------- - • Offline gallery with no ads or popups - • Simple gallery photo editor – crop, rotate, resize, draw, filters & more - • No internet access needed, giving you more privacy and security - • No unnecessary permissions required - • Quickly search images, videos & files - • Open & view many different photo and video types (RAW, SVG, panoramic etc) - • A variety of intuitive gestures to easily edit & organize files - • Lots of ways to filter, group & sort files - • Customize the appearance of Simple Gallery Pro - • Available in 32 languages - • Mark files as favorites for quick access - • Protect your photos & videos with a pattern, pin or fingerprint - • Use pin, pattern & fingerprint to protect the app launch or specific functions too - • Recover deleted photos & videos from the recycle bin - • Toggle visibility of files to hide photos & videos - • Create a customizable slideshow of your files - • View detailed information of your files (resolution, EXIF values etc) - • Simple Gallery Pro is open source - … and much much more! + • Thư viện ngoại tuyến không có quảng cáo hoặc popups   - PHOTO GALLERY EDITOR - Simple Gallery Pro makes it easy to edit your pictures on the fly. Crop, flip, rotate and resize your pictures. If you’re feeling a little more creative you can add filters and draw on your pictures! + • Trình chỉnh sửa ảnh thư viện đơn giản - cắt, xoay, thay đổi kích thước, vẽ, lọc & hơn nữa - SUPPORT FOR MANY FILE TYPES - Unlike some other gallery viewers & photo organizers, Simple Gallery Pro supports a huge range of different file types including JPEG, PNG, MP4, MKV, RAW, SVG, Panoramic photos, Panoramic videos and many more. +       • Không cần truy cập internet, mang lại cho bạn sự riêng tư và bảo mật hơn - HIGHLY CUSTOMIZABLE GALLERY MANAGER - From the UI to the function buttons on the bottom toolbar, Simple Gallery Pro is highly customizable and works the way you want it to. No other gallery manager has this kind of flexibility! Thanks to being open source, we’re also available in 32 languages! +       • Không cần quyền không cần thiết   - RECOVER DELETED PHOTOS & VIDEOS - Accidentally deleted a precious photo or video? Don’t worry! Simple Gallery Pro features a handy recycle bin where you can recover deleted photos & videos easily. +       • Nhanh chóng tìm kiếm hình ảnh, video & các tập tin +        + • Mở & xem nhiều loại ảnh và video khác nhau (RAW, SVG, toàn cảnh, v.v.)     - PROTECT & HIDE PHOTOS, VIDEOS & FILES - Using pin, pattern or your device’s fingerprint scanner you can protect and hide photos, videos & entire albums. You can protect the app itself or place locks on specific functions of the app. For example, you can’t delete a file without a fingerprint scan, helping to protect your files from accidental deletion. +      • Một loạt các cử chỉ trực quan để dễ dàng chỉnh sửa & tổ chức tập tin - Check out the full suite of Simple Tools here: +       • Rất nhiều cách để lọc, nhóm & sắp xếp tập tin + +       • Tùy chỉnh giao diện của Simple Gallery Pro    + +       • Có sẵn trong 32 ngôn ngữ    + +       • Đánh dấu các tập tin là mục yêu thích để truy cập nhanh + +       • Bảo vệ ảnh của bạn & video có mẫu hình, pin hoặc dấu vân tay     + +      • Sử dụng pin, mẫu hình & dấu vân tay để bảo vệ khởi chạy ứng dụng hoặc các chức năng cụ thể + +       • Khôi phục ảnh đã xóa & video từ thùng rác     + +      • Chuyển đổi khả năng hiển thị của các tệp để ẩn ảnh & video    + +       • Tạo một slideshow tùy biến các tập tin của bạn + +       • Xem thông tin chi tiết về các tập tin của bạn (độ phân giải, giá trị EXIF, v.v.) + +       • Simple Gallery Pro là mã nguồn mở + +         Nhiều và nhiều hơn nữa! + + TRÌNH BIÊN TẬP ẢNH + Simple Gallery Pro giúp bạn dễ dàng chỉnh sửa ảnh của mình một cách nhanh chóng. Cắt, lật, xoay và thay đổi kích thước hình ảnh của bạn. Nếu bạn cảm thấy sáng tạo hơn một chút, bạn có thể thêm các bộ lọc và vẽ lên hình ảnh của mình! + + HỖ TRỢ NHIỀU ĐỊNH DẠNG FILE + Không giống như một số Trình xem thư viện khác & Trình tổ chức ảnh, Simple Gallery Pro hỗ trợ rất nhiều loại tệp khác nhau bao gồm JPEG, PNG, MP4, MKV, RAW, SVG, Ảnh toàn cảnh, Video toàn cảnh và nhiều loại khác. + + TRÌNH QUẢN LÝ THƯ VIỆN TÙY BIẾN CAO + Từ giao diện người dùng đến các nút chức năng trên thanh công cụ dưới cùng, Simple Gallery Pro có khả năng tùy biến cao và hoạt động theo cách bạn muốn. Không có trình quản lý thư viện nào khác có sự linh hoạt này! Nhờ nguồn mở, chúng tôi cũng có sẵn trong 32 ngôn ngữ! + + PHỤC HỒI ẢNH & VIDEO ĐÃ BỊ XÓA + Vô tình xóa một bức ảnh hoặc video quý giá? Hãy lo lắng! Simple Gallery Pro có thùng rác tiện dụng, nơi bạn có thể khôi phục ảnh & video đã xóa dễ dàng. + + BẢO VỆ & ẨN ẢNH ,VIDEO & TỆP + Sử dụng Mã pin, mẫu hình hoặc vân tay của bạn, bạn có thể bảo vệ và ẩn ảnh, video & toàn bộ album. Bạn có thể tự bảo vệ ứng dụng hoặc đặt khóa trên các chức năng cụ thể của ứng dụng. Ví dụ, bạn không thể xóa một tập tin mà chưa quét dấu vân tay, giúp bảo vệ các tập tin của bạn khỏi bị xóa do vô tình. + + Kiểm tra bộ công cụ Simple đầy đủ tại đây: https://www.simplemobiletools.com - Standalone website of Simple Gallery Pro: + Website của Simple Gallery Pro: https://www.simplemobiletools.com/gallery Facebook: diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 97d1713ca..d2c68ffe9 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -317,7 +317,7 @@ 简约图库 Pro - 图片管理 & 编辑 - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery 简约图库 Pro 是一个高度可定制的图库。管理并编辑你的照片,从回收站中恢复已删除的照片,保护并隐藏文件,查看RAW,SVG等等多种照片和视频格式。 diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 66b761c8a..037f78856 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -319,7 +319,7 @@ 簡易相簿 Pro - 相片管理&編輯器 - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery 簡易相簿Pro是一個高度自訂化的離線相簿。整理和編輯你的照片,從回收桶恢復刪除的檔案,保護和隱藏檔案,以及瀏覽大量不同的照片&影片格式,包含RAW、SVG…等更多。 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index ae4184a87..f28bde093 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -82,7 +82,7 @@ 路徑 無效的圖片路徑 圖片編輯失敗 - File edited successfully + 檔案編輯成功 編輯圖片: 找不到圖片編輯器 未知的檔案位置 @@ -203,85 +203,85 @@ 檔案顯示 - Custom - Reset - Square - Transform - Filter - None - Adjust - Shadows - Exposure - Highlights - Brightness - Contrast - Saturation - Clarity + 自訂 + 重置 + 正方形 + 變形 + 濾鏡 + + 調整 + 暗部 + 曝光 + 高光 + 亮度 + 對比 + 飽和度 + 清晰度 Gamma - Blacks - Whites - Temperature - Sharpness - Reset - Focus - None - Radial - Linear - Mirrored - Gaussian - Text - Text Options - Text Color - Font - Add - Edit - Straighten - Font - Color - BG Color - Alignment - To Front - Delete - Your text - Brush - Color - Size - Hardness - To Front - Delete - Brush Color - Editor - Close Editor? - Do you really want to discard the image? - Yes - No - Cancel - Accept - Save - Exporting image… - Exporting image %s. - Flip H - Flip V - Undo - Redo - Color Picker - Transparent - White - Gray - Black - Light blue - Blue - Purple - Orchid - Pink - Red - Orange - Gold - Yellow - Olive - Green - Aquamarin - Pipettable color + 黑色 + 白色 + 色溫 + 銳利度 + 重置 + 聚焦 + + 放射 + 線性 + 鏡像 + 高斯 + 文字 + 文字選項 + 文字顏色 + 字型 + 添加 + 編輯 + 拉伸 + 字型 + 顏色 + 背景顏色 + 對齊 + 移到最上層 + 刪除 + 你的文字 + 筆刷 + 顏色 + 尺寸 + 硬度 + 移到最上層 + 刪除 + 筆刷顏色 + 編輯器 + 關閉編輯器? + 你確定要捨棄圖片嗎? + + + 取消 + 接受 + 儲存 + 圖片匯出中… + 圖片%s匯出中。 + 水平翻轉 + 垂直翻轉 + 復原 + 取消復原 + 顏色挑選器 + 透明 + 白色 + 灰色 + 黑色 + 淺藍 + 藍色 + 紫色 + 淡紫 + 粉紅 + 紅色 + 橘色 + 金色 + 黃色 + 橄欖 + 綠色 + 藍綠 + 顏色吸取器 我如何將簡易相簿設為預設相簿? @@ -319,7 +319,7 @@ 簡易相簿 Pro - 相片管理&編輯器 - 毫無阻礙地瀏覽您的回憶。 + 使用相片和影片相簿來毫無阻礙地瀏覽您的回憶。 簡易相簿Pro是一個高度自訂化的離線相簿。整理和編輯你的照片,從回收桶恢復刪除的檔案,保護和隱藏檔案,以及瀏覽大量不同的照片&影片格式,包含RAW、SVG…等更多。 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 4f949f7c1..2e8c6d123 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -319,7 +319,7 @@ Simple Gallery Pro - Photo Manager & Editor - Browse your memories without any interruptions. + Browse your memories without any interruptions with this photo and video gallery Simple Gallery Pro is a highly customizable offline gallery. Organize & edit your photos, recover deleted files with the recycle bin, protect & hide files and view a huge variety of different photo & video formats including RAW, SVG and much more. diff --git a/fastlane/metadata/android/cs/full_description.txt b/fastlane/metadata/android/cs/full_description.txt index 70cb84ae8..621e34bd7 100644 --- a/fastlane/metadata/android/cs/full_description.txt +++ b/fastlane/metadata/android/cs/full_description.txt @@ -1,6 +1,6 @@ -Jednoduchá Galerie Pro je vysoce přizpůsobitelná offline galerie. Organizujte a upravujte své fotografie, obnovujte smazané fotografie s funkcí odpadkového koše, chraňte je a skrývejte. Prohlížejte množství různých foto a video formátů včetně RAW, SVG a mnoho dalších. +Jednoduchá galerie Pro je vysoce přizpůsobitelná offline galerie. Organizujte a upravujte své fotografie, obnovujte smazané fotografie s funkcí odpadkového koše, chraňte je a skrývejte. Prohlížejte množství různých foto a video formátů včetně RAW, SVG a mnoho dalších. -Aplikace neobsahuje žádné reklamy ani nepotřebná oprávnění. Tím, že ani nevyžaduje připojení k internetu je vaše soukromí maximálně chráněno. +Aplikace neobsahuje žádné reklamy ani nepotřebná oprávnění. Tím, že ani nevyžaduje připojení k internetu, je vaše soukromí maximálně chráněno. ------------------------------------------------- JEDNODUCHÁ GALERIE PRO – FUNKCE @@ -14,7 +14,7 @@ Aplikace neobsahuje žádné reklamy ani nepotřebná oprávnění. Tím, že an • Otevírejte mnoho rozličných formátů fotografií a videí (RAW, SVG, GIF, panorama, atd) • Množství intuitivních gest pro jednoduchou úpravu a organizaci souborů • Mnoho různých způsobů filtrování, seskupování a řazení souborů -• Změňte si vzhled Jednoduché galerie pro +• Změňte si vzhled Jednoduché galerie Pro • Dostupná ve 32 jazycích • Označte si oblíbené soubory pro rychlý přístup • Chraňte své fotografie a videa pomocí pinu, vzoru nebo otiskem prstu @@ -27,16 +27,16 @@ Aplikace neobsahuje žádné reklamy ani nepotřebná oprávnění. Tím, že an … a mnoho dalších! EDITOR OBRÁZKŮ -Jednoduchá Galerie Pro umožňuje snadnou úpravu obrázků. Ořezávejte, překlápějte, otáčejte či měňte jejich velikost. Pokud se cítíte kreativně, můžete také aplikovat filtry nebo do obrázku kreslit! +Jednoduchá galerie Pro umožňuje snadnou úpravu obrázků. Ořezávejte, překlápějte, otáčejte či měňte jejich velikost. Pokud se cítíte kreativně, můžete také aplikovat filtry nebo do obrázku kreslit! PODPORA MNOHA TYPŮ SOUBORŮ -Na rozdíl od některých galerií podporuje Jednoduchá Galerie Pro velké množství různých druhů souborů včetně JPEG, PNG, MP4, MKV, RAW, SVG, panoramatických fotografií a videí. +Na rozdíl od některých galerií podporuje Jednoduchá galerie Pro velké množství různých druhů souborů včetně JPEG, PNG, MP4, MKV, RAW, SVG, panoramatických fotografií a videí. Vysoce upravitelný správce galerie -Od vzhledu až po funkční tlačítka na spodní liště, Jednoduchá Galerie Pro je plně nastavitelná a bude fungovat přesně jak si budete přát. Žádná jiná galerie nenabízí takovou flexibilitu! A díky otevřenému kódu je naše aplikace dostupná ve 32 jazycích! +Od vzhledu až po funkční tlačítka na spodní liště, Jednoduchá galerie Pro je plně nastavitelná a bude fungovat přesně jak si budete přát. Žádná jiná galerie nenabízí takovou flexibilitu! A díky otevřenému kódu je naše aplikace dostupná ve 32 jazycích! OBNOVTE SMAZANÉ FOTOGRAFIE A VIDEA -Smazali jste nechtěně důležitou fotografii nebo video? Žádný strach! Jednoduchá Galerie Pro pro podobné případy nabízí funkci odpadkového koše, odkud smazané fotografie a videa snadno obnovíte. +Smazali jste nechtěně důležitou fotografii nebo video? Žádný strach! Jednoduchá galerie Pro pro podobné případy nabízí funkci odpadkového koše, odkud smazané fotografie a videa snadno obnovíte. CHRAŇTE A SKRÝVEJTE SVÉ FOTOGRAFIE A VIDEA Použitím pinu, vzoru nebo otisku prstu snadno své fotografie, videa či celá alba ochráníte nebo skryjete. Můžete ochránit i spuštění samotné aplikace, nebo některé její funkce. Například můžete zabránit náhodnému smazání souboru bez potvrzení otiskem prstu. diff --git a/fastlane/metadata/android/cs/short_description.txt b/fastlane/metadata/android/cs/short_description.txt index d9ce4d9f8..07d253324 100644 --- a/fastlane/metadata/android/cs/short_description.txt +++ b/fastlane/metadata/android/cs/short_description.txt @@ -1 +1 @@ -Offline galerie bez reklam. Organizujte, upravujte a chraňte své fotografie a videa +Prohlížejte svoje vzpomínky bez prerušení s touto foto a video galerií. diff --git a/fastlane/metadata/android/cs/title.txt b/fastlane/metadata/android/cs/title.txt index 085c5b107..c4d4949ec 100644 --- a/fastlane/metadata/android/cs/title.txt +++ b/fastlane/metadata/android/cs/title.txt @@ -1 +1 @@ -Jednoduchá Galerie Pro - Organizér a editor fotografií +Jednoduchá Galerie Pro - Organizér fotografií diff --git a/fastlane/metadata/android/de/short_description.txt b/fastlane/metadata/android/de/short_description.txt index ac0a14175..d9bd6cf0b 100644 --- a/fastlane/metadata/android/de/short_description.txt +++ b/fastlane/metadata/android/de/short_description.txt @@ -1 +1 @@ -Galerie ohne Werbung. Ordnen, Bearbeiten und Wiederherstellen von Fotos & Videos +Bewahre deine Andenken ohne Unterbrechungen mit dieser Foto- und Videogalerie diff --git a/fastlane/metadata/android/el/short_description.txt b/fastlane/metadata/android/el/short_description.txt index 67f7afb67..400c185f3 100644 --- a/fastlane/metadata/android/el/short_description.txt +++ b/fastlane/metadata/android/el/short_description.txt @@ -1 +1 @@ -Ξεφυλλίστε τις αναμνήσεις σας χωρίς διακοπές. +Περιηγηθείτε στις αναμνήσεις σας χωρίς διακοπές με αυτήν τη συλλογή φωτό &βίντεο diff --git a/fastlane/metadata/android/en-US/changelogs/284.txt b/fastlane/metadata/android/en-US/changelogs/284.txt new file mode 100644 index 000000000..a6136ec22 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/284.txt @@ -0,0 +1,5 @@ + * Fixed a few SD card related issues + * Moved Focus in the editor as the last tool, to prioritize more popular tools + * Added a new Crop aspect ratio 37:18 to be used instead of 18.5x9 + * Some translation improvements + * Last app update for a while now, wishing you a Happy New Year! diff --git a/fastlane/metadata/android/en-US/changelogs/285.txt b/fastlane/metadata/android/en-US/changelogs/285.txt new file mode 100644 index 000000000..abad491dc --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/285.txt @@ -0,0 +1,3 @@ + * Fixed a few SD card related issues + * Fixed some theming issues + * Added some UI and translation improvements diff --git a/fastlane/metadata/android/en-US/changelogs/286.txt b/fastlane/metadata/android/en-US/changelogs/286.txt new file mode 100644 index 000000000..49b5efac3 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/286.txt @@ -0,0 +1,4 @@ + * Improved the image loading performance + * Allow excluding the root "/" folder + * Properly handle editing files with spaces in path + * Couple other UX, UI, translation and stability improvements diff --git a/fastlane/metadata/android/en-US/changelogs/287.txt b/fastlane/metadata/android/en-US/changelogs/287.txt new file mode 100644 index 000000000..914f7ba83 --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/287.txt @@ -0,0 +1,6 @@ + * Do not convert every edited file into a JPG, keep PNGs intact + * Fixed a glitch with empty portrait photos being shown as grey thumbnails + * Show a FAQ/settings prompt once at pressing Rate Us in the About section + * Added a 16:10 editor crop aspect ratio, used mostly on tablets + * Do some preparations for better handling Date Taken values and Favorites + * Other stability and translation improvements diff --git a/fastlane/metadata/android/en-US/changelogs/288.txt b/fastlane/metadata/android/en-US/changelogs/288.txt new file mode 100644 index 000000000..9631ebb6a --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/288.txt @@ -0,0 +1 @@ + * Reverted Glide to fix some crashes diff --git a/fastlane/metadata/android/en-US/changelogs/289.txt b/fastlane/metadata/android/en-US/changelogs/289.txt new file mode 100644 index 000000000..6c4167f4f --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/289.txt @@ -0,0 +1,8 @@ + * Properly handle sorting by date taken after using "Fix Date Taken values" on the wrong files + * Fixed some issues at copying files, when the source was on an SD card + * Change the way Favorite items are stored, to avoid accidental removal + * Improved video looping (by ForgottenUmbrella) + * Recognize a new type of panoramic photos + * Properly remember last video playback position if the video is paused on exit + * Properly color the top status bar icons at using light primary colors + * Other UX and translation improvements diff --git a/fastlane/metadata/android/en-US/images/square.png b/fastlane/metadata/android/en-US/images/square.png new file mode 100644 index 000000000..777308907 Binary files /dev/null and b/fastlane/metadata/android/en-US/images/square.png differ diff --git a/fastlane/metadata/android/en-US/images/square.xcf b/fastlane/metadata/android/en-US/images/square.xcf new file mode 100644 index 000000000..526ac388f Binary files /dev/null and b/fastlane/metadata/android/en-US/images/square.xcf differ diff --git a/fastlane/metadata/android/es/short_description.txt b/fastlane/metadata/android/es/short_description.txt index 56250b41d..19cbec0ad 100644 --- a/fastlane/metadata/android/es/short_description.txt +++ b/fastlane/metadata/android/es/short_description.txt @@ -1 +1 @@ -Explore sus recuerdos sin interrupciones. +Explore sus recuerdos sin interrupciones con esta galeria de foto y vídeo diff --git a/fastlane/metadata/android/it/short_description.txt b/fastlane/metadata/android/it/short_description.txt index 14614d0a9..0f202fe9e 100644 --- a/fastlane/metadata/android/it/short_description.txt +++ b/fastlane/metadata/android/it/short_description.txt @@ -1 +1 @@ -Galleria offline senza pubblicità. Organizza, modifica e proteggi foto e video +Sfoglia le tue memorie senza alcuna interruzione. diff --git a/fastlane/metadata/android/nl/short_description.txt b/fastlane/metadata/android/nl/short_description.txt index 025e75925..b0c2add72 100644 --- a/fastlane/metadata/android/nl/short_description.txt +++ b/fastlane/metadata/android/nl/short_description.txt @@ -1 +1 @@ -Navigeer zonder afleidingen door al uw herinneringen. +Navigeer met deze galerij zonder afleidingen door al je herinneringen diff --git a/fastlane/metadata/android/pt-rBR/short_description.txt b/fastlane/metadata/android/pt-rBR/short_description.txt index d29c44f98..e87fc131b 100644 --- a/fastlane/metadata/android/pt-rBR/short_description.txt +++ b/fastlane/metadata/android/pt-rBR/short_description.txt @@ -1 +1 @@ -Galeria offline sem anúncios. Organize, edite, e proteja fotos e vídeos. +Procure suas memórias sem interrupções. diff --git a/fastlane/metadata/android/ru/short_description.txt b/fastlane/metadata/android/ru/short_description.txt index 8b0a76ce3..d2b3cb34d 100644 --- a/fastlane/metadata/android/ru/short_description.txt +++ b/fastlane/metadata/android/ru/short_description.txt @@ -1 +1 @@ -Просматривайте свои воспоминания без перерывов. +Просматривайте свои воспоминания без перерывов с этой фото- и видеогалереей diff --git a/fastlane/metadata/android/tr/short_description.txt b/fastlane/metadata/android/tr/short_description.txt index 690c2cc5a..66c5ba9e8 100644 --- a/fastlane/metadata/android/tr/short_description.txt +++ b/fastlane/metadata/android/tr/short_description.txt @@ -1 +1 @@ -Reklamsız çevrimdışı galeri. Fotoğraf & videolarınızı yönetin ve düzenleyin +Bu fotoğraf ve video galerisinde kesintisiz olarak anılarınıza göz atın diff --git a/fastlane/metadata/android/tr/title.txt b/fastlane/metadata/android/tr/title.txt index 7110dfc6f..5a8fd5a45 100644 --- a/fastlane/metadata/android/tr/title.txt +++ b/fastlane/metadata/android/tr/title.txt @@ -1 +1 @@ -Basit Galeri Pro - Fotoğraf Yönetici & Düzenleyici +Basit Galeri Pro - Fotoğraf Yönetici, Düzenleyici diff --git a/fastlane/metadata/android/vi/full_description.txt b/fastlane/metadata/android/vi/full_description.txt new file mode 100644 index 000000000..11297ac44 --- /dev/null +++ b/fastlane/metadata/android/vi/full_description.txt @@ -0,0 +1,52 @@ +Simple Gallery Pro là một bộ sưu tập ngoại tuyến có khả năng tùy biến cao. Tổ chức & chỉnh sửa ảnh của bạn, khôi phục các tệp đã xóa bằng thùng rác, bảo vệ & ẩn các tệp và xem được nhiều định dạng ảnh & video bao gồm RAW, SVG và nhiều hơn nữa. Ứng dụng này không chứa quảng cáo và các quyền không cần thiết. Vì ứng dụng không có yêu cầu truy cập internet, quyền riêng tư của bạn sẽ được bảo vệ. + +------------------------------------------------- +SIMPLE GALLERY PRO – TÍNH NĂNG +------------------------------------------------- + +• Thư viện ngoại tuyến không có quảng cáo hoặc popups +• Trình chỉnh sửa ảnh thư viện đơn giản - cắt, xoay, thay đổi kích thước, vẽ, lọc & hơn nữa +• Không cần truy cập internet, mang lại cho bạn sự riêng tư và bảo mật hơn +• Không cần quyền không cần thiết +• Nhanh chóng tìm kiếm hình ảnh, video & các tập tin +• Mở & xem nhiều loại ảnh và video khác nhau (RAW, SVG, toàn cảnh, v.v.) +• Một loạt các cử chỉ trực quan để dễ dàng chỉnh sửa & tổ chức tập tin +• Rất nhiều cách để lọc, nhóm & sắp xếp tập tin +• Tùy chỉnh giao diện của Simple Gallery Pro +• Có sẵn trong 32 ngôn ngữ +• Đánh dấu các tập tin là mục yêu thích để truy cập nhanh +• Bảo vệ ảnh của bạn & video có mẫu hình, pin hoặc dấu vân tay +• Sử dụng pin, mẫu hình & dấu vân tay để bảo vệ khởi chạy ứng dụng hoặc các chức năng cụ thể +• Khôi phục ảnh đã xóa & video từ thùng rác +• Chuyển đổi khả năng hiển thị của các tệp để ẩn ảnh & video +• Tạo một slideshow tùy biến các tập tin của bạn +• Xem thông tin chi tiết về các tập tin của bạn (độ phân giải, giá trị EXIF, v.v.) +• Simple Gallery Pro là mã nguồn mở +  Nhiều và nhiều hơn nữa! + +TRÌNH BIÊN TẬP ẢNH +Simple Gallery Pro giúp bạn dễ dàng chỉnh sửa ảnh của mình một cách nhanh chóng. Cắt, lật, xoay và thay đổi kích thước hình ảnh của bạn. Nếu bạn cảm thấy sáng tạo hơn một chút, bạn có thể thêm các bộ lọc và vẽ lên hình ảnh của mình! + +HỖ TRỢ NHIỀU ĐỊNH DẠNG FILE +Không giống như một số Trình xem thư viện khác & Trình tổ chức ảnh, Simple Gallery Pro hỗ trợ rất nhiều loại tệp khác nhau bao gồm JPEG, PNG, MP4, MKV, RAW, SVG, Ảnh toàn cảnh, Video toàn cảnh và nhiều loại khác. + +TRÌNH QUẢN LÝ THƯ VIỆN TÙY BIẾN CAO +Từ giao diện người dùng đến các nút chức năng trên thanh công cụ dưới cùng, Simple Gallery Pro có khả năng tùy biến cao và hoạt động theo cách bạn muốn. Không có trình quản lý thư viện nào khác có sự linh hoạt này! Nhờ nguồn mở, chúng tôi cũng có sẵn trong 32 ngôn ngữ! + +PHỤC HỒI ẢNH & VIDEO ĐÃ BỊ XÓA +Vô tình xóa một bức ảnh hoặc video quý giá? Hãy lo lắng! Simple Gallery Pro có thùng rác tiện dụng, nơi bạn có thể khôi phục ảnh & video đã xóa dễ dàng. + +BẢO VỆ & ẨN ẢNH ,VIDEO & TỆP +Sử dụng Mã pin, mẫu hình hoặc vân tay của bạn, bạn có thể bảo vệ và ẩn ảnh, video & toàn bộ album. Bạn có thể tự bảo vệ ứng dụng hoặc đặt khóa trên các chức năng cụ thể của ứng dụng. Ví dụ, bạn không thể xóa một tập tin mà chưa quét dấu vân tay, giúp bảo vệ các tập tin của bạn khỏi bị xóa do vô tình. + +Kiểm tra bộ công cụ Simple đầy đủ tại đây: +https://www.simplemobiletools.com + +Website của Simple Gallery Pro: +https://www.simplemobiletools.com/gallery + +Facebook: +https://www.facebook.com/simplemobiletools + +Reddit: +https://www.reddit.com/r/SimpleMobileTools diff --git a/fastlane/metadata/android/vi/short_description.txt b/fastlane/metadata/android/vi/short_description.txt new file mode 100644 index 000000000..5fdf2f40c --- /dev/null +++ b/fastlane/metadata/android/vi/short_description.txt @@ -0,0 +1 @@ +Duyệt khoảnh khắc của bạn mà không có bất kỳ gián đoạn. diff --git a/fastlane/metadata/android/vi/title.txt b/fastlane/metadata/android/vi/title.txt new file mode 100644 index 000000000..fe6636dbd --- /dev/null +++ b/fastlane/metadata/android/vi/title.txt @@ -0,0 +1 @@ +Simple Gallery Pro - Trình quản lý ảnh & biên tập diff --git a/fastlane/metadata/android/zh-rTW/short_description.txt b/fastlane/metadata/android/zh-rTW/short_description.txt index a2063faf6..a7ca00aab 100644 --- a/fastlane/metadata/android/zh-rTW/short_description.txt +++ b/fastlane/metadata/android/zh-rTW/short_description.txt @@ -1 +1 @@ -毫無阻礙地瀏覽您的回憶。 +使用相片和影片相簿來毫無阻礙地瀏覽您的回憶。