diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5d19981..fbb6828 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -37,7 +37,7 @@
-
+
diff --git a/app/src/main/java/com/hikapro/backpack/MainActivity.java b/app/src/main/java/com/hikapro/backpack/MainActivity.java
index bddcfad..71f027d 100644
--- a/app/src/main/java/com/hikapro/backpack/MainActivity.java
+++ b/app/src/main/java/com/hikapro/backpack/MainActivity.java
@@ -177,7 +177,6 @@ public class MainActivity extends Activity implements View.ActivityCallback {
SetModel model = new SetModel();
view.setPresenter(presenter);
- //presenter.setView(view);
presenter.setModel(model);
model.setPresenter(presenter);
diff --git a/app/src/main/java/com/hikapro/backpack/model/ItemModel.java b/app/src/main/java/com/hikapro/backpack/model/ItemModel.java
index d42ceac..a1db1f8 100644
--- a/app/src/main/java/com/hikapro/backpack/model/ItemModel.java
+++ b/app/src/main/java/com/hikapro/backpack/model/ItemModel.java
@@ -47,7 +47,7 @@ public class ItemModel implements Model.Item {
public void onEvent(Message event) {
switch (event.what) {
- case Event.SET_ITEMS_LOAD_ERROR : // TODO check
+ case Event.SET_ITEMS_LOAD_ERROR:
if (presenter != null) {
if (packedQty == -1)
packedQty = presenter.getCurrentSet().getPackedQty();
@@ -116,17 +116,17 @@ public class ItemModel implements Model.Item {
case Event.ITEM_FROM_SET_DELETED:
executeQuery();
break;
- case Event.ITEM_DELETED :
+ case Event.ITEM_DELETED:
break;
- case Event.ITEM_PACKED :
+ case Event.ITEM_PACKED:
executeQuery();
if (getPackedQty() == getActiveItemsCount())
NetworkUtil.sendGoogleAnalyticsEvent("SET PACKED", String.format("Set #%d", currentSet));
break;
- case Event.ITEM_UNPACKED :
+ case Event.ITEM_UNPACKED:
executeQuery();
break;
- case Event.ITEM_INSERTED :
+ case Event.ITEM_INSERTED:
break;
case Event.SET_RESTORE_COMPLETED:
executeQuery();
@@ -184,7 +184,11 @@ public class ItemModel implements Model.Item {
@Override
public Item getItemByPosition(int position) {
Item ret = null;
- ret = itemsCache.get(position);
+ try {
+ ret = itemsCache.get(position);
+ } catch (Exception ex) {
+
+ }
return ret;
}
@@ -207,12 +211,28 @@ public class ItemModel implements Model.Item {
@Override
public int getHeaderId(int position) {
- return itemsCache.get(position).getCategory();
+ int ret;
+ try {
+ ret = itemsCache.get(position).getCategory();
+ } catch (Exception ex) {
+ try {
+ ret = itemsCache.get(position-1).getCategory();
+ } catch (Exception e) {
+ ret = -1;
+ }
+ }
+ return ret;
}
@Override
public int getItemId(int position) {
- return itemsCache.get(position).getId();
+ int ret;
+ try {
+ ret = itemsCache.get(position).getId();
+ } catch (Exception ex) {
+ ret = -1;
+ }
+ return ret;
}
@Override
diff --git a/app/src/main/java/com/hikapro/backpack/presenter/ItemListPresenter.java b/app/src/main/java/com/hikapro/backpack/presenter/ItemListPresenter.java
index 2cdd29a..4e1b24e 100644
--- a/app/src/main/java/com/hikapro/backpack/presenter/ItemListPresenter.java
+++ b/app/src/main/java/com/hikapro/backpack/presenter/ItemListPresenter.java
@@ -153,12 +153,14 @@ public class ItemListPresenter implements Presenter.ItemList {
@Override
public void setVisibility() {
- if (model.getPackedQty() > 0 && model.getPackedQty() == model.getActiveItemsCount()) {
- footer.setVisibility(android.view.View.VISIBLE);
- } else if ( model.getPackedQty() > 0) {
+ /*if (model.getPackedQty() > 0 && model.getPackedQty() == model.getActiveItemsCount()) {
+ //showPackedItems();
+ } else*/ if (model.getPackedQty() > 0) {
footer.setVisibility(android.view.View.VISIBLE);
+ adapter.addEmptyToTheEnd();
} else {
footer.setVisibility(android.view.View.GONE);
+ adapter.removeEmptyFromTheEnd();
}
}
diff --git a/app/src/main/java/com/hikapro/backpack/presenter/PackedListPresenter.java b/app/src/main/java/com/hikapro/backpack/presenter/PackedListPresenter.java
index 7648ac4..218493b 100644
--- a/app/src/main/java/com/hikapro/backpack/presenter/PackedListPresenter.java
+++ b/app/src/main/java/com/hikapro/backpack/presenter/PackedListPresenter.java
@@ -39,66 +39,72 @@ public class PackedListPresenter extends ItemListPresenter {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
- if (savedInstanceState != null)
- set = (Set) savedInstanceState.getSerializable(BUNDLE_SET_LIST_KEY);
- else
- set = getView().getSet();
- android.view.View view = inflater.inflate(R.layout.fragment_packed_list, container, false);
- LinearLayoutManager llm = new LinearLayoutManager(getActivityContext());
- recycler = (RecyclerView) view.findViewById(R.id.items_recycler);
- recycler.setLayoutManager(llm);
- recycler.setAdapter(adapter);
+ try {
+ if (savedInstanceState != null)
+ set = (Set) savedInstanceState.getSerializable(BUNDLE_SET_LIST_KEY);
+ else
+ set = getView().getSet();
+ android.view.View view = inflater.inflate(R.layout.fragment_packed_list, container, false);
+ LinearLayoutManager llm = new LinearLayoutManager(getActivityContext());
+ recycler = (RecyclerView) view.findViewById(R.id.items_recycler);
+ recycler.setLayoutManager(llm);
+ recycler.setAdapter(adapter);
- final StickyHeaderDecoration decoration = new StickyHeaderDecoration(adapter);
- recycler.addItemDecoration(decoration);
- //recycler.addItemDecoration(new DividerDecoration(getActivityContext()));
- recycler.addItemDecoration(new DividerDecoration2(getActivityContext(), R.drawable.divider, Util.dp2px(getAppContext(), 16)));
- adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
- @Override
- public void onChanged() {
- decoration.invalidateHeaders();
+ final StickyHeaderDecoration decoration = new StickyHeaderDecoration(adapter);
+ recycler.addItemDecoration(decoration);
+ //recycler.addItemDecoration(new DividerDecoration(getActivityContext()));
+ recycler.addItemDecoration(new DividerDecoration2(getActivityContext(), R.drawable.divider, Util.dp2px(getAppContext(), 16)));
+ adapter.registerAdapterDataObserver(new RecyclerView.AdapterDataObserver() {
+ @Override
+ public void onChanged() {
+ decoration.invalidateHeaders();
+ }
+ });
+ recycler.setHasFixedSize(true);
+ model.executeQuery();
+ recycler.scrollToPosition(model.getLastVisiblePosition());
+ backToList = (TextView) view.findViewById(R.id.back_to_list);
+ packedCount = (TextView) view.findViewById(R.id.header_packed_count);
+ unpackButton = (Button) view.findViewById(R.id.unpack_button);
+
+ setVisibility();
+ unpackButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ model.unpackSet(set.getId());
+ }
+ });
+
+ backToList.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ Fragment fragment = (Fragment) getView();
+ if (fragment != null)
+ fragment.getFragmentManager().popBackStack();
+ }
+ });
+
+
+ Activity activity = (Activity) getActivityContext();
+ if (activity != null) {
+ activity.invalidateOptionsMenu();
+ ActionBar actionBar = activity.getActionBar();
+ if (actionBar != null) {
+ actionBar.show();
+ actionBar.setTitle(set.getName());
+ actionBar.setDisplayShowHomeEnabled(false);
+ actionBar.setDisplayShowTitleEnabled(true);
+ actionBar.setDisplayShowCustomEnabled(false);
+ actionBar.setDisplayHomeAsUpEnabled(true);
+ }
}
- });
- recycler.setHasFixedSize(true);
- model.executeQuery();
- recycler.scrollToPosition(model.getLastVisiblePosition());
- backToList = (TextView) view.findViewById(R.id.back_to_list);
- packedCount = (TextView) view.findViewById(R.id.header_packed_count);
- unpackButton = (Button) view.findViewById(R.id.unpack_button);
+ NetworkUtil.sendGoogleAnalyticsScreen(TAG);
+ return view;
- setVisibility();
- unpackButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- model.unpackSet(set.getId());
- }
- });
+ } catch (Exception ex) {
- backToList.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Fragment fragment = (Fragment) getView();
- if (fragment != null)
- fragment.getFragmentManager().popBackStack();
- }
- });
-
-
- Activity activity = (Activity) getActivityContext();
- if (activity != null) {
- activity.invalidateOptionsMenu();
- ActionBar actionBar = activity.getActionBar();
- if (actionBar != null) {
- actionBar.show();
- actionBar.setTitle(set.getName());
- actionBar.setDisplayShowHomeEnabled(false);
- actionBar.setDisplayShowTitleEnabled(true);
- actionBar.setDisplayShowCustomEnabled(false);
- actionBar.setDisplayHomeAsUpEnabled(true);
- }
}
- NetworkUtil.sendGoogleAnalyticsScreen(TAG);
- return view;
+ return null;
}
diff --git a/app/src/main/java/com/hikapro/backpack/presenter/adapters/AddListAdapter.java b/app/src/main/java/com/hikapro/backpack/presenter/adapters/AddListAdapter.java
index 710485c..37f360f 100644
--- a/app/src/main/java/com/hikapro/backpack/presenter/adapters/AddListAdapter.java
+++ b/app/src/main/java/com/hikapro/backpack/presenter/adapters/AddListAdapter.java
@@ -28,16 +28,21 @@ public class AddListAdapter extends RecyclerView.Adapter {
@Override
public void onBindViewHolder(AddItemViewHolder holder, int position) {
- final Item item = presenter.getModel().getItemByPosition(position);
- holder.name.setText(item.getName());
- holder.category.setText(presenter.getModel().getCategoryById(item.getCategory()).getName());
- holder.alreadyInList.setVisibility(item.InList ? View.VISIBLE : View.GONE);
- holder.item.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- presenter.onAddItemClick(item);
- }
- });
+ try {
+ final Item item = presenter.getModel().getItemByPosition(position);
+ holder.name.setText(item.getName());
+ holder.category.setText(presenter.getModel().getCategoryById(item.getCategory()).getName());
+ holder.alreadyInList.setVisibility(item.InList ? View.VISIBLE : View.GONE);
+ holder.item.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ presenter.onAddItemClick(item);
+ }
+ });
+
+ } catch (Exception ex) {
+
+ }
}
@Override
diff --git a/app/src/main/java/com/hikapro/backpack/presenter/adapters/ItemDetailAdapter.java b/app/src/main/java/com/hikapro/backpack/presenter/adapters/ItemDetailAdapter.java
index a470487..9f8af76 100644
--- a/app/src/main/java/com/hikapro/backpack/presenter/adapters/ItemDetailAdapter.java
+++ b/app/src/main/java/com/hikapro/backpack/presenter/adapters/ItemDetailAdapter.java
@@ -37,110 +37,114 @@ public class ItemDetailAdapter extends RecyclerView.Adapter {
@Override
public void onBindViewHolder(final ItemViewHolder holder, final int position) {
- final Item item = presenter.getModel().getCurrentItem();
- holder.cb_item.setChecked(item.isPacked());
- holder.tv_text.setText(item.getName());
- holder.im_info.setVisibility(View.GONE);
- if (item.isPendingRemoval()) {
- holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
- holder.cb_item.setVisibility(View.GONE);
- } else {
- holder.cb_item.setVisibility(View.VISIBLE);
- holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
- }
-
- holder.cb_item.setOnClickListener(new android.view.View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (holder.cb_item.isChecked()) {
- pack(item);
- } else {
- unpack(item);
- }
+ try {
+ final Item item = presenter.getModel().getCurrentItem();
+ holder.cb_item.setChecked(item.isPacked());
+ holder.tv_text.setText(item.getName());
+ holder.im_info.setVisibility(View.GONE);
+ if (item.isPendingRemoval()) {
+ holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
+ holder.cb_item.setVisibility(View.GONE);
+ } else {
+ holder.cb_item.setVisibility(View.VISIBLE);
+ holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
}
- });
-
- final SwipeMenuLayout menuLayout = (SwipeMenuLayout)holder.menu;
- SwipeMenu menu = new SwipeMenu(presenter.getActivityContext());
-
- menuLayout.removeAllViews();
-
- // create menu items here
- if (!item.isPendingRemoval()) {
- // create "leave at home" item
- SwipeMenuItem leaveAtHomeItem = new SwipeMenuItem(menu.getContext());
- // set id
- leaveAtHomeItem.setId(ItemListAdapter.ID_LEAVE_AT_HOME);
- // set item background
- leaveAtHomeItem.setBackground(R.color.colorLeaveAtHomeBtnBackground);
- // set item width
- leaveAtHomeItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
- // set item title
- leaveAtHomeItem.setTitle(R.string.leave_at_home_button);
- // set item title font size
- leaveAtHomeItem.setTitleSize(14);
- // set item title font color
- leaveAtHomeItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(leaveAtHomeItem);
- } else {
- // create "add to bag" item
- SwipeMenuItem addToBagItem = new SwipeMenuItem(menu.getContext());
- // set id
- addToBagItem.setId(ItemListAdapter.ID_ADD_TO_BAG);
- // set item background
- addToBagItem.setBackground(R.color.colorAddToBagBtnBackground);
- // set item width
- addToBagItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
- // set item title
- addToBagItem.setTitle(R.string.add_to_bag_button);
- // set item title font size
- addToBagItem.setTitleSize(14);
- // set item title font color
- addToBagItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(addToBagItem);
-
- // create "return to list" item
- SwipeMenuItem returnToListItem = new SwipeMenuItem(menu.getContext());
- // set id
- returnToListItem.setId(ItemListAdapter.ID_RETURN_TO_LIST);
- // set item background
- returnToListItem.setBackground(R.color.colorReturnToListBtnBackground);
- // set item width
- returnToListItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
- // set item title
- returnToListItem.setTitle(R.string.return_to_list_button);
- // set item title font size
- returnToListItem.setTitleSize(14);
- // set item title font color
- returnToListItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(returnToListItem);
- }
-
- View.OnClickListener onClickListener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case ItemListAdapter.ID_DELETE:
- // no delete
- break;
- case ItemListAdapter.ID_LEAVE_AT_HOME:
- leave(item);
- break;
- case ItemListAdapter.ID_RETURN_TO_LIST:
- leaveCancel(item);
- break;
- case ItemListAdapter.ID_ADD_TO_BAG:
+ holder.cb_item.setOnClickListener(new android.view.View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (holder.cb_item.isChecked()) {
pack(item);
- break;
+ } else {
+ unpack(item);
+ }
}
- menuLayout.notifyOnMenuItemClick();
+ });
+
+ final SwipeMenuLayout menuLayout = (SwipeMenuLayout)holder.menu;
+ SwipeMenu menu = new SwipeMenu(presenter.getActivityContext());
+
+ menuLayout.removeAllViews();
+
+ // create menu items here
+ if (!item.isPendingRemoval()) {
+ // create "leave at home" item
+ SwipeMenuItem leaveAtHomeItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ leaveAtHomeItem.setId(ItemListAdapter.ID_LEAVE_AT_HOME);
+ // set item background
+ leaveAtHomeItem.setBackground(R.color.colorLeaveAtHomeBtnBackground);
+ // set item width
+ leaveAtHomeItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ leaveAtHomeItem.setTitle(R.string.leave_at_home_button);
+ // set item title font size
+ leaveAtHomeItem.setTitleSize(14);
+ // set item title font color
+ leaveAtHomeItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(leaveAtHomeItem);
+ } else {
+ // create "add to bag" item
+ SwipeMenuItem addToBagItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ addToBagItem.setId(ItemListAdapter.ID_ADD_TO_BAG);
+ // set item background
+ addToBagItem.setBackground(R.color.colorAddToBagBtnBackground);
+ // set item width
+ addToBagItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ addToBagItem.setTitle(R.string.add_to_bag_button);
+ // set item title font size
+ addToBagItem.setTitleSize(14);
+ // set item title font color
+ addToBagItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(addToBagItem);
+
+ // create "return to list" item
+ SwipeMenuItem returnToListItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ returnToListItem.setId(ItemListAdapter.ID_RETURN_TO_LIST);
+ // set item background
+ returnToListItem.setBackground(R.color.colorReturnToListBtnBackground);
+ // set item width
+ returnToListItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ returnToListItem.setTitle(R.string.return_to_list_button);
+ // set item title font size
+ returnToListItem.setTitleSize(14);
+ // set item title font color
+ returnToListItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(returnToListItem);
}
- };
- menuLayout.addMenu(menu, onClickListener);
+
+ View.OnClickListener onClickListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case ItemListAdapter.ID_DELETE:
+ // no delete
+ break;
+ case ItemListAdapter.ID_LEAVE_AT_HOME:
+ leave(item);
+ break;
+ case ItemListAdapter.ID_RETURN_TO_LIST:
+ leaveCancel(item);
+ break;
+ case ItemListAdapter.ID_ADD_TO_BAG:
+ pack(item);
+ break;
+ }
+ menuLayout.notifyOnMenuItemClick();
+ }
+ };
+ menuLayout.addMenu(menu, onClickListener);
+
+ } catch (Exception ex) {
+
+ }
}
@Override
diff --git a/app/src/main/java/com/hikapro/backpack/presenter/adapters/ItemListAdapter.java b/app/src/main/java/com/hikapro/backpack/presenter/adapters/ItemListAdapter.java
index 2cab6e9..12e7507 100644
--- a/app/src/main/java/com/hikapro/backpack/presenter/adapters/ItemListAdapter.java
+++ b/app/src/main/java/com/hikapro/backpack/presenter/adapters/ItemListAdapter.java
@@ -34,6 +34,7 @@ public class ItemListAdapter extends RecyclerView.Adapter implem
protected Presenter.ItemList presenter;
protected boolean checkAll;
+ protected int addToCount = 0;
public ItemListAdapter(Presenter.ItemList presenter) {
this.presenter = presenter;
@@ -41,8 +42,8 @@ public class ItemListAdapter extends RecyclerView.Adapter implem
@Override
public int getItemCount() {
- int res = presenter.getModel().getItemsCount();
- return res;
+ int ret = presenter.getModel().getItemsCount();
+ return ret + addToCount;
}
@Override
@@ -54,135 +55,145 @@ public class ItemListAdapter extends RecyclerView.Adapter implem
@Override
public void onBindViewHolder(final ItemViewHolder holder, final int position) {
- final Item item = presenter.getModel().getItemByPosition(position);
- holder.cb_item.setChecked(checkAll);
- holder.tv_text.setText(item.getName());
- //holder.tv_text.setTypeface(mainFace);
- if (item.isPendingRemoval()) {
- holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
- holder.cb_item.setVisibility(View.GONE);
- } else {
- holder.cb_item.setVisibility(View.VISIBLE);
- holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
- }
-
- holder.cb_item.setOnClickListener(new android.view.View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (holder.cb_item.isChecked()) {
- pack(item);
+ try {
+ final Item item = presenter.getModel().getItemByPosition(position);
+ if (item != null) {
+ setVisibility(holder, View.VISIBLE);
+ holder.cb_item.setChecked(checkAll);
+ holder.tv_text.setText(item.getName());
+ if (item.isPendingRemoval()) {
+ holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
+ holder.cb_item.setVisibility(View.GONE);
} else {
- unpack(item);
+ //holder.cb_item.setVisibility(View.VISIBLE);
+ holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
+ }
+
+ holder.cb_item.setOnClickListener(new android.view.View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (holder.cb_item.isChecked()) {
+ pack(item);
+ } else {
+ unpack(item);
+ }
+ }
+ });
+ holder.im_info.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ presenter.showDetails(position);
+ }
+ });
+
+ final SwipeMenuLayout menuLayout = (SwipeMenuLayout) holder.menu;
+ final SwipeMenu menu = new SwipeMenu(presenter.getActivityContext());
+
+ menuLayout.removeAllViews();
+
+ // create menu items here
+ if (!item.isPendingRemoval()) {
+ // create "leave at home" item
+ SwipeMenuItem leaveAtHomeItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ leaveAtHomeItem.setId(ID_LEAVE_AT_HOME);
+ // set item background
+ leaveAtHomeItem.setBackground(R.color.colorLeaveAtHomeBtnBackground);
+ // set item width
+ leaveAtHomeItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ leaveAtHomeItem.setTitle(R.string.leave_at_home_button);
+ // set item title font size
+ leaveAtHomeItem.setTitleSize(14);
+ // set item title font color
+ leaveAtHomeItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(leaveAtHomeItem);
+ } else {
+ // create "add to bag" item
+ SwipeMenuItem addToBagItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ addToBagItem.setId(ID_ADD_TO_BAG);
+ // set item background
+ addToBagItem.setBackground(R.color.colorAddToBagBtnBackground);
+ // set item width
+ addToBagItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ addToBagItem.setTitle(R.string.add_to_bag_button);
+ // set item title font size
+ addToBagItem.setTitleSize(14);
+ // set item title font color
+ addToBagItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(addToBagItem);
+
+ // create "return to list" item
+ SwipeMenuItem returnToListItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ returnToListItem.setId(ID_RETURN_TO_LIST);
+ // set item background
+ returnToListItem.setBackground(R.color.colorReturnToListBtnBackground);
+ // set item width
+ returnToListItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ returnToListItem.setTitle(R.string.return_to_list_button);
+ // set item title font size
+ returnToListItem.setTitleSize(14);
+ // set item title font color
+ returnToListItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(returnToListItem);
+ }
+
+ // create "delete" item
+ SwipeMenuItem deleteItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ deleteItem.setId(ID_DELETE);
+ // set item background
+ deleteItem.setBackground(R.color.colorDeleteBtnBackground);
+ // set item width
+ deleteItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ deleteItem.setTitle(R.string.delete_button);
+ // set item title font size
+ deleteItem.setTitleSize(14);
+ // set item title font color
+ deleteItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(deleteItem);
+
+ View.OnClickListener onClickListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case ID_DELETE:
+ remove(item);
+ break;
+ case ID_LEAVE_AT_HOME:
+ leave(item);
+ break;
+ case ID_RETURN_TO_LIST:
+ leaveCancel(item);
+ break;
+ case ID_ADD_TO_BAG:
+ pack(item);
+ break;
+ }
+ menuLayout.notifyOnMenuItemClick();
+
+ }
+ };
+
+ menuLayout.addMenu(menu, onClickListener);
+ } else {
+ if (presenter.getModel().getPackedQty() > 0) {
+ setVisibility(holder, View.GONE);
}
}
- });
- holder.im_info.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- presenter.showDetails(position);
- }
- });
- final SwipeMenuLayout menuLayout = (SwipeMenuLayout)holder.menu;
- final SwipeMenu menu = new SwipeMenu(presenter.getActivityContext());
+ } catch (Exception ex) {
- menuLayout.removeAllViews();
-
- // create menu items here
- if (!item.isPendingRemoval()) {
- // create "leave at home" item
- SwipeMenuItem leaveAtHomeItem = new SwipeMenuItem(menu.getContext());
- // set id
- leaveAtHomeItem.setId(ID_LEAVE_AT_HOME);
- // set item background
- leaveAtHomeItem.setBackground(R.color.colorLeaveAtHomeBtnBackground);
- // set item width
- leaveAtHomeItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
- // set item title
- leaveAtHomeItem.setTitle(R.string.leave_at_home_button);
- // set item title font size
- leaveAtHomeItem.setTitleSize(14);
- // set item title font color
- leaveAtHomeItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(leaveAtHomeItem);
- } else {
- // create "add to bag" item
- SwipeMenuItem addToBagItem = new SwipeMenuItem(menu.getContext());
- // set id
- addToBagItem.setId(ID_ADD_TO_BAG);
- // set item background
- addToBagItem.setBackground(R.color.colorAddToBagBtnBackground);
- // set item width
- addToBagItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
- // set item title
- addToBagItem.setTitle(R.string.add_to_bag_button);
- // set item title font size
- addToBagItem.setTitleSize(14);
- // set item title font color
- addToBagItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(addToBagItem);
-
- // create "return to list" item
- SwipeMenuItem returnToListItem = new SwipeMenuItem(menu.getContext());
- // set id
- returnToListItem.setId(ID_RETURN_TO_LIST);
- // set item background
- returnToListItem.setBackground(R.color.colorReturnToListBtnBackground);
- // set item width
- returnToListItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
- // set item title
- returnToListItem.setTitle(R.string.return_to_list_button);
- // set item title font size
- returnToListItem.setTitleSize(14);
- // set item title font color
- returnToListItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(returnToListItem);
}
-
- // create "delete" item
- SwipeMenuItem deleteItem = new SwipeMenuItem(menu.getContext());
- // set id
- deleteItem.setId(ID_DELETE);
- // set item background
- deleteItem.setBackground(R.color.colorDeleteBtnBackground);
- // set item width
- deleteItem.setWidth(Util.dp2px(presenter.getActivityContext(),120));
- // set item title
- deleteItem.setTitle(R.string.delete_button);
- // set item title font size
- deleteItem.setTitleSize(14);
- // set item title font color
- deleteItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(deleteItem);
-
- View.OnClickListener onClickListener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case ID_DELETE:
- remove(item);
- break;
- case ID_LEAVE_AT_HOME:
- leave(item);
- break;
- case ID_RETURN_TO_LIST:
- leaveCancel(item);
- break;
- case ID_ADD_TO_BAG:
- pack(item);
- break;
- }
- menuLayout.notifyOnMenuItemClick();
-
- }
- };
-
- menuLayout.addMenu(menu, onClickListener);
-
}
@Override
@@ -257,4 +268,22 @@ public class ItemListAdapter extends RecyclerView.Adapter implem
public void setCheckAll(boolean checkAll) {
this.checkAll = checkAll;
}
+
+ public void addEmptyToTheEnd() {
+ addToCount = 1;
+ notifyDataSetChanged();
+ }
+ public void removeEmptyFromTheEnd() {
+ addToCount = 0;
+ notifyDataSetChanged();
+ }
+
+ private void setVisibility(ItemViewHolder holder, int visibility) {
+ if (holder != null) {
+ holder.cb_item.setVisibility(visibility);
+ holder.im_info.setVisibility(visibility);
+ holder.menu.setVisibility(visibility);
+ holder.tv_text.setVisibility(visibility);
+ }
+ }
}
diff --git a/app/src/main/java/com/hikapro/backpack/presenter/adapters/PackedListAdapter.java b/app/src/main/java/com/hikapro/backpack/presenter/adapters/PackedListAdapter.java
index 4399e1e..fcfda83 100644
--- a/app/src/main/java/com/hikapro/backpack/presenter/adapters/PackedListAdapter.java
+++ b/app/src/main/java/com/hikapro/backpack/presenter/adapters/PackedListAdapter.java
@@ -22,135 +22,145 @@ public class PackedListAdapter extends ItemListAdapter {
super(presenter);
}
+ @Override
+ public int getItemCount() {
+ return presenter.getModel().getItemsCount();
+ }
+
@Override
public void onBindViewHolder(final ItemViewHolder holder, final int position) {
- final Item item = presenter.getModel().getItemByPosition(position);
- holder.cb_item.setChecked(checkAll);
- holder.tv_text.setText(item.getName());
- if (item.isPendingRemoval()) {
- holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
- holder.cb_item.setVisibility(View.GONE);
- } else {
- holder.cb_item.setVisibility(View.VISIBLE);
- holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
- }
-
- holder.cb_item.setOnClickListener(new android.view.View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (holder.cb_item.isChecked()) {
- pack(item);
- } else {
- unpack(item);
- }
+ try {
+ final Item item = presenter.getModel().getItemByPosition(position);
+ holder.cb_item.setChecked(checkAll);
+ holder.tv_text.setText(item.getName());
+ if (item.isPendingRemoval()) {
+ holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG);
+ holder.cb_item.setVisibility(View.GONE);
+ } else {
+ holder.cb_item.setVisibility(View.VISIBLE);
+ holder.tv_text.setPaintFlags(holder.tv_text.getPaintFlags() & ~Paint.STRIKE_THRU_TEXT_FLAG);
}
- });
- holder.im_info.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- presenter.showDetails(position);
- }
- });
- final SwipeMenuLayout menuLayout = (SwipeMenuLayout)holder.menu;
- SwipeMenu menu = new SwipeMenu(presenter.getActivityContext());
-
- menuLayout.removeAllViews();
-
- // create menu items here
- if (!item.isPendingRemoval()) {
- // create "leave at home" item
- SwipeMenuItem leaveAtHomeItem = new SwipeMenuItem(menu.getContext());
- // set id
- leaveAtHomeItem.setId(ID_LEAVE_AT_HOME);
- // set item background
- leaveAtHomeItem.setBackground(R.color.colorLeaveAtHomeBtnBackground);
- // set item width
- leaveAtHomeItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
- // set item title
- leaveAtHomeItem.setTitle(R.string.leave_at_home_button);
- // set item title font size
- leaveAtHomeItem.setTitleSize(14);
- // set item title font color
- leaveAtHomeItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(leaveAtHomeItem);
- } else {
- // create "add to bag" item
- SwipeMenuItem addToBagItem = new SwipeMenuItem(menu.getContext());
- // set id
- addToBagItem.setId(ID_ADD_TO_BAG);
- // set item background
- addToBagItem.setBackground(R.color.colorAddToBagBtnBackground);
- // set item width
- addToBagItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
- // set item title
- addToBagItem.setTitle(R.string.add_to_bag_button);
- // set item title font size
- addToBagItem.setTitleSize(14);
- // set item title font color
- addToBagItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(addToBagItem);
-
- // create "return to list" item
- SwipeMenuItem returnToListItem = new SwipeMenuItem(menu.getContext());
- // set id
- returnToListItem.setId(ID_RETURN_TO_LIST);
- // set item background
- returnToListItem.setBackground(R.color.colorReturnToListBtnBackground);
- // set item width
- returnToListItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
- // set item title
- returnToListItem.setTitle(R.string.return_to_list_button);
- // set item title font size
- returnToListItem.setTitleSize(14);
- // set item title font color
- returnToListItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(returnToListItem);
- }
-
- // create "delete" item
- SwipeMenuItem deleteItem = new SwipeMenuItem(menu.getContext());
- // set id
- deleteItem.setId(ID_DELETE);
- // set item background
- deleteItem.setBackground(R.color.colorDeleteBtnBackground);
- // set item width
- deleteItem.setWidth(Util.dp2px(presenter.getActivityContext(),120));
- // set item title
- deleteItem.setTitle(R.string.delete_button);
- // set item title font size
- deleteItem.setTitleSize(14);
- // set item title font color
- deleteItem.setTitleColor(Color.WHITE);
- // add to menu
- menu.addMenuItem(deleteItem);
-
- View.OnClickListener onClickListener = new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- switch (v.getId()) {
- case ID_DELETE:
- remove(item);
- break;
- case ID_LEAVE_AT_HOME:
- leave(item);
- break;
- case ID_RETURN_TO_LIST:
- unpack(item);
- break;
- case ID_ADD_TO_BAG:
+ holder.cb_item.setOnClickListener(new android.view.View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (holder.cb_item.isChecked()) {
pack(item);
- break;
+ } else {
+ unpack(item);
+ }
}
- menuLayout.notifyOnMenuItemClick();
- }
- };
+ });
+ holder.im_info.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ presenter.showDetails(position);
+ }
+ });
- menuLayout.addMenu(menu, onClickListener);
+ final SwipeMenuLayout menuLayout = (SwipeMenuLayout)holder.menu;
+ SwipeMenu menu = new SwipeMenu(presenter.getActivityContext());
+
+ menuLayout.removeAllViews();
+
+ // create menu items here
+ if (!item.isPendingRemoval()) {
+ // create "leave at home" item
+ SwipeMenuItem leaveAtHomeItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ leaveAtHomeItem.setId(ID_LEAVE_AT_HOME);
+ // set item background
+ leaveAtHomeItem.setBackground(R.color.colorLeaveAtHomeBtnBackground);
+ // set item width
+ leaveAtHomeItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ leaveAtHomeItem.setTitle(R.string.leave_at_home_button);
+ // set item title font size
+ leaveAtHomeItem.setTitleSize(14);
+ // set item title font color
+ leaveAtHomeItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(leaveAtHomeItem);
+ } else {
+ // create "add to bag" item
+ SwipeMenuItem addToBagItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ addToBagItem.setId(ID_ADD_TO_BAG);
+ // set item background
+ addToBagItem.setBackground(R.color.colorAddToBagBtnBackground);
+ // set item width
+ addToBagItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ addToBagItem.setTitle(R.string.add_to_bag_button);
+ // set item title font size
+ addToBagItem.setTitleSize(14);
+ // set item title font color
+ addToBagItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(addToBagItem);
+
+ // create "return to list" item
+ SwipeMenuItem returnToListItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ returnToListItem.setId(ID_RETURN_TO_LIST);
+ // set item background
+ returnToListItem.setBackground(R.color.colorReturnToListBtnBackground);
+ // set item width
+ returnToListItem.setWidth(Util.dp2px(presenter.getActivityContext(), 120));
+ // set item title
+ returnToListItem.setTitle(R.string.return_to_list_button);
+ // set item title font size
+ returnToListItem.setTitleSize(14);
+ // set item title font color
+ returnToListItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(returnToListItem);
+ }
+
+ // create "delete" item
+ SwipeMenuItem deleteItem = new SwipeMenuItem(menu.getContext());
+ // set id
+ deleteItem.setId(ID_DELETE);
+ // set item background
+ deleteItem.setBackground(R.color.colorDeleteBtnBackground);
+ // set item width
+ deleteItem.setWidth(Util.dp2px(presenter.getActivityContext(),120));
+ // set item title
+ deleteItem.setTitle(R.string.delete_button);
+ // set item title font size
+ deleteItem.setTitleSize(14);
+ // set item title font color
+ deleteItem.setTitleColor(Color.WHITE);
+ // add to menu
+ menu.addMenuItem(deleteItem);
+
+ View.OnClickListener onClickListener = new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ switch (v.getId()) {
+ case ID_DELETE:
+ remove(item);
+ break;
+ case ID_LEAVE_AT_HOME:
+ leave(item);
+ break;
+ case ID_RETURN_TO_LIST:
+ unpack(item);
+ break;
+ case ID_ADD_TO_BAG:
+ pack(item);
+ break;
+ }
+ menuLayout.notifyOnMenuItemClick();
+ }
+ };
+
+ menuLayout.addMenu(menu, onClickListener);
+
+ } catch (Exception ex) {
+
+ }
}
@Override
diff --git a/app/src/main/java/com/hikapro/backpack/presenter/adapters/SetListAdapter.java b/app/src/main/java/com/hikapro/backpack/presenter/adapters/SetListAdapter.java
index 6fdafda..fe662c5 100644
--- a/app/src/main/java/com/hikapro/backpack/presenter/adapters/SetListAdapter.java
+++ b/app/src/main/java/com/hikapro/backpack/presenter/adapters/SetListAdapter.java
@@ -25,40 +25,42 @@ public class SetListAdapter extends RecyclerView.Adapter impleme
@Override
public void onBindViewHolder(final SetViewHolder holder, int position) {
+ try {
+ final com.hikapro.backpack.model.entities.Set set = presenter.getModel().getSetByPosition(position);
- final com.hikapro.backpack.model.entities.Set set = presenter.getModel().getSetByPosition(position);
+ if (rightBracket == null || rightBracket.isEmpty()) {
- if (rightBracket == null || rightBracket.isEmpty()) {
+ if (presenter.getActivityContext() != null)
+ this.rightBracket = presenter.getActivityContext().getResources().
+ getString(R.string.right_angle_bracket);
+ else
+ this.rightBracket = "";
+ }
+ holder.textView.setText(set.getName() + " " + rightBracket);
+ holder.textView.setTypeface(App.getMainFace());
+ String info = String.format("%s %d / %d",
+ presenter.getActivityContext().getResources().getString(R.string.packed),
+ set.getPackedQty(),
+ set.getActiveQty());
+ holder.setInfo.setText(info);
+ holder.cardView.setOnClickListener(new android.view.View.OnClickListener() {
+ @Override
+ public void onClick(android.view.View v) {
+ presenter.showItemList(set);
+ }
+ });
+ holder.cardView.setOnLongClickListener(new View.OnLongClickListener() {
+ @Override
+ public boolean onLongClick(View v) {
+ presenter.onLongClick(holder);
+ return false;
+ }
+ });
+ holder.applyBackground(presenter.getAppContext(), set.getId());
+
+ } catch (Exception ex) {
- if (presenter.getActivityContext() != null)
- this.rightBracket = presenter.getActivityContext().getResources().
- getString(R.string.right_angle_bracket);
- else
- this.rightBracket = "";
}
- holder.textView.setText(set.getName() + " " + rightBracket);
- holder.textView.setTypeface(App.getMainFace());
- String info = String.format("%s %d / %d",
- presenter.getActivityContext().getResources().getString(R.string.packed),
- set.getPackedQty(),
- set.getActiveQty());
- holder.setInfo.setText(info);
- holder.cardView.setOnClickListener(new android.view.View.OnClickListener() {
- @Override
- public void onClick(android.view.View v) {
- presenter.showItemList(set);
- }
- });
- holder.cardView.setOnLongClickListener(new View.OnLongClickListener() {
- @Override
- public boolean onLongClick(View v) {
- presenter.onLongClick(holder);
- return false;
- }
- });
- holder.applyBackground(presenter.getAppContext(), set.getId());
-
-
}
@Override
diff --git a/app/src/main/java/com/hikapro/backpack/presenter/adapters/helper/items/swipe2/SwipeMenuItem.java b/app/src/main/java/com/hikapro/backpack/presenter/adapters/helper/items/swipe2/SwipeMenuItem.java
index 256663c..e6f271a 100644
--- a/app/src/main/java/com/hikapro/backpack/presenter/adapters/helper/items/swipe2/SwipeMenuItem.java
+++ b/app/src/main/java/com/hikapro/backpack/presenter/adapters/helper/items/swipe2/SwipeMenuItem.java
@@ -78,7 +78,11 @@ public class SwipeMenuItem {
}
public void setBackground(int resId) {
- this.background = mContext.getResources().getDrawable(resId);
+ try {
+ this.background = mContext.getResources().getDrawable(resId);
+ } catch (Exception ex) { ;
+ }
+
}
public int getWidth() {
diff --git a/app/src/main/res/layout/fragment_item_list.xml b/app/src/main/res/layout/fragment_item_list.xml
index 4789ef4..22be368 100644
--- a/app/src/main/res/layout/fragment_item_list.xml
+++ b/app/src/main/res/layout/fragment_item_list.xml
@@ -21,7 +21,7 @@
17sp
150dp
- 56dp
+ 66dp
2dp
24dp
16dp