commit
f212e67c94
13
CHANGELOG.md
13
CHANGELOG.md
|
@ -1,6 +1,19 @@
|
|||
Changelog
|
||||
==========
|
||||
|
||||
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)*
|
||||
----------------------------
|
||||
|
||||
|
|
|
@ -9,8 +9,8 @@ android {
|
|||
applicationId "com.simplemobiletools.gallery"
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 27
|
||||
versionCode 150
|
||||
versionName "3.1.0"
|
||||
versionCode 152
|
||||
versionName "3.1.2"
|
||||
multiDexEnabled true
|
||||
setProperty("archivesBaseName", "gallery")
|
||||
}
|
||||
|
@ -42,7 +42,7 @@ ext {
|
|||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'com.simplemobiletools:commons:3.4.2'
|
||||
implementation 'com.simplemobiletools:commons:3.5.0'
|
||||
implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0'
|
||||
implementation 'com.theartofdev.edmodo:android-image-cropper:2.6.0'
|
||||
implementation 'com.android.support:multidex:1.0.2'
|
||||
|
|
|
@ -107,6 +107,11 @@
|
|||
android:label="@string/excluded_folders"
|
||||
android:parentActivityName=".activities.SettingsActivity"/>
|
||||
|
||||
<activity
|
||||
android:name=".activities.HiddenFoldersActivity"
|
||||
android:label="@string/hidden_folders"
|
||||
android:parentActivityName=".activities.SettingsActivity"/>
|
||||
|
||||
<activity
|
||||
android:name=".activities.PhotoActivity"
|
||||
android:configChanges="orientation|keyboardHidden|screenSize">
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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<String>()
|
||||
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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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<String>()
|
||||
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()
|
||||
|
|
|
@ -38,6 +38,7 @@ class SettingsActivity : SimpleActivity() {
|
|||
setupUseEnglish()
|
||||
setupManageIncludedFolders()
|
||||
setupManageExcludedFolders()
|
||||
setupManageHiddenFolders()
|
||||
setupShowHiddenFolders()
|
||||
setupAutoplayVideos()
|
||||
setupLoopVideos()
|
||||
|
@ -89,6 +90,12 @@ class SettingsActivity : SimpleActivity() {
|
|||
}
|
||||
}
|
||||
|
||||
private fun setupManageHiddenFolders() {
|
||||
settings_manage_hidden_folders_holder.setOnClickListener {
|
||||
startActivity(Intent(this, HiddenFoldersActivity::class.java))
|
||||
}
|
||||
}
|
||||
|
||||
private fun setupShowHiddenFolders() {
|
||||
settings_show_hidden_folders.isChecked = config.showHiddenMedia
|
||||
settings_show_hidden_folders_holder.setOnClickListener {
|
||||
|
|
|
@ -264,6 +264,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 +317,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
view_pager.apply {
|
||||
adapter = pagerAdapter
|
||||
currentItem = mPos
|
||||
removeOnPageChangeListener(this@ViewPagerActivity)
|
||||
addOnPageChangeListener(this@ViewPagerActivity)
|
||||
}
|
||||
}
|
||||
|
@ -350,10 +352,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 +381,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 +410,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)
|
||||
}
|
||||
|
|
|
@ -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<String>, val listener: RefreshRecyclerViewListener?,
|
||||
recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, 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<String>(selectedPositions.size)
|
||||
|
||||
val sdCardPaths = ArrayList<String>()
|
||||
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<String>) {
|
||||
selectedPositions.sortedDescending().forEach {
|
||||
val folder = folders[it]
|
||||
removeFolders.add(folder)
|
||||
activity.removeNoMedia(folder)
|
||||
}
|
||||
|
||||
folders.removeAll(removeFolders)
|
||||
removeSelectedItems()
|
||||
if (folders.isEmpty()) {
|
||||
listener?.refreshItems()
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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<Directory>): ArrayList<Direct
|
|||
dirs.sort()
|
||||
return movePinnedDirectoriesToFront(dirs)
|
||||
}
|
||||
|
||||
fun Context.getNoMediaFolders(callback: (folders: ArrayList<String>) -> Unit) {
|
||||
Thread {
|
||||
val folders = ArrayList<String>()
|
||||
|
||||
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()
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
@ -253,7 +254,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 +280,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
|
||||
}
|
||||
|
@ -324,6 +326,7 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
super.onDestroyView()
|
||||
if (activity?.isActivityDestroyed() == false) {
|
||||
Glide.with(context).clear(view.gif_view)
|
||||
view.subsampling_view.recycle()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -300,4 +300,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()
|
||||
}
|
||||
|
|
|
@ -42,6 +42,7 @@ 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"
|
||||
|
||||
// slideshow
|
||||
val SLIDESHOW_INTERVAL = "slideshow_interval"
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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"/>
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
|
|
|
@ -88,6 +88,25 @@
|
|||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_manage_hidden_folders_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/medium_margin"
|
||||
android:background="?attr/selectableItemBackground"
|
||||
android:padding="@dimen/activity_margin">
|
||||
|
||||
<com.simplemobiletools.commons.views.MyTextView
|
||||
android:id="@+id/settings_manage_hidden_folders"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerVertical="true"
|
||||
android:paddingLeft="@dimen/medium_margin"
|
||||
android:paddingStart="@dimen/medium_margin"
|
||||
android:text="@string/manage_hidden_folders"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
||||
<RelativeLayout
|
||||
android:id="@+id/settings_show_hidden_folders_holder"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<item
|
||||
android:id="@+id/cab_unhide"
|
||||
android:icon="@drawable/ic_unhide"
|
||||
android:title="@string/unhide"
|
||||
app:showAsAction="ifRoom"/>
|
||||
</menu>
|
|
@ -46,7 +46,9 @@
|
|||
إذا كنت تريد إخفاءها من تطبيقات أخرى أيضا، استخدم ميزة الإخفاء</string>
|
||||
<string name="remove_all">حذف الكل</string>
|
||||
<string name="remove_all_description">هل تريد إزالة جميع المجلدات من القائمة المستبعدة؟ لن يؤدي هذا إلى حذف المجلدات</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">المجلدات المضمنة</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Odstranit všechny</string>
|
||||
<string name="remove_all_description">Odstranit všechny složky ze seznamu vyloučených? Tato operace neodstraní obsah složek.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Přidané složky</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">\'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\'.</string>
|
||||
<string name="remove_all">Alle entfernen</string>
|
||||
<string name="remove_all_description">Alle Ordner aus der Ausgeblendet-Liste entfernen? Die Ordner selbst werden nicht gelöscht.</string>
|
||||
<string name="hidden_folders">Versteckte Ordner</string>
|
||||
<string name="manage_hidden_folders">Versteckte Ordner verwalten</string>
|
||||
<string name="hidden_folders_placeholder">Sieht so aus, als ob du keine Ordner mit einer \".nomedia\" Datei versteckt hast.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Einbezogene Ordner</string>
|
||||
|
@ -134,15 +136,15 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">Eine schlichte Galerie zum Betrachten von Bildern und Videos ohne Werbung.</string>
|
||||
<string name="app_short_description">Eine schlichte Galerie zum Betrachten von Bildern und Videos, ganz ohne Werbung.</string>
|
||||
<string name="app_long_description">
|
||||
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
|
||||
</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Eliminar todo</string>
|
||||
<string name="remove_all_description">¿Eliminar todas las carpetas de la lista de excluidas? Esto no borrará las carpetas.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Carpetas incluidas</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Poista kaikki</string>
|
||||
<string name="remove_all_description">Poista kaikki kansiot poissuljettujen listasta? Tämä ei poista kansioita.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Sisällytä kansiot</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Tout supprimer</string>
|
||||
<string name="remove_all_description">Supprimer tous les dossiers de la liste des exclusions ? Ceci n\'effacera pas les dossiers.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Dossiers inclus</string>
|
||||
|
|
|
@ -40,11 +40,13 @@
|
|||
<string name="excluded_folders">Cartafoles excluídos</string>
|
||||
<string name="manage_excluded_folders">Xestionar cartafoles excluídos</string>
|
||||
<string name="exclude_folder_description">Esto ocultará a selección xunto cos seus subcartafoles son en Simple Gallery. Pode xestionar os cartafoles ocultos en Axustes.</string>
|
||||
<string name="exclude_folder_parent">\?Excluír o cartafol fai no seu lugar?</string>
|
||||
<string name="exclude_folder_parent">Excluír o cartafol pai no seu lugar?</string>
|
||||
<string name="excluded_activity_placeholder">Excluír un cartafol xunto cos subcartafoles só terá efecto en Simple Gallery, seguirán sendo visibles en outros aplicativos.\n\nSi tamén quere excluílos en outros aplicativos, utilice a opción Agochar.</string>
|
||||
<string name="remove_all">Eliminar todos</string>
|
||||
<string name="remove_all_description">Eliminar todos os cartafoles da lista de excluídos? Esto non borrará os cartafoles.</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Xestionar cartafoles ocultos</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Cartafoles incluídos</string>
|
||||
|
@ -122,7 +124,7 @@
|
|||
<string name="screen_rotation_system_setting">Axuste do sistema</string>
|
||||
<string name="screen_rotation_device_rotation">Rotación do dispositivo</string>
|
||||
<string name="screen_rotation_aspect_ratio">Relación de aspecto</string>
|
||||
<string name="black_background_at_fullscreen">Black background and status bar at fullscreen media</string>
|
||||
<string name="black_background_at_fullscreen">Fondo negro e barra de estado en reprodución a pantalla completa</string>
|
||||
<string name="scroll_thumbnails_horizontally">Desplazar iconas horizontalmente</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Agochar controis do sistema cando visualice a pantalla completa</string>
|
||||
<string name="delete_empty_folders">Borrar cartafoles baldeiros cando elmine o seu contido</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Ukloni sve</string>
|
||||
<string name="remove_all_description">Ukloni sve direktorije iz liste izostavljenih? Ovo neće izbrisati direktorije.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Dodaj direktorije</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Remove all</string>
|
||||
<string name="remove_all_description">Remove all folders from the list of excluded? This will not delete the folders.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Included folders</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">L\'esclusione delle cartelle e delle sottocartelle le renderà nascoste solo in Simple Gallery, saranno ancora visibili in altre applicazioni.\\n\\nSe desideri nasconderle anche nelle altre app, usa la funzione Nascondi.</string>
|
||||
<string name="remove_all">Rimuovi tutte</string>
|
||||
<string name="remove_all_description">Rimuovere tutte le cartelle dalla lista delle esclusioni? Ciò non eliminerà le cartelle.</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders">Cartelle nascoste</string>
|
||||
<string name="manage_hidden_folders">Gestisci le cartelle nascoste</string>
|
||||
<string name="hidden_folders_placeholder">Pare che tu non abbia alcuna cartella nascosta con un file \".nomedia\".</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Includi cartelle</string>
|
||||
|
@ -122,7 +124,7 @@
|
|||
<string name="screen_rotation_system_setting">Impostazione di sistema</string>
|
||||
<string name="screen_rotation_device_rotation">Rotazione dispositivo</string>
|
||||
<string name="screen_rotation_aspect_ratio">Proporzioni</string>
|
||||
<string name="black_background_at_fullscreen">Black background and status bar at fullscreen media</string>
|
||||
<string name="black_background_at_fullscreen">Sfondo e barra di stato neri con media a schermo intero</string>
|
||||
<string name="scroll_thumbnails_horizontally">Scorri le miniature orizzontalmente</string>
|
||||
<string name="hide_system_ui_at_fullscreen">Nascondi UI di sistema con media a schermo intero</string>
|
||||
<string name="delete_empty_folders">Elimina cartelle vuote dopo averne eliminato il contenuto</string>
|
||||
|
@ -140,7 +142,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.
|
||||
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">フォルダーを除外すると、サブフォルダーも含めSimple Galleyの一覧から除外します。他のアプリでは引き続き表示されます。\\n\\n他のアプリでも非表示にしたい場合は、「非表示」機能を使用してください。</string>
|
||||
<string name="remove_all">すべて解除</string>
|
||||
<string name="remove_all_description">除外するフォルダーの登録をすべて解除しますか? フォルダー自体は削除されません。</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">追加フォルダー</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">모두 제거</string>
|
||||
<string name="remove_all_description">제외 목록을 모두 삭제 하시겠습니다? 목록을 삭제해도 폴더가 삭제되지는 않습니다.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">포함된 폴더</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Fjern alle</string>
|
||||
<string name="remove_all_description">Fjerne alle mapper fra listen av ekskluderte? Dette sletter ikke mappene.</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders">Skjulte mapper</string>
|
||||
<string name="manage_hidden_folders">Håndter skjulte mapper</string>
|
||||
<string name="hidden_folders_placeholder">Ser ut til at du ikke har skjult noen mapper med en \".nomedia\"-fil.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Inkluderte mapper</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Alles verwijderen</string>
|
||||
<string name="remove_all_description">Verwijder alles uit de lijst van uitgesloten mappen? Dit zal de mappen zelf niet verwijderen.</string>
|
||||
<string name="hidden_folders">Verborgen mappen</string>
|
||||
<string name="manage_hidden_folders">Verborgen mappen beheren</string>
|
||||
<string name="hidden_folders_placeholder">Geen mappen gevonden die zijn verborgen door bestand \".nomedia\".</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Toegevoegde mappen</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Usuń wszystko</string>
|
||||
<string name="remove_all_description">Usunąć wszystkie foldery z listy wykluczonych? Foldery nie zostaną fizycznie usunięte.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Zarządzaj ukrytymi folderami</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Dołączone foldery</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">A exclusão de uma pasta apenas oculta o seu conteúdo da galeria, pois todos os outros aplicativos poderão acessá-las.\\n\\nSe quiser ocultar de todos os aplicativos, utilize a função ocultar.</string>
|
||||
<string name="remove_all">Remover todas</string>
|
||||
<string name="remove_all_description">Remover todas as pastas da lista de exclusões? Esta ação não apaga as pastas.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Pastas incluídas</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Remover todas</string>
|
||||
<string name="remove_all_description">Remover todas as pastas de lista de exclusões? Esta ação não apaga as pastas.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Pastas incluídas</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">Исключая папки, вы сделаете их скрытыми вместе с подпапками в Simple Gallery, но они будут видны в других приложениях. Если вы хотите скрыть их в других приложениях, используйте функцию Скрыть. </string>
|
||||
<string name="remove_all">Удалить всё</string>
|
||||
<string name="remove_all_description">Очистить список исключённых? Сами папки не будут удалены.</string>
|
||||
<string name="hidden_folders">Скрытые папки</string>
|
||||
<string name="manage_hidden_folders">Управление скрытыми папками</string>
|
||||
<string name="hidden_folders_placeholder">Похоже, у вас нет папок, скрытых файлом \".nomedia\".</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Включённые папки</string>
|
||||
|
@ -82,7 +84,7 @@
|
|||
<!-- Set wallpaper -->
|
||||
<string name="simple_wallpaper">Простые обои</string>
|
||||
<string name="set_as_wallpaper">Установить в качестве обоев</string>
|
||||
<string name="set_as_wallpaper_failed">Установить не удалось</string>
|
||||
<string name="set_as_wallpaper_failed">Не удалось установить</string>
|
||||
<string name="set_as_wallpaper_with">Установить в качестве обоев в:</string>
|
||||
<string name="no_capable_app_found">Приложение не найдено</string>
|
||||
<string name="setting_wallpaper">Установка обоев…</string>
|
||||
|
@ -101,8 +103,8 @@
|
|||
<string name="include_gifs">Включать GIF</string>
|
||||
<string name="random_order">Случайный порядок</string>
|
||||
<string name="use_fade">Эффект затухания</string>
|
||||
<string name="move_backwards">В обратном направлении</string>
|
||||
<string name="loop_slideshow">Закольцевать</string>
|
||||
<string name="move_backwards">В обратном порядке</string>
|
||||
<string name="loop_slideshow">Зациклить</string>
|
||||
<string name="slideshow_ended">Слайдшоу завершилось</string>
|
||||
<string name="no_media_for_slideshow">Никаких медиафайлов для слайдшоу не было найдено.</string>
|
||||
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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ť.</string>
|
||||
<string name="remove_all">Odstrániť všetky</string>
|
||||
<string name="remove_all_description">Odstrániť všetky priečinky zo zoznamu vylúčených? Táto operácia neodstráni samotný obsah priečinkov.</string>
|
||||
<string name="hidden_folders">Skryté priečinky</string>
|
||||
<string name="manage_hidden_folders">Spravovať skryté priečinky</string>
|
||||
<string name="hidden_folders_placeholder">Zdá sa, že nemáte žiadne priečinky skryté pomocou súboru \".nomedia\".</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Pridané priečinky</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Ta bort alla</string>
|
||||
<string name="remove_all_description">Vill du ta bort alla mappar från uteslutningslistan? Detta raderar inte mapparna.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Inkluderade mappar</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">Klasörler hariç tutulduğunda, onları Basit Galeri\'de gizli olan alt klasörleriyle bir araya getirirler, ancak yine de diğer uygulamalarda görünür olurlar.\n\nBunları diğer uygulamalardan gizlemek isterseniz, Gizle işlevini kullanın.</string>
|
||||
<string name="remove_all">Hepsini sil</string>
|
||||
<string name="remove_all_description">Hariç tutulanlar listesinden tüm klasörleri kaldırmak mı istiyorsunuz? Bu, klasörler silinmez.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Dahil edilen klasörler</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">此目录及其子目录中的媒体将不会在“简约图库”中显示,但是其它应用可以访问。如果您想对其它应用隐藏,请使用隐藏功能。</string>
|
||||
<string name="remove_all">移除全部</string>
|
||||
<string name="remove_all_description">是否删除排除列表中的所有项目?此操作不会删除文件夹本身。</string>
|
||||
<string name="hidden_folders">隐藏目录</string>
|
||||
<string name="manage_hidden_folders">管理隐藏目录</string>
|
||||
<string name="hidden_folders_placeholder">看起来你没有任何使用“.nomedia”文件隐藏的目录。</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">包含目录</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">「排除資料夾」只會將選擇的資料夾與子資料夾一起從簡易相簿中隱藏,他們仍會出現在其他應用程式中。\n\n如果您要在其他應用程式中也隱藏,請使用「隱藏」功能。</string>
|
||||
<string name="remove_all">移除全部</string>
|
||||
<string name="remove_all_description">是否將排除列表中的所有資料夾都移除?這不會刪除資料夾。</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">包含資料夾</string>
|
||||
|
|
|
@ -44,7 +44,9 @@
|
|||
<string name="excluded_activity_placeholder">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.</string>
|
||||
<string name="remove_all">Remove all</string>
|
||||
<string name="remove_all_description">Remove all folders from the list of excluded? This will not delete the folders.</string>
|
||||
<string name="hidden_folders">Hidden folders</string>
|
||||
<string name="manage_hidden_folders">Manage hidden folders</string>
|
||||
<string name="hidden_folders_placeholder">Seems like you don\'t have any folders hidden with a \".nomedia\" file.</string>
|
||||
|
||||
<!-- Include folders -->
|
||||
<string name="include_folders">Included folders</string>
|
||||
|
|
Loading…
Reference in New Issue