allow hiding folders

This commit is contained in:
tibbi 2016-10-09 14:09:05 +02:00
parent cff90e1e8b
commit 848fe154be
12 changed files with 53 additions and 3 deletions

View file

@ -3,6 +3,9 @@ package com.simplemobiletools.gallery;
import android.content.Context; import android.content.Context;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import java.util.HashSet;
import java.util.Set;
public class Config { public class Config {
private SharedPreferences mPrefs; private SharedPreferences mPrefs;
@ -10,7 +13,7 @@ public class Config {
return new Config(context); return new Config(context);
} }
public Config(Context context) { private Config(Context context) {
mPrefs = context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE); mPrefs = context.getSharedPreferences(Constants.PREFS_KEY, Context.MODE_PRIVATE);
} }
@ -59,4 +62,14 @@ public class Config {
public void setDirectorySorting(int order) { public void setDirectorySorting(int order) {
mPrefs.edit().putInt(Constants.DIRECTORY_SORT_ORDER, order).apply(); mPrefs.edit().putInt(Constants.DIRECTORY_SORT_ORDER, order).apply();
} }
public void addHiddenDirectory(String path) {
final Set<String> hiddenFolders = getHiddenFolders();
hiddenFolders.add(path);
mPrefs.edit().putStringSet(Constants.HIDDEN_FOLDERS, hiddenFolders).apply();
}
public Set<String> getHiddenFolders() {
return mPrefs.getStringSet(Constants.HIDDEN_FOLDERS, new HashSet<String>());
}
} }

View file

