Merge branch 'master' into master

This commit is contained in:
Tibor Kaputa 2020-11-01 17:35:59 +01:00 committed by GitHub
commit d79e6722c4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
53 changed files with 170 additions and 386 deletions

View file

@ -1,6 +1,13 @@
Changelog
==========
Version 6.16.5 *(2020-10-28)*
----------------------------
* Added some hidden folder handling related improvements
* Fixed saving files on the SD card after editing
* Couple other UX, translation and performance improvements
Version 6.16.4 *(2020-10-24)*
----------------------------

View file

@ -17,8 +17,8 @@ android {
applicationId "com.simplemobiletools.gallery.pro"
minSdkVersion 21
targetSdkVersion 29
versionCode 323
versionName "6.16.4"
versionCode 324
versionName "6.16.5"
setProperty("archivesBaseName", "gallery-$versionCode")
vectorDrawables.useSupportLibrary = true
}
@ -77,7 +77,7 @@ android {
}
dependencies {
implementation 'com.simplemobiletools:commons:5.31.8'
implementation 'com.simplemobiletools:commons:5.31.17'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
implementation 'it.sephiroth.android.exif:library:1.0.1'
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.19'

View file

@ -23,7 +23,6 @@ import androidx.recyclerview.widget.RecyclerView
import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.dialogs.CreateNewFolderDialog
import com.simplemobiletools.commons.dialogs.FilePickerDialog
import com.simplemobiletools.commons.dialogs.NewAppsIconsDialog
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.FileDirItem
@ -156,12 +155,6 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
finish()
}
}
// notify some users about the Dialer, SMS Messenger and Voice Recorder apps
if (!config.wasMessengerRecorderShown && config.appRunCount > 35) {
NewAppsIconsDialog(this)
config.wasMessengerRecorderShown = true
}
}
override fun onStart() {
@ -644,6 +637,21 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
layoutManager.spanCount = config.dirColumnCnt
}
private fun setupListLayoutManager() {
val layoutManager = directories_grid.layoutManager as MyGridLayoutManager
layoutManager.spanCount = 1
layoutManager.orientation = RecyclerView.VERTICAL
directories_refresh_layout.layoutParams = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
val smallMargin = resources.getDimension(R.dimen.small_margin).toInt()
(directories_grid.layoutParams as RelativeLayout.LayoutParams).apply {
topMargin = smallMargin
bottomMargin = smallMargin
}
mZoomListener = null
}
private fun measureRecyclerViewContent(directories: ArrayList<Directory>) {
directories_grid.onGlobalLayout {
if (config.scrollHorizontally) {
@ -693,21 +701,6 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
}
}
private fun setupListLayoutManager() {
val layoutManager = directories_grid.layoutManager as MyGridLayoutManager
layoutManager.spanCount = 1
layoutManager.orientation = RecyclerView.VERTICAL
directories_refresh_layout.layoutParams = FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
val smallMargin = resources.getDimension(R.dimen.small_margin).toInt()
(directories_grid.layoutParams as RelativeLayout.LayoutParams).apply {
topMargin = smallMargin
bottomMargin = smallMargin
}
mZoomListener = null
}
private fun toggleRecycleBin(show: Boolean) {
config.showRecycleBinAtFolders = show
invalidateOptionsMenu()
@ -913,6 +906,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
val hiddenString = getString(R.string.hidden)
val albumCovers = config.parseAlbumCovers()
val includedFolders = config.includedFolders
val noMediaFolders = getNoMediaFoldersSync()
val tempFolderPath = config.tempFolderPath
val getProperFileSize = config.directorySorting and SORT_BY_SIZE != 0
val favoritePaths = getFavoritePaths()
@ -947,7 +941,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
}
directory
} else {
createDirectoryFromMedia(directory.path, curMedia, albumCovers, hiddenString, includedFolders, getProperFileSize)
createDirectoryFromMedia(directory.path, curMedia, albumCovers, hiddenString, includedFolders, getProperFileSize, noMediaFolders)
}
// we are looping through the already displayed folders looking for changes, do not do anything if nothing changed
@ -1053,7 +1047,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
}
}
val newDir = createDirectoryFromMedia(folder, newMedia, albumCovers, hiddenString, includedFolders, getProperFileSize)
val newDir = createDirectoryFromMedia(folder, newMedia, albumCovers, hiddenString, includedFolders, getProperFileSize, noMediaFolders)
dirs.add(newDir)
setupAdapter(dirs)

View file

@ -13,6 +13,7 @@ import androidx.core.view.MenuItemCompat
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.commons.models.FileDirItem
import com.simplemobiletools.commons.views.MyGridLayoutManager

View file

@ -15,10 +15,7 @@ import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
import com.simplemobiletools.commons.dialogs.*
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.FAVORITES
import com.simplemobiletools.commons.helpers.SHOW_ALL_TABS
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.commons.helpers.isOreoPlus
import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.FileDirItem
import com.simplemobiletools.commons.views.FastScroller
import com.simplemobiletools.commons.views.MyRecyclerView
@ -305,7 +302,7 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: ArrayList<Directo
val includedFolders = activity.config.includedFolders
val hidden = activity.getString(R.string.hidden)
dirs.forEach {
it.name = activity.checkAppendingHidden(it.path, hidden, includedFolders)
it.name = activity.checkAppendingHidden(it.path, hidden, includedFolders, ArrayList())
}
listener?.updateDirectories(dirs.toMutableList() as ArrayList)
activity.runOnUiThread {
@ -479,10 +476,10 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: ArrayList<Directo
intent.putExtra(DIRECTORY, path)
val shortcut = ShortcutInfo.Builder(activity, path)
.setShortLabel(dir.name)
.setIcon(Icon.createWithBitmap(drawable.convertToBitmap()))
.setIntent(intent)
.build()
.setShortLabel(dir.name)
.setIcon(Icon.createWithBitmap(drawable.convertToBitmap()))
.setIntent(intent)
.build()
manager.requestPinShortcut(shortcut, null)
}

View file

@ -19,6 +19,7 @@ import com.simplemobiletools.commons.dialogs.RenameDialog
import com.simplemobiletools.commons.dialogs.RenameItemDialog
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.FAVORITES
import com.simplemobiletools.commons.helpers.VIEW_TYPE_LIST
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.commons.helpers.isOreoPlus
import com.simplemobiletools.commons.models.FileDirItem

View file

