diff options
| author | zeapo <mohamed@zenadi.com> | 2014-10-19 16:45:54 +0200 |
|---|---|---|
| committer | zeapo <mohamed@zenadi.com> | 2014-10-19 16:45:54 +0200 |
| commit | 24892e6a9555f36a5d6cbe5658edb6f51ab85eba (patch) | |
| tree | 1e500233aa887e8b55aa6bbd6b70fb303b11e995 /app/src/main/java/com/zeapo/pwdstore/utils | |
| parent | 83c3231ab02fcfa40d369248c257a80579988a4b (diff) | |
| download | HardenedPass-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.java | 104 | ||||
| -rw-r--r-- | app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java | 97 |
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 |
