From 7487a9e711353a8bd9ca95ebdb66d298a425c992 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hevesi=20J=C3=A1nos?= <44799533+hevesij@users.noreply.github.com> Date: Sun, 30 Dec 2018 16:44:30 +0100 Subject: [PATCH 01/54] Update strings.xml --- app/src/main/res/values-hu/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 6734e0eb2..22699c40c 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -217,7 +217,7 @@ Ezzel csak a kiválasztott mappák láthatók, mivel a kizárás és a befoglal - An offline gallery for managing your files without ads, respecting your privacy. + Egy offline galéria a fájlok hirdetés nélküli kezelésére, a magánélet tiszteletben tartása mellett. 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. From 56f663b590a426ecf615aa255ac942a37fa3ce77 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 3 Jan 2019 22:46:29 +0100 Subject: [PATCH 02/54] implement video sliding by finger dragging to sides --- .../pro/activities/VideoPlayerActivity.kt | 32 ++++++++++++++++++- .../main/res/layout/activity_video_player.xml | 2 +- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index d4ea4fb25..7ffe3930d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -26,6 +26,7 @@ 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.DRAG_THRESHOLD import com.simplemobiletools.gallery.pro.helpers.MIN_SKIP_LENGTH import kotlinx.android.synthetic.main.activity_video_player.* import kotlinx.android.synthetic.main.bottom_video_time_holder.* @@ -35,9 +36,11 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen private var mIsPlaying = false private var mWasVideoStarted = false private var mIsDragged = 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 @@ -45,6 +48,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen private var mTouchDownX = 0f private var mTouchDownY = 0f + private var mProgressAtDown = 0L private var mCloseDownThreshold = 100f private var mIgnoreCloseDown = false @@ -177,6 +181,8 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen fullscreenToggled(true) }, 500) } + + mDragThreshold = DRAG_THRESHOLD * resources.displayMetrics.density } private fun initExoPlayer() { @@ -370,6 +376,8 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen } video_surface.layoutParams = this } + + mScreenWidth = (screenWidth * 0.8).toInt() } private fun changeOrientation() { @@ -412,7 +420,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,8 +461,26 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen MotionEvent.ACTION_DOWN -> { mTouchDownX = event.x mTouchDownY = event.y + 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))) { + 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) + } + } MotionEvent.ACTION_UP -> { val diffX = mTouchDownX - event.x val diffY = mTouchDownY - event.y @@ -463,6 +489,10 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen supportFinishAfterTransition() } mIgnoreCloseDown = false + if (mIsDragged && !mIsPlaying) { + togglePlayPause() + } + mIsDragged = false } } } diff --git a/app/src/main/res/layout/activity_video_player.xml b/app/src/main/res/layout/activity_video_player.xml index 8a0efeeb3..a9208d1f2 100644 --- a/app/src/main/res/layout/activity_video_player.xml +++ b/app/src/main/res/layout/activity_video_player.xml @@ -35,7 +35,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" From 1bc4ce47bb7be05364276df999386e3c1beac30f Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 3 Jan 2019 23:45:59 +0100 Subject: [PATCH 03/54] move the video player bottom gradient in a different view --- .../gallery/pro/activities/PanoramaVideoActivity.kt | 1 + .../gallery/pro/activities/VideoPlayerActivity.kt | 1 + app/src/main/res/layout/activity_video_player.xml | 13 ++++++++++++- .../main/res/layout/bottom_video_time_holder.xml | 3 +-- 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaVideoActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaVideoActivity.kt index 8183613d4..c442bd718 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaVideoActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PanoramaVideoActivity.kt @@ -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 diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 7ffe3930d..0ed0c69cc 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -399,6 +399,7 @@ 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() + video_bottom_gradient.animate().alpha(newAlpha).start() video_seekbar.setOnSeekBarChangeListener(if (mIsFullscreen) null else this) arrayOf(video_toggle_play_pause, video_curr_time, video_duration).forEach { it.isClickable = !mIsFullscreen diff --git a/app/src/main/res/layout/activity_video_player.xml b/app/src/main/res/layout/activity_video_player.xml index a9208d1f2..8da8fc15d 100644 --- a/app/src/main/res/layout/activity_video_player.xml +++ b/app/src/main/res/layout/activity_video_player.xml @@ -1,6 +1,7 @@ @@ -46,6 +47,16 @@ android:textColor="@android:color/white" android:textSize="@dimen/extra_big_text_size"/> - + + + diff --git a/app/src/main/res/layout/bottom_video_time_holder.xml b/app/src/main/res/layout/bottom_video_time_holder.xml index 69acead92..1972b1c53 100644 --- a/app/src/main/res/layout/bottom_video_time_holder.xml +++ b/app/src/main/res/layout/bottom_video_time_holder.xml @@ -5,8 +5,7 @@ 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"> Date: Thu, 3 Jan 2019 23:48:33 +0100 Subject: [PATCH 04/54] animate bottom videoplayer elements separately, not the whole holder --- .../gallery/pro/activities/VideoPlayerActivity.kt | 6 +++--- app/src/main/res/layout/activity_video_player.xml | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 0ed0c69cc..9b0b555ce 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -397,9 +397,9 @@ 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() - video_bottom_gradient.animate().alpha(newAlpha).start() + arrayOf(video_toggle_play_pause, 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 { it.isClickable = !mIsFullscreen diff --git a/app/src/main/res/layout/activity_video_player.xml b/app/src/main/res/layout/activity_video_player.xml index 8da8fc15d..a87ee4cc5 100644 --- a/app/src/main/res/layout/activity_video_player.xml +++ b/app/src/main/res/layout/activity_video_player.xml @@ -56,7 +56,6 @@ android:background="@drawable/gradient_background" tools:ignore="UnknownIdInLayout"/> - + From ed4d8702618e54e946fc7b858886cd07dbe2837a Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 3 Jan 2019 23:53:57 +0100 Subject: [PATCH 05/54] show the current video progress if dragging at fullscreen mode --- .../pro/activities/VideoPlayerActivity.kt | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 9b0b555ce..53ed1026c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -470,6 +470,11 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen 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() @@ -490,8 +495,16 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen supportFinishAfterTransition() } mIgnoreCloseDown = false - if (mIsDragged && !mIsPlaying) { - togglePlayPause() + if (mIsDragged) { + if (mIsFullscreen) { + arrayOf(video_curr_time, video_seekbar, video_duration).forEach { + it.animate().alpha(0f).start() + } + } + + if (!mIsPlaying) { + togglePlayPause() + } } mIsDragged = false } From 80d3bf4cea709517b18b1ecd14398a4da7dc5b8c Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 11:27:53 +0100 Subject: [PATCH 06/54] remove some jerkyness during video playback fastforward/rewind --- .../pro/activities/VideoPlayerActivity.kt | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 53ed1026c..a7cb97cd9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -32,6 +32,8 @@ 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 @@ -45,6 +47,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen 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 @@ -97,7 +100,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) } } @@ -485,6 +493,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen newProgress = Math.max(Math.min(mExoPlayer!!.duration.toFloat(), newProgress), 0f) val newSeconds = (newProgress / 1000).toInt() setPosition(newSeconds) + resetPlayWhenReady() } } MotionEvent.ACTION_UP -> { @@ -511,12 +520,12 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen } } - private fun cleanup() { - pauseVideo() - video_curr_time.text = 0.getFormattedDuration() - releaseExoPlayer() - video_seekbar.progress = 0 - mTimerHandler.removeCallbacksAndMessages(null) + private fun resetPlayWhenReady() { + mExoPlayer?.playWhenReady = false + mPlayWhenReadyHandler.removeCallbacksAndMessages(null) + mPlayWhenReadyHandler.postDelayed({ + mExoPlayer?.playWhenReady = true + }, PLAY_WHEN_READY_DRAG_DELAY) } private fun releaseExoPlayer() { @@ -530,6 +539,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { if (mExoPlayer != null && fromUser) { setPosition(progress) + resetPlayWhenReady() } } From 4957baf8e2894dad454a4733736d2e703a3f2d11 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 11:44:13 +0100 Subject: [PATCH 07/54] improving the UX at some video gestures --- .../pro/activities/VideoPlayerActivity.kt | 34 +++++++++---------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index a7cb97cd9..137d5e7cd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -26,6 +26,7 @@ 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.CLICK_MAX_DURATION import com.simplemobiletools.gallery.pro.helpers.DRAG_THRESHOLD import com.simplemobiletools.gallery.pro.helpers.MIN_SKIP_LENGTH import kotlinx.android.synthetic.main.activity_video_player.* @@ -51,6 +52,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen private var mTouchDownX = 0f private var mTouchDownY = 0f + private var mTouchDownTime = 0L private var mProgressAtDown = 0L private var mCloseDownThreshold = 100f private var mIgnoreCloseDown = false @@ -144,32 +146,22 @@ 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_player_holder.setOnTouchListener { view, event -> + handleEvent(event) + true } - if (config.allowDownGesture) { - video_player_holder.setOnTouchListener { v, event -> - handleEvent(event) - false - } - - video_surface.setOnTouchListener { v, event -> - handleEvent(event) - false - } + video_surface.setOnTouchListener { view, event -> + handleEvent(event) + 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 -> @@ -470,6 +462,7 @@ 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 @@ -500,9 +493,10 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen 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) { @@ -514,6 +508,10 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen if (!mIsPlaying) { togglePlayPause() } + } else { + if (System.currentTimeMillis() - mTouchDownTime < CLICK_MAX_DURATION) { + fullscreenToggled(!mIsFullscreen) + } } mIsDragged = false } From 121977395f9b0fa722eaa5f496cef0af2a42b9ec Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 11:56:33 +0100 Subject: [PATCH 08/54] updating the fast-forward related FAQ item, add horizontal gestures --- .../com/simplemobiletools/gallery/pro/extensions/Activity.kt | 2 +- app/src/main/res/values-ar/strings.xml | 3 ++- app/src/main/res/values-az/strings.xml | 3 ++- app/src/main/res/values-ca/strings.xml | 3 ++- app/src/main/res/values-cs/strings.xml | 3 ++- app/src/main/res/values-da/strings.xml | 3 ++- app/src/main/res/values-de/strings.xml | 3 ++- app/src/main/res/values-el/strings.xml | 3 ++- app/src/main/res/values-es/strings.xml | 3 ++- app/src/main/res/values-fi/strings.xml | 3 ++- app/src/main/res/values-fr/strings.xml | 3 ++- app/src/main/res/values-gl/strings.xml | 3 ++- app/src/main/res/values-hr/strings.xml | 3 ++- app/src/main/res/values-hu/strings.xml | 3 ++- app/src/main/res/values-id/strings.xml | 3 ++- app/src/main/res/values-it/strings.xml | 3 ++- app/src/main/res/values-ja/strings.xml | 3 ++- app/src/main/res/values-ko-rKR/strings.xml | 3 ++- app/src/main/res/values-lt/strings.xml | 3 ++- app/src/main/res/values-nb/strings.xml | 3 ++- app/src/main/res/values-nl/strings.xml | 3 ++- app/src/main/res/values-pl/strings.xml | 3 ++- app/src/main/res/values-pt-rBR/strings.xml | 3 ++- app/src/main/res/values-pt/strings.xml | 3 ++- app/src/main/res/values-ru/strings.xml | 3 ++- app/src/main/res/values-sk/strings.xml | 3 ++- app/src/main/res/values-sl/strings.xml | 3 ++- app/src/main/res/values-sv/strings.xml | 3 ++- app/src/main/res/values-tr/strings.xml | 3 ++- app/src/main/res/values-uk/strings.xml | 3 ++- app/src/main/res/values-zh-rCN/strings.xml | 3 ++- app/src/main/res/values-zh-rTW/strings.xml | 3 ++- app/src/main/res/values/strings.xml | 3 ++- 33 files changed, 65 insertions(+), 33 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt index a8103b206..1c66fdf2b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/extensions/Activity.kt @@ -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), diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 2f15a3572..215f2eff1 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -194,7 +194,8 @@ كيف يمكنني جعل الألبوم يظهر دائمًا في الجزء العلوي؟ يمكنك الضغط لفترة طويلة على الألبوم المطلوب وتحديد أيقونة الدبوس في الإجراء ، والتي سوف تثبيته إلى الأعلى. يمكنك تثبيت عدة مجلدات أيضًا ، وسيتم ترتيب العناصر المثبتة حسب طريقة الفرز الافتراضية. كيف يمكنني تقديم مقاطع فيديو بسرعة؟ - يمكنك النقر على النصوص الحالية أو أقصى مدة قريبة من شريط السحب ، والتي ستنقل الفيديو إما للخلف أو إلى الأمام. + 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. + يمكنك النقر على النصوص الحالية أو أقصى مدة قريبة من شريط السحب ، والتي ستنقل الفيديو إما للخلف أو إلى الأمام. ما الفرق بين إخفاء واستبعاد مجلد؟ يمنع الاستبعاد من عرض المجلد في الاستوديو البسيط فقط ، بينما يقوم بإخفاء بالعمل على مستوى النظام ككل ويقوم بإخفاء المجلد من المعارض الأخرى أيضًا. وهو يعمل عن طريق إنشاء ملف \".nomedia\" فارغ في المجلد المحدد ، والذي يمكنك بعد ذلك إزالته مع أي مدير ملفات أيضًا. لماذا تظهر المجلدات التي تحتوي على ملصقات أو ملصقات موسيقى تغطيها؟ diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index e12e2ee27..e606f0680 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 555fd7dbd..a17bb279d 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -191,7 +191,8 @@ Com puc fer que un àlbum sempre aparegui a la part superior? 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. Com puc fer avançar els vídeos? - 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. + 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. + 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. Quina és la diferència entre ocultar i excloure una carpeta? 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. Per què apareixen les carpetes amb les portades de la música o adhesius? diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index b27b77b50..e3fd20acd 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -191,7 +191,8 @@ Jak můžu dosáhnout, aby bylo dané album stále zobrazeno první? 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í. Jak můžu rychle posunout videa? - 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. + 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. + 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. Jaký je rozdíl mezi Skrytím a Vyloučením složky? 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ů. Proč se mi zobrazují složky s obaly hudebních alb, nebo nálepkami? diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 059977161..c7609290d 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index ddae898bf..9203a3b6a 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -191,7 +191,8 @@ Wie kann ich ein Album immer zuoberst erscheinen lassen? 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. Wie kann ich in Videos vor- oder zurückspringen? - 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. + 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. + 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. Was ist der Unterschied zwischen \'Verstecken\' und \'Ausschließen\' eines Ordners? \'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. Wieso erscheinen Ordner mit Musik-Cover oder Stickers? diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index bec488bcf..b9bb00f78 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -191,7 +191,8 @@ Πώς μπορώ να κάνω ένα άλμπουμ να φαίνεται στην κορυφή; Μπορείτε να πατήσετε παρατεταμένα στο άλμπουμ και να επιλέξετε το εικονίδιο καρφιτσώματος στο μενού, αυτό θα το καρφιτσώσει στην κορυφή. Επίσης μπορείτε να καρφιτσώσετε πολλαπλούς φακέλους, τα καρφιτσωμένα αντικείμενα θα είναι ταξινομημένα με την προεπιλεγμένη μέθοδο. Πώς μπορώ να τρέξω μπροστά (fast-forward) τα βίντεο; - Μπορείτε να αγγίξετε στο τρέχον ή στο κείμενο μέγιστης διάρκειας κοντά στην μπάρα αναζήτησης. Αυτό θα μετακινήσει το βίντεο μπροστά ή πίσω. + 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. + Μπορείτε να αγγίξετε στο τρέχον ή στο κείμενο μέγιστης διάρκειας κοντά στην μπάρα αναζήτησης. Αυτό θα μετακινήσει το βίντεο μπροστά ή πίσω. Ποια είναι διαφορά μεταξύ απόκρυψης και εξαίρεσης ενός φακέλου; Η εξαίρεση δεν επιτρέπει την εμφάνιση του φακέλου μόνο στο Simple Gallery, ενώ η απόκρυψη λειτουργεί σε επίπεδο συστήματος και θα αποκρύψει τον φάκελο και από άλλες εφαρμογές γκάλερι. Λειτουργεί δημιουργώντας ένα άδειο \".nomedia\" αρχείο στον επιλεγμένο φάκελο, το οποίο μπορείτε να το διαγράψετε και με οποιονδήποτε διαχειριστή αρχείων. Γιατί εμφανίζονται φάκελοι με εξώφυλλο μουσικής ή αυτόκολλητα; diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 16787f52d..9dd24dd17 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -191,7 +191,8 @@ ¿Cómo puedo hacer que un álbum siempre aparezca en la parte superior? 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. ¿Cómo puedo avanzar videos? - 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. + 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. + 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. ¿Cuál es la diferencia entre ocultar y excluir una carpeta? 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. ¿Por qué aparecen las carpetas con la portada de la música o las pegatinas? diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 5575db260..2cf968fd1 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 89d4c2a6c..cbff85390 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -190,7 +190,8 @@ Comment faire pour qu\'un album soit toujours affiché tout en haut ? 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. Comment avancer rapidement dans les vidéos ? - 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. + 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. + 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. Quelle est la différence entre masquer et exclure un dossier ? \"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. Pourquoi des dossiers avec des pochettes d\'albums musicaux ou des miniatures d\'images sont affichés ? diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 919d02c66..12caf938f 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -191,7 +191,8 @@ Cómo podo facer que un álbume apareza sempre arriba de todo? 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. Cómo podo aumentar a velocidade de reprodución de vídeo? - 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. + 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. + 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. Cal é a diferenza entre agochar e excluír un cartafol? 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. Por qué aparecen cartafoles de música con portadas ou pegatinas? diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index b7452023b..fd2255654 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -191,7 +191,8 @@ Kako postići da je album uvijek na vrhu? 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. Kako mogu ubrzati video? - 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. + 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. + 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. Koja je razlika između skrivanja i izuzimanja mape? 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. Zašto se prikazuju mape s naslovnicama albuma i minijaturama slika? diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 0d2833293..062e222be 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -192,7 +192,8 @@ A következő alkalommal, amikor megpróbál megnyitni egy képet vagy videót, Hogyan állíthatok be egy albumot úgy, hogy mindig felül legyen? 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. Hogyan tudom előre tekerni a videókat? - 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. + 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. + 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. Mi a különbség a mappa elrejtése és kizárása között? 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. Miért jelennek meg a zenei borítóval vagy matricával rendelkező mappák? diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 9bf419404..fd670d229 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -191,7 +191,8 @@ Bagaimana agar sebuah album selalu muncul paling atas di daftar? 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. Bagaimana cara mempercepat laju video? - Anda bisa mengklik teks durasi saat ini/maksimal di dekat penggeser durasi, itu akan memajukan atau memundurkan video. + 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. + Anda bisa mengklik teks durasi saat ini/maksimal di dekat penggeser durasi, itu akan memajukan atau memundurkan video. Apa perbedaan antara menyembunyikan dan mengecualikan folder? 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. Mengapa folder dengan gambar album musik atau stiker muncul? diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index ba7f48e3b..065df5fc2 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -191,7 +191,8 @@ Come posso fare apparire un album sempre in cima? 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. Come avanzo velocemente nei video? - Si può cliccare sui testi di durata attuale o massima vicino alla barra di avanzamento, ciò avanzerà o riavvolgerà il video. + 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. + Si può cliccare sui testi di durata attuale o massima vicino alla barra di avanzamento, ciò avanzerà o riavvolgerà il video. Che differenza c\'è tra nascondere ed escludere una cartella? 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. Perchè vengono mostrate cartelle con copertine o adesivi di musica? diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 635c0759c..22aed49c6 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. 動画を早送りするにはどうすればよいですか? - シークバーの隣にある経過時間または最大時間の表示を押すごとに早送り、または巻き戻しが作動します。 + 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. + シークバーの隣にある経過時間または最大時間の表示を押すごとに早送り、または巻き戻しが作動します。 What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 440a533b6..68f668951 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index bdaefa6bb..cb313ba80 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -191,7 +191,8 @@ Kaip aš galiu padaryti albumą visada rodomą viršuje? 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ą. Kaip galėčiau greitai prasukti vaizdo įrašus? - Galite spustelėti tekstus šalia slinkties juostos, kad būtų perkeltas vaizdo įrašas atgal arba į priekį. + 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. + Galite spustelėti tekstus šalia slinkties juostos, kad būtų perkeltas vaizdo įrašas atgal arba į priekį. Koks skirtumas tarp slėpimo ir išskyrimo iš aplanko? 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. Kodėl pasirodo aplankai su muzikos viršeliu ar lipdukais? diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 04ff031ca..654afda10 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index efab9aca5..aa17cbbd0 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index fa1b6654f..ac7674809 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -190,7 +190,8 @@    Jak sprawić, aby album(y) zawsze pojawiał(y) się na górze?    Przytrzymaj album(y) i wybierz ikonę przypięcia w pasku akcji.    Jak mogę przwijać filmy? -    Kliknij na napisie z czasem trwania filmu, bądź tym z obecnym momentem filmu. + 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. +    Kliknij na napisie z czasem trwania filmu, bądź tym z obecnym momentem filmu.    Jaka jest różnica między ukryciem, a wykluczeniem folderu?    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.    Dlaczego pokazują mi się foldery z okładkami do piosenek i tym podobne rzeczy? diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index cb3587889..e3e1e5ec1 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index c3932e292..0534f4dd1 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f4cea6eb6..602b1d975 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -191,7 +191,8 @@ Как я могу сделать альбом всегда отображающимся сверху? Вы можете длительным нажатием на желаемый альбом открыть меню действий в нём выбрать пункт \"Закрепить\". Можно закрепить несколько альбомов (папок); прикреплённые элементы будут отсортированы по методу сортировки по умолчанию. Как ускорить перемотку видео? - Вы можете нажать на цифры текущего положения или максимальной длительности видео рядом с панелью поиска, что приведёт к перемещению позиции воспроизведения либо назад, либо вперёд. + 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. + Вы можете нажать на цифры текущего положения или максимальной длительности видео рядом с панелью поиска, что приведёт к перемещению позиции воспроизведения либо назад, либо вперёд. В чём разница между скрытием и исключением папки? Исключение запрещает отображение папки только в Simple Gallery, в то время как скрытие работает системно и скрывает папку из других галерей. Это достигается путём создания пустого файла \".nomedia\" в данной папке, который впоследствии можно удалить любым файловым менеджером. Почему отображаются папки с музыкальными обложками? diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 604d715f8..e26ffcd77 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -191,7 +191,8 @@ Ako môžem dosiahnuť, aby bol daný album stále zobrazený prvý? 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. Ako viem posunúť video vpred? - 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. + 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. + 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. Aký je rozdiel medzi Skrytím a Vylúčením priečinka? 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. Prečo sa mi zobrazujú priečinky s obalmi hudobných albumov, alebo nálepkami? diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index fe0e6a3f4..070a5853a 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -191,7 +191,8 @@ Kako nastaviti, da se določen album vedno prikaže na vrhu? 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. Ali lahko hitro predvajam videoposnetke? - Lahko kliknete na napis trenutnega ali maksimalnega trajanja poleg vrstice položaja, kar premakne/preskoči video naprej ali nazaj. + 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. + Lahko kliknete na napis trenutnega ali maksimalnega trajanja poleg vrstice položaja, kar premakne/preskoči video naprej ali nazaj. Kakšna je razlika med skrivanjem in izključevanjem mape? 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. Zakaj se v galeriji prikažejo datoteke z naslovnicami glasbenih map ali nalepk? diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index bfa6dc3dc..ac2631af0 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index bbd08e2fe..d760c8af4 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -191,7 +191,8 @@ Bir albümün her zaman en üstte görünmesini nasıl sağlayabilirim? İ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. Videoları nasıl hızlıca ileri sarabilirim? - Videoyu geriye ya da ileriye taşıyacak olan arama çubuğunun yakınındaki geçerli veya maksimum süre metinlerini tıklayabilirsiniz. + 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. + Videoyu geriye ya da ileriye taşıyacak olan arama çubuğunun yakınındaki geçerli veya maksimum süre metinlerini tıklayabilirsiniz. Klasörün gizlenmesi ve hariç tutulması arasındaki fark nedir? 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. Neden albüm resimlerini içeren klasörler görünüyor? diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index e8d0a3f17..4497ec1f2 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -191,7 +191,8 @@ Як зробити альбом завжди доступним у верхній частині? Ви можете виконати довге натискання на бажаному альбомі і вибрати піктограму \"Закріпити\" у меню дій, що закріпить його вгорі. Ви також можете закріпити декілька тек; закріплені елементи будуть відсортовані за методом сортування за-замовчуванням. Як я можу швидко прокручувати відео? - Ви можете натиснути на текст поточного таймінгу або на текст загальної тривалості відео на прогрес-барі, що перемістить відео або назад, або вперед. + 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. + Ви можете натиснути на текст поточного таймінгу або на текст загальної тривалості відео на прогрес-барі, що перемістить відео або назад, або вперед. В чому полягає різниця між приховуванням та виключенням теки? \"Виключити\" запобігає відображенню теки тільки в додатку Simple Gallery, в той час як \"Приховати\" працює на системному рівні і приховує теку і в інших галереях також. Це здійснюється шляхом створення порожнього файлу \".nomedia\" в заданій теці, який може бути видалений пізніше будь-яким файловим менеджером. Чому відображаються теки з музичними обкладинками або стікерами? diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index a266a88de..9e09dd3e1 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -190,7 +190,8 @@ 如何让某个相册始终显示在最上面? 你可以长按该相册并在操作栏中点击图钉图标,这样 就可以将其固定在顶部了。你也可以固定多个文件夹,固定项目将按照默认排序方法排序。 如何快进/快退视频? - 可以点击底栏进度条两侧的时间文本,或拖动进度条。 + 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. + 可以点击底栏进度条两侧的时间文本,或拖动进度条。 文件夹的隐藏和排除有什么区别? 排除功能只是防止其在简约图库中显示,而隐藏功能则使用的是系统的方法,这样做也会在其他图库中隐藏。它的工作原理是在给定的文件夹中创建一个空的.nomedia文件,你可以使用任何文件管理器删除它。 为什么会出现音乐艺术家封面或贴纸文件夹? diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 08c7be32b..6e183658f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -191,7 +191,8 @@ 我如何讓某個相冊總是出現在頂端? 你可以長按想要的相冊,然後在操作選單中選擇[圖釘]圖示,就會釘選於頂端。你也能釘選多個資料夾,釘選的項目會依預設的排序方法來排序。 我如何快轉影片? - 你可以點擊進度條附近的當前或總時長文字,影片就會快轉或倒轉。 + 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. + 你可以點擊進度條附近的當前或總時長文字,影片就會快轉或倒轉。 隱藏和排除資料夾,兩者有什麼不同? [排除]只在簡易相簿中避免顯示出來;而[隱藏]則作用於整個系統,資料夾也會被其他相簿隱藏。這是藉由在指定資料夾內建立一個\".nomedia\"空白檔案來進行隱藏,你之後也能用任何檔案管理器移除。 為什麼有些音樂專輯封面或貼圖的資料夾會出現? diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 6fa8f41a3..601d2855d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -191,7 +191,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. + You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? From 90c5bcdb77db69fab4448c6dcd3f3b6af6eb6bc6 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 13:46:16 +0100 Subject: [PATCH 09/54] updating an old faq item to the new version --- app/src/main/res/values/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 601d2855d..a0d10bfa6 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -192,7 +192,7 @@ 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. How can I fast-forward videos? 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. - You can click on the current or max duration texts near the seekbar, that will move the video either backward, or forward. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? From 3376e14f20cdb0304e6ff018d1e8d79ad3725078 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 14:21:36 +0100 Subject: [PATCH 10/54] fix clicking on screen sides at video player --- .../gallery/pro/activities/VideoPlayerActivity.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 137d5e7cd..00fcdfedf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -165,11 +165,11 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen 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() From 11f437794c3255d51bb64f75f5206aebc3ea354f Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 16:55:47 +0100 Subject: [PATCH 11/54] removing the static ViewPagerActivity variables for screen size --- .../pro/activities/ViewPagerActivity.kt | 15 ----------- .../gallery/pro/fragments/PhotoFragment.kt | 27 ++++++++++--------- 2 files changed, 14 insertions(+), 28 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt index 7225ab6ab..e91c97ee3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt @@ -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 @@ -74,11 +73,6 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View private var mMediaFiles = ArrayList() private var mFavoritePaths = ArrayList() - companion object { - var screenWidth = 0 - var screenHeight = 0 - } - @TargetApi(Build.VERSION_CODES.P) override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -225,7 +219,6 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View } private fun initViewPager() { - measureScreen() val uri = intent.data if (uri != null) { var cursor: Cursor? = null @@ -1005,17 +998,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) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt index 847d5f95a..910039de2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt @@ -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 @@ -69,14 +68,16 @@ class PhotoFragment : ViewPagerFragment() { 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 mOriginalSubsamplingScale = 0f private var loadZoomableViewHandler = Handler() + private var mScreenWidth = 0 + private var mScreenHeight = 0 private var storedShowExtendedDetails = false private var storedHideExtendedDetails = false private var storedAllowDeepZoomableImages = false private var storedShowHighestQuality = false private var storedAllowOneFingerZoom = false - private var mOriginalSubsamplingScale = 0f private var storedExtendedDetails = 0 lateinit var view: ViewGroup @@ -225,7 +226,7 @@ class PhotoFragment : ViewPagerFragment() { } 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) { @@ -308,7 +309,7 @@ class PhotoFragment : ViewPagerFragment() { val picasso = Picasso.get() .load(pathToLoad) .centerInside() - .resize(ViewPagerActivity.screenWidth, ViewPagerActivity.screenHeight) + .resize(mScreenWidth, mScreenHeight) if (degrees != 0) { picasso.rotate(degrees.toFloat()) @@ -333,8 +334,8 @@ 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) { targetWidth = targetHeight @@ -489,18 +490,18 @@ 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 } From 2737a4464648bf8b5db339d5c0cff1e7e77f448e Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 17:44:59 +0100 Subject: [PATCH 12/54] fix extended details over video fragments --- .../gallery/pro/fragments/VideoFragment.kt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt index 586edfaa4..b9c02b63a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt @@ -104,10 +104,7 @@ class VideoFragment : ViewPagerFragment() { instant_next_item.beVisibleIf(allowInstantChange) } - if (config.showExtendedDetails != mStoredShowExtendedDetails || config.extendedDetails != mStoredExtendedDetails) { - checkExtendedDetails() - } - + checkExtendedDetails() storeStateVariables() } @@ -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 } } From 635b8b893e89947e28f6527636a1ba30ea9aeae2 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 17:58:33 +0100 Subject: [PATCH 13/54] allow adding a Copy button to the bottom actions --- .../gallery/pro/activities/PhotoVideoActivity.kt | 2 +- .../gallery/pro/activities/ViewPagerActivity.kt | 6 ++++++ .../pro/dialogs/ManageBottomActionsDialog.kt | 3 +++ .../gallery/pro/helpers/Constants.kt | 1 + app/src/main/res/layout/bottom_actions.xml | 13 ++++++++++++- .../res/layout/dialog_manage_bottom_actions.xml | 8 ++++++++ 6 files changed, 31 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt index b5b1c0fff..8f660124d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt @@ -240,7 +240,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() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt index e91c97ee3..3da6a06ac 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt @@ -162,6 +162,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() @@ -863,6 +864,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?) { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageBottomActionsDialog.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageBottomActionsDialog.kt index 94a16c3be..760f51be2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageBottomActionsDialog.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/dialogs/ManageBottomActionsDialog.kt @@ -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 diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt index 16e61ddc8..3b234336e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt @@ -164,6 +164,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 diff --git a/app/src/main/res/layout/bottom_actions.xml b/app/src/main/res/layout/bottom_actions.xml index 2cb308bbc..48bacf38d 100644 --- a/app/src/main/res/layout/bottom_actions.xml +++ b/app/src/main/res/layout/bottom_actions.xml @@ -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"/> + + diff --git a/app/src/main/res/layout/dialog_manage_bottom_actions.xml b/app/src/main/res/layout/dialog_manage_bottom_actions.xml index 3e5f7f790..39fc8555d 100644 --- a/app/src/main/res/layout/dialog_manage_bottom_actions.xml +++ b/app/src/main/res/layout/dialog_manage_bottom_actions.xml @@ -110,5 +110,13 @@ android:paddingBottom="@dimen/activity_margin" android:text="@string/set_as"/> + + From c60f0d5fb2cd1b28d9a5a56c543357f6586edd64 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 18:07:17 +0100 Subject: [PATCH 14/54] tweak the bottom navigation and status bar of PhotoVideoActivity --- .../gallery/pro/activities/PhotoVideoActivity.kt | 15 ++++++++++++--- app/src/main/res/layout/fragment_holder.xml | 6 ++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt index 8f660124d..cddd19ffe 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt @@ -42,7 +42,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 +55,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) } @@ -273,8 +280,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() } } diff --git a/app/src/main/res/layout/fragment_holder.xml b/app/src/main/res/layout/fragment_holder.xml index d10a3a193..77f5953e7 100644 --- a/app/src/main/res/layout/fragment_holder.xml +++ b/app/src/main/res/layout/fragment_holder.xml @@ -10,6 +10,12 @@ android:layout_width="match_parent" android:layout_height="match_parent"/> + + From b28e82a48a6cd01b05da5824c57f208c5dee9572 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 20:33:48 +0100 Subject: [PATCH 15/54] adding a new string related to 1:1 zooming --- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-az/strings.xml | 1 + app/src/main/res/values-ca/strings.xml | 1 + app/src/main/res/values-cs/strings.xml | 1 + app/src/main/res/values-da/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-el/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fi/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-gl/strings.xml | 1 + app/src/main/res/values-hr/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 1 + app/src/main/res/values-id/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-ko-rKR/strings.xml | 1 + app/src/main/res/values-lt/strings.xml | 1 + app/src/main/res/values-nb/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-pt/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-sk/strings.xml | 1 + app/src/main/res/values-sl/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 32 files changed, 32 insertions(+) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 215f2eff1..7c5946f36 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -174,6 +174,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps المصغرات diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index e606f0680..94115fbaf 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -170,6 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps Thumbnails diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index a17bb279d..ddcd53fb1 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -170,6 +170,7 @@ Mostra imatges amb la màxima qualitat possible Mostra la paperera de reciclatge com a últim element a la pantalla principal Permet tancar la vista de pantalla completa amb un gest avall + Allow 1:1 zooming in with two double taps Miniatures diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index e3fd20acd..972519376 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -170,6 +170,7 @@ Zobrazit obrázky v nejlepší možné kvalitě Zobrazit odpadkový koš jako poslední položku na hlavní obrazovce Povolit zavírání celoobrazovkového režimu tažením prstu dolů + Allow 1:1 zooming in with two double taps Náhledy diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index c7609290d..6376ff93e 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -170,6 +170,7 @@ Vis billeder i den højst mulige kvalitet Vis papirkurven som sidste element på hovedskærmen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps Miniaturer diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 9203a3b6a..aa002fc56 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -170,6 +170,7 @@ Zeige Bilder in der höchstmöglichen Qualität Zeige den Papierkorb als letztes Element auf dem Hauptbildschirm Erlaube das Schließen der Vollbildansicht mit einer Abwärtsgeste + Allow 1:1 zooming in with two double taps Thumbnails diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index b9bb00f78..6404960eb 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -170,6 +170,7 @@ Εμφάνιση εικόνων με την υψηλότερη δυνατή ποιότητα Εμφάνιση του Κάδου ως τελευταίο στοιχείο στην κύρια οθόνη Επιτρέψτε το κλείσιμο προβολής πλήρους οθόνης με χειρονομία προς τα κάτω + Allow 1:1 zooming in with two double taps Εικονίδια diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 9dd24dd17..d701c4124 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -170,6 +170,7 @@ Muestra imágenes con la mayor calidad posible Mostrar la Papelera de reciclaje como el último elemento en la pantalla principal Permite cerrar la vista de pantalla completa con un gesto hacia abajo. + Allow 1:1 zooming in with two double taps Miniaturas diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 2cf968fd1..d4dc344a8 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -170,6 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps Esikatselukuvat diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index cbff85390..8b5632ab0 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -170,6 +170,7 @@ Afficher les images avec la meilleur qualité possible Afficher la corbeille en dernière place sur l\'écran principal Fermeture de la vue plein écran par un geste vers le bas + Allow 1:1 zooming in with two double taps Miniatures diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 12caf938f..aa3617ee8 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -170,6 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps Iconas diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index fd2255654..9cf26a371 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -170,6 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps Sličice diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 062e222be..bfdd22a4c 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -171,6 +171,7 @@ Mutassa a képeket a lehető legjobb minőségben Mutassa a Lomtárat a fő képernyő utolsó elemeként Engedélyezi a teljes képernyős nézetet a lefelé mozdulattal + Allow 1:1 zooming in with two double taps Miniatűrök diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index fd670d229..53d216004 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -170,6 +170,7 @@ Tampilkan gambar dalam kualitas tertinggi Tampilkan Sampah sebagai item terakhir di layar utama Izinkan keluar dari layar penuh dengan menggeser kebawah + Allow 1:1 zooming in with two double taps Thumbnail diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 065df5fc2..88aab72b4 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -170,6 +170,7 @@ Mostra le immagini alla massima qualità possibile Mostra il cestino come ultimo elemento nella schermata principale Chiudi la visuale a schermo intero con un gesto verso il basso + Allow 1:1 zooming in with two double taps Anteprime diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 22aed49c6..a3d3de6ad 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -170,6 +170,7 @@ 可能な限り高品質で画像を表示 ごみ箱をメイン画面の最後に表示 Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps サムネイル設定 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 68f668951..c8a7a4c63 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -170,6 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps 섬네일 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index cb313ba80..646b67b61 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -170,6 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps Miniatiūros diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 654afda10..865955edc 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -170,6 +170,7 @@ Vis bilder i høyest mulig kvalitet Vis papirkurven som siste element på hovedskjermen Tillat lukking av mediavisningen med en nedoverbevegelse + Allow 1:1 zooming in with two double taps Minibilder diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index aa17cbbd0..86c80c961 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -170,6 +170,7 @@ Afbeeldingen in de hoogst mogelijke kwaliteit weergeven Prullenbak als laatste item tonen Naar beneden vegen om volledig scherm af te sluiten + Allow 1:1 zooming in with two double taps Miniatuurvoorbeelden diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index ac7674809..8284c6c76 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -170,6 +170,7 @@ Pokazuj obrazy w najwyższej możliwej rozdzielczości Pokazuj kosz jako ostatni element na głównym ekranie Zezwalaj na zamykanie pełnoekranowego widoku gestem pociągnięcia w dół + Allow 1:1 zooming in with two double taps    Miniatury diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index e3e1e5ec1..9fcc644a4 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -170,6 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps Miniaturas diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 0534f4dd1..945220c2c 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -170,6 +170,7 @@ Mostrar fotos com a melhor qualidade possível Mostrar a reciclagem como o último item do ecrã principal Sair de ecrã completo com um gesto para baixo + Allow 1:1 zooming in with two double taps Miniaturas diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 602b1d975..0da1b5806 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -170,6 +170,7 @@ Показывать изображения с максимально высоким качеством Показывать корзину как последний элемент на главном экране Выходить из полноэкранного режима жестом вниз + Allow 1:1 zooming in with two double taps Миниатюры diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index e26ffcd77..016e427e5 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -170,6 +170,7 @@ Zobrazovať obrázky v najlepšej možnej kvalite Zobraziť odpadkový kôš ako poslednú položku na hlavnej obrazovke Povoliť zatváranie celoobrazovkového režimu potiahnutím prsta dole + Povoliť 1:1 priblíženie dvojnásobným dvojklikom Náhľady diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 070a5853a..b00362b48 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -170,6 +170,7 @@ Prikaži slike v največji možni kvaliteti Prikaži Koš kot zadnji element na glavnem zaslonu Dovoli zapiranje celozaslonskega načina z gesto navzdol + Allow 1:1 zooming in with two double taps Sličice diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index ac2631af0..dcfebb98a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -170,6 +170,7 @@ Visa bilder i högsta möjliga kvalitet Visa Papperskorgen som det sista objektet i huvudvyn Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps Miniatyrer diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index d760c8af4..044c96702 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -170,6 +170,7 @@ Resimleri mümkün olan en yüksek kalitede göster Geri dönüşüm kutusu\'nu ana ekranda son öğe olarak göster Tam ekran görünümünü aşağı hareketi ile kapatmaya izin ver + Allow 1:1 zooming in with two double taps Küçük resimler diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 4497ec1f2..527b72672 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -170,6 +170,7 @@ Показувати зображення в найвищій можливій якості Показувати \"Кошик\" останнім елементом на головному екрані Дозволити закриття повноекранного перегляду свайпом згори вниз + Allow 1:1 zooming in with two double taps Ескізи diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 9e09dd3e1..f6c15a9e2 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -170,6 +170,7 @@ 以最高质量显示图像 在主屏幕界面的最后一项显示回收站 使用下滑手势关闭全屏视图 + Allow 1:1 zooming in with two double taps 缩略图 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 6e183658f..179845109 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -170,6 +170,7 @@ 以最高品質顯示圖片 回收桶顯示在主畫面最後一項 允許用下滑手勢來關閉全螢幕檢視 + Allow 1:1 zooming in with two double taps 縮圖 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a0d10bfa6..e8cd36318 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -170,6 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture + Allow 1:1 zooming in with two double taps Thumbnails From 61e51058dabc3d7c274dd384d45e2a94a9abaaf4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 20:37:04 +0100 Subject: [PATCH 16/54] renaming the 1:1 zoom string --- app/src/main/res/values-ar/strings.xml | 2 +- app/src/main/res/values-az/strings.xml | 2 +- app/src/main/res/values-ca/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-da/strings.xml | 2 +- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-es/strings.xml | 2 +- app/src/main/res/values-fi/strings.xml | 2 +- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-gl/strings.xml | 2 +- app/src/main/res/values-hr/strings.xml | 2 +- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-id/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 2 +- app/src/main/res/values-ko-rKR/strings.xml | 2 +- app/src/main/res/values-lt/strings.xml | 2 +- app/src/main/res/values-nb/strings.xml | 2 +- app/src/main/res/values-nl/strings.xml | 2 +- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 2 +- app/src/main/res/values-pt/strings.xml | 2 +- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values-sk/strings.xml | 2 +- app/src/main/res/values-sl/strings.xml | 2 +- app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-tr/strings.xml | 2 +- app/src/main/res/values-uk/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 32 files changed, 32 insertions(+), 32 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 7c5946f36..45057f124 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -174,7 +174,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps المصغرات diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 94115fbaf..6a67d1a98 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -170,7 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Thumbnails diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index ddcd53fb1..9cd232b6f 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -170,7 +170,7 @@ Mostra imatges amb la màxima qualitat possible Mostra la paperera de reciclatge com a últim element a la pantalla principal Permet tancar la vista de pantalla completa amb un gest avall - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniatures diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index 972519376..ba000623c 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -170,7 +170,7 @@ Zobrazit obrázky v nejlepší možné kvalitě Zobrazit odpadkový koš jako poslední položku na hlavní obrazovce Povolit zavírání celoobrazovkového režimu tažením prstu dolů - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Náhledy diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 6376ff93e..5edb19921 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -170,7 +170,7 @@ Vis billeder i den højst mulige kvalitet Vis papirkurven som sidste element på hovedskærmen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniaturer diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index aa002fc56..79694eeb2 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -170,7 +170,7 @@ Zeige Bilder in der höchstmöglichen Qualität Zeige den Papierkorb als letztes Element auf dem Hauptbildschirm Erlaube das Schließen der Vollbildansicht mit einer Abwärtsgeste - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Thumbnails diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 6404960eb..0b022560e 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -170,7 +170,7 @@ Εμφάνιση εικόνων με την υψηλότερη δυνατή ποιότητα Εμφάνιση του Κάδου ως τελευταίο στοιχείο στην κύρια οθόνη Επιτρέψτε το κλείσιμο προβολής πλήρους οθόνης με χειρονομία προς τα κάτω - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Εικονίδια diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index d701c4124..c086bda3a 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -170,7 +170,7 @@ Muestra imágenes con la mayor calidad posible Mostrar la Papelera de reciclaje como el último elemento en la pantalla principal Permite cerrar la vista de pantalla completa con un gesto hacia abajo. - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniaturas diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index d4dc344a8..008d67103 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -170,7 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Esikatselukuvat diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 8b5632ab0..79ef9ff71 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -170,7 +170,7 @@ Afficher les images avec la meilleur qualité possible Afficher la corbeille en dernière place sur l\'écran principal Fermeture de la vue plein écran par un geste vers le bas - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniatures diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index aa3617ee8..82bae4da6 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -170,7 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Iconas diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 9cf26a371..5182e017d 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -170,7 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Sličice diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index bfdd22a4c..c429a4b06 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -171,7 +171,7 @@ Mutassa a képeket a lehető legjobb minőségben Mutassa a Lomtárat a fő képernyő utolsó elemeként Engedélyezi a teljes képernyős nézetet a lefelé mozdulattal - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniatűrök diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 53d216004..afc298e6c 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -170,7 +170,7 @@ Tampilkan gambar dalam kualitas tertinggi Tampilkan Sampah sebagai item terakhir di layar utama Izinkan keluar dari layar penuh dengan menggeser kebawah - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Thumbnail diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 88aab72b4..1c26a4558 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -170,7 +170,7 @@ Mostra le immagini alla massima qualità possibile Mostra il cestino come ultimo elemento nella schermata principale Chiudi la visuale a schermo intero con un gesto verso il basso - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Anteprime diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index a3d3de6ad..fb143e5b4 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -170,7 +170,7 @@ 可能な限り高品質で画像を表示 ごみ箱をメイン画面の最後に表示 Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps サムネイル設定 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index c8a7a4c63..40a5fa8d0 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -170,7 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps 섬네일 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 646b67b61..fe128e9e5 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -170,7 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniatiūros diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 865955edc..fb4d4554a 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -170,7 +170,7 @@ Vis bilder i høyest mulig kvalitet Vis papirkurven som siste element på hovedskjermen Tillat lukking av mediavisningen med en nedoverbevegelse - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Minibilder diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 86c80c961..0de7ece7e 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -170,7 +170,7 @@ Afbeeldingen in de hoogst mogelijke kwaliteit weergeven Prullenbak als laatste item tonen Naar beneden vegen om volledig scherm af te sluiten - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniatuurvoorbeelden diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 8284c6c76..fc1b24386 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -170,7 +170,7 @@ Pokazuj obrazy w najwyższej możliwej rozdzielczości Pokazuj kosz jako ostatni element na głównym ekranie Zezwalaj na zamykanie pełnoekranowego widoku gestem pociągnięcia w dół - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps    Miniatury diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 9fcc644a4..8d89f276b 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -170,7 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniaturas diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 945220c2c..4bba0f3ab 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -170,7 +170,7 @@ Mostrar fotos com a melhor qualidade possível Mostrar a reciclagem como o último item do ecrã principal Sair de ecrã completo com um gesto para baixo - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniaturas diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 0da1b5806..8fe47fbd8 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -170,7 +170,7 @@ Показывать изображения с максимально высоким качеством Показывать корзину как последний элемент на главном экране Выходить из полноэкранного режима жестом вниз - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Миниатюры diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 016e427e5..f8de0facb 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -170,7 +170,7 @@ Zobrazovať obrázky v najlepšej možnej kvalite Zobraziť odpadkový kôš ako poslednú položku na hlavnej obrazovke Povoliť zatváranie celoobrazovkového režimu potiahnutím prsta dole - Povoliť 1:1 priblíženie dvojnásobným dvojklikom + Povoliť 1:1 priblíženie dvojnásobným dvojklikom Náhľady diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index b00362b48..6e4884331 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -170,7 +170,7 @@ Prikaži slike v največji možni kvaliteti Prikaži Koš kot zadnji element na glavnem zaslonu Dovoli zapiranje celozaslonskega načina z gesto navzdol - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Sličice diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index dcfebb98a..288a3a051 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -170,7 +170,7 @@ Visa bilder i högsta möjliga kvalitet Visa Papperskorgen som det sista objektet i huvudvyn Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Miniatyrer diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 044c96702..268ee1c22 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -170,7 +170,7 @@ Resimleri mümkün olan en yüksek kalitede göster Geri dönüşüm kutusu\'nu ana ekranda son öğe olarak göster Tam ekran görünümünü aşağı hareketi ile kapatmaya izin ver - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Küçük resimler diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 527b72672..7958e66c3 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -170,7 +170,7 @@ Показувати зображення в найвищій можливій якості Показувати \"Кошик\" останнім елементом на головному екрані Дозволити закриття повноекранного перегляду свайпом згори вниз - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Ескізи diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index f6c15a9e2..0088c82c2 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -170,7 +170,7 @@ 以最高质量显示图像 在主屏幕界面的最后一项显示回收站 使用下滑手势关闭全屏视图 - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps 缩略图 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 179845109..8756df45d 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -170,7 +170,7 @@ 以最高品質顯示圖片 回收桶顯示在主畫面最後一項 允許用下滑手勢來關閉全螢幕檢視 - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps 縮圖 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e8cd36318..208b2f27f 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -170,7 +170,7 @@ Show images in the highest possible quality Show the Recycle Bin as the last item on the main screen Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Allow 1:1 zooming in with two double taps Thumbnails From 4be9c0b431547fb9b31ed3ccf397d3af431619fa Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 20:40:46 +0100 Subject: [PATCH 17/54] fix #297, allow one to one pixel ratio zooming with two double taps --- app/build.gradle | 2 +- .../pro/activities/SettingsActivity.kt | 10 ++++++++ .../gallery/pro/fragments/PhotoFragment.kt | 10 ++++---- .../gallery/pro/helpers/Config.kt | 4 ++++ .../gallery/pro/helpers/Constants.kt | 1 + app/src/main/res/layout/activity_settings.xml | 24 +++++++++++++++++++ 6 files changed, 46 insertions(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b31ee9a6c..33b03df6b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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' diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt index 8426bd8c4..eb292610f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/SettingsActivity.kt @@ -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 { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt index 910039de2..0517bc088 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt @@ -393,15 +393,17 @@ class PhotoFragment : ViewPagerFragment() { override fun make() = PicassoRegionDecoder() } + val config = context!!.config view.subsampling_view.apply { - setMaxTileSize(if (context!!.config.showHighestQuality) Integer.MAX_VALUE else 4096) - setMinimumTileDpi(if (context!!.config.showHighestQuality) -1 else getMinTileDpi()) + setMaxTileSize(if (config.showHighestQuality) Integer.MAX_VALUE else 4096) + setMinimumTileDpi(if (config.showHighestQuality) -1 else getMinTileDpi()) background = ColorDrawable(Color.TRANSPARENT) 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) @@ -411,7 +413,7 @@ class PhotoFragment : ViewPagerFragment() { } override fun onReady() { - background = ColorDrawable(if (context.config.blackBackground) Color.BLACK else context.config.backgroundColor) + background = ColorDrawable(if (config.blackBackground) Color.BLACK else config.backgroundColor) val useWidth = if (imageOrientation == ORIENTATION_ROTATE_90 || imageOrientation == ORIENTATION_ROTATE_270) sHeight else sWidth val useHeight = if (imageOrientation == ORIENTATION_ROTATE_90 || imageOrientation == ORIENTATION_ROTATE_270) sWidth else sHeight setDoubleTapZoomScale(getDoubleTapZoomScale(useWidth, useHeight)) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt index 1b479de80..c218dc78c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Config.kt @@ -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() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt index 3b234336e..9baa22b50 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt @@ -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" diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 75d86d798..72de10803 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -795,6 +795,30 @@ + + + + + + Date: Fri, 4 Jan 2019 22:05:37 +0100 Subject: [PATCH 18/54] make video fast-forwarding with horizontal gestures easier in landscape mode --- .../gallery/pro/activities/VideoPlayerActivity.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 00fcdfedf..272ac8ab1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -377,7 +377,8 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen video_surface.layoutParams = this } - mScreenWidth = (screenWidth * 0.8).toInt() + val multiplier = if (screenWidth > screenHeight) 0.5 else 0.8 + mScreenWidth = (screenWidth * multiplier).toInt() } private fun changeOrientation() { From 4b748b1c9917e3d4d3a5d6e96a1ef357115bb75b Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 22:54:24 +0100 Subject: [PATCH 19/54] speed up file sorting, potentially creating minor inconsistencies --- .../simplemobiletools/gallery/pro/helpers/MediaFetcher.kt | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt index 3978d0a49..a5912edce 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/MediaFetcher.kt @@ -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 } From 920ceab90b505c10260a8d2c8d2108462e4f6ce1 Mon Sep 17 00:00:00 2001 From: chreddy Date: Fri, 4 Jan 2019 23:02:53 +0100 Subject: [PATCH 20/54] Updating Danish translation --- app/src/main/res/values-da/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 5edb19921..d3309730a 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -169,8 +169,8 @@ Deep zoomable images Vis billeder i den højst mulige kvalitet Vis papirkurven som sidste element på hovedskærmen - Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Luk fuldskærmsvisning ved at swipe ned + Tillad 1:1 zooming med to dobbelttryk Miniaturer From 1827bf14b1495b22d24cebabcdd2148f396156e4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 23:07:54 +0100 Subject: [PATCH 21/54] adding some new features in release notes --- .../gallery/pro/activities/MainActivity.kt | 1 + app/src/main/res/values/donottranslate.xml | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt index 58701c6ce..330e88e3d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MainActivity.kt @@ -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) } } diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 2e6a8223d..e0f0e33c6 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -2,6 +2,12 @@ + + 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 + 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 From 9ee5b10d045423b290fd78733e2973366f9e38d4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 23:14:39 +0100 Subject: [PATCH 22/54] correcting some punctuation at a FAQ item --- app/src/main/res/values-ar/strings.xml | 2 +- app/src/main/res/values-az/strings.xml | 4 ++-- app/src/main/res/values-ca/strings.xml | 2 +- app/src/main/res/values-cs/strings.xml | 2 +- app/src/main/res/values-da/strings.xml | 4 ++-- app/src/main/res/values-de/strings.xml | 2 +- app/src/main/res/values-el/strings.xml | 2 +- app/src/main/res/values-fi/strings.xml | 4 ++-- app/src/main/res/values-fr/strings.xml | 2 +- app/src/main/res/values-gl/strings.xml | 2 +- app/src/main/res/values-hr/strings.xml | 2 +- app/src/main/res/values-hu/strings.xml | 2 +- app/src/main/res/values-id/strings.xml | 2 +- app/src/main/res/values-it/strings.xml | 2 +- app/src/main/res/values-ja/strings.xml | 2 +- app/src/main/res/values-ko-rKR/strings.xml | 4 ++-- app/src/main/res/values-lt/strings.xml | 2 +- app/src/main/res/values-nb/strings.xml | 4 ++-- app/src/main/res/values-nl/strings.xml | 4 ++-- app/src/main/res/values-pl/strings.xml | 2 +- app/src/main/res/values-pt-rBR/strings.xml | 4 ++-- app/src/main/res/values-pt/strings.xml | 4 ++-- app/src/main/res/values-sv/strings.xml | 2 +- app/src/main/res/values-zh-rCN/strings.xml | 2 +- app/src/main/res/values-zh-rTW/strings.xml | 2 +- app/src/main/res/values/strings.xml | 4 ++-- 26 files changed, 35 insertions(+), 35 deletions(-) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 45057f124..c249e727b 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -195,7 +195,7 @@ كيف يمكنني جعل الألبوم يظهر دائمًا في الجزء العلوي؟ يمكنك الضغط لفترة طويلة على الألبوم المطلوب وتحديد أيقونة الدبوس في الإجراء ، والتي سوف تثبيته إلى الأعلى. يمكنك تثبيت عدة مجلدات أيضًا ، وسيتم ترتيب العناصر المثبتة حسب طريقة الفرز الافتراضية. كيف يمكنني تقديم مقاطع فيديو بسرعة؟ - 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. + 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. يمكنك النقر على النصوص الحالية أو أقصى مدة قريبة من شريط السحب ، والتي ستنقل الفيديو إما للخلف أو إلى الأمام. ما الفرق بين إخفاء واستبعاد مجلد؟ يمنع الاستبعاد من عرض المجلد في الاستوديو البسيط فقط ، بينما يقوم بإخفاء بالعمل على مستوى النظام ككل ويقوم بإخفاء المجلد من المعارض الأخرى أيضًا. وهو يعمل عن طريق إنشاء ملف \".nomedia\" فارغ في المجلد المحدد ، والذي يمكنك بعد ذلك إزالته مع أي مدير ملفات أيضًا. diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index 6a67d1a98..b6088674d 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -192,8 +192,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - 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. - 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. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 9cd232b6f..6bbb08445 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -192,7 +192,7 @@ Com puc fer que un àlbum sempre aparegui a la part superior? 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. Com puc fer avançar els vídeos? - 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. + 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. 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. Quina és la diferència entre ocultar i excloure una carpeta? 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. diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index ba000623c..c7187e446 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -192,7 +192,7 @@ Jak můžu dosáhnout, aby bylo dané album stále zobrazeno první? 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í. Jak můžu rychle posunout videa? - 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. + 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. 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. Jaký je rozdíl mezi Skrytím a Vyloučením složky? 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ů. diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index d3309730a..59cf27db7 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -192,8 +192,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - 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. - 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. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 79694eeb2..e34158919 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -192,7 +192,7 @@ Wie kann ich ein Album immer zuoberst erscheinen lassen? 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. Wie kann ich in Videos vor- oder zurückspringen? - 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. + 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. 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. Was ist der Unterschied zwischen \'Verstecken\' und \'Ausschließen\' eines Ordners? \'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. diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 0b022560e..9daa46648 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -192,7 +192,7 @@ Πώς μπορώ να κάνω ένα άλμπουμ να φαίνεται στην κορυφή; Μπορείτε να πατήσετε παρατεταμένα στο άλμπουμ και να επιλέξετε το εικονίδιο καρφιτσώματος στο μενού, αυτό θα το καρφιτσώσει στην κορυφή. Επίσης μπορείτε να καρφιτσώσετε πολλαπλούς φακέλους, τα καρφιτσωμένα αντικείμενα θα είναι ταξινομημένα με την προεπιλεγμένη μέθοδο. Πώς μπορώ να τρέξω μπροστά (fast-forward) τα βίντεο; - 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. + 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. Μπορείτε να αγγίξετε στο τρέχον ή στο κείμενο μέγιστης διάρκειας κοντά στην μπάρα αναζήτησης. Αυτό θα μετακινήσει το βίντεο μπροστά ή πίσω. Ποια είναι διαφορά μεταξύ απόκρυψης και εξαίρεσης ενός φακέλου; Η εξαίρεση δεν επιτρέπει την εμφάνιση του φακέλου μόνο στο Simple Gallery, ενώ η απόκρυψη λειτουργεί σε επίπεδο συστήματος και θα αποκρύψει τον φάκελο και από άλλες εφαρμογές γκάλερι. Λειτουργεί δημιουργώντας ένα άδειο \".nomedia\" αρχείο στον επιλεγμένο φάκελο, το οποίο μπορείτε να το διαγράψετε και με οποιονδήποτε διαχειριστή αρχείων. diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 008d67103..8995416ba 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -192,8 +192,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - 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. - 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. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 79ef9ff71..30f295612 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -191,7 +191,7 @@ Comment faire pour qu\'un album soit toujours affiché tout en haut ? 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. Comment avancer rapidement dans les vidéos ? - 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. + 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. 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. Quelle est la différence entre masquer et exclure un dossier ? \"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. diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 82bae4da6..352de87bd 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -192,7 +192,7 @@ Cómo podo facer que un álbume apareza sempre arriba de todo? 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. Cómo podo aumentar a velocidade de reprodución de vídeo? - 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. + 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. 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. Cal é a diferenza entre agochar e excluír un cartafol? 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. diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 5182e017d..c2979a255 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -192,7 +192,7 @@ Kako postići da je album uvijek na vrhu? 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. Kako mogu ubrzati video? - 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. + 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. 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. Koja je razlika između skrivanja i izuzimanja mape? 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. diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index c429a4b06..ec07f0cab 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -193,7 +193,7 @@ A következő alkalommal, amikor megpróbál megnyitni egy képet vagy videót, Hogyan állíthatok be egy albumot úgy, hogy mindig felül legyen? 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. Hogyan tudom előre tekerni a videókat? - 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. + 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. 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. Mi a különbség a mappa elrejtése és kizárása között? 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. diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index afc298e6c..6a438ea66 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -192,7 +192,7 @@ Bagaimana agar sebuah album selalu muncul paling atas di daftar? 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. Bagaimana cara mempercepat laju video? - 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. + 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. Anda bisa mengklik teks durasi saat ini/maksimal di dekat penggeser durasi, itu akan memajukan atau memundurkan video. Apa perbedaan antara menyembunyikan dan mengecualikan folder? 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. diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 1c26a4558..442206bd1 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -192,7 +192,7 @@ Come posso fare apparire un album sempre in cima? 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. Come avanzo velocemente nei video? - 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. + 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. Si può cliccare sui testi di durata attuale o massima vicino alla barra di avanzamento, ciò avanzerà o riavvolgerà il video. Che differenza c\'è tra nascondere ed escludere una cartella? 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. diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index fb143e5b4..8cdcaac80 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -192,7 +192,7 @@ How can I make an album always appear at the top? 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. 動画を早送りするにはどうすればよいですか? - 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. + 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. シークバーの隣にある経過時間または最大時間の表示を押すごとに早送り、または巻き戻しが作動します。 What is the difference between hiding and excluding a folder? 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. diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 40a5fa8d0..e1d1edd1f 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -192,8 +192,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - 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. - 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. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index fe128e9e5..30805dfab 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -192,7 +192,7 @@ Kaip aš galiu padaryti albumą visada rodomą viršuje? 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ą. Kaip galėčiau greitai prasukti vaizdo įrašus? - 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. + 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. Galite spustelėti tekstus šalia slinkties juostos, kad būtų perkeltas vaizdo įrašas atgal arba į priekį. Koks skirtumas tarp slėpimo ir išskyrimo iš aplanko? 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. diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index fb4d4554a..7ce6ba910 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -192,8 +192,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - 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. - 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. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 0de7ece7e..644c45f6e 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -192,8 +192,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - 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. - 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. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index fc1b24386..8311b67e9 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -191,7 +191,7 @@    Jak sprawić, aby album(y) zawsze pojawiał(y) się na górze?    Przytrzymaj album(y) i wybierz ikonę przypięcia w pasku akcji.    Jak mogę przwijać filmy? - 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. + 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.    Kliknij na napisie z czasem trwania filmu, bądź tym z obecnym momentem filmu.    Jaka jest różnica między ukryciem, a wykluczeniem folderu?    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. diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 8d89f276b..319d784c7 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -192,8 +192,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - 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. - 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. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 4bba0f3ab..4a9e0f893 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -192,8 +192,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - 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. - 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. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 288a3a051..64fbe8b2a 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -193,7 +193,7 @@ 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. How can I fast-forward videos? 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. - 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 0088c82c2..d8afe2ddd 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -191,7 +191,7 @@ 如何让某个相册始终显示在最上面? 你可以长按该相册并在操作栏中点击图钉图标,这样 就可以将其固定在顶部了。你也可以固定多个文件夹,固定项目将按照默认排序方法排序。 如何快进/快退视频? - 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. + 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. 可以点击底栏进度条两侧的时间文本,或拖动进度条。 文件夹的隐藏和排除有什么区别? 排除功能只是防止其在简约图库中显示,而隐藏功能则使用的是系统的方法,这样做也会在其他图库中隐藏。它的工作原理是在给定的文件夹中创建一个空的.nomedia文件,你可以使用任何文件管理器删除它。 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 8756df45d..cf12dd743 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -192,7 +192,7 @@ 我如何讓某個相冊總是出現在頂端? 你可以長按想要的相冊,然後在操作選單中選擇[圖釘]圖示,就會釘選於頂端。你也能釘選多個資料夾,釘選的項目會依預設的排序方法來排序。 我如何快轉影片? - 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. + 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. 你可以點擊進度條附近的當前或總時長文字,影片就會快轉或倒轉。 隱藏和排除資料夾,兩者有什麼不同? [排除]只在簡易相簿中避免顯示出來;而[隱藏]則作用於整個系統,資料夾也會被其他相簿隱藏。這是藉由在指定資料夾內建立一個\".nomedia\"空白檔案來進行隱藏,你之後也能用任何檔案管理器移除。 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 208b2f27f..49126e305 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -192,8 +192,8 @@ How can I make an album always appear at the top? 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. How can I fast-forward videos? - 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. - 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. + 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. + 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. What is the difference between hiding and excluding a folder? 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. Why do folders with music cover art or stickers show up? From 2c3a11bb833ba245a3396d1b33aff0f8a8b0f7ae Mon Sep 17 00:00:00 2001 From: chreddy Date: Fri, 4 Jan 2019 23:18:29 +0100 Subject: [PATCH 23/54] Update Danish translation Finally came up with a translation of the "deep zoom" strings --- app/src/main/res/values-da/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 59cf27db7..9de4dd5aa 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -161,12 +161,12 @@ Administrer udvidede oplysninger Tillad zoom med en finger når medier er i fuldskærm Tillad skift af medie ved klik på skærmens sider - Allow deep zooming images + Tillad dyb zooming af billeder Skjul udvidede oplysninger når statuslinjen er skjult Tjek en ekstra gang for at undgå visning af ugyldige filer Vis handlingsknapper i bunden af skærmen Vis papirkurven ved mappevisning - Deep zoomable images + Dybt zoombare billeder Vis billeder i den højst mulige kvalitet Vis papirkurven som sidste element på hovedskærmen Luk fuldskærmsvisning ved at swipe ned From db9c11f5fdcf6875a26bcdb7caec999eaa89834d Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 23:26:44 +0100 Subject: [PATCH 24/54] update version to 6.2.0 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 33b03df6b..432aed07e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "com.simplemobiletools.gallery.pro" minSdkVersion 21 targetSdkVersion 28 - versionCode 216 - versionName "6.1.3" + versionCode 218 + versionName "6.2.0" multiDexEnabled true setProperty("archivesBaseName", "gallery") } From b385555c3192fddc4ce943bf1c7f0819c4ae37d1 Mon Sep 17 00:00:00 2001 From: tibbi Date: Fri, 4 Jan 2019 23:26:50 +0100 Subject: [PATCH 25/54] updating changelog --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index feff7768b..228574f4c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ Changelog ========== +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)* ---------------------------- From 295b7e90af19788a980acc80890f98c7072a76ac Mon Sep 17 00:00:00 2001 From: Guillaume Date: Sat, 5 Jan 2019 01:41:32 +0100 Subject: [PATCH 26/54] Dutch --- app/src/main/res/values-nl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 644c45f6e..56beb17a0 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -170,7 +170,7 @@ Afbeeldingen in de hoogst mogelijke kwaliteit weergeven Prullenbak als laatste item tonen Naar beneden vegen om volledig scherm af te sluiten - Allow 1:1 zooming in with two double taps + 1:1 zoomen na 2x dubbelklikken Miniatuurvoorbeelden From e480642f4b23cfcbfe3c09da409ed438a2affb5e Mon Sep 17 00:00:00 2001 From: fricyo <30796677+fricyo@users.noreply.github.com> Date: Sat, 5 Jan 2019 17:36:35 +0800 Subject: [PATCH 27/54] Update Translation --- app/src/main/res/values-zh-rTW/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index cf12dd743..966ab508f 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -170,7 +170,7 @@ 以最高品質顯示圖片 回收桶顯示在主畫面最後一項 允許用下滑手勢來關閉全螢幕檢視 - Allow 1:1 zooming in with two double taps + 允許用兩次雙擊來1:1縮放 縮圖 @@ -192,7 +192,7 @@ 我如何讓某個相冊總是出現在頂端? 你可以長按想要的相冊,然後在操作選單中選擇[圖釘]圖示,就會釘選於頂端。你也能釘選多個資料夾,釘選的項目會依預設的排序方法來排序。 我如何快轉影片? - 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. + 你可以在影片撥放器上水平滑動你的手指,或者點擊進度條附近的當前或總時長文字。這會使影片快轉或倒轉。 你可以點擊進度條附近的當前或總時長文字,影片就會快轉或倒轉。 隱藏和排除資料夾,兩者有什麼不同? [排除]只在簡易相簿中避免顯示出來;而[隱藏]則作用於整個系統,資料夾也會被其他相簿隱藏。這是藉由在指定資料夾內建立一個\".nomedia\"空白檔案來進行隱藏,你之後也能用任何檔案管理器移除。 From f508e2a138c9a8683ed6802955d5f0d0a67ae93b Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 5 Jan 2019 11:15:45 +0100 Subject: [PATCH 28/54] adding a string related to crossfade used in slideshows --- app/src/main/res/values-ar/strings.xml | 1 + app/src/main/res/values-az/strings.xml | 1 + app/src/main/res/values-ca/strings.xml | 1 + app/src/main/res/values-cs/strings.xml | 1 + app/src/main/res/values-da/strings.xml | 1 + app/src/main/res/values-de/strings.xml | 1 + app/src/main/res/values-el/strings.xml | 1 + app/src/main/res/values-es/strings.xml | 1 + app/src/main/res/values-fi/strings.xml | 1 + app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values-gl/strings.xml | 1 + app/src/main/res/values-hr/strings.xml | 1 + app/src/main/res/values-hu/strings.xml | 1 + app/src/main/res/values-id/strings.xml | 1 + app/src/main/res/values-it/strings.xml | 1 + app/src/main/res/values-ja/strings.xml | 1 + app/src/main/res/values-ko-rKR/strings.xml | 1 + app/src/main/res/values-lt/strings.xml | 1 + app/src/main/res/values-nb/strings.xml | 1 + app/src/main/res/values-nl/strings.xml | 1 + app/src/main/res/values-pl/strings.xml | 1 + app/src/main/res/values-pt-rBR/strings.xml | 1 + app/src/main/res/values-pt/strings.xml | 1 + app/src/main/res/values-ru/strings.xml | 1 + app/src/main/res/values-sk/strings.xml | 1 + app/src/main/res/values-sl/strings.xml | 1 + app/src/main/res/values-sv/strings.xml | 1 + app/src/main/res/values-tr/strings.xml | 1 + app/src/main/res/values-uk/strings.xml | 1 + app/src/main/res/values-zh-rCN/strings.xml | 1 + app/src/main/res/values-zh-rTW/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 32 files changed, 32 insertions(+) diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index c249e727b..3d9aa2dc2 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -120,6 +120,7 @@ حلقة عرض الشرائح انتهى عرض الشرائح لم يتم العثور على وسائط لعرض الشرائح + Use crossfade animations تغيير طريقة العرض diff --git a/app/src/main/res/values-az/strings.xml b/app/src/main/res/values-az/strings.xml index b6088674d..bf0b0aa1d 100644 --- a/app/src/main/res/values-az/strings.xml +++ b/app/src/main/res/values-az/strings.xml @@ -116,6 +116,7 @@ Loop slideshow The slideshow ended No media for the slideshow have been found + Use crossfade animations Change view type diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 6bbb08445..04b8538bb 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -116,6 +116,7 @@ Presentació de diapositives S\'ha acabat la presentació de diapositives No s\'han trobat mitjans per a la presentació de diapositives + Use crossfade animations Canviar el tipus de vista diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index c7187e446..473005bc5 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -116,6 +116,7 @@ Smyčková prezentace Prezentace skončila Nebyla nalezena žádná média pro prezentaci + Use crossfade animations Změnit typ zobrazení diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 9de4dd5aa..f343b3e35 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -116,6 +116,7 @@ Endeløs kørsel Slideshowet endte Der blev ikke funket nogen mediefiler til slideshowet + Use crossfade animations Skift visning diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index e34158919..e5eea5b16 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -116,6 +116,7 @@ Endlos abspielen Diashow beendet. Keine Medien für Diashow gefunden. + Use crossfade animations Darstellung ändern diff --git a/app/src/main/res/values-el/strings.xml b/app/src/main/res/values-el/strings.xml index 9daa46648..557603bd7 100644 --- a/app/src/main/res/values-el/strings.xml +++ b/app/src/main/res/values-el/strings.xml @@ -116,6 +116,7 @@ Επανάληψη εμφάνισης διαφανιών Η εμφάνιση διαφανειών τελείωσε Δεν βρέθηκαν πολυμέσα για την εμφάνιση διαφανειών + Use crossfade animations Αλλαγή τύπου εμφάνισης diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index c086bda3a..a4ff72ed6 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -116,6 +116,7 @@ Presentación de diapositivas La diapositiva terminó No se han encontrado medios para la presentación de diapositivas + Use crossfade animations Cambiar tipo de vista diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 8995416ba..012074dbb 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -116,6 +116,7 @@ Jatkuva diaesitys Diaesitys päättyi Mediaa diaesitykseen ei löytynyt + Use crossfade animations Vaihda näkymää diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 30f295612..7a9554894 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -116,6 +116,7 @@ Diaporama en boucle Diaporama terminé Aucun média trouvé pour le diaporama + Use crossfade animations Changer de mode d\'affichage diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 352de87bd..df63a45aa 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -116,6 +116,7 @@ Reproducir en bucle Rematou a presentación Non se atoparon medios para a presentación + Use crossfade animations Cambiar o tipo de vista diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index c2979a255..7392219df 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -116,6 +116,7 @@ Prikaži dijaprojekciju kao petlju Kraj dijaprojekcije Nema datoteka za dijaprojekciju + Use crossfade animations Promijeni vrstu prikaza diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index ec07f0cab..09a1d84b4 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -117,6 +117,7 @@ Diavetítés ismétlése A diavetítés vége A diavetítéshez nem található média + Use crossfade animations Nézet típus változtatása diff --git a/app/src/main/res/values-id/strings.xml b/app/src/main/res/values-id/strings.xml index 6a438ea66..2b4c0c882 100644 --- a/app/src/main/res/values-id/strings.xml +++ b/app/src/main/res/values-id/strings.xml @@ -116,6 +116,7 @@ Slideshow tanpa henti Slideshow berakhir Tidak ditemukan media untuk slideshow + Use crossfade animations Ubah jenis tampilan diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 442206bd1..7e54d37f3 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -116,6 +116,7 @@ Ripeti presentazione La presentazione è terminata Nessun file trovato per la presentazione + Use crossfade animations Cambia modalità visualizzazione diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 8cdcaac80..82a57ac7d 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -116,6 +116,7 @@ スライドショーをリピート再生する スライドショーが終了しました スライドショーに表示するメディアがありません + Use crossfade animations 表示形式の変更 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index e1d1edd1f..143ab2f23 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -116,6 +116,7 @@ 슬라이드 쇼 반복 슬라이드 쇼 종료 슬라이드 쇼를 위한 미디어를 찾을 수 없음 + Use crossfade animations 보기방식 변경 diff --git a/app/src/main/res/values-lt/strings.xml b/app/src/main/res/values-lt/strings.xml index 30805dfab..0e5945bae 100644 --- a/app/src/main/res/values-lt/strings.xml +++ b/app/src/main/res/values-lt/strings.xml @@ -116,6 +116,7 @@ Klipuoti skaidrių demonstraciją Skaidrių demonstracija pasibaigė Nerasta medijos skaidrių demonstracijai + Use crossfade animations Keisti peržiūros tipą diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 7ce6ba910..29e499226 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -116,6 +116,7 @@ Gjenta lysbildeshow Lysbildeshowet er slutt Ingen media for lysbildeshowet er funnet + Use crossfade animations Endre visningstype diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 56beb17a0..6c84517d3 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -116,6 +116,7 @@ Voorstelling herhalen De diavoorstelling is beëindigd Geen media gevonden voor diavoorstelling + Use crossfade animations Weergave diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index 8311b67e9..f1414d43c 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -116,6 +116,7 @@    Zapętlaj Pokaz slajdów zakończony Nie znalazłem multimediów do pokazu slajdów + Use crossfade animations    Zmień typ widoku diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 319d784c7..4e5ac0160 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -116,6 +116,7 @@ Apresentação em ciclo Fim da apresentação Nenhuma mídia encontrada para a apresentação + Use crossfade animations Alterar modo de visualização diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 4a9e0f893..761f3a251 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -116,6 +116,7 @@ Apresentação em ciclo Apresentação terminada Não foram encontrados ficheiros para a apresentação + Use crossfade animations Tipo de exibição diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 8fe47fbd8..98a841dd5 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -116,6 +116,7 @@ Зациклить Слайдшоу завершилось Медиафайлов для слайдшоу не найдено + Use crossfade animations Вид diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index f8de0facb..f8c929574 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -116,6 +116,7 @@ Automaticky reštartovať prezentáciu Prezentácia skončila Pre prezentáciu sa nenašli žiadne vhodné súbory + Použiť prelínacie animácie Zmeniť typ zobrazenia diff --git a/app/src/main/res/values-sl/strings.xml b/app/src/main/res/values-sl/strings.xml index 6e4884331..8be442876 100644 --- a/app/src/main/res/values-sl/strings.xml +++ b/app/src/main/res/values-sl/strings.xml @@ -116,6 +116,7 @@ Ponavljaj diaprojekcijo Diaprojekcija se je zaključila Ne najdem datotek za diaprojekcijo + Use crossfade animations Spremeni tip pogleda diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 64fbe8b2a..c2e6e6a9e 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -116,6 +116,7 @@ Spela upp i en slinga Bildspelet har avslutats Ingen media hittades för bildspelet + Use crossfade animations Ändra vy diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 268ee1c22..961371939 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -116,6 +116,7 @@ Slayt gösterisini tekrarla Slayt gösterisi sona erdi Slayt gösterisi için medya bulunamadı + Use crossfade animations Görünüm türünü değiştir diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 7958e66c3..3060c9cb1 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -116,6 +116,7 @@ Зациклити показ слайдів Слайдшоу закінчено Не знайдено медіафайлів для показу у слайдшоу + Use crossfade animations Змінити тип перегляду diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index d8afe2ddd..7a7fee070 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -116,6 +116,7 @@ 循环幻灯片 幻灯片结束 未发现可用媒体 + Use crossfade animations 更改视图类型 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 966ab508f..f342c0200 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -116,6 +116,7 @@ 投影片循環 投影片結束 找不到投影片的媒體檔案 + Use crossfade animations 改變瀏覽類型 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 49126e305..927dcba38 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -116,6 +116,7 @@ Loop slideshow The slideshow ended No media for the slideshow have been found + Use crossfade animations Change view type From c83e0d75ec68ae6dc5166d7f6a3d43c4a90b236f Mon Sep 17 00:00:00 2001 From: Emanuele Petriglia Date: Sat, 5 Jan 2019 11:02:47 +0000 Subject: [PATCH 29/54] Update italian translations --- app/src/main/res/values-it/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7e54d37f3..2eb06e3ef 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -116,7 +116,7 @@ Ripeti presentazione La presentazione è terminata Nessun file trovato per la presentazione - Use crossfade animations + Usa le animazioni in dissolvenza Cambia modalità visualizzazione @@ -171,7 +171,7 @@ Mostra le immagini alla massima qualità possibile Mostra il cestino come ultimo elemento nella schermata principale Chiudi la visuale a schermo intero con un gesto verso il basso - Allow 1:1 zooming in with two double taps + Permetti l'ingrandimento 1:1 con un doppio tasto Anteprime @@ -193,7 +193,7 @@ Come posso fare apparire un album sempre in cima? 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. Come avanzo velocemente nei video? - 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. + 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. Si può cliccare sui testi di durata attuale o massima vicino alla barra di avanzamento, ciò avanzerà o riavvolgerà il video. Che differenza c\'è tra nascondere ed escludere una cartella? 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. From e77590e48ce261b6d1cf2b5d31f2f7168eb51b1c Mon Sep 17 00:00:00 2001 From: FTno <16176811+FTno@users.noreply.github.com> Date: Sat, 5 Jan 2019 12:45:30 +0100 Subject: [PATCH 30/54] Update strings.xml Norwegian (nb) translation update --- app/src/main/res/values-nb/strings.xml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 29e499226..ba6a24e90 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -89,7 +89,7 @@ Speilvend vertikalt Rediger med Fri - Other + Annen Bakgrunnsbilde @@ -116,7 +116,7 @@ Gjenta lysbildeshow Lysbildeshowet er slutt Ingen media for lysbildeshowet er funnet - Use crossfade animations + Bruk krysstoningsanimasjon Endre visningstype @@ -134,8 +134,8 @@ Endelse - Folder shown on the widget: - Show folder name + Mappe vist på modulen: + Vis mappenavn Avspill videoer automatisk @@ -171,7 +171,7 @@ Vis bilder i høyest mulig kvalitet Vis papirkurven som siste element på hovedskjermen Tillat lukking av mediavisningen med en nedoverbevegelse - Allow 1:1 zooming in with two double taps + Tillat å zoome 1:1 med to dobbeltrykk Minibilder From bbee689b955ee6c4c9833f2a1ac51ccf70de1b89 Mon Sep 17 00:00:00 2001 From: sawka6630 Date: Sat, 5 Jan 2019 19:43:58 +0200 Subject: [PATCH 31/54] Update strings.xml Updated Ukrainian translation according to recent changes. --- app/src/main/res/values-uk/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 3060c9cb1..e4f8f07dc 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -116,7 +116,7 @@ Зациклити показ слайдів Слайдшоу закінчено Не знайдено медіафайлів для показу у слайдшоу - Use crossfade animations + Анімувати перехід між елементами Змінити тип перегляду @@ -171,7 +171,7 @@ Показувати зображення в найвищій можливій якості Показувати \"Кошик\" останнім елементом на головному екрані Дозволити закриття повноекранного перегляду свайпом згори вниз - Allow 1:1 zooming in with two double taps + Дозволити масштабування до 1:1 подвійним тапом Ескізи @@ -193,7 +193,7 @@ Як зробити альбом завжди доступним у верхній частині? Ви можете виконати довге натискання на бажаному альбомі і вибрати піктограму \"Закріпити\" у меню дій, що закріпить його вгорі. Ви також можете закріпити декілька тек; закріплені елементи будуть відсортовані за методом сортування за-замовчуванням. Як я можу швидко прокручувати відео? - 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. + Ви можете або провести пальцем горизонтально під час відтворення відео, або натиснути на текст поточної або максимальної тривалості відео біля прогрес-бару, що прокрутить відео або назад, або вперед. Ви можете натиснути на текст поточного таймінгу або на текст загальної тривалості відео на прогрес-барі, що перемістить відео або назад, або вперед. В чому полягає різниця між приховуванням та виключенням теки? \"Виключити\" запобігає відображенню теки тільки в додатку Simple Gallery, в той час як \"Приховати\" працює на системному рівні і приховує теку і в інших галереях також. Це здійснюється шляхом створення порожнього файлу \".nomedia\" в заданій теці, який може бути видалений пізніше будь-яким файловим менеджером. From aae84fe3a654d64b01e4bd0f0560b9912b5424db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hevesi=20J=C3=A1nos?= <44799533+hevesij@users.noreply.github.com> Date: Sat, 5 Jan 2019 19:11:09 +0100 Subject: [PATCH 32/54] Updated Hungarian translation --- app/src/main/res/values-hu/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 09a1d84b4..1a5c649b1 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -117,7 +117,7 @@ Diavetítés ismétlése A diavetítés vége A diavetítéshez nem található média - Use crossfade animations + Animáció átmenet használat Nézet típus változtatása @@ -172,7 +172,7 @@ Mutassa a képeket a lehető legjobb minőségben Mutassa a Lomtárat a fő képernyő utolsó elemeként Engedélyezi a teljes képernyős nézetet a lefelé mozdulattal - Allow 1:1 zooming in with two double taps + Engedélyezi az 1:1 nagyítást két dupla érintéssel Miniatűrök @@ -194,8 +194,8 @@ A következő alkalommal, amikor megpróbál megnyitni egy képet vagy videót, Hogyan állíthatok be egy albumot úgy, hogy mindig felül legyen? 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. Hogyan tudom előre tekerni a videókat? - 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. - 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. + 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. + 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. Mi a különbség a mappa elrejtése és kizárása között? 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. Miért jelennek meg a zenei borítóval vagy matricával rendelkező mappák? From 69f2ad34e85ecd287bf821e0707342cbbc838c75 Mon Sep 17 00:00:00 2001 From: Pzqqt <821026875@qq.com> Date: Sun, 6 Jan 2019 20:38:31 +0800 Subject: [PATCH 33/54] Update strings.xml --- app/src/main/res/values-zh-rCN/strings.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 7a7fee070..abce63b4f 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -116,7 +116,7 @@ 循环幻灯片 幻灯片结束 未发现可用媒体 - Use crossfade animations + 使用交叉渐变动画 更改视图类型 @@ -171,7 +171,7 @@ 以最高质量显示图像 在主屏幕界面的最后一项显示回收站 使用下滑手势关闭全屏视图 - Allow 1:1 zooming in with two double taps + 双击两次后 1:1 放大图像 缩略图 @@ -192,7 +192,7 @@ 如何让某个相册始终显示在最上面? 你可以长按该相册并在操作栏中点击图钉图标,这样 就可以将其固定在顶部了。你也可以固定多个文件夹,固定项目将按照默认排序方法排序。 如何快进/快退视频? - 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. + 只需在视频播放器上左右滑动,或点击底栏进度条两侧的时间文本,即可前进或后退视频。 可以点击底栏进度条两侧的时间文本,或拖动进度条。 文件夹的隐藏和排除有什么区别? 排除功能只是防止其在简约图库中显示,而隐藏功能则使用的是系统的方法,这样做也会在其他图库中隐藏。它的工作原理是在给定的文件夹中创建一个空的.nomedia文件,你可以使用任何文件管理器删除它。 @@ -217,7 +217,7 @@ - An offline gallery for managing your files without ads, respecting your privacy. + 一个没有广告,尊重隐私,便于管理文件的离线图库。 一个高度可定制的图库,支持很多的图像和视频类型,包括SVG,RAW,全景照片和视频。 From 0dc57c6939f7fae9978be5c1b935ed9ba307716d Mon Sep 17 00:00:00 2001 From: Guillaume Date: Sun, 6 Jan 2019 20:11:47 +0100 Subject: [PATCH 34/54] Dutch --- app/src/main/res/values-nl/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 6c84517d3..6aa91343e 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -116,7 +116,7 @@ Voorstelling herhalen De diavoorstelling is beëindigd Geen media gevonden voor diavoorstelling - Use crossfade animations + Crossfade-animaties gebruiken Weergave From 665d545cc66d4664e4c5c22e2ea87b5f84c29351 Mon Sep 17 00:00:00 2001 From: dugi9991 Date: Sun, 6 Jan 2019 22:07:57 +0100 Subject: [PATCH 35/54] Update strings.xml Translated newly added strings. --- app/src/main/res/values-hr/strings.xml | 80 +++++++++++++------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 7392219df..790b4a3fc 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -30,7 +30,7 @@ Koristi zadanu orijentaciju slike Ispravi vrijednost datuma snimanja Popravljam… - Dates fixed successfully + Datumi uspješno popravljeni Filtriranje medija @@ -89,7 +89,7 @@ Okreni vertikalno Uredi pomoću Slobodan odabir - Other + Ostalo Jednostavna pozadina @@ -116,7 +116,7 @@ Prikaži dijaprojekciju kao petlju Kraj dijaprojekcije Nema datoteka za dijaprojekciju - Use crossfade animations + Koristi prijelazne animacije Promijeni vrstu prikaza @@ -134,18 +134,18 @@ Vrsta datoteke - Folder shown on the widget: - Show folder name + Mapa prikazana na widgetu: + Prikaži naziv mape Automatsko pokretanje videa - Remember last video playback position + Zapamti poziciju zadnjeg reproduciranog videozapisa Uključi prikaz naziva datoteka Ponavljanje videa Prikaz animacije GIF-ova na sličicama Maksimalna svjetlina pri pregledu datoteka Izreži sličice u kvadrate - Show video durations + Prikaži trajanje videozapisa Rotiraj datoteku u punom zaslonu za Postavke sustava Rotacija uređaja @@ -162,16 +162,16 @@ Upravljaj proširenim pojedinostima Omogući zumiranje jednim prstom na mediju cijelog zaslona Dopusti trenutačno mijenjanje medija dodirom na stranice zaslona - Allow deep zooming images + Omogućite duboko zumiranje slika Sakrij proširene pojedinosti kada je traka statusa skrivena Napravite dodatnu provjeru da biste izbjegli prikazivanje nevažećih datoteka - Pokažite neke gumbe za radnju pri dnu zaslona + Prikaži neke gumbe za radnju pri dnu zaslona Prikažite koš za smeće na zaslonu mapa - Deep zoomable images - Show images in the highest possible quality - Show the Recycle Bin as the last item on the main screen - Allow closing the fullscreen view with a down gesture - Allow 1:1 zooming in with two double taps + Duboko zumirane slike + Prikaži slike u najvišoj mogućoj kvaliteti + Prikaži koš za smeće kao posljednju stavku na glavnom zaslonu + Omogućite zatvaranje prikaza preko cijelog zaslona pokretom prema dolje + Dopusti zumiranje 1: 1 s dva dvostruka dodira Sličice @@ -212,40 +212,40 @@ 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. Sortiranje po datumu nije točno, kako to mogu ispraviti? 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\'. - I see some color banding on the images. How can I improve the quality? - 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. - I have hidden a file/folder. How can I unhide it? - 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. + Vidim nekakvno preklapanje boja na slikama. Kako mogu poboljšati kvalitetu? + 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". + Sakrio sam datoteku/mapu. Kako je mogu otkriti? + 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. - An offline gallery for managing your files without ads, respecting your privacy. + Izvanmrežna galerija za upravljanje datotekama, bez oglasa, poštujući Vašu privatnost. - 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 - Izvanmrežna galerija za upravljanje datotekama, bez oglasa, poštujući Vašu privatnost. + Izvanmrežna galerija za upravljanje datotekama,bez oglasa,poštujući privatnost. Vrlo prilagodljiva galerija koja može prikazivati različite vrste slika i videozapisa, uključujući SVG-ove, RAW-ove, panoramske fotografije i videozapise. From 7e180b9c1dc9a83150bddb5a55641857cd6d3cc1 Mon Sep 17 00:00:00 2001 From: Tibor Kaputa Date: Sun, 6 Jan 2019 23:37:13 +0100 Subject: [PATCH 37/54] shortening the short app description --- app/src/main/res/values-hu/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 22699c40c..9e8bf482e 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -217,7 +217,7 @@ Ezzel csak a kiválasztott mappák láthatók, mivel a kizárás és a befoglal - Egy offline galéria a fájlok hirdetés nélküli kezelésére, a magánélet tiszteletben tartása mellett. + Egy offline galéria a fájlok hirdetés nélküli kezelésére. 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. From 162b3ac2a128190526fa08c506b1843364084e18 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 09:14:55 +0100 Subject: [PATCH 38/54] updating commons to 5.6.6 --- app/build.gradle | 2 +- app/src/main/res/values-it/strings.xml | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 432aed07e..484628ed8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -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' diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 2eb06e3ef..080359793 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -171,7 +171,7 @@ Mostra le immagini alla massima qualità possibile Mostra il cestino come ultimo elemento nella schermata principale Chiudi la visuale a schermo intero con un gesto verso il basso - Permetti l'ingrandimento 1:1 con un doppio tasto + Permetti l\'ingrandimento 1:1 con un doppio tasto Anteprime @@ -225,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 From 8b63d27cdc8b3a2410464cf5e2e4b2654aefc442 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 10:00:38 +0100 Subject: [PATCH 39/54] fix #1191, allow toggling play/pause in fullscreen mode --- .../gallery/pro/activities/VideoPlayerActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 272ac8ab1..4c512467a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -402,7 +402,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen 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_curr_time, video_duration).forEach { it.isClickable = !mIsFullscreen } } From 7cb5fce4bd53748bce9349d32b8086854e01cfbf Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 10:03:46 +0100 Subject: [PATCH 40/54] fix #1179, fix menu buttons at the video player activity --- .../gallery/pro/activities/VideoPlayerActivity.kt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 4c512467a..b8c17df05 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -119,6 +119,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 From 346fe5e444e0c10a3deaacd0ecb9a5e93f806bcf Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 10:13:41 +0100 Subject: [PATCH 41/54] properly handle device rotation at the video player --- .../pro/activities/VideoPlayerActivity.kt | 25 ++++++++++++++++--- .../pro/activities/ViewPagerActivity.kt | 4 +-- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index b8c17df05..a366018ae 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -26,9 +26,7 @@ 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.CLICK_MAX_DURATION -import com.simplemobiletools.gallery.pro.helpers.DRAG_THRESHOLD -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.* @@ -39,6 +37,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen 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 @@ -60,6 +59,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen public override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_video_player) + setupOrientation() handlePermission(PERMISSION_WRITE_STORAGE) { if (it) { @@ -132,6 +132,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!!) @@ -381,9 +391,18 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen 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 { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt index 3da6a06ac..edc38717b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt @@ -119,7 +119,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View window.attributes = attributes } - setupRotation() + setupOrientation() invalidateOptionsMenu() supportActionBar?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT)) @@ -358,7 +358,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 From 25131bd75bb317e5dc3cb23203c82d33b3ac0f67 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 10:55:50 +0100 Subject: [PATCH 42/54] adding buttons to the videoplayer for going to next/prev file --- .../pro/activities/VideoPlayerActivity.kt | 4 +++- .../res/drawable-hdpi/ic_next_outline.png | Bin 0 -> 3135 bytes .../res/drawable-hdpi/ic_prev_outline.png | Bin 0 -> 3143 bytes .../res/drawable-xhdpi/ic_next_outline.png | Bin 0 -> 3371 bytes .../res/drawable-xhdpi/ic_prev_outline.png | Bin 0 -> 3378 bytes .../res/drawable-xxhdpi/ic_next_outline.png | Bin 0 -> 6350 bytes .../res/drawable-xxhdpi/ic_prev_outline.png | Bin 0 -> 6361 bytes .../res/drawable-xxxhdpi/ic_next_outline.png | Bin 0 -> 7012 bytes .../res/drawable-xxxhdpi/ic_prev_outline.png | Bin 0 -> 7075 bytes .../res/layout/bottom_video_time_holder.xml | 22 ++++++++++++++++++ 10 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 app/src/main/res/drawable-hdpi/ic_next_outline.png create mode 100644 app/src/main/res/drawable-hdpi/ic_prev_outline.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_next_outline.png create mode 100644 app/src/main/res/drawable-xhdpi/ic_prev_outline.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_next_outline.png create mode 100644 app/src/main/res/drawable-xxhdpi/ic_prev_outline.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_next_outline.png create mode 100644 app/src/main/res/drawable-xxxhdpi/ic_prev_outline.png diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index a366018ae..92a4f19cf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -161,6 +161,8 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen video_curr_time.setOnClickListener { skip(false) } video_duration.setOnClickListener { skip(true) } video_toggle_play_pause.setOnClickListener { togglePlayPause() } + video_next_file.setOnClickListener { } + video_prev_file.setOnClickListener { } video_player_holder.setOnTouchListener { view, event -> handleEvent(event) @@ -419,7 +421,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen } val newAlpha = if (isFullScreen) 0f else 1f - arrayOf(video_toggle_play_pause, video_curr_time, video_seekbar, video_duration, top_shadow, video_bottom_gradient).forEach { + 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) diff --git a/app/src/main/res/drawable-hdpi/ic_next_outline.png b/app/src/main/res/drawable-hdpi/ic_next_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..88c0a34aac0689e9b43e79abe00aff58b8536f40 GIT binary patch literal 3135 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxhdpi/ic_next_outline.png b/app/src/main/res/drawable-xxhdpi/ic_next_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..f88b8d317533fdfb83e4389086b79515746f7238 GIT binary patch literal 6350 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 Y3zN7`aiZY@{I3E~Q_@zfmWM_D51D8-g#Z8m literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_next_outline.png b/app/src/main/res/drawable-xxxhdpi/ic_next_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..34fe17702ff335e31c6c0decaffbc64927bc9892 GIT binary patch literal 7012 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable-xxxhdpi/ic_prev_outline.png b/app/src/main/res/drawable-xxxhdpi/ic_prev_outline.png new file mode 100644 index 0000000000000000000000000000000000000000..2e0a23b8b7e010eacec9df557d4c2350a680c7e6 GIT binary patch literal 7075 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 + + + + Date: Tue, 8 Jan 2019 11:04:37 +0100 Subject: [PATCH 43/54] renaming some variables, no real code change --- .../gallery/pro/fragments/PhotoFragment.kt | 214 +++++++++--------- .../gallery/pro/fragments/VideoFragment.kt | 20 +- 2 files changed, 117 insertions(+), 117 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt index 0517bc088..7c3238639 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt @@ -62,29 +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 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 loadZoomableViewHandler = Handler() + private var mIoadZoomableViewHandler = Handler() private var mScreenWidth = 0 private var mScreenHeight = 0 - private var storedShowExtendedDetails = false - private var storedHideExtendedDetails = false - private var storedAllowDeepZoomableImages = false - private var storedShowHighestQuality = false - private var storedAllowOneFingerZoom = false - private var storedExtendedDetails = 0 + private var mStoredShowExtendedDetails = false + private var mStoredHideExtendedDetails = false + private var mStoredAllowDeepZoomableImages = false + private var mStoredShowHighestQuality = false + private var mStoredAllowOneFingerZoom = false + private var mStoredExtendedDetails = 0 - lateinit var view: ViewGroup - lateinit var medium: Medium + 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() } @@ -96,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 { @@ -112,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 @@ -122,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)) @@ -148,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() { @@ -176,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() } } @@ -194,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) @@ -206,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) } } @@ -216,12 +216,12 @@ 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 } } @@ -265,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) { @@ -296,13 +296,13 @@ 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 { @@ -315,10 +315,10 @@ class PhotoFragment : ViewPagerFragment() { 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() } } @@ -337,53 +337,53 @@ class PhotoFragment : ViewPagerFragment() { 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 { override fun onLoadFailed(e: GlideException?, model: Any?, target: com.bumptech.glide.request.target.Target?, isFirstResource: Boolean) = false override fun onResourceReady(resource: Bitmap?, model: Any?, target: Target?, 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 { override fun make() = PicassoDecoder(path, Picasso.get(), rotation) @@ -394,7 +394,7 @@ class PhotoFragment : ViewPagerFragment() { } val config = context!!.config - view.subsampling_view.apply { + mView.subsampling_view.apply { setMaxTileSize(if (config.showHighestQuality) Integer.MAX_VALUE else 4096) setMinimumTileDpi(if (config.showHighestQuality) -1 else getMinTileDpi()) background = ColorDrawable(Color.TRANSPARENT) @@ -414,8 +414,8 @@ class PhotoFragment : ViewPagerFragment() { override fun onReady() { background = ColorDrawable(if (config.blackBackground) Color.BLACK else config.backgroundColor) - val useWidth = if (imageOrientation == ORIENTATION_ROTATE_90 || imageOrientation == ORIENTATION_ROTATE_270) sHeight else sWidth - val useHeight = if (imageOrientation == ORIENTATION_ROTATE_90 || imageOrientation == ORIENTATION_ROTATE_270) sWidth else sHeight + 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 } @@ -427,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() } }) @@ -455,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()) + 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()) imageParser.contains("GPano:UsePanoramaViewer=\"True\"", true) || imageParser.contains("True", true) } catch (e: Exception) { false @@ -465,7 +465,7 @@ class PhotoFragment : ViewPagerFragment() { false } - view.panorama_outline.beVisibleIf(isPanorama) + mView.panorama_outline.beVisibleIf(mIsPanorama) } private fun getImageOrientation(): Int { @@ -473,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() @@ -510,47 +510,47 @@ class PhotoFragment : ViewPagerFragment() { } 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) @@ -566,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) } } @@ -579,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() } } @@ -598,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 } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt index b9c02b63a..e3078d10d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt @@ -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) } } @@ -129,7 +129,7 @@ class VideoFragment : ViewPagerFragment() { } private fun launchVideoPlayer() { - activity!!.openPath(medium.path, false) + activity!!.openPath(mMedium.path, false) } private fun toggleFullscreen() { @@ -140,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) @@ -159,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) { @@ -170,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) } } From 81857948be5714be9ef90c532adc546ad5e22fab Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 12:22:14 +0100 Subject: [PATCH 44/54] show the next/prev video player buttons only when appropriate --- .../pro/activities/PhotoVideoActivity.kt | 7 +++- .../pro/activities/VideoPlayerActivity.kt | 16 +++++++-- .../pro/activities/ViewPagerActivity.kt | 33 +++++++++++++++++++ .../gallery/pro/fragments/VideoFragment.kt | 2 +- .../pro/fragments/ViewPagerFragment.kt | 2 ++ .../gallery/pro/helpers/Constants.kt | 2 ++ .../res/layout/bottom_video_time_holder.xml | 6 ++-- 7 files changed, 62 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt index cddd19ffe..c5352c5e3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt @@ -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 @@ -177,6 +176,10 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList val mimeType = getUriMimeType(mUri.toString(), newUri) Intent(applicationContext, VideoPlayerActivity::class.java).apply { setDataAndType(newUri, mimeType) + if (intent.extras != null) { + putExtras(intent.extras!!) + } + startActivity(this) } } @@ -292,4 +295,6 @@ open class PhotoVideoActivity : SimpleActivity(), ViewPagerFragment.FragmentList override fun goToPrevItem() {} override fun goToNextItem() {} + + override fun launchViewVideoIntent(path: String) {} } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 92a4f19cf..e87253269 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -161,8 +161,12 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen video_curr_time.setOnClickListener { skip(false) } video_duration.setOnClickListener { skip(true) } video_toggle_play_pause.setOnClickListener { togglePlayPause() } - video_next_file.setOnClickListener { } - video_prev_file.setOnClickListener { } + + 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) @@ -542,6 +546,14 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen } } + private fun handleNextFile() { + + } + + private fun handlePrevFile() { + + } + private fun resetPlayWhenReady() { mExoPlayer?.playWhenReady = false mPlayWhenReadyHandler.removeCallbacksAndMessages(null) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt index edc38717b..dfe90ffc5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt @@ -32,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 @@ -53,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 @@ -917,6 +920,8 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View if (resultCode == Activity.RESULT_OK) { toast(R.string.wallpaper_set_successfully) } + } else if (requestCode == REQUEST_VIEW_VIDEO) { + } super.onActivityResult(requestCode, resultCode, resultData) } @@ -1098,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) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt index e3078d10d..0ef8a6223 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/VideoFragment.kt @@ -129,7 +129,7 @@ class VideoFragment : ViewPagerFragment() { } private fun launchVideoPlayer() { - activity!!.openPath(mMedium.path, false) + listener?.launchViewVideoIntent(mMedium.path) } private fun toggleFullscreen() { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt index 8c2545ff7..5153859ad 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/ViewPagerFragment.kt @@ -28,6 +28,8 @@ abstract class ViewPagerFragment : Fragment() { fun goToPrevItem() fun goToNextItem() + + fun launchViewVideoIntent(path: String) } fun getMediumExtendedDetails(medium: Medium): String { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt index 9baa22b50..1e06716ea 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt @@ -92,6 +92,8 @@ 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 MAX_COLUMN_COUNT = 20 const val SHOW_TEMP_HIDDEN_DURATION = 300000L const val CLICK_MAX_DURATION = 150 diff --git a/app/src/main/res/layout/bottom_video_time_holder.xml b/app/src/main/res/layout/bottom_video_time_holder.xml index 567ab5026..ec34b6501 100644 --- a/app/src/main/res/layout/bottom_video_time_holder.xml +++ b/app/src/main/res/layout/bottom_video_time_holder.xml @@ -16,7 +16,8 @@ android:layout_marginTop="@dimen/activity_margin" android:background="?attr/selectableItemBackgroundBorderless" android:padding="@dimen/normal_margin" - android:src="@drawable/ic_prev_outline"/> + android:src="@drawable/ic_prev_outline" + android:visibility="invisible"/> + android:src="@drawable/ic_next_outline" + android:visibility="invisible"/> Date: Tue, 8 Jan 2019 12:35:42 +0100 Subject: [PATCH 45/54] implement the prev/next button functionality --- .../pro/activities/PhotoVideoActivity.kt | 1 + .../pro/activities/VideoPlayerActivity.kt | 14 ++++++++++-- .../pro/activities/ViewPagerActivity.kt | 22 +++++++++---------- .../gallery/pro/helpers/Constants.kt | 4 ++-- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt index c5352c5e3..224b58325 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/PhotoVideoActivity.kt @@ -176,6 +176,7 @@ 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!!) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index e87253269..2bc592402 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -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 @@ -547,11 +549,19 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen } 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() { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt index dfe90ffc5..6edf32c38 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/ViewPagerActivity.kt @@ -910,18 +910,18 @@ 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) { - mPos = -1 - mPrevHashcode = 0 - refreshViewPager() + if (requestCode == REQUEST_EDIT_IMAGE && resultCode == Activity.RESULT_OK && resultData != null) { + mPos = -1 + mPrevHashcode = 0 + refreshViewPager() + } 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() } - } else if (requestCode == REQUEST_SET_AS) { - if (resultCode == Activity.RESULT_OK) { - toast(R.string.wallpaper_set_successfully) - } - } else if (requestCode == REQUEST_VIEW_VIDEO) { - } super.onActivityResult(requestCode, resultCode, resultData) } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt index 1e06716ea..d0c1d72e4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/helpers/Constants.kt @@ -94,13 +94,13 @@ 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" From 51cf93001b721607cbeff3ed38f875583dcc3951 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 13:19:28 +0100 Subject: [PATCH 46/54] do not allow pressing prev/next item at videoplayer fullscreen mode --- .../gallery/pro/activities/VideoPlayerActivity.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt index 2bc592402..d47601c06 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/VideoPlayerActivity.kt @@ -431,7 +431,7 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen it.animate().alpha(newAlpha).start() } video_seekbar.setOnSeekBarChangeListener(if (mIsFullscreen) null else this) - arrayOf(video_curr_time, video_duration).forEach { + arrayOf(video_prev_file, video_next_file, video_curr_time, video_duration).forEach { it.isClickable = !mIsFullscreen } } From 57a280c96e27644dbb62f4ba993da14b74caad7a Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 13:33:44 +0100 Subject: [PATCH 47/54] fix #1181, properly retrieve exif data at editing, when overwriting a file --- .../gallery/pro/activities/EditActivity.kt | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt index 8ee45eacb..3d71b443b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt @@ -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 @@ -222,7 +223,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 { @@ -593,17 +606,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) From f5c32d0a82ad15b845b1b0a71f29d2195c11b0d0 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 13:38:23 +0100 Subject: [PATCH 48/54] splitting some Glide code at the editor on multiple lines --- .../gallery/pro/activities/EditActivity.kt | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt index 3d71b443b..8406b8a83 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt @@ -384,7 +384,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() From 09ac5e59e948b8e92edb9e88a7bfcf34f13babd6 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 13:42:57 +0100 Subject: [PATCH 49/54] adding some crashfix related to the editor --- .../gallery/pro/activities/EditActivity.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt index 8406b8a83..f665296be 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/EditActivity.kt @@ -137,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) From ed0aa0b29903457813cea0b27e6c5a9e880c4a04 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 13:45:47 +0100 Subject: [PATCH 50/54] adding a possible crashfix at photo fragment --- .../simplemobiletools/gallery/pro/fragments/PhotoFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt index 7c3238639..f8a36a11b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/fragments/PhotoFragment.kt @@ -324,7 +324,7 @@ class PhotoFragment : ViewPagerFragment() { } override fun onError(e: Exception) { - if (context != null) { + if (activity != null) { tryLoadingWithGlide() } } From 450a9d96e489f76adc1a9ef91cabf8dffb9dd301 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 13:47:23 +0100 Subject: [PATCH 51/54] adding some search related crashfix at MediaActivity --- .../gallery/pro/activities/MediaActivity.kt | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt index fdca85100..7618bd98b 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt @@ -320,12 +320,15 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { private fun searchQueryChanged(text: String) { Thread { - 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, mPath) - runOnUiThread { - getMediaAdapter()?.updateMedia(grouped) - measureRecyclerViewContent(grouped) + 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, mPath) + runOnUiThread { + getMediaAdapter()?.updateMedia(grouped) + measureRecyclerViewContent(grouped) + } + } catch (ignored: Exception) { } }.start() } From bd1ff2e31f5f3a114dabb746e9a86ceccded3b2e Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 13:49:26 +0100 Subject: [PATCH 52/54] fixing the casing of a function --- .../simplemobiletools/gallery/pro/activities/MediaActivity.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt index 7618bd98b..13572628f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/pro/activities/MediaActivity.kt @@ -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()) @@ -333,7 +333,7 @@ class MediaActivity : SimpleActivity(), MediaOperationsListener { }.start() } - private fun tryloadGallery() { + private fun tryLoadGallery() { handlePermission(PERMISSION_WRITE_STORAGE) { if (it) { val dirName = when { From d680f45224c51efe4823ebbb5d84f01ff0af0022 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 13:53:18 +0100 Subject: [PATCH 53/54] update version to 6.2.1 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 484628ed8..e0cd7c297 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -15,8 +15,8 @@ android { applicationId "com.simplemobiletools.gallery.pro" minSdkVersion 21 targetSdkVersion 28 - versionCode 218 - versionName "6.2.0" + versionCode 219 + versionName "6.2.1" multiDexEnabled true setProperty("archivesBaseName", "gallery") } From 251da629c13543b9cbfae0859fbb11a197648630 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 8 Jan 2019 13:53:23 +0100 Subject: [PATCH 54/54] updating changelog --- CHANGELOG.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 228574f4c..4679c2ccb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ 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)* ----------------------------