From 30d4d5342ff6cdcc7d1adbd0be34bea4b1aa1a96 Mon Sep 17 00:00:00 2001 From: حسين Date: Mon, 20 Aug 2018 10:13:38 +0100 Subject: change the sort order of password items (#421) --- .../com/zeapo/pwdstore/utils/PasswordItem.java | 2 +- .../zeapo/pwdstore/utils/PasswordRepository.java | 48 +++++++++++++++++++--- 2 files changed, 44 insertions(+), 6 deletions(-) (limited to 'app/src/main/java/com/zeapo/pwdstore/utils') diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java index f45abc38..3261cc58 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java @@ -55,7 +55,7 @@ public class PasswordItem implements Comparable{ return this.type; } - private String getName(){ + String getName(){ return this.name; } diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java index e232b8a0..d724f090 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java @@ -5,7 +5,6 @@ import android.content.SharedPreferences; import android.preference.PreferenceManager; import android.util.Log; -import org.apache.commons.io.FileUtils; import org.apache.commons.io.filefilter.FileFilterUtils; import org.eclipse.jgit.api.Git; import org.eclipse.jgit.lib.Repository; @@ -19,6 +18,7 @@ import java.io.File; import java.io.FileFilter; import java.util.ArrayList; import java.util.Arrays; +import java.util.Comparator; import java.util.List; import java.util.Set; @@ -155,8 +155,8 @@ public class PasswordRepository { * * @return a list of passwords in the root direcotyr */ - public static ArrayList getPasswords(File rootDir) { - return getPasswords(rootDir, rootDir); + public static ArrayList getPasswords(File rootDir, PasswordSortOrder sortOrder) { + return getPasswords(rootDir, rootDir, sortOrder); } /** @@ -185,7 +185,7 @@ public class PasswordRepository { * @param path the directory path * @return a list of password items */ - public static ArrayList getPasswords(File path, File rootDir) { + public static ArrayList getPasswords(File path, File rootDir, PasswordSortOrder sortOrder) { //We need to recover the passwords then parse the files ArrayList passList = getFilesList(path); @@ -203,7 +203,7 @@ public class PasswordRepository { passwordList.add(PasswordItem.newCategory(file.getName(), file, rootDir)); } } - sort(passwordList); + sort(passwordList, sortOrder.comparator); return passwordList; } @@ -244,4 +244,42 @@ public class PasswordRepository { } } } + + public enum PasswordSortOrder { + + FOLDER_FIRST(new Comparator() { + @Override + public int compare(PasswordItem p1, PasswordItem p2) { + return (p1.getType() + p1.getName()) + .compareToIgnoreCase(p2.getType() + p2.getName()); + } + }), + + INDEPENDENT(new Comparator() { + @Override + public int compare(PasswordItem p1, PasswordItem p2) { + return p1.getName().compareToIgnoreCase(p2.getName()); + } + }), + + FILE_FIRST(new Comparator() { + @Override + public int compare(PasswordItem p1, PasswordItem p2) { + return (p2.getType() + p1.getName()) + .compareToIgnoreCase(p1.getType() + p2.getName()); + } + }) + + ; + + private Comparator comparator; + + PasswordSortOrder(Comparator comparator) { + this.comparator = comparator; + } + + public static PasswordSortOrder getSortOrder(SharedPreferences settings) { + return valueOf(settings.getString("sort_order", null)); + } + } } -- cgit v1.2.3