Merge pull request #44 from SimpleMobileTools/master

upd
This commit is contained in:
solokot 2019-01-09 11:56:13 +03:00 committed by GitHub
commit fb6602706d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
65 changed files with 697 additions and 313 deletions

View file

@ -1,6 +1,24 @@
Changelog Changelog
========== ==========
Version 6.2.1 *(2019-01-08)*
----------------------------
* Fixed some menu buttons at the video player activity
* Added buttons to the videoplayer for going to the previous/next item
* Allow pressing play/pause at the video player at fullscreen mode
* Properly retain exif values after editing a file, when overwriting the source file
Version 6.2.0 *(2019-01-04)*
----------------------------
* Rewrote video playback, use a separate screen + added fast-forwarding with horizontal swiping
* Added optional 1:1 pixel ratio zooming with two double taps at fullscreen view
* Allow adding Copy at the fullscreen bottom actions
* Always include images at slideshows, never videos
* Fixed scanning of some predefined folders for images
* Some other stability/performance/translation improvements
Version 6.1.3 *(2018-12-26)* Version 6.1.3 *(2018-12-26)*
---------------------------- ----------------------------

View file

@ -15,8 +15,8 @@ android {
applicationId "com.simplemobiletools.gallery.pro" applicationId "com.simplemobiletools.gallery.pro"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 28 targetSdkVersion 28
versionCode 216 versionCode 219
versionName "6.1.3" versionName "6.2.1"
multiDexEnabled true multiDexEnabled true
setProperty("archivesBaseName", "gallery") setProperty("archivesBaseName", "gallery")
} }
@ -57,7 +57,7 @@ android {
} }
dependencies { dependencies {
implementation 'com.simplemobiletools:commons:5.6.3' implementation 'com.simplemobiletools:commons:5.6.6'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0' implementation 'com.theartofdev.edmodo:android-image-cropper:2.8.0'
implementation 'androidx.multidex:multidex:2.0.1' implementation 'androidx.multidex:multidex:2.0.1'
implementation 'it.sephiroth.android.exif:library:1.0.1' implementation 'it.sephiroth.android.exif:library:1.0.1'
@ -78,7 +78,7 @@ dependencies {
//implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0' //implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.10.0'
//implementation 'com.github.tibbi:subsampling-scale-image-view:v3.10.1-fork' //implementation 'com.github.tibbi:subsampling-scale-image-view:v3.10.1-fork'
implementation 'com.github.tibbi:subsampling-scale-image-view:4.0.2' implementation 'com.github.tibbi:subsampling-scale-image-view:7a000e651e'
// implementation 'com.github.chrisbanes:PhotoView:2.3.0' // implementation 'com.github.chrisbanes:PhotoView:2.3.0'
implementation 'com.github.tibbi:PhotoView:2.3.0-fork' implementation 'com.github.tibbi:PhotoView:2.3.0-fork'

View file

@ -77,6 +77,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
private var currAspectRatio = ASPECT_RATIO_FREE private var currAspectRatio = ASPECT_RATIO_FREE
private var isCropIntent = false private var isCropIntent = false
private var isEditingWithThirdParty = false private var isEditingWithThirdParty = false
private var oldExif: ExifInterface? = null
private var initialBitmap: Bitmap? = null private var initialBitmap: Bitmap? = null
@ -136,6 +137,14 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
setupBottomActions() setupBottomActions()
if (config.lastEditorCropAspectRatio == ASPECT_RATIO_OTHER) { if (config.lastEditorCropAspectRatio == ASPECT_RATIO_OTHER) {
if (config.lastEditorCropOtherAspectRatioX == 0) {
config.lastEditorCropOtherAspectRatioX = 1
}
if (config.lastEditorCropOtherAspectRatioY == 0) {
config.lastEditorCropOtherAspectRatioY = 1
}
lastOtherAspectRatio = Pair(config.lastEditorCropOtherAspectRatioX, config.lastEditorCropOtherAspectRatioY) lastOtherAspectRatio = Pair(config.lastEditorCropOtherAspectRatioX, config.lastEditorCropOtherAspectRatioY)
} }
updateAspectRatio(config.lastEditorCropAspectRatio) updateAspectRatio(config.lastEditorCropAspectRatio)
@ -222,7 +231,19 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
} }
} }
@TargetApi(Build.VERSION_CODES.N)
private fun saveImage() { private fun saveImage() {
var inputStream: InputStream? = null
try {
if (isNougatPlus()) {
inputStream = contentResolver.openInputStream(uri)
oldExif = ExifInterface(inputStream)
}
} catch (e: Exception) {
} finally {
inputStream?.close()
}
if (crop_image_view.isVisible()) { if (crop_image_view.isVisible()) {
crop_image_view.getCroppedImageAsync() crop_image_view.getCroppedImageAsync()
} else { } else {
@ -371,7 +392,12 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
if (currPrimaryAction == PRIMARY_ACTION_FILTER && bottom_actions_filter_list.adapter == null) { if (currPrimaryAction == PRIMARY_ACTION_FILTER && bottom_actions_filter_list.adapter == null) {
Thread { Thread {
val thumbnailSize = resources.getDimension(R.dimen.bottom_filters_thumbnail_size).toInt() val thumbnailSize = resources.getDimension(R.dimen.bottom_filters_thumbnail_size).toInt()
val bitmap = Glide.with(this).asBitmap().load(uri).submit(thumbnailSize, thumbnailSize).get() val bitmap = Glide.with(this)
.asBitmap()
.load(uri)
.submit(thumbnailSize, thumbnailSize)
.get()
runOnUiThread { runOnUiThread {
val filterThumbnailsManager = FilterThumbnailsManager() val filterThumbnailsManager = FilterThumbnailsManager()
filterThumbnailsManager.clearThumbs() filterThumbnailsManager.clearThumbs()
@ -593,17 +619,12 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
bitmap.compress(file.absolutePath.getCompressionFormat(), 90, out) bitmap.compress(file.absolutePath.getCompressionFormat(), 90, out)
} }
var inputStream: InputStream? = null
try { try {
if (isNougatPlus()) { if (isNougatPlus()) {
inputStream = contentResolver.openInputStream(uri)
val oldExif = ExifInterface(inputStream)
val newExif = ExifInterface(file.absolutePath) val newExif = ExifInterface(file.absolutePath)
oldExif.copyTo(newExif, false) oldExif?.copyTo(newExif, false)
} }
} catch (e: Exception) { } catch (e: Exception) {
} finally {
inputStream?.close()
} }
setResult(Activity.RESULT_OK, intent) setResult(Activity.RESULT_OK, intent)

View file

@ -1230,6 +1230,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
add(Release(202, R.string.release_202)) add(Release(202, R.string.release_202))
add(Release(206, R.string.release_206)) add(Release(206, R.string.release_206))
add(Release(213, R.string.release_213)) add(Release(213, R.string.release_213))
add(Release(217, R.string.release_217))
checkWhatsNew(this, BuildConfig.VERSION_CODE) checkWhatsNew(this, BuildConfig.VERSION_CODE)
} }
} }

View file

@ -153,7 +153,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
media_horizontal_fastscroller.allowBubbleDisplay = config.showInfoBubble media_horizontal_fastscroller.allowBubbleDisplay = config.showInfoBubble
media_vertical_fastscroller.allowBubbleDisplay = config.showInfoBubble media_vertical_fastscroller.allowBubbleDisplay = config.showInfoBubble
media_refresh_layout.isEnabled = config.enablePullToRefresh media_refresh_layout.isEnabled = config.enablePullToRefresh
tryloadGallery() tryLoadGallery()
invalidateOptionsMenu() invalidateOptionsMenu()
media_empty_text_label.setTextColor(config.textColor) media_empty_text_label.setTextColor(config.textColor)
media_empty_text.setTextColor(getAdjustedPrimaryColor()) media_empty_text.setTextColor(getAdjustedPrimaryColor())
@ -320,17 +320,20 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
private fun searchQueryChanged(text: String) { private fun searchQueryChanged(text: String) {
Thread { Thread {
val filtered = mMedia.filter { it is Medium && it.name.contains(text, true) } as ArrayList try {
filtered.sortBy { it is Medium && !it.name.startsWith(text, true) } val filtered = mMedia.filter { it is Medium && it.name.contains(text, true) } as ArrayList
val grouped = MediaFetcher(applicationContext).groupMedia(filtered as ArrayList<Medium>, mPath) filtered.sortBy { it is Medium && !it.name.startsWith(text, true) }
runOnUiThread { val grouped = MediaFetcher(applicationContext).groupMedia(filtered as ArrayList<Medium>, mPath)
getMediaAdapter()?.updateMedia(grouped) runOnUiThread {
measureRecyclerViewContent(grouped) getMediaAdapter()?.updateMedia(grouped)
measureRecyclerViewContent(grouped)
}
} catch (ignored: Exception) {
} }
}.start() }.start()
} }
private fun tryloadGallery() { private fun tryLoadGallery() {
handlePermission(PERMISSION_WRITE_STORAGE) { handlePermission(PERMISSION_WRITE_STORAGE) {
if (it) { if (it) {
val dirName = when { val dirName = when {

View file

@ -244,6 +244,7 @@ open class PanoramaVideoActivity : SimpleActivity(), SeekBar.OnSeekBarChangeList
} }
video_time_holder.setPadding(0, 0, right, bottom) video_time_holder.setPadding(0, 0, right, bottom)
video_time_holder.background = resources.getDrawable(R.drawable.gradient_background)
video_time_holder.onGlobalLayout { video_time_holder.onGlobalLayout {
val newBottomMargin = video_time_holder.height - resources.getDimension(R.dimen.video_player_play_pause_size).toInt() - resources.getDimension(R.dimen.activity_margin).toInt() val newBottomMargin = video_time_holder.height - resources.getDimension(R.dimen.video_player_play_pause_size).toInt() - resources.getDimension(R.dimen.activity_margin).toInt()
(explore.layoutParams as RelativeLayout.LayoutParams).bottomMargin = newBottomMargin (explore.layoutParams as RelativeLayout.LayoutParams).bottomMargin = newBottomMargin

View file

@ -30,7 +30,6 @@ import java.io.File
import java.io.FileInputStream import java.io.FileInputStream
open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentListener { open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentListener {
private var mMedium: Medium? = null private var mMedium: Medium? = null
private var mIsFullScreen = false private var mIsFullScreen = false
private var mIsFromGallery = false private var mIsFromGallery = false
@ -42,7 +41,6 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
public override fun onCreate(savedInstanceState: Bundle?) { public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.fragment_holder) setContentView(R.layout.fragment_holder)
setTranslucentNavigation()
handlePermission(PERMISSION_WRITE_STORAGE) { handlePermission(PERMISSION_WRITE_STORAGE) {
if (it) { if (it) {
@ -56,7 +54,15 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
supportActionBar?.setBackgroundDrawable(resources.getDrawable(R.drawable.gradient_background_flipped)) supportActionBar?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
window.statusBarColor = Color.TRANSPARENT
if (config.bottomActions) {
window.navigationBarColor = Color.TRANSPARENT
} else {
setTranslucentNavigation()
}
if (config.blackBackground) { if (config.blackBackground) {
updateStatusbarColor(Color.BLACK) updateStatusbarColor(Color.BLACK)
} }
@ -170,6 +176,11 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
val mimeType = getUriMimeType(mUri.toString(), newUri) val mimeType = getUriMimeType(mUri.toString(), newUri)
Intent(applicationContext, VideoPlayerActivity::class.java).apply { Intent(applicationContext, VideoPlayerActivity::class.java).apply {
setDataAndType(newUri, mimeType) setDataAndType(newUri, mimeType)
addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT)
if (intent.extras != null) {
putExtras(intent.extras!!)
}
startActivity(this) startActivity(this)
} }
} }
@ -240,7 +251,7 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
private fun initBottomActionButtons() { private fun initBottomActionButtons() {
arrayListOf(bottom_favorite, bottom_delete, bottom_rotate, bottom_properties, bottom_change_orientation, bottom_slideshow, bottom_show_on_map, arrayListOf(bottom_favorite, bottom_delete, bottom_rotate, bottom_properties, bottom_change_orientation, bottom_slideshow, bottom_show_on_map,
bottom_toggle_file_visibility, bottom_rename).forEach { bottom_toggle_file_visibility, bottom_rename, bottom_copy).forEach {
it.beGone() it.beGone()
} }
@ -273,8 +284,10 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
showSystemUI(true) showSystemUI(true)
} }
val newAlpha = if (mIsFullScreen) 0f else 1f
top_shadow.animate().alpha(newAlpha).start()
if (!bottom_actions.isGone()) { if (!bottom_actions.isGone()) {
bottom_actions.animate().alpha(if (mIsFullScreen) 0f else 1f).start() bottom_actions.animate().alpha(newAlpha).start()
} }
} }
@ -283,4 +296,6 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
override fun goToPrevItem() {} override fun goToPrevItem() {}
override fun goToNextItem() {} override fun goToNextItem() {}
override fun launchViewVideoIntent(path: String) {}
} }

View file

@ -65,6 +65,7 @@ class SettingsActivity : SimpleActivity() {
setupAllowZoomingImages() setupAllowZoomingImages()
setupShowHighestQuality() setupShowHighestQuality()
setupOneFingerZoom() setupOneFingerZoom()
setupAllowOneToOneZoom()
setupAllowInstantChange() setupAllowInstantChange()
setupShowExtendedDetails() setupShowExtendedDetails()
setupHideExtendedDetails() setupHideExtendedDetails()
@ -377,6 +378,7 @@ class SettingsActivity : SimpleActivity() {
private fun updateDeepZoomToggleButtons() { private fun updateDeepZoomToggleButtons() {
settings_one_finger_zoom_holder.beVisibleIf(config.allowZoomingImages) settings_one_finger_zoom_holder.beVisibleIf(config.allowZoomingImages)
settings_show_highest_quality_holder.beVisibleIf(config.allowZoomingImages) settings_show_highest_quality_holder.beVisibleIf(config.allowZoomingImages)
settings_allow_one_to_one_zoom_holder.beVisibleIf(config.allowZoomingImages)
} }
private fun setupShowHighestQuality() { private fun setupShowHighestQuality() {
@ -395,6 +397,14 @@ class SettingsActivity : SimpleActivity() {
} }
} }
private fun setupAllowOneToOneZoom() {
settings_allow_one_to_one_zoom.isChecked = config.allowOneToOneZoom
settings_allow_one_to_one_zoom_holder.setOnClickListener {
settings_allow_one_to_one_zoom.toggle()
config.allowOneToOneZoom = settings_allow_one_to_one_zoom.isChecked
}
}
private fun setupAllowInstantChange() { private fun setupAllowInstantChange() {
settings_allow_instant_change.isChecked = config.allowInstantChange settings_allow_instant_change.isChecked = config.allowInstantChange
settings_allow_instant_change_holder.setOnClickListener { settings_allow_instant_change_holder.setOnClickListener {

View file

@ -1,5 +1,7 @@
package com.simplemobiletools.gallery.pro.activities package com.simplemobiletools.gallery.pro.activities
import android.app.Activity
import android.content.Intent
import android.content.pm.ActivityInfo import android.content.pm.ActivityInfo
import android.content.res.Configuration import android.content.res.Configuration
import android.graphics.Color import android.graphics.Color
@ -26,31 +28,40 @@ import com.simplemobiletools.commons.helpers.PERMISSION_WRITE_STORAGE
import com.simplemobiletools.commons.helpers.isPiePlus import com.simplemobiletools.commons.helpers.isPiePlus
import com.simplemobiletools.gallery.pro.R import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.extensions.* import com.simplemobiletools.gallery.pro.extensions.*
import com.simplemobiletools.gallery.pro.helpers.MIN_SKIP_LENGTH import com.simplemobiletools.gallery.pro.helpers.*
import kotlinx.android.synthetic.main.activity_video_player.* import kotlinx.android.synthetic.main.activity_video_player.*
import kotlinx.android.synthetic.main.bottom_video_time_holder.* import kotlinx.android.synthetic.main.bottom_video_time_holder.*
open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListener, TextureView.SurfaceTextureListener { open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListener, TextureView.SurfaceTextureListener {
private val PLAY_WHEN_READY_DRAG_DELAY = 100L
private var mIsFullscreen = false private var mIsFullscreen = false
private var mIsPlaying = false private var mIsPlaying = false
private var mWasVideoStarted = false private var mWasVideoStarted = false
private var mIsDragged = false private var mIsDragged = false
private var mIsOrientationLocked = false
private var mScreenWidth = 0
private var mCurrTime = 0 private var mCurrTime = 0
private var mDuration = 0 private var mDuration = 0
private var mVideoSize = Point(0, 0) private var mVideoSize = Point(0, 0)
private var mDragThreshold = 0f
private var mUri: Uri? = null private var mUri: Uri? = null
private var mExoPlayer: SimpleExoPlayer? = null private var mExoPlayer: SimpleExoPlayer? = null
private var mTimerHandler = Handler() private var mTimerHandler = Handler()
private var mPlayWhenReadyHandler = Handler()
private var mTouchDownX = 0f private var mTouchDownX = 0f
private var mTouchDownY = 0f private var mTouchDownY = 0f
private var mTouchDownTime = 0L
private var mProgressAtDown = 0L
private var mCloseDownThreshold = 100f private var mCloseDownThreshold = 100f
private var mIgnoreCloseDown = false private var mIgnoreCloseDown = false
public override fun onCreate(savedInstanceState: Bundle?) { public override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
setContentView(R.layout.activity_video_player) setContentView(R.layout.activity_video_player)
setupOrientation()
handlePermission(PERMISSION_WRITE_STORAGE) { handlePermission(PERMISSION_WRITE_STORAGE) {
if (it) { if (it) {
@ -93,7 +104,12 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
if (!isChangingConfigurations) { if (!isChangingConfigurations) {
cleanup() pauseVideo()
video_curr_time.text = 0.getFormattedDuration()
releaseExoPlayer()
video_seekbar.progress = 0
mTimerHandler.removeCallbacksAndMessages(null)
mPlayWhenReadyHandler.removeCallbacksAndMessages(null)
} }
} }
@ -105,6 +121,8 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
override fun onOptionsItemSelected(item: MenuItem): Boolean { override fun onOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) { when (item.itemId) {
R.id.menu_change_orientation -> changeOrientation() R.id.menu_change_orientation -> changeOrientation()
R.id.menu_open_with -> openPath(mUri!!.toString(), true)
R.id.menu_share -> shareMediumPath(mUri!!.toString())
else -> return super.onOptionsItemSelected(item) else -> return super.onOptionsItemSelected(item)
} }
return true return true
@ -116,6 +134,16 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
initTimeHolder() initTimeHolder()
} }
private fun setupOrientation() {
if (!mIsOrientationLocked) {
if (config.screenRotation == ROTATE_BY_DEVICE_ROTATION) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR
} else if (config.screenRotation == ROTATE_BY_SYSTEM_SETTING) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED
}
}
}
private fun initPlayer() { private fun initPlayer() {
mUri = intent.data ?: return mUri = intent.data ?: return
supportActionBar?.title = getFilenameFromUri(mUri!!) supportActionBar?.title = getFilenameFromUri(mUri!!)
@ -132,40 +160,36 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
fullscreenToggled(isFullscreen) fullscreenToggled(isFullscreen)
} }
// adding an empty click listener just to avoid ripple animation at toggling fullscreen
video_seekbar.setOnClickListener { }
video_curr_time.setOnClickListener { skip(false) } video_curr_time.setOnClickListener { skip(false) }
video_duration.setOnClickListener { skip(true) } video_duration.setOnClickListener { skip(true) }
video_toggle_play_pause.setOnClickListener { togglePlayPause() } video_toggle_play_pause.setOnClickListener { togglePlayPause() }
video_player_holder.setOnClickListener {
fullscreenToggled(!mIsFullscreen) video_next_file.beVisibleIf(intent.getBooleanExtra(SHOW_NEXT_ITEM, false))
video_next_file.setOnClickListener { handleNextFile() }
video_prev_file.beVisibleIf(intent.getBooleanExtra(SHOW_PREV_ITEM, false))
video_prev_file.setOnClickListener { handlePrevFile() }
video_player_holder.setOnTouchListener { view, event ->
handleEvent(event)
true
} }
if (config.allowDownGesture) { video_surface.setOnTouchListener { view, event ->
video_player_holder.setOnTouchListener { v, event -> handleEvent(event)
handleEvent(event) true
false
}
video_surface.setOnTouchListener { v, event ->
handleEvent(event)
false
}
} }
initExoPlayer() initExoPlayer()
video_surface.surfaceTextureListener = this video_surface.surfaceTextureListener = this
video_surface.setOnClickListener {
fullscreenToggled(!mIsFullscreen)
}
if (config.allowVideoGestures) { if (config.allowVideoGestures) {
video_brightness_controller.initialize(this, slide_info, true, video_player_holder) { x, y -> video_brightness_controller.initialize(this, slide_info, true, video_player_holder) { x, y ->
video_player_holder.performClick() fullscreenToggled(!mIsFullscreen)
} }
video_volume_controller.initialize(this, slide_info, false, video_player_holder) { x, y -> video_volume_controller.initialize(this, slide_info, false, video_player_holder) { x, y ->
video_player_holder.performClick() fullscreenToggled(!mIsFullscreen)
} }
} else { } else {
video_brightness_controller.beGone() video_brightness_controller.beGone()
@ -177,6 +201,8 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
fullscreenToggled(true) fullscreenToggled(true)
}, 500) }, 500)
} }
mDragThreshold = DRAG_THRESHOLD * resources.displayMetrics.density
} }
private fun initExoPlayer() { private fun initExoPlayer() {
@ -370,9 +396,21 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
} }
video_surface.layoutParams = this video_surface.layoutParams = this
} }
val multiplier = if (screenWidth > screenHeight) 0.5 else 0.8
mScreenWidth = (screenWidth * multiplier).toInt()
if (config.screenRotation == ROTATE_BY_ASPECT_RATIO) {
if (mVideoSize.x > mVideoSize.y) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
} else if (mVideoSize.x < mVideoSize.y) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
}
}
} }
private fun changeOrientation() { private fun changeOrientation() {
mIsOrientationLocked = true
requestedOrientation = if (resources.configuration.orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) { requestedOrientation = if (resources.configuration.orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
} else { } else {
@ -389,10 +427,11 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
} }
val newAlpha = if (isFullScreen) 0f else 1f val newAlpha = if (isFullScreen) 0f else 1f
top_shadow.animate().alpha(newAlpha).start() arrayOf(video_prev_file, video_toggle_play_pause, video_next_file, video_curr_time, video_seekbar, video_duration, top_shadow, video_bottom_gradient).forEach {
video_time_holder.animate().alpha(newAlpha).start() it.animate().alpha(newAlpha).start()
}
video_seekbar.setOnSeekBarChangeListener(if (mIsFullscreen) null else this) video_seekbar.setOnSeekBarChangeListener(if (mIsFullscreen) null else this)
arrayOf(video_toggle_play_pause, video_curr_time, video_duration).forEach { arrayOf(video_prev_file, video_next_file, video_curr_time, video_duration).forEach {
it.isClickable = !mIsFullscreen it.isClickable = !mIsFullscreen
} }
} }
@ -412,7 +451,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
video_time_holder.setPadding(0, 0, right, bottom) video_time_holder.setPadding(0, 0, right, bottom)
video_seekbar.setOnSeekBarChangeListener(this) video_seekbar.setOnSeekBarChangeListener(this)
video_seekbar!!.max = mDuration video_seekbar.max = mDuration
video_duration.text = mDuration.getFormattedDuration() video_duration.text = mDuration.getFormattedDuration()
video_curr_time.text = mCurrTime.getFormattedDuration() video_curr_time.text = mCurrTime.getFormattedDuration()
setupTimer() setupTimer()
@ -453,26 +492,84 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
MotionEvent.ACTION_DOWN -> { MotionEvent.ACTION_DOWN -> {
mTouchDownX = event.x mTouchDownX = event.x
mTouchDownY = event.y mTouchDownY = event.y
mTouchDownTime = System.currentTimeMillis()
mProgressAtDown = mExoPlayer!!.currentPosition
} }
MotionEvent.ACTION_POINTER_DOWN -> mIgnoreCloseDown = true MotionEvent.ACTION_POINTER_DOWN -> mIgnoreCloseDown = true
MotionEvent.ACTION_MOVE -> {
val diffX = event.x - mTouchDownX
val diffY = event.y - mTouchDownY
if (mIsDragged || (Math.abs(diffX) > mDragThreshold && Math.abs(diffX) > Math.abs(diffY))) {
if (!mIsDragged) {
arrayOf(video_curr_time, video_seekbar, video_duration).forEach {
it.animate().alpha(1f).start()
}
}
mIgnoreCloseDown = true
mIsDragged = true
var percent = ((diffX / mScreenWidth) * 100).toInt()
percent = Math.min(100, Math.max(-100, percent))
val skipLength = (mDuration * 1000f) * (percent / 100f)
var newProgress = mProgressAtDown + skipLength
newProgress = Math.max(Math.min(mExoPlayer!!.duration.toFloat(), newProgress), 0f)
val newSeconds = (newProgress / 1000).toInt()
setPosition(newSeconds)
resetPlayWhenReady()
}
}
MotionEvent.ACTION_UP -> { MotionEvent.ACTION_UP -> {
val diffX = mTouchDownX - event.x val diffX = mTouchDownX - event.x
val diffY = mTouchDownY - event.y val diffY = mTouchDownY - event.y
if (!mIgnoreCloseDown && Math.abs(diffY) > Math.abs(diffX) && diffY < -mCloseDownThreshold) { if (config.allowDownGesture && !mIgnoreCloseDown && Math.abs(diffY) > Math.abs(diffX) && diffY < -mCloseDownThreshold) {
supportFinishAfterTransition() supportFinishAfterTransition()
} }
mIgnoreCloseDown = false mIgnoreCloseDown = false
if (mIsDragged) {
if (mIsFullscreen) {
arrayOf(video_curr_time, video_seekbar, video_duration).forEach {
it.animate().alpha(0f).start()
}
}
if (!mIsPlaying) {
togglePlayPause()
}
} else {
if (System.currentTimeMillis() - mTouchDownTime < CLICK_MAX_DURATION) {
fullscreenToggled(!mIsFullscreen)
}
}
mIsDragged = false
} }
} }
} }
private fun cleanup() { private fun handleNextFile() {
pauseVideo() Intent().apply {
video_curr_time.text = 0.getFormattedDuration() putExtra(GO_TO_NEXT_ITEM, true)
releaseExoPlayer() setResult(Activity.RESULT_OK, this)
video_seekbar.progress = 0 }
mTimerHandler.removeCallbacksAndMessages(null) finish()
}
private fun handlePrevFile() {
Intent().apply {
putExtra(GO_TO_PREV_ITEM, true)
setResult(Activity.RESULT_OK, this)
}
finish()
}
private fun resetPlayWhenReady() {
mExoPlayer?.playWhenReady = false
mPlayWhenReadyHandler.removeCallbacksAndMessages(null)
mPlayWhenReadyHandler.postDelayed({
mExoPlayer?.playWhenReady = true
}, PLAY_WHEN_READY_DRAG_DELAY)
} }
private fun releaseExoPlayer() { private fun releaseExoPlayer() {
@ -486,6 +583,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
if (mExoPlayer != null && fromUser) { if (mExoPlayer != null && fromUser) {
setPosition(progress) setPosition(progress)
resetPlayWhenReady()
} }
} }

View file

@ -19,7 +19,6 @@ import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.os.Handler import android.os.Handler
import android.provider.MediaStore import android.provider.MediaStore
import android.util.DisplayMetrics
import android.view.Menu import android.view.Menu
import android.view.MenuItem import android.view.MenuItem
import android.view.View import android.view.View
@ -33,6 +32,7 @@ import com.simplemobiletools.commons.dialogs.RenameItemDialog
import com.simplemobiletools.commons.extensions.* import com.simplemobiletools.commons.extensions.*
import com.simplemobiletools.commons.helpers.* import com.simplemobiletools.commons.helpers.*
import com.simplemobiletools.commons.models.FileDirItem import com.simplemobiletools.commons.models.FileDirItem
import com.simplemobiletools.gallery.pro.BuildConfig
import com.simplemobiletools.gallery.pro.R import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.adapters.MyPagerAdapter import com.simplemobiletools.gallery.pro.adapters.MyPagerAdapter
import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask
@ -54,6 +54,8 @@ import java.io.OutputStream
import java.util.* import java.util.*
class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, ViewPagerFragment.FragmentListener { class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, ViewPagerFragment.FragmentListener {
private val REQUEST_VIEW_VIDEO = 1
private var mPath = "" private var mPath = ""
private var mDirectory = "" private var mDirectory = ""
private var mIsFullScreen = false private var mIsFullScreen = false
@ -74,11 +76,6 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
private var mMediaFiles = ArrayList<Medium>() private var mMediaFiles = ArrayList<Medium>()
private var mFavoritePaths = ArrayList<String>() private var mFavoritePaths = ArrayList<String>()
companion object {
var screenWidth = 0
var screenHeight = 0
}
@TargetApi(Build.VERSION_CODES.P) @TargetApi(Build.VERSION_CODES.P)
override fun onCreate(savedInstanceState: Bundle?) { override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState) super.onCreate(savedInstanceState)
@ -125,7 +122,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
window.attributes = attributes window.attributes = attributes
} }
setupRotation() setupOrientation()
invalidateOptionsMenu() invalidateOptionsMenu()
supportActionBar?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) supportActionBar?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
@ -168,6 +165,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
findItem(R.id.menu_rename).isVisible = visibleBottomActions and BOTTOM_ACTION_RENAME == 0 && !currentMedium.getIsInRecycleBin() findItem(R.id.menu_rename).isVisible = visibleBottomActions and BOTTOM_ACTION_RENAME == 0 && !currentMedium.getIsInRecycleBin()
findItem(R.id.menu_rotate).isVisible = currentMedium.isImage() && visibleBottomActions and BOTTOM_ACTION_ROTATE == 0 findItem(R.id.menu_rotate).isVisible = currentMedium.isImage() && visibleBottomActions and BOTTOM_ACTION_ROTATE == 0
findItem(R.id.menu_set_as).isVisible = visibleBottomActions and BOTTOM_ACTION_SET_AS == 0 findItem(R.id.menu_set_as).isVisible = visibleBottomActions and BOTTOM_ACTION_SET_AS == 0
findItem(R.id.menu_copy_to).isVisible = visibleBottomActions and BOTTOM_ACTION_COPY == 0
findItem(R.id.menu_save_as).isVisible = mRotationDegrees != 0 findItem(R.id.menu_save_as).isVisible = mRotationDegrees != 0
findItem(R.id.menu_hide).isVisible = !currentMedium.isHidden() && visibleBottomActions and BOTTOM_ACTION_TOGGLE_VISIBILITY == 0 && !currentMedium.getIsInRecycleBin() findItem(R.id.menu_hide).isVisible = !currentMedium.isHidden() && visibleBottomActions and BOTTOM_ACTION_TOGGLE_VISIBILITY == 0 && !currentMedium.getIsInRecycleBin()
findItem(R.id.menu_unhide).isVisible = currentMedium.isHidden() && visibleBottomActions and BOTTOM_ACTION_TOGGLE_VISIBILITY == 0 && !currentMedium.getIsInRecycleBin() findItem(R.id.menu_unhide).isVisible = currentMedium.isHidden() && visibleBottomActions and BOTTOM_ACTION_TOGGLE_VISIBILITY == 0 && !currentMedium.getIsInRecycleBin()
@ -225,7 +223,6 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
} }
private fun initViewPager() { private fun initViewPager() {
measureScreen()
val uri = intent.data val uri = intent.data
if (uri != null) { if (uri != null) {
var cursor: Cursor? = null var cursor: Cursor? = null
@ -364,7 +361,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
}.start() }.start()
} }
private fun setupRotation() { private fun setupOrientation() {
if (!mIsOrientationLocked) { if (!mIsOrientationLocked) {
if (config.screenRotation == ROTATE_BY_DEVICE_ROTATION) { if (config.screenRotation == ROTATE_BY_DEVICE_ROTATION) {
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR
@ -870,6 +867,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
bottom_set_as.setOnClickListener { bottom_set_as.setOnClickListener {
setAs(getCurrentPath()) setAs(getCurrentPath())
} }
bottom_copy.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_COPY != 0)
bottom_copy.setOnClickListener {
copyMoveTo(true)
}
} }
private fun updateBottomActionIcons(medium: Medium?) { private fun updateBottomActionIcons(medium: Medium?) {
@ -908,15 +910,17 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
} }
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) { override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
if (requestCode == REQUEST_EDIT_IMAGE) { if (requestCode == REQUEST_EDIT_IMAGE && resultCode == Activity.RESULT_OK && resultData != null) {
if (resultCode == Activity.RESULT_OK && resultData != null) { mPos = -1
mPos = -1 mPrevHashcode = 0
mPrevHashcode = 0 refreshViewPager()
refreshViewPager() } else if (requestCode == REQUEST_SET_AS && resultCode == Activity.RESULT_OK) {
} toast(R.string.wallpaper_set_successfully)
} else if (requestCode == REQUEST_SET_AS) { } else if (requestCode == REQUEST_VIEW_VIDEO && resultCode == Activity.RESULT_OK && resultData != null) {
if (resultCode == Activity.RESULT_OK) { if (resultData.getBooleanExtra(GO_TO_NEXT_ITEM, false)) {
toast(R.string.wallpaper_set_successfully) goToNextItem()
} else if (resultData.getBooleanExtra(GO_TO_PREV_ITEM, false)) {
goToPrevItem()
} }
} }
super.onActivityResult(requestCode, resultCode, resultData) super.onActivityResult(requestCode, resultCode, resultData)
@ -1005,17 +1009,9 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
override fun onConfigurationChanged(newConfig: Configuration?) { override fun onConfigurationChanged(newConfig: Configuration?) {
super.onConfigurationChanged(newConfig) super.onConfigurationChanged(newConfig)
measureScreen()
initBottomActionsLayout() initBottomActionsLayout()
} }
private fun measureScreen() {
val metrics = DisplayMetrics()
windowManager.defaultDisplay.getRealMetrics(metrics)
screenWidth = metrics.widthPixels
screenHeight = metrics.heightPixels
}
private fun refreshViewPager() { private fun refreshViewPager() {
if (config.getFileSorting(mDirectory) and SORT_BY_RANDOM == 0) { if (config.getFileSorting(mDirectory) and SORT_BY_RANDOM == 0) {
GetMediaAsynctask(applicationContext, mDirectory, false, false, mShowAll) { GetMediaAsynctask(applicationContext, mDirectory, false, false, mShowAll) {
@ -1107,6 +1103,34 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
checkOrientation() checkOrientation()
} }
override fun launchViewVideoIntent(path: String) {
Thread {
val newUri = getFinalUriFromPath(path, BuildConfig.APPLICATION_ID) ?: return@Thread
val mimeType = getUriMimeType(path, newUri)
Intent().apply {
action = Intent.ACTION_VIEW
setDataAndType(newUri, mimeType)
addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
putExtra(IS_FROM_GALLERY, true)
putExtra(REAL_FILE_PATH, path)
putExtra(SHOW_PREV_ITEM, view_pager.currentItem != 0)
putExtra(SHOW_NEXT_ITEM, view_pager.currentItem != mMediaFiles.size - 1)
if (resolveActivity(packageManager) != null) {
try {
startActivityForResult(this, REQUEST_VIEW_VIDEO)
} catch (e: NullPointerException) {
showErrorToast(e)
}
} else {
if (!tryGenericMimeType(this, mimeType, newUri)) {
toast(R.string.no_app_found)
}
}
}
}.start()
}
private fun checkSystemUI() { private fun checkSystemUI() {
if (mIsFullScreen) { if (mIsFullScreen) {
hideSystemUI(true) hideSystemUI(true)

View file

@ -26,6 +26,7 @@ class ManageBottomActionsDialog(val activity: BaseSimpleActivity, val callback:
manage_bottom_actions_toggle_visibility.isChecked = actions and BOTTOM_ACTION_TOGGLE_VISIBILITY != 0 manage_bottom_actions_toggle_visibility.isChecked = actions and BOTTOM_ACTION_TOGGLE_VISIBILITY != 0
manage_bottom_actions_rename.isChecked = actions and BOTTOM_ACTION_RENAME != 0 manage_bottom_actions_rename.isChecked = actions and BOTTOM_ACTION_RENAME != 0
manage_bottom_actions_set_as.isChecked = actions and BOTTOM_ACTION_SET_AS != 0 manage_bottom_actions_set_as.isChecked = actions and BOTTOM_ACTION_SET_AS != 0
manage_bottom_actions_copy.isChecked = actions and BOTTOM_ACTION_COPY != 0
} }
AlertDialog.Builder(activity) AlertDialog.Builder(activity)
@ -63,6 +64,8 @@ class ManageBottomActionsDialog(val activity: BaseSimpleActivity, val callback:
result += BOTTOM_ACTION_RENAME result += BOTTOM_ACTION_RENAME
if (manage_bottom_actions_set_as.isChecked) if (manage_bottom_actions_set_as.isChecked)
result += BOTTOM_ACTION_SET_AS result += BOTTOM_ACTION_SET_AS
if (manage_bottom_actions_copy.isChecked)
result += BOTTOM_ACTION_COPY
} }
activity.config.visibleBottomActions = result activity.config.visibleBottomActions = result

View file

@ -70,7 +70,7 @@ fun SimpleActivity.launchAbout() {
FAQItem(R.string.faq_1_title, R.string.faq_1_text), FAQItem(R.string.faq_1_title, R.string.faq_1_text),
FAQItem(R.string.faq_2_title, R.string.faq_2_text), FAQItem(R.string.faq_2_title, R.string.faq_2_text),
FAQItem(R.string.faq_3_title, R.string.faq_3_text), FAQItem(R.string.faq_3_title, R.string.faq_3_text),
FAQItem(R.string.faq_4_title, R.string.faq_4_text), FAQItem(R.string.faq_4_title, R.string.faq_4_text_old),
FAQItem(R.string.faq_5_title, R.string.faq_5_text), FAQItem(R.string.faq_5_title, R.string.faq_5_text),
FAQItem(R.string.faq_6_title, R.string.faq_6_text), FAQItem(R.string.faq_6_title, R.string.faq_6_text),
FAQItem(R.string.faq_7_title, R.string.faq_7_text), FAQItem(R.string.faq_7_title, R.string.faq_7_text),

View file

@ -34,7 +34,6 @@ import com.simplemobiletools.commons.helpers.OTG_PATH
import com.simplemobiletools.gallery.pro.R import com.simplemobiletools.gallery.pro.R
import com.simplemobiletools.gallery.pro.activities.PanoramaPhotoActivity import com.simplemobiletools.gallery.pro.activities.PanoramaPhotoActivity
import com.simplemobiletools.gallery.pro.activities.PhotoActivity import com.simplemobiletools.gallery.pro.activities.PhotoActivity
import com.simplemobiletools.gallery.pro.activities.ViewPagerActivity
import com.simplemobiletools.gallery.pro.extensions.* import com.simplemobiletools.gallery.pro.extensions.*
import com.simplemobiletools.gallery.pro.helpers.MEDIUM import com.simplemobiletools.gallery.pro.helpers.MEDIUM
import com.simplemobiletools.gallery.pro.helpers.PATH import com.simplemobiletools.gallery.pro.helpers.PATH
@ -63,27 +62,29 @@ class PhotoFragment : ViewPagerFragment() {
"google nexus 5x" "google nexus 5x"
) )
private var isFragmentVisible = false private var mIsFragmentVisible = false
private var isFullscreen = false private var mIsFullscreen = false
private var wasInit = false private var mWasInit = false
private var isPanorama = false private var mIsPanorama = false
private var isSubsamplingVisible = false // checking view.visibility is unreliable, use an extra variable for it private var mIsSubsamplingVisible = false // checking view.visibility is unreliable, use an extra variable for it
private var imageOrientation = -1 private var mImageOrientation = -1
private var loadZoomableViewHandler = Handler()
private var storedShowExtendedDetails = false
private var storedHideExtendedDetails = false
private var storedAllowDeepZoomableImages = false
private var storedShowHighestQuality = false
private var storedAllowOneFingerZoom = false
private var mOriginalSubsamplingScale = 0f private var mOriginalSubsamplingScale = 0f
private var storedExtendedDetails = 0 private var mIoadZoomableViewHandler = Handler()
private var mScreenWidth = 0
private var mScreenHeight = 0
lateinit var view: ViewGroup private var mStoredShowExtendedDetails = false
lateinit var medium: Medium private var mStoredHideExtendedDetails = false
private var mStoredAllowDeepZoomableImages = false
private var mStoredShowHighestQuality = false
private var mStoredAllowOneFingerZoom = false
private var mStoredExtendedDetails = 0
private lateinit var mView: ViewGroup
private lateinit var mMedium: Medium
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
view = (inflater.inflate(R.layout.pager_photo_item, container, false) as ViewGroup).apply { mView = (inflater.inflate(R.layout.pager_photo_item, container, false) as ViewGroup).apply {
subsampling_view.setOnClickListener { photoClicked() } subsampling_view.setOnClickListener { photoClicked() }
photo_view.setOnClickListener { photoClicked() } photo_view.setOnClickListener { photoClicked() }
gif_view.setOnClickListener { photoClicked() } gif_view.setOnClickListener { photoClicked() }
@ -95,7 +96,7 @@ class PhotoFragment : ViewPagerFragment() {
instant_next_item.parentView = container instant_next_item.parentView = container
photo_brightness_controller.initialize(activity!!, slide_info, true, container) { x, y -> photo_brightness_controller.initialize(activity!!, slide_info, true, container) { x, y ->
view.apply { mView.apply {
if (subsampling_view.isVisible()) { if (subsampling_view.isVisible()) {
subsampling_view.sendFakeClick(x, y) subsampling_view.sendFakeClick(x, y)
} else { } else {
@ -111,7 +112,7 @@ class PhotoFragment : ViewPagerFragment() {
} }
subsampling_view.setOnTouchListener { v, event -> subsampling_view.setOnTouchListener { v, event ->
if (view.subsampling_view.scale == mOriginalSubsamplingScale) { if (mView.subsampling_view.scale == mOriginalSubsamplingScale) {
handleEvent(event) handleEvent(event)
} }
false false
@ -121,16 +122,16 @@ class PhotoFragment : ViewPagerFragment() {
checkScreenDimensions() checkScreenDimensions()
storeStateVariables() storeStateVariables()
if (!isFragmentVisible && activity is PhotoActivity) { if (!mIsFragmentVisible && activity is PhotoActivity) {
isFragmentVisible = true mIsFragmentVisible = true
} }
medium = arguments!!.getSerializable(MEDIUM) as Medium mMedium = arguments!!.getSerializable(MEDIUM) as Medium
if (medium.path.startsWith("content://") && !medium.path.startsWith("content://mms/")) { if (mMedium.path.startsWith("content://") && !mMedium.path.startsWith("content://mms/")) {
val originalPath = medium.path val originalPath = mMedium.path
medium.path = context!!.getRealPathFromURI(Uri.parse(originalPath)) ?: medium.path mMedium.path = context!!.getRealPathFromURI(Uri.parse(originalPath)) ?: mMedium.path
if (medium.path.isEmpty()) { if (mMedium.path.isEmpty()) {
var out: FileOutputStream? = null var out: FileOutputStream? = null
try { try {
var inputStream = context!!.contentResolver.openInputStream(Uri.parse(originalPath)) var inputStream = context!!.contentResolver.openInputStream(Uri.parse(originalPath))
@ -147,24 +148,24 @@ class PhotoFragment : ViewPagerFragment() {
val file = File(context!!.externalCacheDir, Uri.parse(originalPath).lastPathSegment) val file = File(context!!.externalCacheDir, Uri.parse(originalPath).lastPathSegment)
out = FileOutputStream(file) out = FileOutputStream(file)
rotated.compress(Bitmap.CompressFormat.JPEG, 100, out) rotated.compress(Bitmap.CompressFormat.JPEG, 100, out)
medium.path = file.absolutePath mMedium.path = file.absolutePath
} catch (e: Exception) { } catch (e: Exception) {
activity!!.toast(R.string.unknown_error_occurred) activity!!.toast(R.string.unknown_error_occurred)
return view return mView
} finally { } finally {
out?.close() out?.close()
} }
} }
} }
isFullscreen = activity!!.window.decorView.systemUiVisibility and View.SYSTEM_UI_FLAG_FULLSCREEN == View.SYSTEM_UI_FLAG_FULLSCREEN mIsFullscreen = activity!!.window.decorView.systemUiVisibility and View.SYSTEM_UI_FLAG_FULLSCREEN == View.SYSTEM_UI_FLAG_FULLSCREEN
loadImage() loadImage()
initExtendedDetails() initExtendedDetails()
wasInit = true mWasInit = true
checkIfPanorama() checkIfPanorama()
updateInstantSwitchWidths() updateInstantSwitchWidths()
return view return mView
} }
override fun onPause() { override fun onPause() {
@ -175,17 +176,17 @@ class PhotoFragment : ViewPagerFragment() {
override fun onResume() { override fun onResume() {
super.onResume() super.onResume()
val config = context!!.config val config = context!!.config
if (wasInit && (config.showExtendedDetails != storedShowExtendedDetails || config.extendedDetails != storedExtendedDetails)) { if (mWasInit && (config.showExtendedDetails != mStoredShowExtendedDetails || config.extendedDetails != mStoredExtendedDetails)) {
initExtendedDetails() initExtendedDetails()
} }
if (wasInit) { if (mWasInit) {
if (config.allowZoomingImages != storedAllowDeepZoomableImages || config.showHighestQuality != storedShowHighestQuality || if (config.allowZoomingImages != mStoredAllowDeepZoomableImages || config.showHighestQuality != mStoredShowHighestQuality ||
config.oneFingerZoom != storedAllowOneFingerZoom) { config.oneFingerZoom != mStoredAllowOneFingerZoom) {
isSubsamplingVisible = false mIsSubsamplingVisible = false
view.subsampling_view.beGone() mView.subsampling_view.beGone()
loadImage() loadImage()
} else if (medium.isGIF()) { } else if (mMedium.isGIF()) {
loadGif() loadGif()
} }
} }
@ -193,7 +194,7 @@ class PhotoFragment : ViewPagerFragment() {
val allowPhotoGestures = config.allowPhotoGestures val allowPhotoGestures = config.allowPhotoGestures
val allowInstantChange = config.allowInstantChange val allowInstantChange = config.allowInstantChange
view.apply { mView.apply {
photo_brightness_controller.beVisibleIf(allowPhotoGestures) photo_brightness_controller.beVisibleIf(allowPhotoGestures)
instant_prev_item.beVisibleIf(allowInstantChange) instant_prev_item.beVisibleIf(allowInstantChange)
instant_next_item.beVisibleIf(allowInstantChange) instant_next_item.beVisibleIf(allowInstantChange)
@ -205,9 +206,9 @@ class PhotoFragment : ViewPagerFragment() {
override fun setMenuVisibility(menuVisible: Boolean) { override fun setMenuVisibility(menuVisible: Boolean) {
super.setMenuVisibility(menuVisible) super.setMenuVisibility(menuVisible)
isFragmentVisible = menuVisible mIsFragmentVisible = menuVisible
if (wasInit) { if (mWasInit) {
if (!medium.isGIF()) { if (!mMedium.isGIF()) {
photoFragmentVisibilityChanged(menuVisible) photoFragmentVisibilityChanged(menuVisible)
} }
} }
@ -215,17 +216,17 @@ class PhotoFragment : ViewPagerFragment() {
private fun storeStateVariables() { private fun storeStateVariables() {
context!!.config.apply { context!!.config.apply {
storedShowExtendedDetails = showExtendedDetails mStoredShowExtendedDetails = showExtendedDetails
storedHideExtendedDetails = hideExtendedDetails mStoredHideExtendedDetails = hideExtendedDetails
storedAllowDeepZoomableImages = allowZoomingImages mStoredAllowDeepZoomableImages = allowZoomingImages
storedShowHighestQuality = showHighestQuality mStoredShowHighestQuality = showHighestQuality
storedAllowOneFingerZoom = oneFingerZoom mStoredAllowOneFingerZoom = oneFingerZoom
storedExtendedDetails = extendedDetails mStoredExtendedDetails = extendedDetails
} }
} }
private fun checkScreenDimensions() { private fun checkScreenDimensions() {
if (ViewPagerActivity.screenWidth == 0 || ViewPagerActivity.screenHeight == 0) { if (mScreenWidth == 0 || mScreenHeight == 0) {
measureScreen() measureScreen()
} }
} }
@ -233,8 +234,8 @@ class PhotoFragment : ViewPagerFragment() {
private fun measureScreen() { private fun measureScreen() {
val metrics = DisplayMetrics() val metrics = DisplayMetrics()
activity!!.windowManager.defaultDisplay.getRealMetrics(metrics) activity!!.windowManager.defaultDisplay.getRealMetrics(metrics)
ViewPagerActivity.screenWidth = metrics.widthPixels mScreenWidth = metrics.widthPixels
ViewPagerActivity.screenHeight = metrics.heightPixels mScreenHeight = metrics.heightPixels
} }
private fun photoFragmentVisibilityChanged(isVisible: Boolean) { private fun photoFragmentVisibilityChanged(isVisible: Boolean) {
@ -264,26 +265,26 @@ class PhotoFragment : ViewPagerFragment() {
} }
private fun loadImage() { private fun loadImage() {
imageOrientation = getImageOrientation() mImageOrientation = getImageOrientation()
when { when {
medium.isGIF() -> loadGif() mMedium.isGIF() -> loadGif()
medium.isSVG() -> loadSVG() mMedium.isSVG() -> loadSVG()
else -> loadBitmap() else -> loadBitmap()
} }
} }
private fun loadGif() { private fun loadGif() {
try { try {
val pathToLoad = getPathToLoad(medium) val pathToLoad = getPathToLoad(mMedium)
val source = if (pathToLoad.startsWith("content://") || pathToLoad.startsWith("file://")) { val source = if (pathToLoad.startsWith("content://") || pathToLoad.startsWith("file://")) {
InputSource.UriSource(context!!.contentResolver, Uri.parse(pathToLoad)) InputSource.UriSource(context!!.contentResolver, Uri.parse(pathToLoad))
} else { } else {
InputSource.FileSource(pathToLoad) InputSource.FileSource(pathToLoad)
} }
view.photo_view.beGone() mView.photo_view.beGone()
view.gif_view.beVisible() mView.gif_view.beVisible()
view.gif_view.setInputSource(source) mView.gif_view.setInputSource(source)
} catch (e: Exception) { } catch (e: Exception) {
loadBitmap() loadBitmap()
} catch (e: OutOfMemoryError) { } catch (e: OutOfMemoryError) {
@ -295,35 +296,35 @@ class PhotoFragment : ViewPagerFragment() {
Glide.with(context!!) Glide.with(context!!)
.`as`(PictureDrawable::class.java) .`as`(PictureDrawable::class.java)
.listener(SvgSoftwareLayerSetter()) .listener(SvgSoftwareLayerSetter())
.load(medium.path) .load(mMedium.path)
.into(view.photo_view) .into(mView.photo_view)
} }
private fun loadBitmap(degrees: Int = 0) { private fun loadBitmap(degrees: Int = 0) {
checkScreenDimensions() checkScreenDimensions()
var pathToLoad = if (medium.path.startsWith("content://")) medium.path else "file://${medium.path}" var pathToLoad = if (mMedium.path.startsWith("content://")) mMedium.path else "file://${mMedium.path}"
pathToLoad = pathToLoad.replace("%", "%25").replace("#", "%23") pathToLoad = pathToLoad.replace("%", "%25").replace("#", "%23")
try { try {
val picasso = Picasso.get() val picasso = Picasso.get()
.load(pathToLoad) .load(pathToLoad)
.centerInside() .centerInside()
.resize(ViewPagerActivity.screenWidth, ViewPagerActivity.screenHeight) .resize(mScreenWidth, mScreenHeight)
if (degrees != 0) { if (degrees != 0) {
picasso.rotate(degrees.toFloat()) picasso.rotate(degrees.toFloat())
} }
picasso.into(view.photo_view, object : Callback { picasso.into(mView.photo_view, object : Callback {
override fun onSuccess() { override fun onSuccess() {
view.photo_view.isZoomable = degrees != 0 || context?.config?.allowZoomingImages == false mView.photo_view.isZoomable = degrees != 0 || context?.config?.allowZoomingImages == false
if (isFragmentVisible && degrees == 0) { if (mIsFragmentVisible && degrees == 0) {
scheduleZoomableView() scheduleZoomableView()
} }
} }
override fun onError(e: Exception) { override fun onError(e: Exception) {
if (context != null) { if (activity != null) {
tryLoadingWithGlide() tryLoadingWithGlide()
} }
} }
@ -333,56 +334,56 @@ class PhotoFragment : ViewPagerFragment() {
} }
private fun tryLoadingWithGlide() { private fun tryLoadingWithGlide() {
var targetWidth = if (ViewPagerActivity.screenWidth == 0) com.bumptech.glide.request.target.Target.SIZE_ORIGINAL else ViewPagerActivity.screenWidth var targetWidth = if (mScreenWidth == 0) com.bumptech.glide.request.target.Target.SIZE_ORIGINAL else mScreenWidth
var targetHeight = if (ViewPagerActivity.screenHeight == 0) com.bumptech.glide.request.target.Target.SIZE_ORIGINAL else ViewPagerActivity.screenHeight var targetHeight = if (mScreenHeight == 0) com.bumptech.glide.request.target.Target.SIZE_ORIGINAL else mScreenHeight
if (imageOrientation == ORIENTATION_ROTATE_90) { if (mImageOrientation == ORIENTATION_ROTATE_90) {
targetWidth = targetHeight targetWidth = targetHeight
targetHeight = com.bumptech.glide.request.target.Target.SIZE_ORIGINAL targetHeight = com.bumptech.glide.request.target.Target.SIZE_ORIGINAL
} }
val options = RequestOptions() val options = RequestOptions()
.signature(medium.path.getFileSignature()) .signature(mMedium.path.getFileSignature())
.format(DecodeFormat.PREFER_ARGB_8888) .format(DecodeFormat.PREFER_ARGB_8888)
.diskCacheStrategy(DiskCacheStrategy.RESOURCE) .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.override(targetWidth, targetHeight) .override(targetWidth, targetHeight)
Glide.with(context!!) Glide.with(context!!)
.asBitmap() .asBitmap()
.load(getPathToLoad(medium)) .load(getPathToLoad(mMedium))
.apply(options) .apply(options)
.listener(object : RequestListener<Bitmap> { .listener(object : RequestListener<Bitmap> {
override fun onLoadFailed(e: GlideException?, model: Any?, target: com.bumptech.glide.request.target.Target<Bitmap>?, isFirstResource: Boolean) = false override fun onLoadFailed(e: GlideException?, model: Any?, target: com.bumptech.glide.request.target.Target<Bitmap>?, isFirstResource: Boolean) = false
override fun onResourceReady(resource: Bitmap?, model: Any?, target: Target<Bitmap>?, dataSource: com.bumptech.glide.load.DataSource?, isFirstResource: Boolean): Boolean { override fun onResourceReady(resource: Bitmap?, model: Any?, target: Target<Bitmap>?, dataSource: com.bumptech.glide.load.DataSource?, isFirstResource: Boolean): Boolean {
if (isFragmentVisible) { if (mIsFragmentVisible) {
scheduleZoomableView() scheduleZoomableView()
} }
return false return false
} }
}).into(view.photo_view) }).into(mView.photo_view)
} }
private fun openPanorama() { private fun openPanorama() {
Intent(context, PanoramaPhotoActivity::class.java).apply { Intent(context, PanoramaPhotoActivity::class.java).apply {
putExtra(PATH, medium.path) putExtra(PATH, mMedium.path)
startActivity(this) startActivity(this)
} }
} }
private fun scheduleZoomableView() { private fun scheduleZoomableView() {
loadZoomableViewHandler.removeCallbacksAndMessages(null) mIoadZoomableViewHandler.removeCallbacksAndMessages(null)
loadZoomableViewHandler.postDelayed({ mIoadZoomableViewHandler.postDelayed({
if (isFragmentVisible && context?.config?.allowZoomingImages == true && medium.isImage() && !isSubsamplingVisible) { if (mIsFragmentVisible && context?.config?.allowZoomingImages == true && mMedium.isImage() && !mIsSubsamplingVisible) {
addZoomableView() addZoomableView()
} }
}, ZOOMABLE_VIEW_LOAD_DELAY) }, ZOOMABLE_VIEW_LOAD_DELAY)
} }
private fun addZoomableView() { private fun addZoomableView() {
val rotation = degreesForRotation(imageOrientation) val rotation = degreesForRotation(mImageOrientation)
val path = getPathToLoad(medium) val path = getPathToLoad(mMedium)
isSubsamplingVisible = true mIsSubsamplingVisible = true
val bitmapDecoder = object : DecoderFactory<ImageDecoder> { val bitmapDecoder = object : DecoderFactory<ImageDecoder> {
override fun make() = PicassoDecoder(path, Picasso.get(), rotation) override fun make() = PicassoDecoder(path, Picasso.get(), rotation)
@ -392,15 +393,17 @@ class PhotoFragment : ViewPagerFragment() {
override fun make() = PicassoRegionDecoder() override fun make() = PicassoRegionDecoder()
} }
view.subsampling_view.apply { val config = context!!.config
setMaxTileSize(if (context!!.config.showHighestQuality) Integer.MAX_VALUE else 4096) mView.subsampling_view.apply {
setMinimumTileDpi(if (context!!.config.showHighestQuality) -1 else getMinTileDpi()) setMaxTileSize(if (config.showHighestQuality) Integer.MAX_VALUE else 4096)
setMinimumTileDpi(if (config.showHighestQuality) -1 else getMinTileDpi())
background = ColorDrawable(Color.TRANSPARENT) background = ColorDrawable(Color.TRANSPARENT)
setBitmapDecoderFactory(bitmapDecoder) setBitmapDecoderFactory(bitmapDecoder)
setRegionDecoderFactory(regionDecoder) setRegionDecoderFactory(regionDecoder)
maxScale = 10f maxScale = 10f
beVisible() beVisible()
isQuickScaleEnabled = context.config.oneFingerZoom isQuickScaleEnabled = config.oneFingerZoom
isOneToOneZoomEnabled = config.allowOneToOneZoom
setResetScaleOnSizeChange(false) setResetScaleOnSizeChange(false)
setImage(ImageSource.uri(path)) setImage(ImageSource.uri(path))
setOrientation(rotation) setOrientation(rotation)
@ -410,9 +413,9 @@ class PhotoFragment : ViewPagerFragment() {
} }
override fun onReady() { override fun onReady() {
background = ColorDrawable(if (context.config.blackBackground) Color.BLACK else context.config.backgroundColor) background = ColorDrawable(if (config.blackBackground) Color.BLACK else config.backgroundColor)
val useWidth = if (imageOrientation == ORIENTATION_ROTATE_90 || imageOrientation == ORIENTATION_ROTATE_270) sHeight else sWidth val useWidth = if (mImageOrientation == ORIENTATION_ROTATE_90 || mImageOrientation == ORIENTATION_ROTATE_270) sHeight else sWidth
val useHeight = if (imageOrientation == ORIENTATION_ROTATE_90 || imageOrientation == ORIENTATION_ROTATE_270) sWidth else sHeight val useHeight = if (mImageOrientation == ORIENTATION_ROTATE_90 || mImageOrientation == ORIENTATION_ROTATE_270) sWidth else sHeight
setDoubleTapZoomScale(getDoubleTapZoomScale(useWidth, useHeight)) setDoubleTapZoomScale(getDoubleTapZoomScale(useWidth, useHeight))
mOriginalSubsamplingScale = scale mOriginalSubsamplingScale = scale
} }
@ -424,15 +427,15 @@ class PhotoFragment : ViewPagerFragment() {
} }
override fun onImageLoadError(e: Exception) { override fun onImageLoadError(e: Exception) {
view.photo_view.isZoomable = true mView.photo_view.isZoomable = true
background = ColorDrawable(Color.TRANSPARENT) background = ColorDrawable(Color.TRANSPARENT)
isSubsamplingVisible = false mIsSubsamplingVisible = false
beGone() beGone()
} }
override fun onPreviewLoadError(e: Exception) { override fun onPreviewLoadError(e: Exception) {
background = ColorDrawable(Color.TRANSPARENT) background = ColorDrawable(Color.TRANSPARENT)
isSubsamplingVisible = false mIsSubsamplingVisible = false
beGone() beGone()
} }
}) })
@ -452,9 +455,9 @@ class PhotoFragment : ViewPagerFragment() {
} }
private fun checkIfPanorama() { private fun checkIfPanorama() {
isPanorama = try { mIsPanorama = try {
val inputStream = if (medium.path.startsWith("content:/")) context!!.contentResolver.openInputStream(Uri.parse(medium.path)) else File(medium.path).inputStream() val inputStream = if (mMedium.path.startsWith("content:/")) context!!.contentResolver.openInputStream(Uri.parse(mMedium.path)) else File(mMedium.path).inputStream()
val imageParser = JpegImageParser().getXmpXml(ByteSourceInputStream(inputStream, medium.name), HashMap<String, Any>()) val imageParser = JpegImageParser().getXmpXml(ByteSourceInputStream(inputStream, mMedium.name), HashMap<String, Any>())
imageParser.contains("GPano:UsePanoramaViewer=\"True\"", true) || imageParser.contains("<GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer>", true) imageParser.contains("GPano:UsePanoramaViewer=\"True\"", true) || imageParser.contains("<GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer>", true)
} catch (e: Exception) { } catch (e: Exception) {
false false
@ -462,7 +465,7 @@ class PhotoFragment : ViewPagerFragment() {
false false
} }
view.panorama_outline.beVisibleIf(isPanorama) mView.panorama_outline.beVisibleIf(mIsPanorama)
} }
private fun getImageOrientation(): Int { private fun getImageOrientation(): Int {
@ -470,11 +473,11 @@ class PhotoFragment : ViewPagerFragment() {
var orient = defaultOrientation var orient = defaultOrientation
try { try {
val pathToLoad = getPathToLoad(medium) val pathToLoad = getPathToLoad(mMedium)
val exif = android.media.ExifInterface(pathToLoad) val exif = android.media.ExifInterface(pathToLoad)
orient = exif.getAttributeInt(android.media.ExifInterface.TAG_ORIENTATION, defaultOrientation) orient = exif.getAttributeInt(android.media.ExifInterface.TAG_ORIENTATION, defaultOrientation)
if (orient == defaultOrientation || medium.path.startsWith(OTG_PATH)) { if (orient == defaultOrientation || mMedium.path.startsWith(OTG_PATH)) {
val uri = if (pathToLoad.startsWith("content:/")) Uri.parse(pathToLoad) else Uri.fromFile(File(pathToLoad)) val uri = if (pathToLoad.startsWith("content:/")) Uri.parse(pathToLoad) else Uri.fromFile(File(pathToLoad))
val inputStream = context!!.contentResolver.openInputStream(uri) val inputStream = context!!.contentResolver.openInputStream(uri)
val exif2 = ExifInterface() val exif2 = ExifInterface()
@ -489,65 +492,65 @@ class PhotoFragment : ViewPagerFragment() {
private fun getDoubleTapZoomScale(width: Int, height: Int): Float { 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() val screenAspectRatio = mScreenHeight / mScreenWidth.toFloat()
return if (context == null || bitmapAspectRatio == screenAspectRatio) { return if (context == null || bitmapAspectRatio == screenAspectRatio) {
DEFAULT_DOUBLE_TAP_ZOOM DEFAULT_DOUBLE_TAP_ZOOM
} else if (context!!.portrait && bitmapAspectRatio <= screenAspectRatio) { } else if (context!!.portrait && bitmapAspectRatio <= screenAspectRatio) {
ViewPagerActivity.screenHeight / height.toFloat() mScreenHeight / height.toFloat()
} else if (context!!.portrait && bitmapAspectRatio > screenAspectRatio) { } else if (context!!.portrait && bitmapAspectRatio > screenAspectRatio) {
ViewPagerActivity.screenWidth / width.toFloat() mScreenWidth / width.toFloat()
} else if (!context!!.portrait && bitmapAspectRatio >= screenAspectRatio) { } else if (!context!!.portrait && bitmapAspectRatio >= screenAspectRatio) {
ViewPagerActivity.screenWidth / width.toFloat() mScreenWidth / width.toFloat()
} else if (!context!!.portrait && bitmapAspectRatio < screenAspectRatio) { } else if (!context!!.portrait && bitmapAspectRatio < screenAspectRatio) {
ViewPagerActivity.screenHeight / height.toFloat() mScreenHeight / height.toFloat()
} else { } else {
DEFAULT_DOUBLE_TAP_ZOOM DEFAULT_DOUBLE_TAP_ZOOM
} }
} }
fun rotateImageViewBy(degrees: Int) { fun rotateImageViewBy(degrees: Int) {
loadZoomableViewHandler.removeCallbacksAndMessages(null) mIoadZoomableViewHandler.removeCallbacksAndMessages(null)
view.subsampling_view.beGone() mView.subsampling_view.beGone()
isSubsamplingVisible = false mIsSubsamplingVisible = false
loadBitmap(degrees) loadBitmap(degrees)
} }
private fun initExtendedDetails() { private fun initExtendedDetails() {
if (context!!.config.showExtendedDetails) { if (context!!.config.showExtendedDetails) {
view.photo_details.apply { mView.photo_details.apply {
beInvisible() // make it invisible so we can measure it, but not show yet beInvisible() // make it invisible so we can measure it, but not show yet
text = getMediumExtendedDetails(medium) text = getMediumExtendedDetails(mMedium)
onGlobalLayout { onGlobalLayout {
if (isAdded) { if (isAdded) {
val realY = getExtendedDetailsY(height) val realY = getExtendedDetailsY(height)
if (realY > 0) { if (realY > 0) {
y = realY y = realY
beVisibleIf(text.isNotEmpty()) beVisibleIf(text.isNotEmpty())
alpha = if (!context!!.config.hideExtendedDetails || !isFullscreen) 1f else 0f alpha = if (!context!!.config.hideExtendedDetails || !mIsFullscreen) 1f else 0f
} }
} }
} }
} }
} else { } else {
view.photo_details.beGone() mView.photo_details.beGone()
} }
} }
override fun onDestroyView() { override fun onDestroyView() {
super.onDestroyView() super.onDestroyView()
if (activity?.isDestroyed == false) { if (activity?.isDestroyed == false) {
view.subsampling_view.recycle() mView.subsampling_view.recycle()
} }
loadZoomableViewHandler.removeCallbacksAndMessages(null) mIoadZoomableViewHandler.removeCallbacksAndMessages(null)
} }
override fun onConfigurationChanged(newConfig: Configuration) { override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig) super.onConfigurationChanged(newConfig)
// avoid GIFs being skewed, played in wrong aspect ratio // avoid GIFs being skewed, played in wrong aspect ratio
if (medium.isGIF()) { if (mMedium.isGIF()) {
view.onGlobalLayout { mView.onGlobalLayout {
Handler().postDelayed({ Handler().postDelayed({
loadGif() loadGif()
}, 50) }, 50)
@ -563,10 +566,10 @@ class PhotoFragment : ViewPagerFragment() {
private fun hideZoomableView() { private fun hideZoomableView() {
if (context?.config?.allowZoomingImages == true) { if (context?.config?.allowZoomingImages == true) {
isSubsamplingVisible = false mIsSubsamplingVisible = false
view.subsampling_view.recycle() mView.subsampling_view.recycle()
view.subsampling_view.beGone() mView.subsampling_view.beGone()
loadZoomableViewHandler.removeCallbacksAndMessages(null) mIoadZoomableViewHandler.removeCallbacksAndMessages(null)
} }
} }
@ -576,17 +579,17 @@ class PhotoFragment : ViewPagerFragment() {
private fun updateInstantSwitchWidths() { private fun updateInstantSwitchWidths() {
val newWidth = resources.getDimension(R.dimen.instant_change_bar_width) + if (activity?.portrait == false) activity!!.navigationBarWidth else 0 val newWidth = resources.getDimension(R.dimen.instant_change_bar_width) + if (activity?.portrait == false) activity!!.navigationBarWidth else 0
view.instant_prev_item.layoutParams.width = newWidth.toInt() mView.instant_prev_item.layoutParams.width = newWidth.toInt()
view.instant_next_item.layoutParams.width = newWidth.toInt() mView.instant_next_item.layoutParams.width = newWidth.toInt()
} }
override fun fullscreenToggled(isFullscreen: Boolean) { override fun fullscreenToggled(isFullscreen: Boolean) {
this.isFullscreen = isFullscreen this.mIsFullscreen = isFullscreen
view.photo_details.apply { mView.photo_details.apply {
if (storedShowExtendedDetails && isVisible()) { if (mStoredShowExtendedDetails && isVisible()) {
animate().y(getExtendedDetailsY(height)) animate().y(getExtendedDetailsY(height))
if (storedHideExtendedDetails) { if (mStoredHideExtendedDetails) {
animate().alpha(if (isFullscreen) 0f else 1f).start() animate().alpha(if (isFullscreen) 0f else 1f).start()
} }
} }
@ -595,8 +598,8 @@ class PhotoFragment : ViewPagerFragment() {
private fun getExtendedDetailsY(height: Int): Float { private fun getExtendedDetailsY(height: Int): Float {
val smallMargin = resources.getDimension(R.dimen.small_margin) val smallMargin = resources.getDimension(R.dimen.small_margin)
val fullscreenOffset = smallMargin + if (isFullscreen) 0 else context!!.navigationBarHeight val fullscreenOffset = smallMargin + if (mIsFullscreen) 0 else context!!.navigationBarHeight
val actionsHeight = if (context!!.config.bottomActions && !isFullscreen) resources.getDimension(R.dimen.bottom_actions_height) else 0f val actionsHeight = if (context!!.config.bottomActions && !mIsFullscreen) resources.getDimension(R.dimen.bottom_actions_height) else 0f
return context!!.realScreenSize.y - height - actionsHeight - fullscreenOffset return context!!.realScreenSize.y - height - actionsHeight - fullscreenOffset
} }
} }

View file

@ -32,8 +32,8 @@ class VideoFragment : ViewPagerFragment() {
private lateinit var mBrightnessSideScroll: MediaSideScroll private lateinit var mBrightnessSideScroll: MediaSideScroll
private lateinit var mVolumeSideScroll: MediaSideScroll private lateinit var mVolumeSideScroll: MediaSideScroll
lateinit var mView: View private lateinit var mView: View
lateinit var medium: Medium private lateinit var mMedium: Medium
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
mView = inflater.inflate(R.layout.pager_video_item, container, false).apply { mView = inflater.inflate(R.layout.pager_video_item, container, false).apply {
@ -56,8 +56,8 @@ class VideoFragment : ViewPagerFragment() {
} }
storeStateVariables() storeStateVariables()
medium = arguments!!.getSerializable(MEDIUM) as Medium mMedium = arguments!!.getSerializable(MEDIUM) as Medium
Glide.with(context!!).load(medium.path).into(mView.video_preview) Glide.with(context!!).load(mMedium.path).into(mView.video_preview)
mIsFullscreen = activity!!.window.decorView.systemUiVisibility and View.SYSTEM_UI_FLAG_FULLSCREEN == View.SYSTEM_UI_FLAG_FULLSCREEN mIsFullscreen = activity!!.window.decorView.systemUiVisibility and View.SYSTEM_UI_FLAG_FULLSCREEN == View.SYSTEM_UI_FLAG_FULLSCREEN
checkIfPanorama() checkIfPanorama()
@ -68,7 +68,7 @@ class VideoFragment : ViewPagerFragment() {
video_play_outline.beGone() video_play_outline.beGone()
mVolumeSideScroll.beGone() mVolumeSideScroll.beGone()
mBrightnessSideScroll.beGone() mBrightnessSideScroll.beGone()
Glide.with(context!!).load(medium.path).into(video_preview) Glide.with(context!!).load(mMedium.path).into(video_preview)
} }
} }
@ -104,10 +104,7 @@ class VideoFragment : ViewPagerFragment() {
instant_next_item.beVisibleIf(allowInstantChange) instant_next_item.beVisibleIf(allowInstantChange)
} }
if (config.showExtendedDetails != mStoredShowExtendedDetails || config.extendedDetails != mStoredExtendedDetails) { checkExtendedDetails()
checkExtendedDetails()
}
storeStateVariables() storeStateVariables()
} }
@ -132,7 +129,7 @@ class VideoFragment : ViewPagerFragment() {
} }
private fun launchVideoPlayer() { private fun launchVideoPlayer() {
activity!!.openPath(medium.path, false) listener?.launchViewVideoIntent(mMedium.path)
} }
private fun toggleFullscreen() { private fun toggleFullscreen() {
@ -143,7 +140,7 @@ class VideoFragment : ViewPagerFragment() {
if (context!!.config.showExtendedDetails) { if (context!!.config.showExtendedDetails) {
mView.video_details.apply { mView.video_details.apply {
beInvisible() // make it invisible so we can measure it, but not show yet beInvisible() // make it invisible so we can measure it, but not show yet
text = getMediumExtendedDetails(medium) text = getMediumExtendedDetails(mMedium)
onGlobalLayout { onGlobalLayout {
if (isAdded) { if (isAdded) {
val realY = getExtendedDetailsY(height) val realY = getExtendedDetailsY(height)
@ -162,8 +159,8 @@ class VideoFragment : ViewPagerFragment() {
private fun checkIfPanorama() { private fun checkIfPanorama() {
try { try {
val fis = FileInputStream(File(medium.path)) val fis = FileInputStream(File(mMedium.path))
context!!.parseFileChannel(medium.path, fis.channel, 0, 0, 0) { context!!.parseFileChannel(mMedium.path, fis.channel, 0, 0, 0) {
mIsPanorama = true mIsPanorama = true
} }
} catch (ignored: Exception) { } catch (ignored: Exception) {
@ -173,7 +170,7 @@ class VideoFragment : ViewPagerFragment() {
private fun openPanorama() { private fun openPanorama() {
Intent(context, PanoramaVideoActivity::class.java).apply { Intent(context, PanoramaVideoActivity::class.java).apply {
putExtra(PATH, medium.path) putExtra(PATH, mMedium.path)
startActivity(this) startActivity(this)
} }
} }
@ -199,6 +196,8 @@ class VideoFragment : ViewPagerFragment() {
private fun getExtendedDetailsY(height: Int): Float { private fun getExtendedDetailsY(height: Int): Float {
val smallMargin = resources.getDimension(R.dimen.small_margin) val smallMargin = resources.getDimension(R.dimen.small_margin)
return context!!.realScreenSize.y.toFloat() - height - smallMargin val fullscreenOffset = smallMargin + if (mIsFullscreen) 0 else context!!.navigationBarHeight
val actionsHeight = if (context!!.config.bottomActions && !mIsFullscreen) resources.getDimension(R.dimen.bottom_actions_height) else 0f
return context!!.realScreenSize.y - height - actionsHeight - fullscreenOffset
} }
} }

View file

@ -28,6 +28,8 @@ abstract class ViewPagerFragment : Fragment() {
fun goToPrevItem() fun goToPrevItem()
fun goToNextItem() fun goToNextItem()
fun launchViewVideoIntent(path: String)
} }
fun getMediumExtendedDetails(medium: Medium): String { fun getMediumExtendedDetails(medium: Medium): String {

View file

@ -441,4 +441,8 @@ class Config(context: Context) : BaseConfig(context) {
var showWidgetFolderName: Boolean var showWidgetFolderName: Boolean
get() = prefs.getBoolean(SHOW_WIDGET_FOLDER_NAME, true) get() = prefs.getBoolean(SHOW_WIDGET_FOLDER_NAME, true)
set(showWidgetFolderName) = prefs.edit().putBoolean(SHOW_WIDGET_FOLDER_NAME, showWidgetFolderName).apply() set(showWidgetFolderName) = prefs.edit().putBoolean(SHOW_WIDGET_FOLDER_NAME, showWidgetFolderName).apply()
var allowOneToOneZoom: Boolean
get() = prefs.getBoolean(ALLOW_ONE_TO_ONE_ZOOM, false)
set(allowOneToOneZoom) = prefs.edit().putBoolean(ALLOW_ONE_TO_ONE_ZOOM, allowOneToOneZoom).apply()
} }

View file

@ -74,6 +74,7 @@ const val LAST_EDITOR_CROP_OTHER_ASPECT_RATIO_X = "last_editor_crop_other_aspect
const val LAST_EDITOR_CROP_OTHER_ASPECT_RATIO_Y = "last_editor_crop_other_aspect_ratio_y" const val LAST_EDITOR_CROP_OTHER_ASPECT_RATIO_Y = "last_editor_crop_other_aspect_ratio_y"
const val GROUP_DIRECT_SUBFOLDERS = "group_direct_subfolders" const val GROUP_DIRECT_SUBFOLDERS = "group_direct_subfolders"
const val SHOW_WIDGET_FOLDER_NAME = "show_widget_folder_name" const val SHOW_WIDGET_FOLDER_NAME = "show_widget_folder_name"
const val ALLOW_ONE_TO_ONE_ZOOM = "allow_one_to_one_zoom"
// slideshow // slideshow
const val SLIDESHOW_INTERVAL = "slideshow_interval" const val SLIDESHOW_INTERVAL = "slideshow_interval"
@ -91,13 +92,15 @@ const val FAVORITES = "favorites"
const val RECYCLE_BIN = "recycle_bin" const val RECYCLE_BIN = "recycle_bin"
const val SHOW_FAVORITES = "show_favorites" const val SHOW_FAVORITES = "show_favorites"
const val SHOW_RECYCLE_BIN = "show_recycle_bin" const val SHOW_RECYCLE_BIN = "show_recycle_bin"
const val SHOW_NEXT_ITEM = "show_next_item"
const val SHOW_PREV_ITEM = "show_prev_item"
const val GO_TO_NEXT_ITEM = "go_to_next_item"
const val GO_TO_PREV_ITEM = "go_to_prev_item"
const val MAX_COLUMN_COUNT = 20 const val MAX_COLUMN_COUNT = 20
const val SHOW_TEMP_HIDDEN_DURATION = 300000L const val SHOW_TEMP_HIDDEN_DURATION = 300000L
const val CLICK_MAX_DURATION = 150 const val CLICK_MAX_DURATION = 150
const val DRAG_THRESHOLD = 8 const val DRAG_THRESHOLD = 8
const val MONTH_MILLISECONDS = MONTH_SECONDS * 1000L const val MONTH_MILLISECONDS = MONTH_SECONDS * 1000L
const val HIDE_PLAY_PAUSE_DELAY = 500L
const val PLAY_PAUSE_VISIBLE_ALPHA = 0.8f
const val MIN_SKIP_LENGTH = 2000 const val MIN_SKIP_LENGTH = 2000
const val DIRECTORY = "directory" const val DIRECTORY = "directory"
@ -164,6 +167,7 @@ const val BOTTOM_ACTION_SHOW_ON_MAP = 256
const val BOTTOM_ACTION_TOGGLE_VISIBILITY = 512 const val BOTTOM_ACTION_TOGGLE_VISIBILITY = 512
const val BOTTOM_ACTION_RENAME = 1024 const val BOTTOM_ACTION_RENAME = 1024
const val BOTTOM_ACTION_SET_AS = 2048 const val BOTTOM_ACTION_SET_AS = 2048
const val BOTTOM_ACTION_COPY = 4096
const val DEFAULT_BOTTOM_ACTIONS = BOTTOM_ACTION_TOGGLE_FAVORITE or BOTTOM_ACTION_EDIT or BOTTOM_ACTION_SHARE or BOTTOM_ACTION_DELETE const val DEFAULT_BOTTOM_ACTIONS = BOTTOM_ACTION_TOGGLE_FAVORITE or BOTTOM_ACTION_EDIT or BOTTOM_ACTION_SHARE or BOTTOM_ACTION_DELETE

View file

@ -369,11 +369,6 @@ class MediaFetcher(val context: Context) {
else -> o1.taken.compareTo(o2.taken) else -> o1.taken.compareTo(o2.taken)
} }
// do just a quick extra sorting if the original sorting is equal, does not need to be accurate in all cases
if (result == 0 && sorting and SORT_BY_NAME == 0 && sorting and SORT_BY_PATH == 0) {
result = o1.name.compareTo(o2.name)
}
if (sorting and SORT_DESCENDING != 0) { if (sorting and SORT_DESCENDING != 0) {
result *= -1 result *= -1
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

View file

@ -795,6 +795,30 @@
</RelativeLayout> </RelativeLayout>
<RelativeLayout
android:id="@+id/settings_allow_one_to_one_zoom_holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/medium_margin"
android:background="?attr/selectableItemBackground"
android:paddingLeft="@dimen/normal_margin"
android:paddingTop="@dimen/activity_margin"
android:paddingRight="@dimen/normal_margin"
android:paddingBottom="@dimen/activity_margin">
<com.simplemobiletools.commons.views.MySwitchCompat
android:id="@+id/settings_allow_one_to_one_zoom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@null"
android:clickable="false"
android:paddingStart="@dimen/medium_margin"
android:paddingLeft="@dimen/medium_margin"
android:text="@string/allow_one_to_one_zoom"
app:switchPadding="@dimen/medium_margin"/>
</RelativeLayout>
<View <View
android:id="@+id/extended_details_divider" android:id="@+id/extended_details_divider"
android:layout_width="match_parent" android:layout_width="match_parent"

View file

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/video_player_holder" android:id="@+id/video_player_holder"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"> android:layout_height="match_parent">
@ -35,7 +36,7 @@
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true" android:layout_centerHorizontal="true"
android:layout_marginBottom="120dp" android:layout_marginBottom="200dp"
android:alpha="0" android:alpha="0"
android:background="@drawable/black_rounded_background" android:background="@drawable/black_rounded_background"
android:gravity="center" android:gravity="center"
@ -46,6 +47,15 @@
android:textColor="@android:color/white" android:textColor="@android:color/white"
android:textSize="@dimen/extra_big_text_size"/> android:textSize="@dimen/extra_big_text_size"/>
<TextView
android:id="@+id/video_bottom_gradient"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignTop="@+id/video_time_holder"
android:layout_alignParentBottom="true"
android:background="@drawable/gradient_background"
tools:ignore="UnknownIdInLayout"/>
<include layout="@layout/bottom_video_time_holder"/> <include layout="@layout/bottom_video_time_holder"/>
</RelativeLayout> </RelativeLayout>

View file

@ -137,8 +137,19 @@
android:background="?attr/selectableItemBackgroundBorderless" android:background="?attr/selectableItemBackgroundBorderless"
android:padding="@dimen/medium_margin" android:padding="@dimen/medium_margin"
android:src="@drawable/ic_set_as" android:src="@drawable/ic_set_as"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="@+id/bottom_copy"
app:layout_constraintHorizontal_bias="0.5" app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/bottom_rename"/> app:layout_constraintStart_toEndOf="@+id/bottom_rename"/>
<ImageView
android:id="@+id/bottom_copy"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="@dimen/medium_margin"
android:src="@drawable/ic_copy"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.5"
app:layout_constraintStart_toEndOf="@+id/bottom_set_as"/>
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -5,8 +5,19 @@
android:id="@+id/video_time_holder" android:id="@+id/video_time_holder"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true">
android:background="@drawable/gradient_background">
<ImageView
android:id="@+id/video_prev_file"
android:layout_width="@dimen/video_player_play_pause_size"
android:layout_height="@dimen/video_player_play_pause_size"
android:layout_alignParentStart="true"
android:layout_marginStart="@dimen/small_margin"
android:layout_marginTop="@dimen/activity_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="@dimen/normal_margin"
android:src="@drawable/ic_prev_outline"
android:visibility="invisible"/>
<ImageView <ImageView
android:id="@+id/video_toggle_play_pause" android:id="@+id/video_toggle_play_pause"
@ -19,6 +30,18 @@
android:src="@drawable/ic_pause_outline" android:src="@drawable/ic_pause_outline"
android:visibility="invisible"/> android:visibility="invisible"/>
<ImageView
android:id="@+id/video_next_file"
android:layout_width="@dimen/video_player_play_pause_size"
android:layout_height="@dimen/video_player_play_pause_size"
android:layout_alignParentEnd="true"
android:layout_marginTop="@dimen/activity_margin"
android:layout_marginEnd="@dimen/small_margin"
android:background="?attr/selectableItemBackgroundBorderless"
android:padding="@dimen/normal_margin"
android:src="@drawable/ic_next_outline"
android:visibility="invisible"/>
<TextView <TextView
android:id="@+id/video_curr_time" android:id="@+id/video_curr_time"
android:layout_width="wrap_content" android:layout_width="wrap_content"

View file

@ -110,5 +110,13 @@
android:paddingBottom="@dimen/activity_margin" android:paddingBottom="@dimen/activity_margin"
android:text="@string/set_as"/> android:text="@string/set_as"/>
<com.simplemobiletools.commons.views.MyAppCompatCheckbox
android:id="@+id/manage_bottom_actions_copy"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/activity_margin"
android:paddingBottom="@dimen/activity_margin"
android:text="@string/copy"/>
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View file

@ -10,6 +10,12 @@
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent"/> android:layout_height="match_parent"/>
<ImageView
android:id="@+id/top_shadow"
android:layout_width="match_parent"
android:layout_height="@dimen/default_status_action_height"
android:background="@drawable/gradient_background_flipped"/>
<include <include
android:id="@+id/bottom_actions" android:id="@+id/bottom_actions"
layout="@layout/bottom_actions"/> layout="@layout/bottom_actions"/>

View file

@ -120,6 +120,7 @@
<string name="loop_slideshow">حلقة عرض الشرائح</string> <string name="loop_slideshow">حلقة عرض الشرائح</string>
<string name="slideshow_ended">انتهى عرض الشرائح</string> <string name="slideshow_ended">انتهى عرض الشرائح</string>
<string name="no_media_for_slideshow">لم يتم العثور على وسائط لعرض الشرائح</string> <string name="no_media_for_slideshow">لم يتم العثور على وسائط لعرض الشرائح</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">تغيير طريقة العرض</string> <string name="change_view_type">تغيير طريقة العرض</string>
@ -174,6 +175,7 @@
<string name="show_highest_quality">Show images in the highest possible quality</string> <string name="show_highest_quality">Show images in the highest possible quality</string>
<string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string> <string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">المصغرات</string> <string name="thumbnails">المصغرات</string>
@ -194,7 +196,8 @@
<string name="faq_3_title">كيف يمكنني جعل الألبوم يظهر دائمًا في الجزء العلوي؟</string> <string name="faq_3_title">كيف يمكنني جعل الألبوم يظهر دائمًا في الجزء العلوي؟</string>
<string name="faq_3_text">يمكنك الضغط لفترة طويلة على الألبوم المطلوب وتحديد أيقونة الدبوس في الإجراء ، والتي سوف تثبيته إلى الأعلى. يمكنك تثبيت عدة مجلدات أيضًا ، وسيتم ترتيب العناصر المثبتة حسب طريقة الفرز الافتراضية.</string> <string name="faq_3_text">يمكنك الضغط لفترة طويلة على الألبوم المطلوب وتحديد أيقونة الدبوس في الإجراء ، والتي سوف تثبيته إلى الأعلى. يمكنك تثبيت عدة مجلدات أيضًا ، وسيتم ترتيب العناصر المثبتة حسب طريقة الفرز الافتراضية.</string>
<string name="faq_4_title">كيف يمكنني تقديم مقاطع فيديو بسرعة؟</string> <string name="faq_4_title">كيف يمكنني تقديم مقاطع فيديو بسرعة؟</string>
<string name="faq_4_text">يمكنك النقر على النصوص الحالية أو أقصى مدة قريبة من شريط السحب ، والتي ستنقل الفيديو إما للخلف أو إلى الأمام.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">يمكنك النقر على النصوص الحالية أو أقصى مدة قريبة من شريط السحب ، والتي ستنقل الفيديو إما للخلف أو إلى الأمام.</string>
<string name="faq_5_title">ما الفرق بين إخفاء واستبعاد مجلد؟</string> <string name="faq_5_title">ما الفرق بين إخفاء واستبعاد مجلد؟</string>
<string name="faq_5_text">يمنع الاستبعاد من عرض المجلد في الاستوديو البسيط فقط ، بينما يقوم بإخفاء بالعمل على مستوى النظام ككل ويقوم بإخفاء المجلد من المعارض الأخرى أيضًا. وهو يعمل عن طريق إنشاء ملف \".nomedia\" فارغ في المجلد المحدد ، والذي يمكنك بعد ذلك إزالته مع أي مدير ملفات أيضًا.</string> <string name="faq_5_text">يمنع الاستبعاد من عرض المجلد في الاستوديو البسيط فقط ، بينما يقوم بإخفاء بالعمل على مستوى النظام ككل ويقوم بإخفاء المجلد من المعارض الأخرى أيضًا. وهو يعمل عن طريق إنشاء ملف \".nomedia\" فارغ في المجلد المحدد ، والذي يمكنك بعد ذلك إزالته مع أي مدير ملفات أيضًا.</string>
<string name="faq_6_title">لماذا تظهر المجلدات التي تحتوي على ملصقات أو ملصقات موسيقى تغطيها؟</string> <string name="faq_6_title">لماذا تظهر المجلدات التي تحتوي على ملصقات أو ملصقات موسيقى تغطيها؟</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Loop slideshow</string> <string name="loop_slideshow">Loop slideshow</string>
<string name="slideshow_ended">The slideshow ended</string> <string name="slideshow_ended">The slideshow ended</string>
<string name="no_media_for_slideshow">No media for the slideshow have been found</string> <string name="no_media_for_slideshow">No media for the slideshow have been found</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Change view type</string> <string name="change_view_type">Change view type</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Show images in the highest possible quality</string> <string name="show_highest_quality">Show images in the highest possible quality</string>
<string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string> <string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Thumbnails</string> <string name="thumbnails">Thumbnails</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Presentació de diapositives</string> <string name="loop_slideshow">Presentació de diapositives</string>
<string name="slideshow_ended">S\'ha acabat la presentació de diapositives</string> <string name="slideshow_ended">S\'ha acabat la presentació de diapositives</string>
<string name="no_media_for_slideshow">No s\'han trobat mitjans per a la presentació de diapositives</string> <string name="no_media_for_slideshow">No s\'han trobat mitjans per a la presentació de diapositives</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Canviar el tipus de vista</string> <string name="change_view_type">Canviar el tipus de vista</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Mostra imatges amb la màxima qualitat possible</string> <string name="show_highest_quality">Mostra imatges amb la màxima qualitat possible</string>
<string name="show_recycle_bin_last">Mostra la paperera de reciclatge com a últim element a la pantalla principal</string> <string name="show_recycle_bin_last">Mostra la paperera de reciclatge com a últim element a la pantalla principal</string>
<string name="allow_down_gesture">Permet tancar la vista de pantalla completa amb un gest avall</string> <string name="allow_down_gesture">Permet tancar la vista de pantalla completa amb un gest avall</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniatures</string> <string name="thumbnails">Miniatures</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Com puc fer que un àlbum sempre aparegui a la part superior?</string> <string name="faq_3_title">Com puc fer que un àlbum sempre aparegui a la part superior?</string>
<string name="faq_3_text">Podeu prémer l\'àlbum desitjat i seleccionar la icona de la xinxeta al menú d\'acció i el fixarà a la part superior. També podeu enganxar diverses carpetes, els elements fixats s\'ordenaran pel mètode de classificació predeterminat.</string> <string name="faq_3_text">Podeu prémer l\'àlbum desitjat i seleccionar la icona de la xinxeta al menú d\'acció i el fixarà a la part superior. També podeu enganxar diverses carpetes, els elements fixats s\'ordenaran pel mètode de classificació predeterminat.</string>
<string name="faq_4_title">Com puc fer avançar els vídeos?</string> <string name="faq_4_title">Com puc fer avançar els vídeos?</string>
<string name="faq_4_text">Podeu fer clic als textos actuals o de duració màxima que hi ha a prop de la barra de cerca, això mourà el vídeo cap a enrere o cap endavant.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Podeu fer clic als textos actuals o de duració màxima que hi ha a prop de la barra de cerca, això mourà el vídeo cap a enrere o cap endavant.</string>
<string name="faq_5_title">Quina és la diferència entre ocultar i excloure una carpeta?</string> <string name="faq_5_title">Quina és la diferència entre ocultar i excloure una carpeta?</string>
<string name="faq_5_text">Excloure impedeix mostrar la carpeta només a Simple Galery, mentre que Ocultar també amaga la carpeta a altres galeries. Funciona creant un fitxer \". Nomedia \" buit a la carpeta donada, que podeu eliminar amb qualsevol gestor de fitxers.</string> <string name="faq_5_text">Excloure impedeix mostrar la carpeta només a Simple Galery, mentre que Ocultar també amaga la carpeta a altres galeries. Funciona creant un fitxer \". Nomedia \" buit a la carpeta donada, que podeu eliminar amb qualsevol gestor de fitxers.</string>
<string name="faq_6_title">Per què apareixen les carpetes amb les portades de la música o adhesius?</string> <string name="faq_6_title">Per què apareixen les carpetes amb les portades de la música o adhesius?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Smyčková prezentace</string> <string name="loop_slideshow">Smyčková prezentace</string>
<string name="slideshow_ended">Prezentace skončila</string> <string name="slideshow_ended">Prezentace skončila</string>
<string name="no_media_for_slideshow">Nebyla nalezena žádná média pro prezentaci</string> <string name="no_media_for_slideshow">Nebyla nalezena žádná média pro prezentaci</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Změnit typ zobrazení</string> <string name="change_view_type">Změnit typ zobrazení</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Zobrazit obrázky v nejlepší možné kvalitě</string> <string name="show_highest_quality">Zobrazit obrázky v nejlepší možné kvalitě</string>
<string name="show_recycle_bin_last">Zobrazit odpadkový koš jako poslední položku na hlavní obrazovce</string> <string name="show_recycle_bin_last">Zobrazit odpadkový koš jako poslední položku na hlavní obrazovce</string>
<string name="allow_down_gesture">Povolit zavírání celoobrazovkového režimu tažením prstu dolů</string> <string name="allow_down_gesture">Povolit zavírání celoobrazovkového režimu tažením prstu dolů</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Náhledy</string> <string name="thumbnails">Náhledy</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Jak můžu dosáhnout, aby bylo dané album stále zobrazeno první?</string> <string name="faq_3_title">Jak můžu dosáhnout, aby bylo dané album stále zobrazeno první?</string>
<string name="faq_3_text">Můžete označit danou složku dlouhým podržením a zvolit tlačítko s obrázkem připínáčku, to jej připne na vrch. Můžete připnout i více složek, budou seřazeny podle zvoleného řazení.</string> <string name="faq_3_text">Můžete označit danou složku dlouhým podržením a zvolit tlačítko s obrázkem připínáčku, to jej připne na vrch. Můžete připnout i více složek, budou seřazeny podle zvoleného řazení.</string>
<string name="faq_4_title">Jak můžu rychle posunout videa?</string> <string name="faq_4_title">Jak můžu rychle posunout videa?</string>
<string name="faq_4_text">Můžete kliknout na texty současné nebo maximální délky videa, které jsou vedle indikátoru současného progresu. To posune video buď vpřed, nebo vzad.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Můžete kliknout na texty současné nebo maximální délky videa, které jsou vedle indikátoru současného progresu. To posune video buď vpřed, nebo vzad.</string>
<string name="faq_5_title">Jaký je rozdíl mezi Skrytím a Vyloučením složky?</string> <string name="faq_5_title">Jaký je rozdíl mezi Skrytím a Vyloučením složky?</string>
<string name="faq_5_text">Zatímco vyloučení předejde zobrazení složky pouze vrámci Jednoduché Galerie, skrytí ho ukryje vrámci celého systému, tedy to ovlivní i ostatní galerie. Skrytí funguje pomocí vytvoření prázdného \".nomedia\" souboru v daném adresáři, který můžete vymazat i nějakým správcem souborů.</string> <string name="faq_5_text">Zatímco vyloučení předejde zobrazení složky pouze vrámci Jednoduché Galerie, skrytí ho ukryje vrámci celého systému, tedy to ovlivní i ostatní galerie. Skrytí funguje pomocí vytvoření prázdného \".nomedia\" souboru v daném adresáři, který můžete vymazat i nějakým správcem souborů.</string>
<string name="faq_6_title">Proč se mi zobrazují složky s obaly hudebních alb, nebo nálepkami?</string> <string name="faq_6_title">Proč se mi zobrazují složky s obaly hudebních alb, nebo nálepkami?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Endeløs kørsel</string> <string name="loop_slideshow">Endeløs kørsel</string>
<string name="slideshow_ended">Slideshowet endte</string> <string name="slideshow_ended">Slideshowet endte</string>
<string name="no_media_for_slideshow">Der blev ikke funket nogen mediefiler til slideshowet</string> <string name="no_media_for_slideshow">Der blev ikke funket nogen mediefiler til slideshowet</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Skift visning</string> <string name="change_view_type">Skift visning</string>
@ -161,15 +162,16 @@
<string name="manage_extended_details">Administrer udvidede oplysninger</string> <string name="manage_extended_details">Administrer udvidede oplysninger</string>
<string name="one_finger_zoom">Tillad zoom med en finger når medier er i fuldskærm</string> <string name="one_finger_zoom">Tillad zoom med en finger når medier er i fuldskærm</string>
<string name="allow_instant_change">Tillad skift af medie ved klik på skærmens sider</string> <string name="allow_instant_change">Tillad skift af medie ved klik på skærmens sider</string>
<string name="allow_deep_zooming_images">Allow deep zooming images</string> <string name="allow_deep_zooming_images">Tillad dyb zooming af billeder</string>
<string name="hide_extended_details">Skjul udvidede oplysninger når statuslinjen er skjult</string> <string name="hide_extended_details">Skjul udvidede oplysninger når statuslinjen er skjult</string>
<string name="do_extra_check">Tjek en ekstra gang for at undgå visning af ugyldige filer</string> <string name="do_extra_check">Tjek en ekstra gang for at undgå visning af ugyldige filer</string>
<string name="show_at_bottom">Vis handlingsknapper i bunden af skærmen</string> <string name="show_at_bottom">Vis handlingsknapper i bunden af skærmen</string>
<string name="show_recycle_bin">Vis papirkurven ved mappevisning</string> <string name="show_recycle_bin">Vis papirkurven ved mappevisning</string>
<string name="deep_zoomable_images">Deep zoomable images</string> <string name="deep_zoomable_images">Dybt zoombare billeder</string>
<string name="show_highest_quality">Vis billeder i den højst mulige kvalitet</string> <string name="show_highest_quality">Vis billeder i den højst mulige kvalitet</string>
<string name="show_recycle_bin_last">Vis papirkurven som sidste element på hovedskærmen</string> <string name="show_recycle_bin_last">Vis papirkurven som sidste element på hovedskærmen</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Luk fuldskærmsvisning ved at swipe ned</string>
<string name="allow_one_to_one_zoom">Tillad 1:1 zooming med to dobbelttryk</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniaturer</string> <string name="thumbnails">Miniaturer</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Endlos abspielen</string> <string name="loop_slideshow">Endlos abspielen</string>
<string name="slideshow_ended">Diashow beendet.</string> <string name="slideshow_ended">Diashow beendet.</string>
<string name="no_media_for_slideshow">Keine Medien für Diashow gefunden.</string> <string name="no_media_for_slideshow">Keine Medien für Diashow gefunden.</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Darstellung ändern</string> <string name="change_view_type">Darstellung ändern</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Zeige Bilder in der höchstmöglichen Qualität</string> <string name="show_highest_quality">Zeige Bilder in der höchstmöglichen Qualität</string>
<string name="show_recycle_bin_last">Zeige den Papierkorb als letztes Element auf dem Hauptbildschirm</string> <string name="show_recycle_bin_last">Zeige den Papierkorb als letztes Element auf dem Hauptbildschirm</string>
<string name="allow_down_gesture">Erlaube das Schließen der Vollbildansicht mit einer Abwärtsgeste</string> <string name="allow_down_gesture">Erlaube das Schließen der Vollbildansicht mit einer Abwärtsgeste</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Thumbnails</string> <string name="thumbnails">Thumbnails</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Wie kann ich ein Album immer zuoberst erscheinen lassen?</string> <string name="faq_3_title">Wie kann ich ein Album immer zuoberst erscheinen lassen?</string>
<string name="faq_3_text">Du kannst lange auf das gewünschte Album drücken und im Aktionsmenü das Stecknadelsymbol auswählen; es wird nun zuoberst angepinnt. Ebenso kannst du mehrere Ordner anpinnen. Angepinnte Objekte werden nach der Standardmethode sortiert.</string> <string name="faq_3_text">Du kannst lange auf das gewünschte Album drücken und im Aktionsmenü das Stecknadelsymbol auswählen; es wird nun zuoberst angepinnt. Ebenso kannst du mehrere Ordner anpinnen. Angepinnte Objekte werden nach der Standardmethode sortiert.</string>
<string name="faq_4_title">Wie kann ich in Videos vor- oder zurückspringen?</string> <string name="faq_4_title">Wie kann ich in Videos vor- oder zurückspringen?</string>
<string name="faq_4_text">Du kannst auf den Text der aktuellen oder der maximalen Dauer nahe der Suchleiste drücken, um im Video vor- oder zurück zu springen.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Du kannst auf den Text der aktuellen oder der maximalen Dauer nahe der Suchleiste drücken, um im Video vor- oder zurück zu springen.</string>
<string name="faq_5_title">Was ist der Unterschied zwischen \'Verstecken\' und \'Ausschließen\' eines Ordners?</string> <string name="faq_5_title">Was ist der Unterschied zwischen \'Verstecken\' und \'Ausschließen\' eines Ordners?</string>
<string name="faq_5_text">\'Ausschließen\' verhindert lediglich, dass der Ordner in Schlichte Galerie angezeigt wird. \'Verstecken\' hingegen versteckt den Ordner auch vor anderen Apps. Dies funktioniert durch das Erstellen einer leeren \".nomedia\"-Datei im betroffenen Ordner, welche du mit jedem Dateimanager wieder löschen kannst.</string> <string name="faq_5_text">\'Ausschließen\' verhindert lediglich, dass der Ordner in Schlichte Galerie angezeigt wird. \'Verstecken\' hingegen versteckt den Ordner auch vor anderen Apps. Dies funktioniert durch das Erstellen einer leeren \".nomedia\"-Datei im betroffenen Ordner, welche du mit jedem Dateimanager wieder löschen kannst.</string>
<string name="faq_6_title">Wieso erscheinen Ordner mit Musik-Cover oder Stickers?</string> <string name="faq_6_title">Wieso erscheinen Ordner mit Musik-Cover oder Stickers?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Επανάληψη εμφάνισης διαφανιών</string> <string name="loop_slideshow">Επανάληψη εμφάνισης διαφανιών</string>
<string name="slideshow_ended">Η εμφάνιση διαφανειών τελείωσε</string> <string name="slideshow_ended">Η εμφάνιση διαφανειών τελείωσε</string>
<string name="no_media_for_slideshow">Δεν βρέθηκαν πολυμέσα για την εμφάνιση διαφανειών</string> <string name="no_media_for_slideshow">Δεν βρέθηκαν πολυμέσα για την εμφάνιση διαφανειών</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Αλλαγή τύπου εμφάνισης</string> <string name="change_view_type">Αλλαγή τύπου εμφάνισης</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Εμφάνιση εικόνων με την υψηλότερη δυνατή ποιότητα</string> <string name="show_highest_quality">Εμφάνιση εικόνων με την υψηλότερη δυνατή ποιότητα</string>
<string name="show_recycle_bin_last">Εμφάνιση του Κάδου ως τελευταίο στοιχείο στην κύρια οθόνη</string> <string name="show_recycle_bin_last">Εμφάνιση του Κάδου ως τελευταίο στοιχείο στην κύρια οθόνη</string>
<string name="allow_down_gesture">Επιτρέψτε το κλείσιμο προβολής πλήρους οθόνης με χειρονομία προς τα κάτω</string> <string name="allow_down_gesture">Επιτρέψτε το κλείσιμο προβολής πλήρους οθόνης με χειρονομία προς τα κάτω</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Εικονίδια</string> <string name="thumbnails">Εικονίδια</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Πώς μπορώ να κάνω ένα άλμπουμ να φαίνεται στην κορυφή;</string> <string name="faq_3_title">Πώς μπορώ να κάνω ένα άλμπουμ να φαίνεται στην κορυφή;</string>
<string name="faq_3_text">Μπορείτε να πατήσετε παρατεταμένα στο άλμπουμ και να επιλέξετε το εικονίδιο καρφιτσώματος στο μενού, αυτό θα το καρφιτσώσει στην κορυφή. Επίσης μπορείτε να καρφιτσώσετε πολλαπλούς φακέλους, τα καρφιτσωμένα αντικείμενα θα είναι ταξινομημένα με την προεπιλεγμένη μέθοδο.</string> <string name="faq_3_text">Μπορείτε να πατήσετε παρατεταμένα στο άλμπουμ και να επιλέξετε το εικονίδιο καρφιτσώματος στο μενού, αυτό θα το καρφιτσώσει στην κορυφή. Επίσης μπορείτε να καρφιτσώσετε πολλαπλούς φακέλους, τα καρφιτσωμένα αντικείμενα θα είναι ταξινομημένα με την προεπιλεγμένη μέθοδο.</string>
<string name="faq_4_title">Πώς μπορώ να τρέξω μπροστά (fast-forward) τα βίντεο;</string> <string name="faq_4_title">Πώς μπορώ να τρέξω μπροστά (fast-forward) τα βίντεο;</string>
<string name="faq_4_text">Μπορείτε να αγγίξετε στο τρέχον ή στο κείμενο μέγιστης διάρκειας κοντά στην μπάρα αναζήτησης. Αυτό θα μετακινήσει το βίντεο μπροστά ή πίσω.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Μπορείτε να αγγίξετε στο τρέχον ή στο κείμενο μέγιστης διάρκειας κοντά στην μπάρα αναζήτησης. Αυτό θα μετακινήσει το βίντεο μπροστά ή πίσω.</string>
<string name="faq_5_title">Ποια είναι διαφορά μεταξύ απόκρυψης και εξαίρεσης ενός φακέλου;</string> <string name="faq_5_title">Ποια είναι διαφορά μεταξύ απόκρυψης και εξαίρεσης ενός φακέλου;</string>
<string name="faq_5_text">Η εξαίρεση δεν επιτρέπει την εμφάνιση του φακέλου μόνο στο Simple Gallery, ενώ η απόκρυψη λειτουργεί σε επίπεδο συστήματος και θα αποκρύψει τον φάκελο και από άλλες εφαρμογές γκάλερι. Λειτουργεί δημιουργώντας ένα άδειο \".nomedia\" αρχείο στον επιλεγμένο φάκελο, το οποίο μπορείτε να το διαγράψετε και με οποιονδήποτε διαχειριστή αρχείων.</string> <string name="faq_5_text">Η εξαίρεση δεν επιτρέπει την εμφάνιση του φακέλου μόνο στο Simple Gallery, ενώ η απόκρυψη λειτουργεί σε επίπεδο συστήματος και θα αποκρύψει τον φάκελο και από άλλες εφαρμογές γκάλερι. Λειτουργεί δημιουργώντας ένα άδειο \".nomedia\" αρχείο στον επιλεγμένο φάκελο, το οποίο μπορείτε να το διαγράψετε και με οποιονδήποτε διαχειριστή αρχείων.</string>
<string name="faq_6_title">Γιατί εμφανίζονται φάκελοι με εξώφυλλο μουσικής ή αυτόκολλητα;</string> <string name="faq_6_title">Γιατί εμφανίζονται φάκελοι με εξώφυλλο μουσικής ή αυτόκολλητα;</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Presentación de diapositivas</string> <string name="loop_slideshow">Presentación de diapositivas</string>
<string name="slideshow_ended">La diapositiva terminó</string> <string name="slideshow_ended">La diapositiva terminó</string>
<string name="no_media_for_slideshow">No se han encontrado medios para la presentación de diapositivas</string> <string name="no_media_for_slideshow">No se han encontrado medios para la presentación de diapositivas</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Cambiar tipo de vista</string> <string name="change_view_type">Cambiar tipo de vista</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Muestra imágenes con la mayor calidad posible</string> <string name="show_highest_quality">Muestra imágenes con la mayor calidad posible</string>
<string name="show_recycle_bin_last">Mostrar la Papelera de reciclaje como el último elemento en la pantalla principal</string> <string name="show_recycle_bin_last">Mostrar la Papelera de reciclaje como el último elemento en la pantalla principal</string>
<string name="allow_down_gesture">Permite cerrar la vista de pantalla completa con un gesto hacia abajo.</string> <string name="allow_down_gesture">Permite cerrar la vista de pantalla completa con un gesto hacia abajo.</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniaturas</string> <string name="thumbnails">Miniaturas</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">¿Cómo puedo hacer que un álbum siempre aparezca en la parte superior?</string> <string name="faq_3_title">¿Cómo puedo hacer que un álbum siempre aparezca en la parte superior?</string>
<string name="faq_3_text">Puede aguantar pulsado el álbum deseado y seleccionar el ícono Pin en el menú de acción, que lo fijará en la parte superior. También puede anclar varias carpetas, los artículos fijados se ordenarán por el método de clasificación predeterminado.</string> <string name="faq_3_text">Puede aguantar pulsado el álbum deseado y seleccionar el ícono Pin en el menú de acción, que lo fijará en la parte superior. También puede anclar varias carpetas, los artículos fijados se ordenarán por el método de clasificación predeterminado.</string>
<string name="faq_4_title">¿Cómo puedo avanzar videos?</string> <string name="faq_4_title">¿Cómo puedo avanzar videos?</string>
<string name="faq_4_text">Puede hacer clic en los textos de duración actual o máxima cerca de la barra de búsqueda, que moverán el video hacia atrás o hacia adelante.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Puede hacer clic en los textos de duración actual o máxima cerca de la barra de búsqueda, que moverán el video hacia atrás o hacia adelante.</string>
<string name="faq_5_title">¿Cuál es la diferencia entre ocultar y excluir una carpeta?</string> <string name="faq_5_title">¿Cuál es la diferencia entre ocultar y excluir una carpeta?</string>
<string name="faq_5_text">Excluir evita mostrar la carpeta solo en Simple Gallery, mientras que Ocultar funciona en el sistema y oculta la carpeta de otras galerías también. Funciona al crear un archivo \".nomedia \" vacío en la carpeta determinada, que luego puede eliminar también con cualquier administrador de archivos.</string> <string name="faq_5_text">Excluir evita mostrar la carpeta solo en Simple Gallery, mientras que Ocultar funciona en el sistema y oculta la carpeta de otras galerías también. Funciona al crear un archivo \".nomedia \" vacío en la carpeta determinada, que luego puede eliminar también con cualquier administrador de archivos.</string>
<string name="faq_6_title">¿Por qué aparecen las carpetas con la portada de la música o las pegatinas?</string> <string name="faq_6_title">¿Por qué aparecen las carpetas con la portada de la música o las pegatinas?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Jatkuva diaesitys</string> <string name="loop_slideshow">Jatkuva diaesitys</string>
<string name="slideshow_ended">Diaesitys päättyi</string> <string name="slideshow_ended">Diaesitys päättyi</string>
<string name="no_media_for_slideshow">Mediaa diaesitykseen ei löytynyt</string> <string name="no_media_for_slideshow">Mediaa diaesitykseen ei löytynyt</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Vaihda näkymää</string> <string name="change_view_type">Vaihda näkymää</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Show images in the highest possible quality</string> <string name="show_highest_quality">Show images in the highest possible quality</string>
<string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string> <string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Esikatselukuvat</string> <string name="thumbnails">Esikatselukuvat</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Diaporama en boucle</string> <string name="loop_slideshow">Diaporama en boucle</string>
<string name="slideshow_ended">Diaporama terminé</string> <string name="slideshow_ended">Diaporama terminé</string>
<string name="no_media_for_slideshow">Aucun média trouvé pour le diaporama</string> <string name="no_media_for_slideshow">Aucun média trouvé pour le diaporama</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Changer de mode d\'affichage</string> <string name="change_view_type">Changer de mode d\'affichage</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Afficher les images avec la meilleur qualité possible</string> <string name="show_highest_quality">Afficher les images avec la meilleur qualité possible</string>
<string name="show_recycle_bin_last">Afficher la corbeille en dernière place sur l\'écran principal</string> <string name="show_recycle_bin_last">Afficher la corbeille en dernière place sur l\'écran principal</string>
<string name="allow_down_gesture">Fermeture de la vue plein écran par un geste vers le bas</string> <string name="allow_down_gesture">Fermeture de la vue plein écran par un geste vers le bas</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniatures</string> <string name="thumbnails">Miniatures</string>
@ -190,7 +192,8 @@
<string name="faq_3_title">Comment faire pour qu\'un album soit toujours affiché tout en haut ?</string> <string name="faq_3_title">Comment faire pour qu\'un album soit toujours affiché tout en haut ?</string>
<string name="faq_3_text">Vous devez simplement à effectuer un appui prolongé sur l\'album en question et choisir l\'icône \"Épingler\" dans le menu d\'actions. Vous pouvez en épingler plusieurs. Les éléments épinglés seront alors triés selon l\'ordre par défaut.</string> <string name="faq_3_text">Vous devez simplement à effectuer un appui prolongé sur l\'album en question et choisir l\'icône \"Épingler\" dans le menu d\'actions. Vous pouvez en épingler plusieurs. Les éléments épinglés seront alors triés selon l\'ordre par défaut.</string>
<string name="faq_4_title">Comment avancer rapidement dans les vidéos ?</string> <string name="faq_4_title">Comment avancer rapidement dans les vidéos ?</string>
<string name="faq_4_text">Vous pouvez appuyer sur la durée actuelle ou totale de la vidéo sur la barre de progression, la vidéo reculera ou avancera selon votre choix.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Vous pouvez appuyer sur la durée actuelle ou totale de la vidéo sur la barre de progression, la vidéo reculera ou avancera selon votre choix.</string>
<string name="faq_5_title">Quelle est la différence entre masquer et exclure un dossier ?</string> <string name="faq_5_title">Quelle est la différence entre masquer et exclure un dossier ?</string>
<string name="faq_5_text">\"Exclure un dossier\" permet de ne pas l\'afficher uniquement dans Simple Gallery, alors que \"Masquer un dossier\" rend le dossier invisible sur l\'ensemble de l\'appareil, y compris les autres applications de galerie. Dans le dernier cas, un fichier \".nomedia\" est créé dans le dossier masqué, et peut être supprimé avec n\'importe quel explorateur de fichiers.</string> <string name="faq_5_text">\"Exclure un dossier\" permet de ne pas l\'afficher uniquement dans Simple Gallery, alors que \"Masquer un dossier\" rend le dossier invisible sur l\'ensemble de l\'appareil, y compris les autres applications de galerie. Dans le dernier cas, un fichier \".nomedia\" est créé dans le dossier masqué, et peut être supprimé avec n\'importe quel explorateur de fichiers.</string>
<string name="faq_6_title">Pourquoi des dossiers avec des pochettes d\'albums musicaux ou des miniatures d\'images sont affichés ?</string> <string name="faq_6_title">Pourquoi des dossiers avec des pochettes d\'albums musicaux ou des miniatures d\'images sont affichés ?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Reproducir en bucle</string> <string name="loop_slideshow">Reproducir en bucle</string>
<string name="slideshow_ended">Rematou a presentación</string> <string name="slideshow_ended">Rematou a presentación</string>
<string name="no_media_for_slideshow">Non se atoparon medios para a presentación</string> <string name="no_media_for_slideshow">Non se atoparon medios para a presentación</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Cambiar o tipo de vista</string> <string name="change_view_type">Cambiar o tipo de vista</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Show images in the highest possible quality</string> <string name="show_highest_quality">Show images in the highest possible quality</string>
<string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string> <string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Iconas</string> <string name="thumbnails">Iconas</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Cómo podo facer que un álbume apareza sempre arriba de todo?</string> <string name="faq_3_title">Cómo podo facer que un álbume apareza sempre arriba de todo?</string>
<string name="faq_3_text">Pode manter premido o álbume e escoller a icona de Fixar no menú de accións, esto fixarao arriba. Pode fixar varios cartafoles tambén, os elementos fixados estarán ordenados polo criterio por omisión.</string> <string name="faq_3_text">Pode manter premido o álbume e escoller a icona de Fixar no menú de accións, esto fixarao arriba. Pode fixar varios cartafoles tambén, os elementos fixados estarán ordenados polo criterio por omisión.</string>
<string name="faq_4_title">Cómo podo aumentar a velocidade de reprodución de vídeo?</string> <string name="faq_4_title">Cómo podo aumentar a velocidade de reprodución de vídeo?</string>
<string name="faq_4_text">Pode pulsar no texto de duración actual ou máxima preto da barra de busca, esto moverá ou vídeo hacia adiante ou atrás.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Pode pulsar no texto de duración actual ou máxima preto da barra de busca, esto moverá ou vídeo hacia adiante ou atrás.</string>
<string name="faq_5_title">Cal é a diferenza entre agochar e excluír un cartafol?</string> <string name="faq_5_title">Cal é a diferenza entre agochar e excluír un cartafol?</string>
<string name="faq_5_text">A Exclusión prevén que se mostre o cartafol só en Simple Gallery, mentras Agochar funciona para todo o sistema e agocha o cartafol para outras galerías tamén. Esto funciona creando un ficheiro baldeiro de nome \".nomedia\" no cartafol, que tamén pode quitar con calquer xestor de ficheiros.</string> <string name="faq_5_text">A Exclusión prevén que se mostre o cartafol só en Simple Gallery, mentras Agochar funciona para todo o sistema e agocha o cartafol para outras galerías tamén. Esto funciona creando un ficheiro baldeiro de nome \".nomedia\" no cartafol, que tamén pode quitar con calquer xestor de ficheiros.</string>
<string name="faq_6_title">Por qué aparecen cartafoles de música con portadas ou pegatinas?</string> <string name="faq_6_title">Por qué aparecen cartafoles de música con portadas ou pegatinas?</string>

View file

@ -30,7 +30,7 @@
<string name="use_default_orientation">Koristi zadanu orijentaciju slike</string> <string name="use_default_orientation">Koristi zadanu orijentaciju slike</string>
<string name="fix_date_taken">Ispravi vrijednost datuma snimanja</string> <string name="fix_date_taken">Ispravi vrijednost datuma snimanja</string>
<string name="fixing">Popravljam…</string> <string name="fixing">Popravljam…</string>
<string name="dates_fixed_successfully">Dates fixed successfully</string> <string name="dates_fixed_successfully">Datumi uspješno popravljeni</string>
<!-- Filter --> <!-- Filter -->
<string name="filter_media">Filtriranje medija</string> <string name="filter_media">Filtriranje medija</string>
@ -89,7 +89,7 @@
<string name="flip_vertically">Okreni vertikalno</string> <string name="flip_vertically">Okreni vertikalno</string>
<string name="edit_with">Uredi pomoću</string> <string name="edit_with">Uredi pomoću</string>
<string name="free_aspect_ratio">Slobodan odabir</string> <!-- available as an option: 1:1, 4:3, 16:9, free --> <string name="free_aspect_ratio">Slobodan odabir</string> <!-- available as an option: 1:1, 4:3, 16:9, free -->
<string name="other_aspect_ratio">Other</string> <!-- available as an option: 1:1, 4:3, 16:9, free, other --> <string name="other_aspect_ratio">Ostalo</string> <!-- available as an option: 1:1, 4:3, 16:9, free, other -->
<!-- Set wallpaper --> <!-- Set wallpaper -->
<string name="simple_wallpaper">Jednostavna pozadina</string> <string name="simple_wallpaper">Jednostavna pozadina</string>
@ -116,6 +116,7 @@
<string name="loop_slideshow">Prikaži dijaprojekciju kao petlju</string> <string name="loop_slideshow">Prikaži dijaprojekciju kao petlju</string>
<string name="slideshow_ended">Kraj dijaprojekcije</string> <string name="slideshow_ended">Kraj dijaprojekcije</string>
<string name="no_media_for_slideshow">Nema datoteka za dijaprojekciju</string> <string name="no_media_for_slideshow">Nema datoteka za dijaprojekciju</string>
<string name="use_crossfade_animation">Koristi prijelazne animacije</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Promijeni vrstu prikaza</string> <string name="change_view_type">Promijeni vrstu prikaza</string>
@ -133,18 +134,18 @@
<string name="by_extension">Vrsta datoteke</string> <string name="by_extension">Vrsta datoteke</string>
<!-- Widgets --> <!-- Widgets -->
<string name="folder_on_widget">Folder shown on the widget:</string> <string name="folder_on_widget">Mapa prikazana na widgetu:</string>
<string name="show_folder_name">Show folder name</string> <string name="show_folder_name">Prikaži naziv mape</string>
<!-- Settings --> <!-- Settings -->
<string name="autoplay_videos">Automatsko pokretanje videa</string> <string name="autoplay_videos">Automatsko pokretanje videa</string>
<string name="remember_last_video_position">Remember last video playback position</string> <string name="remember_last_video_position">Zapamti poziciju zadnjeg reproduciranog videozapisa</string>
<string name="toggle_filename">Uključi prikaz naziva datoteka</string> <string name="toggle_filename">Uključi prikaz naziva datoteka</string>
<string name="loop_videos">Ponavljanje videa</string> <string name="loop_videos">Ponavljanje videa</string>
<string name="animate_gifs">Prikaz animacije GIF-ova na sličicama</string> <string name="animate_gifs">Prikaz animacije GIF-ova na sličicama</string>
<string name="max_brightness">Maksimalna svjetlina pri pregledu datoteka</string> <string name="max_brightness">Maksimalna svjetlina pri pregledu datoteka</string>
<string name="crop_thumbnails">Izreži sličice u kvadrate</string> <string name="crop_thumbnails">Izreži sličice u kvadrate</string>
<string name="show_thumbnail_video_duration">Show video durations</string> <string name="show_thumbnail_video_duration">Prikaži trajanje videozapisa</string>
<string name="screen_rotation_by">Rotiraj datoteku u punom zaslonu za</string> <string name="screen_rotation_by">Rotiraj datoteku u punom zaslonu za</string>
<string name="screen_rotation_system_setting">Postavke sustava</string> <string name="screen_rotation_system_setting">Postavke sustava</string>
<string name="screen_rotation_device_rotation">Rotacija uređaja</string> <string name="screen_rotation_device_rotation">Rotacija uređaja</string>
@ -161,15 +162,16 @@
<string name="manage_extended_details">Upravljaj proširenim pojedinostima</string> <string name="manage_extended_details">Upravljaj proširenim pojedinostima</string>
<string name="one_finger_zoom">Omogući zumiranje jednim prstom na mediju cijelog zaslona</string> <string name="one_finger_zoom">Omogući zumiranje jednim prstom na mediju cijelog zaslona</string>
<string name="allow_instant_change">Dopusti trenutačno mijenjanje medija dodirom na stranice zaslona</string> <string name="allow_instant_change">Dopusti trenutačno mijenjanje medija dodirom na stranice zaslona</string>
<string name="allow_deep_zooming_images">Allow deep zooming images</string> <string name="allow_deep_zooming_images">Omogućite duboko zumiranje slika</string>
<string name="hide_extended_details">Sakrij proširene pojedinosti kada je traka statusa skrivena</string> <string name="hide_extended_details">Sakrij proširene pojedinosti kada je traka statusa skrivena</string>
<string name="do_extra_check">Napravite dodatnu provjeru da biste izbjegli prikazivanje nevažećih datoteka</string> <string name="do_extra_check">Napravite dodatnu provjeru da biste izbjegli prikazivanje nevažećih datoteka</string>
<string name="show_at_bottom">Pokažite neke gumbe za radnju pri dnu zaslona</string> <string name="show_at_bottom">Prikaži neke gumbe za radnju pri dnu zaslona</string>
<string name="show_recycle_bin">Prikažite koš za smeće na zaslonu mapa</string> <string name="show_recycle_bin">Prikažite koš za smeće na zaslonu mapa</string>
<string name="deep_zoomable_images">Deep zoomable images</string> <string name="deep_zoomable_images">Duboko zumirane slike</string>
<string name="show_highest_quality">Show images in the highest possible quality</string> <string name="show_highest_quality">Prikaži slike u najvišoj mogućoj kvaliteti</string>
<string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string> <string name="show_recycle_bin_last">Prikaži koš za smeće kao posljednju stavku na glavnom zaslonu</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Omogućite zatvaranje prikaza preko cijelog zaslona pokretom prema dolje</string>
<string name="allow_one_to_one_zoom">Dopusti zumiranje 1: 1 s dva dvostruka dodira</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Sličice</string> <string name="thumbnails">Sličice</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Kako postići da je album uvijek na vrhu?</string> <string name="faq_3_title">Kako postići da je album uvijek na vrhu?</string>
<string name="faq_3_text">Dugo pritisnute željeni album i odaberite ikonu igle na akcijskom izborniku, koji će ga pričvrstiti na vrh. Možete prikvačiti više mapa odjednom, prikvačene stavke će biti razvrstane prema zadanom načinu razvrstavanja.</string> <string name="faq_3_text">Dugo pritisnute željeni album i odaberite ikonu igle na akcijskom izborniku, koji će ga pričvrstiti na vrh. Možete prikvačiti više mapa odjednom, prikvačene stavke će biti razvrstane prema zadanom načinu razvrstavanja.</string>
<string name="faq_4_title">Kako mogu ubrzati video?</string> <string name="faq_4_title">Kako mogu ubrzati video?</string>
<string name="faq_4_text">Možete pritisnuti trenutačno vrijeme ili ukupno trajanje videozapisa na traci napretka, videozapis će se prema Vašem izboru pomicati unatrag ili prema naprijed.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Možete pritisnuti trenutačno vrijeme ili ukupno trajanje videozapisa na traci napretka, videozapis će se prema Vašem izboru pomicati unatrag ili prema naprijed.</string>
<string name="faq_5_title">Koja je razlika između skrivanja i izuzimanja mape?</string> <string name="faq_5_title">Koja je razlika između skrivanja i izuzimanja mape?</string>
<string name="faq_5_text">Izuzimanje sprječava prikaz mape samo u Jednostavnoj galeriji, a skrivanje radi na razini sustava i skriva mapu iz drugih galerija. Djeluje stvaranjem praznih \".nomedia\" datoteka u zadanoj mapi, koju možete ukloniti pomoću bilo kojeg upraviteljem datoteka.</string> <string name="faq_5_text">Izuzimanje sprječava prikaz mape samo u Jednostavnoj galeriji, a skrivanje radi na razini sustava i skriva mapu iz drugih galerija. Djeluje stvaranjem praznih \".nomedia\" datoteka u zadanoj mapi, koju možete ukloniti pomoću bilo kojeg upraviteljem datoteka.</string>
<string name="faq_6_title">Zašto se prikazuju mape s naslovnicama albuma i minijaturama slika?</string> <string name="faq_6_title">Zašto se prikazuju mape s naslovnicama albuma i minijaturama slika?</string>
@ -209,40 +212,40 @@
<string name="faq_11_text">Naravno, koristeći stavku izbornika \"Grupiraj po\" u prikazu sličica. Možete grupirati datoteke prema više kriterija, uključujući datum snimanja. Ako koristite funkciju "Prikaži sve sadržaje mape", možete ih grupirati i mapama.</string> <string name="faq_11_text">Naravno, koristeći stavku izbornika \"Grupiraj po\" u prikazu sličica. Možete grupirati datoteke prema više kriterija, uključujući datum snimanja. Ako koristite funkciju "Prikaži sve sadržaje mape", možete ih grupirati i mapama.</string>
<string name="faq_12_title">Sortiranje po datumu nije točno, kako to mogu ispraviti?</string> <string name="faq_12_title">Sortiranje po datumu nije točno, kako to mogu ispraviti?</string>
<string name="faq_12_text">Vjerojatno uzrok tome da su Vaše slike kopirane s drugih mjesta. U tom slučaju trebali biste dugo dodirnuti sličice prikazanih slika, a zatim u izborniku u gornjem desnom kutu, odabrati funkciju \'Ispravi vrijednost datuma snimanja\'.</string> <string name="faq_12_text">Vjerojatno uzrok tome da su Vaše slike kopirane s drugih mjesta. U tom slučaju trebali biste dugo dodirnuti sličice prikazanih slika, a zatim u izborniku u gornjem desnom kutu, odabrati funkciju \'Ispravi vrijednost datuma snimanja\'.</string>
<string name="faq_13_title">I see some color banding on the images. How can I improve the quality?</string> <string name="faq_13_title">Vidim nekakvno preklapanje boja na slikama. Kako mogu poboljšati kvalitetu?</string>
<string name="faq_13_text">The current solution for displaying images works fine in the vast majority of cases, but if you want even better image quality, you can enable the \"Show images in the highest possible quality\" at the app settings, in the \"Deep zoomable images\" section.</string> <string name="faq_13_text">Trenutno rješenje za prikazivanje slika dobro funkcionira u velikoj većini slučajeva, ali ako želite još bolju kvalitetu slike, možete omogućiti prikazivanje slika u najvišoj mogućoj kvaliteti u postavkama aplikacije, u odjeljku "Duboko zumirane slike".</string>
<string name="faq_14_title">I have hidden a file/folder. How can I unhide it?</string> <string name="faq_14_title">Sakrio sam datoteku/mapu. Kako je mogu otkriti?</string>
<string name="faq_14_text">You can either press the \"Temporarily show hidden items\" menu item at the main screen, or toggle \"Show hidden items\" in the app settings to see the hidden item. If you want to unhide it, just long press it and select \"Unhide\". Folders are hidden by adding a hidden \".nomedia\" file into them, you can delete the file with any file manager too.</string> <string name="faq_14_text">Možete pritisnuti stavku izbornika "Privremeno prikazati skrivene stavke" na glavnom zaslonu ili uključiti "Prikaži skrivene stavke" u postavkama aplikacije da biste vidjeli skrivenu stavku. Ako je želite otkriti, samo ju dugo pritisnite i odaberite "Otkrij". Mape su skrivene dodavanjem skrivene datoteke ".Nomedia", možete i izbrisati navedenu datoteku.</string>
<!-- Strings displayed only on Google Playstore. Optional, but good to have --> <!-- Strings displayed only on Google Playstore. Optional, but good to have -->
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">An offline gallery for managing your files without ads, respecting your privacy.</string> <string name="app_short_description">Izvanmrežna galerija za upravljanje datotekama,bez oglasa,poštujući privatnost.</string>
<string name="app_long_description"> <string name="app_long_description">
A highly customizable gallery capable of displaying many different image and video types including SVGs, RAWs, panoramic photos and videos. Vrlo prilagodljiva galerija koja može prikazivati različite vrste slika i videozapisa, uključujući SVG-ove, RAW-ove, panoramske fotografije i videozapise.
It is open source, contains no ads or unnecessary permissions. Otvorenog je koda, ne sadrži oglase ili nepotrebna dopuštenja.
Let\'s list some of its features worth mentioning: Navedimo neke od značajki koje vrijedi spomenuti:
1. Search 1. Pretraživanje
2. Slideshow 2. Dijaprojekcija
3. Notch support 3. Podrška za notch
4. Pinning folders to the top 4. Pričvršćivanje mapa na vrh
5. Filtering media files by type 5. Filtriranje medijskih datoteka prema vrsti
6. Recycle bin for easy file recovery 6. Koš za smeće za jednostavan oporavak datoteke
7. Fullscreen view orientation locking 7. Zaključavanje prikaza na cijelom zaslonu
8. Marking favorite files for easy access 8. Označavanje omiljenih datoteka radi lakog pristupa
9. Quick fullscreen media closing with down gesture 9. Brzi mediji na cijelom zaslonu zatvaraju se pokretom prema dolje
10. An editor for modifying images and applying filters 10. Urednik za izmjenu slika i primjenu filtara
11. Password protection for protecting hidden items or the whole app 11. Zaštita lozinkom za zaštitu skrivenih stavki ili cijele aplikacije
12. Changing the thumbnail column count with gestures or menu buttons 12. Promjena broja stupaca minijatura pomoću pokreta ili gumba izbornika
13. Customizable bottom actions at the fullscreen view for quick access 13. Prilagodljive akcije na dnu cijelog zaslona za brzi pristup
14. Showing extended details over fullscreen media with desired file properties 14. Prikazivanje proširenih detalja preko medija, preko cijelog zaslona sa željenim svojstvima datoteke
15. Several different ways of sorting or grouping items, both ascending and descending 15. Nekoliko različitih načina razvrstavanja ili grupiranja stavki, kako rastućih tako i silaznih
16. Hiding folders (affects other apps too), excluding folders (affects only Simple Gallery) 16. Skrivanje mapa (utječe i na druge aplikacije), izuzimanje mapa (utječe samo na jednostavnu galeriju)
The fingerprint permission is needed for locking either hidden item visibility, the whole app, or protecting files from being deleted. Dopuštenje za otisak prsta potreban je za zaključavanje vidljivosti skrivenih stavki, cijele aplikacije ili za zaštitu datoteka od brisanja.
This app is just one piece of a bigger series of apps. You can find the rest of them at https://www.simplemobiletools.com Ova je aplikacija samo dio većeg broja aplikacija. Možete pronaći ostatak na https://www.simplemobiletools.com
</string> </string>
<!-- <!--

View file

@ -117,6 +117,7 @@
<string name="loop_slideshow">Diavetítés ismétlése</string> <string name="loop_slideshow">Diavetítés ismétlése</string>
<string name="slideshow_ended">A diavetítés vége</string> <string name="slideshow_ended">A diavetítés vége</string>
<string name="no_media_for_slideshow">A diavetítéshez nem található média</string> <string name="no_media_for_slideshow">A diavetítéshez nem található média</string>
<string name="use_crossfade_animation">Animáció átmenet használat</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Nézet típus változtatása</string> <string name="change_view_type">Nézet típus változtatása</string>
@ -171,6 +172,7 @@
<string name="show_highest_quality">Mutassa a képeket a lehető legjobb minőségben</string> <string name="show_highest_quality">Mutassa a képeket a lehető legjobb minőségben</string>
<string name="show_recycle_bin_last">Mutassa a Lomtárat a fő képernyő utolsó elemeként</string> <string name="show_recycle_bin_last">Mutassa a Lomtárat a fő képernyő utolsó elemeként</string>
<string name="allow_down_gesture">Engedélyezi a teljes képernyős nézetet a lefelé mozdulattal</string> <string name="allow_down_gesture">Engedélyezi a teljes képernyős nézetet a lefelé mozdulattal</string>
<string name="allow_one_to_one_zoom">Engedélyezi az 1:1 nagyítást két dupla érintéssel</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniatűrök</string> <string name="thumbnails">Miniatűrök</string>
@ -192,7 +194,8 @@ A következő alkalommal, amikor megpróbál megnyitni egy képet vagy videót,
<string name="faq_3_title">Hogyan állíthatok be egy albumot úgy, hogy mindig felül legyen?</string> <string name="faq_3_title">Hogyan állíthatok be egy albumot úgy, hogy mindig felül legyen?</string>
<string name="faq_3_text">Hosszan nyomja meg a kívánt albumot, és válassza ki a Kitűzés ikont a művelet menüben, ami rögzíti felülre. Többféle mappát is kitűzhet, ezeket az elemeket az alapértelmezett rendezési mód szerint rendezi.</string> <string name="faq_3_text">Hosszan nyomja meg a kívánt albumot, és válassza ki a Kitűzés ikont a művelet menüben, ami rögzíti felülre. Többféle mappát is kitűzhet, ezeket az elemeket az alapértelmezett rendezési mód szerint rendezi.</string>
<string name="faq_4_title">Hogyan tudom előre tekerni a videókat?</string> <string name="faq_4_title">Hogyan tudom előre tekerni a videókat?</string>
<string name="faq_4_text">A keresősáv közelében lévő aktuális vagy maximális időtartamú szövegekre kattintva előre vagy hátra mozgathatja a videót.</string> <string name="faq_4_text">Húzhatja az ujját vízszintesen a videolejátszón, vagy kattintson az aktuális vagy a max. időtartam szövegekre a keresősáv közelében. Ez visszafelé vagy előre mozgatja a videót.</string>
<string name="faq_4_text_old">Húzhatja az ujját vízszintesen a videolejátszón, vagy kattintson az aktuális vagy a max. időtartam szövegekre a keresősáv közelében. Ez visszafelé vagy előre mozgatja a videót.</string>
<string name="faq_5_title">Mi a különbség a mappa elrejtése és kizárása között?</string> <string name="faq_5_title">Mi a különbség a mappa elrejtése és kizárása között?</string>
<string name="faq_5_text">A Kizárás megakadályozza, hogy a mappát a Simple Gallery megjelenítse, az Elrejtés pedig rendszer szinten működik, és elrejti a mappát más galériákból is. Úgy működik, hogy létrehoz egy üres \". nomedia\" nevű fájlt az adott mappában, amelyet bármikor eltávolíthat bármilyen fájlkezelővel is.</string> <string name="faq_5_text">A Kizárás megakadályozza, hogy a mappát a Simple Gallery megjelenítse, az Elrejtés pedig rendszer szinten működik, és elrejti a mappát más galériákból is. Úgy működik, hogy létrehoz egy üres \". nomedia\" nevű fájlt az adott mappában, amelyet bármikor eltávolíthat bármilyen fájlkezelővel is.</string>
<string name="faq_6_title">Miért jelennek meg a zenei borítóval vagy matricával rendelkező mappák?</string> <string name="faq_6_title">Miért jelennek meg a zenei borítóval vagy matricával rendelkező mappák?</string>
@ -217,7 +220,7 @@ Ezzel csak a kiválasztott mappák láthatók, mivel a kizárás és a befoglal
<!-- Strings displayed only on Google Playstore. Optional, but good to have --> <!-- Strings displayed only on Google Playstore. Optional, but good to have -->
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">An offline gallery for managing your files without ads, respecting your privacy.</string> <string name="app_short_description">Egy offline galéria a fájlok hirdetés nélküli kezelésére.</string>
<string name="app_long_description"> <string name="app_long_description">
Nagyon testreszabható galéria, amely alkalmas számos különböző kép- és videotípus megjelenítésére, beleértve az SVG-ket, RAW-t, panorámaképeket és videókat. Nagyon testreszabható galéria, amely alkalmas számos különböző kép- és videotípus megjelenítésére, beleértve az SVG-ket, RAW-t, panorámaképeket és videókat.

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Slideshow tanpa henti</string> <string name="loop_slideshow">Slideshow tanpa henti</string>
<string name="slideshow_ended">Slideshow berakhir</string> <string name="slideshow_ended">Slideshow berakhir</string>
<string name="no_media_for_slideshow">Tidak ditemukan media untuk slideshow</string> <string name="no_media_for_slideshow">Tidak ditemukan media untuk slideshow</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Ubah jenis tampilan</string> <string name="change_view_type">Ubah jenis tampilan</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Tampilkan gambar dalam kualitas tertinggi</string> <string name="show_highest_quality">Tampilkan gambar dalam kualitas tertinggi</string>
<string name="show_recycle_bin_last">Tampilkan Sampah sebagai item terakhir di layar utama</string> <string name="show_recycle_bin_last">Tampilkan Sampah sebagai item terakhir di layar utama</string>
<string name="allow_down_gesture">Izinkan keluar dari layar penuh dengan menggeser kebawah</string> <string name="allow_down_gesture">Izinkan keluar dari layar penuh dengan menggeser kebawah</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Thumbnail</string> <string name="thumbnails">Thumbnail</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Bagaimana agar sebuah album selalu muncul paling atas di daftar?</string> <string name="faq_3_title">Bagaimana agar sebuah album selalu muncul paling atas di daftar?</string>
<string name="faq_3_text">Anda bisa menekan lama album tersebut dan pilih ikon Pin di menu tindakan, itu akan menaruhnya di atas daftar. Anda juga bisa menyematkan beberapa folder, item yang di-pin akan diurutkan berdasarkan metode urutan default.</string> <string name="faq_3_text">Anda bisa menekan lama album tersebut dan pilih ikon Pin di menu tindakan, itu akan menaruhnya di atas daftar. Anda juga bisa menyematkan beberapa folder, item yang di-pin akan diurutkan berdasarkan metode urutan default.</string>
<string name="faq_4_title">Bagaimana cara mempercepat laju video?</string> <string name="faq_4_title">Bagaimana cara mempercepat laju video?</string>
<string name="faq_4_text">Anda bisa mengklik teks durasi saat ini/maksimal di dekat penggeser durasi, itu akan memajukan atau memundurkan video.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Anda bisa mengklik teks durasi saat ini/maksimal di dekat penggeser durasi, itu akan memajukan atau memundurkan video.</string>
<string name="faq_5_title">Apa perbedaan antara menyembunyikan dan mengecualikan folder?</string> <string name="faq_5_title">Apa perbedaan antara menyembunyikan dan mengecualikan folder?</string>
<string name="faq_5_text">Mengecualikan tidak akan menampilkan folder di Simple Gallery, sedangkan Sembunyikan bekerja sesuai aturan sistem dan akan menyembunyikan folder juga dari aplikasi galeri yang lain. Cara kerjanya dengan membuat file \".nomedia\" kosong pada folder yang diinginkan, yang bisa Anda hapus juga dengan aplikasi file manager.</string> <string name="faq_5_text">Mengecualikan tidak akan menampilkan folder di Simple Gallery, sedangkan Sembunyikan bekerja sesuai aturan sistem dan akan menyembunyikan folder juga dari aplikasi galeri yang lain. Cara kerjanya dengan membuat file \".nomedia\" kosong pada folder yang diinginkan, yang bisa Anda hapus juga dengan aplikasi file manager.</string>
<string name="faq_6_title">Mengapa folder dengan gambar album musik atau stiker muncul?</string> <string name="faq_6_title">Mengapa folder dengan gambar album musik atau stiker muncul?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Ripeti presentazione</string> <string name="loop_slideshow">Ripeti presentazione</string>
<string name="slideshow_ended">La presentazione è terminata</string> <string name="slideshow_ended">La presentazione è terminata</string>
<string name="no_media_for_slideshow">Nessun file trovato per la presentazione</string> <string name="no_media_for_slideshow">Nessun file trovato per la presentazione</string>
<string name="use_crossfade_animation">Usa le animazioni in dissolvenza</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Cambia modalità visualizzazione</string> <string name="change_view_type">Cambia modalità visualizzazione</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Mostra le immagini alla massima qualità possibile</string> <string name="show_highest_quality">Mostra le immagini alla massima qualità possibile</string>
<string name="show_recycle_bin_last">Mostra il cestino come ultimo elemento nella schermata principale</string> <string name="show_recycle_bin_last">Mostra il cestino come ultimo elemento nella schermata principale</string>
<string name="allow_down_gesture">Chiudi la visuale a schermo intero con un gesto verso il basso</string> <string name="allow_down_gesture">Chiudi la visuale a schermo intero con un gesto verso il basso</string>
<string name="allow_one_to_one_zoom">Permetti l\'ingrandimento 1:1 con un doppio tasto</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Anteprime</string> <string name="thumbnails">Anteprime</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Come posso fare apparire un album sempre in cima?</string> <string name="faq_3_title">Come posso fare apparire un album sempre in cima?</string>
<string name="faq_3_text">Si può toccare a lungo l\'album desiderato e selezionare l\'icona puntina nel menù azioni, ciò lo fisserà in cima. Si possono anche fissare varie cartelle, gli elementi fissati saranno ordinati dal metodo di ordinamento predefinito.</string> <string name="faq_3_text">Si può toccare a lungo l\'album desiderato e selezionare l\'icona puntina nel menù azioni, ciò lo fisserà in cima. Si possono anche fissare varie cartelle, gli elementi fissati saranno ordinati dal metodo di ordinamento predefinito.</string>
<string name="faq_4_title">Come avanzo velocemente nei video?</string> <string name="faq_4_title">Come avanzo velocemente nei video?</string>
<string name="faq_4_text">Si può cliccare sui testi di durata attuale o massima vicino alla barra di avanzamento, ciò avanzerà o riavvolgerà il video.</string> <string name="faq_4_text">Si possono trascinare le proprie dita orrizontalmente sul video, oppure cliccando i testi accanto alla barra di avanzamento. In questo modo il video andrà avanti o indietro.</string>
<string name="faq_4_text_old">Si può cliccare sui testi di durata attuale o massima vicino alla barra di avanzamento, ciò avanzerà o riavvolgerà il video.</string>
<string name="faq_5_title">Che differenza c\'è tra nascondere ed escludere una cartella?</string> <string name="faq_5_title">Che differenza c\'è tra nascondere ed escludere una cartella?</string>
<string name="faq_5_text">Escludere impedisce la visualizzazione della cartella solo in Semplice Galleria, mentre nascondere ha effetto in tutto il sistema e nasconde la cartella anche alle altre gallerie. Funziona creando un file vuoto \".nomedia\" nella cartella in questione, si possono anche rimuovere successivamente con qualsiasi gestore dei file.</string> <string name="faq_5_text">Escludere impedisce la visualizzazione della cartella solo in Semplice Galleria, mentre nascondere ha effetto in tutto il sistema e nasconde la cartella anche alle altre gallerie. Funziona creando un file vuoto \".nomedia\" nella cartella in questione, si possono anche rimuovere successivamente con qualsiasi gestore dei file.</string>
<string name="faq_6_title">Perchè vengono mostrate cartelle con copertine o adesivi di musica?</string> <string name="faq_6_title">Perchè vengono mostrate cartelle con copertine o adesivi di musica?</string>
@ -222,7 +225,6 @@
L\'applicazione non contiene pubblicità o permessi non necessari; è completamente opensource e la si può personalizzare con i propri colori preferiti. L\'applicazione non contiene pubblicità o permessi non necessari; è completamente opensource e la si può personalizzare con i propri colori preferiti.
Alcune funzionalità che vale la pena accennare: Alcune funzionalità che vale la pena accennare:
1. Ricerca 1. Ricerca
2. Presentazione 2. Presentazione

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">スライドショーをリピート再生する</string> <string name="loop_slideshow">スライドショーをリピート再生する</string>
<string name="slideshow_ended">スライドショーが終了しました</string> <string name="slideshow_ended">スライドショーが終了しました</string>
<string name="no_media_for_slideshow">スライドショーに表示するメディアがありません</string> <string name="no_media_for_slideshow">スライドショーに表示するメディアがありません</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">表示形式の変更</string> <string name="change_view_type">表示形式の変更</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">可能な限り高品質で画像を表示</string> <string name="show_highest_quality">可能な限り高品質で画像を表示</string>
<string name="show_recycle_bin_last">ごみ箱をメイン画面の最後に表示</string> <string name="show_recycle_bin_last">ごみ箱をメイン画面の最後に表示</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">サムネイル設定</string> <string name="thumbnails">サムネイル設定</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">動画を早送りするにはどうすればよいですか?</string> <string name="faq_4_title">動画を早送りするにはどうすればよいですか?</string>
<string name="faq_4_text">シークバーの隣にある経過時間または最大時間の表示を押すごとに早送り、または巻き戻しが作動します。</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">シークバーの隣にある経過時間または最大時間の表示を押すごとに早送り、または巻き戻しが作動します。</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">슬라이드 쇼 반복</string> <string name="loop_slideshow">슬라이드 쇼 반복</string>
<string name="slideshow_ended">슬라이드 쇼 종료</string> <string name="slideshow_ended">슬라이드 쇼 종료</string>
<string name="no_media_for_slideshow">슬라이드 쇼를 위한 미디어를 찾을 수 없음</string> <string name="no_media_for_slideshow">슬라이드 쇼를 위한 미디어를 찾을 수 없음</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">보기방식 변경</string> <string name="change_view_type">보기방식 변경</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Show images in the highest possible quality</string> <string name="show_highest_quality">Show images in the highest possible quality</string>
<string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string> <string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">섬네일</string> <string name="thumbnails">섬네일</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Klipuoti skaidrių demonstraciją</string> <string name="loop_slideshow">Klipuoti skaidrių demonstraciją</string>
<string name="slideshow_ended">Skaidrių demonstracija pasibaigė</string> <string name="slideshow_ended">Skaidrių demonstracija pasibaigė</string>
<string name="no_media_for_slideshow">Nerasta medijos skaidrių demonstracijai</string> <string name="no_media_for_slideshow">Nerasta medijos skaidrių demonstracijai</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Keisti peržiūros tipą</string> <string name="change_view_type">Keisti peržiūros tipą</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Show images in the highest possible quality</string> <string name="show_highest_quality">Show images in the highest possible quality</string>
<string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string> <string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniatiūros</string> <string name="thumbnails">Miniatiūros</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Kaip aš galiu padaryti albumą visada rodomą viršuje?</string> <string name="faq_3_title">Kaip aš galiu padaryti albumą visada rodomą viršuje?</string>
<string name="faq_3_text">Galite ilgai paspausti norimą albumą ir pasirinkti "Prisegti" piktogramą, esančią meniu "Veiksmo meniu", viršuje. Galite prisegti kelis aplankus, prisegti elementai bus rūšiuojami pagal numatytąjį rūšiavimo metodą.</string> <string name="faq_3_text">Galite ilgai paspausti norimą albumą ir pasirinkti "Prisegti" piktogramą, esančią meniu "Veiksmo meniu", viršuje. Galite prisegti kelis aplankus, prisegti elementai bus rūšiuojami pagal numatytąjį rūšiavimo metodą.</string>
<string name="faq_4_title">Kaip galėčiau greitai prasukti vaizdo įrašus?</string> <string name="faq_4_title">Kaip galėčiau greitai prasukti vaizdo įrašus?</string>
<string name="faq_4_text">Galite spustelėti tekstus šalia slinkties juostos, kad būtų perkeltas vaizdo įrašas atgal arba į priekį.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Galite spustelėti tekstus šalia slinkties juostos, kad būtų perkeltas vaizdo įrašas atgal arba į priekį.</string>
<string name="faq_5_title">Koks skirtumas tarp slėpimo ir išskyrimo iš aplanko?</string> <string name="faq_5_title">Koks skirtumas tarp slėpimo ir išskyrimo iš aplanko?</string>
<string name="faq_5_text">Išskyrimas neleidžia rodyti aplanko tik paprastoje galerijoje, tuo tarpu slėpimas slepia aplanką iš kitų galerijų. Tai veikia, sukuriant tuščią \ ". Nomedia \" bylą tam tikrame aplanke, kurį vėliau galite pašalinti bet kuria bylų tvarkykle.</string> <string name="faq_5_text">Išskyrimas neleidžia rodyti aplanko tik paprastoje galerijoje, tuo tarpu slėpimas slepia aplanką iš kitų galerijų. Tai veikia, sukuriant tuščią \ ". Nomedia \" bylą tam tikrame aplanke, kurį vėliau galite pašalinti bet kuria bylų tvarkykle.</string>
<string name="faq_6_title">Kodėl pasirodo aplankai su muzikos viršeliu ar lipdukais?</string> <string name="faq_6_title">Kodėl pasirodo aplankai su muzikos viršeliu ar lipdukais?</string>

View file

@ -89,7 +89,7 @@
<string name="flip_vertically">Speilvend vertikalt</string> <string name="flip_vertically">Speilvend vertikalt</string>
<string name="edit_with">Rediger med</string> <string name="edit_with">Rediger med</string>
<string name="free_aspect_ratio">Fri</string> <!-- available as an option: 1:1, 4:3, 16:9, free --> <string name="free_aspect_ratio">Fri</string> <!-- available as an option: 1:1, 4:3, 16:9, free -->
<string name="other_aspect_ratio">Other</string> <!-- available as an option: 1:1, 4:3, 16:9, free, other --> <string name="other_aspect_ratio">Annen</string> <!-- available as an option: 1:1, 4:3, 16:9, free, other -->
<!-- Set wallpaper --> <!-- Set wallpaper -->
<string name="simple_wallpaper">Bakgrunnsbilde</string> <string name="simple_wallpaper">Bakgrunnsbilde</string>
@ -116,6 +116,7 @@
<string name="loop_slideshow">Gjenta lysbildeshow</string> <string name="loop_slideshow">Gjenta lysbildeshow</string>
<string name="slideshow_ended">Lysbildeshowet er slutt</string> <string name="slideshow_ended">Lysbildeshowet er slutt</string>
<string name="no_media_for_slideshow">Ingen media for lysbildeshowet er funnet</string> <string name="no_media_for_slideshow">Ingen media for lysbildeshowet er funnet</string>
<string name="use_crossfade_animation">Bruk krysstoningsanimasjon</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Endre visningstype</string> <string name="change_view_type">Endre visningstype</string>
@ -133,8 +134,8 @@
<string name="by_extension">Endelse</string> <string name="by_extension">Endelse</string>
<!-- Widgets --> <!-- Widgets -->
<string name="folder_on_widget">Folder shown on the widget:</string> <string name="folder_on_widget">Mappe vist på modulen:</string>
<string name="show_folder_name">Show folder name</string> <string name="show_folder_name">Vis mappenavn</string>
<!-- Settings --> <!-- Settings -->
<string name="autoplay_videos">Avspill videoer automatisk</string> <string name="autoplay_videos">Avspill videoer automatisk</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Vis bilder i høyest mulig kvalitet</string> <string name="show_highest_quality">Vis bilder i høyest mulig kvalitet</string>
<string name="show_recycle_bin_last">Vis papirkurven som siste element på hovedskjermen</string> <string name="show_recycle_bin_last">Vis papirkurven som siste element på hovedskjermen</string>
<string name="allow_down_gesture">Tillat lukking av mediavisningen med en nedoverbevegelse</string> <string name="allow_down_gesture">Tillat lukking av mediavisningen med en nedoverbevegelse</string>
<string name="allow_one_to_one_zoom">Tillat å zoome 1:1 med to dobbeltrykk</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Minibilder</string> <string name="thumbnails">Minibilder</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Voorstelling herhalen</string> <string name="loop_slideshow">Voorstelling herhalen</string>
<string name="slideshow_ended">De diavoorstelling is beëindigd</string> <string name="slideshow_ended">De diavoorstelling is beëindigd</string>
<string name="no_media_for_slideshow">Geen media gevonden voor diavoorstelling</string> <string name="no_media_for_slideshow">Geen media gevonden voor diavoorstelling</string>
<string name="use_crossfade_animation">Crossfade-animaties gebruiken</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Weergave</string> <string name="change_view_type">Weergave</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Afbeeldingen in de hoogst mogelijke kwaliteit weergeven</string> <string name="show_highest_quality">Afbeeldingen in de hoogst mogelijke kwaliteit weergeven</string>
<string name="show_recycle_bin_last">Prullenbak als laatste item tonen</string> <string name="show_recycle_bin_last">Prullenbak als laatste item tonen</string>
<string name="allow_down_gesture">Naar beneden vegen om volledig scherm af te sluiten</string> <string name="allow_down_gesture">Naar beneden vegen om volledig scherm af te sluiten</string>
<string name="allow_one_to_one_zoom">1:1 zoomen na 2x dubbelklikken</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniatuurvoorbeelden</string> <string name="thumbnails">Miniatuurvoorbeelden</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
   <string name="loop_slideshow">Zapętlaj</string>    <string name="loop_slideshow">Zapętlaj</string>
<string name="slideshow_ended">Pokaz slajdów zakończony</string> <string name="slideshow_ended">Pokaz slajdów zakończony</string>
<string name="no_media_for_slideshow">Nie znalazłem multimediów do pokazu slajdów</string> <string name="no_media_for_slideshow">Nie znalazłem multimediów do pokazu slajdów</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
   <string name="change_view_type">Zmień typ widoku</string>    <string name="change_view_type">Zmień typ widoku</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Pokazuj obrazy w najwyższej możliwej rozdzielczości</string> <string name="show_highest_quality">Pokazuj obrazy w najwyższej możliwej rozdzielczości</string>
<string name="show_recycle_bin_last">Pokazuj kosz jako ostatni element na głównym ekranie</string> <string name="show_recycle_bin_last">Pokazuj kosz jako ostatni element na głównym ekranie</string>
<string name="allow_down_gesture">Zezwalaj na zamykanie pełnoekranowego widoku gestem pociągnięcia w dół</string> <string name="allow_down_gesture">Zezwalaj na zamykanie pełnoekranowego widoku gestem pociągnięcia w dół</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
   <string name="thumbnails">Miniatury</string>    <string name="thumbnails">Miniatury</string>
@ -190,7 +192,8 @@
   <string name="faq_3_title">Jak sprawić, aby album(y) zawsze pojawiał(y) się na górze?</string>    <string name="faq_3_title">Jak sprawić, aby album(y) zawsze pojawiał(y) się na górze?</string>
   <string name="faq_3_text">Przytrzymaj album(y) i wybierz ikonę przypięcia w pasku akcji.</string>    <string name="faq_3_text">Przytrzymaj album(y) i wybierz ikonę przypięcia w pasku akcji.</string>
   <string name="faq_4_title">Jak mogę przwijać filmy?</string>    <string name="faq_4_title">Jak mogę przwijać filmy?</string>
   <string name="faq_4_text">Kliknij na napisie z czasem trwania filmu, bądź tym z obecnym momentem filmu.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
   <string name="faq_4_text_old">Kliknij na napisie z czasem trwania filmu, bądź tym z obecnym momentem filmu.</string>
   <string name="faq_5_title">Jaka jest różnica między ukryciem, a wykluczeniem folderu?</string>    <string name="faq_5_title">Jaka jest różnica między ukryciem, a wykluczeniem folderu?</string>
   <string name="faq_5_text">Wykluczenie działa tylko w obrębie niniejszej aplikacji (wszędzie indziej pliki są normalnie widoczne), ukrywanie - w obrębie całego systemu (nie widać ich nigdzie), dodawany jest wtedy do folderu pusty plik \'.nomedia\', który możesz usunąć w dowolnym menedżerze plików.</string>    <string name="faq_5_text">Wykluczenie działa tylko w obrębie niniejszej aplikacji (wszędzie indziej pliki są normalnie widoczne), ukrywanie - w obrębie całego systemu (nie widać ich nigdzie), dodawany jest wtedy do folderu pusty plik \'.nomedia\', który możesz usunąć w dowolnym menedżerze plików.</string>
   <string name="faq_6_title">Dlaczego pokazują mi się foldery z okładkami do piosenek i tym podobne rzeczy?</string>    <string name="faq_6_title">Dlaczego pokazują mi się foldery z okładkami do piosenek i tym podobne rzeczy?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Apresentação em ciclo</string> <string name="loop_slideshow">Apresentação em ciclo</string>
<string name="slideshow_ended">Fim da apresentação</string> <string name="slideshow_ended">Fim da apresentação</string>
<string name="no_media_for_slideshow">Nenhuma mídia encontrada para a apresentação</string> <string name="no_media_for_slideshow">Nenhuma mídia encontrada para a apresentação</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Alterar modo de visualização</string> <string name="change_view_type">Alterar modo de visualização</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Show images in the highest possible quality</string> <string name="show_highest_quality">Show images in the highest possible quality</string>
<string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string> <string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniaturas</string> <string name="thumbnails">Miniaturas</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Apresentação em ciclo</string> <string name="loop_slideshow">Apresentação em ciclo</string>
<string name="slideshow_ended">Apresentação terminada</string> <string name="slideshow_ended">Apresentação terminada</string>
<string name="no_media_for_slideshow">Não foram encontrados ficheiros para a apresentação</string> <string name="no_media_for_slideshow">Não foram encontrados ficheiros para a apresentação</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Tipo de exibição</string> <string name="change_view_type">Tipo de exibição</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Mostrar fotos com a melhor qualidade possível</string> <string name="show_highest_quality">Mostrar fotos com a melhor qualidade possível</string>
<string name="show_recycle_bin_last">Mostrar a reciclagem como o último item do ecrã principal</string> <string name="show_recycle_bin_last">Mostrar a reciclagem como o último item do ecrã principal</string>
<string name="allow_down_gesture">Sair de ecrã completo com um gesto para baixo</string> <string name="allow_down_gesture">Sair de ecrã completo com um gesto para baixo</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniaturas</string> <string name="thumbnails">Miniaturas</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Зациклить</string> <string name="loop_slideshow">Зациклить</string>
<string name="slideshow_ended">Слайдшоу завершилось</string> <string name="slideshow_ended">Слайдшоу завершилось</string>
<string name="no_media_for_slideshow">Медиафайлов для слайдшоу не найдено</string> <string name="no_media_for_slideshow">Медиафайлов для слайдшоу не найдено</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Вид</string> <string name="change_view_type">Вид</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Показывать изображения с максимально высоким качеством</string> <string name="show_highest_quality">Показывать изображения с максимально высоким качеством</string>
<string name="show_recycle_bin_last">Показывать корзину как последний элемент на главном экране</string> <string name="show_recycle_bin_last">Показывать корзину как последний элемент на главном экране</string>
<string name="allow_down_gesture">Выходить из полноэкранного режима жестом вниз</string> <string name="allow_down_gesture">Выходить из полноэкранного режима жестом вниз</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Миниатюры</string> <string name="thumbnails">Миниатюры</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Как я могу сделать альбом всегда отображающимся сверху?</string> <string name="faq_3_title">Как я могу сделать альбом всегда отображающимся сверху?</string>
<string name="faq_3_text">Вы можете длительным нажатием на желаемый альбом открыть меню действий в нём выбрать пункт \"Закрепить\". Можно закрепить несколько альбомов (папок); прикреплённые элементы будут отсортированы по методу сортировки по умолчанию.</string> <string name="faq_3_text">Вы можете длительным нажатием на желаемый альбом открыть меню действий в нём выбрать пункт \"Закрепить\". Можно закрепить несколько альбомов (папок); прикреплённые элементы будут отсортированы по методу сортировки по умолчанию.</string>
<string name="faq_4_title">Как ускорить перемотку видео?</string> <string name="faq_4_title">Как ускорить перемотку видео?</string>
<string name="faq_4_text">Вы можете нажать на цифры текущего положения или максимальной длительности видео рядом с панелью поиска, что приведёт к перемещению позиции воспроизведения либо назад, либо вперёд.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Вы можете нажать на цифры текущего положения или максимальной длительности видео рядом с панелью поиска, что приведёт к перемещению позиции воспроизведения либо назад, либо вперёд.</string>
<string name="faq_5_title">В чём разница между скрытием и исключением папки?</string> <string name="faq_5_title">В чём разница между скрытием и исключением папки?</string>
<string name="faq_5_text">Исключение запрещает отображение папки только в Simple Gallery, в то время как скрытие работает системно и скрывает папку из других галерей. Это достигается путём создания пустого файла \".nomedia\" в данной папке, который впоследствии можно удалить любым файловым менеджером.</string> <string name="faq_5_text">Исключение запрещает отображение папки только в Simple Gallery, в то время как скрытие работает системно и скрывает папку из других галерей. Это достигается путём создания пустого файла \".nomedia\" в данной папке, который впоследствии можно удалить любым файловым менеджером.</string>
<string name="faq_6_title">Почему отображаются папки с музыкальными обложками?</string> <string name="faq_6_title">Почему отображаются папки с музыкальными обложками?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Automaticky reštartovať prezentáciu</string> <string name="loop_slideshow">Automaticky reštartovať prezentáciu</string>
<string name="slideshow_ended">Prezentácia skončila</string> <string name="slideshow_ended">Prezentácia skončila</string>
<string name="no_media_for_slideshow">Pre prezentáciu sa nenašli žiadne vhodné súbory</string> <string name="no_media_for_slideshow">Pre prezentáciu sa nenašli žiadne vhodné súbory</string>
<string name="use_crossfade_animation">Použiť prelínacie animácie</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Zmeniť typ zobrazenia</string> <string name="change_view_type">Zmeniť typ zobrazenia</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Zobrazovať obrázky v najlepšej možnej kvalite</string> <string name="show_highest_quality">Zobrazovať obrázky v najlepšej možnej kvalite</string>
<string name="show_recycle_bin_last">Zobraziť odpadkový kôš ako poslednú položku na hlavnej obrazovke</string> <string name="show_recycle_bin_last">Zobraziť odpadkový kôš ako poslednú položku na hlavnej obrazovke</string>
<string name="allow_down_gesture">Povoliť zatváranie celoobrazovkového režimu potiahnutím prsta dole</string> <string name="allow_down_gesture">Povoliť zatváranie celoobrazovkového režimu potiahnutím prsta dole</string>
<string name="allow_one_to_one_zoom">Povoliť 1:1 priblíženie dvojnásobným dvojklikom</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Náhľady</string> <string name="thumbnails">Náhľady</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Ako môžem dosiahnuť, aby bol daný album stále zobrazený prvý?</string> <string name="faq_3_title">Ako môžem dosiahnuť, aby bol daný album stále zobrazený prvý?</string>
<string name="faq_3_text">Môžete označiť daný priečinok dlhým podržaním a zvoliť tlačidlo s obrázkom pripinačky, to ho pripne na vrch. Môžete pripnúť aj viacero priečinkov, budú zoradené podľa zvoleného radenia.</string> <string name="faq_3_text">Môžete označiť daný priečinok dlhým podržaním a zvoliť tlačidlo s obrázkom pripinačky, to ho pripne na vrch. Môžete pripnúť aj viacero priečinkov, budú zoradené podľa zvoleného radenia.</string>
<string name="faq_4_title">Ako viem posunúť video vpred?</string> <string name="faq_4_title">Ako viem posunúť video vpred?</string>
<string name="faq_4_text">Môžete kliknúť na texty súčasnej, alebo maximálnej dĺžky videa, ktoré sú vedľa indikátora súčasného progresu. To posunie video buď vpred, alebo vzad.</string> <string name="faq_4_text">Môžete to dosiahnuť vodorovným potiahnutím prsta cez video prehrávač, alebo kliknúť na texty súčasnej, alebo maximálnej dĺžky videa, ktoré sú vedľa indikátora súčasného progresu. To posunie video buď vpred, alebo vzad.</string>
<string name="faq_4_text_old">Môžete kliknúť na texty súčasnej, alebo maximálnej dĺžky videa, ktoré sú vedľa indikátora súčasného progresu. To posunie video buď vpred, alebo vzad.</string>
<string name="faq_5_title">Aký je rozdiel medzi Skrytím a Vylúčením priečinka?</string> <string name="faq_5_title">Aký je rozdiel medzi Skrytím a Vylúčením priečinka?</string>
<string name="faq_5_text">Kým vylúčenie predíde zobrazeniu priečinka iba vrámci Jednoduchej Galérie, skrytie ho ukryje vrámci celého systému, teda to ovplyvní aj ostatné galérie. Skrytie funguje pomocou vytvorenia prázdneho \".nomedia\" súboru v danom priečinku, ktorý viete vymazať aj nejakým správcom súborov.</string> <string name="faq_5_text">Kým vylúčenie predíde zobrazeniu priečinka iba vrámci Jednoduchej Galérie, skrytie ho ukryje vrámci celého systému, teda to ovplyvní aj ostatné galérie. Skrytie funguje pomocou vytvorenia prázdneho \".nomedia\" súboru v danom priečinku, ktorý viete vymazať aj nejakým správcom súborov.</string>
<string name="faq_6_title">Prečo sa mi zobrazujú priečinky s obalmi hudobných albumov, alebo nálepkami?</string> <string name="faq_6_title">Prečo sa mi zobrazujú priečinky s obalmi hudobných albumov, alebo nálepkami?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Ponavljaj diaprojekcijo</string> <string name="loop_slideshow">Ponavljaj diaprojekcijo</string>
<string name="slideshow_ended">Diaprojekcija se je zaključila</string> <string name="slideshow_ended">Diaprojekcija se je zaključila</string>
<string name="no_media_for_slideshow">Ne najdem datotek za diaprojekcijo</string> <string name="no_media_for_slideshow">Ne najdem datotek za diaprojekcijo</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Spremeni tip pogleda</string> <string name="change_view_type">Spremeni tip pogleda</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Prikaži slike v največji možni kvaliteti</string> <string name="show_highest_quality">Prikaži slike v največji možni kvaliteti</string>
<string name="show_recycle_bin_last">Prikaži Koš kot zadnji element na glavnem zaslonu</string> <string name="show_recycle_bin_last">Prikaži Koš kot zadnji element na glavnem zaslonu</string>
<string name="allow_down_gesture">Dovoli zapiranje celozaslonskega načina z gesto navzdol</string> <string name="allow_down_gesture">Dovoli zapiranje celozaslonskega načina z gesto navzdol</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Sličice</string> <string name="thumbnails">Sličice</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Kako nastaviti, da se določen album vedno prikaže na vrhu?</string> <string name="faq_3_title">Kako nastaviti, da se določen album vedno prikaže na vrhu?</string>
<string name="faq_3_text">Z dolgim pritiskom na album se vam prikaže meni, v katerem je na voljo bucika, s katero pripnete album na željeno mesto. Na ta način lahko pripnete več albumov, ki bodo razvrščeni v skladu s privzetim načinom razvrščanja.</string> <string name="faq_3_text">Z dolgim pritiskom na album se vam prikaže meni, v katerem je na voljo bucika, s katero pripnete album na željeno mesto. Na ta način lahko pripnete več albumov, ki bodo razvrščeni v skladu s privzetim načinom razvrščanja.</string>
<string name="faq_4_title">Ali lahko hitro predvajam videoposnetke?</string> <string name="faq_4_title">Ali lahko hitro predvajam videoposnetke?</string>
<string name="faq_4_text">Lahko kliknete na napis trenutnega ali maksimalnega trajanja poleg vrstice položaja, kar premakne/preskoči video naprej ali nazaj.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Lahko kliknete na napis trenutnega ali maksimalnega trajanja poleg vrstice položaja, kar premakne/preskoči video naprej ali nazaj.</string>
<string name="faq_5_title">Kakšna je razlika med skrivanjem in izključevanjem mape?</string> <string name="faq_5_title">Kakšna je razlika med skrivanjem in izključevanjem mape?</string>
<string name="faq_5_text">Izključevanje mape jo skrije le v Simple galeriji, medtem ko jo skrivanje skrije tudi v ostalih aplikacijah oz. galerijah. Deluje tako, da kreira prazno \".nomedia\" datoteko v izbrani mapi, katero lahko odstranite tudi s katerimkoli urejevalnikom datotek.</string> <string name="faq_5_text">Izključevanje mape jo skrije le v Simple galeriji, medtem ko jo skrivanje skrije tudi v ostalih aplikacijah oz. galerijah. Deluje tako, da kreira prazno \".nomedia\" datoteko v izbrani mapi, katero lahko odstranite tudi s katerimkoli urejevalnikom datotek.</string>
<string name="faq_6_title">Zakaj se v galeriji prikažejo datoteke z naslovnicami glasbenih map ali nalepk?</string> <string name="faq_6_title">Zakaj se v galeriji prikažejo datoteke z naslovnicami glasbenih map ali nalepk?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Spela upp i en slinga</string> <string name="loop_slideshow">Spela upp i en slinga</string>
<string name="slideshow_ended">Bildspelet har avslutats</string> <string name="slideshow_ended">Bildspelet har avslutats</string>
<string name="no_media_for_slideshow">Ingen media hittades för bildspelet</string> <string name="no_media_for_slideshow">Ingen media hittades för bildspelet</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Ändra vy</string> <string name="change_view_type">Ändra vy</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Visa bilder i högsta möjliga kvalitet</string> <string name="show_highest_quality">Visa bilder i högsta möjliga kvalitet</string>
<string name="show_recycle_bin_last">Visa Papperskorgen som det sista objektet i huvudvyn</string> <string name="show_recycle_bin_last">Visa Papperskorgen som det sista objektet i huvudvyn</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Miniatyrer</string> <string name="thumbnails">Miniatyrer</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Slayt gösterisini tekrarla</string> <string name="loop_slideshow">Slayt gösterisini tekrarla</string>
<string name="slideshow_ended">Slayt gösterisi sona erdi</string> <string name="slideshow_ended">Slayt gösterisi sona erdi</string>
<string name="no_media_for_slideshow">Slayt gösterisi için medya bulunamadı</string> <string name="no_media_for_slideshow">Slayt gösterisi için medya bulunamadı</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Görünüm türünü değiştir</string> <string name="change_view_type">Görünüm türünü değiştir</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Resimleri mümkün olan en yüksek kalitede göster</string> <string name="show_highest_quality">Resimleri mümkün olan en yüksek kalitede göster</string>
<string name="show_recycle_bin_last">Geri dönüşüm kutusu\'nu ana ekranda son öğe olarak göster</string> <string name="show_recycle_bin_last">Geri dönüşüm kutusu\'nu ana ekranda son öğe olarak göster</string>
<string name="allow_down_gesture">Tam ekran görünümünü aşağı hareketi ile kapatmaya izin ver</string> <string name="allow_down_gesture">Tam ekran görünümünü aşağı hareketi ile kapatmaya izin ver</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Küçük resimler</string> <string name="thumbnails">Küçük resimler</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Bir albümün her zaman en üstte görünmesini nasıl sağlayabilirim?</string> <string name="faq_3_title">Bir albümün her zaman en üstte görünmesini nasıl sağlayabilirim?</string>
<string name="faq_3_text">İstediğiniz albüme uzunca basabilir ve eylem menüsündeki Sabitle simgesini seçebilirsiniz. Birden çok klasörü de sabitleyebilirsiniz, sabitlenmiş öğeler varsayılan sıralama yöntemine göre sıralanır.</string> <string name="faq_3_text">İstediğiniz albüme uzunca basabilir ve eylem menüsündeki Sabitle simgesini seçebilirsiniz. Birden çok klasörü de sabitleyebilirsiniz, sabitlenmiş öğeler varsayılan sıralama yöntemine göre sıralanır.</string>
<string name="faq_4_title">Videoları nasıl hızlıca ileri sarabilirim?</string> <string name="faq_4_title">Videoları nasıl hızlıca ileri sarabilirim?</string>
<string name="faq_4_text">Videoyu geriye ya da ileriye taşıyacak olan arama çubuğunun yakınındaki geçerli veya maksimum süre metinlerini tıklayabilirsiniz.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string>
<string name="faq_4_text_old">Videoyu geriye ya da ileriye taşıyacak olan arama çubuğunun yakınındaki geçerli veya maksimum süre metinlerini tıklayabilirsiniz.</string>
<string name="faq_5_title">Klasörün gizlenmesi ve hariç tutulması arasındaki fark nedir?</string> <string name="faq_5_title">Klasörün gizlenmesi ve hariç tutulması arasındaki fark nedir?</string>
<string name="faq_5_text">Hariç tut, klasörü yalnızca Basit Galeri\'de görüntülemeyi engellerken, Gizle sistem genelinde çalışır ve klasörü diğer galerilerden de gizler. Verilen klasörde boş bir \".nomedia\" dosyası oluşturarak çalışır, daha sonra herhangi bir dosya yöneticisi ile kaldırabilirsiniz.</string> <string name="faq_5_text">Hariç tut, klasörü yalnızca Basit Galeri\'de görüntülemeyi engellerken, Gizle sistem genelinde çalışır ve klasörü diğer galerilerden de gizler. Verilen klasörde boş bir \".nomedia\" dosyası oluşturarak çalışır, daha sonra herhangi bir dosya yöneticisi ile kaldırabilirsiniz.</string>
<string name="faq_6_title">Neden albüm resimlerini içeren klasörler görünüyor?</string> <string name="faq_6_title">Neden albüm resimlerini içeren klasörler görünüyor?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Зациклити показ слайдів</string> <string name="loop_slideshow">Зациклити показ слайдів</string>
<string name="slideshow_ended">Слайдшоу закінчено</string> <string name="slideshow_ended">Слайдшоу закінчено</string>
<string name="no_media_for_slideshow">Не знайдено медіафайлів для показу у слайдшоу</string> <string name="no_media_for_slideshow">Не знайдено медіафайлів для показу у слайдшоу</string>
<string name="use_crossfade_animation">Анімувати перехід між елементами</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Змінити тип перегляду</string> <string name="change_view_type">Змінити тип перегляду</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Показувати зображення в найвищій можливій якості</string> <string name="show_highest_quality">Показувати зображення в найвищій можливій якості</string>
<string name="show_recycle_bin_last">Показувати \"Кошик\" останнім елементом на головному екрані</string> <string name="show_recycle_bin_last">Показувати \"Кошик\" останнім елементом на головному екрані</string>
<string name="allow_down_gesture">Дозволити закриття повноекранного перегляду свайпом згори вниз</string> <string name="allow_down_gesture">Дозволити закриття повноекранного перегляду свайпом згори вниз</string>
<string name="allow_one_to_one_zoom">Дозволити масштабування до 1:1 подвійним тапом</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Ескізи</string> <string name="thumbnails">Ескізи</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">Як зробити альбом завжди доступним у верхній частині?</string> <string name="faq_3_title">Як зробити альбом завжди доступним у верхній частині?</string>
<string name="faq_3_text">Ви можете виконати довге натискання на бажаному альбомі і вибрати піктограму \"Закріпити\" у меню дій, що закріпить його вгорі. Ви також можете закріпити декілька тек; закріплені елементи будуть відсортовані за методом сортування за-замовчуванням.</string> <string name="faq_3_text">Ви можете виконати довге натискання на бажаному альбомі і вибрати піктограму \"Закріпити\" у меню дій, що закріпить його вгорі. Ви також можете закріпити декілька тек; закріплені елементи будуть відсортовані за методом сортування за-замовчуванням.</string>
<string name="faq_4_title">Як я можу швидко прокручувати відео?</string> <string name="faq_4_title">Як я можу швидко прокручувати відео?</string>
<string name="faq_4_text">Ви можете натиснути на текст поточного таймінгу або на текст загальної тривалості відео на прогрес-барі, що перемістить відео або назад, або вперед.</string> <string name="faq_4_text">Ви можете або провести пальцем горизонтально під час відтворення відео, або натиснути на текст поточної або максимальної тривалості відео біля прогрес-бару, що прокрутить відео або назад, або вперед.</string>
<string name="faq_4_text_old">Ви можете натиснути на текст поточного таймінгу або на текст загальної тривалості відео на прогрес-барі, що перемістить відео або назад, або вперед.</string>
<string name="faq_5_title">В чому полягає різниця між приховуванням та виключенням теки?</string> <string name="faq_5_title">В чому полягає різниця між приховуванням та виключенням теки?</string>
<string name="faq_5_text">\"Виключити\" запобігає відображенню теки тільки в додатку Simple Gallery, в той час як \"Приховати\" працює на системному рівні і приховує теку і в інших галереях також. Це здійснюється шляхом створення порожнього файлу \".nomedia\" в заданій теці, який може бути видалений пізніше будь-яким файловим менеджером.</string> <string name="faq_5_text">\"Виключити\" запобігає відображенню теки тільки в додатку Simple Gallery, в той час як \"Приховати\" працює на системному рівні і приховує теку і в інших галереях також. Це здійснюється шляхом створення порожнього файлу \".nomedia\" в заданій теці, який може бути видалений пізніше будь-яким файловим менеджером.</string>
<string name="faq_6_title">Чому відображаються теки з музичними обкладинками або стікерами?</string> <string name="faq_6_title">Чому відображаються теки з музичними обкладинками або стікерами?</string>

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">循环幻灯片</string> <string name="loop_slideshow">循环幻灯片</string>
<string name="slideshow_ended">幻灯片结束</string> <string name="slideshow_ended">幻灯片结束</string>
<string name="no_media_for_slideshow">未发现可用媒体</string> <string name="no_media_for_slideshow">未发现可用媒体</string>
<string name="use_crossfade_animation">使用交叉渐变动画</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">更改视图类型</string> <string name="change_view_type">更改视图类型</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">以最高质量显示图像</string> <string name="show_highest_quality">以最高质量显示图像</string>
<string name="show_recycle_bin_last">在主屏幕界面的最后一项显示回收站</string> <string name="show_recycle_bin_last">在主屏幕界面的最后一项显示回收站</string>
<string name="allow_down_gesture">使用下滑手势关闭全屏视图</string> <string name="allow_down_gesture">使用下滑手势关闭全屏视图</string>
<string name="allow_one_to_one_zoom">双击两次后 1:1 放大图像</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">缩略图</string> <string name="thumbnails">缩略图</string>
@ -190,7 +192,8 @@
<string name="faq_3_title">如何让某个相册始终显示在最上面?</string> <string name="faq_3_title">如何让某个相册始终显示在最上面?</string>
<string name="faq_3_text">你可以长按该相册并在操作栏中点击图钉图标,这样 就可以将其固定在顶部了。你也可以固定多个文件夹,固定项目将按照默认排序方法排序。</string> <string name="faq_3_text">你可以长按该相册并在操作栏中点击图钉图标,这样 就可以将其固定在顶部了。你也可以固定多个文件夹,固定项目将按照默认排序方法排序。</string>
<string name="faq_4_title">如何快进/快退视频?</string> <string name="faq_4_title">如何快进/快退视频?</string>
<string name="faq_4_text">可以点击底栏进度条两侧的时间文本,或拖动进度条。</string> <string name="faq_4_text">只需在视频播放器上左右滑动,或点击底栏进度条两侧的时间文本,即可前进或后退视频。</string>
<string name="faq_4_text_old">可以点击底栏进度条两侧的时间文本,或拖动进度条。</string>
<string name="faq_5_title">文件夹的隐藏和排除有什么区别?</string> <string name="faq_5_title">文件夹的隐藏和排除有什么区别?</string>
<string name="faq_5_text">排除功能只是防止其在简约图库中显示,而隐藏功能则使用的是系统的方法,这样做也会在其他图库中隐藏。它的工作原理是在给定的文件夹中创建一个空的.nomedia文件你可以使用任何文件管理器删除它。</string> <string name="faq_5_text">排除功能只是防止其在简约图库中显示,而隐藏功能则使用的是系统的方法,这样做也会在其他图库中隐藏。它的工作原理是在给定的文件夹中创建一个空的.nomedia文件你可以使用任何文件管理器删除它。</string>
<string name="faq_6_title">为什么会出现音乐艺术家封面或贴纸文件夹?</string> <string name="faq_6_title">为什么会出现音乐艺术家封面或贴纸文件夹?</string>
@ -214,7 +217,7 @@
<!-- Strings displayed only on Google Playstore. Optional, but good to have --> <!-- Strings displayed only on Google Playstore. Optional, but good to have -->
<!-- Short description has to have less than 80 chars --> <!-- Short description has to have less than 80 chars -->
<string name="app_short_description">An offline gallery for managing your files without ads, respecting your privacy.</string> <string name="app_short_description">一个没有广告,尊重隐私,便于管理文件的离线图库。</string>
<string name="app_long_description"> <string name="app_long_description">
一个高度可定制的图库支持很多的图像和视频类型包括SVGRAW全景照片和视频。 一个高度可定制的图库支持很多的图像和视频类型包括SVGRAW全景照片和视频。

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">投影片循環</string> <string name="loop_slideshow">投影片循環</string>
<string name="slideshow_ended">投影片結束</string> <string name="slideshow_ended">投影片結束</string>
<string name="no_media_for_slideshow">找不到投影片的媒體檔案</string> <string name="no_media_for_slideshow">找不到投影片的媒體檔案</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">改變瀏覽類型</string> <string name="change_view_type">改變瀏覽類型</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">以最高品質顯示圖片</string> <string name="show_highest_quality">以最高品質顯示圖片</string>
<string name="show_recycle_bin_last">回收桶顯示在主畫面最後一項</string> <string name="show_recycle_bin_last">回收桶顯示在主畫面最後一項</string>
<string name="allow_down_gesture">允許用下滑手勢來關閉全螢幕檢視</string> <string name="allow_down_gesture">允許用下滑手勢來關閉全螢幕檢視</string>
<string name="allow_one_to_one_zoom">允許用兩次雙擊來1:1縮放</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">縮圖</string> <string name="thumbnails">縮圖</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">我如何讓某個相冊總是出現在頂端?</string> <string name="faq_3_title">我如何讓某個相冊總是出現在頂端?</string>
<string name="faq_3_text">你可以長按想要的相冊,然後在操作選單中選擇[圖釘]圖示,就會釘選於頂端。你也能釘選多個資料夾,釘選的項目會依預設的排序方法來排序。</string> <string name="faq_3_text">你可以長按想要的相冊,然後在操作選單中選擇[圖釘]圖示,就會釘選於頂端。你也能釘選多個資料夾,釘選的項目會依預設的排序方法來排序。</string>
<string name="faq_4_title">我如何快轉影片?</string> <string name="faq_4_title">我如何快轉影片?</string>
<string name="faq_4_text">你可以點擊進度條附近的當前或總時長文字,影片就會快轉或倒轉。</string> <string name="faq_4_text">你可以在影片撥放器上水平滑動你的手指,或者點擊進度條附近的當前或總時長文字。這會使影片快轉或倒轉。</string>
<string name="faq_4_text_old">你可以點擊進度條附近的當前或總時長文字,影片就會快轉或倒轉。</string>
<string name="faq_5_title">隱藏和排除資料夾,兩者有什麼不同?</string> <string name="faq_5_title">隱藏和排除資料夾,兩者有什麼不同?</string>
<string name="faq_5_text">[排除]只在簡易相簿中避免顯示出來;而[隱藏]則作用於整個系統,資料夾也會被其他相簿隱藏。這是藉由在指定資料夾內建立一個\".nomedia\"空白檔案來進行隱藏,你之後也能用任何檔案管理器移除。</string> <string name="faq_5_text">[排除]只在簡易相簿中避免顯示出來;而[隱藏]則作用於整個系統,資料夾也會被其他相簿隱藏。這是藉由在指定資料夾內建立一個\".nomedia\"空白檔案來進行隱藏,你之後也能用任何檔案管理器移除。</string>
<string name="faq_6_title">為什麼有些音樂專輯封面或貼圖的資料夾會出現?</string> <string name="faq_6_title">為什麼有些音樂專輯封面或貼圖的資料夾會出現?</string>

View file

@ -2,6 +2,12 @@
<resources> <resources>
<!-- Release notes --> <!-- Release notes -->
<string name="release_217">
Rewrote video playback, use a separate screen + added fast-forwarding with horizontal swiping\n
Added optional 1:1 pixel ratio zooming with two double taps at fullscreen view\n
Allow adding Copy at the fullscreen bottom actions\n
Always include images at slideshows, never videos
</string>
<string name="release_213"> <string name="release_213">
Added an initial widget implementation for creating homescreen folder shortcuts\n Added an initial widget implementation for creating homescreen folder shortcuts\n
Added optional grouping of direct subfolders, as a check at the \"Change view type\" dialog Added optional grouping of direct subfolders, as a check at the \"Change view type\" dialog

View file

@ -116,6 +116,7 @@
<string name="loop_slideshow">Loop slideshow</string> <string name="loop_slideshow">Loop slideshow</string>
<string name="slideshow_ended">The slideshow ended</string> <string name="slideshow_ended">The slideshow ended</string>
<string name="no_media_for_slideshow">No media for the slideshow have been found</string> <string name="no_media_for_slideshow">No media for the slideshow have been found</string>
<string name="use_crossfade_animation">Use crossfade animations</string>
<!-- View types --> <!-- View types -->
<string name="change_view_type">Change view type</string> <string name="change_view_type">Change view type</string>
@ -170,6 +171,7 @@
<string name="show_highest_quality">Show images in the highest possible quality</string> <string name="show_highest_quality">Show images in the highest possible quality</string>
<string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string> <string name="show_recycle_bin_last">Show the Recycle Bin as the last item on the main screen</string>
<string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string> <string name="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
<string name="allow_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
<!-- Setting sections --> <!-- Setting sections -->
<string name="thumbnails">Thumbnails</string> <string name="thumbnails">Thumbnails</string>
@ -191,7 +193,8 @@
<string name="faq_3_title">How can I make an album always appear at the top?</string> <string name="faq_3_title">How can I make an album always appear at the top?</string>
<string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string> <string name="faq_3_text">You can long press the desired album and select the Pin icon at the actionmenu, that will pin it to the top. You can pin multiple folders too, pinned items will be sorted by the default sorting method.</string>
<string name="faq_4_title">How can I fast-forward videos?</string> <string name="faq_4_title">How can I fast-forward videos?</string>
<string name="faq_4_text">You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward.</string> <string name="faq_4_text">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_4_text_old">You can either drag your finger horizontally over the video player, or click on the current or max duration texts near the seekbar. That will move the video either backward, or forward.</string>
<string name="faq_5_title">What is the difference between hiding and excluding a folder?</string> <string name="faq_5_title">What is the difference between hiding and excluding a folder?</string>
<string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string> <string name="faq_5_text">Exclude prevents displaying the folder only in Simple Gallery, while Hide works system-wise and it hides the folder from other galleries too. It works by creating an empty \".nomedia\" file in the given folder, which you can then remove with any file manager too.</string>
<string name="faq_6_title">Why do folders with music cover art or stickers show up?</string> <string name="faq_6_title">Why do folders with music cover art or stickers show up?</string>