aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java19
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/PasswordStore.java5
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordItem.java24
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java23
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordRepository.java10
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);