aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDSIW <dsiw@dsiw-it.de>2016-06-10 03:23:35 +0200
committerDSIW <dsiw@dsiw-it.de>2016-06-10 04:50:56 +0200
commit09f12c81c12ed1993446e98779661d25ced42ad3 (patch)
tree5cb03fbb889ec281a794e8abdd9b69788d929dd8
parentb36d082b9f91c4fe6e9c360fe5e2fe914c88589b (diff)
Remove CardView and use divider for separation
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/DividerItemDecoration.java51
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/PasswordFragment.java7
-rw-r--r--app/src/main/java/com/zeapo/pwdstore/utils/PasswordRecyclerAdapter.java18
-rw-r--r--app/src/main/res/drawable/divider.xml6
-rw-r--r--app/src/main/res/layout/password_row_layout.xml66
5 files changed, 97 insertions, 51 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));
}
}
}
diff --git a/app/src/main/res/drawable/divider.xml b/app/src/main/res/drawable/divider.xml
new file mode 100644
index 00000000..cf2134ff
--- /dev/null
+++ b/app/src/main/res/drawable/divider.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <size android:height="1dp" />
+ <solid android:color="@color/grey_300" />
+</shape> \ No newline at end of file
diff --git a/app/src/main/res/layout/password_row_layout.xml b/app/src/main/res/layout/password_row_layout.xml
index 61c089df..0b877934 100644
--- a/app/src/main/res/layout/password_row_layout.xml
+++ b/app/src/main/res/layout/password_row_layout.xml
@@ -8,49 +8,37 @@
android:layout_marginRight="8dp"
android:layout_marginTop="0dp">
- <android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
- android:id="@+id/password_card"
- style="@style/CardView.Light"
+ <RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_gravity="center"
- card_view:cardCornerRadius="4dp"
- card_view:cardElevation="4dp"
- card_view:cardUseCompatPadding="true"
- card_view:contentPaddingLeft="4dp"
- card_view:contentPaddingTop="4dp">
+ android:padding="8dp"
+ android:gravity="left">
- <RelativeLayout
- android:layout_width="match_parent"
+ <TextView
+ android:id="@+id/type"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:padding="8dp"
- android:gravity="left">
+ android:alpha="0.5"
+ android:maxLines="1"
+ android:ellipsize="start"
+ android:text="TYPE"
+ android:textSize="14dp"
+ android:textColor="@android:color/black"
+ android:layout_alignParentTop="true"
+ android:layout_alignLeft="@+id/label"
+ android:layout_alignStart="@+id/label" />
- <TextView
- android:id="@+id/type"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:alpha="0.5"
- android:maxLines="1"
- android:ellipsize="start"
- android:text="TYPE"
- android:textSize="14dp"
- android:textColor="@android:color/black"
- android:layout_alignParentTop="true"
- android:layout_alignLeft="@+id/label"
- android:layout_alignStart="@+id/label" />
+ <TextView
+ android:id="@+id/label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_vertical"
+ android:text="FILE_NAME"
+ android:textColor="@android:color/black"
+ android:textSize="18dp"
+ android:layout_below="@+id/type"
+ android:layout_alignParentLeft="true"
+ android:layout_alignParentStart="true" />
+ </RelativeLayout>
- <TextView
- android:id="@+id/label"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_gravity="center_vertical"
- android:text="FILE_NAME"
- android:textColor="@android:color/black"
- android:textSize="18dp"
- android:layout_below="@+id/type"
- android:layout_alignParentLeft="true"
- android:layout_alignParentStart="true" />
- </RelativeLayout>
- </android.support.v7.widget.CardView>
</LinearLayout> \ No newline at end of file