diff options
Diffstat (limited to 'app/src/main/java')
3 files changed, 64 insertions, 12 deletions
diff --git a/app/src/main/java/com/zeapo/pwdstore/DividerItemDecoration.java b/app/src/main/java/com/zeapo/pwdstore/DividerItemDecoration.java new file mode 100644 index 00000000..7bc66b62 --- /dev/null +++ b/app/src/main/java/com/zeapo/pwdstore/DividerItemDecoration.java @@ -0,0 +1,51 @@ +package com.zeapo.pwdstore; + +import android.content.Context; +import android.content.res.TypedArray; +import android.graphics.Canvas; +import android.graphics.drawable.Drawable; +import android.support.v4.content.ContextCompat; +import android.support.v7.widget.RecyclerView; +import android.view.View; + +public class DividerItemDecoration extends RecyclerView.ItemDecoration { + + private static final int[] ATTRS = new int[]{android.R.attr.listDivider}; + + private Drawable mDivider; + + /** + * Default divider will be used + */ + public DividerItemDecoration(Context context) { + final TypedArray styledAttributes = context.obtainStyledAttributes(ATTRS); + mDivider = styledAttributes.getDrawable(0); + styledAttributes.recycle(); + } + + /** + * Custom divider will be used + */ + public DividerItemDecoration(Context context, int resId) { + mDivider = ContextCompat.getDrawable(context, resId); + } + + @Override + public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) { + int left = parent.getPaddingLeft(); + int right = parent.getWidth() - parent.getPaddingRight(); + + int childCount = parent.getChildCount(); + for (int i = 0; i < childCount; i++) { + View child = parent.getChildAt(i); + + RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams(); + + int top = child.getBottom() + params.bottomMargin; + int bottom = top + mDivider.getIntrinsicHeight(); + + mDivider.setBounds(left, top, right, bottom); + mDivider.draw(c); + } + } +} diff --git a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java index 1daa4f90..79401fbd 100644 --- a/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java +++ b/app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java @@ -74,8 +74,11 @@ public class PasswordFragment extends Fragment{ recyclerView = (RecyclerView) view.findViewById(R.id.pass_recycler); recyclerView.setLayoutManager(mLayoutManager); -// -// // Set the adapter + + // use divider + recyclerView.addItemDecoration(new DividerItemDecoration(getActivity(), R.drawable.divider)); + + // Set the adapter recyclerView.setAdapter(recyclerAdapter); final FloatingActionButton fab = (FloatingActionButton) view.findViewById(R.id.fab); 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 3f240515..af9a6776 100644 --- a/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java +++ b/app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java @@ -33,14 +33,12 @@ 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); } @@ -73,16 +71,16 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl holder.type.setText(pass.getFullPathName()); if (pass.getType() == PasswordItem.TYPE_CATEGORY) { - holder.card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_200)); +// holder.card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_200)); } else { - holder.card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_50)); +// holder.card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_50)); } holder.view.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mActionMode != null) { - toggleSelection(holder, holder.getAdapterPosition(), holder.card, pass.getType()); + toggleSelection(holder, holder.getAdapterPosition(), null, pass.getType()); if (selectedItems.isEmpty()) { mActionMode.finish(); } else if (selectedItems.size() == 1 && !canEdit) { @@ -106,7 +104,7 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl if (mActionMode != null) { return false; } - toggleSelection(holder, holder.getAdapterPosition(), holder.card, pass.getType()); + toggleSelection(holder, holder.getAdapterPosition(), null, pass.getType()); canEdit = pass.getType() == PasswordItem.TYPE_PASSWORD; // Start the CAB using the ActionMode.Callback mActionMode = activity.startSupportActionMode(mActionModeCallback); @@ -208,15 +206,15 @@ public class PasswordRecyclerAdapter extends RecyclerView.Adapter<PasswordRecycl if (!selectedItems.remove(position)) { selectedItems.add(position); if (type == PasswordItem.TYPE_CATEGORY) { - card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_100)); +// card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_100)); } else { - card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_100)); +// card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_100)); } } else { if (type == PasswordItem.TYPE_CATEGORY) { - card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_200)); +// card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_200)); } else { - card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_50)); +// card.setCardBackgroundColor(activity.getResources().getColor(R.color.blue_grey_50)); } } } |