diff options
author | Mohamed Zenadi <mohamed@zenadi.com> | 2015-08-12 22:33:48 +0200 |
---|---|---|
committer | Mohamed Zenadi <mohamed@zenadi.com> | 2015-08-12 22:33:48 +0200 |
commit | 58d93d757d30e45a740f9797ef15766c6db01bee (patch) | |
tree | bc9e1fb0faa8dc06022b2921632419c2bab8d6af /app/src/main/java/com/zeapo | |
parent | 0cb325f4b1b7af6209a7684e25f292600c7bc80c (diff) |
show the full category of the password
with a small style revamp
Diffstat (limited to 'app/src/main/java/com/zeapo')
5 files changed, 39 insertions, 42 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java index fed557fa..72636043 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java @@ -60,7 +60,8 @@ public class PasswordFragment extends Fragment{ passListStack = new Stack<ArrayList<PasswordItem>>(); scrollPosition = new Stack<Integer>(); pathStack = new Stack<File>(); - recyclerAdapter = new PasswordRecyclerAdapter((PasswordStore) getActivity(), mListener, PasswordRepository.getPasswords(new File(path))); + recyclerAdapter = new PasswordRecyclerAdapter((PasswordStore) getActivity(), mListener, + PasswordRepository.getPasswords(new File(path), PasswordRepository.getRepositoryDirectory(getActivity()))); } @Override @@ -98,8 +99,8 @@ public class PasswordFragment extends Fragment{ if (item.getType() == PasswordItem.TYPE_CATEGORY) { // push the current password list (non filtered plz!) passListStack.push(pathStack.isEmpty() ? - PasswordRepository.getPasswords() : - PasswordRepository.getPasswords(pathStack.peek())); + PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(activity)) : + PasswordRepository.getPasswords(pathStack.peek(), PasswordRepository.getRepositoryDirectory(activity))); //push the category were we're going pathStack.push(item.getFile()); @@ -107,7 +108,7 @@ public class PasswordFragment extends Fragment{ recyclerView.scrollToPosition(0); recyclerAdapter.clear(); - recyclerAdapter.addAll(PasswordRepository.getPasswords(item.getFile())); + recyclerAdapter.addAll(PasswordRepository.getPasswords(item.getFile(), PasswordRepository.getRepositoryDirectory(activity))); ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true); } else { @@ -140,7 +141,7 @@ public class PasswordFragment extends Fragment{ pathStack.clear(); scrollPosition.clear(); recyclerAdapter.clear(); - recyclerAdapter.addAll(PasswordRepository.getPasswords()); + recyclerAdapter.addAll(PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(getActivity()))); ((AppCompatActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(false); } @@ -151,8 +152,8 @@ public class PasswordFragment extends Fragment{ public void refreshAdapter() { recyclerAdapter.clear(); recyclerAdapter.addAll(pathStack.isEmpty() ? - PasswordRepository.getPasswords() : - PasswordRepository.getPasswords(pathStack.peek())); + PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(getActivity())) : + PasswordRepository.getPasswords(pathStack.peek(), PasswordRepository.getRepositoryDirectory(getActivity()))); } /** @@ -177,8 +178,8 @@ public class PasswordFragment extends Fragment{ private void recursiveFilter(String filter, File dir) { // on the root the pathStack is empty ArrayList<PasswordItem> passwordItems = dir == null ? - PasswordRepository.getPasswords() : - PasswordRepository.getPasswords(dir); + PasswordRepository.getPasswords(PasswordRepository.getRepositoryDirectory(getActivity())) : + PasswordRepository.getPasswords(dir, PasswordRepository.getRepositoryDirectory(getActivity())); boolean rec = settings.getBoolean("filter_recursively", true); for (PasswordItem item : passwordItems) { diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java index 3d17ce10..e51ef201 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordStore.java @@ -34,7 +34,6 @@ import java.io.File; import java.util.HashSet; import java.util.Iterator; import java.util.Set; -import java.util.TreeSet; public class PasswordStore extends AppCompatActivity { private static final String TAG = "PwdStrAct"; @@ -226,7 +225,7 @@ public class PasswordStore extends AppCompatActivity { File dir = new File(settings.getString("git_external_repo", null)); if (dir.exists() && dir.isDirectory() && !FileUtils.listFiles(dir, null, true).isEmpty() && - !PasswordRepository.getPasswords(dir).isEmpty()) { + !PasswordRepository.getPasswords(dir, PasswordRepository.getRepositoryDirectory(this)).isEmpty()) { PasswordRepository.closeRepository(); checkLocalRepository(); return; // if not empty, just show me the passwords! @@ -468,7 +467,7 @@ public class PasswordStore extends AppCompatActivity { dir.exists() && dir.isDirectory() && !FileUtils.listFiles(dir, null, true).isEmpty() && - !PasswordRepository.getPasswords(dir).isEmpty()) { + !PasswordRepository.getPasswords(dir, PasswordRepository.getRepositoryDirectory(this)).isEmpty()) { PasswordRepository.closeRepository(); checkLocalRepository(); return; // if not empty, just show me the passwords! 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 4f129851..7fa88085 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java @@ -11,6 +11,7 @@ public class PasswordItem implements Comparable{ private String name; private PasswordItem parent; private File file; + private String fullPathName; public boolean selected = false; /** Create a password item @@ -20,11 +21,12 @@ public class PasswordItem implements Comparable{ * @param parent * @param type */ - protected PasswordItem(String name, PasswordItem parent, char type, File file) { + protected PasswordItem(String name, PasswordItem parent, char type, File file, File rootDir) { this.name = name; this.parent = parent; this.type = type; this.file = file; + this.fullPathName = file.getAbsolutePath().replace(rootDir.getAbsolutePath(), "").replace(file.getName(), ""); } /** Create a new Category item @@ -33,8 +35,8 @@ public class PasswordItem implements Comparable{ * @param parent * @return */ - public static PasswordItem newCategory(String name, File file, PasswordItem parent) { - return new PasswordItem(name, parent, TYPE_CATEGORY, file); + public static PasswordItem newCategory(String name, File file, PasswordItem parent, File rootDir) { + return new PasswordItem(name, parent, TYPE_CATEGORY, file, rootDir); } /** Create a new parentless category item @@ -42,8 +44,8 @@ public class PasswordItem implements Comparable{ * @param name * @return */ - public static PasswordItem newCategory(String name, File file) { - return new PasswordItem(name, null, TYPE_CATEGORY, file); + public static PasswordItem newCategory(String name, File file, File rootDir) { + return new PasswordItem(name, null, TYPE_CATEGORY, file, rootDir); } /** Create a new password item @@ -52,8 +54,8 @@ public class PasswordItem implements Comparable{ * @param parent * @return */ - public static PasswordItem newPassword(String name, File file, PasswordItem parent) { - return new PasswordItem(name, parent, TYPE_PASSWORD, file); + public static PasswordItem newPassword(String name, File file, PasswordItem parent, File rootDir) { + return new PasswordItem(name, parent, TYPE_PASSWORD, file, rootDir); } /** Create a new parentless password item @@ -61,8 +63,8 @@ public class PasswordItem implements Comparable{ * @param name * @return */ - public static PasswordItem newPassword(String name, File file) { - return new PasswordItem(name, null, TYPE_PASSWORD, file); + public static PasswordItem newPassword(String name, File file, File rootDir) { + return new PasswordItem(name, null, TYPE_PASSWORD, file, rootDir); } public char getType(){ @@ -81,6 +83,10 @@ public class PasswordItem implements Comparable{ return this.file; } + public String getFullPathName() { + return this.fullPathName; + } + @Override public String toString(){ return this.getName().replace(".gpg", ""); diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java index 4bf9cb98..208ec2eb 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java @@ -1,6 +1,7 @@ package com.zeapo.pwdstore.utils; import android.support.v7.view.ActionMode; +import android.support.v7.widget.CardView; import android.support.v7.widget.RecyclerView; import android.view.LayoutInflater; import android.view.Menu; @@ -31,12 +32,14 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl public static class ViewHolder extends RecyclerView.ViewHolder { // each data item is just a string in this case public View view; + public CardView card; public TextView name; public TextView type; public ViewHolder(View v) { super(v); view = v; + card = (CardView) view.findViewById(R.id.password_card); name = (TextView) view.findViewById(R.id.label); type = (TextView) view.findViewById(R.id.type); } @@ -68,23 +71,11 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl int sdk = android.os.Build.VERSION.SDK_INT; if (pass.getType() == PasswordItem.TYPE_CATEGORY) { - holder.type.setText("C"); - if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) { - holder.type.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.category_rectangle)); - } else { - holder.type.setBackground(activity.getResources().getDrawable(R.drawable.category_rectangle)); - } - - holder.type.setTextColor(activity.getResources().getColor(R.color.deep_orange_50)); + holder.type.setText(pass.getFullPathName()); + holder.card.setCardBackgroundColor(activity.getResources().getColor(R.color.deep_orange_400)); } else { - holder.type.setText("P"); - if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) { - holder.type.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.password_rectangle)); - } else { - holder.type.setBackground(activity.getResources().getDrawable(R.drawable.password_rectangle)); - } - - holder.type.setTextColor(activity.getResources().getColor(R.color.blue_grey_50)); + holder.type.setText(pass.getFullPathName()); + holder.card.setCardBackgroundColor(activity.getResources().getColor(R.color.light_blue_600)); } holder.view.setOnClickListener(new View.OnClickListener() { 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 a2ca8824..c571e5a5 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java @@ -155,8 +155,8 @@ public class PasswordRepository { * Gets the password items in the root directory * @return a list of passwords in the root direcotyr */ - public static ArrayList<PasswordItem> getPasswords() { - return getPasswords(repository.getWorkTree()); + public static ArrayList<PasswordItem> getPasswords(File rootDir) { + return getPasswords(rootDir, rootDir); } public static File getWorkTree() { @@ -183,7 +183,7 @@ public class PasswordRepository { * @param path the directory path * @return a list of password items */ - public static ArrayList<PasswordItem> getPasswords(File path) { + public static ArrayList<PasswordItem> getPasswords(File path, File rootDir) { //We need to recover the passwords then parse the files ArrayList<File> passList = getFilesList(path); @@ -193,12 +193,12 @@ public class PasswordRepository { for (File file : passList) { if (file.isFile()) { - passwordList.add(PasswordItem.newPassword(file.getName(), file)); + passwordList.add(PasswordItem.newPassword(file.getName(), file, rootDir)); } else { // ignore .git directory if (file.getName().equals(".git")) continue; - passwordList.add(PasswordItem.newCategory(file.getName(), file)); + passwordList.add(PasswordItem.newCategory(file.getName(), file, rootDir)); } } sort(passwordList); |