From 129858119d290875ee857da6650dbe7faf67c9a4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 4 Jan 2018 18:05:37 +0100 Subject: [PATCH 01/41] use Glide for loading non-animating gifs --- .../gallery/extensions/Activity.kt | 28 +++++++++++-------- 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt index ec99f9352..d7797644a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt @@ -148,19 +148,23 @@ fun Activity.loadImage(path: String, target: MySquareImageView, horizontalScroll loadJpg(path, target, cropThumbnails) } } else if (path.isGif()) { - try { - val gifDrawable = GifDrawable(path) - target.setImageDrawable(gifDrawable) - if (animateGifs) { - gifDrawable.start() - } else { - gifDrawable.stop() - } + if (animateGifs) { + try { + val gifDrawable = GifDrawable(path) + target.setImageDrawable(gifDrawable) + if (animateGifs) { + gifDrawable.start() + } else { + gifDrawable.stop() + } - target.scaleType = if (cropThumbnails) ImageView.ScaleType.CENTER_CROP else ImageView.ScaleType.FIT_CENTER - } catch (e: Exception) { - loadJpg(path, target, cropThumbnails) - } catch (e: OutOfMemoryError) { + target.scaleType = if (cropThumbnails) ImageView.ScaleType.CENTER_CROP else ImageView.ScaleType.FIT_CENTER + } catch (e: Exception) { + loadJpg(path, target, cropThumbnails) + } catch (e: OutOfMemoryError) { + loadJpg(path, target, cropThumbnails) + } + } else { loadJpg(path, target, cropThumbnails) } } From 1204eea382173cf3f53c47ccb20ce51757b2f7d4 Mon Sep 17 00:00:00 2001 From: tibbi Date: Thu, 4 Jan 2018 18:40:44 +0100 Subject: [PATCH 02/41] nope, do not use Glide for loading non-animating gifs --- .../gallery/extensions/Activity.kt | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt index d7797644a..ec99f9352 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt @@ -148,23 +148,19 @@ fun Activity.loadImage(path: String, target: MySquareImageView, horizontalScroll loadJpg(path, target, cropThumbnails) } } else if (path.isGif()) { - if (animateGifs) { - try { - val gifDrawable = GifDrawable(path) - target.setImageDrawable(gifDrawable) - if (animateGifs) { - gifDrawable.start() - } else { - gifDrawable.stop() - } - - target.scaleType = if (cropThumbnails) ImageView.ScaleType.CENTER_CROP else ImageView.ScaleType.FIT_CENTER - } catch (e: Exception) { - loadJpg(path, target, cropThumbnails) - } catch (e: OutOfMemoryError) { - loadJpg(path, target, cropThumbnails) + try { + val gifDrawable = GifDrawable(path) + target.setImageDrawable(gifDrawable) + if (animateGifs) { + gifDrawable.start() + } else { + gifDrawable.stop() } - } else { + + target.scaleType = if (cropThumbnails) ImageView.ScaleType.CENTER_CROP else ImageView.ScaleType.FIT_CENTER + } catch (e: Exception) { + loadJpg(path, target, cropThumbnails) + } catch (e: OutOfMemoryError) { loadJpg(path, target, cropThumbnails) } } From ad1a787a1570125f111da9ded194c0bdbb6359f5 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 6 Jan 2018 13:20:30 +0100 Subject: [PATCH 03/41] move the "Use english" button further in settings --- .../gallery/activities/SettingsActivity.kt | 18 ++++---- app/src/main/res/layout/activity_settings.xml | 42 +++++++++---------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt index 18cbad383..882c7aff7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt @@ -39,7 +39,7 @@ class SettingsActivity : SimpleActivity() { setupManageIncludedFolders() setupManageExcludedFolders() setupManageHiddenFolders() - setupShowHiddenFolders() + setupShowHiddenItems() setupAutoplayVideos() setupLoopVideos() setupAnimateGifs() @@ -96,22 +96,22 @@ class SettingsActivity : SimpleActivity() { } } - private fun setupShowHiddenFolders() { - settings_show_hidden_folders.isChecked = config.showHiddenMedia - settings_show_hidden_folders_holder.setOnClickListener { + private fun setupShowHiddenItems() { + settings_show_hidden_items.isChecked = config.showHiddenMedia + settings_show_hidden_items_holder.setOnClickListener { if (config.showHiddenMedia) { - toggleHiddenFolders() + toggleHiddenItems() } else { handleHiddenFolderPasswordProtection { - toggleHiddenFolders() + toggleHiddenItems() } } } } - private fun toggleHiddenFolders() { - settings_show_hidden_folders.toggle() - config.showHiddenMedia = settings_show_hidden_folders.isChecked + private fun toggleHiddenItems() { + settings_show_hidden_items.toggle() + config.showHiddenMedia = settings_show_hidden_items.isChecked } private fun setupAutoplayVideos() { diff --git a/app/src/main/res/layout/activity_settings.xml b/app/src/main/res/layout/activity_settings.xml index 7e96f52dd..8ec33b33f 100644 --- a/app/src/main/res/layout/activity_settings.xml +++ b/app/src/main/res/layout/activity_settings.xml @@ -68,6 +68,25 @@ + + + + + + - - - - - - Date: Sat, 6 Jan 2018 16:10:13 +0100 Subject: [PATCH 04/41] rewrite scrolling to improve performance --- app/build.gradle | 2 +- .../gallery/activities/MainActivity.kt | 12 ++++++++- .../gallery/activities/MediaActivity.kt | 12 ++++++++- .../gallery/adapters/DirectoryAdapter.kt | 4 ++- .../gallery/adapters/ManageFoldersAdapter.kt | 2 +- .../adapters/ManageHiddenFoldersAdapter.kt | 2 +- .../gallery/adapters/MediaAdapter.kt | 25 ++++++++++++++++--- app/src/main/res/layout/activity_main.xml | 8 +++--- app/src/main/res/layout/activity_media.xml | 8 +++--- 9 files changed, 59 insertions(+), 16 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 3c49e690e..b18fe5c96 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.5.0' + implementation 'com.simplemobiletools:commons:3.5.9' implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0' implementation 'com.theartofdev.edmodo:android-image-cropper:2.6.0' implementation 'com.android.support:multidex:1.0.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 9694a0348..756273df9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt @@ -402,12 +402,16 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { } private fun increaseColumnCount() { + directories_vertical_fastscroller.measureRecyclerViewOnRedraw() + directories_horizontal_fastscroller.measureRecyclerViewOnRedraw() config.dirColumnCnt = ++(directories_grid.layoutManager as GridLayoutManager).spanCount invalidateOptionsMenu() directories_grid.adapter?.notifyDataSetChanged() } private fun reduceColumnCount() { + directories_vertical_fastscroller.measureRecyclerViewOnRedraw() + directories_horizontal_fastscroller.measureRecyclerViewOnRedraw() config.dirColumnCnt = --(directories_grid.layoutManager as GridLayoutManager).spanCount invalidateOptionsMenu() directories_grid.adapter?.notifyDataSetChanged() @@ -533,6 +537,11 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { directories_empty_text_label.beVisibleIf(dirs.isEmpty() && !isFromCache) directories_empty_text.beVisibleIf(dirs.isEmpty() && !isFromCache) + directories_grid.beVisibleIf(directories_empty_text_label.isGone()) + + val allowHorizontalScroll = config.scrollHorizontally && config.viewTypeFiles == VIEW_TYPE_GRID + directories_vertical_fastscroller.beVisibleIf(directories_grid.isVisible() && !allowHorizontalScroll) + directories_horizontal_fastscroller.beVisibleIf(directories_grid.isVisible() && allowHorizontalScroll) checkLastMediaChanged() if (dirs.hashCode() == mDirs.hashCode()) { @@ -559,7 +568,8 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { val currAdapter = directories_grid.adapter if (currAdapter == null) { initZoomListener() - DirectoryAdapter(this, mDirs, this, directories_grid, isPickIntent(intent) || isGetAnyContentIntent(intent)) { + val fastscroller = if (config.scrollHorizontally) directories_horizontal_fastscroller else directories_vertical_fastscroller + DirectoryAdapter(this, mDirs, this, directories_grid, isPickIntent(intent) || isGetAnyContentIntent(intent), fastscroller) { itemClicked((it as Directory).path) }.apply { setupZoomListener(mZoomListener) 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 5f0ab42fa..db51d1c59 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt @@ -182,7 +182,8 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { val currAdapter = media_grid.adapter if (currAdapter == null) { initZoomListener() - MediaAdapter(this, mMedia, this, mIsGetImageIntent || mIsGetVideoIntent || mIsGetAnyIntent, mAllowPickingMultiple, media_grid) { + val fastscroller = if (config.scrollHorizontally) media_horizontal_fastscroller else media_vertical_fastscroller + MediaAdapter(this, mMedia, this, mIsGetImageIntent || mIsGetVideoIntent || mIsGetAnyIntent, mAllowPickingMultiple, media_grid, fastscroller) { itemClicked((it as Medium).path) }.apply { setupZoomListener(mZoomListener) @@ -466,12 +467,16 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { } private fun increaseColumnCount() { + media_vertical_fastscroller.measureRecyclerViewOnRedraw() + media_horizontal_fastscroller.measureRecyclerViewOnRedraw() config.mediaColumnCnt = ++(media_grid.layoutManager as GridLayoutManager).spanCount invalidateOptionsMenu() media_grid.adapter?.notifyDataSetChanged() } private fun reduceColumnCount() { + media_vertical_fastscroller.measureRecyclerViewOnRedraw() + media_horizontal_fastscroller.measureRecyclerViewOnRedraw() config.mediaColumnCnt = --(media_grid.layoutManager as GridLayoutManager).spanCount invalidateOptionsMenu() media_grid.adapter?.notifyDataSetChanged() @@ -548,6 +553,11 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { media_empty_text_label.beVisibleIf(media.isEmpty() && !isFromCache) media_empty_text.beVisibleIf(media.isEmpty() && !isFromCache) + media_grid.beVisibleIf(media_empty_text_label.isGone()) + + val allowHorizontalScroll = config.scrollHorizontally && config.viewTypeFiles == VIEW_TYPE_GRID + media_vertical_fastscroller.beVisibleIf(media_grid.isVisible() && !allowHorizontalScroll) + media_horizontal_fastscroller.beVisibleIf(media_grid.isVisible() && allowHorizontalScroll) checkLastMediaChanged() if (mLastDrawnHashCode == 0) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt index a8ee3f75f..9ed24a0c8 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt @@ -11,6 +11,7 @@ import com.simplemobiletools.commons.dialogs.ConfirmationDialog import com.simplemobiletools.commons.dialogs.PropertiesDialog import com.simplemobiletools.commons.dialogs.RenameItemDialog import com.simplemobiletools.commons.extensions.* +import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.gallery.R import com.simplemobiletools.gallery.dialogs.ExcludeFolderDialog @@ -24,7 +25,8 @@ import java.io.File import java.util.* class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: MutableList, val listener: DirOperationsListener?, recyclerView: MyRecyclerView, - val isPickIntent: Boolean, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) { + val isPickIntent: Boolean, fastScroller: FastScroller? = null, itemClick: (Any) -> Unit) : + MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private val config = activity.config private val isListViewType = config.viewTypeFolders == VIEW_TYPE_LIST diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageFoldersAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageFoldersAdapter.kt index 73818a600..2974f0b2e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageFoldersAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageFoldersAdapter.kt @@ -14,7 +14,7 @@ import kotlinx.android.synthetic.main.item_manage_folder.view.* import java.util.* class ManageFoldersAdapter(activity: BaseSimpleActivity, var folders: ArrayList, val isShowingExcludedFolders: Boolean, val listener: RefreshRecyclerViewListener?, - recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) { + recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) { private val config = activity.config diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageHiddenFoldersAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageHiddenFoldersAdapter.kt index 4126a5c21..8bc51ea3a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageHiddenFoldersAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/ManageHiddenFoldersAdapter.kt @@ -16,7 +16,7 @@ import java.io.File import java.util.* class ManageHiddenFoldersAdapter(activity: BaseSimpleActivity, var folders: ArrayList, val listener: RefreshRecyclerViewListener?, - recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) { + recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, null, itemClick) { private val config = activity.config diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt index f2c3dfb17..a4a06b2d7 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt @@ -1,6 +1,8 @@ package com.simplemobiletools.gallery.adapters import android.net.Uri +import android.os.Handler +import android.os.Looper import android.view.Menu import android.view.View import android.view.ViewGroup @@ -12,22 +14,26 @@ import com.simplemobiletools.commons.dialogs.RenameItemDialog import com.simplemobiletools.commons.extensions.applyColorFilter import com.simplemobiletools.commons.extensions.beVisibleIf import com.simplemobiletools.commons.extensions.isActivityDestroyed +import com.simplemobiletools.commons.views.FastScroller import com.simplemobiletools.commons.views.MyRecyclerView import com.simplemobiletools.gallery.R import com.simplemobiletools.gallery.dialogs.DeleteWithRememberDialog import com.simplemobiletools.gallery.extensions.* import com.simplemobiletools.gallery.helpers.VIEW_TYPE_LIST import com.simplemobiletools.gallery.models.Medium -import kotlinx.android.synthetic.main.photo_video_item_list.view.* +import kotlinx.android.synthetic.main.photo_video_item_grid.view.* import java.io.File import java.util.* class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, val listener: MediaOperationsListener?, val isAGetIntent: Boolean, - val allowMultiplePicks: Boolean, recyclerView: MyRecyclerView, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, itemClick) { + val allowMultiplePicks: Boolean, recyclerView: MyRecyclerView, fastScroller: FastScroller? = null, + itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { private val config = activity.config private val isListViewType = config.viewTypeFiles == VIEW_TYPE_LIST private var skipConfirmationDialog = false + private var visibleItemPaths = ArrayList() + private var delayHandler = Handler(Looper.getMainLooper()) private var scrollHorizontally = config.scrollHorizontally private var animateGifs = config.animateGifs @@ -51,6 +57,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, override fun onBindViewHolder(holder: MyRecyclerViewAdapter.ViewHolder, position: Int) { val medium = media[position] + visibleItemPaths.add(medium.path) val view = holder.bindView(medium, !allowMultiplePicks) { itemView, layoutPosition -> setupView(itemView, medium) } @@ -92,7 +99,9 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, override fun onViewRecycled(holder: ViewHolder?) { super.onViewRecycled(holder) if (!activity.isActivityDestroyed()) { - Glide.with(activity).clear(holder?.itemView?.medium_thumbnail) + val itemView = holder?.itemView + visibleItemPaths.remove(itemView?.photo_name?.tag) + Glide.with(activity).clear(itemView?.medium_thumbnail) } } @@ -259,7 +268,15 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, play_outline.beVisibleIf(medium.video) photo_name.beVisibleIf(displayFilenames || isListViewType) photo_name.text = medium.name - activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails) + photo_name.tag = medium.path + + medium_thumbnail.isHorizontalScrolling = scrollHorizontally + delayHandler.postDelayed({ + val isVisible = visibleItemPaths.contains(medium.path) + if (isVisible) { + activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails) + } + }, 200) if (isListViewType) { photo_name.setTextColor(textColor) diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index a01449b1a..033563bb1 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -36,7 +36,7 @@ @@ -48,7 +48,8 @@ android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:paddingLeft="@dimen/normal_margin" - android:paddingStart="@dimen/normal_margin"> + android:paddingStart="@dimen/normal_margin" + android:visibility="gone"> @@ -61,7 +62,8 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:paddingTop="@dimen/normal_margin"> + android:paddingTop="@dimen/normal_margin" + android:visibility="gone"> diff --git a/app/src/main/res/layout/activity_media.xml b/app/src/main/res/layout/activity_media.xml index 918e39428..b4bcb9c16 100644 --- a/app/src/main/res/layout/activity_media.xml +++ b/app/src/main/res/layout/activity_media.xml @@ -36,7 +36,7 @@ @@ -48,7 +48,8 @@ android:layout_alignParentEnd="true" android:layout_alignParentRight="true" android:paddingLeft="@dimen/normal_margin" - android:paddingStart="@dimen/normal_margin"> + android:paddingStart="@dimen/normal_margin" + android:visibility="gone"> @@ -61,7 +62,8 @@ android:layout_alignParentBottom="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" - android:paddingTop="@dimen/normal_margin"> + android:paddingTop="@dimen/normal_margin" + android:visibility="gone"> From 55fc7c577f27ad0c5ce13ff09a8de19afc294638 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20Marques?= Date: Sat, 6 Jan 2018 16:12:19 +0000 Subject: [PATCH 05/41] Update strings.xml --- app/src/main/res/values-pt/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 0a7be9220..79e98bbe1 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -7,7 +7,7 @@ (oculta) Fixar pasta Desafixar pasta - Pin to the top + Fixar no topo Mostrar conteúdo de todas as pastas Todas as pastas Alternar para a vista de pastas From 616d4098fc42876ed48eae9dc496f1126ce13716 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 6 Jan 2018 19:02:42 +0100 Subject: [PATCH 06/41] skip the thumbnail load delay in some cases --- .../gallery/adapters/MediaAdapter.kt | 33 +++++++++++++++---- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt index a4a06b2d7..58a8465c0 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt @@ -29,11 +29,16 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, val allowMultiplePicks: Boolean, recyclerView: MyRecyclerView, fastScroller: FastScroller? = null, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { + init { + enableInstantLoad() + } + private val config = activity.config private val isListViewType = config.viewTypeFiles == VIEW_TYPE_LIST private var skipConfirmationDialog = false private var visibleItemPaths = ArrayList() private var delayHandler = Handler(Looper.getMainLooper()) + private var loadImageInstantly = false private var scrollHorizontally = config.scrollHorizontally private var animateGifs = config.animateGifs @@ -239,12 +244,14 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, fun updateMedia(newMedia: ArrayList) { media = newMedia + enableInstantLoad() notifyDataSetChanged() finishActMode() } fun updateDisplayFilenames(displayFilenames: Boolean) { this.displayFilenames = displayFilenames + enableInstantLoad() notifyDataSetChanged() } @@ -263,6 +270,13 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, notifyDataSetChanged() } + private fun enableInstantLoad() { + loadImageInstantly = true + Handler().postDelayed({ + loadImageInstantly = false + }, 1000) + } + private fun setupView(view: View, medium: Medium) { view.apply { play_outline.beVisibleIf(medium.video) @@ -270,13 +284,18 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, photo_name.text = medium.name photo_name.tag = medium.path - medium_thumbnail.isHorizontalScrolling = scrollHorizontally - delayHandler.postDelayed({ - val isVisible = visibleItemPaths.contains(medium.path) - if (isVisible) { - activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails) - } - }, 200) + if (loadImageInstantly) { + activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails) + } else { + medium_thumbnail.setImageDrawable(null) + medium_thumbnail.isHorizontalScrolling = scrollHorizontally + delayHandler.postDelayed({ + val isVisible = visibleItemPaths.contains(medium.path) + if (isVisible) { + activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails) + } + }, 200) + } if (isListViewType) { photo_name.setTextColor(textColor) From 923ba8b99c5e2a233de842906bb52019e464d43b Mon Sep 17 00:00:00 2001 From: tibbi Date: Sat, 6 Jan 2018 19:22:47 +0100 Subject: [PATCH 07/41] replace "Pin folder" with "Pin to the top" to make it clearer --- app/src/main/res/menu/cab_directories.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/menu/cab_directories.xml b/app/src/main/res/menu/cab_directories.xml index ec47b283d..9da9b584f 100644 --- a/app/src/main/res/menu/cab_directories.xml +++ b/app/src/main/res/menu/cab_directories.xml @@ -9,7 +9,7 @@ Date: Sat, 6 Jan 2018 19:43:45 +0100 Subject: [PATCH 08/41] replace Delete with Remove at Manage excluded/included folders --- app/build.gradle | 2 +- .../gallery/activities/MediaActivity.kt | 3 +-- .../gallery/adapters/DirectoryAdapter.kt | 2 +- .../gallery/adapters/ManageFoldersAdapter.kt | 13 +++---------- .../gallery/adapters/MediaAdapter.kt | 2 +- .../gallery/fragments/PhotoFragment.kt | 2 +- .../gallery/helpers/GlideRotateTransformation.kt | 2 +- 7 files changed, 9 insertions(+), 17 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index b18fe5c96..ee5ef2f0c 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.5.9' + implementation 'com.simplemobiletools:commons:3.5.11' implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0' implementation 'com.theartofdev.edmodo:android-image-cropper:2.6.0' implementation 'com.android.support:multidex:1.0.2' 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 db51d1c59..6fa726db1 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt @@ -511,12 +511,11 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { .load(File(path)) .apply(options) .into(object : SimpleTarget() { - override fun onResourceReady(resource: Bitmap?, transition: Transition?) { + override fun onResourceReady(resource: Bitmap, transition: Transition?) { try { WallpaperManager.getInstance(applicationContext).setBitmap(resource) setResult(Activity.RESULT_OK) } catch (ignored: IOException) { - } finish() diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt index 9ed24a0c8..e1e0def89 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/DirectoryAdapter.kt @@ -94,7 +94,7 @@ class DirectoryAdapter(activity: BaseSimpleActivity, var dirs: MutableList askConfirmDelete() + R.id.cab_remove -> removeSelection() } } @@ -57,13 +56,7 @@ class ManageFoldersAdapter(activity: BaseSimpleActivity, var folders: ArrayList< } } - private fun askConfirmDelete() { - ConfirmationDialog(activity) { - deleteSelection() - } - } - - private fun deleteSelection() { + private fun removeSelection() { val removeFolders = ArrayList(selectedPositions.size) selectedPositions.sortedDescending().forEach { diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt index 58a8465c0..0e4477cbf 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt @@ -106,7 +106,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, if (!activity.isActivityDestroyed()) { val itemView = holder?.itemView visibleItemPaths.remove(itemView?.photo_name?.tag) - Glide.with(activity).clear(itemView?.medium_thumbnail) + Glide.with(activity).clear(itemView?.medium_thumbnail!!) } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt index b99ac8867..7e664e8dd 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt @@ -325,7 +325,7 @@ class PhotoFragment : ViewPagerFragment() { override fun onDestroyView() { super.onDestroyView() if (activity?.isActivityDestroyed() == false) { - Glide.with(context).clear(view.gif_view) + Glide.with(context!!).clear(view.gif_view) view.subsampling_view.recycle() } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/GlideRotateTransformation.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/GlideRotateTransformation.kt index 8a48b23f4..aae7d66ca 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/GlideRotateTransformation.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/helpers/GlideRotateTransformation.kt @@ -17,6 +17,6 @@ class GlideRotateTransformation(context: Context, val rotateRotationAngle: Float return Bitmap.createBitmap(bitmap, 0, 0, bitmap.width, bitmap.height, matrix, true) } - override fun updateDiskCacheKey(messageDigest: MessageDigest?) { + override fun updateDiskCacheKey(messageDigest: MessageDigest) { } } From 3c06dfd431eaf2b609083e7c52d06e42c62e283f Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Jan 2018 16:40:20 +0100 Subject: [PATCH 09/41] fix #557, apply the password protection to Manage Hidden Folders --- .../simplemobiletools/gallery/activities/SettingsActivity.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt index 882c7aff7..6a32c732a 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/SettingsActivity.kt @@ -92,7 +92,9 @@ class SettingsActivity : SimpleActivity() { private fun setupManageHiddenFolders() { settings_manage_hidden_folders_holder.setOnClickListener { - startActivity(Intent(this, HiddenFoldersActivity::class.java)) + handleHiddenFolderPasswordProtection { + startActivity(Intent(this, HiddenFoldersActivity::class.java)) + } } } From 4b2d41ec7526a6c1c0f103b2cdf9640d03ce85bc Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Jan 2018 16:57:04 +0100 Subject: [PATCH 10/41] fix #555, check if file exists at viewpager activity --- app/build.gradle | 2 +- .../gallery/activities/ViewPagerActivity.kt | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index ee5ef2f0c..571e93fd2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.5.11' + implementation 'com.simplemobiletools:commons:3.6.0' implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0' implementation 'com.theartofdev.edmodo:android-image-cropper:2.6.0' implementation 'com.android.support:multidex:1.0.2' diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt index 84fd594f8..42c9534bb 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt @@ -177,6 +177,13 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View return } + val file = File(mPath) + if (!file.exists()) { + deleteFromMediaStore(file) + finish() + return + } + if (intent.extras?.containsKey(IS_VIEW_INTENT) == true) { if (isShowHiddenFlagNeeded()) { if (!config.isPasswordProtectionOn) { @@ -189,7 +196,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View showSystemUI() - mDirectory = File(mPath).parent + mDirectory = file.parent supportActionBar?.title = mPath.getFilenameFromPath() view_pager.onGlobalLayout { From 38ca5b84d794e32eadf45ed86a405d34d710149f Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Jan 2018 17:48:25 +0100 Subject: [PATCH 11/41] add basic search to media view, related to #48 --- app/src/main/AndroidManifest.xml | 12 +++++- .../gallery/activities/MediaActivity.kt | 38 +++++++++++++++++++ app/src/main/res/menu/menu_media.xml | 14 +++++-- app/src/main/res/xml/searchable.xml | 5 +++ 4 files changed, 64 insertions(+), 5 deletions(-) create mode 100644 app/src/main/res/xml/searchable.xml diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 4c50f0162..c49d7cf4d 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -55,7 +55,17 @@ + android:parentActivityName=".activities.MainActivity"> + + + + + + + + () @@ -130,6 +135,11 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { } } + override fun onStop() { + super.onStop() + MenuItemCompat.collapseActionView(mSearchMenuItem) + } + override fun onDestroy() { super.onDestroy() if (config.showAll) @@ -150,6 +160,33 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { } } + private fun setupSearch(menu: Menu) { + val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager + mSearchMenuItem = menu.findItem(R.id.search) + (mSearchMenuItem!!.actionView as SearchView).apply { + setSearchableInfo(searchManager.getSearchableInfo(componentName)) + isSubmitButtonEnabled = false + setOnQueryTextListener(object : SearchView.OnQueryTextListener { + override fun onQueryTextSubmit(query: String) = false + + override fun onQueryTextChange(newText: String): Boolean { + searchQueryChanged(newText) + return true + } + }) + } + } + + private fun searchQueryChanged(text: String) { + Thread { + val filtered = mMedia.filter { it.name.contains(text, true) } as ArrayList + filtered.sortBy { !it.name.startsWith(text, true) } + runOnUiThread { + (media_grid.adapter as? MediaAdapter)?.updateMedia(filtered) + } + }.start() + } + private fun tryloadGallery() { handlePermission(PERMISSION_WRITE_STORAGE) { if (it) { @@ -260,6 +297,7 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { findItem(R.id.toggle_filename).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID } + setupSearch(menu) return true } diff --git a/app/src/main/res/menu/menu_media.xml b/app/src/main/res/menu/menu_media.xml index 978c684c0..de3b01776 100644 --- a/app/src/main/res/menu/menu_media.xml +++ b/app/src/main/res/menu/menu_media.xml @@ -2,15 +2,21 @@ + android:id="@+id/search" + android:icon="@drawable/ic_search" + android:title="@string/search" + app:actionViewClass="android.support.v7.widget.SearchView" + app:showAsAction="collapseActionView|ifRoom"/> + + From d8e77da395f916641e0227bcf69b0dc90ec15a9b Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Jan 2018 18:39:09 +0100 Subject: [PATCH 12/41] disable fullscreen media one-finger zoom to make double-click easier --- .../com/simplemobiletools/gallery/fragments/PhotoFragment.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt index 7e664e8dd..eecaff05c 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/fragments/PhotoFragment.kt @@ -246,6 +246,7 @@ class PhotoFragment : ViewPagerFragment() { view.subsampling_view.apply { maxScale = 10f beVisible() + isQuickScaleEnabled = false setImage(ImageSource.uri(medium.path)) orientation = if (orient == -1) SubsamplingScaleImageView.ORIENTATION_USE_EXIF else degreesForRotation(orient) setOnImageEventListener(object : SubsamplingScaleImageView.OnImageEventListener { From 78a199818eeb3d96fb366f8dcf5f9b05ad7eef76 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Jan 2018 18:39:40 +0100 Subject: [PATCH 13/41] use my fork of SubsamplingScaleImageView to fix some exif crashes --- app/build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 571e93fd2..9ff284e58 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -43,7 +43,6 @@ ext { dependencies { implementation 'com.simplemobiletools:commons:3.6.0' - implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0' 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' @@ -51,6 +50,9 @@ dependencies { implementation 'pl.droidsonroids.gif:android-gif-drawable:1.2.8' implementation 'com.github.chrisbanes:PhotoView:2.1.3' + //implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0' + implementation 'com.github.tibbi:subsampling-scale-image-view:v3.9.0-fork' + debugImplementation "com.squareup.leakcanary:leakcanary-android:$leakCanaryVersion" releaseImplementation "com.squareup.leakcanary:leakcanary-android-no-op:$leakCanaryVersion" } From 625e839b7581f7243d7e87025068640d970b8690 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Jan 2018 20:59:52 +0100 Subject: [PATCH 14/41] update commons to 3.6.3 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 9ff284e58..a960db9d8 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.6.0' + implementation 'com.simplemobiletools:commons:3.6.3' 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' From c2e3e7b3f53dc164dbfadaf31a1316cc88b6e963 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Jan 2018 21:00:03 +0100 Subject: [PATCH 15/41] update version to 3.2.0 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index a960db9d8..77095dbba 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.simplemobiletools.gallery" minSdkVersion 16 targetSdkVersion 27 - versionCode 152 - versionName "3.1.2" + versionCode 153 + versionName "3.2.0" multiDexEnabled true setProperty("archivesBaseName", "gallery") } From d14db3d8157ee2b8ab4ee78364ab9be022324676 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Jan 2018 21:00:08 +0100 Subject: [PATCH 16/41] updating changelog --- CHANGELOG.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f1484fbfc..a0d41e934 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,16 @@ Changelog ========== +Version 3.2.0 *(2018-01-07)* +---------------------------- + + * Rewrote scrolling to improve the performance + * Disable "Delete empty folders" by default + * Added initial Search to media thumbnails screen + * Apply the hidden folder password protection to "Manage hidden folders" + * Replace Move with Copy/Delete on Android 7+ + * Improve SD card file support + Version 3.1.2 *(2017-12-30)* ---------------------------- From 427fac5f080b9943bdb9220a643c1f88c387def1 Mon Sep 17 00:00:00 2001 From: Phoenix1747 Date: Sun, 7 Jan 2018 21:35:27 +0100 Subject: [PATCH 17/41] Update DE Replaced all the left over strings using the German formal "you" with the informal "you" that is used in the other apps too. --- app/src/main/res/values-de/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 7bc1848a5..c779767fc 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -41,8 +41,8 @@ Ausgeblendete Ordner Ausgeblendete Ordner verwalten Diese Funktion blendet die ausgewählten Ordner und deren Unterordner aus (nur in dieser App). Ausgeblendete Ordner können in den Einstellungen verwaltet werden. - Möchten Sie stattdessen einen höherliegenden Ordner ausblenden? - \'Ordner ausblenden\' wird ausgewählte Ordner und deren Unterordner nur in dieser App ausblenden. Andere Apps werden solche Ordner weiterhin anzeigen.\\n\\nWenn Sie Ordner auch für andere Apps verstecken wollen, verwenden Sie dafür die Funktion \'Ordner verstecken\'. + Möchtest du stattdessen einen höherliegenden Ordner ausblenden? + \'Ordner ausblenden\' wird ausgewählte Ordner und deren Unterordner nur in dieser App ausblenden. Andere Apps werden solche Ordner weiterhin anzeigen.\\n\\nWenn du Ordner auch für andere Apps verstecken willst, verwende dafür die Funktion \'Ordner verstecken\'. Alle entfernen Alle Ordner aus der Ausgeblendet-Liste entfernen? Die Ordner selbst werden nicht gelöscht. Versteckte Ordner @@ -53,7 +53,7 @@ Einbezogene Ordner Einbezogene Ordner verwalten Ordner hinzufügen - Sollten Sie weitere Medienordner haben, die von der App nicht erkannt wurden, können Sie diese hier manuell hinzufügen. + Solltest du weitere Medienordner haben, die von der App nicht erkannt wurden, kannst du diese hier manuell hinzufügen. Größe ändern From 4faeca96a0b653756967bc33d54de526f96c6033 Mon Sep 17 00:00:00 2001 From: Phoenix1747 Date: Sun, 7 Jan 2018 22:04:18 +0100 Subject: [PATCH 18/41] Update strings.xml --- app/src/main/res/values-de/strings.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index c779767fc..75bab8f9b 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -37,12 +37,12 @@ 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? - Ordner ausblenden - Ausgeblendete Ordner - Ausgeblendete Ordner verwalten - Diese Funktion blendet die ausgewählten Ordner und deren Unterordner aus (nur in dieser App). Ausgeblendete Ordner können in den Einstellungen verwaltet werden. - Möchtest du stattdessen einen höherliegenden Ordner ausblenden? - \'Ordner ausblenden\' wird ausgewählte Ordner und deren Unterordner nur in dieser App ausblenden. Andere Apps werden solche Ordner weiterhin anzeigen.\\n\\nWenn du Ordner auch für andere Apps verstecken willst, verwende dafür die Funktion \'Ordner verstecken\'. + Ordner ausschließen + Ausgeschlossene Ordner + Ausgeschlossene Ordner verwalten + Diese Funktion blendet die ausgewählten Ordner und deren Unterordner nur in dieser App aus. Ausgeschlossene Ordner können in den Einstellungen verwaltet werden. + Möchtest du stattdessen einen höherliegenden Ordner ausschließen? + \'Ordner ausschließen\' wird ausgewählte Ordner und deren Unterordner nur in dieser App ausblenden. Andere Apps werden solche Ordner weiterhin anzeigen.\\n\\nWenn du Ordner auch für andere Apps verstecken willst, verwende dafür die Funktion \'Ordner verstecken\'. Alle entfernen Alle Ordner aus der Ausgeblendet-Liste entfernen? Die Ordner selbst werden nicht gelöscht. Versteckte Ordner From a96863c590cd55a1667f130b22931105ef51ca17 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 Jan 2018 23:24:21 +0100 Subject: [PATCH 19/41] moving some menu related functions up --- .../gallery/activities/MediaActivity.kt | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) 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 077eb5878..47f9908f4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt @@ -148,6 +148,53 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { mMedia.clear() } + override fun onCreateOptionsMenu(menu: Menu): Boolean { + menuInflater.inflate(R.menu.menu_media, menu) + + val isFolderHidden = File(mPath).containsNoMedia() + menu.apply { + findItem(R.id.hide_folder).isVisible = !isFolderHidden && !mShowAll + findItem(R.id.unhide_folder).isVisible = isFolderHidden && !mShowAll + + findItem(R.id.folder_view).isVisible = mShowAll + findItem(R.id.open_camera).isVisible = mShowAll + findItem(R.id.about).isVisible = mShowAll + + findItem(R.id.temporarily_show_hidden).isVisible = !config.shouldShowHidden + findItem(R.id.stop_showing_hidden).isVisible = config.temporarilyShowHidden + + findItem(R.id.increase_column_count).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID && config.mediaColumnCnt < MAX_COLUMN_COUNT + findItem(R.id.reduce_column_count).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID && config.mediaColumnCnt > 1 + + findItem(R.id.toggle_filename).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID + } + + setupSearch(menu) + return true + } + + override fun onOptionsItemSelected(item: MenuItem): Boolean { + when (item.itemId) { + R.id.sort -> showSortingDialog() + R.id.filter -> showFilterMediaDialog() + R.id.toggle_filename -> toggleFilenameVisibility() + R.id.open_camera -> launchCamera() + R.id.folder_view -> switchToFolderView() + R.id.change_view_type -> changeViewType() + R.id.hide_folder -> tryHideFolder() + R.id.unhide_folder -> unhideFolder() + R.id.exclude_folder -> tryExcludeFolder() + R.id.temporarily_show_hidden -> tryToggleTemporarilyShowHidden() + R.id.stop_showing_hidden -> tryToggleTemporarilyShowHidden() + R.id.increase_column_count -> increaseColumnCount() + R.id.reduce_column_count -> reduceColumnCount() + R.id.settings -> launchSettings() + R.id.about -> launchAbout() + else -> return super.onOptionsItemSelected(item) + } + return true + } + private fun storeStateVariables() { config.apply { mStoredUseEnglish = useEnglish @@ -276,53 +323,6 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { }, LAST_MEDIA_CHECK_PERIOD) } - override fun onCreateOptionsMenu(menu: Menu): Boolean { - menuInflater.inflate(R.menu.menu_media, menu) - - val isFolderHidden = File(mPath).containsNoMedia() - menu.apply { - findItem(R.id.hide_folder).isVisible = !isFolderHidden && !mShowAll - findItem(R.id.unhide_folder).isVisible = isFolderHidden && !mShowAll - - findItem(R.id.folder_view).isVisible = mShowAll - findItem(R.id.open_camera).isVisible = mShowAll - findItem(R.id.about).isVisible = mShowAll - - findItem(R.id.temporarily_show_hidden).isVisible = !config.shouldShowHidden - findItem(R.id.stop_showing_hidden).isVisible = config.temporarilyShowHidden - - findItem(R.id.increase_column_count).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID && config.mediaColumnCnt < MAX_COLUMN_COUNT - findItem(R.id.reduce_column_count).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID && config.mediaColumnCnt > 1 - - findItem(R.id.toggle_filename).isVisible = config.viewTypeFiles == VIEW_TYPE_GRID - } - - setupSearch(menu) - return true - } - - override fun onOptionsItemSelected(item: MenuItem): Boolean { - when (item.itemId) { - R.id.sort -> showSortingDialog() - R.id.filter -> showFilterMediaDialog() - R.id.toggle_filename -> toggleFilenameVisibility() - R.id.open_camera -> launchCamera() - R.id.folder_view -> switchToFolderView() - R.id.change_view_type -> changeViewType() - R.id.hide_folder -> tryHideFolder() - R.id.unhide_folder -> unhideFolder() - R.id.exclude_folder -> tryExcludeFolder() - R.id.temporarily_show_hidden -> tryToggleTemporarilyShowHidden() - R.id.stop_showing_hidden -> tryToggleTemporarilyShowHidden() - R.id.increase_column_count -> increaseColumnCount() - R.id.reduce_column_count -> reduceColumnCount() - R.id.settings -> launchSettings() - R.id.about -> launchAbout() - else -> return super.onOptionsItemSelected(item) - } - return true - } - private fun showSortingDialog() { ChangeSortingDialog(this, false, !config.showAll, mPath) { getMedia() From e35b876feec790165dc8432573f30e80155bf6db Mon Sep 17 00:00:00 2001 From: Solatec <35220662+Solatec@users.noreply.github.com> Date: Mon, 8 Jan 2018 11:52:14 +0100 Subject: [PATCH 20/41] Update strings.xml --- app/src/main/res/values-es/strings.xml | 64 +++++++++++++------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index f0e42eb02..01c65100f 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -7,7 +7,7 @@ (oculto) Fijar carpeta No fijar carpeta - Pin to the top + Anclar arriba Mostrar el contenido de todas las carpetas Todos los medios Cambiar a vista de carpeta @@ -21,19 +21,19 @@ Cambiar imagen de portada Seleccionar imagen Uso por defecto - Volume - Brightness - Do not ask again in this session - Lock orientation - Unlock orientation + Volumen + Brillo + No volver a preguntar en esta sesión + Bloquear orientación + Desbloquear orientación Filtro de medios - Images - Videos + Imágenes + Vídeos GIFs - No media files have been found with the selected filters. - Change filters + No se han encontrado ficheros con los filtros seleccionados. + Ccambiar flitros Esta función oculta la carpeta agregando un archivo \'.nomedia\' en ella, y ocultará también las subcarpetas. Puede mostrarlas cambiando la opción \'Mostrar carpetas ocultas\' en los Ajustes. ¿Continuar? @@ -45,9 +45,9 @@ Excluir las carpetas las hará junto a sus subcarpetas ocultas sólo en Simple Gallery, estas seguirán siendo visibles en otras aplicaciones.\\n\\nSi desea ocultarlo de otras aplicaciones, utilice la función de Ocultar. Eliminar todo ¿Eliminar todas las carpetas de la lista de excluidas? Esto no borrará las carpetas. - Hidden folders - Manage hidden folders - Seems like you don\'t have any folders hidden with a \".nomedia\" file. + Carpetas ocultas + Gestionar carpetas ocultas + Parece que no tienes carpetas ocultas con \".nomedia\" ficheros. Carpetas incluidas @@ -92,27 +92,27 @@ Fondo de pantalla establecido correctamente Relación de aspecto tipo retrato Relación de aspecto tipo paisaje - Home screen - Lock screen - Home and lock screen + Pantalla de inicio + Pantalla de bloqueo + Pantalla de inicio y de bloqueo - Slideshow - Interval (seconds): - Include photos - Include videos - Include GIFs - Random order - Use fade animations - Move backwards - Loop slideshow - The slideshow ended - No media for the slideshow have been found + Diapositivas + Intervalo (segundos): + Incluir fotos + Incluir vídeos + Incluir GIFs + Orden aleatorio + Usar animaciones de desvanecimiento + Mover hacia atrás + Presentación de diapositivas + La diapositiva terminó + No se han encontrado medios para la presentación de diapositivas Cambiar tipo de vista - Grid - List + Cuadrícula + Lista Reproducir vídeos automáticamente @@ -125,7 +125,7 @@ Configuración del sistema Rotación del dispositivo Relación de aspecto - Black background and status bar at fullscreen media + Fondo y barra de estado negra en medios de pantalla completa Desplazar miniaturas horizontalmente Ocultar automáticamente la interfaz de usuario del sistema en medios de pantalla completa Eliminar carpetas vacias despues de borrar su contenido @@ -133,7 +133,7 @@ Mostrar el conteo de medios de las carpetas en la vista principal Reemplazar Compartir con Girar en el menú de pantalla completa Mostrar detalles extendidos sobre medios en pantalla completa - Manage extended details + Administrar detalles ampliados @@ -143,7 +143,7 @@ Gallery también se ofrece para uso de terceros para previsualizar imágenes/vídeos, agregar adjuntos en clientes de correo, etc. Es perfecta para uso diario. - The fingerprint permission is needed for locking either hidden item visibility, or the whole app. + El permiso de huella digital es necesario para bloquear la visibilidad de elementos ocultos o toda la aplicación. No contiene publicidad ni permisos innecesarios. Es totalmente libre, proporciona colores personalizables. From cb9cf0c90bfa73bd359da3785bced258e52373a3 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 Jan 2018 12:02:35 +0100 Subject: [PATCH 21/41] adding a Catalan spanish --- app/src/main/res/values-ca/strings.xml | 157 +++++++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 app/src/main/res/values-ca/strings.xml diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml new file mode 100644 index 000000000..f0e42eb02 --- /dev/null +++ b/app/src/main/res/values-ca/strings.xml @@ -0,0 +1,157 @@ + + + Simple Gallery + Galería + Editar + Abrir cámara + (oculto) + Fijar carpeta + No fijar carpeta + Pin to the top + Mostrar el contenido de todas las carpetas + Todos los medios + Cambiar a vista de carpeta + Otra carpeta + Mostrar en el mapa + Ubicación desconocida + No se encontró aplicación de mapas + No se encontró aplicación de cámara + Aumentar el número de columnas + Reducir el número de columnas + Cambiar imagen de portada + Seleccionar imagen + Uso por defecto + Volume + Brightness + Do not ask again in this session + Lock orientation + Unlock orientation + + + Filtro de medios + Images + Videos + GIFs + No media files have been found with the selected filters. + Change filters + + + Esta función oculta la carpeta agregando un archivo \'.nomedia\' en ella, y ocultará también las subcarpetas. Puede mostrarlas cambiando la opción \'Mostrar carpetas ocultas\' en los Ajustes. ¿Continuar? + Excluir + Carpetas excluidas + Gestionar carpetas excluidas + Esto excluirá la selección junto con sus subcarpetas, solamente de Simple Gallery. Puede gestionar las carpetas excluidas en los Ajustes. + ¿Excluir mejor la carpeta superior? + Excluir las carpetas las hará junto a sus subcarpetas ocultas sólo en Simple Gallery, estas seguirán siendo visibles en otras aplicaciones.\\n\\nSi desea ocultarlo de otras aplicaciones, utilice la función de Ocultar. + Eliminar todo + ¿Eliminar todas las carpetas de la lista de excluidas? Esto no borrará las carpetas. + Hidden folders + Manage hidden folders + Seems like you don\'t have any folders hidden with a \".nomedia\" file. + + + Carpetas incluidas + Gestionar carpetas incluidas + Agregar carpeta + Si tiene algunas carpetas que contengan multimedia, pero que no fueron reconocidas por la aplicación, puede agregarlas manualmente aquí. + + + Redimensionar + Redimensionar la selección y guardar + Ancho + Alto + Mantener proporciones + Por favor, introduzca una resolución válida + + + Editor + Guardar + Rotar + Ruta + Ruta de imagen no válida + Falló la edición de imagen + Editar imagen usando: + No se encontró editor de imágenes + Ubicación del archivo desconocida + No se ha podido sobrescribir el archivo de origen + Rotar a la izquierda + Rotar a la derecha + Rotar 180º + Girar + Horizontalmente + Verticalmente + Editar con + + + Fondos de pantalla Simple Gallery + Establecer como fondo de pantalla + Error al establecer fondo de pantalla + Establecer como fondo de pantalla con: + No se encontró aplicación para ello + Estableciendo fondo de pantalla… + Fondo de pantalla establecido correctamente + Relación de aspecto tipo retrato + Relación de aspecto tipo paisaje + Home screen + Lock screen + Home and lock screen + + + Slideshow + Interval (seconds): + Include photos + Include videos + Include GIFs + Random order + Use fade animations + Move backwards + Loop slideshow + The slideshow ended + No media for the slideshow have been found + + + Cambiar tipo de vista + Grid + List + + + Reproducir vídeos automáticamente + Cambiar la visibilidad del nombre de archivo + Reproducción continua de vídeos + Animar las miniaturas de GIFs + Brillo máximo cuando se muestra multimedia + Recortar miniaturas en cuadrados + Rotar multimedia en pantalla completa según + Configuración del sistema + Rotación del dispositivo + Relación de aspecto + Black background and status bar at fullscreen media + Desplazar miniaturas horizontalmente + Ocultar automáticamente la interfaz de usuario del sistema en medios de pantalla completa + Eliminar carpetas vacias despues de borrar su contenido + Permite controlar el volumen y el brillo del video con gestos verticales + Mostrar el conteo de medios de las carpetas en la vista principal + Reemplazar Compartir con Girar en el menú de pantalla completa + Mostrar detalles extendidos sobre medios en pantalla completa + Manage extended details + + + + Una galería para ver fotos y vídeos sin publicidad. + + Una herramienta sencilla que se puede usar para ver fotos y vídeos. Los elementos se pueden ordenar por fecha, tamaño, nombre tanto ascendente como descendente; se puede hacer zoom en las fotos. Los archivos de medios se muestran en múltiples columnas dependiendo del tamaño de la pantalla, y se puede cambiar el número de columnas mediante gestos. Permite renombrar, compartir, borrar, mover. Las imágenes también se pueden recortar, rotar o usarse como fondo de pantalla directamente desde la aplicación. + + Gallery también se ofrece para uso de terceros para previsualizar imágenes/vídeos, agregar adjuntos en clientes de correo, etc. Es perfecta para uso diario. + + The fingerprint permission is needed for locking either hidden item visibility, or the whole app. + + No contiene publicidad ni permisos innecesarios. Es totalmente libre, proporciona colores personalizables. + + Esta aplicación es solamente una pieza de una serie más grande de aplicaciones. Puede encontrar el resto en http://www.simplemobiletools.com + + + + From 78148990f090f07d0f859cd2979a31910d5f31a1 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 Jan 2018 12:15:57 +0100 Subject: [PATCH 22/41] replace some media adapter magic numbers with constants --- .../simplemobiletools/gallery/adapters/MediaAdapter.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt index 0e4477cbf..8833284a5 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt @@ -28,11 +28,13 @@ import java.util.* class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, val listener: MediaOperationsListener?, val isAGetIntent: Boolean, val allowMultiplePicks: Boolean, recyclerView: MyRecyclerView, fastScroller: FastScroller? = null, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { - init { enableInstantLoad() } + private val INSTANT_LOAD_DURATION = 1000L + private val IMAGE_LOAD_DELAY = 200L + private val config = activity.config private val isListViewType = config.viewTypeFiles == VIEW_TYPE_LIST private var skipConfirmationDialog = false @@ -274,7 +276,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, loadImageInstantly = true Handler().postDelayed({ loadImageInstantly = false - }, 1000) + }, INSTANT_LOAD_DURATION) } private fun setupView(view: View, medium: Medium) { @@ -294,7 +296,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, if (isVisible) { activity.loadImage(medium.path, medium_thumbnail, scrollHorizontally, animateGifs, cropThumbnails) } - }, 200) + }, IMAGE_LOAD_DELAY) } if (isListViewType) { From 0fa4cb58444dcba71e5784310ab25b81440728b8 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 Jan 2018 13:25:01 +0100 Subject: [PATCH 23/41] adding a null check at closing search --- .../com/simplemobiletools/gallery/activities/MediaActivity.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 47f9908f4..55d068a87 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt @@ -137,7 +137,9 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { override fun onStop() { super.onStop() - MenuItemCompat.collapseActionView(mSearchMenuItem) + if (mSearchMenuItem != null) { + MenuItemCompat.collapseActionView(mSearchMenuItem) + } } override fun onDestroy() { From f8e9de41a6f0c07aa4012d7aa69cce70fd70812f Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 Jan 2018 14:05:45 +0100 Subject: [PATCH 24/41] update commons to 3.6.6 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index 77095dbba..5c5498b93 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.6.3' + implementation 'com.simplemobiletools:commons:3.6.6' 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' From c85d92e98bb872bef2f67bcb73e080e26111a95a Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 Jan 2018 14:05:52 +0100 Subject: [PATCH 25/41] update version to 3.2.1 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 5c5498b93..59d935211 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.simplemobiletools.gallery" minSdkVersion 16 targetSdkVersion 27 - versionCode 153 - versionName "3.2.0" + versionCode 154 + versionName "3.2.1" multiDexEnabled true setProperty("archivesBaseName", "gallery") } From a53a8f06b616ce0bcfa3ad97bd65fd0d9c724892 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 Jan 2018 14:05:57 +0100 Subject: [PATCH 26/41] updating changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a0d41e934..d932b7228 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========== +Version 3.2.1 *(2018-01-08)* +---------------------------- + + * Adding a crashfix + * Couple scrollbar glitch fixes + Version 3.2.0 *(2018-01-07)* ---------------------------- From 8b02c21878cec4432e205abd7bb215ef8c9af068 Mon Sep 17 00:00:00 2001 From: FTno <16176811+FTno@users.noreply.github.com> Date: Mon, 8 Jan 2018 15:18:08 +0100 Subject: [PATCH 27/41] Update strings.xml Norwegian translation update --- app/src/main/res/values-nb/strings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index 7c6cd8bb9..af5a94696 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -7,7 +7,7 @@ (skjult) Fest mappe Løsne mappe - Pin to the top + Fest til toppen Vis alle mappers innhold Alle mapper Skift til mappevisning From cabf495b38b2440f219d42d4e7b9572c65f72ef3 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 Jan 2018 20:48:52 +0100 Subject: [PATCH 28/41] fix thumbnail displaying --- app/build.gradle | 2 +- .../gallery/adapters/MediaAdapter.kt | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 59d935211..ae1ceb7b4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.6.6' + implementation 'com.simplemobiletools:commons:3.6.12' 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/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt index 8833284a5..1a8463e8e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt @@ -28,25 +28,26 @@ import java.util.* class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, val listener: MediaOperationsListener?, val isAGetIntent: Boolean, val allowMultiplePicks: Boolean, recyclerView: MyRecyclerView, fastScroller: FastScroller? = null, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { - init { - enableInstantLoad() - } - private val INSTANT_LOAD_DURATION = 1000L - private val IMAGE_LOAD_DELAY = 200L + private val INSTANT_LOAD_DURATION = 3000L + private val IMAGE_LOAD_DELAY = 100L private val config = activity.config private val isListViewType = config.viewTypeFiles == VIEW_TYPE_LIST private var skipConfirmationDialog = false private var visibleItemPaths = ArrayList() - private var delayHandler = Handler(Looper.getMainLooper()) private var loadImageInstantly = false + private var delayHandler = Handler(Looper.getMainLooper()) private var scrollHorizontally = config.scrollHorizontally private var animateGifs = config.animateGifs private var cropThumbnails = config.cropThumbnails private var displayFilenames = config.displayFileNames + init { + enableInstantLoad() + } + override fun getActionMenuId() = R.menu.cab_media override fun prepareItemSelection(view: View) { @@ -274,7 +275,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, private fun enableInstantLoad() { loadImageInstantly = true - Handler().postDelayed({ + delayHandler.postDelayed({ loadImageInstantly = false }, INSTANT_LOAD_DURATION) } From 19a81d2566f3a260c0d5c8cbfe6160d3c3012632 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 Jan 2018 21:17:27 +0100 Subject: [PATCH 29/41] reduce instant load duration to 2 seconds --- .../com/simplemobiletools/gallery/adapters/MediaAdapter.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt index 1a8463e8e..66df85b70 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/adapters/MediaAdapter.kt @@ -29,7 +29,7 @@ class MediaAdapter(activity: BaseSimpleActivity, var media: MutableList, val allowMultiplePicks: Boolean, recyclerView: MyRecyclerView, fastScroller: FastScroller? = null, itemClick: (Any) -> Unit) : MyRecyclerViewAdapter(activity, recyclerView, fastScroller, itemClick) { - private val INSTANT_LOAD_DURATION = 3000L + private val INSTANT_LOAD_DURATION = 2000L private val IMAGE_LOAD_DELAY = 100L private val config = activity.config From fa28098500fc879a3aa8bab70c1ac05ef8fc2477 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 Jan 2018 21:50:24 +0100 Subject: [PATCH 30/41] do not set a default value used at redrawing media --- .../gallery/activities/MediaActivity.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) 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 55d068a87..e4aaa8ad2 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MediaActivity.kt @@ -262,8 +262,9 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { } private fun setupAdapter() { - if (isDirEmpty()) + if (isDirEmpty()) { return + } val currAdapter = media_grid.adapter if (currAdapter == null) { @@ -408,8 +409,9 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { } private fun getMedia() { - if (mIsGettingMedia) + if (mIsGettingMedia) { return + } mIsGettingMedia = true val media = getCachedMedia(mPath) @@ -599,11 +601,10 @@ class MediaActivity : SimpleActivity(), MediaAdapter.MediaOperationsListener { media_horizontal_fastscroller.beVisibleIf(media_grid.isVisible() && allowHorizontalScroll) checkLastMediaChanged() - if (mLastDrawnHashCode == 0) - mLastDrawnHashCode = media.hashCode() - if (media.hashCode() == mMedia.hashCode() && media.hashCode() == mLastDrawnHashCode) + if (media.hashCode() == mMedia.hashCode() && media.hashCode() == mLastDrawnHashCode) { return + } mLastDrawnHashCode = media.hashCode() mMedia = media From 17580fb59f8055631b9bc7740de90a71538ace70 Mon Sep 17 00:00:00 2001 From: Doess88 <35237702+Doess88@users.noreply.github.com> Date: Mon, 8 Jan 2018 22:42:16 +0100 Subject: [PATCH 31/41] Update and improvement.xml --- app/src/main/res/values-fr/strings.xml | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 348478ac1..999ea620d 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -7,7 +7,7 @@ (caché) Épingler le dossier Désépingler le dossier - Pin to the top + Épingler en haut Afficher le contenu de tous les dossiers Tous les dossiers Permuter vers la vue du dossier @@ -24,8 +24,8 @@ Volume Luminosité Ne pas redemander pour cette session - Lock orientation - Unlock orientation + Verrouiller la rotation + Déverrouiller la rotation Filtrer les médias @@ -41,13 +41,13 @@ Dossiers exclus Gérer les dossiers exclus Cela va exclure la sélection ainsi que ses sous-dossiers depuis Simple Galerie uniquement. Vous pouvez gérer les dossiers exclus depuis les Paramètres. - Exclure un parent plutôt ? + Exclure un dossier parent ? Exclure des dossiers les masquera ainsi que leurs sous-dossiers uniquement dans Simple Galerie, ils seront toujours visibles depuis d\'autres applications.\\n\\nSi vous voulez aussi les masquer ailleurs, utilisez la fonction Masquer. Tout supprimer Supprimer tous les dossiers de la liste des exclusions ? Ceci n\'effacera pas les dossiers. - Hidden folders - Manage hidden folders - Seems like you don\'t have any folders hidden with a \".nomedia\" file. + Dossiers masqués + Gérer les dossiers masqués + Il semblerait que vous n\'ayez pas de dossier cachés avec un fichier \".nomedia\". Dossiers inclus @@ -92,9 +92,9 @@ Fond d\'écran défini avec succès Ratio d\'aspect portrait Ratio d\'aspect paysage - Home screen - Lock screen - Home and lock screen + Page d'accueil + Écran de verouillage + Page d'accueil et écran de verrouillage Diaporama @@ -125,7 +125,7 @@ Paramètres système Rotation de l\'appareil Ratio d\'aspect - Black background and status bar at fullscreen media + Fond et barre de statur noir en plein écran Défilement des miniatures horizontalement Masquer automatiquement l\'interface utilisateur si média plein écran Supprimer les dossiers vides après avoir supprimé leur contenu @@ -143,11 +143,11 @@ La galerie est également proposée pour une utilisation comme tierce partie pour la prévisualisation des images/vidéos, ajouter des pièces jointes aux clients email etc. C\'est parfait pour un usage au quotidien. - The fingerprint permission is needed for locking either hidden item visibility, or the whole app. + L'autorisation d'empreinte digitale est nécessaire pour verrouiller les dossiers cachés et/ou l'application. L\'application ne contient ni publicité ni autorisation inutile. Elle est totalement opensource et est aussi fournie avec des couleurs personnalisables. - Cette application est juste l\'une des applications d\'une plus grande suite. Vous pouvez trouver les autres sur http://www.simplemobiletools.com + Cette application fait partie d\'une plus grande suite. Vous pouvez trouver les autres applications sur http://www.simplemobiletools.com Diaporama @@ -143,7 +143,7 @@ La galerie est également proposée pour une utilisation comme tierce partie pour la prévisualisation des images/vidéos, ajouter des pièces jointes aux clients email etc. C\'est parfait pour un usage au quotidien. - L'autorisation d'empreinte digitale est nécessaire pour verrouiller les dossiers cachés et/ou l'application. + L\'autorisation d\'empreinte digitale est nécessaire pour verrouiller les dossiers cachés et/ou l\'application. L\'application ne contient ni publicité ni autorisation inutile. Elle est totalement opensource et est aussi fournie avec des couleurs personnalisables. From c930ed5cdacaf99455fdd2e73a4e5c705b73a175 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 9 Jan 2018 00:19:11 +0100 Subject: [PATCH 33/41] store latestMediaId only when not from cache, should improve new media discovery --- .../simplemobiletools/gallery/activities/MainActivity.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 756273df9..53a70a411 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt @@ -527,9 +527,11 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { } private fun gotDirectories(newDirs: ArrayList, isFromCache: Boolean) { - Thread { - mLatestMediaId = getLatestMediaId() - }.start() + if (!isFromCache) { + Thread { + mLatestMediaId = getLatestMediaId() + }.start() + } val dirs = getSortedDirectories(newDirs) directories_refresh_layout.isRefreshing = false From 50003b38fb1ff583f1a3bd02815f340c07e23516 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 9 Jan 2018 10:02:03 +0100 Subject: [PATCH 34/41] catch security exceptions at fillExtraOutput --- .../com/simplemobiletools/gallery/activities/MainActivity.kt | 2 ++ 1 file changed, 2 insertions(+) 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 53a70a411..d8423670e 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/MainActivity.kt @@ -476,6 +476,8 @@ class MainActivity : SimpleActivity(), DirectoryAdapter.DirOperationsListener { inputStream = FileInputStream(File(path)) outputStream = contentResolver.openOutputStream(output) inputStream.copyTo(outputStream) + } catch (e: SecurityException) { + showErrorToast(e) } catch (ignored: FileNotFoundException) { } finally { inputStream?.close() From 60a17c7b4692fd2bb435965187ff5373df193ff2 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 9 Jan 2018 10:34:37 +0100 Subject: [PATCH 35/41] update commons to 3.6.13 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ae1ceb7b4..ba8ea7f0d 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.6.12' + implementation 'com.simplemobiletools:commons:3.6.13' 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' From 16426da9b0f55f1ba0b6b1201d47721201d69a11 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 9 Jan 2018 11:21:39 +0100 Subject: [PATCH 36/41] update commons to 3.6.15 --- app/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle b/app/build.gradle index ba8ea7f0d..e63b99fa7 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -42,7 +42,7 @@ ext { } dependencies { - implementation 'com.simplemobiletools:commons:3.6.13' + implementation 'com.simplemobiletools:commons:3.6.15' 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' From c06ac983a027d2c87c5bf04c09d3d58ea51f302a Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 9 Jan 2018 11:22:50 +0100 Subject: [PATCH 37/41] update version to 3.2.2 --- app/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index e63b99fa7..f27660636 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -9,8 +9,8 @@ android { applicationId "com.simplemobiletools.gallery" minSdkVersion 16 targetSdkVersion 27 - versionCode 154 - versionName "3.2.1" + versionCode 155 + versionName "3.2.2" multiDexEnabled true setProperty("archivesBaseName", "gallery") } From b98446a9bc6035ea383358d2adee7e2e04cd4942 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 9 Jan 2018 11:22:55 +0100 Subject: [PATCH 38/41] updating changelog --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index d932b7228..f789d7bb4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,12 @@ Changelog ========== +Version 3.2.2 *(2018-01-09)* +---------------------------- + + * Some scrolling issues fixed + * Improve new media file discovery + Version 3.2.1 *(2018-01-08)* ---------------------------- From 6bd197a9e229634e0d748fa82299feb055c63e23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Solatec=20Inform=C3=A0tica?= <35220662+Solatec@users.noreply.github.com> Date: Tue, 9 Jan 2018 16:32:44 +0100 Subject: [PATCH 39/41] Update strings.xml --- app/src/main/res/values-ca/strings.xml | 222 ++++++++++++------------- 1 file changed, 111 insertions(+), 111 deletions(-) diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index f0e42eb02..3ef468044 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -1,153 +1,153 @@ Simple Gallery - Galería + Galeria Editar - Abrir cámara - (oculto) - Fijar carpeta - No fijar carpeta - Pin to the top - Mostrar el contenido de todas las carpetas - Todos los medios - Cambiar a vista de carpeta - Otra carpeta - Mostrar en el mapa - Ubicación desconocida - No se encontró aplicación de mapas - No se encontró aplicación de cámara - Aumentar el número de columnas - Reducir el número de columnas - Cambiar imagen de portada - Seleccionar imagen - Uso por defecto - Volume - Brightness - Do not ask again in this session - Lock orientation - Unlock orientation + Obrir càmera + (ocult) + Fixar carpeta + No fixar carpeta + Ancorar a l'inici + Mostrar el contingut de totes les carpetes + Tots els mitjans + Canviar a vista de carpeta + Un altre carpeta + Mostrar al mapa + Ubicació desconeguda + No s'ha trobat l'aplicació de mapes + No s'ha trobat l'aplicació de càmera + Augmentar el número de columnes + Reduir el número de columnes + Canviar imatge de portada + Sel·leccionar imatge + Us per defecte + Volum + Brillantor + No tornar a preguntar en aquesta sessió + Bloquejar orientació + Desbloquejar orientació - Filtro de medios - Images - Videos + Filtre d'arxius + Imatges + Vídeos GIFs - No media files have been found with the selected filters. - Change filters + No s'han tronat arxius amb els filtres seleccionats. + Canviar filtres - Esta función oculta la carpeta agregando un archivo \'.nomedia\' en ella, y ocultará también las subcarpetas. Puede mostrarlas cambiando la opción \'Mostrar carpetas ocultas\' en los Ajustes. ¿Continuar? - Excluir - Carpetas excluidas - Gestionar carpetas excluidas - Esto excluirá la selección junto con sus subcarpetas, solamente de Simple Gallery. Puede gestionar las carpetas excluidas en los Ajustes. - ¿Excluir mejor la carpeta superior? - Excluir las carpetas las hará junto a sus subcarpetas ocultas sólo en Simple Gallery, estas seguirán siendo visibles en otras aplicaciones.\\n\\nSi desea ocultarlo de otras aplicaciones, utilice la función de Ocultar. - Eliminar todo - ¿Eliminar todas las carpetas de la lista de excluidas? Esto no borrará las carpetas. - Hidden folders - Manage hidden folders - Seems like you don\'t have any folders hidden with a \".nomedia\" file. + Aquesta funció oculta les carpetes agregant un arxiu \'.nomedia\' dins d'ella. També ocultarà les subcarpetes. Pots mostrar-les canviant la opció \'Mostrar carpetes ocultes\' als ajustaments. Continuar? + Excloure + Carpetes excloses + Gestionar carpetes excloses + Això exclou la selecció juntament amb les carpetes, només de Simple Gallery. Pots gestionar les carpetes excloses en els Ajustaments. + Excloure millor la carpeta superior? + Excloure les carpetes les ocultarà junt amb les seves subcarpetes, però només a Simple Gallery. Seguirant sent visibles a altres aplicacions.\\n\\nSi vols ocultar-les d'altres aplicacions fes servir la opció Ocultar. + Eliminar tot + Eliminar totes les carpetes de la llista d'excloses? Això no eliminarà les carpetes. + Carpetes ocultes + Gestionar carpetes ocultes + Sembla que no tens cap carpeta amb l'arxiu \".nomedia\". - Carpetas incluidas - Gestionar carpetas incluidas + Carpetes incloses + Gestionar carpetes incloses Agregar carpeta - Si tiene algunas carpetas que contengan multimedia, pero que no fueron reconocidas por la aplicación, puede agregarlas manualmente aquí. + Si tens alguna carpeta que contingui multimèdia però no ha estat reconeguda per la aplicació, pots agregar-les manualment aquí. Redimensionar - Redimensionar la selección y guardar - Ancho - Alto - Mantener proporciones - Por favor, introduzca una resolución válida + Redimensionar la selecció i desar + Ample + Alt + Mantenir proporcions + Si us plau, introdueix una resolució vàlida Editor Guardar Rotar Ruta - Ruta de imagen no válida - Falló la edición de imagen - Editar imagen usando: - No se encontró editor de imágenes - Ubicación del archivo desconocida - No se ha podido sobrescribir el archivo de origen - Rotar a la izquierda - Rotar a la derecha + Ruta de imatge no vàlida + Ha fallat la edició de la imatge + Editar imatge utilitzant: + No s'ha trobat cap editor d'imatges + Ubicació de l'arxiu desconeguda + No s'ha pogut sobreescriure l'arxiu d'origen + Rotar a l'esquerra + Rotar a la dreta Rotar 180º Girar - Horizontalmente - Verticalmente - Editar con + Horizontalment + Verticalment + Editar amb - Fondos de pantalla Simple Gallery - Establecer como fondo de pantalla - Error al establecer fondo de pantalla - Establecer como fondo de pantalla con: - No se encontró aplicación para ello - Estableciendo fondo de pantalla… - Fondo de pantalla establecido correctamente - Relación de aspecto tipo retrato - Relación de aspecto tipo paisaje - Home screen - Lock screen - Home and lock screen + Fons de pantalla de Simple Gallery + Establir com a fons de pantalla + Error a l'establir com fons de pantalla + Establir com fons de pantalla amb: + No s'ha trobat l'aplicació per aquesta acció + Establint fons de pantalla… + Fons de pantalla establert correctament + Relació d'aspecte tipus retrat + Relació d'aspecte tipus paisatge + Pantalla principal + Pantalla de bloqueig + Pantalla principal i de bloqueig - Slideshow - Interval (seconds): - Include photos - Include videos - Include GIFs - Random order - Use fade animations - Move backwards - Loop slideshow - The slideshow ended - No media for the slideshow have been found + Presentació de diapositives + Interval (segons): + Inclou imatges + Inclou vídeos + Inclou GIFs + Ordre aleatori + Utilitza animacions de desaparició + Moure cap enrere + Presentació de diapositives + S'ha acabat la presentació de diapositives + No s'han trobat mitjans per a la presentació de diapositives - Cambiar tipo de vista - Grid - List + Canviar el tipus de vista + Reixeta + Llista - Reproducir vídeos automáticamente - Cambiar la visibilidad del nombre de archivo - Reproducción continua de vídeos - Animar las miniaturas de GIFs - Brillo máximo cuando se muestra multimedia - Recortar miniaturas en cuadrados - Rotar multimedia en pantalla completa según - Configuración del sistema - Rotación del dispositivo - Relación de aspecto - Black background and status bar at fullscreen media - Desplazar miniaturas horizontalmente - Ocultar automáticamente la interfaz de usuario del sistema en medios de pantalla completa - Eliminar carpetas vacias despues de borrar su contenido - Permite controlar el volumen y el brillo del video con gestos verticales - Mostrar el conteo de medios de las carpetas en la vista principal - Reemplazar Compartir con Girar en el menú de pantalla completa - Mostrar detalles extendidos sobre medios en pantalla completa - Manage extended details + Reproduir vídeos automàticament + Canviar la visibilitat del nom d'arxiu + Reproducció continua de vídeos + Animar les miniatures dels GIFs + Brillantor màxima quan es mostra multimèdia + Retallar miniatures en quadrats + Gira els mitjans a pantalla completa segons + Configuració del sistema + Rotació del dispositiu + Relació d'aspecte + Fons i barra d'estat negre als mitjans de pantalla completa + Desplaçar miniatures horizontalment + Ocultar automàticament la interficie de usuari del sistema a pantalla complerta + Eliminar carpetes buides després d'esborrar el seu contingut + Permet controlar el volum i la brillantor del vídeo amb gestos verticals + Mostrar el número de mitjans de les carpetes a la vista principal + Reemplaçar Compartir per Girar al menú de pantalla complerta + Mostrar detalls estesos sobre mitjans a pantalla complerta + Gestioneu els detalls ampliats - Una galería para ver fotos y vídeos sin publicidad. + Una galeria per veure imatges i vídeos sense publicitat. - Una herramienta sencilla que se puede usar para ver fotos y vídeos. Los elementos se pueden ordenar por fecha, tamaño, nombre tanto ascendente como descendente; se puede hacer zoom en las fotos. Los archivos de medios se muestran en múltiples columnas dependiendo del tamaño de la pantalla, y se puede cambiar el número de columnas mediante gestos. Permite renombrar, compartir, borrar, mover. Las imágenes también se pueden recortar, rotar o usarse como fondo de pantalla directamente desde la aplicación. + Una eina senzilla que es pot fer servir per veure imatges i vídeos. Els elements es poden ordenar per data, mida o nom, tant ascendent com descendent. Es pot fer zoom a les imatges. Els arxius de mitjans es mostren en múltiples columnes depenent de la mida de la pantalla i es pot canviar el número de columnes mitjançant gestos. Permet canviar el nom, compartir, esborrar, i moure. Les imatges també es poden retalla, rotar o utilitzar com a fons de pantalla directament des de l'aplicació. - Gallery también se ofrece para uso de terceros para previsualizar imágenes/vídeos, agregar adjuntos en clientes de correo, etc. Es perfecta para uso diario. + Gallery també s'ofereix per us de tercers, per visualitzar imatges/vídeos, agregar adjunts a clients de correu, etc. Es perfecta per l'ús diari. - The fingerprint permission is needed for locking either hidden item visibility, or the whole app. + El permís d'empremtes dactilars és necessari per bloquejar la visibilitat d'elements ocults o tota l'aplicació. - No contiene publicidad ni permisos innecesarios. Es totalmente libre, proporciona colores personalizables. + No conté ni publicitat ni permisos innecessaris. Es totalment Lliure i proporciona colors personalitzables. - Esta aplicación es solamente una pieza de una serie más grande de aplicaciones. Puede encontrar el resto en http://www.simplemobiletools.com + Aquesta aplicació es només una peça d'una sèrie més gran d'aplicacions. Pots trobar la resta a http://www.simplemobiletools.com - Filtre d'arxius + Filtre d\'arxius Imatges Vídeos GIFs - No s'han tronat arxius amb els filtres seleccionats. + No s\'han tronat arxius amb els filtres seleccionats. Canviar filtres - Aquesta funció oculta les carpetes agregant un arxiu \'.nomedia\' dins d'ella. També ocultarà les subcarpetes. Pots mostrar-les canviant la opció \'Mostrar carpetes ocultes\' als ajustaments. Continuar? + Aquesta funció oculta les carpetes agregant un arxiu \'.nomedia\' dins d\'ella. També ocultarà les subcarpetes. Pots mostrar-les canviant la opció \'Mostrar carpetes ocultes\' als ajustaments. Continuar? Excloure Carpetes excloses Gestionar carpetes excloses @@ -44,10 +44,10 @@ Excloure millor la carpeta superior? Excloure les carpetes les ocultarà junt amb les seves subcarpetes, però només a Simple Gallery. Seguirant sent visibles a altres aplicacions.\\n\\nSi vols ocultar-les d'altres aplicacions fes servir la opció Ocultar. Eliminar tot - Eliminar totes les carpetes de la llista d'excloses? Això no eliminarà les carpetes. + Eliminar totes les carpetes de la llista d\'excloses? Això no eliminarà les carpetes. Carpetes ocultes Gestionar carpetes ocultes - Sembla que no tens cap carpeta amb l'arxiu \".nomedia\". + Sembla que no tens cap carpeta amb l\'arxiu \".nomedia\". Carpetes incloses @@ -71,10 +71,10 @@ Ruta de imatge no vàlida Ha fallat la edició de la imatge Editar imatge utilitzant: - No s'ha trobat cap editor d'imatges - Ubicació de l'arxiu desconeguda - No s'ha pogut sobreescriure l'arxiu d'origen - Rotar a l'esquerra + No s\'ha trobat cap editor d\'imatges + Ubicació de l\'arxiu desconeguda + No s\'ha pogut sobreescriure l\'arxiu d\'origen + Rotar a l\'esquerra Rotar a la dreta Rotar 180º Girar @@ -85,13 +85,13 @@ Fons de pantalla de Simple Gallery Establir com a fons de pantalla - Error a l'establir com fons de pantalla + Error a l\'establir com fons de pantalla Establir com fons de pantalla amb: - No s'ha trobat l'aplicació per aquesta acció + No s\'ha trobat l\'aplicació per aquesta acció Establint fons de pantalla… Fons de pantalla establert correctament - Relació d'aspecte tipus retrat - Relació d'aspecte tipus paisatge + Relació d\'aspecte tipus retrat + Relació d\'aspecte tipus paisatge Pantalla principal Pantalla de bloqueig Pantalla principal i de bloqueig @@ -106,8 +106,8 @@ Utilitza animacions de desaparició Moure cap enrere Presentació de diapositives - S'ha acabat la presentació de diapositives - No s'han trobat mitjans per a la presentació de diapositives + S\'ha acabat la presentació de diapositives + No s\'han trobat mitjans per a la presentació de diapositives Canviar el tipus de vista @@ -116,7 +116,7 @@ Reproduir vídeos automàticament - Canviar la visibilitat del nom d'arxiu + Canviar la visibilitat del nom d\'arxiu Reproducció continua de vídeos Animar les miniatures dels GIFs Brillantor màxima quan es mostra multimèdia @@ -124,11 +124,11 @@ Gira els mitjans a pantalla completa segons Configuració del sistema Rotació del dispositiu - Relació d'aspecte - Fons i barra d'estat negre als mitjans de pantalla completa + Relació d\'aspecte + Fons i barra d\'estat negre als mitjans de pantalla completa Desplaçar miniatures horizontalment Ocultar automàticament la interficie de usuari del sistema a pantalla complerta - Eliminar carpetes buides després d'esborrar el seu contingut + Eliminar carpetes buides després d\'esborrar el seu contingut Permet controlar el volum i la brillantor del vídeo amb gestos verticals Mostrar el número de mitjans de les carpetes a la vista principal Reemplaçar Compartir per Girar al menú de pantalla complerta @@ -139,11 +139,11 @@ Una galeria per veure imatges i vídeos sense publicitat. - Una eina senzilla que es pot fer servir per veure imatges i vídeos. Els elements es poden ordenar per data, mida o nom, tant ascendent com descendent. Es pot fer zoom a les imatges. Els arxius de mitjans es mostren en múltiples columnes depenent de la mida de la pantalla i es pot canviar el número de columnes mitjançant gestos. Permet canviar el nom, compartir, esborrar, i moure. Les imatges també es poden retalla, rotar o utilitzar com a fons de pantalla directament des de l'aplicació. + Una eina senzilla que es pot fer servir per veure imatges i vídeos. Els elements es poden ordenar per data, mida o nom, tant ascendent com descendent. Es pot fer zoom a les imatges. Els arxius de mitjans es mostren en múltiples columnes depenent de la mida de la pantalla i es pot canviar el número de columnes mitjançant gestos. Permet canviar el nom, compartir, esborrar, i moure. Les imatges també es poden retalla, rotar o utilitzar com a fons de pantalla directament des de l\'aplicació. - Gallery també s'ofereix per us de tercers, per visualitzar imatges/vídeos, agregar adjunts a clients de correu, etc. Es perfecta per l'ús diari. + Gallery també s'ofereix per us de tercers, per visualitzar imatges/vídeos, agregar adjunts a clients de correu, etc. Es perfecta per l\'ús diari. - El permís d'empremtes dactilars és necessari per bloquejar la visibilitat d'elements ocults o tota l'aplicació. + El permís d\'empremtes dactilars és necessari per bloquejar la visibilitat d'elements ocults o tota l\'aplicació. No conté ni publicitat ni permisos innecessaris. Es totalment Lliure i proporciona colors personalitzables. From c07aeab3cbcb031639c3f77783b04089d2f27df1 Mon Sep 17 00:00:00 2001 From: tibbi Date: Tue, 9 Jan 2018 23:30:23 +0100 Subject: [PATCH 41/41] remove some redundant strings --- .../simplemobiletools/gallery/activities/ViewPagerActivity.kt | 2 +- .../com/simplemobiletools/gallery/extensions/Activity.kt | 2 +- app/src/main/res/values-ar/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-de/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-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-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-sv/strings.xml | 3 --- app/src/main/res/values-tr/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 --- 27 files changed, 2 insertions(+), 77 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt index 42c9534bb..348b78881 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/activities/ViewPagerActivity.kt @@ -686,7 +686,7 @@ class ViewPagerActivity : SimpleActivity(), ViewPager.OnPageChangeListener, View if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } else { - toast(R.string.no_map_application) + toast(R.string.no_app_found) } } } diff --git a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt index ec99f9352..9d3cd9335 100644 --- a/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/gallery/extensions/Activity.kt @@ -64,7 +64,7 @@ fun Activity.launchCamera() { if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } else { - toast(R.string.no_camera_app_found) + toast(R.string.no_app_found) } } diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml index 3886399e9..7107c4421 100644 --- a/app/src/main/res/values-ar/strings.xml +++ b/app/src/main/res/values-ar/strings.xml @@ -14,8 +14,6 @@ مجلد آخر عرض على الخريطة موقع غير معروف - لم يتم العثور على أي تطبيق مع الخرائط - لم يتم العثور على تطبيق كاميرا زيادة عدد الأعمدة تقليل عدد الأعمدة تغيير صورة الغلاف @@ -91,7 +89,6 @@ تعيين كخلفية الشاشة فشل الإعداد كخلفية تعيين كخلفية بواسطة: - لم يتم العثور على أي تطبيق لأداء المهمة ... جار تعيين الخلفية ... تم تعيبن الخلفية بنجاح صورة نسبة العرض إلى الارتفاع diff --git a/app/src/main/res/values-ca/strings.xml b/app/src/main/res/values-ca/strings.xml index 3eb2f1272..6fbfd736d 100644 --- a/app/src/main/res/values-ca/strings.xml +++ b/app/src/main/res/values-ca/strings.xml @@ -14,8 +14,6 @@ Un altre carpeta Mostrar al mapa Ubicació desconeguda - No s\'ha trobat l\'aplicació de mapes - No s\'ha trobat l\'aplicació de càmera Augmentar el número de columnes Reduir el número de columnes Canviar imatge de portada @@ -87,7 +85,6 @@ Establir com a fons de pantalla Error a l\'establir com fons de pantalla Establir com fons de pantalla amb: - No s\'ha trobat l\'aplicació per aquesta acció Establint fons de pantalla… Fons de pantalla establert correctament Relació d\'aspecte tipus retrat diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml index d3409cad7..e81d248ca 100644 --- a/app/src/main/res/values-cs/strings.xml +++ b/app/src/main/res/values-cs/strings.xml @@ -14,8 +14,6 @@ Jiná složka Zobrazit na mapě Neznámá poloha - Nebyla nalezena žádná mapová aplikace - Nebyla nalezena žádná fotografická aplikace Zvýšit počet sloupců Snížit počet sloupců Change cover image @@ -87,7 +85,6 @@ Nastavit jako tapetu Nastavení tapety selhalo Nastavit jako tapetu pomocí: - Nebyla nalezena žádná vhodná aplikace Nastavuje se tapeta… Tapeta byla úspěšně změněna Portrait aspect ratio diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 75bab8f9b..565eb25c2 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -14,8 +14,6 @@ Ordner wählen Auf Karte zeigen Unbekannter Pfad - Keine Karten-App gefunden - Keine Kamera-App gefunden Kacheln verkleinern Kacheln vergrößern Coverbild ändern @@ -87,7 +85,6 @@ Als Hintergrund festlegen Hintergrundbild festlegen fehlgeschlagen Als Hintergrund festlegen mit - Keine Hintergrundbild-App gefunden Hintergrund festlegen… Hintergrundbild erfolgreich festgelegt Hochformat diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml index 01c65100f..ff2b8cc85 100644 --- a/app/src/main/res/values-es/strings.xml +++ b/app/src/main/res/values-es/strings.xml @@ -14,8 +14,6 @@ Otra carpeta Mostrar en el mapa Ubicación desconocida - No se encontró aplicación de mapas - No se encontró aplicación de cámara Aumentar el número de columnas Reducir el número de columnas Cambiar imagen de portada @@ -87,7 +85,6 @@ Establecer como fondo de pantalla Error al establecer fondo de pantalla Establecer como fondo de pantalla con: - No se encontró aplicación para ello Estableciendo fondo de pantalla… Fondo de pantalla establecido correctamente Relación de aspecto tipo retrato diff --git a/app/src/main/res/values-fi/strings.xml b/app/src/main/res/values-fi/strings.xml index 5ffb8ac09..85e95f0bc 100644 --- a/app/src/main/res/values-fi/strings.xml +++ b/app/src/main/res/values-fi/strings.xml @@ -14,8 +14,6 @@ Muu kansio Näytä kartalla Tuntematon sijainti - Karttasovellusta ei löytynyt - Kamerasovellusta ei löytynyt Increase column count Reduce column count Vaihda kansikuva @@ -87,7 +85,6 @@ Aseta taustakuvaksi Taustakuvan asetus epäonnistui Aseta taustakuvaksi sovelluksella: - Toimivaa sovellusta ei löydetty Asetetaan taustakuvaa… Taustakuva asetettu onnistuneesti Kuvasuhde pystyssä diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 770a2c076..752ad5b36 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -14,8 +14,6 @@ Autre dossier Afficher sur la carte Position inconnue - Aucune application de carte n\'a été trouvée - Aucune application d\'appareil photo n\'a été trouvée Augmenter le nombre de colonnes Réduire le nombre de colonnes Changer l\'image de couverture @@ -87,7 +85,6 @@ Définir comme fond d\'écran Échec de la définition en tant que fond d\'écran. Définir comme fond d\'écran avec : - Aucune application trouvée pour continuer cette action Paramètres de fond d\'écran… Fond d\'écran défini avec succès Ratio d\'aspect portrait diff --git a/app/src/main/res/values-gl/strings.xml b/app/src/main/res/values-gl/strings.xml index 39785c647..495ef8805 100644 --- a/app/src/main/res/values-gl/strings.xml +++ b/app/src/main/res/values-gl/strings.xml @@ -14,8 +14,6 @@ Outro cartafol Mostrar no mapa Localización descoñecida - Non se atopou ningún aplicativo con mapas - Non se atopou ningún aplicativo Cámara Aumente o número de columnas Reduza o número de columnas Cambiar a imaxe de portada @@ -87,7 +85,6 @@ Establecer como fondo de pantalla Fallou establecer fondo de pantalla Establecer fondo de pantalla con: - Non se atopou ningún applicativo válido Establecendo fondo de pantalla… fondo de pantalla establecido con éxito Proporción de Retrato diff --git a/app/src/main/res/values-hr/strings.xml b/app/src/main/res/values-hr/strings.xml index 4310fa5a6..1daa0f95c 100644 --- a/app/src/main/res/values-hr/strings.xml +++ b/app/src/main/res/values-hr/strings.xml @@ -14,8 +14,6 @@ Ostali direktoriji Prikaži na karti Nepoznata lokacija - Nije pronađena aplikacija za kartame - Nije pronađena aplikacija za kameru Povećaj broj stupaca Smanji broj stupaca Promjeni naslovnu sliku @@ -87,7 +85,6 @@ Postavi kao pozadinu Neuspješno postavljanje pozadine Postavi kao pozadinu s: - Nije pronađena aplikacija s ovim mogućnostima Postavljanje pozadine… Uspješno postavljanje pozadine Portretni omjer slike diff --git a/app/src/main/res/values-hu/strings.xml b/app/src/main/res/values-hu/strings.xml index 8c9caec25..27062d5f2 100644 --- a/app/src/main/res/values-hu/strings.xml +++ b/app/src/main/res/values-hu/strings.xml @@ -14,8 +14,6 @@ Other folder Show on map Unknown location - No application with maps has been found - No Camera app has been found Increase column count Reduce column count Change cover image @@ -87,7 +85,6 @@ Set as Wallpaper Setting as Wallpaper failed Set as wallpaper with: - No app capable of it has been found Setting wallpaper… Wallpaper set successfully Portrait aspect ratio diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml index 7fe3fefb5..c7c9de3a2 100644 --- a/app/src/main/res/values-it/strings.xml +++ b/app/src/main/res/values-it/strings.xml @@ -14,8 +14,6 @@ Altra cartella Mostra sulla mappa Posizione sconosciuta - Nessuna app con mappe trovata - Nessuna app fotocamera trovata Aumenta numero colonne Riduci numero colonne Cambia immagine copertina @@ -87,7 +85,6 @@ Imposta come sfondo Impostazione sfondo non riuscita Imposta come sfondo con: - Non sono disponibili app compatibili Impostazione sfondo… Sfondo impostato correttamente Proporzioni ritratto diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index dec0bcca8..c60664609 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -14,8 +14,6 @@ その他のフォルダー 地図で表示 位置情報がありません - 地図アプリが見つかりません - カメラアプリが見つかりません 列数を増やす 列数を減らす カバー画像を変更 @@ -87,7 +85,6 @@ 壁紙に設定 壁紙の設定に失敗しました 壁紙に設定: - 対応できるアプリが見つかりません 壁紙に設定中… 壁紙を正常に設定しました 縦向きの縦横比 diff --git a/app/src/main/res/values-ko-rKR/strings.xml b/app/src/main/res/values-ko-rKR/strings.xml index 4dd34185c..234beda2e 100644 --- a/app/src/main/res/values-ko-rKR/strings.xml +++ b/app/src/main/res/values-ko-rKR/strings.xml @@ -14,8 +14,6 @@ 다른 폴더 지도에서 보기 위치정보 없음 - 연결 가능한 지도 애플리케이션이 없습니다. - 연결 가능한 카메라 애플리케이션이 없습니다. 섬네일크기 축소 섬네일크기 확대 Change cover image @@ -87,7 +85,6 @@ Set as Wallpaper Setting as Wallpaper failed Set as wallpaper with: - No app capable of it has been found Setting wallpaper… Wallpaper set successfully Portrait aspect ratio diff --git a/app/src/main/res/values-nb/strings.xml b/app/src/main/res/values-nb/strings.xml index af5a94696..1bc8a79e2 100644 --- a/app/src/main/res/values-nb/strings.xml +++ b/app/src/main/res/values-nb/strings.xml @@ -14,8 +14,6 @@ Annen mappe Vis på kart Ukjent plassering - Ingen app med kart er funnet - Ingen kamera-app er funnet Øk antall kolonner Reduser antall kolonner Endre omslagsbilde @@ -87,7 +85,6 @@ Sett som bakgrunnsbilde Å sette som bakgrunnsbilde feilet Sett som bakgrunnsbilde med: - Ingen app i stand til det er funnet Stiller inn bakgrunnsbilde… Bakgrunnsbilde vellykket stilt inn Portrett-sideforhold diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml index 879242a19..471fbeff0 100644 --- a/app/src/main/res/values-nl/strings.xml +++ b/app/src/main/res/values-nl/strings.xml @@ -14,8 +14,6 @@ Andere map Op kaart tonen Locatie onbekend - Geen app voor kaarten gevonden - Geen app voor camera gevonden Meer kolommen Minder kolommen Afbeelding voor omslag veranderen @@ -87,7 +85,6 @@ Als achtergrond instellen Achtergrond instellen mislukt Achtergrond instellen met: - Geen app gevonden voor instellen achtergrond Achtergrond instellen… Achtergrond is ingesteld Verhouding in portretmodus diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml index c990176c6..ff8e14e79 100644 --- a/app/src/main/res/values-pl/strings.xml +++ b/app/src/main/res/values-pl/strings.xml @@ -14,8 +14,6 @@ Inny folder Pokaż na mapie Nieznana lokalizacja - Brak aplikacji powiązanej z mapami - Brak aplikacji powiązanej z aparatem Zwiększ liczbę kolumn Zmniejsz liczbę kolumn Zmień okładkę @@ -87,7 +85,6 @@ Ustaw jako tapetę Ustawienie tapety nie powiodło się Ustaw jako tapetę w: - Brak odpowiednich ustawień Ustawiam tapetę… Tapeta została ustawiona Proporcje ekranu w trybie pionowym diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml index 792b66d17..fc4889351 100644 --- a/app/src/main/res/values-pt-rBR/strings.xml +++ b/app/src/main/res/values-pt-rBR/strings.xml @@ -14,8 +14,6 @@ Outra pasta Mostrar no mapa Localização desconhecida - Nenhum aplicativo de mapa encontrado - Nenhum aplicativo de câmera encontrado Aumentar número de colunas Reduzir número de colunas Trocar imagem de capa @@ -87,7 +85,6 @@ Definir como papel de parede Falha ao definir como papel de parede Definir papel de parede com: - Aplicativo não encontrado Definindo como papel de parede Papel de parede com sucesso Retrato diff --git a/app/src/main/res/values-pt/strings.xml b/app/src/main/res/values-pt/strings.xml index 79e98bbe1..539dcfedc 100644 --- a/app/src/main/res/values-pt/strings.xml +++ b/app/src/main/res/values-pt/strings.xml @@ -14,8 +14,6 @@ Outra pasta Mostrar no mapa Localização desconhecida - Não existe uma aplicação adequada - Não existe uma aplicação adequeada Aumentar número de colunas Diminuir número de colunas Alterar imagem de capa @@ -87,7 +85,6 @@ Definir como fundo do ecrã Falha ao definir como fundo de ecrã Definir como fundo com: - Aplicação não encontrada A definir como fundo de ecrã… Fundo definido com sucesso Proporção na vertical diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index b91ce3cc8..f57ab2421 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -14,8 +14,6 @@ Другая папка Показать место съёмки Место съёмки не указано - Не найдено приложений с картами - Не найдено приложения камеры Добавить столбец Убрать столбец Изменить обложку @@ -87,7 +85,6 @@ Установить в качестве обоев Не удалось установить Установить в качестве обоев в: - Приложение не найдено Установка обоев… Обои успешно установлены Портрет diff --git a/app/src/main/res/values-sk/strings.xml b/app/src/main/res/values-sk/strings.xml index 0f7b04b28..585018d33 100644 --- a/app/src/main/res/values-sk/strings.xml +++ b/app/src/main/res/values-sk/strings.xml @@ -14,8 +14,6 @@ Iný priečinok Zobraziť na mape Neznáma poloha - Nenašla sa žiadna mapová aplikácia - Nenašla sa žiadna aplikácia pre fotoaparát Zvýšiť počet stĺpcov Znížiť počet stĺpcov Zmeniť obal albumu @@ -87,7 +85,6 @@ Nastaviť ako tapetu Nastavovanie ako tapeta zlyhalo Nastaviť ako tapetu s: - Nenašla sa žiadna vhodná aplikácia Nastavuje sa tapeta… Tapeta bola úspešne zmenená Orientácia nastojato diff --git a/app/src/main/res/values-sv/strings.xml b/app/src/main/res/values-sv/strings.xml index 425685c7c..f6543ede7 100644 --- a/app/src/main/res/values-sv/strings.xml +++ b/app/src/main/res/values-sv/strings.xml @@ -14,8 +14,6 @@ Annan mapp Visa på karta Okänd plats - Ingen app med kartor hittades - Ingen Kamera-app hittades Öka antalet kolumner Minska antalet kolumner Byt omslagsbild @@ -87,7 +85,6 @@ Ange som bakgrundsbild Det gick inte att byta bakgrundsbild Ange som bakgrundsbild med: - Hittade ingen app som klarar av detta Inställningar för bakgrundsbild… Bakgrundsbilden är ändrad Stående bildförhållande diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml index 0cb4eedc5..d4110b108 100644 --- a/app/src/main/res/values-tr/strings.xml +++ b/app/src/main/res/values-tr/strings.xml @@ -14,8 +14,6 @@ Diğer klasör Haritada göster Bilinmeyen konum - Haritalarla hiçbir uygulama bulunamadı - Hiçbir Kamera uygulaması bulunamadı Sütun sayısını artır Sütun sayısını azalt Change cover image @@ -87,7 +85,6 @@ Duvar kağıdı olarak ayarla Duvar Kağıdı Olarak Ayarlanılamıyor İle duvar kağıdı olarak ayarla: - Mümkün olan herhangi bir uygulama bulunamadı Duvar kağıdını ayarlama… Duvar kağıdı başarıyla ayarlandı Portrait aspect ratio diff --git a/app/src/main/res/values-zh-rCN/strings.xml b/app/src/main/res/values-zh-rCN/strings.xml index 221f91014..941581760 100644 --- a/app/src/main/res/values-zh-rCN/strings.xml +++ b/app/src/main/res/values-zh-rCN/strings.xml @@ -14,8 +14,6 @@ 其他目录 在地图中显示 未知位置 - 未找到地图应用 - 未找到相机应用 增加一栏 减少一栏 更改封面图片 @@ -87,7 +85,6 @@ 设为壁纸 壁纸设置失败 设为壁纸... - 未找到可用应用 正在设置壁纸… 壁纸设置成功 纵向长宽比 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 545d4bd8d..19550daf9 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -14,8 +14,6 @@ 其他資料夾 在地圖上顯示 未知的位置 - 找不到地圖程式 - 找不到相機程式 增加欄數 減少欄數 更換封面圖片 @@ -87,7 +85,6 @@ 設為桌布 設為桌布失敗 用其他程式設為桌布: - 找不到可用的應用程式 桌布設定中… 成功設為桌布 直向長寬比 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8e17186b6..d241e4961 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,8 +14,6 @@ Other folder Show on map Unknown location - No application with maps has been found - No Camera app has been found Increase column count Reduce column count Change cover image @@ -87,7 +85,6 @@ Set as Wallpaper Setting as Wallpaper failed Set as wallpaper with: - No app capable of it has been found Setting wallpaper… Wallpaper set successfully Portrait aspect ratio