@ -5,11 +5,11 @@ import androidx.appcompat.app.AlertDialog
import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.extensions.beVisibleIf
import com.simplemobiletools.commons.extensions.setupDialogStuff
import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
import com.simplemobiletools.commons.helpers.VIEW_TYPE_LIST
import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.extensions.config
import com.simplemobiletools.gallery.pro.helpers.SHOW_ALL
import com.simplemobiletools.gallery.pro.helpers.VIEW_TYPE_GRID
import com.simplemobiletools.gallery.pro.helpers.VIEW_TYPE_LIST
import kotlinx.android.synthetic.main.dialog_change_view_type.view.*
class ChangeViewTypeDialog(val activity: BaseSimpleActivity, val fromFoldersView: Boolean, val path: String = "", val callback: () -> Unit) {

View file

@ -6,11 +6,11 @@ import androidx.recyclerview.widget.RecyclerView
import com.simplemobiletools.commons.activities.BaseSimpleActivity
import com.simplemobiletools.commons.dialogs.FilePickerDialog
import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
import com.simplemobiletools.commons.views.MyGridLayoutManager
import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.adapters.DirectoryAdapter
import com.simplemobiletools.gallery.pro.extensions.*
import com.simplemobiletools.gallery.pro.helpers.VIEW_TYPE_GRID
import com.simplemobiletools.gallery.pro.models.Directory
import kotlinx.android.synthetic.main.dialog_directory_picker.view.*

View file

@ -7,6 +7,7 @@ import com.simplemobiletools.commons.extensions.beGoneIf
import com.simplemobiletools.commons.extensions.beVisibleIf
import com.simplemobiletools.commons.extensions.getTimeFormat
import com.simplemobiletools.commons.extensions.setupDialogStuff
import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
import com.simplemobiletools.commons.views.MyGridLayoutManager
import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.adapters.MediaAdapter
@ -14,7 +15,6 @@ import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask
import com.simplemobiletools.gallery.pro.extensions.config
import com.simplemobiletools.gallery.pro.extensions.getCachedMedia
import com.simplemobiletools.gallery.pro.helpers.SHOW_ALL
import com.simplemobiletools.gallery.pro.helpers.VIEW_TYPE_GRID
import com.simplemobiletools.gallery.pro.models.Medium
import com.simplemobiletools.gallery.pro.models.ThumbnailItem
import kotlinx.android.synthetic.main.dialog_medium_picker.view.*

View file

@ -3,6 +3,7 @@ package com.simplemobiletools.gallery.pro.extensions
import android.annotation.TargetApi
import android.app.Activity
import android.content.ContentProviderOperation
import android.content.ContentValues
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.BitmapFactory
@ -13,6 +14,7 @@ import android.media.ExifInterface
import android.net.Uri
import android.os.Build
import android.provider.MediaStore
import android.provider.MediaStore.Files
import android.provider.MediaStore.Images
import android.util.DisplayMetrics
import android.view.View
@ -102,7 +104,8 @@ fun SimpleActivity.launchAbout() {
FAQItem(R.string.faq_15_title, R.string.faq_15_text),
FAQItem(R.string.faq_2_title_commons, R.string.faq_2_text_commons),
FAQItem(R.string.faq_6_title_commons, R.string.faq_6_text_commons),
FAQItem(R.string.faq_7_title_commons, R.string.faq_7_text_commons))
FAQItem(R.string.faq_7_title_commons, R.string.faq_7_text_commons),
FAQItem(R.string.faq_9_title_commons, R.string.faq_9_text_commons))
startAboutActivity(R.string.app_name, licenses, BuildConfig.VERSION_NAME, faqItems, true)
}
@ -147,9 +150,8 @@ fun BaseSimpleActivity.addNoMedia(path: String, callback: () -> Unit) {
val fileDocument = getDocumentFile(path)
if (fileDocument?.exists() == true && fileDocument.isDirectory) {
fileDocument.createFile("", NOMEDIA)
applicationContext.scanPathRecursively(file.absolutePath) {
callback()
}
addNoMediaIntoMediaStore(file.absolutePath)
callback()
} else {
toast(R.string.unknown_error_occurred)
callback()
@ -158,7 +160,7 @@ fun BaseSimpleActivity.addNoMedia(path: String, callback: () -> Unit) {
} else {
try {
if (file.createNewFile()) {
rescanFolderMedia(file.absolutePath)
addNoMediaIntoMediaStore(file.absolutePath)
} else {
toast(R.string.unknown_error_occurred)
}
@ -169,6 +171,19 @@ fun BaseSimpleActivity.addNoMedia(path: String, callback: () -> Unit) {
}
}
fun BaseSimpleActivity.addNoMediaIntoMediaStore(path: String) {
try {
val content = ContentValues().apply {
put(Files.FileColumns.TITLE, NOMEDIA)
put(Files.FileColumns.DATA, path)
put(Files.FileColumns.MEDIA_TYPE, Files.FileColumns.MEDIA_TYPE_NONE)
}
contentResolver.insert(Files.getContentUri("external"), content)
} catch (e: Exception) {
showErrorToast(e)
}
}
fun BaseSimpleActivity.removeNoMedia(path: String, callback: (() -> Unit)? = null) {
val file = File(path, NOMEDIA)
if (!getDoesFilePathExist(file.absolutePath)) {

View file

@ -304,35 +304,40 @@ fun Context.updateSubfolderCounts(children: ArrayList<Directory>, parentDirs: Ar
fun Context.getNoMediaFolders(callback: (folders: ArrayList<String>) -> Unit) {
ensureBackgroundThread {
val folders = ArrayList<String>()
val uri = Files.getContentUri("external")
val projection = arrayOf(Files.FileColumns.DATA)
val selection = "${Files.FileColumns.MEDIA_TYPE} = ? AND ${Files.FileColumns.TITLE} LIKE ?"
val selectionArgs = arrayOf(Files.FileColumns.MEDIA_TYPE_NONE.toString(), "%$NOMEDIA%")
val sortOrder = "${Files.FileColumns.DATE_MODIFIED} DESC"
val OTGPath = config.OTGPath
var cursor: Cursor? = null
try {
cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder)
if (cursor?.moveToFirst() == true) {
do {
val path = cursor.getStringValue(Files.FileColumns.DATA) ?: continue
val noMediaFile = File(path)
if (getDoesFilePathExist(noMediaFile.absolutePath, OTGPath) && noMediaFile.name == NOMEDIA) {
folders.add("${noMediaFile.parent}/")
}
} while (cursor.moveToNext())
}
} finally {
cursor?.close()
}
callback(folders)
callback(getNoMediaFoldersSync())
}
}
fun Context.getNoMediaFoldersSync(): ArrayList<String> {
val folders = ArrayList<String>()
val uri = Files.getContentUri("external")
val projection = arrayOf(Files.FileColumns.DATA)
val selection = "${Files.FileColumns.MEDIA_TYPE} = ? AND ${Files.FileColumns.TITLE} LIKE ?"
val selectionArgs = arrayOf(Files.FileColumns.MEDIA_TYPE_NONE.toString(), "%$NOMEDIA%")
val sortOrder = "${Files.FileColumns.DATE_MODIFIED} DESC"
val OTGPath = config.OTGPath
var cursor: Cursor? = null
try {
cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder)
if (cursor?.moveToFirst() == true) {
do {
val path = cursor.getStringValue(Files.FileColumns.DATA) ?: continue
val noMediaFile = File(path)
if (getDoesFilePathExist(noMediaFile.absolutePath, OTGPath) && noMediaFile.name == NOMEDIA) {
folders.add(noMediaFile.parent)
}
} while (cursor.moveToNext())
}
} catch (ignored: Exception) {
} finally {
cursor?.close()
}
return folders
}
fun Context.rescanFolderMedia(path: String) {
ensureBackgroundThread {
rescanFolderMediaSync(path)
@ -370,9 +375,9 @@ fun Context.storeDirectoryItems(items: ArrayList<Directory>) {
}
}
fun Context.checkAppendingHidden(path: String, hidden: String, includedFolders: MutableSet<String>): String {
fun Context.checkAppendingHidden(path: String, hidden: String, includedFolders: MutableSet<String>, noMediaFolders: ArrayList<String>): String {
val dirName = getFolderNameFromPath(path)
return if (path.doesThisOrParentHaveNoMedia() && !path.isThisOrParentIncluded(includedFolders)) {
return if (path.doesThisOrParentHaveNoMedia(noMediaFolders) && !path.isThisOrParentIncluded(includedFolders)) {
"$dirName $hidden"
} else {
dirName
@ -519,10 +524,11 @@ fun Context.getCachedDirectories(getVideosOnly: Boolean = false, getImagesOnly:
val excludedPaths = config.excludedFolders
val includedPaths = config.includedFolders
val folderNomediaStatuses = HashMap<String, Boolean>()
val noMediaFolders = getNoMediaFoldersSync()
val folderNoMediaStatuses = HashMap<String, Boolean>()
var filteredDirectories = directories.filter {
it.path.shouldFolderBeVisible(excludedPaths, includedPaths, shouldShowHidden, folderNomediaStatuses) { path, hasNoMedia ->
folderNomediaStatuses[path] = hasNoMedia
it.path.shouldFolderBeVisible(excludedPaths, includedPaths, shouldShowHidden, folderNoMediaStatuses, noMediaFolders) { path, hasNoMedia ->
folderNoMediaStatuses[path] = hasNoMedia
}
} as ArrayList<Directory>
val filterMedia = config.filterMedia
@ -542,7 +548,7 @@ fun Context.getCachedDirectories(getVideosOnly: Boolean = false, getImagesOnly:
val hiddenString = resources.getString(R.string.hidden)
filteredDirectories.forEach {
it.name = if (it.path.doesThisOrParentHaveNoMedia() && !it.path.isThisOrParentIncluded(includedPaths)) {
it.name = if (it.path.doesThisOrParentHaveNoMedia(noMediaFolders) && !it.path.isThisOrParentIncluded(includedPaths)) {
"${it.name.removeSuffix(hiddenString).trim()} $hiddenString"
} else {
it.name.removeSuffix(hiddenString).trim()
@ -808,7 +814,7 @@ fun Context.addPathToDB(path: String) {
}
fun Context.createDirectoryFromMedia(path: String, curMedia: ArrayList<Medium>, albumCovers: ArrayList<AlbumCover>, hiddenString: String,
includedFolders: MutableSet<String>, getProperFileSize: Boolean): Directory {
includedFolders: MutableSet<String>, getProperFileSize: Boolean, noMediaFolders: ArrayList<String>): Directory {
val OTGPath = config.OTGPath
val grouped = MediaFetcher(this).groupMedia(curMedia, path)
var thumbnail: String? = null
@ -832,7 +838,7 @@ fun Context.createDirectoryFromMedia(path: String, curMedia: ArrayList<Medium>,
val defaultMedium = Medium(0, "", "", "", 0L, 0L, 0L, 0, 0, false, 0L)
val firstItem = curMedia.firstOrNull() ?: defaultMedium
val lastItem = curMedia.lastOrNull() ?: defaultMedium
val dirName = checkAppendingHidden(path, hiddenString, includedFolders)
val dirName = checkAppendingHidden(path, hiddenString, includedFolders, noMediaFolders)
val lastModified = if (isSortingAscending) Math.min(firstItem.modified, lastItem.modified) else Math.max(firstItem.modified, lastItem.modified)
val dateTaken = if (isSortingAscending) Math.min(firstItem.taken, lastItem.taken) else Math.max(firstItem.taken, lastItem.taken)
val size = if (getProperFileSize) curMedia.sumByLong { it.size } else 0L
@ -874,6 +880,7 @@ fun Context.updateDirectoryPath(path: String) {
val hiddenString = getString(R.string.hidden)
val albumCovers = config.parseAlbumCovers()
val includedFolders = config.includedFolders
val noMediaFolders = getNoMediaFoldersSync()
val sorting = config.getFolderSorting(path)
val grouping = config.getFolderGrouping(path)
@ -894,7 +901,7 @@ fun Context.updateDirectoryPath(path: String) {
val favoritePaths = getFavoritePaths()
val curMedia = mediaFetcher.getFilesFrom(path, getImagesOnly, getVideosOnly, getProperDateTaken, getProperLastModified, getProperFileSize,
favoritePaths, false, lastModifieds, dateTakens)
val directory = createDirectoryFromMedia(path, curMedia, albumCovers, hiddenString, includedFolders, getProperFileSize)
val directory = createDirectoryFromMedia(path, curMedia, albumCovers, hiddenString, includedFolders, getProperFileSize, noMediaFolders)
updateDBDirectory(directory)
}

View file

@ -11,7 +11,8 @@ fun String.isThisOrParentExcluded(excludedPaths: MutableSet<String>) = excludedP
// cache which folders contain .nomedia files to avoid checking them over and over again
fun String.shouldFolderBeVisible(excludedPaths: MutableSet<String>, includedPaths: MutableSet<String>, showHidden: Boolean,
folderNomediaStatuses: HashMap<String, Boolean>, callback: (path: String, hasNoMedia: Boolean) -> Unit): Boolean {
folderNoMediaStatuses: HashMap<String, Boolean>, noMediaFolders: ArrayList<String> = ArrayList(),
callback: (path: String, hasNoMedia: Boolean) -> Unit): Boolean {
if (isEmpty()) {
return false
}
@ -36,7 +37,7 @@ fun String.shouldFolderBeVisible(excludedPaths: MutableSet<String>, includedPath
val containsNoMedia = if (showHidden) {
false
} else {
File(this, NOMEDIA).exists()
noMediaFolders.contains(this) || File(this, NOMEDIA).exists()
}
return if (!showHidden && containsNoMedia) {
@ -54,13 +55,13 @@ fun String.shouldFolderBeVisible(excludedPaths: MutableSet<String>, includedPath
for (i in 0 until count { it == '/' } - 1) {
curPath = curPath.substringBeforeLast('/')
val pathToCheck = "$curPath/${NOMEDIA}"
if (folderNomediaStatuses.contains(pathToCheck)) {
if (folderNomediaStatuses[pathToCheck] == true) {
if (folderNoMediaStatuses.contains(pathToCheck)) {
if (folderNoMediaStatuses[pathToCheck] == true) {
containsNoMediaOrDot = true
break
}
} else {
val noMediaExists = File(pathToCheck).exists()
val noMediaExists = noMediaFolders.contains(pathToCheck) || File(pathToCheck).exists()
callback(pathToCheck, noMediaExists)
if (noMediaExists) {
containsNoMediaOrDot = true

View file

@ -8,6 +8,7 @@ import com.google.gson.reflect.TypeToken
import com.simplemobiletools.commons.helpers.BaseConfig
import com.simplemobiletools.commons.helpers.SORT_BY_DATE_MODIFIED
import com.simplemobiletools.commons.helpers.SORT_DESCENDING
import com.simplemobiletools.commons.helpers.VIEW_TYPE_GRID
import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.models.AlbumCover
import java.util.*
@ -409,8 +410,10 @@ class Config(context: Context) : BaseConfig(context) {
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).absolutePath,
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).absolutePath,
"${Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).absolutePath}/Screenshots",
"internalStoragePath/WhatsApp/Media/WhatsApp Images",
"internalStoragePath/WhatsApp/Media/WhatsApp Video"
"$internalStoragePath/WhatsApp/Media/WhatsApp Images",
"$internalStoragePath/WhatsApp/Media/WhatsApp Images/Sent",
"$internalStoragePath/WhatsApp/Media/WhatsApp Video",
"$internalStoragePath/WhatsApp/Media/WhatsApp Video/Sent",
)
var showRecycleBinAtFolders: Boolean

View file

@ -145,10 +145,6 @@ const val PRIORITY_SPEED = 0
const val PRIORITY_COMPROMISE = 1
const val PRIORITY_VALIDITY = 2
// view types
const val VIEW_TYPE_GRID = 1
const val VIEW_TYPE_LIST = 2
// extended details values
const val EXT_NAME = 1
const val EXT_PATH = 2

View file

@ -82,8 +82,9 @@ class MediaFetcher(val context: Context) {
}
}
val noMediaFolders = context.getNoMediaFoldersSync()
distinctPaths.filter {
it.shouldFolderBeVisible(excludedPaths, includedPaths, shouldShowHidden, folderNomediaStatuses) { path, hasNoMedia ->
it.shouldFolderBeVisible(excludedPaths, includedPaths, shouldShowHidden, folderNomediaStatuses, noMediaFolders) { path, hasNoMedia ->
folderNomediaStatuses[path] = hasNoMedia
}
}.toMutableList() as ArrayList<String>

View file

@ -15,11 +15,6 @@
<string name="other_folder">مجلد آخر</string>
<string name="show_on_map">عرض علي الخريطة</string>
<string name="unknown_location">موقع غير معروف</string>
<string name="increase_column_count">زيادة عدد الأعمدة</string>
<string name="reduce_column_count">تقليل عدد الأعمدة</string>
<string name="set_as_default_folder">تعيين كمجلد افتراضي</string>
<string name="change_cover_image">تغيير صورة الغلاف</string>
<string name="select_photo">تحديد صورة</string>
<string name="volume">الصوت</string>
<string name="brightness">السطوع</string>
<string name="lock_orientation">قفل الاتجاه</string>
@ -126,9 +121,6 @@
<string name="no_media_for_slideshow">لم يتم العثور علي أي وسائط لعرض الشرائح</string>
<!-- View types -->
<string name="change_view_type">تغيير نوع العرض</string>
<string name="grid">الشبكة</string>
<string name="list">القائمة</string>
<string name="group_direct_subfolders">تجميع المجلدات الفرعية مباشرة</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,11 +15,6 @@
<string name="other_folder">Other folder</string>
<string name="show_on_map">Show on map</string>
<string name="unknown_location">Unknown location</string>
<string name="increase_column_count">Increase column count</string>
<string name="reduce_column_count">Reduce column count</string>
<string name="set_as_default_folder">Varsayılan qovluq olaraq təyin edin</string>
<string name="change_cover_image">Change cover image</string>
<string name="select_photo">Select photo</string>
<string name="volume">Volume</string>
<string name="brightness">Brightness</string>
<string name="lock_orientation">Lock orientation</string>
@ -126,9 +121,6 @@
<string name="no_media_for_slideshow">No media for the slideshow have been found</string>
<!-- View types -->
<string name="change_view_type">Change view type</string>
<string name="grid">Grid</string>
<string name="list">List</string>
<string name="group_direct_subfolders">Group direct subfolders</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,11 +15,6 @@
<string name="other_folder">Un altre carpeta</string>
<string name="show_on_map">Mostrar al mapa</string>
<string name="unknown_location">Ubicació desconeguda</string>
<string name="increase_column_count">Augmentar el número de columnes</string>
<string name="reduce_column_count">Reduir el número de columnes</string>
<string name="set_as_default_folder">Estableix com a carpeta predeterminada</string>
<string name="change_cover_image">Canviar imatge de portada</string>
<string name="select_photo">Sel·leccionar imatge</string>
<string name="volume">Volum</string>
<string name="brightness">Brillantor</string>
<string name="lock_orientation">Bloquejar orientació</string>
@ -126,9 +121,6 @@
<string name="no_media_for_slideshow">No shan trobat mitjans per a la presentació de diapositives</string>
<!-- View types -->
<string name="change_view_type">Canviar el tipus de vista</string>
<string name="grid">Reixeta</string>
<string name="list">Llista</string>
<string name="group_direct_subfolders">Agrupar carpetes directes</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,11 +15,6 @@
<string name="other_folder">Jiná složka</string>
<string name="show_on_map">Zobrazit na mapě</string>
<string name="unknown_location">Neznámá poloha</string>
<string name="increase_column_count">Zvýšit počet sloupců</string>
<string name="reduce_column_count">Snížit počet sloupců</string>
<string name="set_as_default_folder">Nastavit jako výchozí složku</string>
<string name="change_cover_image">Změnit obal alba</string>
<string name="select_photo">Vybrat fotografii</string>
<string name="volume">Hlasitost</string>
<string name="brightness">Jas</string>
<string name="lock_orientation">Uzamknout orientaci</string>
@ -126,9 +121,6 @@
<string name="no_media_for_slideshow">Nebyla nalezena žádná média pro prezentaci</string>
<!-- View types -->
<string name="change_view_type">Změnit typ zobrazení</string>
<string name="grid">Mřížka</string>
<string name="list">Seznam</string>
<string name="group_direct_subfolders">Sloučit přímé podsložky</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,11 +15,6 @@
<string name="other_folder">Anden mappe</string>
<string name="show_on_map">Vis på kort</string>
<string name="unknown_location">Ukendt placering</string>
<string name="increase_column_count">Flere kolonner</string>
<string name="reduce_column_count">Færre kolonner</string>
<string name="set_as_default_folder">Indstil som standardmappe</string>
<string name="change_cover_image">Skift cover-billede</string>
<string name="select_photo">Vælg billede</string>
<string name="volume">Lydstyrke</string>
<string name="brightness">Lysstyrke</string>
<string name="lock_orientation">Lås orientering</string>
@ -126,9 +121,6 @@
<string name="no_media_for_slideshow">Der blev ikke funket nogen mediefiler til slideshowet</string>
<!-- View types -->
<string name="change_view_type">Skift visning</string>
<string name="grid">Gitter</string>
<string name="list">Liste</string>
<string name="group_direct_subfolders">Gruppér direkte undermapper</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,11 +15,6 @@
<string name="other_folder">Ordner wählen</string>
<string name="show_on_map">Auf Karte zeigen</string>
<string name="unknown_location">Unbekannter Pfad</string>
<string name="increase_column_count">Kacheln verkleinern</string>
<string name="reduce_column_count">Kacheln vergrößern</string>
<string name="set_as_default_folder">Als Standardordner festlegen</string>
<string name="change_cover_image">Coverbild ändern</string>
<string name="select_photo">Auswählen</string>
<string name="volume">Lautstärke</string>
<string name="brightness">Helligkeit</string>
<string name="lock_orientation">Bildausrichtung sperren</string>
@ -126,9 +121,6 @@
<string name="no_media_for_slideshow">Keine Medien für Diashow gefunden</string>
<!-- View types -->
<string name="change_view_type">Darstellung ändern</string>
<string name="grid">Gitternetz</string>
<string name="list">Liste</string>
<string name="group_direct_subfolders">Direkte Unterordner gruppieren</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,11 +15,6 @@
<string name="other_folder">Άλλος φάκελος</string>
<string name="show_on_map">Εμφάνιση στο χάρτη</string>
<string name="unknown_location">Άγνωστη τοποθεσία</string>
<string name="increase_column_count">Αύξηση αριθμού στηλών</string>
<string name="reduce_column_count">Μείωση αριθμού στηλών</string>
<string name="set_as_default_folder">Set as default folder</string>
<string name="change_cover_image">Αλλαγή εξώφυλλου φακέλου</string>
<string name="select_photo">Επιλογή φωτογραφίας</string>
<string name="volume">Ένταση</string>
<string name="brightness">Φωτεινότητα</string>
<string name="lock_orientation">Κλείδωμα προσανατολισμού</string>
@ -126,9 +121,6 @@
<string name="no_media_for_slideshow">Δεν βρέθηκαν πολυμέσα για την εμφάνιση διαφανειών</string>
<!-- View types -->
<string name="change_view_type">Αλλαγή τύπου εμφάνισης</string>
<string name="grid">Πλέγμα</string>
<string name="list">Λίστα</string>
<string name="group_direct_subfolders">Ομαδοποίηση υποφακέλων</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,11 +15,6 @@
<string name="other_folder">Otra carpeta</string>
<string name="show_on_map">Mostrar en el mapa</string>
<string name="unknown_location">Ubicación desconocida</string>
<string name="increase_column_count">Aumentar el número de columnas</string>
<string name="reduce_column_count">Reducir el número de columnas</string>
<string name="set_as_default_folder">Establecer como carpeta predeterminada</string>
<string name="change_cover_image">Cambiar imagen de portada</string>
<string name="select_photo">Seleccionar imagen</string>
<string name="volume">Volumen</string>
<string name="brightness">Brillo</string>
<string name="lock_orientation">Bloquear orientación</string>
@ -126,9 +121,6 @@
<string name="no_media_for_slideshow">No se han encontrado medios para la presentación de diapositivas</string>
<!-- View types -->
<string name="change_view_type">Cambiar tipo de vista</string>
<string name="grid">Cuadrícula</string>
<string name="list">Lista</string>
<string name="group_direct_subfolders">Agrupar subcarpetas directas</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,11 +15,6 @@
<string name="other_folder">Muu kansio</string>
<string name="show_on_map">Näytä kartalla</string>
<string name="unknown_location">Tuntematon sijainti</string>
<string name="increase_column_count">Lisää sarakkeita</string>
<string name="reduce_column_count">Vähennä sarakkeita</string>
<string name="set_as_default_folder">Aseta oletuskansioksi</string>
<string name="change_cover_image">Vaihda kansikuva</string>
<string name="select_photo">Valitse kuva</string>
<string name="volume">Äänenvoimakkuus</string>
<string name="brightness">Kirkkaus</string>
<string name="lock_orientation">Lukitse näytönkierto</string>
@ -126,9 +121,6 @@
<string name="no_media_for_slideshow">Mediaa diaesitykseen ei löytynyt</string>
<!-- View types -->
<string name="change_view_type">Vaihda näkymää</string>
<string name="grid">Ruudukko</string>
<string name="list">Lista</string>
<string name="group_direct_subfolders">Group direct subfolders</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Autre dossier</string>
<string name="show_on_map">Afficher sur la carte</string>
<string name="unknown_location">Position inconnue</string>
<string name="increase_column_count">Ajouter une colonne</string>
<string name="reduce_column_count">Supprimer une colonne</string>
<string name="change_cover_image">Changer l\'image du dossier</string>
<string name="select_photo">Choisir une image</string>
<string name="volume">Volume</string>
<string name="brightness">Luminosité</string>
<string name="lock_orientation">Verrouiller la rotation</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Aucun média trouvé pour le diaporama</string>
<!-- View types -->
<string name="change_view_type">Changer de mode d\'affichage</string>
<string name="grid">Grille</string>
<string name="list">Liste</string>
<string name="group_direct_subfolders">Mode sous-dossiers</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Outro cartafol</string>
<string name="show_on_map">Mostrar no mapa</string>
<string name="unknown_location">Localización descoñecida</string>
<string name="increase_column_count">Aumenta o número de columnas</string>
<string name="reduce_column_count">Reduce o número de columnas</string>
<string name="change_cover_image">Cambiar a imaxe de portada</string>
<string name="select_photo">Escolle foto</string>
<string name="volume">Volume</string>
<string name="brightness">Brillo</string>
<string name="lock_orientation">Fixar orientación</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Non se atopou multimedia para a presentación</string>
<!-- View types -->
<string name="change_view_type">Cambiar o tipo de vista</string>
<string name="grid">Grella</string>
<string name="list">Lista</string>
<string name="group_direct_subfolders">Agrupar subcartafoles directos</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Ostale mape</string>
<string name="show_on_map">Prikaži na karti</string>
<string name="unknown_location">Nepoznata lokacija</string>
<string name="increase_column_count">Povećaj broj stupaca</string>
<string name="reduce_column_count">Smanji broj stupaca</string>
<string name="change_cover_image">Promjeni naslovnu sliku</string>
<string name="select_photo">Odaberi sliku</string>
<string name="volume">Glasnoća</string>
<string name="brightness">Svjetlina</string>
<string name="lock_orientation">Zaključaj orijentaciju slike</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Nema datoteka za dijaprojekciju</string>
<!-- View types -->
<string name="change_view_type">Promijeni vrstu prikaza</string>
<string name="grid">Mreža</string>
<string name="list">Lista</string>
<string name="group_direct_subfolders">Group direct subfolders</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Egyéb mappa</string>
<string name="show_on_map">Mutassa a térképen</string>
<string name="unknown_location">Ismeretlen helyszín</string>
<string name="increase_column_count">Növelje az oszlopok számát</string>
<string name="reduce_column_count">Csökkentse az oszlopok számát</string>
<string name="change_cover_image">Borítókép változtatása</string>
<string name="select_photo">Válasszon fotót</string>
<string name="volume">Hangerő</string>
<string name="brightness">Fényesség</string>
<string name="lock_orientation">Tájolás zárolása</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">A diavetítéshez nem található média</string>
<!-- View types -->
<string name="change_view_type">Nézet típus változtatása</string>
<string name="grid">Rács</string>
<string name="list">Lista</string>
<string name="group_direct_subfolders">Közvetlen almappa csoport</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Folder lainnya</string>
<string name="show_on_map">Tampilkan di peta</string>
<string name="unknown_location">Lokasi tidak diketahui</string>
<string name="increase_column_count">Tambah jumlah kolom</string>
<string name="reduce_column_count">Kurangi jumlah kolom</string>
<string name="change_cover_image">Ubah gambar kover</string>
<string name="select_photo">Pilih foto</string>
<string name="volume">Volume</string>
<string name="brightness">Kecerahan</string>
<string name="lock_orientation">Kunci orientasi</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Tidak ditemukan media untuk slideshow</string>
<!-- View types -->
<string name="change_view_type">Ubah tampilan</string>
<string name="grid">Kotak</string>
<string name="list">Daftar</string>
<string name="group_direct_subfolders">Kelompokkan subfolder langsung</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Folder lainnya</string>
<string name="show_on_map">Tampilkan di peta</string>
<string name="unknown_location">Lokasi tidak diketahui</string>
<string name="increase_column_count">Tambah jumlah kolom</string>
<string name="reduce_column_count">Kurangi jumlah kolom</string>
<string name="change_cover_image">Ubah gambar kover</string>
<string name="select_photo">Pilih foto</string>
<string name="volume">Volume</string>
<string name="brightness">Kecerahan</string>
<string name="lock_orientation">Kunci orientasi</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Tidak ditemukan media untuk slideshow</string>
<!-- View types -->
<string name="change_view_type">Ubah tampilan</string>
<string name="grid">Kotak</string>
<string name="list">Daftar</string>
<string name="group_direct_subfolders">Kelompokkan subfolder langsung</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Altra cartella</string>
<string name="show_on_map">Mostra sulla mappa</string>
<string name="unknown_location">Posizione sconosciuta</string>
<string name="increase_column_count">Aumenta numero colonne</string>
<string name="reduce_column_count">Riduci numero colonne</string>
<string name="change_cover_image">Cambia immagine copertina</string>
<string name="select_photo">Seleziona foto</string>
<string name="volume">Volume</string>
<string name="brightness">Luminosità</string>
<string name="lock_orientation">Blocca orientamento</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Nessun file trovato per la presentazione</string>
<!-- View types -->
<string name="change_view_type">Cambia modalità visualizzazione</string>
<string name="grid">Griglia</string>
<string name="list">Elenco</string>
<string name="group_direct_subfolders">Raggruppa sottocartelle dirette</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">その他のフォルダ</string>
<string name="show_on_map">地図上で表示</string>
<string name="unknown_location">位置情報がありません</string>
<string name="increase_column_count">列数を増やす</string>
<string name="reduce_column_count">列数を減らす</string>
<string name="change_cover_image">カバー画像を変更</string>
<string name="select_photo">写真を選択</string>
<string name="volume">音量</string>
<string name="brightness">明るさ</string>
<string name="lock_orientation">画面の向きを固定する</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">スライドショーに表示するメディアがありません</string>
<!-- View types -->
<string name="change_view_type">表示形式の変更</string>
<string name="grid">グリッド</string>
<string name="list">リスト</string>
<string name="group_direct_subfolders">サブフォルダでグループ化</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">다른 폴더</string>
<string name="show_on_map">지도에서 보기</string>
<string name="unknown_location">위치정보 없음</string>
<string name="increase_column_count">섬네일크기 축소</string>
<string name="reduce_column_count">섬네일크기 확대</string>
<string name="change_cover_image">커버 사진 변경</string>
<string name="select_photo">사진 선택</string>
<string name="volume">볼륨</string>
<string name="brightness">밝기</string>
<string name="lock_orientation">화면 회전 잠금</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">슬라이드 쇼를 표시할 사진이 없습니다.</string>
<!-- View types -->
<string name="change_view_type">보기 방식 변경</string>
<string name="grid">타일</string>
<string name="list">목록</string>
<string name="group_direct_subfolders">상위 폴더 표시</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Kitas aplankas</string>
<string name="show_on_map">Rodyti žemėlapyje</string>
<string name="unknown_location">Nežinoma vieta</string>
<string name="increase_column_count">Padidinti stulpelių skaičių</string>
<string name="reduce_column_count">Sumažinti stulpelių skaičių</string>
<string name="change_cover_image">Pakeisti viršelio atvaizdą</string>
<string name="select_photo">Pasirinkti nuotrauką</string>
<string name="volume">Garsas</string>
<string name="brightness">Ryškumas</string>
<string name="lock_orientation">Užrakinti orientaciją</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Nerasta medijos skaidrių demonstracijai</string>
<!-- View types -->
<string name="change_view_type">Keisti peržiūros tipą</string>
<string name="grid">Tinklelis</string>
<string name="list">Sąrašas</string>
<string name="group_direct_subfolders">Group direct subfolders</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Annen mappe</string>
<string name="show_on_map">Vis på kart</string>
<string name="unknown_location">Ukjent plassering</string>
<string name="increase_column_count">Øk antall kolonner</string>
<string name="reduce_column_count">Reduser antall kolonner</string>
<string name="change_cover_image">Endre omslagsbilde</string>
<string name="select_photo">Velg foto</string>
<string name="volume">Volum</string>
<string name="brightness">Lysstyrke</string>
<string name="lock_orientation">Lås skjermorientering</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Ingen media for lysbildeshowet er funnet</string>
<!-- View types -->
<string name="change_view_type">Endre visningstype</string>
<string name="grid">Rutenett</string>
<string name="list">Liste</string>
<string name="group_direct_subfolders">Grupper direkte undermapper</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">अन्य फोल्डर</string>
<string name="show_on_map">नक्सामा देखाउनुहोस</string>
<string name="unknown_location">थाहानभएको ठाउ</string>
<string name="increase_column_count">कोलम सङ्खा बढाउनुहोस</string>
<string name="reduce_column_count">कोलम सङ्खा घटाउनुहोस</string>
<string name="change_cover_image">कभर तस्बिर परिवर्तन गर्नुहोस</string>
<string name="select_photo">फोटो चयन गर्नुहोस</string>
<string name="volume">भोलुम</string>
<string name="brightness">उज्यालोपन</string>
<string name="lock_orientation">Lock orientation</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">No media for the slideshow have been found</string>
<!-- View types -->
<string name="change_view_type">भ्यू प्रकार परिवर्तन गर्नुहोस</string>
<string name="grid">कोठे</string>
<string name="list">सुची</string>
<string name="group_direct_subfolders">Group direct subfolders</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Andere map</string>
<string name="show_on_map">Op kaart tonen</string>
<string name="unknown_location">Locatie onbekend</string>
<string name="increase_column_count">Meer kolommen</string>
<string name="reduce_column_count">Minder kolommen</string>
<string name="change_cover_image">Afbeelding omslag wijzigen</string>
<string name="select_photo">Foto selecteren</string>
<string name="volume">Volume</string>
<string name="brightness">Helderheid</string>
<string name="lock_orientation">Schermoriëntatie vergrendelen</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Geen media gevonden voor diavoorstelling</string>
<!-- View types -->
<string name="change_view_type">Weergave</string>
<string name="grid">Raster</string>
<string name="list">Lijst</string>
<string name="group_direct_subfolders">Directe submappen groeperen</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Inny folder</string>
<string name="show_on_map">Pokaż na mapie</string>
<string name="unknown_location">Nieznana lokalizacja</string>
<string name="increase_column_count">Zwiększ liczbę kolumn</string>
<string name="reduce_column_count">Zmniejsz liczbę kolumn</string>
<string name="change_cover_image">Zmień okładkę</string>
<string name="select_photo">Wybierz obraz</string>
<string name="volume">Głośność</string>
<string name="brightness">Jasność</string>
<string name="lock_orientation">Zablokuj orientację ekranu</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Nie znalazłem multimediów do pokazu slajdów</string>
<!-- View types -->
<string name="change_view_type">Zmień typ widoku</string>
<string name="grid">Siatka</string>
<string name="list">Lista</string>
<string name="group_direct_subfolders">Grupuj bezpośrednie podfoldery</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Outra pasta</string>
<string name="show_on_map">Exibir no mapa</string>
<string name="unknown_location">Localização desconhecida</string>
<string name="increase_column_count">Aumentar número de colunas</string>
<string name="reduce_column_count">Reduzir número de colunas</string>
<string name="change_cover_image">Trocar imagem de capa</string>
<string name="select_photo">Selecionar foto</string>
<string name="volume">Volume</string>
<string name="brightness">Brilho</string>
<string name="lock_orientation">Travar orientação</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Nenhuma mídia encontrada para a apresentação</string>
<!-- View types -->
<string name="change_view_type">Alterar modo de visualização</string>
<string name="grid">Grade</string>
<string name="list">Lista</string>
<string name="group_direct_subfolders">Agrupar subpastas diretas</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Outra pasta</string>
<string name="show_on_map">Mostrar no mapa</string>
<string name="unknown_location">Localização desconhecida</string>
<string name="increase_column_count">Aumentar número de colunas</string>
<string name="reduce_column_count">Diminuir número de colunas</string>
<string name="change_cover_image">Alterar imagem de capa</string>
<string name="select_photo">Selecionar foto</string>
<string name="volume">Volume</string>
<string name="brightness">Brilho</string>
<string name="lock_orientation">Bloquear orientação</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Não foram encontrados ficheiros para a apresentação</string>
<!-- View types -->
<string name="change_view_type">Tipo de exibição</string>
<string name="grid">Grelha</string>
<string name="list">Lista</string>
<string name="group_direct_subfolders">Agrupar sub-pastas</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Выбор папки</string>
<string name="show_on_map">Показать место съёмки</string>
<string name="unknown_location">Место съёмки не указано</string>
<string name="increase_column_count">Добавить столбец</string>
<string name="reduce_column_count">Убрать столбец</string>
<string name="change_cover_image">Изменить обложку</string>
<string name="select_photo">Выбрать изображение</string>
<string name="volume">Громкость</string>
<string name="brightness">Яркость</string>
<string name="lock_orientation">Заблокировать ориентацию</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Не найдено медиафайлов для слайдшоу</string>
<!-- View types -->
<string name="change_view_type">Вид</string>
<string name="grid">Сетка</string>
<string name="list">Список</string>
<string name="group_direct_subfolders">Объединять вложенные папки</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Iný priečinok</string>
<string name="show_on_map">Zobraziť na mape</string>
<string name="unknown_location">Neznáma poloha</string>
<string name="increase_column_count">Zvýšiť počet stĺpcov</string>
<string name="reduce_column_count">Znížiť počet stĺpcov</string>
<string name="change_cover_image">Zmeniť obal albumu</string>
<string name="select_photo">Zvoliť foto</string>
<string name="volume">Hlasitosť</string>
<string name="brightness">Jas</string>
<string name="lock_orientation">Uzamknúť otočenie obrazovky</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Pre prezentáciu sa nenašli žiadne vhodné súbory</string>
<!-- View types -->
<string name="change_view_type">Zmeniť typ zobrazenia</string>
<string name="grid">Mriežka</string>
<string name="list">Zoznam</string>
<string name="group_direct_subfolders">Zlúčiť priame podpriečinky</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Druga mapa</string>
<string name="show_on_map">Prikaži na zemljevidu</string>
<string name="unknown_location">Neznana lokacija</string>
<string name="increase_column_count">Povečaj število stolpcev</string>
<string name="reduce_column_count">Zmanjšaj število stolpcev</string>
<string name="change_cover_image">Spremeni naslovno fotografijo</string>
<string name="select_photo">Izberi fotografijo</string>
<string name="volume">Glasnost</string>
<string name="brightness">Svetlost</string>
<string name="lock_orientation">Zakleni usmerjenost</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Ne najdem datotek za diaprojekcijo</string>
<!-- View types -->
<string name="change_view_type">Spremeni tip pogleda</string>
<string name="grid">Mreža</string>
<string name="list">Seznam</string>
<string name="group_direct_subfolders">Združi neposredne podmape</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Друга фасцикла</string>
<string name="show_on_map">Прикажи на мапи</string>
<string name="unknown_location">Непозната локација</string>
<string name="increase_column_count">Повећај број колона</string>
<string name="reduce_column_count">Смањи број колона</string>
<string name="change_cover_image">Промени насловну слику</string>
<string name="select_photo">Изабери фотографију</string>
<string name="volume">Јачина звука</string>
<string name="brightness">Осветљење</string>
<string name="lock_orientation">Закључај оријентацију</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Нису пронађени медији за слајдшоу</string>
<!-- View types -->
<string name="change_view_type">Промени тип прегледа</string>
<string name="grid">Мрежа</string>
<string name="list">Листа</string>
<string name="group_direct_subfolders">Групирај директне подфасцикле</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Annan mapp</string>
<string name="show_on_map">Visa på karta</string>
<string name="unknown_location">Okänd plats</string>
<string name="increase_column_count">Öka antalet kolumner</string>
<string name="reduce_column_count">Minska antalet kolumner</string>
<string name="change_cover_image">Byt omslagsbild</string>
<string name="select_photo">Välj foto</string>
<string name="volume">Volym</string>
<string name="brightness">Ljusstyrka</string>
<string name="lock_orientation">Aktivera rotationslås</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Ingen media hittades för bildspelet</string>
<!-- View types -->
<string name="change_view_type">Ändra vy</string>
<string name="grid">Rutnät</string>
<string name="list">Lista</string>
<string name="group_direct_subfolders">Gruppera direkta undermappar</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Diğer klasör</string>
<string name="show_on_map">Haritada göster</string>
<string name="unknown_location">Bilinmeyen konum</string>
<string name="increase_column_count">Sütun sayısını artır</string>
<string name="reduce_column_count">Sütun sayısını azalt</string>
<string name="change_cover_image">Kapak resmini değiştir</string>
<string name="select_photo">Fotoğraf seç</string>
<string name="volume">Ses</string>
<string name="brightness">Parlaklık</string>
<string name="lock_orientation">Yönü kilitle</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Slayt gösterisi için medya bulunamadı</string>
<!-- View types -->
<string name="change_view_type">Görünüm türünü değiştir</string>
<string name="grid">Izgara</string>
<string name="list">Liste</string>
<string name="group_direct_subfolders">Doğrudan alt klasörleri gruplandır</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Інша тека</string>
<string name="show_on_map">Показати на мапі</string>
<string name="unknown_location">Невідоме розташування</string>
<string name="increase_column_count">Збільшити кількість колонок</string>
<string name="reduce_column_count">Зменшити кількість колонок</string>
<string name="change_cover_image">Змінити обкладинку</string>
<string name="select_photo">Вибрати фото</string>
<string name="volume">Об\'єм</string>
<string name="brightness">Яскравість</string>
<string name="lock_orientation">Закріпити орієнтацію</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Не знайдено медіафайлів для показу у слайдшоу</string>
<!-- View types -->
<string name="change_view_type">Змінити тип перегляду</string>
<string name="grid">Сітка</string>
<string name="list">Список</string>
<string name="group_direct_subfolders">Групувати безпосередні підтеки</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">Thư mục khác</string>
<string name="show_on_map">Hiển thị trên bản đồ</string>
<string name="unknown_location">Vị trí không xác định</string>
<string name="increase_column_count">Tăng số lượng cột</string>
<string name="reduce_column_count">Giảm số lượng cột</string>
<string name="change_cover_image">Thay đổi ảnh bìa</string>
<string name="select_photo">Chọn ảnh</string>
<string name="volume">Âm lượng</string>
<string name="brightness">Độ sáng</string>
<string name="lock_orientation">Khóa xoay màn hình</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">Không có tập tin phương tiện cho trình chiếu được tìm thấy</string>
<!-- View types -->
<string name="change_view_type">Thay đổi kiểu xem</string>
<string name="grid">Lưới</string>
<string name="list">Danh sách</string>
<string name="group_direct_subfolders">Nhóm thư mục con trực tiếp</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">其他文件夹</string>
<string name="show_on_map">在地图上显示</string>
<string name="unknown_location">未知位置</string>
<string name="increase_column_count">显示更多项目</string>
<string name="reduce_column_count">显示更少项目</string>
<string name="change_cover_image">更换封面图片</string>
<string name="select_photo">选择图片</string>
<string name="volume">音量</string>
<string name="brightness">亮度</string>
<string name="lock_orientation">锁定屏幕方向</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">没有找到可播放幻灯片媒体文件</string>
<!-- View types -->
<string name="change_view_type">更改视图类型</string>
<string name="grid">网格</string>
<string name="list">列表</string>
<string name="group_direct_subfolders">直接分组文件夹</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,10 +15,6 @@
<string name="other_folder">其他資料夾</string>
<string name="show_on_map">在地圖上顯示</string>
<string name="unknown_location">未知的位置</string>
<string name="increase_column_count">增加欄數</string>
<string name="reduce_column_count">減少欄數</string>
<string name="change_cover_image">更換封面圖片</string>
<string name="select_photo">選擇相片</string>
<string name="volume">音量</string>
<string name="brightness">亮度</string>
<string name="lock_orientation">鎖定方向</string>
@ -125,9 +121,6 @@
<string name="no_media_for_slideshow">找不到投影片的媒體檔案</string>
<!-- View types -->
<string name="change_view_type">改變瀏覽類型</string>
<string name="grid">格狀</string>
<string name="list">列表</string>
<string name="group_direct_subfolders">歸類子資料夾</string>
<!-- Grouping at media thumbnails -->

View file

@ -15,12 +15,6 @@
<string name="other_folder">Other folder</string>
<string name="show_on_map">Show on map</string>
<string name="unknown_location">Unknown location</string>
<string name="increase_column_count">Increase column count</string>
<string name="reduce_column_count">Reduce column count</string>
<string name="set_as_default_folder">Set as default folder</string>
<string name="unset_as_default_folder">Unset as default folder</string>
<string name="change_cover_image">Change cover image</string>
<string name="select_photo">Select photo</string>
<string name="volume">Volume</string>
<string name="brightness">Brightness</string>
<string name="lock_orientation">Lock orientation</string>
@ -127,9 +121,6 @@
<string name="no_media_for_slideshow">No media for the slideshow have been found</string>
<!-- View types -->
<string name="change_view_type">Change view type</string>
<string name="grid">Grid</string>
<string name="list">List</string>
<string name="group_direct_subfolders">Group direct subfolders</string>
<!-- Grouping at media thumbnails -->

View file

@ -13,10 +13,12 @@ import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_STORAGE
import com.simplemobiletools.commons.helpers.REAL_FILE_PATH
import com.simplemobiletools.commons.helpers.ensureBackgroundThread
import com.simplemobiletools.commons.helpers.isNougatPlus
import com.simplemobiletools.commons.models.FileDirItem
import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.dialogs.SaveAsDialog
import com.simplemobiletools.gallery.pro.extensions.config
import com.simplemobiletools.gallery.pro.extensions.fixDateTaken
import com.simplemobiletools.gallery.pro.extensions.tryDeleteFileDirItem
import ly.img.android.pesdk.PhotoEditorSettingsList
import ly.img.android.pesdk.assets.filter.basic.FilterPackBasic
import ly.img.android.pesdk.assets.font.basic.FontPackBasic
@ -134,42 +136,44 @@ class NewEditActivity : SimpleActivity() {
storeOldExif(source)
sourceFileLastModified = File(source).lastModified()
var inputStream: InputStream? = null
var outputStream: OutputStream? = null
try {
inputStream = contentResolver.openInputStream(Uri.parse(resultPath))
outputStream = getFileOutputStreamSync(destinationFilePath, destinationFilePath.getMimeType())
inputStream!!.copyTo(outputStream!!)
outputStream.flush()
inputStream.close()
outputStream.close()
handleFileOverwriting(destinationFilePath) {
var inputStream: InputStream? = null
var outputStream: OutputStream? = null
try {
if (isNougatPlus()) {
val newExif = ExifInterface(destinationFilePath)
oldExif?.copyTo(newExif, false)
inputStream = contentResolver.openInputStream(Uri.parse(resultPath))
outputStream = getFileOutputStreamSync(destinationFilePath, destinationFilePath.getMimeType())
inputStream!!.copyTo(outputStream!!)
outputStream.flush()
inputStream.close()
outputStream.close()
try {
if (isNougatPlus()) {
val newExif = ExifInterface(destinationFilePath)
oldExif?.copyTo(newExif, false)
}
} catch (ignored: Exception) {
}
} catch (ignored: Exception) {
}
if (config.keepLastModified) {
// add 1 s to the last modified time to properly update the thumbnail
updateLastModified(destinationFilePath, sourceFileLastModified + 1000)
}
if (config.keepLastModified) {
// add 1 s to the last modified time to properly update the thumbnail
updateLastModified(destinationFilePath, sourceFileLastModified + 1000)
}
val paths = arrayListOf(destinationFilePath)
rescanPaths(arrayListOf(destinationFilePath)) {
fixDateTaken(paths, false)
}
val paths = arrayListOf(destinationFilePath)
rescanPaths(arrayListOf(destinationFilePath)) {
fixDateTaken(paths, false)
}
setResult(Activity.RESULT_OK, intent)
toast(R.string.file_edited_successfully)
finish()
} catch (e: Exception) {
showErrorToast(e)
} finally {
inputStream?.close()
outputStream?.close()
setResult(Activity.RESULT_OK, intent)
toast(R.string.file_edited_successfully)
finish()
} catch (e: Exception) {
showErrorToast(e)
} finally {
inputStream?.close()
outputStream?.close()
}
}
}
} else {
@ -197,6 +201,23 @@ class NewEditActivity : SimpleActivity() {
}
}
// in case the user wants to overwrite the original file and it is on an SD card, delete it manually. Else the system just appends (1)
private fun handleFileOverwriting(path: String, callback: () -> Unit) {
if (getDoesFilePathExist(path) && isPathOnSD(path)) {
val fileDirItem = FileDirItem(path, path.getFilenameFromPath())
tryDeleteFileDirItem(fileDirItem, false, true) { success ->
if (success) {
callback()
} else {
toast(R.string.unknown_error_occurred)
finish()
}
}
} else {
callback()
}
}
private fun openEditor(inputImage: Uri) {
val settingsList = createPesdkSettingsList()

View file

@ -0,0 +1,3 @@
* Added some hidden folder handling related improvements
* Fixed saving files on the SD card after editing
* Couple other UX, translation and performance improvements