diff --git a/CHANGELOG.md b/CHANGELOG.md index bc94bd5b3..6024cdef7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,15 @@ Changelog ========== +Version 3.3.1 *(2018-01-29)* +---------------------------- + + * Added a toggle for replacing deep zoomable images with better quality ones + * Added a toggle for hiding Extended details when the statusbar is hidden + * Added a toggle for switching media files by clicking on screen sides + * Disable "Temporarily show hidden" after 10 minutes of backgrounding + * Split Settings in separate sections + Version 3.3.0 *(2018-01-23)* ---------------------------- diff --git a/app/build.gradle b/app/build.gradle index 19eb2c665..45a3d649c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -10,8 +10,8 @@ android { applicationId "com.simplemobiletools.gallery" minSdkVersion 16 targetSdkVersion 27 - versionCode 158 - versionName "3.3.0" + versionCode 159 + versionName "3.3.1" multiDexEnabled true setProperty("archivesBaseName", "gallery") } @@ -43,7 +43,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.8.12' + implementation 'com.simplemobiletools:commons:3.9.4' implementation 'com.theartofdev.edmodo:android-image-cropper:2.6.0' implementation 'com.android.support:multidex:1.0.2' implementation 'com.google.code.gson:gson:2.8.2' diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt index 6bb06015e..6b722080a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt @@ -52,6 +52,14 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { private var mAllowPickingMultiple = false private var mIsThirdPartyIntent = false private var mIsGettingDirs = false + private var mLoadedInitialPhotos = false + private var mIsPasswordProtectionPending = false + private var mLatestMediaId = 0L + private var mLastMediaHandler = Handler() + private var mTempShowHiddenHandler = Handler() + private var mCurrAsyncTask: GetDirectoriesAsynctask? = null + private var mZoomListener: MyRecyclerView.MyZoomListener? = null + private var mStoredUseEnglish = false private var mStoredAnimateGifs = true private var mStoredCropThumbnails = true @@ -59,12 +67,6 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { private var mStoredShowMediaCount = true private var mStoredShowInfoBubble = true private var mStoredTextColor = 0 - private var mLoadedInitialPhotos = false - private var mIsPasswordProtectionPending = false - private var mLatestMediaId = 0L - private var mLastMediaHandler = Handler() - private var mCurrAsyncTask: GetDirectoriesAsynctask? = null - private var mZoomListener: MyRecyclerView.MyZoomListener? = null override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -94,6 +96,11 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { mIsPasswordProtectionPending = config.appPasswordProtectionOn } + override fun onStart() { + super.onStart() + mTempShowHiddenHandler.removeCallbacksAndMessages(null) + } + override fun onResume() { super.onResume() config.isThirdPartyIntent = false @@ -156,9 +163,21 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { } } + override fun onStop() { + super.onStop() + if (config.temporarilyShowHidden) { + mTempShowHiddenHandler.postDelayed({ + config.temporarilyShowHidden = false + }, SHOW_TEMP_HIDDEN_DURATION) + } else { + mTempShowHiddenHandler.removeCallbacksAndMessages(null) + } + } + override fun onDestroy() { super.onDestroy() config.temporarilyShowHidden = false + mTempShowHiddenHandler.removeCallbacksAndMessages(null) removeTempFolder() } @@ -555,7 +574,9 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { setupAdapter() } - storeDirectories() + if (!isFromCache) { + storeDirectories() + } } private fun storeDirectories() { @@ -678,6 +699,7 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { add(Release(138, R.string.release_138)) add(Release(143, R.string.release_143)) add(Release(158, R.string.release_158)) + add(Release(159, R.string.release_159)) checkWhatsNew(this, BuildConfig.VERSION_CODE) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt index 0be1d39e6..29b64841d 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt @@ -9,7 +9,6 @@ import android.graphics.Bitmap import android.net.Uri import android.os.Bundle import android.os.Handler -import android.support.v4.view.MenuItemCompat import android.support.v7.widget.GridLayoutManager import android.support.v7.widget.SearchView import android.view.Menu @@ -53,17 +52,19 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { private var mAllowPickingMultiple = false private var mShowAll = false private var mLoadedInitialPhotos = false + private var mLatestMediaId = 0L + private var mLastMediaHandler = Handler() + private var mTempShowHiddenHandler = Handler() + private var mCurrAsyncTask: GetMediaAsynctask? = null + private var mZoomListener: MyRecyclerView.MyZoomListener? = null + private var mSearchMenuItem: MenuItem? = null + private var mStoredUseEnglish = false private var mStoredAnimateGifs = true private var mStoredCropThumbnails = true private var mStoredScrollHorizontally = true private var mStoredShowInfoBubble = true private var mStoredTextColor = 0 - private var mLatestMediaId = 0L - private var mLastMediaHandler = Handler() - private var mCurrAsyncTask: GetMediaAsynctask? = null - private var mZoomListener: MyRecyclerView.MyZoomListener? = null - private var mSearchMenuItem: MenuItem? = null companion object { var mMedia = ArrayList() @@ -90,6 +91,11 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { } } + override fun onStart() { + super.onStart() + mTempShowHiddenHandler.removeCallbacksAndMessages(null) + } + override fun onResume() { super.onResume() if (mStoredUseEnglish != config.useEnglish) { @@ -136,16 +142,24 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { override fun onStop() { super.onStop() - if (mSearchMenuItem != null) { - MenuItemCompat.collapseActionView(mSearchMenuItem) + mSearchMenuItem?.collapseActionView() + + if (config.temporarilyShowHidden) { + mTempShowHiddenHandler.postDelayed({ + config.temporarilyShowHidden = false + }, SHOW_TEMP_HIDDEN_DURATION) + } else { + mTempShowHiddenHandler.removeCallbacksAndMessages(null) } } override fun onDestroy() { super.onDestroy() - if (config.showAll) + if (config.showAll) { config.temporarilyShowHidden = false + } + mTempShowHiddenHandler.removeCallbacksAndMessages(null) mMedia.clear() } @@ -606,7 +620,10 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { runOnUiThread { setupAdapter() } - storeFolder() + + if (!isFromCache) { + storeFolder() + } } private fun storeFolder() { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Config.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Config.kt index 5002bf781..9f10cbaa1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Config.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Config.kt @@ -316,8 +316,4 @@ class Config(context: Context) : BaseConfig(context) { var extendedDetails: Int get() = prefs.getInt(EXTENDED_DETAILS, EXT_RESOLUTION or EXT_LAST_MODIFIED or EXT_EXIF_PROPERTIES) set(extendedDetails) = prefs.edit().putInt(EXTENDED_DETAILS, extendedDetails).apply() - - var lastFileCleanup: Long - get() = prefs.getLong(LAST_FILE_CLEANUP, 0L) - set(lastFileCleanup) = prefs.edit().putLong(LAST_FILE_CLEANUP, lastFileCleanup).apply() } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt index 821d9f1e8..33a95e350 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/Constants.kt @@ -43,7 +43,6 @@ const val VIEW_TYPE_FILES = "view_type_files" const val SHOW_EXTENDED_DETAILS = "show_extended_details" const val EXTENDED_DETAILS = "extended_details" const val HIDE_EXTENDED_DETAILS = "hide_extended_details" -const val LAST_FILE_CLEANUP = "last_file_cleanup" const val ONE_FINGER_ZOOM = "one_finger_zoom" const val ALLOW_INSTANT_CHANGE = "allow_instant_change" const val REPLACE_ZOOMABLE_IMAGES = "replace_zoomable_images" @@ -62,6 +61,7 @@ const val SLIDESHOW_SCROLL_DURATION = 500L const val NOMEDIA = ".nomedia" const val MAX_COLUMN_COUNT = 20 +const val SHOW_TEMP_HIDDEN_DURATION = 600000L const val DIRECTORY = "directory" const val MEDIUM = "medium" diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/MediaFetcher.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/MediaFetcher.kt index e0e797f0f..f941b8f03 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/MediaFetcher.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/MediaFetcher.kt @@ -40,19 +40,6 @@ class MediaFetcher(val context: Context) { directories.remove(it) } - Thread { - val ONE_WEEK = 7 * 24 * 60 * 60 * 1000 - if (System.currentTimeMillis() - context.config.lastFileCleanup > ONE_WEEK) { - media.forEach { - val file = File(it.path) - if (!it.path.contains("/.thumbnails") && !file.exists() && file.length() == 0L) { - context.deleteFromMediaStore(file) - } - } - context.config.lastFileCleanup = System.currentTimeMillis() - } - }.start() - return directories } diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 3a9d14765..fae7b6b0a 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -133,13 +133,13 @@ Gestioneu els detalls ampliats Permet fer zoom amb un sol dit a pantalla complerta Permet canviar els mitjans de manera instantània fent clic als costats de la pantalla - Replace deep zoomable images with better quality ones - Hide extended details when status bar is hidden + Substituïr imatges ampliades per les de millor quialitat + Amaga els detalls estesos quan la barra d'estat està amagada Miniatures Mitjans a pantalla completa - Extended details + Detalls estesos diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index f8312ab60..39b4d3634 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -7,7 +7,7 @@ (versteckt) Ordner anheften Ordner loslösen - An den Start anheften + Oben anheften Ansicht: Alle Medien Alle Medien Ansicht: Als Ordner @@ -34,7 +34,7 @@ Filter ändern - Diese Funktion versteckt die ausgewählten Ordner (auch für andere Apps), indem dort im Dateisystem eine \'.nomedia\'-Datei abgelegt wird. Dadurch werden auch deren Unterordner versteckt. Solche Ordner werden nur gezeigt, wenn die Einstellung \'Versteckte Ordner zeigen\' aktiv ist (auch andere Apps bieten üblicherweise eine solche Option). Fortfahren? + Diese Funktion versteckt die ausgewählten Ordner (auch für andere Apps), indem dort im Dateisystem eine \'.nomedia\'-Datei abgelegt wird. Dadurch werden auch deren Unterordner versteckt. Solche Ordner werden nur gezeigt, wenn die Einstellung \'Versteckte Elemente anzeigen\' aktiv ist (auch andere Apps bieten üblicherweise eine solche Option). Fortfahren? Ordner ausschließen Ausgeschlossene Ordner Ausgeschlossene Ordner verwalten @@ -45,13 +45,13 @@ Alle Ordner aus der Ausgeblendet-Liste entfernen? Die Ordner selbst werden nicht gelöscht. Versteckte Ordner Versteckte Ordner verwalten - Sieht so aus, als ob du keine Ordner mit einer \".nomedia\" Datei versteckt hast. + Keinen mit einer \".nomedia\"-Datei versteckten Ordner gefunden. Einbezogene Ordner Einbezogene Ordner verwalten Ordner hinzufügen - Solltest du weitere Mediendateien haben, die von der App nicht erkannt wurden, kannst du ihre Ordner hier manuell hinzufügen. + Solltest du weitere Mediendateien haben, die von der App nicht gefunden wurden, kannst du deren Ordner hier manuell hinzufügen. Größe ändern @@ -89,7 +89,7 @@ Hintergrundbild erfolgreich festgelegt Hochformat Querformat - Home-Screen + Homescreen Sperrbildschirm Home- und Sperrbildschirm @@ -122,24 +122,24 @@ Systemeinstellung Gerätedrehung Seitenverhältnis - Schwarzer Hintergrund und Statusleiste bei Vollbild-Medien + Schwarzer Hintergrund & schwarze Systemleiste im Vollbild Kacheln horizontal scrollen - Systemleisten in Vollbild ausblenden + Systemleiste im Vollbild ausblenden Nach Löschen leere Ordner löschen - Gesten für Videolautstärke/Helligkeit + Gesten für Videolautstärke/Helligkeit zulassen Medienanzahl bei Ordnern anzeigen Teilen/Drehen im Vollbild-Menü vertauschen - Eigenschaften anzeigen im Vollbild + Eigenschaften im Vollbild anzeigen Eigenschaften auswählen - Erlaube Ein-Finger-Zoom im Vollbild - Wechsle sofort zwischen Medien beim Klicken auf eine Bildschirmseite - Replace deep zoomable images with better quality ones - Hide extended details when status bar is hidden + Ein-Finger-Zoom im Vollbild zulassen + Beim Tippen auf eine Bildschirmseite sofort zwischen Medien wechseln + Stark zoombare Bilder durch Bilder mit hoher Qualität ersetzen + Erweiterte Details nicht anzeigen, wenn die Systemleiste versteckt ist Thumbnails Vollbild-Medien - Extended details + Erweiterte Details diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 48d62891a..031a2c97d 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -133,13 +133,13 @@ Administrar detalles ampliados Permitir zoom con un dedo en pantalla completa Permitir el cambio instantáneo de medios haciendo clic en los lados de la pantalla - Replace deep zoomable images with better quality ones - Hide extended details when status bar is hidden + Reemplace las imágenes con mucho zoom por otras de mejor calidad + Ocultar detalles ampliados cuando la barra de estado está oculta Miniaturas Medios a pantalla compelta - Extended details + Detalles ampliados diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 620635981..be82781f7 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -133,13 +133,13 @@ Uitgebreide informatie Met één vinger zoomen in volledig scherm Direct naar vorige/volgende door op de zijkanten van het scherm te tikken - Replace deep zoomable images with better quality ones - Hide extended details when status bar is hidden + In hoge kwaliteit weergeven (ten koste van ver inzoomen) + Uitgebreide informatie niet tonen als de statusbalk is verborgen Miniatuurvoorbeelden Volledig scherm - Extended details + Uitgebreide informatie diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index f7e31c054..bb2cdec30 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -7,7 +7,7 @@ (oculto) Fixar pasta Desfixar pasta - Pin to the top + Fixar no topo Mostrar conteúdo de todas as pastas Todas as pastas Alternar para a visualização de pastas @@ -43,9 +43,9 @@ A exclusão de uma pasta apenas oculta o seu conteúdo da galeria, pois todos os outros aplicativos poderão acessá-las.\\n\\nSe quiser ocultar de todos os aplicativos, utilize a função ocultar. Remover todas Remover todas as pastas da lista de exclusões? Esta ação não apaga as pastas. - Hidden folders - Manage hidden folders - Seems like you don\'t have any folders hidden with a \".nomedia\" file. + Pastas ocultas + Gerenciar pastas ocultas + Parece que você não tem nenhuma pasta oculta com um arquivo \".nomedia\". Pastas incluídas @@ -122,7 +122,7 @@ Padrão do sistema Sensor do aparelho Proporção da mídia - Black background and status bar at fullscreen media + Fundo de tela e barra de status preta quando em visualização de tela cheia Rolar miniaturas horizontalmente Esconder interface do sistema automaticamente quando em tela cheia Apagar pastas vazias após deleter seu conteúdo @@ -131,15 +131,15 @@ Substituir botão "Compartilhar" por "Rotação de tela" quando em tela cheia Exibir detalhes extendidos quando em tela cheia Gerenciar detalhes extendidos - Allow one finger zoom at fullscreen media - Allow instantly changing media by clicking on screen sides - Replace deep zoomable images with better quality ones - Hide extended details when status bar is hidden + Permitir zoom com um dedo quando em exibição de tela cheia + Permitir alternância instantânia de mídia clicando nas laterais da tela + Substituir imagens aptas a grande quantitade de zoom por imagens de melhor qualidade + Ocultar detalhes extendidos quando a barra de status estiver oculta - Thumbnails - Fullscreen media - Extended details + Miniaturas + Mídia em tela cheia + Detalhes extendidos diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 31a2665d4..9989b6f9d 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -134,12 +134,12 @@ 单指缩放 通过单击屏幕边缘来切换媒体 用质量更好的图像替换可深度缩放的图像 - Hide extended details when status bar is hidden + 当状态栏隐藏时隐藏扩展详情 缩略图 全屏显示媒体 - Extended details + 扩展详情 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index d59ddb4f4..a00a943a1 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -7,7 +7,7 @@ (隱藏) 釘選資料夾 取消釘選資料夾 - Pin to the top + 釘選在頂端 資料夾內容全部顯示 全部資料夾 切換成資料夾檢視 @@ -43,9 +43,9 @@ 「排除資料夾」只會將選擇的資料夾與子資料夾一起從簡易相簿中隱藏,他們仍會出現在其他應用程式中。\n\n如果您要在其他應用程式中也隱藏,請使用「隱藏」功能。 移除全部 是否將排除列表中的所有資料夾都移除?這不會刪除資料夾。 - Hidden folders - Manage hidden folders - Seems like you don\'t have any folders hidden with a \".nomedia\" file. + 隱藏的資料夾 + 隱藏的資料夾 + 您似乎沒有用\".nomedia\"檔案來隱藏的資料夾 包含資料夾 @@ -122,7 +122,7 @@ 系統設定方向 裝置實際方向 圖片長寬比 - Black background and status bar at fullscreen media + 全螢幕時黑色背景和狀態欄 橫向滑動縮圖 全螢幕時自動隱藏系統介面 刪除內容後刪除空白資料夾 @@ -131,15 +131,15 @@ 將全螢幕選單的分享取代為旋轉 全螢幕時顯示詳細資訊 管理詳細資訊 - Allow one finger zoom at fullscreen media - Allow instantly changing media by clicking on screen sides - Replace deep zoomable images with better quality ones - Hide extended details when status bar is hidden + 全螢幕時允許單指縮放 + 允許點擊螢幕邊緣來快速切換媒體檔案 + 可深度縮放的圖片用品質更佳的來取代 + 狀態欄隱藏時,同時隱藏詳細資訊 - Thumbnails - Fullscreen media - Extended details + 縮圖 + 全螢幕媒體檔案 + 詳細資訊 diff --git a/app/src/main/res/values/donottranslate.xml b/app/src/main/res/values/donottranslate.xml index 9a25897f3..929e5a89d 100644 --- a/app/src/main/res/values/donottranslate.xml +++ b/app/src/main/res/values/donottranslate.xml @@ -2,6 +2,11 @@ + + Added a toggle for replacing deep zoomable images with better quality ones\n + Added a toggle for hiding Extended details when the statusbar is hidden\n + Added a toggle for switching media files by clicking on screen sides + Added optional one-finger drag zoom, disabled by default Added new options to use english language on non-english devices, to password protect whole app and to lock screen orientation at fullscreen view