aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/com/zeapo/pwdstore/utils
diff options
context:
space:
mode:
authorzeapo <mohamed@zenadi.com>2014-10-19 16:45:54 +0200
committerzeapo <mohamed@zenadi.com>2014-10-19 16:45:54 +0200
commit24892e6a9555f36a5d6cbe5658edb6f51ab85eba (patch)
tree1e500233aa887e8b55aa6bbd6b70fb303b11e995 /app/src/main/java/com/zeapo/pwdstore/utils
parent83c3231ab02fcfa40d369248c257a80579988a4b (diff)
downloadHardenedPass-24892e6a9555f36a5d6cbe5658edb6f51ab85eba.tar.gz
HardenedPass-24892e6a9555f36a5d6cbe5658edb6f51ab85eba.zip
Using RecyclerView rather than ListView
Diffstat (limited to 'app/src/main/java/com/zeapo/pwdstore/utils')
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordAdapter.java104
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java97
2 files changed, 97 insertions, 104 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordAdapter.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordAdapter.java
deleted file mode 100644
index e3317c01..00000000
--- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordAdapter.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package com.zeapo.pwdstore.utils;
-
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.Intent;
-import android.database.DataSetObserver;
-import android.graphics.Typeface;
-import android.util.Log;
-import android.view.LayoutInflater;
-import android.view.View;
-import android.view.ViewGroup;
-import android.widget.AbsListView;
-import android.widget.ArrayAdapter;
-import android.widget.Button;
-import android.widget.ExpandableListAdapter;
-import android.widget.GridLayout;
-import android.widget.ImageButton;
-import android.widget.TextView;
-
-import com.zeapo.pwdstore.PasswordStore;
-import com.zeapo.pwdstore.R;
-import com.zeapo.pwdstore.crypto.PgpHandler;
-
-import org.apache.commons.io.FileUtils;
-
-import java.util.ArrayList;
-
-public class PasswordAdapter extends ArrayAdapter<PasswordItem>{
- private final PasswordStore activity;
- private final ArrayList<PasswordItem> values;
-
- static class ViewHolder {
- public TextView name;
- public TextView type;
- public TextView back_name;
- }
-
- public PasswordAdapter(PasswordStore activity, ArrayList<PasswordItem> values) {
- super(activity, R.layout.password_row_layout, values);
- this.values = values;
- this.activity = activity;
- }
-
- public ArrayList<PasswordItem> getValues() {
- return values;
- }
-
- @Override
- public View getView(int i, View convertView, ViewGroup viewGroup) {
- View rowView = convertView;
- final PasswordItem pass = values.get(i);
-
- // reuse for performance, holder pattern!
- if (rowView == null) {
- LayoutInflater inflater = (LayoutInflater) activity
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- rowView = inflater.inflate(R.layout.password_row_layout, viewGroup, false);
-
- ViewHolder viewHolder = new ViewHolder();
- viewHolder.name = (TextView) rowView.findViewById(R.id.label);
- viewHolder.back_name = (TextView) rowView.findViewById(R.id.label_back);
- viewHolder.type = (TextView) rowView.findViewById(R.id.type);
- rowView.setTag(viewHolder);
- }
-
- ViewHolder holder = (ViewHolder) rowView.getTag();
-
- holder.name.setText(pass.toString());
- holder.back_name.setText(pass.toString());
-
- if (pass.getType() == PasswordItem.TYPE_CATEGORY) {
- holder.name.setTextColor(this.activity.getResources().getColor(android.R.color.holo_blue_dark));
- holder.name.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD));
- holder.type.setText("Category: ");
- } else {
- holder.type.setText("Password: ");
- holder.name.setTextColor(this.activity.getResources().getColor(android.R.color.holo_orange_dark));
- holder.name.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.NORMAL));
-
- holder.back_name.setTextColor(this.activity.getResources().getColor(android.R.color.white));
- holder.back_name.setTypeface(Typeface.create(Typeface.DEFAULT, Typeface.BOLD_ITALIC));
-
-
- View.OnClickListener onClickListener = new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- switch (view.getId()) {
- case R.id.crypto_show_button:
- activity.decryptPassword(pass);
- break;
- case R.id.crypto_delete_button:
- activity.deletePassword(pass);
- break;
- }
- }
- };
-
- ((ImageButton) rowView.findViewById(R.id.crypto_show_button)).setOnClickListener(onClickListener);
- ((ImageButton) rowView.findViewById(R.id.crypto_delete_button)).setOnClickListener(onClickListener);
- }
-
- return rowView;
- }
-} \ No newline at end of file
diff --git a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java
new file mode 100644
index 00000000..47bcb41b
--- /dev/null
+++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java
@@ -0,0 +1,97 @@
+package com.zeapo.pwdstore.utils;
+
+import android.support.v7.widget.RecyclerView;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+import android.widget.TextView;
+
+import com.zeapo.pwdstore.PasswordFragment;
+import com.zeapo.pwdstore.PasswordStore;
+import com.zeapo.pwdstore.R;
+
+import java.util.ArrayList;
+
+public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecyclerAdapter.ViewHolder> {
+ private final PasswordStore activity;
+ private final ArrayList<PasswordItem> values;
+ private final PasswordFragment.OnFragmentInteractionListener listener;
+
+ // Provide a reference to the views for each data item
+ // Complex data items may need more than one view per item, and
+ // you provide access to all the views for a data item in a view holder
+ public static class ViewHolder extends RecyclerView.ViewHolder {
+ // each data item is just a string in this case
+ public View view;
+ public TextView name;
+ public TextView type;
+ public int position;
+
+ public ViewHolder(View v) {
+ super(v);
+ view = v;
+ name = (TextView) view.findViewById(R.id.label);
+ type = (TextView) view.findViewById(R.id.type);
+ }
+ }
+
+ // Provide a suitable constructor (depends on the kind of dataset)
+ public PasswordRecyclerAdapter(PasswordStore activity, PasswordFragment.OnFragmentInteractionListener listener, ArrayList<PasswordItem> values) {
+ this.values = values;
+ this.activity = activity;
+ this.listener = listener;
+ }
+
+ // Create new views (invoked by the layout manager)
+ @Override
+ public PasswordRecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent,
+ int viewType) {
+ // create a new view
+ View v = LayoutInflater.from(parent.getContext())
+ .inflate(R.layout.password_row_layout, parent, false);
+ ViewHolder vh = new ViewHolder(v);
+ return vh;
+ }
+
+ // Replace the contents of a view (invoked by the layout manager)
+ @Override
+ public void onBindViewHolder(ViewHolder holder, int position) {
+ final PasswordItem pass = values.get(position);
+ holder.name.setText(pass.getName());
+ holder.type.setText((pass.getType() == PasswordItem.TYPE_CATEGORY ? "Category" : "Password"));
+ holder.position = position;
+
+ holder.view.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ listener.onFragmentInteraction(pass);
+ }
+ });
+ }
+
+ // Return the size of your dataset (invoked by the layout manager)
+ @Override
+ public int getItemCount() {
+ return values.size();
+ }
+
+ public ArrayList<PasswordItem> getValues() {
+ return this.values;
+ }
+
+ public void clear() {
+ this.values.clear();
+ this.notifyDataSetChanged();
+ }
+
+ public void addAll(ArrayList<PasswordItem> list) {
+ this.values.addAll(list);
+ this.notifyDataSetChanged();
+ }
+
+ public void add(PasswordItem item) {
+ this.values.add(item);
+ this.notifyDataSetChanged();
+ }
+
+} \ No newline at end of file