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 8c8586f8f..a8df6dc58 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 @@ -615,7 +615,9 @@ class SettingsActivity : SimpleActivity() { put(FILE_LOADING_PRIORITY, config.fileLoadingPriority) put(AUTOPLAY_VIDEOS, config.autoplayVideos) put(REMEMBER_LAST_VIDEO_POSITION, config.rememberLastVideoPosition) - put(LAST_VIDEO_PATH, config.lastVideoPath) + config.getAllLastVideoPositions().forEach { + put(it.key, it.value.toString()) + } put(LOOP_VIDEOS, config.loopVideos) put(OPEN_VIDEOS_ON_SEPARATE_SCREEN, config.openVideosOnSeparateScreen) put(ALLOW_VIDEO_GESTURES, config.allowVideoGestures) @@ -738,7 +740,6 @@ class SettingsActivity : SimpleActivity() { FILE_LOADING_PRIORITY -> config.fileLoadingPriority = value.toInt() AUTOPLAY_VIDEOS -> config.autoplayVideos = value.toBoolean() REMEMBER_LAST_VIDEO_POSITION -> config.rememberLastVideoPosition = value.toBoolean() - LAST_VIDEO_PATH -> config.lastVideoPath = value.toString() LOOP_VIDEOS -> config.loopVideos = value.toBoolean() OPEN_VIDEOS_ON_SEPARATE_SCREEN -> config.openVideosOnSeparateScreen = value.toBoolean() ALLOW_VIDEO_GESTURES -> config.allowVideoGestures = value.toBoolean() @@ -799,6 +800,10 @@ class SettingsActivity : SimpleActivity() { LAST_CONFLICT_RESOLUTION -> config.lastConflictResolution = value.toInt() LAST_CONFLICT_APPLY_TO_ALL -> config.lastConflictApplyToAll = value.toBoolean() } + + if (key.startsWith(LAST_VIDEO_POSITION_PREFIX)) { + config.saveLastVideoPosition(key, value as Int) + } } toast(if (configValues.size > 0) R.string.settings_imported_successfully else R.string.no_entries_for_importing) 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 4578e906e..a1f0c225e 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 @@ -324,8 +324,9 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen } private fun setLastVideoSavedPosition() { - if (config.lastVideoPath == mUri.toString() && config.lastVideoPosition > 0) { - setPosition(config.lastVideoPosition) + val pos = config.getLastVideoPosition(mUri.toString()) + if (pos > 0) { + setPosition(pos) } } @@ -353,18 +354,12 @@ open class VideoPlayerActivity : SimpleActivity(), SeekBar.OnSeekBarChangeListen private fun saveVideoProgress() { if (!didVideoEnd()) { - config.apply { - lastVideoPosition = mExoPlayer!!.currentPosition.toInt() / 1000 - lastVideoPath = mUri.toString() - } + config.saveLastVideoPosition(mUri.toString(), mExoPlayer!!.currentPosition.toInt() / 1000) } } private fun clearLastVideoSavedProgress() { - config.apply { - lastVideoPosition = 0 - lastVideoPath = "" - } + config.removeLastVideoPosition(mUri.toString()) } private fun setVideoSize() { 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 7cd46cb6e..1f220e798 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 @@ -61,8 +61,6 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S private var mStoredBottomActions = true private var mStoredExtendedDetails = 0 private var mStoredRememberLastVideoPosition = false - private var mStoredLastVideoPath = "" - private var mStoredLastVideoPosition = 0 private lateinit var mTimeHolder: View private lateinit var mBrightnessSideScroll: MediaSideScroll @@ -183,7 +181,7 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S setupVideoDuration() if (mStoredRememberLastVideoPosition) { - setLastVideoSavedPosition() + restoreLastVideoSavedPosition() } updateInstantSwitchWidths() @@ -263,8 +261,6 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S mStoredExtendedDetails = extendedDetails mStoredBottomActions = bottomActions mStoredRememberLastVideoPosition = rememberLastVideoPosition - mStoredLastVideoPath = lastVideoPath - mStoredLastVideoPosition = lastVideoPosition } } @@ -285,19 +281,14 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S private fun saveVideoProgress() { if (!videoEnded()) { - mStoredLastVideoPosition = mExoPlayer!!.currentPosition.toInt() / 1000 - mStoredLastVideoPath = mMedium.path - } - - mConfig.apply { - lastVideoPosition = mStoredLastVideoPosition - lastVideoPath = mStoredLastVideoPath + mConfig.saveLastVideoPosition(mMedium.path, mExoPlayer!!.currentPosition.toInt() / 1000) } } - private fun setLastVideoSavedPosition() { - if (mStoredLastVideoPath == mMedium.path && mStoredLastVideoPosition > 0) { - setPosition(mStoredLastVideoPosition) + private fun restoreLastVideoSavedPosition() { + val pos = mConfig.getLastVideoPosition(mMedium.path) + if (pos > 0) { + setPosition(pos) } } @@ -563,8 +554,7 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S } if (mStoredRememberLastVideoPosition) { - setLastVideoSavedPosition() - clearLastVideoSavedProgress() + restoreLastVideoSavedPosition() } if (!wasEnded || !mConfig.loopVideos) { @@ -582,11 +572,6 @@ class VideoFragment : ViewPagerFragment(), TextureView.SurfaceTextureListener, S activity!!.window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) } - private fun clearLastVideoSavedProgress() { - mStoredLastVideoPosition = 0 - mStoredLastVideoPath = "" - } - private fun pauseVideo() { if (mExoPlayer == null) { return 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 f033c6ece..f287b8308 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 @@ -375,18 +375,26 @@ class Config(context: Context) : BaseConfig(context) { get() = prefs.getBoolean(BOTTOM_ACTIONS, true) set(bottomActions) = prefs.edit().putBoolean(BOTTOM_ACTIONS, bottomActions).apply() + fun removeLastVideoPosition(path: String) { + prefs.edit().remove("$LAST_VIDEO_POSITION_PREFIX${path.toLowerCase()}").apply() + } + + fun saveLastVideoPosition(path: String, value: Int) { + if (!path.isEmpty()) { + prefs.edit().putInt("$LAST_VIDEO_POSITION_PREFIX${path.toLowerCase()}", value).apply() + } + } + + fun getLastVideoPosition(path: String) = prefs.getInt("$LAST_VIDEO_POSITION_PREFIX${path.toLowerCase()}", 0) + + fun getAllLastVideoPositions() = prefs.all.filterKeys { + it.startsWith(LAST_VIDEO_POSITION_PREFIX) + } + var rememberLastVideoPosition: Boolean get() = prefs.getBoolean(REMEMBER_LAST_VIDEO_POSITION, false) set(rememberLastVideoPosition) = prefs.edit().putBoolean(REMEMBER_LAST_VIDEO_POSITION, rememberLastVideoPosition).apply() - var lastVideoPath: String - get() = prefs.getString(LAST_VIDEO_PATH, "") - set(lastVideoPath) = prefs.edit().putString(LAST_VIDEO_PATH, lastVideoPath).apply() - - var lastVideoPosition: Int - get() = prefs.getInt(LAST_VIDEO_POSITION, 0) - set(lastVideoPosition) = prefs.edit().putInt(LAST_VIDEO_POSITION, lastVideoPosition).apply() - var visibleBottomActions: Int get() = prefs.getInt(VISIBLE_BOTTOM_ACTIONS, DEFAULT_BOTTOM_ACTIONS) set(visibleBottomActions) = prefs.edit().putInt(VISIBLE_BOTTOM_ACTIONS, visibleBottomActions).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 f620f154c..0ea8d7062 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 @@ -52,8 +52,7 @@ const val WAS_NEW_APP_SHOWN = "was_new_app_shown_clock" const val LAST_FILEPICKER_PATH = "last_filepicker_path" const val TEMP_SKIP_DELETE_CONFIRMATION = "temp_skip_delete_confirmation" const val BOTTOM_ACTIONS = "bottom_actions" -const val LAST_VIDEO_PATH = "last_video_path" -const val LAST_VIDEO_POSITION = "last_video_position" +const val LAST_VIDEO_POSITION_PREFIX = "last_video_position_" const val VISIBLE_BOTTOM_ACTIONS = "visible_bottom_actions" const val WERE_FAVORITES_PINNED = "were_favorites_pinned" const val WAS_RECYCLE_BIN_PINNED = "was_recycle_bin_pinned" diff --git a/app/src/main/res/values-da/strings.xml b/app/src/main/res/values-da/strings.xml index 030ece68f..a6f40e8de 100644 --- a/app/src/main/res/values-da/strings.xml +++ b/app/src/main/res/values-da/strings.xml @@ -196,14 +196,14 @@ Først skal du finde det nuværende standard galleri, i Apps sektionen af din enheds indstillinger. Kig efter en knap som hedder noget i stil med \"Åbn som standard\", klik på denne og vælg \"Ryd standarder\". Næste gang du forsøger at åbne et billede eller en video, bør du se en app-vælger, hvor du kan vælge Simple Gallery og gøre den til standard app\'en. Jeg har låst app\'en med en adgangskode, men jeg har glemt den. Hvad kan jeg gøre? - Du kan løse dette på to måder. Du kan enten geninstallere app\'en, eller finde app\'en i indstillingerne på din enhed og vælge \"Ryd data\". Dette vil nulstille alle dine indstillinger, det vil ikke slette nogle mediefiler. + Du kan løse dette på to måder. Du kan enten geninstallere app\'en, eller finde app\'en i indstillingerne på din enhed og vælge \"Ryd data\". Dette vil nulstille alle dine indstillinger, det vil ikke slette nogle mediefiler. Hvordan kan jeg altid få et bestemt album vist i toppen? Du kan holde fingeren nede på det ønskede album, og vælge tegnstift-ikonet i menuen, dette vil fastgøre den til toppen. Du kan fastgøre flere mapper også. Fastgjorte elementer vil blive sorteret efter standard sorterings-metoden. Hvordan kan jeg spole fremad i videoer? Du kan enten trække din finger horisontalt over videoafspilleren, eller klikke på den nuværende eller maksimum varighed teksterne, nær søgefeltet. Det vil enten spole videoen tilbage eller fremad. Hvad er forskellen på at skjule og ekskludere en mappe? Eksludering forhindrer visning af mappen i blot Simple Gallery, mens Skjul viser systemvist og skjuler mappen fra andre gallerier også. Det fungerer ved at oprette entom \".nomedia\" fil i den givne mappe, hvilket du også kan slette med enhver filhåndterings-app. - Hvorfor dukker mapper med musik omslag eller klistermærker op? + Hvorfor dukker mapper med musik omslag eller klistermærker op? Det kan ske at du vil se nogle udsædvanlige albummmer. Du kan nemt ekskludere disse, ved at holde fingeren nede på disse og vælge Ekskluder. I den næste dialogboks kan du vælge den ovenliggende mappe, da andre relaterede albummer så sandsynligvis også vil blive forhindret i at blive vist. En mappe med billeder dukker ikke op, eller den viser ikke alle elementer. Hvad kan jeg gøre? Der kan være flere grunde, men en løsning er nem. Bare gå til Indstillinger -> Administrer inkluderede mapper, vælg plusset og naviger til mappen.