18
CHANGELOG.md
|
@ -1,6 +1,24 @@
|
|||
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)*
|
||||
----------------------------
|
||||
|
||||
|
|
|
@ -15,8 +15,8 @@ android {
|
|||
applicationId "com.simplemobiletools.gallery.pro"
|
||||
minSdkVersion 21
|
||||
targetSdkVersion 28
|
||||
versionCode 216
|
||||
versionName "6.1.3"
|
||||
versionCode 219
|
||||
versionName "6.2.1"
|
||||
multiDexEnabled true
|
||||
setProperty("archivesBaseName", "gallery")
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ android {
|
|||
}
|
||||
|
||||
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 'androidx.multidex:multidex:2.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.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.tibbi:PhotoView:2.3.0-fork'
|
||||
|
|
|
@ -77,6 +77,7 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
|
|||
private var currAspectRatio = ASPECT_RATIO_FREE
|
||||
private var isCropIntent = false
|
||||
private var isEditingWithThirdParty = false
|
||||
private var oldExif: ExifInterface? = null
|
||||
|
||||
private var initialBitmap: Bitmap? = null
|
||||
|
||||
|
@ -136,6 +137,14 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
|
|||
setupBottomActions()
|
||||
|
||||
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)
|
||||
}
|
||||
updateAspectRatio(config.lastEditorCropAspectRatio)
|
||||
|
@ -222,7 +231,19 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
|
|||
}
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.N)
|
||||
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()) {
|
||||
crop_image_view.getCroppedImageAsync()
|
||||
} else {
|
||||
|
@ -371,7 +392,12 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
|
|||
if (currPrimaryAction == PRIMARY_ACTION_FILTER && bottom_actions_filter_list.adapter == null) {
|
||||
Thread {
|
||||
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 {
|
||||
val filterThumbnailsManager = FilterThumbnailsManager()
|
||||
filterThumbnailsManager.clearThumbs()
|
||||
|
@ -593,17 +619,12 @@ class EditActivity : SimpleActivity(), CropImageView.OnCropImageCompleteListener
|
|||
bitmap.compress(file.absolutePath.getCompressionFormat(), 90, out)
|
||||
}
|
||||
|
||||
var inputStream: InputStream? = null
|
||||
try {
|
||||
if (isNougatPlus()) {
|
||||
inputStream = contentResolver.openInputStream(uri)
|
||||
val oldExif = ExifInterface(inputStream)
|
||||
val newExif = ExifInterface(file.absolutePath)
|
||||
oldExif.copyTo(newExif, false)
|
||||
oldExif?.copyTo(newExif, false)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
} finally {
|
||||
inputStream?.close()
|
||||
}
|
||||
|
||||
setResult(Activity.RESULT_OK, intent)
|
||||
|
|
|
@ -1230,6 +1230,7 @@ class MainActivity : SimpleActivity(), DirectoryOperationsListener {
|
|||
add(Release(202, R.string.release_202))
|
||||
add(Release(206, R.string.release_206))
|
||||
add(Release(213, R.string.release_213))
|
||||
add(Release(217, R.string.release_217))
|
||||
checkWhatsNew(this, BuildConfig.VERSION_CODE)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -153,7 +153,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
|||
media_horizontal_fastscroller.allowBubbleDisplay = config.showInfoBubble
|
||||
media_vertical_fastscroller.allowBubbleDisplay = config.showInfoBubble
|
||||
media_refresh_layout.isEnabled = config.enablePullToRefresh
|
||||
tryloadGallery()
|
||||
tryLoadGallery()
|
||||
invalidateOptionsMenu()
|
||||
media_empty_text_label.setTextColor(config.textColor)
|
||||
media_empty_text.setTextColor(getAdjustedPrimaryColor())
|
||||
|
@ -320,6 +320,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
|||
|
||||
private fun searchQueryChanged(text: String) {
|
||||
Thread {
|
||||
try {
|
||||
val filtered = mMedia.filter { it is Medium && it.name.contains(text, true) } as ArrayList
|
||||
filtered.sortBy { it is Medium && !it.name.startsWith(text, true) }
|
||||
val grouped = MediaFetcher(applicationContext).groupMedia(filtered as ArrayList<Medium>, mPath)
|
||||
|
@ -327,10 +328,12 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener {
|
|||
getMediaAdapter()?.updateMedia(grouped)
|
||||
measureRecyclerViewContent(grouped)
|
||||
}
|
||||
} catch (ignored: Exception) {
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
private fun tryloadGallery() {
|
||||
private fun tryLoadGallery() {
|
||||
handlePermission(PERMISSION_WRITE_STORAGE) {
|
||||
if (it) {
|
||||
val dirName = when {
|
||||
|
|
|
@ -244,6 +244,7 @@ open class PanoramaVideoActivity : SimpleActivity(), SeekBar.OnSeekBarChangeList
|
|||
}
|
||||
|
||||
video_time_holder.setPadding(0, 0, right, bottom)
|
||||
video_time_holder.background = resources.getDrawable(R.drawable.gradient_background)
|
||||
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()
|
||||
(explore.layoutParams as RelativeLayout.LayoutParams).bottomMargin = newBottomMargin
|
||||
|
|
|
@ -30,7 +30,6 @@ import java.io.File
|
|||
import java.io.FileInputStream
|
||||
|
||||
open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentListener {
|
||||
|
||||
private var mMedium: Medium? = null
|
||||
private var mIsFullScreen = false
|
||||
private var mIsFromGallery = false
|
||||
|
@ -42,7 +41,6 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
|
|||
public override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.fragment_holder)
|
||||
setTranslucentNavigation()
|
||||
|
||||
handlePermission(PERMISSION_WRITE_STORAGE) {
|
||||
if (it) {
|
||||
|
@ -56,7 +54,15 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
|
|||
|
||||
override fun 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) {
|
||||
updateStatusbarColor(Color.BLACK)
|
||||
}
|
||||
|
@ -170,6 +176,11 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
|
|||
val mimeType = getUriMimeType(mUri.toString(), newUri)
|
||||
Intent(applicationContext, VideoPlayerActivity::class.java).apply {
|
||||
setDataAndType(newUri, mimeType)
|
||||
addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT)
|
||||
if (intent.extras != null) {
|
||||
putExtras(intent.extras!!)
|
||||
}
|
||||
|
||||
startActivity(this)
|
||||
}
|
||||
}
|
||||
|
@ -240,7 +251,7 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
|
|||
|
||||
private fun initBottomActionButtons() {
|
||||
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()
|
||||
}
|
||||
|
||||
|
@ -273,8 +284,10 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList
|
|||
showSystemUI(true)
|
||||
}
|
||||
|
||||
val newAlpha = if (mIsFullScreen) 0f else 1f
|
||||
top_shadow.animate().alpha(newAlpha).start()
|
||||
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 goToNextItem() {}
|
||||
|
||||
override fun launchViewVideoIntent(path: String) {}
|
||||
}
|
||||
|
|
|
@ -65,6 +65,7 @@ class SettingsActivity : SimpleActivity() {
|
|||
setupAllowZoomingImages()
|
||||
setupShowHighestQuality()
|
||||
setupOneFingerZoom()
|
||||
setupAllowOneToOneZoom()
|
||||
setupAllowInstantChange()
|
||||
setupShowExtendedDetails()
|
||||
setupHideExtendedDetails()
|
||||
|
@ -377,6 +378,7 @@ class SettingsActivity : SimpleActivity() {
|
|||
private fun updateDeepZoomToggleButtons() {
|
||||
settings_one_finger_zoom_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() {
|
||||
|
@ -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() {
|
||||
settings_allow_instant_change.isChecked = config.allowInstantChange
|
||||
settings_allow_instant_change_holder.setOnClickListener {
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package com.simplemobiletools.gallery.pro.activities
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Intent
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.content.res.Configuration
|
||||
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.gallery.pro.R
|
||||
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.bottom_video_time_holder.*
|
||||
|
||||
open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListener, TextureView.SurfaceTextureListener {
|
||||
private val PLAY_WHEN_READY_DRAG_DELAY = 100L
|
||||
|
||||
private var mIsFullscreen = false
|
||||
private var mIsPlaying = false
|
||||
private var mWasVideoStarted = false
|
||||
private var mIsDragged = false
|
||||
private var mIsOrientationLocked = false
|
||||
private var mScreenWidth = 0
|
||||
private var mCurrTime = 0
|
||||
private var mDuration = 0
|
||||
private var mVideoSize = Point(0, 0)
|
||||
private var mDragThreshold = 0f
|
||||
|
||||
private var mUri: Uri? = null
|
||||
private var mExoPlayer: SimpleExoPlayer? = null
|
||||
private var mTimerHandler = Handler()
|
||||
private var mPlayWhenReadyHandler = Handler()
|
||||
|
||||
private var mTouchDownX = 0f
|
||||
private var mTouchDownY = 0f
|
||||
private var mTouchDownTime = 0L
|
||||
private var mProgressAtDown = 0L
|
||||
private var mCloseDownThreshold = 100f
|
||||
private var mIgnoreCloseDown = false
|
||||
|
||||
public override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
setContentView(R.layout.activity_video_player)
|
||||
setupOrientation()
|
||||
|
||||
handlePermission(PERMISSION_WRITE_STORAGE) {
|
||||
if (it) {
|
||||
|
@ -93,7 +104,12 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
|
|||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
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 {
|
||||
when (item.itemId) {
|
||||
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)
|
||||
}
|
||||
return true
|
||||
|
@ -116,6 +134,16 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
|
|||
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() {
|
||||
mUri = intent.data ?: return
|
||||
supportActionBar?.title = getFilenameFromUri(mUri!!)
|
||||
|
@ -132,40 +160,36 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
|
|||
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_duration.setOnClickListener { skip(true) }
|
||||
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_player_holder.setOnTouchListener { v, event ->
|
||||
video_surface.setOnTouchListener { view, event ->
|
||||
handleEvent(event)
|
||||
false
|
||||
}
|
||||
|
||||
video_surface.setOnTouchListener { v, event ->
|
||||
handleEvent(event)
|
||||
false
|
||||
}
|
||||
true
|
||||
}
|
||||
|
||||
initExoPlayer()
|
||||
video_surface.surfaceTextureListener = this
|
||||
video_surface.setOnClickListener {
|
||||
fullscreenToggled(!mIsFullscreen)
|
||||
}
|
||||
|
||||
if (config.allowVideoGestures) {
|
||||
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_player_holder.performClick()
|
||||
fullscreenToggled(!mIsFullscreen)
|
||||
}
|
||||
} else {
|
||||
video_brightness_controller.beGone()
|
||||
|
@ -177,6 +201,8 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
|
|||
fullscreenToggled(true)
|
||||
}, 500)
|
||||
}
|
||||
|
||||
mDragThreshold = DRAG_THRESHOLD * resources.displayMetrics.density
|
||||
}
|
||||
|
||||
private fun initExoPlayer() {
|
||||
|
@ -370,9 +396,21 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
|
|||
}
|
||||
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() {
|
||||
mIsOrientationLocked = true
|
||||
requestedOrientation = if (resources.configuration.orientation == ActivityInfo.SCREEN_ORIENTATION_PORTRAIT) {
|
||||
ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE
|
||||
} else {
|
||||
|
@ -389,10 +427,11 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
|
|||
}
|
||||
|
||||
val newAlpha = if (isFullScreen) 0f else 1f
|
||||
top_shadow.animate().alpha(newAlpha).start()
|
||||
video_time_holder.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 {
|
||||
it.animate().alpha(newAlpha).start()
|
||||
}
|
||||
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
|
||||
}
|
||||
}
|
||||
|
@ -412,7 +451,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
|
|||
|
||||
video_time_holder.setPadding(0, 0, right, bottom)
|
||||
video_seekbar.setOnSeekBarChangeListener(this)
|
||||
video_seekbar!!.max = mDuration
|
||||
video_seekbar.max = mDuration
|
||||
video_duration.text = mDuration.getFormattedDuration()
|
||||
video_curr_time.text = mCurrTime.getFormattedDuration()
|
||||
setupTimer()
|
||||
|
@ -453,26 +492,84 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
|
|||
MotionEvent.ACTION_DOWN -> {
|
||||
mTouchDownX = event.x
|
||||
mTouchDownY = event.y
|
||||
mTouchDownTime = System.currentTimeMillis()
|
||||
mProgressAtDown = mExoPlayer!!.currentPosition
|
||||
}
|
||||
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 -> {
|
||||
val diffX = mTouchDownX - event.x
|
||||
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()
|
||||
}
|
||||
|
||||
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() {
|
||||
pauseVideo()
|
||||
video_curr_time.text = 0.getFormattedDuration()
|
||||
releaseExoPlayer()
|
||||
video_seekbar.progress = 0
|
||||
mTimerHandler.removeCallbacksAndMessages(null)
|
||||
private fun handleNextFile() {
|
||||
Intent().apply {
|
||||
putExtra(GO_TO_NEXT_ITEM, true)
|
||||
setResult(Activity.RESULT_OK, this)
|
||||
}
|
||||
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() {
|
||||
|
@ -486,6 +583,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen
|
|||
override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) {
|
||||
if (mExoPlayer != null && fromUser) {
|
||||
setPosition(progress)
|
||||
resetPlayWhenReady()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,6 @@ import android.os.Build
|
|||
import android.os.Bundle
|
||||
import android.os.Handler
|
||||
import android.provider.MediaStore
|
||||
import android.util.DisplayMetrics
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
|
@ -33,6 +32,7 @@ import com.simplemobiletools.commons.dialogs.RenameItemDialog
|
|||
import com.simplemobiletools.commons.extensions.*
|
||||
import com.simplemobiletools.commons.helpers.*
|
||||
import com.simplemobiletools.commons.models.FileDirItem
|
||||
import com.simplemobiletools.gallery.pro.BuildConfig
|
||||
import com.simplemobiletools.gallery.pro.R
|
||||
import com.simplemobiletools.gallery.pro.adapters.MyPagerAdapter
|
||||
import com.simplemobiletools.gallery.pro.asynctasks.GetMediaAsynctask
|
||||
|
@ -54,6 +54,8 @@ import java.io.OutputStream
|
|||
import java.util.*
|
||||
|
||||
class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, ViewPagerFragment.FragmentListener {
|
||||
private val REQUEST_VIEW_VIDEO = 1
|
||||
|
||||
private var mPath = ""
|
||||
private var mDirectory = ""
|
||||
private var mIsFullScreen = false
|
||||
|
@ -74,11 +76,6 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
private var mMediaFiles = ArrayList<Medium>()
|
||||
private var mFavoritePaths = ArrayList<String>()
|
||||
|
||||
companion object {
|
||||
var screenWidth = 0
|
||||
var screenHeight = 0
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.P)
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
@ -125,7 +122,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
window.attributes = attributes
|
||||
}
|
||||
|
||||
setupRotation()
|
||||
setupOrientation()
|
||||
invalidateOptionsMenu()
|
||||
|
||||
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_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_copy_to).isVisible = visibleBottomActions and BOTTOM_ACTION_COPY == 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_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() {
|
||||
measureScreen()
|
||||
val uri = intent.data
|
||||
if (uri != null) {
|
||||
var cursor: Cursor? = null
|
||||
|
@ -364,7 +361,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
}.start()
|
||||
}
|
||||
|
||||
private fun setupRotation() {
|
||||
private fun setupOrientation() {
|
||||
if (!mIsOrientationLocked) {
|
||||
if (config.screenRotation == ROTATE_BY_DEVICE_ROTATION) {
|
||||
requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_SENSOR
|
||||
|
@ -870,6 +867,11 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
bottom_set_as.setOnClickListener {
|
||||
setAs(getCurrentPath())
|
||||
}
|
||||
|
||||
bottom_copy.beVisibleIf(visibleBottomActions and BOTTOM_ACTION_COPY != 0)
|
||||
bottom_copy.setOnClickListener {
|
||||
copyMoveTo(true)
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateBottomActionIcons(medium: Medium?) {
|
||||
|
@ -908,15 +910,17 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
}
|
||||
|
||||
override fun onActivityResult(requestCode: Int, resultCode: Int, resultData: Intent?) {
|
||||
if (requestCode == REQUEST_EDIT_IMAGE) {
|
||||
if (resultCode == Activity.RESULT_OK && resultData != null) {
|
||||
if (requestCode == REQUEST_EDIT_IMAGE && resultCode == Activity.RESULT_OK && resultData != null) {
|
||||
mPos = -1
|
||||
mPrevHashcode = 0
|
||||
refreshViewPager()
|
||||
}
|
||||
} else if (requestCode == REQUEST_SET_AS) {
|
||||
if (resultCode == Activity.RESULT_OK) {
|
||||
} else if (requestCode == REQUEST_SET_AS && resultCode == Activity.RESULT_OK) {
|
||||
toast(R.string.wallpaper_set_successfully)
|
||||
} else if (requestCode == REQUEST_VIEW_VIDEO && resultCode == Activity.RESULT_OK && resultData != null) {
|
||||
if (resultData.getBooleanExtra(GO_TO_NEXT_ITEM, false)) {
|
||||
goToNextItem()
|
||||
} else if (resultData.getBooleanExtra(GO_TO_PREV_ITEM, false)) {
|
||||
goToPrevItem()
|
||||
}
|
||||
}
|
||||
super.onActivityResult(requestCode, resultCode, resultData)
|
||||
|
@ -1005,17 +1009,9 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
|
||||
override fun onConfigurationChanged(newConfig: Configuration?) {
|
||||
super.onConfigurationChanged(newConfig)
|
||||
measureScreen()
|
||||
initBottomActionsLayout()
|
||||
}
|
||||
|
||||
private fun measureScreen() {
|
||||
val metrics = DisplayMetrics()
|
||||
windowManager.defaultDisplay.getRealMetrics(metrics)
|
||||
screenWidth = metrics.widthPixels
|
||||
screenHeight = metrics.heightPixels
|
||||
}
|
||||
|
||||
private fun refreshViewPager() {
|
||||
if (config.getFileSorting(mDirectory) and SORT_BY_RANDOM == 0) {
|
||||
GetMediaAsynctask(applicationContext, mDirectory, false, false, mShowAll) {
|
||||
|
@ -1107,6 +1103,34 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View
|
|||
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() {
|
||||
if (mIsFullScreen) {
|
||||
hideSystemUI(true)
|
||||
|
|
|
@ -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_rename.isChecked = actions and BOTTOM_ACTION_RENAME != 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)
|
||||
|
@ -63,6 +64,8 @@ class ManageBottomActionsDialog(val activity: BaseSimpleActivity, val callback:
|
|||
result += BOTTOM_ACTION_RENAME
|
||||
if (manage_bottom_actions_set_as.isChecked)
|
||||
result += BOTTOM_ACTION_SET_AS
|
||||
if (manage_bottom_actions_copy.isChecked)
|
||||
result += BOTTOM_ACTION_COPY
|
||||
}
|
||||
|
||||
activity.config.visibleBottomActions = result
|
||||
|
|
|
@ -70,7 +70,7 @@ fun SimpleActivity.launchAbout() {
|
|||
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_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_6_title, R.string.faq_6_text),
|
||||
FAQItem(R.string.faq_7_title, R.string.faq_7_text),
|
||||
|
|
|
@ -34,7 +34,6 @@ import com.simplemobiletools.commons.helpers.OTG_PATH
|
|||
import com.simplemobiletools.gallery.pro.R
|
||||
import com.simplemobiletools.gallery.pro.activities.PanoramaPhotoActivity
|
||||
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.helpers.MEDIUM
|
||||
import com.simplemobiletools.gallery.pro.helpers.PATH
|
||||
|
@ -63,27 +62,29 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
"google nexus 5x"
|
||||
)
|
||||
|
||||
private var isFragmentVisible = false
|
||||
private var isFullscreen = false
|
||||
private var wasInit = false
|
||||
private var isPanorama = false
|
||||
private var isSubsamplingVisible = false // checking view.visibility is unreliable, use an extra variable for it
|
||||
private var imageOrientation = -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 mIsFragmentVisible = false
|
||||
private var mIsFullscreen = false
|
||||
private var mWasInit = false
|
||||
private var mIsPanorama = false
|
||||
private var mIsSubsamplingVisible = false // checking view.visibility is unreliable, use an extra variable for it
|
||||
private var mImageOrientation = -1
|
||||
private var mOriginalSubsamplingScale = 0f
|
||||
private var storedExtendedDetails = 0
|
||||
private var mIoadZoomableViewHandler = Handler()
|
||||
private var mScreenWidth = 0
|
||||
private var mScreenHeight = 0
|
||||
|
||||
lateinit var view: ViewGroup
|
||||
lateinit var medium: Medium
|
||||
private var mStoredShowExtendedDetails = false
|
||||
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 {
|
||||
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() }
|
||||
photo_view.setOnClickListener { photoClicked() }
|
||||
gif_view.setOnClickListener { photoClicked() }
|
||||
|
@ -95,7 +96,7 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
instant_next_item.parentView = container
|
||||
|
||||
photo_brightness_controller.initialize(activity!!, slide_info, true, container) { x, y ->
|
||||
view.apply {
|
||||
mView.apply {
|
||||
if (subsampling_view.isVisible()) {
|
||||
subsampling_view.sendFakeClick(x, y)
|
||||
} else {
|
||||
|
@ -111,7 +112,7 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
}
|
||||
|
||||
subsampling_view.setOnTouchListener { v, event ->
|
||||
if (view.subsampling_view.scale == mOriginalSubsamplingScale) {
|
||||
if (mView.subsampling_view.scale == mOriginalSubsamplingScale) {
|
||||
handleEvent(event)
|
||||
}
|
||||
false
|
||||
|
@ -121,16 +122,16 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
|
||||
checkScreenDimensions()
|
||||
storeStateVariables()
|
||||
if (!isFragmentVisible && activity is PhotoActivity) {
|
||||
isFragmentVisible = true
|
||||
if (!mIsFragmentVisible && activity is PhotoActivity) {
|
||||
mIsFragmentVisible = true
|
||||
}
|
||||
|
||||
medium = arguments!!.getSerializable(MEDIUM) as Medium
|
||||
if (medium.path.startsWith("content://") && !medium.path.startsWith("content://mms/")) {
|
||||
val originalPath = medium.path
|
||||
medium.path = context!!.getRealPathFromURI(Uri.parse(originalPath)) ?: medium.path
|
||||
mMedium = arguments!!.getSerializable(MEDIUM) as Medium
|
||||
if (mMedium.path.startsWith("content://") && !mMedium.path.startsWith("content://mms/")) {
|
||||
val originalPath = mMedium.path
|
||||
mMedium.path = context!!.getRealPathFromURI(Uri.parse(originalPath)) ?: mMedium.path
|
||||
|
||||
if (medium.path.isEmpty()) {
|
||||
if (mMedium.path.isEmpty()) {
|
||||
var out: FileOutputStream? = null
|
||||
try {
|
||||
var inputStream = context!!.contentResolver.openInputStream(Uri.parse(originalPath))
|
||||
|
@ -147,24 +148,24 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
val file = File(context!!.externalCacheDir, Uri.parse(originalPath).lastPathSegment)
|
||||
out = FileOutputStream(file)
|
||||
rotated.compress(Bitmap.CompressFormat.JPEG, 100, out)
|
||||
medium.path = file.absolutePath
|
||||
mMedium.path = file.absolutePath
|
||||
} catch (e: Exception) {
|
||||
activity!!.toast(R.string.unknown_error_occurred)
|
||||
return view
|
||||
return mView
|
||||
} finally {
|
||||
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()
|
||||
initExtendedDetails()
|
||||
wasInit = true
|
||||
mWasInit = true
|
||||
checkIfPanorama()
|
||||
updateInstantSwitchWidths()
|
||||
|
||||
return view
|
||||
return mView
|
||||
}
|
||||
|
||||
override fun onPause() {
|
||||
|
@ -175,17 +176,17 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
override fun onResume() {
|
||||
super.onResume()
|
||||
val config = context!!.config
|
||||
if (wasInit && (config.showExtendedDetails != storedShowExtendedDetails || config.extendedDetails != storedExtendedDetails)) {
|
||||
if (mWasInit && (config.showExtendedDetails != mStoredShowExtendedDetails || config.extendedDetails != mStoredExtendedDetails)) {
|
||||
initExtendedDetails()
|
||||
}
|
||||
|
||||
if (wasInit) {
|
||||
if (config.allowZoomingImages != storedAllowDeepZoomableImages || config.showHighestQuality != storedShowHighestQuality ||
|
||||
config.oneFingerZoom != storedAllowOneFingerZoom) {
|
||||
isSubsamplingVisible = false
|
||||
view.subsampling_view.beGone()
|
||||
if (mWasInit) {
|
||||
if (config.allowZoomingImages != mStoredAllowDeepZoomableImages || config.showHighestQuality != mStoredShowHighestQuality ||
|
||||
config.oneFingerZoom != mStoredAllowOneFingerZoom) {
|
||||
mIsSubsamplingVisible = false
|
||||
mView.subsampling_view.beGone()
|
||||
loadImage()
|
||||
} else if (medium.isGIF()) {
|
||||
} else if (mMedium.isGIF()) {
|
||||
loadGif()
|
||||
}
|
||||
}
|
||||
|
@ -193,7 +194,7 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
val allowPhotoGestures = config.allowPhotoGestures
|
||||
val allowInstantChange = config.allowInstantChange
|
||||
|
||||
view.apply {
|
||||
mView.apply {
|
||||
photo_brightness_controller.beVisibleIf(allowPhotoGestures)
|
||||
instant_prev_item.beVisibleIf(allowInstantChange)
|
||||
instant_next_item.beVisibleIf(allowInstantChange)
|
||||
|
@ -205,9 +206,9 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
|
||||
override fun setMenuVisibility(menuVisible: Boolean) {
|
||||
super.setMenuVisibility(menuVisible)
|
||||
isFragmentVisible = menuVisible
|
||||
if (wasInit) {
|
||||
if (!medium.isGIF()) {
|
||||
mIsFragmentVisible = menuVisible
|
||||
if (mWasInit) {
|
||||
if (!mMedium.isGIF()) {
|
||||
photoFragmentVisibilityChanged(menuVisible)
|
||||
}
|
||||
}
|
||||
|
@ -215,17 +216,17 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
|
||||
private fun storeStateVariables() {
|
||||
context!!.config.apply {
|
||||
storedShowExtendedDetails = showExtendedDetails
|
||||
storedHideExtendedDetails = hideExtendedDetails
|
||||
storedAllowDeepZoomableImages = allowZoomingImages
|
||||
storedShowHighestQuality = showHighestQuality
|
||||
storedAllowOneFingerZoom = oneFingerZoom
|
||||
storedExtendedDetails = extendedDetails
|
||||
mStoredShowExtendedDetails = showExtendedDetails
|
||||
mStoredHideExtendedDetails = hideExtendedDetails
|
||||
mStoredAllowDeepZoomableImages = allowZoomingImages
|
||||
mStoredShowHighestQuality = showHighestQuality
|
||||
mStoredAllowOneFingerZoom = oneFingerZoom
|
||||
mStoredExtendedDetails = extendedDetails
|
||||
}
|
||||
}
|
||||
|
||||
private fun checkScreenDimensions() {
|
||||
if (ViewPagerActivity.screenWidth == 0 || ViewPagerActivity.screenHeight == 0) {
|
||||
if (mScreenWidth == 0 || mScreenHeight == 0) {
|
||||
measureScreen()
|
||||
}
|
||||
}
|
||||
|
@ -233,8 +234,8 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
private fun measureScreen() {
|
||||
val metrics = DisplayMetrics()
|
||||
activity!!.windowManager.defaultDisplay.getRealMetrics(metrics)
|
||||
ViewPagerActivity.screenWidth = metrics.widthPixels
|
||||
ViewPagerActivity.screenHeight = metrics.heightPixels
|
||||
mScreenWidth = metrics.widthPixels
|
||||
mScreenHeight = metrics.heightPixels
|
||||
}
|
||||
|
||||
private fun photoFragmentVisibilityChanged(isVisible: Boolean) {
|
||||
|
@ -264,26 +265,26 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
}
|
||||
|
||||
private fun loadImage() {
|
||||
imageOrientation = getImageOrientation()
|
||||
mImageOrientation = getImageOrientation()
|
||||
when {
|
||||
medium.isGIF() -> loadGif()
|
||||
medium.isSVG() -> loadSVG()
|
||||
mMedium.isGIF() -> loadGif()
|
||||
mMedium.isSVG() -> loadSVG()
|
||||
else -> loadBitmap()
|
||||
}
|
||||
}
|
||||
|
||||
private fun loadGif() {
|
||||
try {
|
||||
val pathToLoad = getPathToLoad(medium)
|
||||
val pathToLoad = getPathToLoad(mMedium)
|
||||
val source = if (pathToLoad.startsWith("content://") || pathToLoad.startsWith("file://")) {
|
||||
InputSource.UriSource(context!!.contentResolver, Uri.parse(pathToLoad))
|
||||
} else {
|
||||
InputSource.FileSource(pathToLoad)
|
||||
}
|
||||
|
||||
view.photo_view.beGone()
|
||||
view.gif_view.beVisible()
|
||||
view.gif_view.setInputSource(source)
|
||||
mView.photo_view.beGone()
|
||||
mView.gif_view.beVisible()
|
||||
mView.gif_view.setInputSource(source)
|
||||
} catch (e: Exception) {
|
||||
loadBitmap()
|
||||
} catch (e: OutOfMemoryError) {
|
||||
|
@ -295,35 +296,35 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
Glide.with(context!!)
|
||||
.`as`(PictureDrawable::class.java)
|
||||
.listener(SvgSoftwareLayerSetter())
|
||||
.load(medium.path)
|
||||
.into(view.photo_view)
|
||||
.load(mMedium.path)
|
||||
.into(mView.photo_view)
|
||||
}
|
||||
|
||||
private fun loadBitmap(degrees: Int = 0) {
|
||||
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")
|
||||
|
||||
try {
|
||||
val picasso = Picasso.get()
|
||||
.load(pathToLoad)
|
||||
.centerInside()
|
||||
.resize(ViewPagerActivity.screenWidth, ViewPagerActivity.screenHeight)
|
||||
.resize(mScreenWidth, mScreenHeight)
|
||||
|
||||
if (degrees != 0) {
|
||||
picasso.rotate(degrees.toFloat())
|
||||
}
|
||||
|
||||
picasso.into(view.photo_view, object : Callback {
|
||||
picasso.into(mView.photo_view, object : Callback {
|
||||
override fun onSuccess() {
|
||||
view.photo_view.isZoomable = degrees != 0 || context?.config?.allowZoomingImages == false
|
||||
if (isFragmentVisible && degrees == 0) {
|
||||
mView.photo_view.isZoomable = degrees != 0 || context?.config?.allowZoomingImages == false
|
||||
if (mIsFragmentVisible && degrees == 0) {
|
||||
scheduleZoomableView()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onError(e: Exception) {
|
||||
if (context != null) {
|
||||
if (activity != null) {
|
||||
tryLoadingWithGlide()
|
||||
}
|
||||
}
|
||||
|
@ -333,56 +334,56 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
}
|
||||
|
||||
private fun tryLoadingWithGlide() {
|
||||
var targetWidth = if (ViewPagerActivity.screenWidth == 0) com.bumptech.glide.request.target.Target.SIZE_ORIGINAL else ViewPagerActivity.screenWidth
|
||||
var targetHeight = if (ViewPagerActivity.screenHeight == 0) com.bumptech.glide.request.target.Target.SIZE_ORIGINAL else ViewPagerActivity.screenHeight
|
||||
var targetWidth = if (mScreenWidth == 0) com.bumptech.glide.request.target.Target.SIZE_ORIGINAL else mScreenWidth
|
||||
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
|
||||
targetHeight = com.bumptech.glide.request.target.Target.SIZE_ORIGINAL
|
||||
}
|
||||
|
||||
val options = RequestOptions()
|
||||
.signature(medium.path.getFileSignature())
|
||||
.signature(mMedium.path.getFileSignature())
|
||||
.format(DecodeFormat.PREFER_ARGB_8888)
|
||||
.diskCacheStrategy(DiskCacheStrategy.RESOURCE)
|
||||
.override(targetWidth, targetHeight)
|
||||
|
||||
Glide.with(context!!)
|
||||
.asBitmap()
|
||||
.load(getPathToLoad(medium))
|
||||
.load(getPathToLoad(mMedium))
|
||||
.apply(options)
|
||||
.listener(object : RequestListener<Bitmap> {
|
||||
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 {
|
||||
if (isFragmentVisible) {
|
||||
if (mIsFragmentVisible) {
|
||||
scheduleZoomableView()
|
||||
}
|
||||
return false
|
||||
}
|
||||
}).into(view.photo_view)
|
||||
}).into(mView.photo_view)
|
||||
}
|
||||
|
||||
private fun openPanorama() {
|
||||
Intent(context, PanoramaPhotoActivity::class.java).apply {
|
||||
putExtra(PATH, medium.path)
|
||||
putExtra(PATH, mMedium.path)
|
||||
startActivity(this)
|
||||
}
|
||||
}
|
||||
|
||||
private fun scheduleZoomableView() {
|
||||
loadZoomableViewHandler.removeCallbacksAndMessages(null)
|
||||
loadZoomableViewHandler.postDelayed({
|
||||
if (isFragmentVisible && context?.config?.allowZoomingImages == true && medium.isImage() && !isSubsamplingVisible) {
|
||||
mIoadZoomableViewHandler.removeCallbacksAndMessages(null)
|
||||
mIoadZoomableViewHandler.postDelayed({
|
||||
if (mIsFragmentVisible && context?.config?.allowZoomingImages == true && mMedium.isImage() && !mIsSubsamplingVisible) {
|
||||
addZoomableView()
|
||||
}
|
||||
}, ZOOMABLE_VIEW_LOAD_DELAY)
|
||||
}
|
||||
|
||||
private fun addZoomableView() {
|
||||
val rotation = degreesForRotation(imageOrientation)
|
||||
val path = getPathToLoad(medium)
|
||||
isSubsamplingVisible = true
|
||||
val rotation = degreesForRotation(mImageOrientation)
|
||||
val path = getPathToLoad(mMedium)
|
||||
mIsSubsamplingVisible = true
|
||||
|
||||
val bitmapDecoder = object : DecoderFactory<ImageDecoder> {
|
||||
override fun make() = PicassoDecoder(path, Picasso.get(), rotation)
|
||||
|
@ -392,15 +393,17 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
override fun make() = PicassoRegionDecoder()
|
||||
}
|
||||
|
||||
view.subsampling_view.apply {
|
||||
setMaxTileSize(if (context!!.config.showHighestQuality) Integer.MAX_VALUE else 4096)
|
||||
setMinimumTileDpi(if (context!!.config.showHighestQuality) -1 else getMinTileDpi())
|
||||
val config = context!!.config
|
||||
mView.subsampling_view.apply {
|
||||
setMaxTileSize(if (config.showHighestQuality) Integer.MAX_VALUE else 4096)
|
||||
setMinimumTileDpi(if (config.showHighestQuality) -1 else getMinTileDpi())
|
||||
background = ColorDrawable(Color.TRANSPARENT)
|
||||
setBitmapDecoderFactory(bitmapDecoder)
|
||||
setRegionDecoderFactory(regionDecoder)
|
||||
maxScale = 10f
|
||||
beVisible()
|
||||
isQuickScaleEnabled = context.config.oneFingerZoom
|
||||
isQuickScaleEnabled = config.oneFingerZoom
|
||||
isOneToOneZoomEnabled = config.allowOneToOneZoom
|
||||
setResetScaleOnSizeChange(false)
|
||||
setImage(ImageSource.uri(path))
|
||||
setOrientation(rotation)
|
||||
|
@ -410,9 +413,9 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
}
|
||||
|
||||
override fun onReady() {
|
||||
background = ColorDrawable(if (context.config.blackBackground) Color.BLACK else context.config.backgroundColor)
|
||||
val useWidth = if (imageOrientation == ORIENTATION_ROTATE_90 || imageOrientation == ORIENTATION_ROTATE_270) sHeight else sWidth
|
||||
val useHeight = if (imageOrientation == ORIENTATION_ROTATE_90 || imageOrientation == ORIENTATION_ROTATE_270) sWidth else sHeight
|
||||
background = ColorDrawable(if (config.blackBackground) Color.BLACK else config.backgroundColor)
|
||||
val useWidth = if (mImageOrientation == ORIENTATION_ROTATE_90 || mImageOrientation == ORIENTATION_ROTATE_270) sHeight else sWidth
|
||||
val useHeight = if (mImageOrientation == ORIENTATION_ROTATE_90 || mImageOrientation == ORIENTATION_ROTATE_270) sWidth else sHeight
|
||||
setDoubleTapZoomScale(getDoubleTapZoomScale(useWidth, useHeight))
|
||||
mOriginalSubsamplingScale = scale
|
||||
}
|
||||
|
@ -424,15 +427,15 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
}
|
||||
|
||||
override fun onImageLoadError(e: Exception) {
|
||||
view.photo_view.isZoomable = true
|
||||
mView.photo_view.isZoomable = true
|
||||
background = ColorDrawable(Color.TRANSPARENT)
|
||||
isSubsamplingVisible = false
|
||||
mIsSubsamplingVisible = false
|
||||
beGone()
|
||||
}
|
||||
|
||||
override fun onPreviewLoadError(e: Exception) {
|
||||
background = ColorDrawable(Color.TRANSPARENT)
|
||||
isSubsamplingVisible = false
|
||||
mIsSubsamplingVisible = false
|
||||
beGone()
|
||||
}
|
||||
})
|
||||
|
@ -452,9 +455,9 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
}
|
||||
|
||||
private fun checkIfPanorama() {
|
||||
isPanorama = try {
|
||||
val inputStream = if (medium.path.startsWith("content:/")) context!!.contentResolver.openInputStream(Uri.parse(medium.path)) else File(medium.path).inputStream()
|
||||
val imageParser = JpegImageParser().getXmpXml(ByteSourceInputStream(inputStream, medium.name), HashMap<String, Any>())
|
||||
mIsPanorama = try {
|
||||
val inputStream = if (mMedium.path.startsWith("content:/")) context!!.contentResolver.openInputStream(Uri.parse(mMedium.path)) else File(mMedium.path).inputStream()
|
||||
val imageParser = JpegImageParser().getXmpXml(ByteSourceInputStream(inputStream, mMedium.name), HashMap<String, Any>())
|
||||
imageParser.contains("GPano:UsePanoramaViewer=\"True\"", true) || imageParser.contains("<GPano:UsePanoramaViewer>True</GPano:UsePanoramaViewer>", true)
|
||||
} catch (e: Exception) {
|
||||
false
|
||||
|
@ -462,7 +465,7 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
false
|
||||
}
|
||||
|
||||
view.panorama_outline.beVisibleIf(isPanorama)
|
||||
mView.panorama_outline.beVisibleIf(mIsPanorama)
|
||||
}
|
||||
|
||||
private fun getImageOrientation(): Int {
|
||||
|
@ -470,11 +473,11 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
var orient = defaultOrientation
|
||||
|
||||
try {
|
||||
val pathToLoad = getPathToLoad(medium)
|
||||
val pathToLoad = getPathToLoad(mMedium)
|
||||
val exif = android.media.ExifInterface(pathToLoad)
|
||||
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 inputStream = context!!.contentResolver.openInputStream(uri)
|
||||
val exif2 = ExifInterface()
|
||||
|
@ -489,65 +492,65 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
|
||||
private fun getDoubleTapZoomScale(width: Int, height: Int): Float {
|
||||
val bitmapAspectRatio = height / width.toFloat()
|
||||
val screenAspectRatio = ViewPagerActivity.screenHeight / ViewPagerActivity.screenWidth.toFloat()
|
||||
val screenAspectRatio = mScreenHeight / mScreenWidth.toFloat()
|
||||
|
||||
return if (context == null || bitmapAspectRatio == screenAspectRatio) {
|
||||
DEFAULT_DOUBLE_TAP_ZOOM
|
||||
} else if (context!!.portrait && bitmapAspectRatio <= screenAspectRatio) {
|
||||
ViewPagerActivity.screenHeight / height.toFloat()
|
||||
mScreenHeight / height.toFloat()
|
||||
} else if (context!!.portrait && bitmapAspectRatio > screenAspectRatio) {
|
||||
ViewPagerActivity.screenWidth / width.toFloat()
|
||||
mScreenWidth / width.toFloat()
|
||||
} else if (!context!!.portrait && bitmapAspectRatio >= screenAspectRatio) {
|
||||
ViewPagerActivity.screenWidth / width.toFloat()
|
||||
mScreenWidth / width.toFloat()
|
||||
} else if (!context!!.portrait && bitmapAspectRatio < screenAspectRatio) {
|
||||
ViewPagerActivity.screenHeight / height.toFloat()
|
||||
mScreenHeight / height.toFloat()
|
||||
} else {
|
||||
DEFAULT_DOUBLE_TAP_ZOOM
|
||||
}
|
||||
}
|
||||
|
||||
fun rotateImageViewBy(degrees: Int) {
|
||||
loadZoomableViewHandler.removeCallbacksAndMessages(null)
|
||||
view.subsampling_view.beGone()
|
||||
isSubsamplingVisible = false
|
||||
mIoadZoomableViewHandler.removeCallbacksAndMessages(null)
|
||||
mView.subsampling_view.beGone()
|
||||
mIsSubsamplingVisible = false
|
||||
loadBitmap(degrees)
|
||||
}
|
||||
|
||||
private fun initExtendedDetails() {
|
||||
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
|
||||
text = getMediumExtendedDetails(medium)
|
||||
text = getMediumExtendedDetails(mMedium)
|
||||
onGlobalLayout {
|
||||
if (isAdded) {
|
||||
val realY = getExtendedDetailsY(height)
|
||||
if (realY > 0) {
|
||||
y = realY
|
||||
beVisibleIf(text.isNotEmpty())
|
||||
alpha = if (!context!!.config.hideExtendedDetails || !isFullscreen) 1f else 0f
|
||||
alpha = if (!context!!.config.hideExtendedDetails || !mIsFullscreen) 1f else 0f
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
view.photo_details.beGone()
|
||||
mView.photo_details.beGone()
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
if (activity?.isDestroyed == false) {
|
||||
view.subsampling_view.recycle()
|
||||
mView.subsampling_view.recycle()
|
||||
}
|
||||
loadZoomableViewHandler.removeCallbacksAndMessages(null)
|
||||
mIoadZoomableViewHandler.removeCallbacksAndMessages(null)
|
||||
}
|
||||
|
||||
override fun onConfigurationChanged(newConfig: Configuration) {
|
||||
super.onConfigurationChanged(newConfig)
|
||||
|
||||
// avoid GIFs being skewed, played in wrong aspect ratio
|
||||
if (medium.isGIF()) {
|
||||
view.onGlobalLayout {
|
||||
if (mMedium.isGIF()) {
|
||||
mView.onGlobalLayout {
|
||||
Handler().postDelayed({
|
||||
loadGif()
|
||||
}, 50)
|
||||
|
@ -563,10 +566,10 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
|
||||
private fun hideZoomableView() {
|
||||
if (context?.config?.allowZoomingImages == true) {
|
||||
isSubsamplingVisible = false
|
||||
view.subsampling_view.recycle()
|
||||
view.subsampling_view.beGone()
|
||||
loadZoomableViewHandler.removeCallbacksAndMessages(null)
|
||||
mIsSubsamplingVisible = false
|
||||
mView.subsampling_view.recycle()
|
||||
mView.subsampling_view.beGone()
|
||||
mIoadZoomableViewHandler.removeCallbacksAndMessages(null)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -576,17 +579,17 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
|
||||
private fun updateInstantSwitchWidths() {
|
||||
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()
|
||||
view.instant_next_item.layoutParams.width = newWidth.toInt()
|
||||
mView.instant_prev_item.layoutParams.width = newWidth.toInt()
|
||||
mView.instant_next_item.layoutParams.width = newWidth.toInt()
|
||||
}
|
||||
|
||||
override fun fullscreenToggled(isFullscreen: Boolean) {
|
||||
this.isFullscreen = isFullscreen
|
||||
view.photo_details.apply {
|
||||
if (storedShowExtendedDetails && isVisible()) {
|
||||
this.mIsFullscreen = isFullscreen
|
||||
mView.photo_details.apply {
|
||||
if (mStoredShowExtendedDetails && isVisible()) {
|
||||
animate().y(getExtendedDetailsY(height))
|
||||
|
||||
if (storedHideExtendedDetails) {
|
||||
if (mStoredHideExtendedDetails) {
|
||||
animate().alpha(if (isFullscreen) 0f else 1f).start()
|
||||
}
|
||||
}
|
||||
|
@ -595,8 +598,8 @@ class PhotoFragment : ViewPagerFragment() {
|
|||
|
||||
private fun getExtendedDetailsY(height: Int): Float {
|
||||
val smallMargin = resources.getDimension(R.dimen.small_margin)
|
||||
val fullscreenOffset = smallMargin + if (isFullscreen) 0 else context!!.navigationBarHeight
|
||||
val actionsHeight = if (context!!.config.bottomActions && !isFullscreen) resources.getDimension(R.dimen.bottom_actions_height) else 0f
|
||||
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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,8 +32,8 @@ class VideoFragment : ViewPagerFragment() {
|
|||
private lateinit var mBrightnessSideScroll: MediaSideScroll
|
||||
private lateinit var mVolumeSideScroll: MediaSideScroll
|
||||
|
||||
lateinit var mView: View
|
||||
lateinit var medium: Medium
|
||||
private lateinit var mView: View
|
||||
private lateinit var mMedium: Medium
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
mView = inflater.inflate(R.layout.pager_video_item, container, false).apply {
|
||||
|
@ -56,8 +56,8 @@ class VideoFragment : ViewPagerFragment() {
|
|||
}
|
||||
|
||||
storeStateVariables()
|
||||
medium = arguments!!.getSerializable(MEDIUM) as Medium
|
||||
Glide.with(context!!).load(medium.path).into(mView.video_preview)
|
||||
mMedium = arguments!!.getSerializable(MEDIUM) as Medium
|
||||
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
|
||||
checkIfPanorama()
|
||||
|
@ -68,7 +68,7 @@ class VideoFragment : ViewPagerFragment() {
|
|||
video_play_outline.beGone()
|
||||
mVolumeSideScroll.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)
|
||||
}
|
||||
|
||||
if (config.showExtendedDetails != mStoredShowExtendedDetails || config.extendedDetails != mStoredExtendedDetails) {
|
||||
checkExtendedDetails()
|
||||
}
|
||||
|
||||
storeStateVariables()
|
||||
}
|
||||
|
||||
|
@ -132,7 +129,7 @@ class VideoFragment : ViewPagerFragment() {
|
|||
}
|
||||
|
||||
private fun launchVideoPlayer() {
|
||||
activity!!.openPath(medium.path, false)
|
||||
listener?.launchViewVideoIntent(mMedium.path)
|
||||
}
|
||||
|
||||
private fun toggleFullscreen() {
|
||||
|
@ -143,7 +140,7 @@ class VideoFragment : ViewPagerFragment() {
|
|||
if (context!!.config.showExtendedDetails) {
|
||||
mView.video_details.apply {
|
||||
beInvisible() // make it invisible so we can measure it, but not show yet
|
||||
text = getMediumExtendedDetails(medium)
|
||||
text = getMediumExtendedDetails(mMedium)
|
||||
onGlobalLayout {
|
||||
if (isAdded) {
|
||||
val realY = getExtendedDetailsY(height)
|
||||
|
@ -162,8 +159,8 @@ class VideoFragment : ViewPagerFragment() {
|
|||
|
||||
private fun checkIfPanorama() {
|
||||
try {
|
||||
val fis = FileInputStream(File(medium.path))
|
||||
context!!.parseFileChannel(medium.path, fis.channel, 0, 0, 0) {
|
||||
val fis = FileInputStream(File(mMedium.path))
|
||||
context!!.parseFileChannel(mMedium.path, fis.channel, 0, 0, 0) {
|
||||
mIsPanorama = true
|
||||
}
|
||||
} catch (ignored: Exception) {
|
||||
|
@ -173,7 +170,7 @@ class VideoFragment : ViewPagerFragment() {
|
|||
|
||||
private fun openPanorama() {
|
||||
Intent(context, PanoramaVideoActivity::class.java).apply {
|
||||
putExtra(PATH, medium.path)
|
||||
putExtra(PATH, mMedium.path)
|
||||
startActivity(this)
|
||||
}
|
||||
}
|
||||
|
@ -199,6 +196,8 @@ class VideoFragment : ViewPagerFragment() {
|
|||
|
||||
private fun getExtendedDetailsY(height: Int): Float {
|
||||
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
|
||||
}
|
||||
}
|
||||
|
|
|
@ -28,6 +28,8 @@ abstract class ViewPagerFragment : Fragment() {
|
|||
fun goToPrevItem()
|
||||
|
||||
fun goToNextItem()
|
||||
|
||||
fun launchViewVideoIntent(path: String)
|
||||
}
|
||||
|
||||
fun getMediumExtendedDetails(medium: Medium): String {
|
||||
|
|
|
@ -441,4 +441,8 @@ class Config(context: Context) : BaseConfig(context) {
|
|||
var showWidgetFolderName: Boolean
|
||||
get() = prefs.getBoolean(SHOW_WIDGET_FOLDER_NAME, true)
|
||||
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()
|
||||
}
|
||||
|
|
|
@ -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 GROUP_DIRECT_SUBFOLDERS = "group_direct_subfolders"
|
||||
const val SHOW_WIDGET_FOLDER_NAME = "show_widget_folder_name"
|
||||
const val ALLOW_ONE_TO_ONE_ZOOM = "allow_one_to_one_zoom"
|
||||
|
||||
// slideshow
|
||||
const val SLIDESHOW_INTERVAL = "slideshow_interval"
|
||||
|
@ -91,13 +92,15 @@ const val FAVORITES = "favorites"
|
|||
const val RECYCLE_BIN = "recycle_bin"
|
||||
const val SHOW_FAVORITES = "show_favorites"
|
||||
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 SHOW_TEMP_HIDDEN_DURATION = 300000L
|
||||
const val CLICK_MAX_DURATION = 150
|
||||
const val DRAG_THRESHOLD = 8
|
||||
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 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_RENAME = 1024
|
||||
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
|
||||
|
||||
|
|
|
@ -369,11 +369,6 @@ class MediaFetcher(val context: Context) {
|
|||
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) {
|
||||
result *= -1
|
||||
}
|
||||
|
|
BIN
app/src/main/res/drawable-hdpi/ic_next_outline.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
app/src/main/res/drawable-hdpi/ic_prev_outline.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
BIN
app/src/main/res/drawable-xhdpi/ic_next_outline.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
app/src/main/res/drawable-xhdpi/ic_prev_outline.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
BIN
app/src/main/res/drawable-xxhdpi/ic_next_outline.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
app/src/main/res/drawable-xxhdpi/ic_prev_outline.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
app/src/main/res/drawable-xxxhdpi/ic_next_outline.png
Normal file
After Width: | Height: | Size: 6.8 KiB |
BIN
app/src/main/res/drawable-xxxhdpi/ic_prev_outline.png
Normal file
After Width: | Height: | Size: 6.9 KiB |
|
@ -795,6 +795,30 @@
|
|||
|
||||
</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
|
||||
android:id="@+id/extended_details_divider"
|
||||
android:layout_width="match_parent"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<RelativeLayout
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/video_player_holder"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
@ -35,7 +36,7 @@
|
|||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginBottom="120dp"
|
||||
android:layout_marginBottom="200dp"
|
||||
android:alpha="0"
|
||||
android:background="@drawable/black_rounded_background"
|
||||
android:gravity="center"
|
||||
|
@ -46,6 +47,15 @@
|
|||
android:textColor="@android:color/white"
|
||||
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"/>
|
||||
|
||||
</RelativeLayout>
|
||||
|
|
|
@ -137,8 +137,19 @@
|
|||
android:background="?attr/selectableItemBackgroundBorderless"
|
||||
android:padding="@dimen/medium_margin"
|
||||
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_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>
|
||||
|
|
|
@ -5,8 +5,19 @@
|
|||
android:id="@+id/video_time_holder"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentBottom="true"
|
||||
android:background="@drawable/gradient_background">
|
||||
android:layout_alignParentBottom="true">
|
||||
|
||||
<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
|
||||
android:id="@+id/video_toggle_play_pause"
|
||||
|
@ -19,6 +30,18 @@
|
|||
android:src="@drawable/ic_pause_outline"
|
||||
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
|
||||
android:id="@+id/video_curr_time"
|
||||
android:layout_width="wrap_content"
|
||||
|
|
|
@ -110,5 +110,13 @@
|
|||
android:paddingBottom="@dimen/activity_margin"
|
||||
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>
|
||||
</ScrollView>
|
||||
|
|
|
@ -10,6 +10,12 @@
|
|||
android:layout_width="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
|
||||
android:id="@+id/bottom_actions"
|
||||
layout="@layout/bottom_actions"/>
|
||||
|
|
|
@ -120,6 +120,7 @@
|
|||
<string name="loop_slideshow">حلقة عرض الشرائح</string>
|
||||
<string name="slideshow_ended">انتهى عرض الشرائح</string>
|
||||
<string name="no_media_for_slideshow">لم يتم العثور على وسائط لعرض الشرائح</string>
|
||||
<string name="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<string name="thumbnails">المصغرات</string>
|
||||
|
@ -194,7 +196,8 @@
|
|||
<string name="faq_3_title">كيف يمكنني جعل الألبوم يظهر دائمًا في الجزء العلوي؟</string>
|
||||
<string name="faq_3_text">يمكنك الضغط لفترة طويلة على الألبوم المطلوب وتحديد أيقونة الدبوس في الإجراء ، والتي سوف تثبيته إلى الأعلى. يمكنك تثبيت عدة مجلدات أيضًا ، وسيتم ترتيب العناصر المثبتة حسب طريقة الفرز الافتراضية.</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_text">يمنع الاستبعاد من عرض المجلد في الاستوديو البسيط فقط ، بينما يقوم بإخفاء بالعمل على مستوى النظام ككل ويقوم بإخفاء المجلد من المعارض الأخرى أيضًا. وهو يعمل عن طريق إنشاء ملف \".nomedia\" فارغ في المجلد المحدد ، والذي يمكنك بعد ذلك إزالته مع أي مدير ملفات أيضًا.</string>
|
||||
<string name="faq_6_title">لماذا تظهر المجلدات التي تحتوي على ملصقات أو ملصقات موسيقى تغطيها؟</string>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Loop slideshow</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Smyčková prezentace</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Endeløs kørsel</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">Skift visning</string>
|
||||
|
@ -161,15 +162,16 @@
|
|||
<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="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="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_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_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 -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Endlos abspielen</string>
|
||||
<string name="slideshow_ended">Diashow beendet.</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 -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Επανάληψη εμφάνισης διαφανιών</string>
|
||||
<string name="slideshow_ended">Η εμφάνιση διαφανειών τελείωσε</string>
|
||||
<string name="no_media_for_slideshow">Δεν βρέθηκαν πολυμέσα για την εμφάνιση διαφανειών</string>
|
||||
<string name="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">Αλλαγή τύπου εμφάνισης</string>
|
||||
|
@ -170,6 +171,7 @@
|
|||
<string name="show_highest_quality">Εμφάνιση εικόνων με την υψηλότερη δυνατή ποιότητα</string>
|
||||
<string name="show_recycle_bin_last">Εμφάνιση του Κάδου ως τελευταίο στοιχείο στην κύρια οθόνη</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 -->
|
||||
<string name="thumbnails">Εικονίδια</string>
|
||||
|
@ -191,7 +193,8 @@
|
|||
<string name="faq_3_title">Πώς μπορώ να κάνω ένα άλμπουμ να φαίνεται στην κορυφή;</string>
|
||||
<string name="faq_3_text">Μπορείτε να πατήσετε παρατεταμένα στο άλμπουμ και να επιλέξετε το εικονίδιο καρφιτσώματος στο μενού, αυτό θα το καρφιτσώσει στην κορυφή. Επίσης μπορείτε να καρφιτσώσετε πολλαπλούς φακέλους, τα καρφιτσωμένα αντικείμενα θα είναι ταξινομημένα με την προεπιλεγμένη μέθοδο.</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_text">Η εξαίρεση δεν επιτρέπει την εμφάνιση του φακέλου μόνο στο Simple Gallery, ενώ η απόκρυψη λειτουργεί σε επίπεδο συστήματος και θα αποκρύψει τον φάκελο και από άλλες εφαρμογές γκάλερι. Λειτουργεί δημιουργώντας ένα άδειο \".nomedia\" αρχείο στον επιλεγμένο φάκελο, το οποίο μπορείτε να το διαγράψετε και με οποιονδήποτε διαχειριστή αρχείων.</string>
|
||||
<string name="faq_6_title">Γιατί εμφανίζονται φάκελοι με εξώφυλλο μουσικής ή αυτόκολλητα;</string>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Presentación de diapositivas</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Jatkuva diaesitys</string>
|
||||
<string name="slideshow_ended">Diaesitys päättyi</string>
|
||||
<string name="no_media_for_slideshow">Mediaa diaesitykseen ei löytynyt</string>
|
||||
<string name="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Diaporama en boucle</string>
|
||||
<string name="slideshow_ended">Diaporama terminé</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 -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Reproducir en bucle</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
<string name="use_default_orientation">Koristi zadanu orijentaciju slike</string>
|
||||
<string name="fix_date_taken">Ispravi vrijednost datuma snimanja</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 -->
|
||||
<string name="filter_media">Filtriranje medija</string>
|
||||
|
@ -89,7 +89,7 @@
|
|||
<string name="flip_vertically">Okreni vertikalno</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="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 -->
|
||||
<string name="simple_wallpaper">Jednostavna pozadina</string>
|
||||
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Prikaži dijaprojekciju kao petlju</string>
|
||||
<string name="slideshow_ended">Kraj dijaprojekcije</string>
|
||||
<string name="no_media_for_slideshow">Nema datoteka za dijaprojekciju</string>
|
||||
<string name="use_crossfade_animation">Koristi prijelazne animacije</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">Promijeni vrstu prikaza</string>
|
||||
|
@ -133,18 +134,18 @@
|
|||
<string name="by_extension">Vrsta datoteke</string>
|
||||
|
||||
<!-- Widgets -->
|
||||
<string name="folder_on_widget">Folder shown on the widget:</string>
|
||||
<string name="show_folder_name">Show folder name</string>
|
||||
<string name="folder_on_widget">Mapa prikazana na widgetu:</string>
|
||||
<string name="show_folder_name">Prikaži naziv mape</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<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="loop_videos">Ponavljanje videa</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="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_system_setting">Postavke sustava</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="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_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="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="deep_zoomable_images">Deep zoomable images</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="allow_down_gesture">Allow closing the fullscreen view with a down gesture</string>
|
||||
<string name="deep_zoomable_images">Duboko zumirane slike</string>
|
||||
<string name="show_highest_quality">Prikaži slike u najvišoj mogućoj kvaliteti</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">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 -->
|
||||
<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_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_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_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>
|
||||
|
@ -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_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_13_title">I see some color banding on the images. How can I improve the quality?</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_14_title">I have hidden a file/folder. How can I unhide it?</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_13_title">Vidim nekakvno preklapanje boja na slikama. Kako mogu poboljšati kvalitetu?</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">Sakrio sam datoteku/mapu. Kako je mogu otkriti?</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 -->
|
||||
<!-- 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">
|
||||
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:
|
||||
1. Search
|
||||
2. Slideshow
|
||||
3. Notch support
|
||||
4. Pinning folders to the top
|
||||
5. Filtering media files by type
|
||||
6. Recycle bin for easy file recovery
|
||||
7. Fullscreen view orientation locking
|
||||
8. Marking favorite files for easy access
|
||||
9. Quick fullscreen media closing with down gesture
|
||||
10. An editor for modifying images and applying filters
|
||||
11. Password protection for protecting hidden items or the whole app
|
||||
12. Changing the thumbnail column count with gestures or menu buttons
|
||||
13. Customizable bottom actions at the fullscreen view for quick access
|
||||
14. Showing extended details over fullscreen media with desired file properties
|
||||
15. Several different ways of sorting or grouping items, both ascending and descending
|
||||
16. Hiding folders (affects other apps too), excluding folders (affects only Simple Gallery)
|
||||
Navedimo neke od značajki koje vrijedi spomenuti:
|
||||
1. Pretraživanje
|
||||
2. Dijaprojekcija
|
||||
3. Podrška za notch
|
||||
4. Pričvršćivanje mapa na vrh
|
||||
5. Filtriranje medijskih datoteka prema vrsti
|
||||
6. Koš za smeće za jednostavan oporavak datoteke
|
||||
7. Zaključavanje prikaza na cijelom zaslonu
|
||||
8. Označavanje omiljenih datoteka radi lakog pristupa
|
||||
9. Brzi mediji na cijelom zaslonu zatvaraju se pokretom prema dolje
|
||||
10. Urednik za izmjenu slika i primjenu filtara
|
||||
11. Zaštita lozinkom za zaštitu skrivenih stavki ili cijele aplikacije
|
||||
12. Promjena broja stupaca minijatura pomoću pokreta ili gumba izbornika
|
||||
13. Prilagodljive akcije na dnu cijelog zaslona za brzi pristup
|
||||
14. Prikazivanje proširenih detalja preko medija, preko cijelog zaslona sa željenim svojstvima datoteke
|
||||
15. Nekoliko različitih načina razvrstavanja ili grupiranja stavki, kako rastućih tako i silaznih
|
||||
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>
|
||||
|
||||
<!--
|
||||
|
|
|
@ -117,6 +117,7 @@
|
|||
<string name="loop_slideshow">Diavetítés ismétlése</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="use_crossfade_animation">Animáció átmenet használat</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Engedélyezi az 1:1 nagyítást két dupla érintéssel</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
@ -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 -->
|
||||
<!-- 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">
|
||||
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.
|
||||
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Slideshow tanpa henti</string>
|
||||
<string name="slideshow_ended">Slideshow berakhir</string>
|
||||
<string name="no_media_for_slideshow">Tidak ditemukan media untuk slideshow</string>
|
||||
<string name="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Ripeti presentazione</string>
|
||||
<string name="slideshow_ended">La presentazione è terminata</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 -->
|
||||
<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_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_one_to_one_zoom">Permetti l\'ingrandimento 1:1 con un doppio tasto</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
@ -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.
|
||||
|
||||
|
||||
Alcune funzionalità che vale la pena accennare:
|
||||
1. Ricerca
|
||||
2. Presentazione
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">スライドショーをリピート再生する</string>
|
||||
<string name="slideshow_ended">スライドショーが終了しました</string>
|
||||
<string name="no_media_for_slideshow">スライドショーに表示するメディアがありません</string>
|
||||
<string name="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">表示形式の変更</string>
|
||||
|
@ -170,6 +171,7 @@
|
|||
<string name="show_highest_quality">可能な限り高品質で画像を表示</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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">슬라이드 쇼 반복</string>
|
||||
<string name="slideshow_ended">슬라이드 쇼 종료</string>
|
||||
<string name="no_media_for_slideshow">슬라이드 쇼를 위한 미디어를 찾을 수 없음</string>
|
||||
<string name="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Klipuoti skaidrių demonstraciją</string>
|
||||
<string name="slideshow_ended">Skaidrių demonstracija pasibaigė</string>
|
||||
<string name="no_media_for_slideshow">Nerasta medijos skaidrių demonstracijai</string>
|
||||
<string name="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -89,7 +89,7 @@
|
|||
<string name="flip_vertically">Speilvend vertikalt</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="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 -->
|
||||
<string name="simple_wallpaper">Bakgrunnsbilde</string>
|
||||
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Gjenta lysbildeshow</string>
|
||||
<string name="slideshow_ended">Lysbildeshowet er slutt</string>
|
||||
<string name="no_media_for_slideshow">Ingen media for lysbildeshowet er funnet</string>
|
||||
<string name="use_crossfade_animation">Bruk krysstoningsanimasjon</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">Endre visningstype</string>
|
||||
|
@ -133,8 +134,8 @@
|
|||
<string name="by_extension">Endelse</string>
|
||||
|
||||
<!-- Widgets -->
|
||||
<string name="folder_on_widget">Folder shown on the widget:</string>
|
||||
<string name="show_folder_name">Show folder name</string>
|
||||
<string name="folder_on_widget">Mappe vist på modulen:</string>
|
||||
<string name="show_folder_name">Vis mappenavn</string>
|
||||
|
||||
<!-- Settings -->
|
||||
<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_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_one_to_one_zoom">Tillat å zoome 1:1 med to dobbeltrykk</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Voorstelling herhalen</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="use_crossfade_animation">Crossfade-animaties gebruiken</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">1:1 zoomen na 2x dubbelklikken</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Zapętlaj</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Apresentação em ciclo</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Apresentação em ciclo</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Зациклить</string>
|
||||
<string name="slideshow_ended">Слайдшоу завершилось</string>
|
||||
<string name="no_media_for_slideshow">Медиафайлов для слайдшоу не найдено</string>
|
||||
<string name="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">Вид</string>
|
||||
|
@ -170,6 +171,7 @@
|
|||
<string name="show_highest_quality">Показывать изображения с максимально высоким качеством</string>
|
||||
<string name="show_recycle_bin_last">Показывать корзину как последний элемент на главном экране</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 -->
|
||||
<string name="thumbnails">Миниатюры</string>
|
||||
|
@ -191,7 +193,8 @@
|
|||
<string name="faq_3_title">Как я могу сделать альбом всегда отображающимся сверху?</string>
|
||||
<string name="faq_3_text">Вы можете длительным нажатием на желаемый альбом открыть меню действий в нём выбрать пункт \"Закрепить\". Можно закрепить несколько альбомов (папок); прикреплённые элементы будут отсортированы по методу сортировки по умолчанию.</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_text">Исключение запрещает отображение папки только в Simple Gallery, в то время как скрытие работает системно и скрывает папку из других галерей. Это достигается путём создания пустого файла \".nomedia\" в данной папке, который впоследствии можно удалить любым файловым менеджером.</string>
|
||||
<string name="faq_6_title">Почему отображаются папки с музыкальными обложками?</string>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Automaticky reštartovať prezentáciu</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="use_crossfade_animation">Použiť prelínacie animácie</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Povoliť 1:1 priblíženie dvojnásobným dvojklikom</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Ponavljaj diaprojekcijo</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Spela upp i en slinga</string>
|
||||
<string name="slideshow_ended">Bildspelet har avslutats</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 -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Slayt gösterisini tekrarla</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Зациклити показ слайдів</string>
|
||||
<string name="slideshow_ended">Слайдшоу закінчено</string>
|
||||
<string name="no_media_for_slideshow">Не знайдено медіафайлів для показу у слайдшоу</string>
|
||||
<string name="use_crossfade_animation">Анімувати перехід між елементами</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">Змінити тип перегляду</string>
|
||||
|
@ -170,6 +171,7 @@
|
|||
<string name="show_highest_quality">Показувати зображення в найвищій можливій якості</string>
|
||||
<string name="show_recycle_bin_last">Показувати \"Кошик\" останнім елементом на головному екрані</string>
|
||||
<string name="allow_down_gesture">Дозволити закриття повноекранного перегляду свайпом згори вниз</string>
|
||||
<string name="allow_one_to_one_zoom">Дозволити масштабування до 1:1 подвійним тапом</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<string name="thumbnails">Ескізи</string>
|
||||
|
@ -191,7 +193,8 @@
|
|||
<string name="faq_3_title">Як зробити альбом завжди доступним у верхній частині?</string>
|
||||
<string name="faq_3_text">Ви можете виконати довге натискання на бажаному альбомі і вибрати піктограму \"Закріпити\" у меню дій, що закріпить його вгорі. Ви також можете закріпити декілька тек; закріплені елементи будуть відсортовані за методом сортування за-замовчуванням.</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_text">\"Виключити\" запобігає відображенню теки тільки в додатку Simple Gallery, в той час як \"Приховати\" працює на системному рівні і приховує теку і в інших галереях також. Це здійснюється шляхом створення порожнього файлу \".nomedia\" в заданій теці, який може бути видалений пізніше будь-яким файловим менеджером.</string>
|
||||
<string name="faq_6_title">Чому відображаються теки з музичними обкладинками або стікерами?</string>
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">循环幻灯片</string>
|
||||
<string name="slideshow_ended">幻灯片结束</string>
|
||||
<string name="no_media_for_slideshow">未发现可用媒体</string>
|
||||
<string name="use_crossfade_animation">使用交叉渐变动画</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">更改视图类型</string>
|
||||
|
@ -170,6 +171,7 @@
|
|||
<string name="show_highest_quality">以最高质量显示图像</string>
|
||||
<string name="show_recycle_bin_last">在主屏幕界面的最后一项显示回收站</string>
|
||||
<string name="allow_down_gesture">使用下滑手势关闭全屏视图</string>
|
||||
<string name="allow_one_to_one_zoom">双击两次后 1:1 放大图像</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<string name="thumbnails">缩略图</string>
|
||||
|
@ -190,7 +192,8 @@
|
|||
<string name="faq_3_title">如何让某个相册始终显示在最上面?</string>
|
||||
<string name="faq_3_text">你可以长按该相册并在操作栏中点击图钉图标,这样 就可以将其固定在顶部了。你也可以固定多个文件夹,固定项目将按照默认排序方法排序。</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_text">排除功能只是防止其在简约图库中显示,而隐藏功能则使用的是系统的方法,这样做也会在其他图库中隐藏。它的工作原理是在给定的文件夹中创建一个空的.nomedia文件,你可以使用任何文件管理器删除它。</string>
|
||||
<string name="faq_6_title">为什么会出现音乐艺术家封面或贴纸文件夹?</string>
|
||||
|
@ -214,7 +217,7 @@
|
|||
|
||||
<!-- Strings displayed only on Google Playstore. Optional, but good to have -->
|
||||
<!-- Short description has to have less than 80 chars -->
|
||||
<string name="app_short_description">An offline gallery for managing your files without ads, respecting your privacy.</string>
|
||||
<string name="app_short_description">一个没有广告,尊重隐私,便于管理文件的离线图库。</string>
|
||||
<string name="app_long_description">
|
||||
一个高度可定制的图库,支持很多的图像和视频类型,包括SVG,RAW,全景照片和视频。
|
||||
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">投影片循環</string>
|
||||
<string name="slideshow_ended">投影片結束</string>
|
||||
<string name="no_media_for_slideshow">找不到投影片的媒體檔案</string>
|
||||
<string name="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<string name="change_view_type">改變瀏覽類型</string>
|
||||
|
@ -170,6 +171,7 @@
|
|||
<string name="show_highest_quality">以最高品質顯示圖片</string>
|
||||
<string name="show_recycle_bin_last">回收桶顯示在主畫面最後一項</string>
|
||||
<string name="allow_down_gesture">允許用下滑手勢來關閉全螢幕檢視</string>
|
||||
<string name="allow_one_to_one_zoom">允許用兩次雙擊來1:1縮放</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<string name="thumbnails">縮圖</string>
|
||||
|
@ -191,7 +193,8 @@
|
|||
<string name="faq_3_title">我如何讓某個相冊總是出現在頂端?</string>
|
||||
<string name="faq_3_text">你可以長按想要的相冊,然後在操作選單中選擇[圖釘]圖示,就會釘選於頂端。你也能釘選多個資料夾,釘選的項目會依預設的排序方法來排序。</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_text">[排除]只在簡易相簿中避免顯示出來;而[隱藏]則作用於整個系統,資料夾也會被其他相簿隱藏。這是藉由在指定資料夾內建立一個\".nomedia\"空白檔案來進行隱藏,你之後也能用任何檔案管理器移除。</string>
|
||||
<string name="faq_6_title">為什麼有些音樂專輯封面或貼圖的資料夾會出現?</string>
|
||||
|
|
|
@ -2,6 +2,12 @@
|
|||
<resources>
|
||||
|
||||
<!-- 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">
|
||||
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
|
||||
|
|
|
@ -116,6 +116,7 @@
|
|||
<string name="loop_slideshow">Loop slideshow</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="use_crossfade_animation">Use crossfade animations</string>
|
||||
|
||||
<!-- View types -->
|
||||
<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_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_one_to_one_zoom">Allow 1:1 zooming in with two double taps</string>
|
||||
|
||||
<!-- Setting sections -->
|
||||
<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_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_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_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>
|
||||
|
|