@ -15,6 +15,7 @@ public class Constants {
public static final String IS_SAME_SORTING = "is_same_sorting"; public static final String IS_SAME_SORTING = "is_same_sorting";
public static final String SORT_ORDER = "sort_order"; public static final String SORT_ORDER = "sort_order";
public static final String DIRECTORY_SORT_ORDER = "directory_sort_order"; public static final String DIRECTORY_SORT_ORDER = "directory_sort_order";
public static final String HIDDEN_FOLDERS = "hidden_foldersy";
// sorting // sorting
public static final int SORT_BY_NAME = 1; public static final int SORT_BY_NAME = 1;

View file

@ -43,6 +43,7 @@ import java.util.Collections;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import butterknife.BindView; import butterknife.BindView;
import butterknife.ButterKnife; import butterknife.ButterKnife;
@ -228,7 +229,7 @@ public class MainActivity extends SimpleActivity
} }
final List<Directory> dirs = new ArrayList<>(directories.values()); final List<Directory> dirs = new ArrayList<>(directories.values());
removeNoMediaDirs(dirs); filderDirectories(dirs);
Directory.mSorting = mConfig.getDirectorySorting(); Directory.mSorting = mConfig.getDirectorySorting();
Collections.sort(dirs); Collections.sort(dirs);
@ -238,7 +239,23 @@ public class MainActivity extends SimpleActivity
return dirs; return dirs;
} }
private void removeNoMediaDirs(List<Directory> dirs) { private void filderDirectories(List<Directory> dirs) {
removeHiddenFolders(dirs);
removeNoMediaFolders(dirs);
}
private void removeHiddenFolders(List<Directory> dirs) {
final Set<String> hiddenDirs = mConfig.getHiddenFolders();
final List<Directory> ignoreDirs = new ArrayList<>();
for (Directory d : dirs) {
if (hiddenDirs.contains(d.getPath()))
ignoreDirs.add(d);
}
dirs.removeAll(ignoreDirs);
}
private void removeNoMediaFolders(List<Directory> dirs) {
final List<Directory> ignoreDirs = new ArrayList<>(); final List<Directory> ignoreDirs = new ArrayList<>();
for (final Directory d : dirs) { for (final Directory d : dirs) {
final File dir = new File(d.getPath()); final File dir = new File(d.getPath());

View file

@ -139,6 +139,9 @@ public class MediaActivity extends SimpleActivity
case R.id.sort: case R.id.sort:
showSortingDialog(); showSortingDialog();
return true; return true;
case R.id.hide_folder:
hideDirectory();
return true;
default: default:
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
} }
@ -161,6 +164,10 @@ public class MediaActivity extends SimpleActivity
new ChangeSorting(this, false); new ChangeSorting(this, false);
} }
private void hideDirectory() {
mConfig.addHiddenDirectory(mPath);
}
private void deleteDirectoryIfEmpty() { private void deleteDirectoryIfEmpty() {
final File file = new File(mPath); final File file = new File(mPath);
if (file.isDirectory() && file.listFiles().length == 0) { if (file.isDirectory() && file.listFiles().length == 0) {

View file

@ -6,4 +6,9 @@
android:icon="@mipmap/sort" android:icon="@mipmap/sort"
android:title="@string/sort_by" android:title="@string/sort_by"
app:showAsAction="ifRoom"/> app:showAsAction="ifRoom"/>
<item
android:id="@+id/hide_folder"
android:title="@string/hide_folder"
app:showAsAction="never"/>
</menu> </menu>

View file

@ -31,6 +31,7 @@
<string name="cancel">Abbrechen</string> <string name="cancel">Abbrechen</string>
<string name="open_with">Open with</string> <string name="open_with">Open with</string>
<string name="no_app_found">No valid app found</string> <string name="no_app_found">No valid app found</string>
<string name="hide_folder">Hide folder</string>
<plurals name="folders_deleted"> <plurals name="folders_deleted">
<item quantity="one">1 Ordner gelöscht</item> <item quantity="one">1 Ordner gelöscht</item>

View file

@ -31,6 +31,7 @@
<string name="cancel">Cancelar</string> <string name="cancel">Cancelar</string>
<string name="open_with">Open with</string> <string name="open_with">Open with</string>
<string name="no_app_found">No valid app found</string> <string name="no_app_found">No valid app found</string>
<string name="hide_folder">Hide folder</string>
<plurals name="folders_deleted"> <plurals name="folders_deleted">
<item quantity="one">1 carpeta eliminada</item> <item quantity="one">1 carpeta eliminada</item>

View file

@ -31,6 +31,7 @@
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="open_with">Open with</string> <string name="open_with">Open with</string>
<string name="no_app_found">No valid app found</string> <string name="no_app_found">No valid app found</string>
<string name="hide_folder">Hide folder</string>
<plurals name="folders_deleted"> <plurals name="folders_deleted">
<item quantity="one">1 cartella eliminata</item> <item quantity="one">1 cartella eliminata</item>

View file

@ -31,6 +31,7 @@
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="open_with">Open with</string> <string name="open_with">Open with</string>
<string name="no_app_found">No valid app found</string> <string name="no_app_found">No valid app found</string>
<string name="hide_folder">Hide folder</string>
<plurals name="folders_deleted"> <plurals name="folders_deleted">
<item quantity="one">1 フォルダーを削除しました</item> <item quantity="one">1 フォルダーを削除しました</item>

View file

@ -31,6 +31,7 @@
<string name="cancel">Cancelar</string> <string name="cancel">Cancelar</string>
<string name="open_with">Open with</string> <string name="open_with">Open with</string>
<string name="no_app_found">No valid app found</string> <string name="no_app_found">No valid app found</string>
<string name="hide_folder">Hide folder</string>
<plurals name="folders_deleted"> <plurals name="folders_deleted">
<item quantity="one">1 pasta eliminada</item> <item quantity="one">1 pasta eliminada</item>

View file

@ -31,6 +31,7 @@
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="open_with">Open with</string> <string name="open_with">Open with</string>
<string name="no_app_found">No valid app found</string> <string name="no_app_found">No valid app found</string>
<string name="hide_folder">Hide folder</string>
<plurals name="folders_deleted"> <plurals name="folders_deleted">
<item quantity="one">1 mapp borttagen</item> <item quantity="one">1 mapp borttagen</item>

View file

@ -31,6 +31,7 @@
<string name="cancel">Cancel</string> <string name="cancel">Cancel</string>
<string name="open_with">Open with</string> <string name="open_with">Open with</string>
<string name="no_app_found">No valid app found</string> <string name="no_app_found">No valid app found</string>
<string name="hide_folder">Hide folder</string>
<plurals name="folders_deleted"> <plurals name="folders_deleted">
<item quantity="one">1 folder deleted</item> <item quantity="one">1 folder deleted</item>