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">