diff --git a/CHANGELOG.md b/CHANGELOG.md
index da47dde05..5bfefa9e4 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,46 @@
Changelog
==========
+Version 3.2.3 *(2018-01-14)*
+----------------------------
+
+ * An F-droid build only, fixing a compile error
+
+Version 3.2.2 *(2018-01-09)*
+----------------------------
+
+ * Some scrolling issues fixed
+ * Improve new media file discovery
+
+Version 3.2.1 *(2018-01-08)*
+----------------------------
+
+ * Adding a crashfix
+ * Couple scrollbar glitch fixes
+
+Version 3.2.0 *(2018-01-07)*
+----------------------------
+
+ * Rewrote scrolling to improve the performance
+ * Disable "Delete empty folders" by default
+ * Added initial Search to media thumbnails screen
+ * Apply the hidden folder password protection to "Manage hidden folders"
+ * Replace Move with Copy/Delete on Android 7+
+ * Improve SD card file support
+
+Version 3.1.2 *(2017-12-30)*
+----------------------------
+
+ * Fixed some video related crashes
+
+Version 3.1.1 *(2017-12-29)*
+----------------------------
+
+ * Added a new setting item for managing folders hidden with .nomedia
+ * Speed up image loading
+ * Use copy/delete instead of move on Android 8.x
+ * Improved double-tap zoom ratios
+
Version 3.1.0 *(2017-12-25)*
----------------------------
diff --git a/app/build.gradle b/app/build.gradle
index cd09b01ca..e3a1c5dd1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -9,8 +9,8 @@ android {
applicationId "com.simplemobiletools.gallery"
minSdkVersion 16
targetSdkVersion 27
- versionCode 150
- versionName "3.1.0"
+ versionCode 156
+ versionName "3.2.3"
multiDexEnabled true
setProperty("archivesBaseName", "gallery")
}
@@ -42,8 +42,7 @@ ext {
}
dependencies {
- implementation 'com.simplemobiletools:commons:3.4.2'
- implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0'
+ implementation 'com.simplemobiletools:commons:3.7.2'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.6.0'
implementation 'com.android.support:multidex:1.0.2'
implementation 'com.google.code.gson:gson:2.8.2'
@@ -51,6 +50,9 @@ dependencies {
implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.8'
implementation 'com.github.chrisbanes:PhotoView:2.1.3'
+ //implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0'
+ implementation 'com.github.tibbi:subsampling-scale-image-view:v3.9.0-fork'
+
debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion"
releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion"
}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a6e97ccb7..c49d7cf4d 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -55,7 +55,17 @@
+ android:parentActivityName=".activities.MainActivity">
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/EditActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/EditActivity.kt
index d41ba13c4..8e3d4d6c4 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/EditActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/EditActivity.kt
@@ -184,18 +184,17 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
}
private fun saveBitmapToFile(bitmap: Bitmap, path: String) {
- val file = File(path)
-
try {
- getFileOutputStream(file) {
- if (it != null) {
- Thread {
+ Thread {
+ val file = File(path)
+ getFileOutputStream(file) {
+ if (it != null) {
saveBitmap(file, bitmap, it)
- }.start()
- } else {
- toast(R.string.image_editing_failed)
+ } else {
+ toast(R.string.image_editing_failed)
+ }
}
- }
+ }.start()
} catch (e: Exception) {
showErrorToast(e)
} catch (e: OutOfMemoryError) {
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ExcludedFoldersActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ExcludedFoldersActivity.kt
index 0b1c722cf..f8d398eac 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ExcludedFoldersActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ExcludedFoldersActivity.kt
@@ -15,15 +15,17 @@ class ExcludedFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_manage_folders)
- updateExcludedFolders()
+ updateFolders()
}
- private fun updateExcludedFolders() {
+ private fun updateFolders() {
val folders = ArrayList()
config.excludedFolders.mapTo(folders, { it })
- manage_folders_placeholder.text = getString(R.string.excluded_activity_placeholder)
- manage_folders_placeholder.beVisibleIf(folders.isEmpty())
- manage_folders_placeholder.setTextColor(config.textColor)
+ manage_folders_placeholder.apply {
+ text = getString(R.string.excluded_activity_placeholder)
+ beVisibleIf(folders.isEmpty())
+ setTextColor(config.textColor)
+ }
val adapter = ManageFoldersAdapter(this, folders, true, this, manage_folders_list) {}
adapter.setupDragListener(true)
@@ -31,26 +33,26 @@ class ExcludedFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener {
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
- menuInflater.inflate(R.menu.menu_excluded_folders, menu)
+ menuInflater.inflate(R.menu.menu_add_folder, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
- R.id.add_folder -> addExcludedFolder()
+ R.id.add_folder -> addFolder()
else -> return super.onOptionsItemSelected(item)
}
return true
}
override fun refreshItems() {
- updateExcludedFolders()
+ updateFolders()
}
- private fun addExcludedFolder() {
+ private fun addFolder() {
FilePickerDialog(this, pickFile = false, showHidden = config.shouldShowHidden) {
config.addExcludedFolder(it)
- updateExcludedFolders()
+ updateFolders()
}
}
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/HiddenFoldersActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/HiddenFoldersActivity.kt
new file mode 100644
index 000000000..79ce030f4
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/HiddenFoldersActivity.kt
@@ -0,0 +1,65 @@
+package com.simplemobiletools.gallery.activities
+
+import android.os.Bundle
+import android.view.Menu
+import android.view.MenuItem
+import com.simplemobiletools.commons.dialogs.FilePickerDialog
+import com.simplemobiletools.commons.extensions.beVisibleIf
+import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener
+import com.simplemobiletools.gallery.R
+import com.simplemobiletools.gallery.adapters.ManageHiddenFoldersAdapter
+import com.simplemobiletools.gallery.extensions.addNoMedia
+import com.simplemobiletools.gallery.extensions.config
+import com.simplemobiletools.gallery.extensions.getNoMediaFolders
+import kotlinx.android.synthetic.main.activity_manage_folders.*
+
+class HiddenFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener {
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_manage_folders)
+ updateFolders()
+ }
+
+ private fun updateFolders() {
+ getNoMediaFolders {
+ runOnUiThread {
+ manage_folders_placeholder.apply {
+ text = getString(R.string.hidden_folders_placeholder)
+ beVisibleIf(it.isEmpty())
+ setTextColor(config.textColor)
+ }
+
+ val adapter = ManageHiddenFoldersAdapter(this, it, this, manage_folders_list) {}
+ adapter.setupDragListener(true)
+ manage_folders_list.adapter = adapter
+ }
+ }
+ }
+
+ override fun onCreateOptionsMenu(menu: Menu?): Boolean {
+ menuInflater.inflate(R.menu.menu_add_folder, menu)
+ return true
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ when (item.itemId) {
+ R.id.add_folder -> addFolder()
+ else -> return super.onOptionsItemSelected(item)
+ }
+ return true
+ }
+
+ override fun refreshItems() {
+ updateFolders()
+ }
+
+ private fun addFolder() {
+ FilePickerDialog(this, pickFile = false, showHidden = config.shouldShowHidden) {
+ Thread {
+ addNoMedia(it) {
+ updateFolders()
+ }
+ }.start()
+ }
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/IncludedFoldersActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/IncludedFoldersActivity.kt
index c9f67d621..cb565c6b3 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/IncludedFoldersActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/IncludedFoldersActivity.kt
@@ -16,15 +16,17 @@ class IncludedFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_manage_folders)
- updateIncludedFolders()
+ updateFolders()
}
- private fun updateIncludedFolders() {
+ private fun updateFolders() {
val folders = ArrayList()
config.includedFolders.mapTo(folders, { it })
- manage_folders_placeholder.text = getString(R.string.included_activity_placeholder)
- manage_folders_placeholder.beVisibleIf(folders.isEmpty())
- manage_folders_placeholder.setTextColor(config.textColor)
+ manage_folders_placeholder.apply {
+ text = getString(R.string.included_activity_placeholder)
+ beVisibleIf(folders.isEmpty())
+ setTextColor(config.textColor)
+ }
val adapter = ManageFoldersAdapter(this, folders, false, this, manage_folders_list) {}
adapter.setupDragListener(true)
@@ -32,26 +34,26 @@ class IncludedFoldersActivity : SimpleActivity(), RefreshRecyclerViewListener {
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
- menuInflater.inflate(R.menu.menu_included_folders, menu)
+ menuInflater.inflate(R.menu.menu_add_folder, menu)
return true
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
- R.id.add_folder -> addIncludedFolder()
+ R.id.add_folder -> addFolder()
else -> return super.onOptionsItemSelected(item)
}
return true
}
override fun refreshItems() {
- updateIncludedFolders()
+ updateFolders()
}
- private fun addIncludedFolder() {
+ private fun addFolder() {
FilePickerDialog(this, pickFile = false, showHidden = config.shouldShowHidden) {
config.addIncludedFolder(it)
- updateIncludedFolders()
+ updateFolders()
Thread {
scanPath(it)
}.start()
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt
index 9694a0348..d8423670e 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt
@@ -402,12 +402,16 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
}
private fun increaseColumnCount() {
+ directories_vertical_fastscroller.measureRecyclerViewOnRedraw()
+ directories_horizontal_fastscroller.measureRecyclerViewOnRedraw()
config.dirColumnCnt = ++(directories_grid.layoutManager as GridLayoutManager).spanCount
invalidateOptionsMenu()
directories_grid.adapter?.notifyDataSetChanged()
}
private fun reduceColumnCount() {
+ directories_vertical_fastscroller.measureRecyclerViewOnRedraw()
+ directories_horizontal_fastscroller.measureRecyclerViewOnRedraw()
config.dirColumnCnt = --(directories_grid.layoutManager as GridLayoutManager).spanCount
invalidateOptionsMenu()
directories_grid.adapter?.notifyDataSetChanged()
@@ -472,6 +476,8 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
inputStream = FileInputStream(File(path))
outputStream = contentResolver.openOutputStream(output)
inputStream.copyTo(outputStream)
+ } catch (e: SecurityException) {
+ showErrorToast(e)
} catch (ignored: FileNotFoundException) {
} finally {
inputStream?.close()
@@ -523,9 +529,11 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
}
private fun gotDirectories(newDirs: ArrayList, isFromCache: Boolean) {
- Thread {
- mLatestMediaId = getLatestMediaId()
- }.start()
+ if (!isFromCache) {
+ Thread {
+ mLatestMediaId = getLatestMediaId()
+ }.start()
+ }
val dirs = getSortedDirectories(newDirs)
directories_refresh_layout.isRefreshing = false
@@ -533,6 +541,11 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
directories_empty_text_label.beVisibleIf(dirs.isEmpty() && !isFromCache)
directories_empty_text.beVisibleIf(dirs.isEmpty() && !isFromCache)
+ directories_grid.beVisibleIf(directories_empty_text_label.isGone())
+
+ val allowHorizontalScroll = config.scrollHorizontally && config.viewTypeFiles == VIEW_TYPE_GRID
+ directories_vertical_fastscroller.beVisibleIf(directories_grid.isVisible() && !allowHorizontalScroll)
+ directories_horizontal_fastscroller.beVisibleIf(directories_grid.isVisible() && allowHorizontalScroll)
checkLastMediaChanged()
if (dirs.hashCode() == mDirs.hashCode()) {
@@ -559,7 +572,8 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener {
val currAdapter = directories_grid.adapter
if (currAdapter == null) {
initZoomListener()
- DirectoryAdapter(this, mDirs, this, directories_grid, isPickIntent(intent) || isGetAnyContentIntent(intent)) {
+ val fastscroller = if (config.scrollHorizontally) directories_horizontal_fastscroller else directories_vertical_fastscroller
+ DirectoryAdapter(this, mDirs, this, directories_grid, isPickIntent(intent) || isGetAnyContentIntent(intent), fastscroller) {
itemClicked((it as Directory).path)
}.apply {
setupZoomListener(mZoomListener)
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt
index 5f0ab42fa..e8d13e7fb 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt
@@ -1,13 +1,17 @@
package com.simplemobiletools.gallery.activities
import android.app.Activity
+import android.app.SearchManager
import android.app.WallpaperManager
+import android.content.Context
import android.content.Intent
import android.graphics.Bitmap
import android.net.Uri
import android.os.Bundle
import android.os.Handler
+import android.support.v4.view.MenuItemCompat
import android.support.v7.widget.GridLayoutManager
+import android.support.v7.widget.SearchView
import android.view.Menu
import android.view.MenuItem
import android.view.ViewGroup
@@ -60,6 +64,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
private var mLastMediaHandler = Handler()
private var mCurrAsyncTask: GetMediaAsynctask? = null
private var mZoomListener: MyRecyclerView.MyZoomListener? = null
+ private var mSearchMenuItem: MenuItem? = null
companion object {
var mMedia = ArrayList()
@@ -130,6 +135,13 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
}
}
+ override fun onStop() {
+ super.onStop()
+ if (mSearchMenuItem != null) {
+ MenuItemCompat.collapseActionView(mSearchMenuItem)
+ }
+ }
+
override fun onDestroy() {
super.onDestroy()
if (config.showAll)
@@ -138,6 +150,54 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
mMedia.clear()
}
+ override fun onCreateOptionsMenu(menu: Menu): Boolean {
+ menuInflater.inflate(R.menu.menu_media, menu)
+
+ val isFolderHidden = File(mPath).containsNoMedia()
+ menu.apply {
+ findItem(R.id.hide_folder).isVisible = !isFolderHidden && !mShowAll
+ findItem(R.id.unhide_folder).isVisible = isFolderHidden && !mShowAll
+ findItem(R.id.exclude_folder).isVisible = !mShowAll
+
+ findItem(R.id.folder_view).isVisible = mShowAll
+ findItem(R.id.open_camera).isVisible = mShowAll
+ findItem(R.id.about).isVisible = mShowAll
+
+ findItem(R.id.temporarily_show_hidden).isVisible = !config.shouldShowHidden
+ findItem(R.id.stop_showing_hidden).isVisible = config.temporarilyShowHidden
+
+ findItem(R.id.increase_column_count).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID && config.mediaColumnCnt < MAX_COLUMN_COUNT
+ findItem(R.id.reduce_column_count).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID && config.mediaColumnCnt > 1
+
+ findItem(R.id.toggle_filename).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID
+ }
+
+ setupSearch(menu)
+ return true
+ }
+
+ override fun onOptionsItemSelected(item: MenuItem): Boolean {
+ when (item.itemId) {
+ R.id.sort -> showSortingDialog()
+ R.id.filter -> showFilterMediaDialog()
+ R.id.toggle_filename -> toggleFilenameVisibility()
+ R.id.open_camera -> launchCamera()
+ R.id.folder_view -> switchToFolderView()
+ R.id.change_view_type -> changeViewType()
+ R.id.hide_folder -> tryHideFolder()
+ R.id.unhide_folder -> unhideFolder()
+ R.id.exclude_folder -> tryExcludeFolder()
+ R.id.temporarily_show_hidden -> tryToggleTemporarilyShowHidden()
+ R.id.stop_showing_hidden -> tryToggleTemporarilyShowHidden()
+ R.id.increase_column_count -> increaseColumnCount()
+ R.id.reduce_column_count -> reduceColumnCount()
+ R.id.settings -> launchSettings()
+ R.id.about -> launchAbout()
+ else -> return super.onOptionsItemSelected(item)
+ }
+ return true
+ }
+
private fun storeStateVariables() {
config.apply {
mStoredUseEnglish = useEnglish
@@ -150,6 +210,33 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
}
}
+ private fun setupSearch(menu: Menu) {
+ val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
+ mSearchMenuItem = menu.findItem(R.id.search)
+ (mSearchMenuItem!!.actionView as SearchView).apply {
+ setSearchableInfo(searchManager.getSearchableInfo(componentName))
+ isSubmitButtonEnabled = false
+ setOnQueryTextListener(object : SearchView.OnQueryTextListener {
+ override fun onQueryTextSubmit(query: String) = false
+
+ override fun onQueryTextChange(newText: String): Boolean {
+ searchQueryChanged(newText)
+ return true
+ }
+ })
+ }
+ }
+
+ private fun searchQueryChanged(text: String) {
+ Thread {
+ val filtered = mMedia.filter { it.name.contains(text, true) } as ArrayList
+ filtered.sortBy { !it.name.startsWith(text, true) }
+ runOnUiThread {
+ (media_grid.adapter as? MediaAdapter)?.updateMedia(filtered)
+ }
+ }.start()
+ }
+
private fun tryloadGallery() {
handlePermission(PERMISSION_WRITE_STORAGE) {
if (it) {
@@ -176,13 +263,15 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
}
private fun setupAdapter() {
- if (isDirEmpty())
+ if (!mShowAll && isDirEmpty()) {
return
+ }
val currAdapter = media_grid.adapter
if (currAdapter == null) {
initZoomListener()
- MediaAdapter(this, mMedia, this, mIsGetImageIntent || mIsGetVideoIntent || mIsGetAnyIntent, mAllowPickingMultiple, media_grid) {
+ val fastscroller = if (config.scrollHorizontally) media_horizontal_fastscroller else media_vertical_fastscroller
+ MediaAdapter(this, mMedia, this, mIsGetImageIntent || mIsGetVideoIntent || mIsGetAnyIntent, mAllowPickingMultiple, media_grid, fastscroller) {
itemClicked((it as Medium).path)
}.apply {
setupZoomListener(mZoomListener)
@@ -238,52 +327,6 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
}, LAST_MEDIA_CHECK_PERIOD)
}
- override fun onCreateOptionsMenu(menu: Menu): Boolean {
- menuInflater.inflate(R.menu.menu_media, menu)
-
- val isFolderHidden = File(mPath).containsNoMedia()
- menu.apply {
- findItem(R.id.hide_folder).isVisible = !isFolderHidden && !mShowAll
- findItem(R.id.unhide_folder).isVisible = isFolderHidden && !mShowAll
-
- findItem(R.id.folder_view).isVisible = mShowAll
- findItem(R.id.open_camera).isVisible = mShowAll
- findItem(R.id.about).isVisible = mShowAll
-
- findItem(R.id.temporarily_show_hidden).isVisible = !config.shouldShowHidden
- findItem(R.id.stop_showing_hidden).isVisible = config.temporarilyShowHidden
-
- findItem(R.id.increase_column_count).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID && config.mediaColumnCnt < MAX_COLUMN_COUNT
- findItem(R.id.reduce_column_count).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID && config.mediaColumnCnt > 1
-
- findItem(R.id.toggle_filename).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID
- }
-
- return true
- }
-
- override fun onOptionsItemSelected(item: MenuItem): Boolean {
- when (item.itemId) {
- R.id.sort -> showSortingDialog()
- R.id.filter -> showFilterMediaDialog()
- R.id.toggle_filename -> toggleFilenameVisibility()
- R.id.open_camera -> launchCamera()
- R.id.folder_view -> switchToFolderView()
- R.id.change_view_type -> changeViewType()
- R.id.hide_folder -> tryHideFolder()
- R.id.unhide_folder -> unhideFolder()
- R.id.exclude_folder -> tryExcludeFolder()
- R.id.temporarily_show_hidden -> tryToggleTemporarilyShowHidden()
- R.id.stop_showing_hidden -> tryToggleTemporarilyShowHidden()
- R.id.increase_column_count -> increaseColumnCount()
- R.id.reduce_column_count -> reduceColumnCount()
- R.id.settings -> launchSettings()
- R.id.about -> launchAbout()
- else -> return super.onOptionsItemSelected(item)
- }
- return true
- }
-
private fun showSortingDialog() {
ChangeSortingDialog(this, false, !config.showAll, mPath) {
getMedia()
@@ -367,8 +410,9 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
}
private fun getMedia() {
- if (mIsGettingMedia)
+ if (mIsGettingMedia) {
return
+ }
mIsGettingMedia = true
val media = getCachedMedia(mPath)
@@ -466,12 +510,16 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
}
private fun increaseColumnCount() {
+ media_vertical_fastscroller.measureRecyclerViewOnRedraw()
+ media_horizontal_fastscroller.measureRecyclerViewOnRedraw()
config.mediaColumnCnt = ++(media_grid.layoutManager as GridLayoutManager).spanCount
invalidateOptionsMenu()
media_grid.adapter?.notifyDataSetChanged()
}
private fun reduceColumnCount() {
+ media_vertical_fastscroller.measureRecyclerViewOnRedraw()
+ media_horizontal_fastscroller.measureRecyclerViewOnRedraw()
config.mediaColumnCnt = --(media_grid.layoutManager as GridLayoutManager).spanCount
invalidateOptionsMenu()
media_grid.adapter?.notifyDataSetChanged()
@@ -506,12 +554,11 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
.load(File(path))
.apply(options)
.into(object : SimpleTarget() {
- override fun onResourceReady(resource: Bitmap?, transition: Transition?) {
+ override fun onResourceReady(resource: Bitmap, transition: Transition?) {
try {
WallpaperManager.getInstance(applicationContext).setBitmap(resource)
setResult(Activity.RESULT_OK)
} catch (ignored: IOException) {
-
}
finish()
@@ -548,13 +595,17 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener {
media_empty_text_label.beVisibleIf(media.isEmpty() && !isFromCache)
media_empty_text.beVisibleIf(media.isEmpty() && !isFromCache)
+ media_grid.beVisibleIf(media_empty_text_label.isGone())
+
+ val allowHorizontalScroll = config.scrollHorizontally && config.viewTypeFiles == VIEW_TYPE_GRID
+ media_vertical_fastscroller.beVisibleIf(media_grid.isVisible() && !allowHorizontalScroll)
+ media_horizontal_fastscroller.beVisibleIf(media_grid.isVisible() && allowHorizontalScroll)
checkLastMediaChanged()
- if (mLastDrawnHashCode == 0)
- mLastDrawnHashCode = media.hashCode()
- if (media.hashCode() == mMedia.hashCode() && media.hashCode() == mLastDrawnHashCode)
+ if (media.hashCode() == mMedia.hashCode() && media.hashCode() == mLastDrawnHashCode) {
return
+ }
mLastDrawnHashCode = media.hashCode()
mMedia = media
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt
index 950f356cf..ad9dc2043 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt
@@ -38,7 +38,8 @@ class SettingsActivity : SimpleActivity() {
setupUseEnglish()
setupManageIncludedFolders()
setupManageExcludedFolders()
- setupShowHiddenFolders()
+ setupManageHiddenFolders()
+ setupShowHiddenItems()
setupAutoplayVideos()
setupLoopVideos()
setupAnimateGifs()
@@ -56,6 +57,7 @@ class SettingsActivity : SimpleActivity() {
setupShowMediaCount()
setupKeepLastModified()
setupShowInfoBubble()
+ setupOneFingerZoom()
setupShowExtendedDetails()
setupManageExtendedDetails()
updateTextColors(settings_holder)
@@ -89,22 +91,30 @@ class SettingsActivity : SimpleActivity() {
}
}
- private fun setupShowHiddenFolders() {
- settings_show_hidden_folders.isChecked = config.showHiddenMedia
- settings_show_hidden_folders_holder.setOnClickListener {
+ private fun setupManageHiddenFolders() {
+ settings_manage_hidden_folders_holder.setOnClickListener {
+ handleHiddenFolderPasswordProtection {
+ startActivity(Intent(this, HiddenFoldersActivity::class.java))
+ }
+ }
+ }
+
+ private fun setupShowHiddenItems() {
+ settings_show_hidden_items.isChecked = config.showHiddenMedia
+ settings_show_hidden_items_holder.setOnClickListener {
if (config.showHiddenMedia) {
- toggleHiddenFolders()
+ toggleHiddenItems()
} else {
handleHiddenFolderPasswordProtection {
- toggleHiddenFolders()
+ toggleHiddenItems()
}
}
}
}
- private fun toggleHiddenFolders() {
- settings_show_hidden_folders.toggle()
- config.showHiddenMedia = settings_show_hidden_folders.isChecked
+ private fun toggleHiddenItems() {
+ settings_show_hidden_items.toggle()
+ config.showHiddenMedia = settings_show_hidden_items.isChecked
}
private fun setupAutoplayVideos() {
@@ -263,27 +273,14 @@ class SettingsActivity : SimpleActivity() {
}
}
- private fun setupScreenRotation() {
- settings_screen_rotation.text = getScreenRotationText()
- settings_screen_rotation_holder.setOnClickListener {
- val items = arrayListOf(
- RadioItem(ROTATE_BY_SYSTEM_SETTING, res.getString(R.string.screen_rotation_system_setting)),
- RadioItem(ROTATE_BY_DEVICE_ROTATION, res.getString(R.string.screen_rotation_device_rotation)),
- RadioItem(ROTATE_BY_ASPECT_RATIO, res.getString(R.string.screen_rotation_aspect_ratio)))
-
- RadioGroupDialog(this@SettingsActivity, items, config.screenRotation) {
- config.screenRotation = it as Int
- settings_screen_rotation.text = getScreenRotationText()
- }
+ private fun setupOneFingerZoom() {
+ settings_one_finger_zoom.isChecked = config.oneFingerZoom
+ settings_one_finger_zoom_holder.setOnClickListener {
+ settings_one_finger_zoom.toggle()
+ config.oneFingerZoom = settings_one_finger_zoom.isChecked
}
}
- private fun getScreenRotationText() = getString(when (config.screenRotation) {
- ROTATE_BY_SYSTEM_SETTING -> R.string.screen_rotation_system_setting
- ROTATE_BY_DEVICE_ROTATION -> R.string.screen_rotation_device_rotation
- else -> R.string.screen_rotation_aspect_ratio
- })
-
private fun setupShowExtendedDetails() {
settings_show_extended_details.isChecked = config.showExtendedDetails
settings_show_extended_details_holder.setOnClickListener {
@@ -303,4 +300,25 @@ class SettingsActivity : SimpleActivity() {
}
}
}
+
+ private fun setupScreenRotation() {
+ settings_screen_rotation.text = getScreenRotationText()
+ settings_screen_rotation_holder.setOnClickListener {
+ val items = arrayListOf(
+ RadioItem(ROTATE_BY_SYSTEM_SETTING, res.getString(R.string.screen_rotation_system_setting)),
+ RadioItem(ROTATE_BY_DEVICE_ROTATION, res.getString(R.string.screen_rotation_device_rotation)),
+ RadioItem(ROTATE_BY_ASPECT_RATIO, res.getString(R.string.screen_rotation_aspect_ratio)))
+
+ RadioGroupDialog(this@SettingsActivity, items, config.screenRotation) {
+ config.screenRotation = it as Int
+ settings_screen_rotation.text = getScreenRotationText()
+ }
+ }
+ }
+
+ private fun getScreenRotationText() = getString(when (config.screenRotation) {
+ ROTATE_BY_SYSTEM_SETTING -> R.string.screen_rotation_system_setting
+ ROTATE_BY_DEVICE_ROTATION -> R.string.screen_rotation_device_rotation
+ else -> R.string.screen_rotation_aspect_ratio
+ })
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt
index f901cb7c2..348b78881 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt
@@ -177,6 +177,13 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
return
}
+ val file = File(mPath)
+ if (!file.exists()) {
+ deleteFromMediaStore(file)
+ finish()
+ return
+ }
+
if (intent.extras?.containsKey(IS_VIEW_INTENT) == true) {
if (isShowHiddenFlagNeeded()) {
if (!config.isPasswordProtectionOn) {
@@ -189,7 +196,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
showSystemUI()
- mDirectory = File(mPath).parent
+ mDirectory = file.parent
supportActionBar?.title = mPath.getFilenameFromPath()
view_pager.onGlobalLayout {
@@ -264,6 +271,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
findItem(R.id.menu_save_as).isVisible = mRotationDegrees != 0f
findItem(R.id.menu_hide).isVisible = !currentMedium.name.startsWith('.')
findItem(R.id.menu_unhide).isVisible = currentMedium.name.startsWith('.')
+ findItem(R.id.menu_lock_orientation).isVisible = mRotationDegrees == 0f
findItem(R.id.menu_lock_orientation).title = getString(if (mIsOrientationLocked) R.string.unlock_orientation else R.string.lock_orientation)
findItem(R.id.menu_rotate).setShowAsAction(
if (mRotationDegrees != 0f) {
@@ -316,6 +324,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
view_pager.apply {
adapter = pagerAdapter
currentItem = mPos
+ removeOnPageChangeListener(this@ViewPagerActivity)
addOnPageChangeListener(this@ViewPagerActivity)
}
}
@@ -350,10 +359,16 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
}
override fun onAnimationEnd(animation: Animator?) {
- view_pager.endFakeDrag()
+ if (view_pager.isFakeDragging) {
+ try {
+ view_pager.endFakeDrag()
+ } catch (ignored: Exception) {
+ stopSlideshow()
+ }
- if (view_pager.currentItem == oldPosition) {
- slideshowEnded(forward)
+ if (view_pager.currentItem == oldPosition) {
+ slideshowEnded(forward)
+ }
}
}
@@ -373,7 +388,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
val dragPosition = animation.animatedValue as Int
val dragOffset = dragPosition - oldDragPosition
oldDragPosition = dragPosition
- view_pager.fakeDragBy(dragOffset * (if (forward) 1f else -1f))
+ try {
+ view_pager.fakeDragBy(dragOffset * (if (forward) 1f else -1f))
+ } catch (e: Exception) {
+ stopSlideshow()
+ }
}
}
})
@@ -398,8 +417,8 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
private fun stopSlideshow() {
if (mIsSlideshowActive) {
- showSystemUI()
mIsSlideshowActive = false
+ showSystemUI()
mSlideshowHandler.removeCallbacksAndMessages(null)
window.clearFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
}
@@ -667,7 +686,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
} else {
- toast(R.string.no_map_application)
+ toast(R.string.no_app_found)
}
}
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt
index a8ee3f75f..e1e0def89 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt
@@ -11,6 +11,7 @@ import com.simplemobiletools.commons.dialogs.ConfirmationDialog
import com.simplemobiletools.commons.dialogs.PropertiesDialog
import com.simplemobiletools.commons.dialogs.RenameItemDialog
import com.simplemobiletools.commons.extensions.*
+import com.simplemobiletools.commons.views.FastScroller
import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.gallery.R
import com.simplemobiletools.gallery.dialogs.ExcludeFolderDialog
@@ -24,7 +25,8 @@ import java.io.File
import java.util.*
class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: MutableList, val listener: DirOperationsListener?, recyclerView: MyRecyclerView,
- val isPickIntent: Boolean, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
+ val isPickIntent: Boolean, fastScroller: FastScroller? = null, itemClick: (Any) -> Unit) :
+ MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
private val config = activity.config
private val isListViewType = config.viewTypeFolders == VIEW_TYPE_LIST
@@ -92,7 +94,7 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: MutableList, val isShowingExcludedFolders: Boolean, val listener: RefreshRecyclerViewListener?,
- recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
+ recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) {
private val config = activity.config
- override fun getActionMenuId() = R.menu.cab_delete_only
+ override fun getActionMenuId() = R.menu.cab_remove_only
override fun prepareActionMode(menu: Menu) {}
@@ -30,7 +29,7 @@ class ManageFoldersAdapter(activity: BaseSimpleActivity, var folders: ArrayList<
override fun actionItemPressed(id: Int) {
when (id) {
- R.id.cab_delete -> askConfirmDelete()
+ R.id.cab_remove -> removeSelection()
}
}
@@ -57,13 +56,7 @@ class ManageFoldersAdapter(activity: BaseSimpleActivity, var folders: ArrayList<
}
}
- private fun askConfirmDelete() {
- ConfirmationDialog(activity) {
- deleteSelection()
- }
- }
-
- private fun deleteSelection() {
+ private fun removeSelection() {
val removeFolders = ArrayList(selectedPositions.size)
selectedPositions.sortedDescending().forEach {
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageHiddenFoldersAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageHiddenFoldersAdapter.kt
new file mode 100644
index 000000000..8bc51ea3a
--- /dev/null
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageHiddenFoldersAdapter.kt
@@ -0,0 +1,94 @@
+package com.simplemobiletools.gallery.adapters
+
+import android.view.Menu
+import android.view.View
+import android.view.ViewGroup
+import com.simplemobiletools.commons.activities.BaseSimpleActivity
+import com.simplemobiletools.commons.adapters.MyRecyclerViewAdapter
+import com.simplemobiletools.commons.extensions.isPathOnSD
+import com.simplemobiletools.commons.interfaces.RefreshRecyclerViewListener
+import com.simplemobiletools.commons.views.MyRecyclerView
+import com.simplemobiletools.gallery.R
+import com.simplemobiletools.gallery.extensions.config
+import com.simplemobiletools.gallery.extensions.removeNoMedia
+import kotlinx.android.synthetic.main.item_manage_folder.view.*
+import java.io.File
+import java.util.*
+
+class ManageHiddenFoldersAdapter(activity: BaseSimpleActivity, var folders: ArrayList, val listener: RefreshRecyclerViewListener?,
+ recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) {
+
+ private val config = activity.config
+
+ override fun getActionMenuId() = R.menu.cab_hidden_folders
+
+ override fun prepareActionMode(menu: Menu) {}
+
+ override fun prepareItemSelection(view: View) {}
+
+ override fun markItemSelection(select: Boolean, view: View?) {
+ view?.manage_folder_holder?.isSelected = select
+ }
+
+ override fun actionItemPressed(id: Int) {
+ when (id) {
+ R.id.cab_unhide -> tryUnhideFolders()
+ }
+ }
+
+ override fun getSelectableItemCount() = folders.size
+
+ override fun onCreateViewHolder(parent: ViewGroup?, viewType: Int) = createViewHolder(R.layout.item_manage_folder, parent)
+
+ override fun onBindViewHolder(holder: ViewHolder, position: Int) {
+ val folder = folders[position]
+ val view = holder.bindView(folder) { itemView, layoutPosition ->
+ setupView(itemView, folder)
+ }
+ bindViewHolder(holder, position, view)
+ }
+
+ override fun getItemCount() = folders.size
+
+ private fun setupView(view: View, folder: String) {
+ view.apply {
+ manage_folder_title.apply {
+ text = folder
+ setTextColor(config.textColor)
+ }
+ }
+ }
+
+ private fun tryUnhideFolders() {
+ val removeFolders = ArrayList(selectedPositions.size)
+
+ val sdCardPaths = ArrayList()
+ selectedPositions.forEach {
+ if (activity.isPathOnSD(folders[it])) {
+ sdCardPaths.add(folders[it])
+ }
+ }
+
+ if (sdCardPaths.isNotEmpty()) {
+ activity.handleSAFDialog(File(sdCardPaths.first())) {
+ unhideFolders(removeFolders)
+ }
+ } else {
+ unhideFolders(removeFolders)
+ }
+ }
+
+ private fun unhideFolders(removeFolders: ArrayList) {
+ selectedPositions.sortedDescending().forEach {
+ val folder = folders[it]
+ removeFolders.add(folder)
+ activity.removeNoMedia(folder)
+ }
+
+ folders.removeAll(removeFolders)
+ removeSelectedItems()
+ if (folders.isEmpty()) {
+ listener?.refreshItems()
+ }
+ }
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt
index f2c3dfb17..66df85b70 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt
@@ -1,6 +1,8 @@
package com.simplemobiletools.gallery.adapters
import android.net.Uri
+import android.os.Handler
+import android.os.Looper
import android.view.Menu
import android.view.View
import android.view.ViewGroup
@@ -12,28 +14,40 @@ import com.simplemobiletools.commons.dialogs.RenameItemDialog
import com.simplemobiletools.commons.extensions.applyColorFilter
import com.simplemobiletools.commons.extensions.beVisibleIf
import com.simplemobiletools.commons.extensions.isActivityDestroyed
+import com.simplemobiletools.commons.views.FastScroller
import com.simplemobiletools.commons.views.MyRecyclerView
import com.simplemobiletools.gallery.R
import com.simplemobiletools.gallery.dialogs.DeleteWithRememberDialog
import com.simplemobiletools.gallery.extensions.*
import com.simplemobiletools.gallery.helpers.VIEW_TYPE_LIST
import com.simplemobiletools.gallery.models.Medium
-import kotlinx.android.synthetic.main.photo_video_item_list.view.*
+import kotlinx.android.synthetic.main.photo_video_item_grid.view.*
import java.io.File
import java.util.*
class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, val listener: MediaOperationsListener?, val isAGetIntent: Boolean,
- val allowMultiplePicks: Boolean, recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) {
+ val allowMultiplePicks: Boolean, recyclerView: MyRecyclerView, fastScroller: FastScroller? = null,
+ itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) {
+
+ private val INSTANT_LOAD_DURATION = 2000L
+ private val IMAGE_LOAD_DELAY = 100L
private val config = activity.config
private val isListViewType = config.viewTypeFiles == VIEW_TYPE_LIST
private var skipConfirmationDialog = false
+ private var visibleItemPaths = ArrayList()
+ private var loadImageInstantly = false
+ private var delayHandler = Handler(Looper.getMainLooper())
private var scrollHorizontally = config.scrollHorizontally
private var animateGifs = config.animateGifs
private var cropThumbnails = config.cropThumbnails
private var displayFilenames = config.displayFileNames
+ init {
+ enableInstantLoad()
+ }
+
override fun getActionMenuId() = R.menu.cab_media
override fun prepareItemSelection(view: View) {
@@ -51,6 +65,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList,
override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) {
val medium = media[position]
+ visibleItemPaths.add(medium.path)
val view = holder.bindView(medium, !allowMultiplePicks) { itemView, layoutPosition ->
setupView(itemView, medium)
}
@@ -92,7 +107,9 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList,
override fun onViewRecycled(holder: ViewHolder?) {
super.onViewRecycled(holder)
if (!activity.isActivityDestroyed()) {
- Glide.with(activity).clear(holder?.itemView?.medium_thumbnail)
+ val itemView = holder?.itemView
+ visibleItemPaths.remove(itemView?.photo_name?.tag)
+ Glide.with(activity).clear(itemView?.medium_thumbnail!!)
}
}
@@ -230,12 +247,14 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList,
fun updateMedia(newMedia: ArrayList) {
media = newMedia
+ enableInstantLoad()
notifyDataSetChanged()
finishActMode()
}
fun updateDisplayFilenames(displayFilenames: Boolean) {
this.displayFilenames = displayFilenames
+ enableInstantLoad()
notifyDataSetChanged()
}
@@ -254,12 +273,32 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList,
notifyDataSetChanged()
}
+ private fun enableInstantLoad() {
+ loadImageInstantly = true
+ delayHandler.postDelayed({
+ loadImageInstantly = false
+ }, INSTANT_LOAD_DURATION)
+ }
+
private fun setupView(view: View, medium: Medium) {
view.apply {
play_outline.beVisibleIf(medium.video)
photo_name.beVisibleIf(displayFilenames || isListViewType)
photo_name.text = medium.name
- activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails)
+ photo_name.tag = medium.path
+
+ if (loadImageInstantly) {
+ activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails)
+ } else {
+ medium_thumbnail.setImageDrawable(null)
+ medium_thumbnail.isHorizontalScrolling = scrollHorizontally
+ delayHandler.postDelayed({
+ val isVisible = visibleItemPaths.contains(medium.path)
+ if (isVisible) {
+ activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails)
+ }
+ }, IMAGE_LOAD_DELAY)
+ }
if (isListViewType) {
photo_name.setTextColor(textColor)
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt
index ec99f9352..9d3cd9335 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt
@@ -64,7 +64,7 @@ fun Activity.launchCamera() {
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
} else {
- toast(R.string.no_camera_app_found)
+ toast(R.string.no_app_found)
}
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Context.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Context.kt
index d91b80885..62c8f95c7 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Context.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Context.kt
@@ -3,14 +3,19 @@ package com.simplemobiletools.gallery.extensions
import android.content.Context
import android.content.Intent
import android.content.res.Configuration
+import android.database.Cursor
import android.graphics.Point
import android.media.AudioManager
import android.os.Build
+import android.provider.MediaStore
import android.view.WindowManager
+import com.simplemobiletools.commons.extensions.getStringValue
import com.simplemobiletools.commons.extensions.humanizePath
import com.simplemobiletools.gallery.activities.SettingsActivity
import com.simplemobiletools.gallery.helpers.Config
+import com.simplemobiletools.gallery.helpers.NOMEDIA
import com.simplemobiletools.gallery.models.Directory
+import java.io.File
val Context.portrait get() = resources.configuration.orientation == Configuration.ORIENTATION_PORTRAIT
val Context.audioManager get() = getSystemService(Context.AUDIO_SERVICE) as AudioManager
@@ -73,3 +78,34 @@ fun Context.getSortedDirectories(source: ArrayList): ArrayList) -> Unit) {
+ Thread {
+ val folders = ArrayList()
+
+ val uri = MediaStore.Files.getContentUri("external")
+ val projection = arrayOf(MediaStore.Files.FileColumns.DATA)
+ val selection = "${MediaStore.Files.FileColumns.MEDIA_TYPE} = ? AND ${MediaStore.Files.FileColumns.TITLE} LIKE ?"
+ val selectionArgs = arrayOf(MediaStore.Files.FileColumns.MEDIA_TYPE_NONE.toString(), "%$NOMEDIA%")
+ val sortOrder = "${MediaStore.Files.FileColumns.DATE_MODIFIED} DESC"
+
+ var cursor: Cursor? = null
+
+ try {
+ cursor = contentResolver.query(uri, projection, selection, selectionArgs, sortOrder)
+ if (cursor?.moveToFirst() == true) {
+ do {
+ val path = cursor.getStringValue(MediaStore.Files.FileColumns.DATA) ?: continue
+ val noMediaFile = File(path)
+ if (noMediaFile.exists()) {
+ folders.add("${noMediaFile.parent}/")
+ }
+ } while (cursor.moveToNext())
+ }
+ } finally {
+ cursor?.close()
+ }
+
+ callback(folders)
+ }.start()
+}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt
index 747742a59..7bdff57d6 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt
@@ -6,6 +6,7 @@ import android.graphics.BitmapFactory
import android.graphics.Color
import android.graphics.Matrix
import android.graphics.drawable.ColorDrawable
+import android.media.ExifInterface.*
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
@@ -36,7 +37,7 @@ import java.io.File
import java.io.FileOutputStream
class PhotoFragment : ViewPagerFragment() {
- private var DEFAULT_DOUBLE_TAP_ZOOM = 5f
+ private var DEFAULT_DOUBLE_TAP_ZOOM = 2f
private var isFragmentVisible = false
private var isFullscreen = false
private var wasInit = false
@@ -137,9 +138,9 @@ class PhotoFragment : ViewPagerFragment() {
}
private fun degreesForRotation(orientation: Int) = when (orientation) {
- 8 -> 270
- 3 -> 180
- 6 -> 90
+ ORIENTATION_ROTATE_270 -> 270
+ ORIENTATION_ROTATE_180 -> 180
+ ORIENTATION_ROTATE_90 -> 90
else -> 0
}
@@ -245,6 +246,7 @@ class PhotoFragment : ViewPagerFragment() {
view.subsampling_view.apply {
maxScale = 10f
beVisible()
+ isQuickScaleEnabled = context.config.oneFingerZoom
setImage(ImageSource.uri(medium.path))
orientation = if (orient == -1) SubsamplingScaleImageView.ORIENTATION_USE_EXIF else degreesForRotation(orient)
setOnImageEventListener(object : SubsamplingScaleImageView.OnImageEventListener {
@@ -253,7 +255,9 @@ class PhotoFragment : ViewPagerFragment() {
override fun onReady() {
background = ColorDrawable(if (context.config.blackBackground) Color.BLACK else context.config.backgroundColor)
- setDoubleTapZoomScale(getDoubleTapZoomScale(sWidth, sHeight))
+ val useWidth = if (orient == ORIENTATION_ROTATE_90 || orient == ORIENTATION_ROTATE_270) sHeight else sWidth
+ val useHeight = if (orient == ORIENTATION_ROTATE_90 || orient == ORIENTATION_ROTATE_270) sWidth else sHeight
+ setDoubleTapZoomScale(getDoubleTapZoomScale(useWidth, useHeight))
}
override fun onTileLoadError(e: Exception?) {
@@ -277,22 +281,21 @@ class PhotoFragment : ViewPagerFragment() {
}
private fun getDoubleTapZoomScale(width: Int, height: Int): Float {
- val bitmapAspectRatio = height / (width).toFloat()
+ val bitmapAspectRatio = height / width.toFloat()
+ val screenAspectRatio = ViewPagerActivity.screenHeight / ViewPagerActivity.screenWidth.toFloat()
- return if (context == null) {
- DEFAULT_DOUBLE_TAP_ZOOM
- } else if (ViewPagerActivity.screenHeight / ViewPagerActivity.screenWidth.toFloat() == bitmapAspectRatio) {
+ return if (context == null || bitmapAspectRatio == screenAspectRatio) {
DEFAULT_DOUBLE_TAP_ZOOM
} else if (ViewPagerActivity.wasDecodedByGlide) {
1f
- } else if (context!!.portrait && bitmapAspectRatio <= 1f) {
+ } else if (context!!.portrait && bitmapAspectRatio <= screenAspectRatio) {
ViewPagerActivity.screenHeight / height.toFloat()
- } else if (context!!.portrait && bitmapAspectRatio > 1f) {
- ViewPagerActivity.screenHeight / width.toFloat()
- } else if (!context!!.portrait && bitmapAspectRatio >= 1f) {
+ } else if (context!!.portrait && bitmapAspectRatio > screenAspectRatio) {
ViewPagerActivity.screenWidth / width.toFloat()
- } else if (!context!!.portrait && bitmapAspectRatio < 1f) {
- ViewPagerActivity.screenWidth / height.toFloat()
+ } else if (!context!!.portrait && bitmapAspectRatio >= screenAspectRatio) {
+ ViewPagerActivity.screenWidth / width.toFloat()
+ } else if (!context!!.portrait && bitmapAspectRatio < screenAspectRatio) {
+ ViewPagerActivity.screenHeight / height.toFloat()
} else {
DEFAULT_DOUBLE_TAP_ZOOM
}
@@ -323,7 +326,8 @@ class PhotoFragment : ViewPagerFragment() {
override fun onDestroyView() {
super.onDestroyView()
if (activity?.isActivityDestroyed() == false) {
- Glide.with(context).clear(view.gif_view)
+ Glide.with(context!!).clear(view.gif_view)
+ view.subsampling_view.recycle()
}
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Config.kt
index 8c2f7cdb1..e294f6da1 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Config.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Config.kt
@@ -168,6 +168,10 @@ class Config(context: Context) : BaseConfig(context) {
get() = prefs.getInt(getDirectoryColumnsField(), getDefaultDirectoryColumnCount())
set(dirColumnCnt) = prefs.edit().putInt(getDirectoryColumnsField(), dirColumnCnt).apply()
+ var oneFingerZoom: Boolean
+ get() = prefs.getBoolean(ONE_FINGER_ZOOM, false)
+ set(oneFingerZoom) = prefs.edit().putBoolean(ONE_FINGER_ZOOM, oneFingerZoom).apply()
+
private fun getDirectoryColumnsField(): String {
val isPortrait = context.resources.configuration.orientation == Configuration.ORIENTATION_PORTRAIT
return if (isPortrait) {
@@ -238,7 +242,7 @@ class Config(context: Context) : BaseConfig(context) {
set(replaceShare) = prefs.edit().putBoolean(REPLACE_SHARE_WITH_ROTATE, replaceShare).apply()
var deleteEmptyFolders: Boolean
- get() = prefs.getBoolean(DELETE_EMPTY_FOLDERS, true)
+ get() = prefs.getBoolean(DELETE_EMPTY_FOLDERS, false)
set(deleteEmptyFolders) = prefs.edit().putBoolean(DELETE_EMPTY_FOLDERS, deleteEmptyFolders).apply()
var allowVideoGestures: Boolean
@@ -300,4 +304,8 @@ class Config(context: Context) : BaseConfig(context) {
var extendedDetails: Int
get() = prefs.getInt(EXTENDED_DETAILS, EXT_RESOLUTION or EXT_LAST_MODIFIED or EXT_EXIF_PROPERTIES)
set(extendedDetails) = prefs.edit().putInt(EXTENDED_DETAILS, extendedDetails).apply()
+
+ var lastFileCleanup: Long
+ get() = prefs.getLong(LAST_FILE_CLEANUP, 0L)
+ set(lastFileCleanup) = prefs.edit().putLong(LAST_FILE_CLEANUP, lastFileCleanup).apply()
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt
index b9ebd1071..cf5bd0fa3 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt
@@ -42,6 +42,8 @@ val VIEW_TYPE_FOLDERS = "view_type_folders"
val VIEW_TYPE_FILES = "view_type_files"
val SHOW_EXTENDED_DETAILS = "show_extended_details"
val EXTENDED_DETAILS = "extended_details"
+val LAST_FILE_CLEANUP = "last_file_cleanup"
+val ONE_FINGER_ZOOM = "one_finger_zoom"
// slideshow
val SLIDESHOW_INTERVAL = "slideshow_interval"
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/GlideRotateTransformation.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/GlideRotateTransformation.kt
index 8a48b23f4..aae7d66ca 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/GlideRotateTransformation.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/GlideRotateTransformation.kt
@@ -17,6 +17,6 @@ class GlideRotateTransformation(context: Context, val rotateRotationAngle: Float
return Bitmap.createBitmap(bitmap, 0, 0, bitmap.width, bitmap.height, matrix, true)
}
- override fun updateDiskCacheKey(messageDigest: MessageDigest?) {
+ override fun updateDiskCacheKey(messageDigest: MessageDigest) {
}
}
diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/MediaFetcher.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/MediaFetcher.kt
index efad5c169..e0e199df2 100644
--- a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/MediaFetcher.kt
+++ b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/MediaFetcher.kt
@@ -40,6 +40,16 @@ class MediaFetcher(val context: Context) {
directories.remove(it)
}
+ Thread {
+ val ONE_WEEK = 7 * 24 * 60 * 60 * 1000
+ if (System.currentTimeMillis() - context.config.lastFileCleanup > ONE_WEEK) {
+ media.filter { !File(it.path).exists() }.forEach {
+ context.deleteFromMediaStore(File(it.path))
+ }
+ context.config.lastFileCleanup = System.currentTimeMillis()
+ }
+ }.start()
+
return directories
}
@@ -140,9 +150,6 @@ class MediaFetcher(val context: Context) {
if (size <= 0L)
continue
- if (!file.exists())
- continue
-
val dateTaken = cur.getLongValue(MediaStore.Images.Media.DATE_TAKEN)
val dateModified = cur.getIntValue(MediaStore.Images.Media.DATE_MODIFIED) * 1000L
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index a01449b1a..033563bb1 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -36,7 +36,7 @@
@@ -48,7 +48,8 @@
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:paddingLeft="@dimen/normal_margin"
- android:paddingStart="@dimen/normal_margin">
+ android:paddingStart="@dimen/normal_margin"
+ android:visibility="gone">
@@ -61,7 +62,8 @@
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
- android:paddingTop="@dimen/normal_margin">
+ android:paddingTop="@dimen/normal_margin"
+ android:visibility="gone">
diff --git a/app/src/main/res/layout/activity_manage_folders.xml b/app/src/main/res/layout/activity_manage_folders.xml
index aaac86a7f..eaa902676 100644
--- a/app/src/main/res/layout/activity_manage_folders.xml
+++ b/app/src/main/res/layout/activity_manage_folders.xml
@@ -11,6 +11,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clipToPadding="false"
+ android:scrollbars="vertical"
app:layoutManager="android.support.v7.widget.LinearLayoutManager"/>
@@ -48,7 +48,8 @@
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:paddingLeft="@dimen/normal_margin"
- android:paddingStart="@dimen/normal_margin">
+ android:paddingStart="@dimen/normal_margin"
+ android:visibility="gone">
@@ -61,7 +62,8 @@
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
- android:paddingTop="@dimen/normal_margin">
+ android:paddingTop="@dimen/normal_margin"
+ android:visibility="gone">
diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml
index 9437d049a..9dfdfacac 100644
--- a/app/src/main/res/layout/activity_settings.xml
+++ b/app/src/main/res/layout/activity_settings.xml
@@ -68,6 +68,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
diff --git a/app/src/main/res/menu/menu_excluded_folders.xml b/app/src/main/res/menu/menu_add_folder.xml
similarity index 100%
rename from app/src/main/res/menu/menu_excluded_folders.xml
rename to app/src/main/res/menu/menu_add_folder.xml
diff --git a/app/src/main/res/menu/menu_media.xml b/app/src/main/res/menu/menu_media.xml
index 978c684c0..de3b01776 100644
--- a/app/src/main/res/menu/menu_media.xml
+++ b/app/src/main/res/menu/menu_media.xml
@@ -2,15 +2,21 @@
تثبيت المجلد
ازالة تثبيت الملف
+ Pin to the top
عرض كل محتوى المجلدات
كل المجلدات
التبديل إلى عرض المجلد
مجلد آخر
عرض على الخريطة
موقع غير معروف
- لم يتم العثور على أي تطبيق مع الخرائط
- لم يتم العثور على تطبيق كاميرا
زيادة عدد الأعمدة
تقليل عدد الأعمدة
تغيير صورة الغلاف
@@ -46,7 +45,9 @@
إذا كنت تريد إخفاءها من تطبيقات أخرى أيضا، استخدم ميزة الإخفاء
حذف الكل
هل تريد إزالة جميع المجلدات من القائمة المستبعدة؟ لن يؤدي هذا إلى حذف المجلدات
+ Hidden folders
Manage hidden folders
+ Seems like you don\'t have any folders hidden with a \".nomedia\" file.
المجلدات المضمنة
@@ -88,7 +89,6 @@
تعيين كخلفية الشاشة
فشل الإعداد كخلفية
تعيين كخلفية بواسطة:
- لم يتم العثور على أي تطبيق لأداء المهمة
... جار تعيين الخلفية ...
تم تعيبن الخلفية بنجاح
صورة نسبة العرض إلى الارتفاع
@@ -135,6 +135,7 @@
استبدال خيار المشاركة مع خيار تدوير في القائمة ملء الشاشة
عرض تفاصيل موسعة على وسائط ملء الشاشة
إدارة المجلدات المستبعدة
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml
new file mode 100644
index 000000000..4fdbd20e9
--- /dev/null
+++ b/app/src/main/res/values-ca/strings.xml
@@ -0,0 +1,155 @@
+
+
+ Simple Gallery
+ Galeria
+ Editar
+ Obrir càmera
+ (ocult)
+ Fixar carpeta
+ No fixar carpeta
+ Ancorar a l\'inici
+ Mostrar el contingut de totes les carpetes
+ Tots els mitjans
+ Canviar a vista de carpeta
+ Un altre carpeta
+ Mostrar al mapa
+ Ubicació desconeguda
+ Augmentar el número de columnes
+ Reduir el número de columnes
+ Canviar imatge de portada
+ Sel·leccionar imatge
+ Us per defecte
+ Volum
+ Brillantor
+ No tornar a preguntar en aquesta sessió
+ Bloquejar orientació
+ Desbloquejar orientació
+
+
+ Filtre d\'arxius
+ Imatges
+ Vídeos
+ GIFs
+ No s\'han tronat arxius amb els filtres seleccionats.
+ Canviar filtres
+
+
+ Aquesta funció oculta les carpetes agregant un arxiu \'.nomedia\' dins d\'ella. També ocultarà les subcarpetes. Pots mostrar-les canviant la opció \'Mostrar carpetes ocultes\' als ajustaments. Continuar?
+ Excloure
+ Carpetes excloses
+ 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.
+ Eliminar tot
+ Eliminar totes les carpetes de la llista d\'excloses? Això no eliminarà les carpetes.
+ Carpetes ocultes
+ Gestionar carpetes ocultes
+ Sembla que no tens cap carpeta amb l\'arxiu \".nomedia\".
+
+
+ Carpetes incloses
+ Gestionar carpetes incloses
+ Agregar carpeta
+ Si tens alguna carpeta que contingui multimèdia però no ha estat reconeguda per la aplicació, pots agregar-les manualment aquí.
+
+
+ Redimensionar
+ Redimensionar la selecció i desar
+ Ample
+ Alt
+ Mantenir proporcions
+ Si us plau, introdueix una resolució vàlida
+
+
+ Editor
+ Guardar
+ Rotar
+ Ruta
+ Ruta de imatge no vàlida
+ Ha fallat la edició de la imatge
+ Editar imatge utilitzant:
+ No s\'ha trobat cap editor d\'imatges
+ Ubicació de l\'arxiu desconeguda
+ No s\'ha pogut sobreescriure l\'arxiu d\'origen
+ Rotar a l\'esquerra
+ Rotar a la dreta
+ Rotar 180º
+ Girar
+ Horizontalment
+ Verticalment
+ Editar amb
+
+
+ Fons de pantalla de Simple Gallery
+ Establir com a fons de pantalla
+ Error a l\'establir com fons de pantalla
+ Establir com fons de pantalla amb:
+ Establint fons de pantalla…
+ Fons de pantalla establert correctament
+ Relació d\'aspecte tipus retrat
+ Relació d\'aspecte tipus paisatge
+ Pantalla principal
+ Pantalla de bloqueig
+ Pantalla principal i de bloqueig
+
+
+ Presentació de diapositives
+ Interval (segons):
+ Inclou imatges
+ Inclou vídeos
+ Inclou GIFs
+ Ordre aleatori
+ Utilitza animacions de desaparició
+ Moure cap enrere
+ Presentació de diapositives
+ S\'ha acabat la presentació de diapositives
+ No s\'han trobat mitjans per a la presentació de diapositives
+
+
+ Canviar el tipus de vista
+ Reixeta
+ Llista
+
+
+ Reproduir vídeos automàticament
+ Canviar la visibilitat del nom d\'arxiu
+ Reproducció continua de vídeos
+ Animar les miniatures dels GIFs
+ Brillantor màxima quan es mostra multimèdia
+ Retallar miniatures en quadrats
+ Gira els mitjans a pantalla completa segons
+ Configuració del sistema
+ Rotació del dispositiu
+ Relació d\'aspecte
+ Fons i barra d\'estat negre als mitjans de pantalla completa
+ Desplaçar miniatures horizontalment
+ Ocultar automàticament la interficie de usuari del sistema a pantalla complerta
+ Eliminar carpetes buides després d\'esborrar el seu contingut
+ Permet controlar el volum i la brillantor del vídeo amb gestos verticals
+ Mostrar el número de mitjans de les carpetes a la vista principal
+ Reemplaçar Compartir per Girar al menú de pantalla complerta
+ Mostrar detalls estesos sobre mitjans a pantalla complerta
+ Gestioneu els detalls ampliats
+ Allow one finger zoom at fullscreen media
+
+
+
+ Una galeria per veure imatges i vídeos sense publicitat.
+
+ Una eina senzilla que es pot fer servir per veure imatges i vídeos. Els elements es poden ordenar per data, mida o nom, tant ascendent com descendent. Es pot fer zoom a les imatges. Els arxius de mitjans es mostren en múltiples columnes depenent de la mida de la pantalla i es pot canviar el número de columnes mitjançant gestos. Permet canviar el nom, compartir, esborrar, i moure. Les imatges també es poden retalla, rotar o utilitzar com a fons de pantalla directament des de l\'aplicació.
+
+ Gallery també s'ofereix per us de tercers, per visualitzar imatges/vídeos, agregar adjunts a clients de correu, etc. Es perfecta per l\'ús diari.
+
+ El permís d\'empremtes dactilars és necessari per bloquejar la visibilitat d'elements ocults o tota l\'aplicació.
+
+ No conté ni publicitat ni permisos innecessaris. Es totalment Lliure i proporciona colors personalitzables.
+
+ Aquesta aplicació es només una peça d'una sèrie més gran d'aplicacions. Pots trobar la resta a http://www.simplemobiletools.com
+
+
+
+
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index c7dd015b0..a21f7f1cc 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -7,14 +7,13 @@
(skryté)
Připnout složku
Odepnout složku
+ Pin to the top
Zobrazit obsah všech složek
Všechny složky
Přepnout na zobrazení složek
Jiná složka
Zobrazit na mapě
Neznámá poloha
- Nebyla nalezena žádná mapová aplikace
- Nebyla nalezena žádná fotografická aplikace
Zvýšit počet sloupců
Snížit počet sloupců
Change cover image
@@ -44,7 +43,9 @@
Vyloučené složky budou spolu s podsložkami vyloučeny jen z Jednoduché Galerie, ostatní aplikace je nadále uvidí.\n\nPokud je chcete skrýt i před ostatními aplikacemi, použijte funkci Skrýt.
Odstranit všechny
Odstranit všechny složky ze seznamu vyloučených? Tato operace neodstraní obsah složek.
+ Hidden folders
Manage hidden folders
+ Seems like you don\'t have any folders hidden with a \".nomedia\" file.
Přidané složky
@@ -84,7 +85,6 @@
Nastavit jako tapetu
Nastavení tapety selhalo
Nastavit jako tapetu pomocí:
- Nebyla nalezena žádná vhodná aplikace
Nastavuje se tapeta…
Tapeta byla úspěšně změněna
Portrait aspect ratio
@@ -131,6 +131,7 @@
Replace Share with Rotate at fullscreen menu
Show extended details over fullscreen media
Manage extended details
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index ad8a1e6f6..fe08c5670 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -7,14 +7,13 @@
(versteckt)
Ordner anheften
Ordner loslösen
+ An den Start anheften
Ansicht: Alle Medien
Alle Medien
Ansicht: Als Ordner
Ordner wählen
Auf Karte zeigen
Unbekannter Pfad
- Keine Karten-App gefunden
- Keine Kamera-App gefunden
Kacheln verkleinern
Kacheln vergrößern
Coverbild ändern
@@ -36,21 +35,23 @@
Diese Funktion versteckt die ausgewählten Ordner (auch für andere Apps), indem dort im Dateisystem eine \'.nomedia\'-Datei abgelegt wird. Dadurch werden auch deren Unterordner versteckt. Solche Ordner werden nur gezeigt, wenn die Einstellung \'Versteckte Ordner zeigen\' aktiv ist (auch andere Apps bieten üblicherweise eine solche Option). Fortfahren?
- Ordner ausblenden
- Ausgeblendete Ordner
- Ausgeblendete Ordner verwalten
- Diese Funktion blendet die ausgewählten Ordner und deren Unterordner aus (nur in dieser App). Ausgeblendete Ordner können in den Einstellungen verwaltet werden.
- Möchten Sie stattdessen einen höherliegenden Ordner ausblenden?
- \'Ordner ausblenden\' wird ausgewählte Ordner und deren Unterordner nur in dieser App ausblenden. Andere Apps werden solche Ordner weiterhin anzeigen.\\n\\nWenn Sie Ordner auch für andere Apps verstecken wollen, verwenden Sie dafür die Funktion \'Ordner verstecken\'.
+ 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\'.
Alle entfernen
Alle Ordner aus der Ausgeblendet-Liste entfernen? Die Ordner selbst werden nicht gelöscht.
+ Versteckte Ordner
Versteckte Ordner verwalten
+ Sieht so aus, als ob du keine Ordner mit einer \".nomedia\" Datei versteckt hast.
Einbezogene Ordner
Einbezogene Ordner verwalten
Ordner hinzufügen
- Sollten Sie weitere Medienordner haben, die von der App nicht erkannt wurden, können Sie diese hier manuell hinzufügen.
+ Solltest du weitere Mediendateien haben, die von der App nicht erkannt wurden, kannst du ihre Ordner hier manuell hinzufügen.
Größe ändern
@@ -84,7 +85,6 @@
Als Hintergrund festlegen
Hintergrundbild festlegen fehlgeschlagen
Als Hintergrund festlegen mit
- Keine Hintergrundbild-App gefunden
Hintergrund festlegen…
Hintergrundbild erfolgreich festgelegt
Hochformat
@@ -131,18 +131,19 @@
Teilen/Drehen im Vollbild-Menü vertauschen
Eigenschaften anzeigen im Vollbild
Eigenschaften auswählen
+ Erlaube Ein-Finger-Zoom im Vollbild
- Eine schlichte Galerie zum Betrachten von Bildern und Videos ohne Werbung.
+ Eine schlichte Galerie zum Betrachten von Bildern und Videos, ganz ohne Werbung.
- Eine schlichte App zum Betrachten von Bildern und Videos. Die Medien können nach Datum, Größe, Name sowie auf- oder absteigend sortiert werden, in Bilder kann auch hineingezoomt werden. Die Vorschau-Kacheln werden in mehreren Spalten abhängig von der Displaygröße angezeigt, die Spaltenanzahl ist mit Zweifingergesten änderbar. Die Medien können umbenannt, geteilt, gelöscht, kopiert und verschoben werden. Bilder können direkt aus der App heraus zugeschnitten, gedreht oder als Hintergrund festgelegt werden.
+ Eine schlichte App zum Betrachten von Bildern und Videos. Alle Medien können nach Datum, Größe, Name sowie auf- oder absteigend sortiert werden, in Bilder kann auch hineingezoomt werden. Die Vorschau-Kacheln werden in mehreren Spalten abhängig von der Displaygröße angezeigt, die Spaltenanzahl ist mit Zweifingergesten änderbar. Die Medien können umbenannt, geteilt, gelöscht, kopiert und verschoben werden. Bilder können direkt aus der App heraus zugeschnitten, gedreht oder als Hintergrund festgelegt werden.
- Diese Galerie bietet auch für Drittanbieter einige Funktionen an: zum Vorschauen von Bildern / Videos, zum Hinzufügen von Anhängen bei Email-Apps, etc. Sie ist perfekt für den täglichen Gebrauch.
+ Diese Galerie bietet auch für Drittanbieter einige Funktionen an: zur Vorschau von Bildern/Videos, zum Hinzufügen von Anhängen bei Email-Apps, etc. Sie ist perfekt für den täglichen Gebrauch.
Die Berechtigung für Fingerabdrücke wird nur benötigt, um die Sichtbarkeit von versteckten Dateien oder die gesamte App zu sperren.
- Beinhaltet keine Werbung oder unnötigen Berechtigungen. Sie ist komplett Open Source, verwendete Farben sind anpassbar.
+ Beinhaltet keine Werbung oder unnötige Berechtigungen. Sie ist komplett Open Source, alle verwendeten Farben sind anpassbar.
Diese App ist nur eine aus einer größeren Serie von schlichten Apps. Der Rest davon findet sich auf http://www.simplemobiletools.com
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index bfce999e1..bd2951f78 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -7,32 +7,31 @@
(oculto)
Fijar carpeta
No fijar carpeta
+ Anclar arriba
Mostrar el contenido de todas las carpetas
Todos los medios
Cambiar a vista de carpeta
Otra carpeta
Mostrar en el mapa
Ubicación desconocida
- No se encontró aplicación de mapas
- No se encontró aplicación de cámara
Aumentar el número de columnas
Reducir el número de columnas
Cambiar imagen de portada
Seleccionar imagen
Uso por defecto
- Volume
- Brightness
- Do not ask again in this session
- Lock orientation
- Unlock orientation
+ Volumen
+ Brillo
+ No volver a preguntar en esta sesión
+ Bloquear orientación
+ Desbloquear orientación
Filtro de medios
- Images
- Videos
+ Imágenes
+ Vídeos
GIFs
- No media files have been found with the selected filters.
- Change filters
+ No se han encontrado ficheros con los filtros seleccionados.
+ Ccambiar flitros
Esta función oculta la carpeta agregando un archivo \'.nomedia\' en ella, y ocultará también las subcarpetas. Puede mostrarlas cambiando la opción \'Mostrar carpetas ocultas\' en los Ajustes. ¿Continuar?
@@ -44,7 +43,9 @@
Excluir las carpetas las hará junto a sus subcarpetas ocultas 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.
- Manage hidden folders
+ Carpetas ocultas
+ Gestionar carpetas ocultas
+ Parece que no tienes carpetas ocultas con \".nomedia\" ficheros.
Carpetas incluidas
@@ -84,32 +85,31 @@
Establecer como fondo de pantalla
Error al establecer fondo de pantalla
Establecer como fondo de pantalla con:
- No se encontró aplicación para ello
Estableciendo fondo de pantalla…
Fondo de pantalla establecido correctamente
Relación de aspecto tipo retrato
Relación de aspecto tipo paisaje
- Home screen
- Lock screen
- Home and lock screen
+ Pantalla de inicio
+ Pantalla de bloqueo
+ Pantalla de inicio y de bloqueo
- Slideshow
- Interval (seconds):
- Include photos
- Include videos
- Include GIFs
- Random order
- Use fade animations
- Move backwards
- Loop slideshow
- The slideshow ended
- No media for the slideshow have been found
+ Diapositivas
+ Intervalo (segundos):
+ Incluir fotos
+ Incluir vídeos
+ Incluir GIFs
+ Orden aleatorio
+ Usar animaciones de desvanecimiento
+ Mover hacia atrás
+ Presentación de diapositivas
+ La diapositiva terminó
+ No se han encontrado medios para la presentación de diapositivas
Cambiar tipo de vista
- Grid
- List
+ Cuadrícula
+ Lista
Reproducir vídeos automáticamente
@@ -122,7 +122,7 @@
Configuración del sistema
Rotación del dispositivo
Relación de aspecto
- Black background and status bar at fullscreen media
+ Fondo y barra de estado negra en medios de pantalla completa
Desplazar miniaturas horizontalmente
Ocultar automáticamente la interfaz de usuario del sistema en medios de pantalla completa
Eliminar carpetas vacias despues de borrar su contenido
@@ -130,7 +130,8 @@
Mostrar el conteo de medios de las carpetas en la vista principal
Reemplazar Compartir con Girar en el menú de pantalla completa
Mostrar detalles extendidos sobre medios en pantalla completa
- Manage extended details
+ Administrar detalles ampliados
+ Allow one finger zoom at fullscreen media
@@ -140,7 +141,7 @@
Gallery también se ofrece para uso de terceros para previsualizar imágenes/vídeos, agregar adjuntos en clientes de correo, etc. Es perfecta para uso diario.
- The fingerprint permission is needed for locking either hidden item visibility, or the whole app.
+ El permiso de huella digital es necesario para bloquear la visibilidad de elementos ocultos o toda la aplicación.
No contiene publicidad ni permisos innecesarios. Es totalmente libre, proporciona colores personalizables.
diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml
index c4a20e38d..a30a45fc7 100644
--- a/app/src/main/res/values-fi/strings.xml
+++ b/app/src/main/res/values-fi/strings.xml
@@ -7,14 +7,13 @@
(piilotettu)
Kiinnitä kansio
Poista kiinnitys
+ Pin to the top
Näytä kaikkien kansioiden sisältö
Kaikki kansiot
Vaihda kansionäkymään
Muu kansio
Näytä kartalla
Tuntematon sijainti
- Karttasovellusta ei löytynyt
- Kamerasovellusta ei löytynyt
Increase column count
Reduce column count
Vaihda kansikuva
@@ -44,7 +43,9 @@
Kansion poissulkeminen piilottaa kansion alikansioineen vain Simple Galleryssa, ne jäävät näkyviin muihin sovelluksiin.\n\nJos haluat piilottaa kansion myös muissa sovelluksissa, käytä piilota-funktiota.
Poista kaikki
Poista kaikki kansiot poissuljettujen listasta? Tämä ei poista kansioita.
+ Hidden folders
Manage hidden folders
+ Seems like you don\'t have any folders hidden with a \".nomedia\" file.
Sisällytä kansiot
@@ -84,7 +85,6 @@
Aseta taustakuvaksi
Taustakuvan asetus epäonnistui
Aseta taustakuvaksi sovelluksella:
- Toimivaa sovellusta ei löydetty
Asetetaan taustakuvaa…
Taustakuva asetettu onnistuneesti
Kuvasuhde pystyssä
@@ -131,6 +131,7 @@
Korvaa jakaminen kääntämisellä koko näytön tilassa
Show extended details over fullscreen media
Manage extended details
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml
index 7701830bc..8397e54da 100644
--- a/app/src/main/res/values-fr/strings.xml
+++ b/app/src/main/res/values-fr/strings.xml
@@ -7,14 +7,13 @@
(caché)
Épingler le dossier
Désépingler le dossier
+ Épingler en haut
Afficher le contenu de tous les dossiers
Tous les dossiers
Permuter vers la vue du dossier
Autre dossier
Afficher sur la carte
Position inconnue
- Aucune application de carte n\'a été trouvée
- Aucune application d\'appareil photo n\'a été trouvée
Augmenter le nombre de colonnes
Réduire le nombre de colonnes
Changer l\'image de couverture
@@ -23,8 +22,8 @@
Volume
Luminosité
Ne pas redemander pour cette session
- Lock orientation
- Unlock orientation
+ Verrouiller la rotation
+ Déverrouiller la rotation
Filtrer les médias
@@ -40,11 +39,13 @@
Dossiers exclus
Gérer les dossiers exclus
Cela va exclure la sélection ainsi que ses sous-dossiers depuis Simple Galerie uniquement. Vous pouvez gérer les dossiers exclus depuis les Paramètres.
- Exclure un parent plutôt ?
+ Exclure un dossier parent ?
Exclure des dossiers les masquera ainsi que leurs sous-dossiers uniquement dans Simple Galerie, ils seront toujours visibles depuis d\'autres applications.\\n\\nSi vous voulez aussi les masquer ailleurs, utilisez la fonction Masquer.
Tout supprimer
Supprimer tous les dossiers de la liste des exclusions ? Ceci n\'effacera pas les dossiers.
- Manage hidden folders
+ Dossiers masqués
+ Gérer les dossiers masqués
+ Il semblerait que vous n\'ayez pas de dossier cachés avec un fichier \".nomedia\".
Dossiers inclus
@@ -84,14 +85,13 @@
Définir comme fond d\'écran
Échec de la définition en tant que fond d\'écran.
Définir comme fond d\'écran avec :
- Aucune application trouvée pour continuer cette action
Paramètres de fond d\'écran…
Fond d\'écran défini avec succès
Ratio d\'aspect portrait
Ratio d\'aspect paysage
- Home screen
- Lock screen
- Home and lock screen
+ Page d\'accueil
+ Écran de verouillage
+ Page d\'accueil et écran de verrouillage
Diaporama
@@ -122,7 +122,7 @@
Paramètres système
Rotation de l\'appareil
Ratio d\'aspect
- Black background and status bar at fullscreen media
+ Fond et barre de statur noir en plein écran
Défilement des miniatures horizontalement
Masquer automatiquement l\'interface utilisateur si média plein écran
Supprimer les dossiers vides après avoir supprimé leur contenu
@@ -131,6 +131,7 @@
Remplacer Partager par Pivoter si menu en plein écran
Afficher les détails supplémentaires par dessus le média en plein écran
Gérer les détails supplémentaires
+ Allow one finger zoom at fullscreen media
@@ -140,11 +141,11 @@
La galerie est également proposée pour une utilisation comme tierce partie pour la prévisualisation des images/vidéos, ajouter des pièces jointes aux clients email etc. C\'est parfait pour un usage au quotidien.
- The fingerprint permission is needed for locking either hidden item visibility, or the whole app.
+ L\'autorisation d\'empreinte digitale est nécessaire pour verrouiller les dossiers cachés et/ou l\'application.
L\'application ne contient ni publicité ni autorisation inutile. Elle est totalement opensource et est aussi fournie avec des couleurs personnalisables.
- Cette application est juste l\'une des applications d\'une plus grande suite. Vous pouvez trouver les autres sur http://www.simplemobiletools.com
+ Cette application fait partie d\'une plus grande suite. Vous pouvez trouver les autres applications sur http://www.simplemobiletools.com
Cartafoles incluídos
@@ -84,7 +85,6 @@
Establecer como fondo de pantalla
Fallou establecer fondo de pantalla
Establecer fondo de pantalla con:
- Non se atopou ningún applicativo válido
Establecendo fondo de pantalla…
fondo de pantalla establecido con éxito
Proporción de Retrato
@@ -131,6 +131,7 @@
Substituír Compartir con Rotar no menú de pantalla completa
Mostrar información pormenorizada sobre medios a pantalla completa
Xestionar información polo miúdo
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml
index 0ba59c891..9eb2d8e13 100644
--- a/app/src/main/res/values-hr/strings.xml
+++ b/app/src/main/res/values-hr/strings.xml
@@ -7,14 +7,13 @@
(skriveno)
Prikači direktorij
Otkači direktorij
+ Pin to the top
Prikaži cijeli sadržaj direktorija
Svi direktoriji
Prebaci se na pogled direktorija
Ostali direktoriji
Prikaži na karti
Nepoznata lokacija
- Nije pronađena aplikacija za kartame
- Nije pronađena aplikacija za kameru
Povećaj broj stupaca
Smanji broj stupaca
Promjeni naslovnu sliku
@@ -44,7 +43,9 @@
Izostavljanje direktorija učiniti će ih nevidljivim zajedno s njihovim poddirektorijima samo u Simple Gallery, ali će oni biti vidljivi u drugim aplikacijama.\n\nAko ih želite sakriti od drugih aplikacija također, koristite Sakrij opciju.
Ukloni sve
Ukloni sve direktorije iz liste izostavljenih? Ovo neće izbrisati direktorije.
+ Hidden folders
Manage hidden folders
+ Seems like you don\'t have any folders hidden with a \".nomedia\" file.
Dodaj direktorije
@@ -84,7 +85,6 @@
Postavi kao pozadinu
Neuspješno postavljanje pozadine
Postavi kao pozadinu s:
- Nije pronađena aplikacija s ovim mogućnostima
Postavljanje pozadine…
Uspješno postavljanje pozadine
Portretni omjer slike
@@ -131,6 +131,7 @@
Zamjeni Dijeli s Rotiraj pri pregledu datoteka
Prikaži detaljne informacije pri pregledu datoteka
Upravljaj detaljnim informacijama
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml
index aff4967b1..ea1320d45 100644
--- a/app/src/main/res/values-hu/strings.xml
+++ b/app/src/main/res/values-hu/strings.xml
@@ -7,14 +7,13 @@
(hidden)
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
- No application with maps has been found
- No Camera app has been found
Increase column count
Reduce column count
Change cover image
@@ -44,7 +43,9 @@
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
@@ -84,7 +85,6 @@
Set as Wallpaper
Setting as Wallpaper failed
Set as wallpaper with:
- No app capable of it has been found
Setting wallpaper…
Wallpaper set successfully
Portrait aspect ratio
@@ -131,6 +131,7 @@
Replace Share with Rotate at fullscreen menu
Show extended details over fullscreen media
Manage extended details
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index b969dfde5..ec978160c 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -7,14 +7,13 @@
(nascosta)
Blocca cartella
Sblocca cartella
+ Pin to the top
Mostra tutti i contenuti
Tutti i media
Visualizza a cartelle
Altra cartella
Mostra sulla mappa
Posizione sconosciuta
- Nessuna app con mappe trovata
- Nessuna app fotocamera trovata
Aumenta numero colonne
Riduci numero colonne
Cambia immagine copertina
@@ -44,7 +43,9 @@
L\'esclusione delle cartelle e delle sottocartelle le renderà nascoste solo in Simple Gallery, saranno ancora visibili in altre applicazioni.\\n\\nSe desideri nasconderle anche nelle altre app, usa la funzione Nascondi.
Rimuovi tutte
Rimuovere tutte le cartelle dalla lista delle esclusioni? Ciò non eliminerà le cartelle.
- Manage hidden folders
+ Cartelle nascoste
+ Gestisci le cartelle nascoste
+ Pare che tu non abbia alcuna cartella nascosta con un file \".nomedia\".
Includi cartelle
@@ -84,7 +85,6 @@
Imposta come sfondo
Impostazione sfondo non riuscita
Imposta come sfondo con:
- Non sono disponibili app compatibili
Impostazione sfondo…
Sfondo impostato correttamente
Proporzioni ritratto
@@ -122,7 +122,7 @@
Impostazione di sistema
Rotazione dispositivo
Proporzioni
- Black background and status bar at fullscreen media
+ Sfondo e barra di stato neri con media a schermo intero
Scorri le miniature orizzontalmente
Nascondi UI di sistema con media a schermo intero
Elimina cartelle vuote dopo averne eliminato il contenuto
@@ -131,6 +131,7 @@
Sostituisci Condividi con Ruota a schermo intero
Mostra informazioni estese su media a schermo intero
Gestisci le informazioni estese
+ Allow one finger zoom at fullscreen media
@@ -140,7 +141,7 @@
Simple Gallery è anche offerta per utilizzo di terze parti per anteprime di immagini / video, aggiunta di allegati ai client email, ecc. È perfetta per un uso quotidiano.
- The fingerprint permission is needed for locking either hidden item visibility, or the whole app.
+ L\'autorizzazione per le impronte è necessaria per bloccare la visibilità di alcuni elementi o dell\'intera app.
Non contiene pubblicità o autorizzazioni non necessarie. È completamente opensource, offre colori personalizzabili.
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index aae7cccbf..6fb2c015a 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -7,14 +7,13 @@
(非表示)
フォルダーをピン留めする
フォルダーのピン留めを外す
+ Pin to the top
全てを表示
すべてのフォルダー
フォルダーを選択する
その他のフォルダー
地図で表示
位置情報がありません
- 地図アプリが見つかりません
- カメラアプリが見つかりません
列数を増やす
列数を減らす
カバー画像を変更
@@ -44,7 +43,9 @@
フォルダーを除外すると、サブフォルダーも含めSimple Galleyの一覧から除外します。他のアプリでは引き続き表示されます。\\n\\n他のアプリでも非表示にしたい場合は、「非表示」機能を使用してください。
すべて解除
除外するフォルダーの登録をすべて解除しますか? フォルダー自体は削除されません。
+ Hidden folders
Manage hidden folders
+ Seems like you don\'t have any folders hidden with a \".nomedia\" file.
追加フォルダー
@@ -84,7 +85,6 @@
壁紙に設定
壁紙の設定に失敗しました
壁紙に設定:
- 対応できるアプリが見つかりません
壁紙に設定中…
壁紙を正常に設定しました
縦向きの縦横比
@@ -131,6 +131,7 @@
フルスクリーンメニューの「共有」を「回転」に置き換える
Show extended details over fullscreen media
Manage extended details
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml
index 202baecaa..d07e4c6a5 100644
--- a/app/src/main/res/values-ko-rKR/strings.xml
+++ b/app/src/main/res/values-ko-rKR/strings.xml
@@ -7,14 +7,13 @@
(숨기기)
폴더 고정
폴더 고정 해제
+ Pin to the top
모든 폴더의 컨텐츠 보기
모든 폴더
폴더 보기로 변경
다른 폴더
지도에서 보기
위치정보 없음
- 연결 가능한 지도 애플리케이션이 없습니다.
- 연결 가능한 카메라 애플리케이션이 없습니다.
섬네일크기 축소
섬네일크기 확대
Change cover image
@@ -44,7 +43,9 @@
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.
모두 제거
제외 목록을 모두 삭제 하시겠습니다? 목록을 삭제해도 폴더가 삭제되지는 않습니다.
+ Hidden folders
Manage hidden folders
+ Seems like you don\'t have any folders hidden with a \".nomedia\" file.
포함된 폴더
@@ -84,7 +85,6 @@
Set as Wallpaper
Setting as Wallpaper failed
Set as wallpaper with:
- No app capable of it has been found
Setting wallpaper…
Wallpaper set successfully
Portrait aspect ratio
@@ -131,6 +131,7 @@
전체화면 메뉴의 공유 아이콘을 회전 아이콘으로 변경
전체화면 모드에서 세부정보 표시
확장된 세부정보 관리
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml
index 3d1b245e1..df73c1423 100644
--- a/app/src/main/res/values-nb/strings.xml
+++ b/app/src/main/res/values-nb/strings.xml
@@ -7,14 +7,13 @@
(skjult)
Fest mappe
Løsne mappe
+ Fest til toppen
Vis alle mappers innhold
Alle mapper
Skift til mappevisning
Annen mappe
Vis på kart
Ukjent plassering
- Ingen app med kart er funnet
- Ingen kamera-app er funnet
Øk antall kolonner
Reduser antall kolonner
Endre omslagsbilde
@@ -44,7 +43,9 @@
Ekskludering av mapper vil gjøre dem sammen med deres undermapper, skjulte bare i denne appen. De vil fortsatt være synlige i andre apper.\n\nHvis du vil skjule dem fra andre apper, bruk Skjul-funksjonen.
Fjern alle
Fjerne alle mapper fra listen av ekskluderte? Dette sletter ikke mappene.
- Manage hidden folders
+ Skjulte mapper
+ Håndter skjulte mapper
+ Ser ut til at du ikke har skjult noen mapper med en \".nomedia\"-fil.
Inkluderte mapper
@@ -84,7 +85,6 @@
Sett som bakgrunnsbilde
Å sette som bakgrunnsbilde feilet
Sett som bakgrunnsbilde med:
- Ingen app i stand til det er funnet
Stiller inn bakgrunnsbilde…
Bakgrunnsbilde vellykket stilt inn
Portrett-sideforhold
@@ -131,6 +131,7 @@
Erstatt Del med Roter i meny ved mediavisning
Vis flere detaljer i mediavisningen
Velg detaljer
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index fc3dd2d0b..b7259b32f 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -7,31 +7,30 @@
(verborgen)
Map vastzetten
Map losmaken
- Platte weergave
+ Bovenaan vastzetten
+ Alles weergeven
Alle mappen
Mapweergave
Andere map
Op kaart tonen
Locatie onbekend
- Geen app voor kaarten gevonden
- Geen app voor camera gevonden
Meer kolommen
Minder kolommen
- Afbeelding voor omslag veranderen
+ Afbeelding omslag wijzigen
Foto selecteren
Standaard gebruiken
Volume
Helderheid
Onthouden voor deze sessie
- Schermrotatie vergrendelen
- Schermrotatie ontgrendelen
+ Schermoriëntatie vergrendelen
+ Schermoriëntatie ontgrendelen
- Filter media
+ Media filteren
Afbeeldingen
Video\'s
GIF-bestanden
- Geen bestanden gevonden met de huidige filters.
+ Er zijn geen bestanden gevonden met de huidige filters.
Filters aanpassen
@@ -40,24 +39,26 @@
Uitgesloten mappen
Uitgesloten mappen beheren
De selectie en submappen uitsluiten van deze galerij. Uitgesloten mappen kunnen worden beheerd in de instellingen.
- Map die dit item bevat uitsluiten?
+ De map met dit item uitsluiten?
Uitsluiten zal mappen en hun submappen verbergen voor deze galerij, maar niet voor andere apps.\n\nAls u de mappen ook in andere apps wilt verbergen, kies dan voor de functie Verbergen.
Alles verwijderen
- Verwijder alles uit de lijst van uitgesloten mappen? Dit zal de mappen zelf niet verwijderen.
+ De lijst van uitgesloten mappen leegmaken. Dit zal de mappen zelf niet verwijderen.
+ Verborgen mappen
Verborgen mappen beheren
+ Er zijn geen mappen gevonden die zijn verborgen door bestand \".nomedia\".
Toegevoegde mappen
Toegevoegde mappen beheren
Map toevoegen
- Als er mappen zijn die wel media bevatten, maar niet niet door de galerij worden herkend, voeg deze mappen dan hier handmatig toe.\n\nHet hier toevoegen van mappen zal andere mappen niet uitsluiten.
+ Als er mappen zijn die wel media bevatten, maar niet door de galerij worden herkend, voeg deze mappen dan hier handmatig toe.\n\nHet hier toevoegen van mappen zal andere mappen niet uitsluiten.
Grootte aanpassen
Grootte aanpassen en opslaan
Breedte
Hoogte
- Verhouding vergrendelen
+ Beeldverhouding vergrendelen
Voer geldige afmetingen in
@@ -68,9 +69,9 @@
Ongeldig pad naar afbeelding
Fout bij bewerken van afbeelding
Afbeelding bewerken met:
- Geen app gevonden voor bewerking
+ Geen app gevonden voor fotobewerking
Onbekende bestandslocatie
- Kan het bronbestand niet overschrijven
+ Bronbestand kan niet worden overschreven
Linksom draaien
Rechtsom draaien
180º draaien
@@ -84,13 +85,12 @@
Als achtergrond instellen
Achtergrond instellen mislukt
Achtergrond instellen met:
- Geen app gevonden voor instellen achtergrond
Achtergrond instellen…
Achtergrond is ingesteld
Verhouding in portretmodus
Verhouding in landschapsmodus
Startscherm
- Vergrendelingsscherm
+ Vergrendelscherm
Start- en vergrendelingsscherm
@@ -108,7 +108,7 @@
Weergave
- Rooster
+ Raster
Lijst
@@ -117,20 +117,21 @@
Video\'s herhalen
GIF-bestanden afspelen in overzicht
Maximale helderheid in volledige weergave
- Voorbeelden vierkant bijsnijden
+ Miniatuurvoorbeelden bijsnijden
Media in volledige weergave roteren volgens
Systeeminstelling
- Rotatie van apparaat
+ Oriëntatie van apparaat
Afmetingen van bestand
Zwarte achtergrond en statusbalk bij volledige weergave
Horizontaal scrollen
- Automatisch de statusbalk verbergen in volledige weergave
- Lege mappen verwijderen na het verwijderen van hun inhoud
- Volume en helderheid aanpassen met verticale sleepgebaren
+ Statusbalk automatisch verbergen in volledige weergave
+ Lege mappen verwijderen na leegmaken
+ Volume en helderheid aanpassen met verticale gebaren
Aantallen in mappen tonen
Menu-item Draaien vastzetten in volledige weergave (in plaats van Delen)
Uitgebreide informatie tonen in volledige weergave
Uitgebreide informatie
+ Allow one finger zoom at fullscreen media
@@ -140,9 +141,9 @@
De galerij kan ook worden gebruikt voor het bekijken van afbeeldingen of video\'s vanuit andere apps, om bijlagen toe te voegen in e-mail, etc. Perfect voor dagelijks gebruik.
- De permissie voor het uitlezen van vingerafdrukken is benodigd voor het vergendelen van verborgen items of de gehele app.
+ De machtiging voor het uitlezen van vingerafdrukken is benodigd voor het vergendelen van verborgen items of de gehele app.
- Bevat geen advertenties of onnodige permissies. Volledig open-source. Kleuren van de app kunnen worden aangepast.
+ Bevat geen advertenties of onnodige machtigingen. Volledig open-source. Kleuren van de app kunnen worden aangepast.
Deze app is onderdeel van een grotere verzameling. Vind de andere apps op http://www.simplemobiletools.com
diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index 7a707b80a..f86a8195c 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -7,14 +7,13 @@
(ukryty)
Przypnij folder
Wypakuj folder
+ Pin to the top
Pokaż wszystko
Wszystkie foldery
Przełącz na widok folderów
Inny folder
Pokaż na mapie
Nieznana lokalizacja
- Brak aplikacji powiązanej z mapami
- Brak aplikacji powiązanej z aparatem
Zwiększ liczbę kolumn
Zmniejsz liczbę kolumn
Zmień okładkę
@@ -44,7 +43,9 @@
Wykluczenie folderów ukryje je tylko w aplikacji Simple Gallery, w innych aplikacjach będą one wciąż widoczne.\n\nJeśli chcesz je ukryć także w innych aplikacjach, użyj funkcji ukrywania.
Usuń wszystko
Usunąć wszystkie foldery z listy wykluczonych? Foldery nie zostaną fizycznie usunięte.
+ Ukryte foldery
Zarządzaj ukrytymi folderami
+ Zdaje się, że nie masz żadnych folderów z plikiem \".nomedia\".
Dołączone foldery
@@ -84,7 +85,6 @@
Ustaw jako tapetę
Ustawienie tapety nie powiodło się
Ustaw jako tapetę w:
- Brak odpowiednich ustawień
Ustawiam tapetę…
Tapeta została ustawiona
Proporcje ekranu w trybie pionowym
@@ -131,6 +131,7 @@
Zamień funkcję udostępniania na obracanie w menu pełnoekranowym
Dodatkowe szczegóły przy podglądzie pełnoekranowym
Zarządzaj dodatkowymi szczegółami
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index e9bf84b18..2ba181d63 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -7,14 +7,13 @@
(oculto)
Fixar pasta
Desfixar pasta
+ Pin to the top
Mostrar conteúdo de todas as pastas
Todas as pastas
Alternar para a visualização de pastas
Outra pasta
Mostrar no mapa
Localização desconhecida
- Nenhum aplicativo de mapa encontrado
- Nenhum aplicativo de câmera encontrado
Aumentar número de colunas
Reduzir número de colunas
Trocar imagem de capa
@@ -44,7 +43,9 @@
A exclusão de uma pasta apenas oculta o seu conteúdo da galeria, pois todos os outros aplicativos poderão acessá-las.\\n\\nSe quiser ocultar de todos os aplicativos, utilize a função ocultar.
Remover todas
Remover todas as pastas da lista de exclusões? Esta ação não apaga as pastas.
+ Hidden folders
Manage hidden folders
+ Seems like you don\'t have any folders hidden with a \".nomedia\" file.
Pastas incluídas
@@ -84,7 +85,6 @@
Definir como papel de parede
Falha ao definir como papel de parede
Definir papel de parede com:
- Aplicativo não encontrado
Definindo como papel de parede
Papel de parede com sucesso
Retrato
@@ -131,6 +131,7 @@
Substituir botão "Compartilhar" por "Rotação de tela" quando em tela cheia
Exibir detalhes extendidos quando em tela cheia
Gerenciar detalhes extendidos
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml
index 199672bdd..cb9013d1c 100644
--- a/app/src/main/res/values-pt/strings.xml
+++ b/app/src/main/res/values-pt/strings.xml
@@ -7,14 +7,13 @@
(oculta)
Fixar pasta
Desafixar pasta
+ Fixar no topo
Mostrar conteúdo de todas as pastas
Todas as pastas
Alternar para a vista de pastas
Outra pasta
Mostrar no mapa
Localização desconhecida
- Não existe uma aplicação adequada
- Não existe uma aplicação adequeada
Aumentar número de colunas
Diminuir número de colunas
Alterar imagem de capa
@@ -44,7 +43,9 @@
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.
- Manage hidden folders
+ Pastas ocultas
+ Gerir pastas ocultas
+ Parece que não existem pastas ocultas com ficheiros \".nomedia\".
Pastas incluídas
@@ -84,7 +85,6 @@
Definir como fundo do ecrã
Falha ao definir como fundo de ecrã
Definir como fundo com:
- Aplicação não encontrada
A definir como fundo de ecrã…
Fundo definido com sucesso
Proporção na vertical
@@ -122,7 +122,7 @@
Definições do sistema
Rotação do dispositivo
Proporção
- Black background and status bar at fullscreen media
+ Fundo escuro e barra de estado no modo de ecrã completo
Deslocação horizontal de miniaturas
Ocultar interface do sistema se em ecrã completo
Apagar as pastas vazias depois de remover o seu conteúdo
@@ -131,6 +131,7 @@
Substituir a opção Partilhar pela opção Rodar se em ecrã completo
Mostrar detalhes se em ecrã completo
Gerir detalhes exibidos
+ Allow one finger zoom at fullscreen media
@@ -140,7 +141,7 @@
Também pode ser utilizada para pré-visualizar imagens e vídeos ou para adicionar como anexos ao e-mail, entre outros. É perfeita para a utilização diária.
- The fingerprint permission is needed for locking either hidden item visibility, or the whole app.
+ A permissão Impressão digital é necessária para bloquear a visualização dos itens ocultos ou de toda a aplicação.
Não contém anúncios nem permissões desnecessárias. Disponibiliza um tema escuro e é totalmente \'open source\'.
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 1a6e4bff4..bbaebfbcf 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -7,14 +7,13 @@
(Скрытый)
Закрепить папку
Открепить папку
+ Закрепить наверху
Отобразить все медиафайлы
Все медиафайлы
Переключиться к виду с папками
Другая папка
Показать место съёмки
Место съёмки не указано
- Не найдено приложений с картами
- Не найдено приложения камеры
Добавить столбец
Убрать столбец
Изменить обложку
@@ -35,22 +34,24 @@
Изменить фильтры
- Эта функция скрывает папку, добавляя в неё файл \'.nomedia\'; будут скрыты все подпапки. Можно показывать их, переключая \'Показывать скрытые папки\' в настройках. Продолжить?
+ Эта функция скрывает папку, добавляя в неё файл \".nomedia\"; будут скрыты все подпапки. Можно показывать их, переключая \"Показывать скрытые папки\" в настройках. Продолжить?
Исключить
Исключённые папки
Управление исключёнными папками
Эта функция исключит выбранные папки вместе с подпапками только для Simple Gallery. Можно управлять исключёнными папками из настроек.
Исключить только родительский каталог?
- Исключая папки, вы сделаете их скрытыми вместе с подпапками в Simple Gallery, но они будут видны в других приложениях. Если вы хотите скрыть их в других приложениях, используйте функцию Скрыть.
+ Исключая папки, вы сделаете их скрытыми вместе с подпапками в Simple Gallery, но они будут видны в других приложениях. Если вы хотите скрыть их и в других приложениях, используйте функцию \"Скрыть\".
Удалить всё
Очистить список исключённых? Сами папки не будут удалены.
+ Скрытые папки
Управление скрытыми папками
+ Похоже, у вас нет папок, скрытых файлом \".nomedia\".
Включённые папки
Управление включёнными папками
Добавление папки
- Если у вас есть папки, содержащие медиафайлы, но не распознанные Simple Gallery. Вы можете добавить их вручную.
+ Если у вас есть папки, содержащие медиафайлы, но не распознанные приложением, вы можете добавить их вручную.\n\nДобавление папки не приводит к исключению каких-либо других.
Изменить размер
@@ -84,7 +85,6 @@
Установить в качестве обоев
Не удалось установить
Установить в качестве обоев в:
- Приложение не найдено
Установка обоев…
Обои успешно установлены
Портрет
@@ -128,9 +128,10 @@
Удалять пустые папки после удаления их содержимого
Управлять громкостью и яркостью видео с помощью вертикальных жестов
Показывать количество файлов в папках
- Заменить \'Поделиться\' на \'Повернуть\' в меню полноэкранного режима
+ Заменить \"Поделиться\" на \"Повернуть\" в меню полноэкранного режима
Показывать детали файла
Выбрать детали файла
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml
index ed93d39ab..c99b6ecfc 100644
--- a/app/src/main/res/values-sk/strings.xml
+++ b/app/src/main/res/values-sk/strings.xml
@@ -7,14 +7,13 @@
(skryté)
Pripnúť priečinok
Odopnúť priečinok
+ Pripnúť na vrch
Zobraziť obsah všetkých priečinkov
Všetky priečinky
Prepnúť na zobrazenie priečinkov
Iný priečinok
Zobraziť na mape
Neznáma poloha
- Nenašla sa žiadna mapová aplikácia
- Nenašla sa žiadna aplikácia pre fotoaparát
Zvýšiť počet stĺpcov
Znížiť počet stĺpcov
Zmeniť obal albumu
@@ -44,7 +43,9 @@
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
Spravovať skryté priečinky
+ Zdá sa, že nemáte žiadne priečinky skryté pomocou súboru \".nomedia\".
Pridané priečinky
@@ -84,7 +85,6 @@
Nastaviť ako tapetu
Nastavovanie ako tapeta zlyhalo
Nastaviť ako tapetu s:
- Nenašla sa žiadna vhodná aplikácia
Nastavuje sa tapeta…
Tapeta bola úspešne zmenená
Orientácia nastojato
@@ -131,6 +131,7 @@
Nahradiť Zdieľanie s Otočením v celoobrazovkovom menu
Zobraziť rozšírené vlastnosti ponad celoobrazovkové médiá
Spravovať rozšírené vlastnosti
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml
index 431ab1bc9..743b21321 100644
--- a/app/src/main/res/values-sv/strings.xml
+++ b/app/src/main/res/values-sv/strings.xml
@@ -7,14 +7,13 @@
(dold)
Fäst mappen
Släpp mappen
+ Pin to the top
Visa alla mappars innehåll
Alla mappar
Byt till mappvy
- Andra mappar
+ Annan mapp
Visa på karta
Okänd plats
- Ingen app med kartor hittades
- Ingen Kamera-app hittades
Öka antalet kolumner
Minska antalet kolumner
Byt omslagsbild
@@ -22,9 +21,9 @@
Använd standard
Volym
Ljusstyrka
- Do not ask again in this session
- Lock orientation
- Unlock orientation
+ Fråga inte igen i denna session
+ Aktivera rotationslås
+ Inaktivera rotationslås
Filtrera media
@@ -35,7 +34,7 @@
Ändra filter
- Denna funktion döljer mappen och alla dess undermappar genom att lägga till en \'.nomedia\'-fil i den. Du kan se dem genom att växla \'Visa dolda mappar\'-alternativet i Inställningar. Vill du fortsätta?
+ Denna funktion döljer mappen och alla dess undermappar genom att lägga till en \'.nomedia\'-fil i den. Du kan se dem genom att växla \'Visa dolda objekt\'-alternativet i Inställningar. Vill du fortsätta?
Uteslut
Uteslutna mappar
Hantera uteslutna mappar
@@ -44,7 +43,9 @@
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.
- Manage hidden folders
+ Dolda mappar
+ Hantera dolda mappar
+ Det verkar som att inga mappar har dolts med \".nomedia\"-filer.
Inkluderade mappar
@@ -84,14 +85,13 @@
Ange som bakgrundsbild
Det gick inte att byta bakgrundsbild
Ange som bakgrundsbild med:
- Hittade ingen app som klarar av detta
Inställningar för bakgrundsbild…
Bakgrundsbilden är ändrad
Stående bildförhållande
Liggande bildförhållande
- Home screen
- Lock screen
- Home and lock screen
+ Startskärm
+ Låsskärm
+ Startskärm och låsskärm
Bildspel
@@ -107,14 +107,14 @@
Ingen media hittades för bildspelet
- Change view type
- Grid
- List
+ Ändra vy
+ Rutnät
+ Lista
- Spela upp videos automatiskt
+ Spela upp videor automatiskt
Visa/dölj filnamnen
- Återspela videos
+ Spela upp videor om och om igen
Animera GIF-bilders miniatyrer
Maximal ljusstyrka när media visas
Beskär miniatyrer till kvadrater
@@ -122,29 +122,30 @@
Systeminställning
Enhetens rotation
Bildförhållande
- Black background and status bar at fullscreen media
+ Svart bakgrund och statusfält när media visas i helskärmsläge
Rulla horisontellt genom miniatyrer
Dölj systemanvändargränssnittet automatiskt när media visas i helskärmsläge
Ta bort tomma mappar när deras innehåll tas bort
Tillåt styrning av videovolym och videoljusstyrka med vertikala gester
- Show folder media count on the main view
+ Visa antalet mediefiler i varje mapp i huvudvyn
Ersätt Dela med Rotera i helskärmsmenyn
- Show extended details over fullscreen media
- Manage extended details
+ Visa utökad information över media i helskärmsläge
+ Hantera utökad information
+ Allow one finger zoom at fullscreen media
- Ett Galleri för att visa bilder och videos utan en massa reklam.
+ Ett galleri för att visa foton och videor utan reklam.
- Ett enkelt verktyg för att visa bilder och videos. Objekten kan sorteras efter datum, storlek, namn både stigande och fallande, bilder kan zoomas in. Mediafiler visas i flera kolumner beroende av skärmens storlek, du kan ändra antalet kolumner genom en nyp-rörelse. De går att döpa om, dela, ta bort, kopiera, flytta. Bilder kan också beskäras, roteras och anges som bakgrundsbild direkt från appen.
+ Ett enkelt verktyg för att visa foton och videor. Det kan zooma in på foton och sortera objekt i stigande eller fallande ordning efter datum, storlek eller namn. Mediefiler visas i flera kolumner. Antalet kolumner beror på skärmens storlek och kan ändras med nypgester. Mediefiler kan döpas om, delas, tas bort, kopieras eller flyttas. Bilder kan även beskäras, roteras, vändas eller anges som bakgrundsbilder direkt i appen.
- Galleriet kan också användas av tredjepartsappar för förhandsgranskning av bilder / videos, bifoga bilagor i e-postklienter etc. Den är perfekt för det dagliga användandet.
+ Galleriet kan även användas av tredjepartsappar för att förhandsgranska bilder och videor, lägga till bilagor i e-postklienter etc. Det är perfekt för daglig användning.
- The fingerprint permission is needed for locking either hidden item visibility, or the whole app.
+ Fingeravtrycksbehörigheten behövs för att låsa hela appen eller synligheten för dolda objekt.
- Innehåller ingen reklam eller onödiga behörigheter. Det är helt och hållet opensource, innehåller anpassningsbara färger.
+ Innehåller ingen reklam eller onödiga behörigheter. Det har helt öppen källkod och anpassningsbara färger.
- Detta är bara en app i en serie av appar. Du hittar resten av dem här http://www.simplemobiletools.com
+ Denna app är bara en del av en större serie appar. Du hittar resten av dem på http://www.simplemobiletools.com
Dahil edilen klasörler
@@ -84,7 +85,6 @@
Duvar kağıdı olarak ayarla
Duvar Kağıdı Olarak Ayarlanılamıyor
İle duvar kağıdı olarak ayarla:
- Mümkün olan herhangi bir uygulama bulunamadı
Duvar kağıdını ayarlama…
Duvar kağıdı başarıyla ayarlandı
Portrait aspect ratio
@@ -131,6 +131,7 @@
Replace Share with Rotate at fullscreen menu
Show extended details over fullscreen media
Manage extended details
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml
index ecd589bf3..c08640744 100644
--- a/app/src/main/res/values-zh-rCN/strings.xml
+++ b/app/src/main/res/values-zh-rCN/strings.xml
@@ -7,14 +7,13 @@
(隐藏)
锁定目录
解除锁定目录
+ 锁定到顶部
文件视图
所有目录
目录视图
其他目录
在地图中显示
未知位置
- 未找到地图应用
- 未找到相机应用
增加一栏
减少一栏
更改封面图片
@@ -44,7 +43,9 @@
此目录及其子目录中的媒体将不会在“简约图库”中显示,但是其它应用可以访问。如果您想对其它应用隐藏,请使用隐藏功能。
移除全部
是否删除排除列表中的所有项目?此操作不会删除文件夹本身。
+ 隐藏目录
管理隐藏目录
+ 看起来你没有任何使用“.nomedia”文件隐藏的目录。
包含目录
@@ -84,7 +85,6 @@
设为壁纸
壁纸设置失败
设为壁纸...
- 未找到可用应用
正在设置壁纸…
壁纸设置成功
纵向长宽比
@@ -131,6 +131,7 @@
替换全屏时菜单栏的“分享”为“旋转”
全屏浏览媒体时显示详细信息
要显示的详细信息项目
+ 单指缩放
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 2415e0830..91fc82f8d 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -7,14 +7,13 @@
(隱藏)
釘選資料夾
取消釘選資料夾
+ Pin to the top
資料夾內容全部顯示
全部資料夾
切換成資料夾檢視
其他資料夾
在地圖上顯示
未知的位置
- 找不到地圖程式
- 找不到相機程式
增加欄數
減少欄數
更換封面圖片
@@ -44,7 +43,9 @@
「排除資料夾」只會將選擇的資料夾與子資料夾一起從簡易相簿中隱藏,他們仍會出現在其他應用程式中。\n\n如果您要在其他應用程式中也隱藏,請使用「隱藏」功能。
移除全部
是否將排除列表中的所有資料夾都移除?這不會刪除資料夾。
+ Hidden folders
Manage hidden folders
+ Seems like you don\'t have any folders hidden with a \".nomedia\" file.
包含資料夾
@@ -84,7 +85,6 @@
設為桌布
設為桌布失敗
用其他程式設為桌布:
- 找不到可用的應用程式
桌布設定中…
成功設為桌布
直向長寬比
@@ -131,6 +131,7 @@
將全螢幕選單的分享取代為旋轉
全螢幕時顯示詳細資訊
管理詳細資訊
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index e2127294e..29d275ace 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -7,14 +7,13 @@
(hidden)
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
- No application with maps has been found
- No Camera app has been found
Increase column count
Reduce column count
Change cover image
@@ -44,7 +43,9 @@
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
@@ -84,7 +85,6 @@
Set as Wallpaper
Setting as Wallpaper failed
Set as wallpaper with:
- No app capable of it has been found
Setting wallpaper…
Wallpaper set successfully
Portrait aspect ratio
@@ -131,6 +131,7 @@
Replace Share with Rotate at fullscreen menu
Show extended details over fullscreen media
Manage extended details
+ Allow one finger zoom at fullscreen media
diff --git a/app/src/main/res/xml/searchable.xml b/app/src/main/res/xml/searchable.xml
new file mode 100644
index 000000000..892fa25a7
--- /dev/null
+++ b/app/src/main/res/xml/searchable.xml
@@ -0,0 +1,5 @@
+
+
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index c3b78705a..f4113673a 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.4.1-all.zip
diff --git a/screenshots/app.jpg b/screenshots/app.jpg
index b94084498..6ad6c5a78 100644
Binary files a/screenshots/app.jpg and b/screenshots/app.jpg differ
diff --git a/screenshots/app_2.jpg b/screenshots/app_2.jpg
index 684f3d19e..9c3f1883c 100644
Binary files a/screenshots/app_2.jpg and b/screenshots/app_2.jpg differ
diff --git a/screenshots/app_3.jpg b/screenshots/app_3.jpg
index 9be7f39f4..4d8bd9a12 100644
Binary files a/screenshots/app_3.jpg and b/screenshots/app_3.jpg differ
diff --git a/screenshots/app_4.jpg b/screenshots/app_4.jpg
index ef66891d0..30c7aec25 100644
Binary files a/screenshots/app_4.jpg and b/screenshots/app_4.jpg differ
diff --git a/screenshots/app_5.jpg b/screenshots/app_5.jpg
index 061aa7e6f..f4298c2fa 100644
Binary files a/screenshots/app_5.jpg and b/screenshots/app_5.jpg differ
diff --git a/screenshots/app_6.jpg b/screenshots/app_6.jpg
index 984381c01..0507ca9db 100644
Binary files a/screenshots/app_6.jpg and b/screenshots/app_6.jpg differ
diff --git a/screenshots/tablet-10.jpg b/screenshots/tablet-10.jpg
index 2ad593ae0..ac60bce67 100644
Binary files a/screenshots/tablet-10.jpg and b/screenshots/tablet-10.jpg differ
diff --git a/screenshots/tablet-7.jpg b/screenshots/tablet-7.jpg
index ffa5183b7..a17c6e5e9 100644
Binary files a/screenshots/tablet-7.jpg and b/screenshots/tablet-7.jpg differ