diff options
| author | حسين <zidhussein@gmail.com> | 2018-08-20 10:13:38 +0100 |
|---|---|---|
| committer | Mohamed Zenadi <zeapo@users.noreply.github.com> | 2018-08-20 11:13:38 +0200 |
| commit | 30d4d5342ff6cdcc7d1adbd0be34bea4b1aa1a96 (patch) | |
| tree | 339952842096fc9478a8bc9e459235e428bd117c /app/src/main/java/com/zeapo/pwdstore/utils | |
| parent | 65ef17727c5ae9e845381807b90af34eff8a7a53 (diff) | |
| download | HardenedPass-30d4d5342ff6cdcc7d1adbd0be34bea4b1aa1a96.tar.gz HardenedPass-30d4d5342ff6cdcc7d1adbd0be34bea4b1aa1a96.zip | |
change the sort order of password items (#421)
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/utils')
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java | 2 | ||||
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java | 48 |
2 files changed, 44 insertions, 6 deletions
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<PasswordItem> getPasswords(File rootDir) { - return getPasswords(rootDir, rootDir); + public static ArrayList<PasswordItem> 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<PasswordItem> getPasswords(File path, File rootDir) { + public static ArrayList<PasswordItem> getPasswords(File path, File rootDir, PasswordSortOrder sortOrder) { //We need to recover the passwords then parse the files ArrayList<File> 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<PasswordItem>() { + @Override + public int compare(PasswordItem p1, PasswordItem p2) { + return (p1.getType() + p1.getName()) + .compareToIgnoreCase(p2.getType() + p2.getName()); + } + }), + + INDEPENDENT(new Comparator<PasswordItem>() { + @Override + public int compare(PasswordItem p1, PasswordItem p2) { + return p1.getName().compareToIgnoreCase(p2.getName()); + } + }), + + FILE_FIRST(new Comparator<PasswordItem>() { + @Override + public int compare(PasswordItem p1, PasswordItem p2) { + return (p2.getType() + p1.getName()) + .compareToIgnoreCase(p1.getType() + p2.getName()); + } + }) + + ; + + private Comparator<PasswordItem> comparator; + + PasswordSortOrder(Comparator<PasswordItem> comparator) { + this.comparator = comparator; + } + + public static PasswordSortOrder getSortOrder(SharedPreferences settings) { + return valueOf(settings.getString("sort_order", null)); + } + } } |
