diff --git a/.idea/caches/gradle_models.ser b/.idea/caches/gradle_models.ser
index b00abeb..d1d3451 100644
Binary files a/.idea/caches/gradle_models.ser and b/.idea/caches/gradle_models.ser differ
diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml
deleted file mode 100644
index 30aa626..0000000
--- a/.idea/codeStyles/Project.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
new file mode 100644
index 0000000..15a15b2
--- /dev/null
+++ b/.idea/encodings.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/java/ch/pizzamaxx/android/activity/CampaignProductListActivity.java b/app/src/main/java/ch/pizzamaxx/android/activity/CampaignProductListActivity.java
index 559ffbd..5057a1a 100644
--- a/app/src/main/java/ch/pizzamaxx/android/activity/CampaignProductListActivity.java
+++ b/app/src/main/java/ch/pizzamaxx/android/activity/CampaignProductListActivity.java
@@ -85,7 +85,7 @@ public class CampaignProductListActivity extends BaseActivity {
startActivityForResult(productPropertiesIntent, REQUEST_CODE_CAMPAIGN_PRODUCT_PROPERTIES);
}
});
- campaignProductRecyclerView.addItemDecoration(new GridSpacesItemDecoration(DisplayHelper.dpToPx(12)));
+ campaignProductRecyclerView.addItemDecoration(new GridSpacesItemDecoration(2, 16, true));
campaignProductRecyclerView.setAdapter(menuProductRecyclerAdapter);
}
diff --git a/app/src/main/java/ch/pizzamaxx/android/fragment/MenuFragment.java b/app/src/main/java/ch/pizzamaxx/android/fragment/MenuFragment.java
index e8b2b42..7ea2620 100644
--- a/app/src/main/java/ch/pizzamaxx/android/fragment/MenuFragment.java
+++ b/app/src/main/java/ch/pizzamaxx/android/fragment/MenuFragment.java
@@ -113,7 +113,7 @@ public class MenuFragment extends BaseFragment {
//showBottomsheetDialog(menuProductList.get(position));
}
});
- menuProductRecyclerView.addItemDecoration(new GridSpacesItemDecoration(DisplayHelper.dpToPx(12)));
+ menuProductRecyclerView.addItemDecoration(new GridSpacesItemDecoration(2, 16, true));
menuProductRecyclerView.setAdapter(menuProductRecyclerAdapter);
}
diff --git a/app/src/main/java/ch/pizzamaxx/android/fragment/ProductFragment.java b/app/src/main/java/ch/pizzamaxx/android/fragment/ProductFragment.java
index 521c402..f0b34b5 100644
--- a/app/src/main/java/ch/pizzamaxx/android/fragment/ProductFragment.java
+++ b/app/src/main/java/ch/pizzamaxx/android/fragment/ProductFragment.java
@@ -113,7 +113,7 @@ public class ProductFragment extends BaseFragment {
//showBottomsheetDialog(productList.get(position));
}
});
- customProductRecyclerView.addItemDecoration(new GridSpacesItemDecoration(DisplayHelper.dpToPx(12)));
+ customProductRecyclerView.addItemDecoration(new GridSpacesItemDecoration(2, 16, true));
customProductRecyclerView.setAdapter(menuProductRecyclerAdapter);
}
diff --git a/app/src/main/java/ch/pizzamaxx/android/view/GridSpacesItemDecoration.java b/app/src/main/java/ch/pizzamaxx/android/view/GridSpacesItemDecoration.java
index 981ce83..04a5719 100644
--- a/app/src/main/java/ch/pizzamaxx/android/view/GridSpacesItemDecoration.java
+++ b/app/src/main/java/ch/pizzamaxx/android/view/GridSpacesItemDecoration.java
@@ -4,36 +4,43 @@ import android.graphics.Rect;
import android.support.v7.widget.RecyclerView;
import android.view.View;
+import ch.pizzamaxx.android.helper.DisplayHelper;
+
/**
* Created by cimenmus on 20/09/2017.
*/
-// This item decoration is for two column grid layout manager
public class GridSpacesItemDecoration extends RecyclerView.ItemDecoration {
- private int space;
+ private int spanCount;
+ private int spacing;
+ private boolean includeEdge;
- public GridSpacesItemDecoration(int space) {
- this.space = space;
+ public GridSpacesItemDecoration(int spanCount, int spacingInDp, boolean includeEdge) {
+ this.spanCount = spanCount;
+ this.spacing = DisplayHelper.dpToPx(spacingInDp);
+ this.includeEdge = includeEdge;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
+ int position = parent.getChildAdapterPosition(view); // item position
+ int column = position % spanCount; // item column
- outRect.left = space;
- outRect.bottom = space;
-
- // Add top margin only for the first item to avoid double space between items
- if (parent.getChildLayoutPosition(view) == 0 || parent.getChildLayoutPosition(view) == 1)
- outRect.top = space;
- else
- outRect.top = 0;
-
- // Add right margin only for the first item in the line to avoid double space between items
- if (parent.getChildLayoutPosition(view) % 2 == 1)
- outRect.right = space;
- else
- outRect.right = 0;
+ if (includeEdge) {
+ outRect.left = spacing - column * spacing / spanCount; // spacing - column * ((1f / spanCount) * spacing)
+ outRect.right = (column + 1) * spacing / spanCount; // (column + 1) * ((1f / spanCount) * spacing)
+ if (position < spanCount) { // top edge
+ outRect.top = spacing;
+ }
+ outRect.bottom = spacing; // item bottom
+ } else {
+ outRect.left = column * spacing / spanCount; // column * ((1f / spanCount) * spacing)
+ outRect.right = spacing - (column + 1) * spacing / spanCount; // spacing - (column + 1) * ((1f / spanCount) * spacing)
+ if (position >= spanCount) {
+ outRect.top = spacing; // item top
+ }
+ }
}
}
diff --git a/app/src/main/res/layout/row_menu_product.xml b/app/src/main/res/layout/row_menu_product.xml
index bbe88cd..3b1e28d 100644
--- a/app/src/main/res/layout/row_menu_product.xml
+++ b/app/src/main/res/layout/row_menu_product.xml
@@ -6,7 +6,7 @@
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="MissingPrefix"
android:orientation="vertical"
- android:layout_width="160dp"
+ android:layout_width="match_parent"
android:layout_height="wrap_content">