package com.biznow.ordernow; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Application; import com.biznow.ordernow.filter.AvailableMenuFilter; import com.biznow.ordernow.filter.MenuFilter; import com.biznow.ordernow.model.IngredientOptionView; import com.biznow.ordernow.model.MyOrderItem; import com.data.menu.CustomerOrderWrapper; import com.data.restaurant.RestaurantOrder; import com.parse.Parse; import com.parse.PushService; import com.util.Utilities; public class ApplicationState extends Application { private String restaurantName; private String activeOrderId; private String userName; private String profilePictureId; private int categoryId = -1; private MenuFilter menuFilter; private AvailableMenuFilter menuFilterAvailable; private HashMap<String, MyOrderItem> foodMenuItemQuantityMap; private CustomerOrderWrapper customerOrderWrapper; private Map<String, List<IngredientOptionView>> dishIngredientMap; private ArrayList<RestaurantOrder> myOrderHistoryList; private boolean openCategoryDrawer = true; private int childCategoryId = 0; public ApplicationState() { menuFilter = new MenuFilter(); dishIngredientMap = new HashMap<String, List<IngredientOptionView>>(); restaurantName = ""; } @Override public void onCreate() { super.onCreate(); Parse.initialize(this, getString(R.string.parse_app_id), getString(R.string.parse_client_key)); PushService.setDefaultPushCallback(this, MyParentOrderActivity.class); } public int getCategoryId() { return categoryId; } public void setCategoryId(int categoryId) { this.categoryId = categoryId; } public int getChildCategoryId() { return childCategoryId; } public void setChildCategoryId(int categoryId) { this.childCategoryId = categoryId; } public static int getCategoryId(ApplicationState applicationContext) { return applicationContext.getCategoryId(); } public static void setCategoryId(ApplicationState applicationContext, int categoryId) { applicationContext.setCategoryId(categoryId); } public static ArrayList<MyOrderItem> getMyOrderItems(ApplicationState applicationContext) { HashMap<String, MyOrderItem> foodMenuItemQuantityMap = applicationContext.getFoodMenuItemQuantityMap(); ArrayList<MyOrderItem> myOrderItems = new ArrayList<MyOrderItem>(); myOrderItems.addAll(foodMenuItemQuantityMap.values()); return myOrderItems; } public MenuFilter getMenuFilter() { return menuFilter; } public static MenuFilter getMenuFilter(ApplicationState applicationContext) { return applicationContext.getMenuFilter(); } public AvailableMenuFilter getAvailableMenuFilter() { return menuFilterAvailable; } public void setAvailableMenuFilter(AvailableMenuFilter menuFilterAvailable) { this.menuFilterAvailable = menuFilterAvailable; } public static AvailableMenuFilter getAvailableMenuFilter(ApplicationState applicationContext) { return applicationContext.getAvailableMenuFilter(); } public static void setAvailableMenuFilter(ApplicationState applicationContext,AvailableMenuFilter menuFilterAvailable ) { applicationContext.setAvailableMenuFilter(menuFilterAvailable); } public HashMap<String, MyOrderItem> getFoodMenuItemQuantityMap() { if (foodMenuItemQuantityMap == null) foodMenuItemQuantityMap = new HashMap<String, MyOrderItem>(); return foodMenuItemQuantityMap; } public static HashMap<String, MyOrderItem> getFoodMenuItemQuantityMap(ApplicationState applicationContext) { return applicationContext.getFoodMenuItemQuantityMap(); } public void setFoodMenuItemQuantityMap(HashMap<String, MyOrderItem> foodMenuItemQuantityMap) { this.foodMenuItemQuantityMap = foodMenuItemQuantityMap; } public static void setFoodMenuItemQuantityMap(ApplicationState applicationContext, HashMap<String, MyOrderItem> foodMenuItemQuantityMap) { applicationContext.setFoodMenuItemQuantityMap(foodMenuItemQuantityMap); } public CustomerOrderWrapper getCustomerOrderWrapper() { return customerOrderWrapper; } public static CustomerOrderWrapper getCustomerOrderWrapper(ApplicationState applicationContext) { return applicationContext.getCustomerOrderWrapper(); } public void setCustomerOrderWrapper(CustomerOrderWrapper customerOrderWrapper) { this.customerOrderWrapper = customerOrderWrapper; } public static void setCustomerOrderWrapper(ApplicationState applicationContext, CustomerOrderWrapper customerOrderWrapper) { applicationContext.setCustomerOrderWrapper(customerOrderWrapper); } public static void cleanFoodMenuItemQuantityMap(ApplicationState applicationContext) { applicationContext.setFoodMenuItemQuantityMap(new HashMap<String, MyOrderItem>()); } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getProfilePictureId() { return profilePictureId; } public void setProfilePictureId(String profilePictureId) { this.profilePictureId = profilePictureId; } public List<IngredientOptionView> getDishSelectedIngredientList(String dishName) { return dishIngredientMap.get(dishName); } public static List<IngredientOptionView> getDishSelectedIngredientList(ApplicationState applicationContext, String dishName) { return applicationContext.getDishSelectedIngredientList(dishName); } public void setDishSelectedIngredientList(String dishName, List<IngredientOptionView> optionList) { dishIngredientMap.put(dishName, optionList); } public static void setDishSelectedIngredientList(ApplicationState applicationContext, String dishName, List<IngredientOptionView> optionList) { applicationContext.setDishSelectedIngredientList(dishName, optionList); } public static void addDishSelectedIngredient(ApplicationState applicationContext, String dishName, IngredientOptionView option) { applicationContext.addDishSelectedIngredient(dishName, option); } public static void removeDishSelectedIngredient(ApplicationState applicationContext, String dishName, IngredientOptionView option) { applicationContext.removeDishSelectedIngredient(dishName, option); } public void addDishSelectedIngredient(String dishName, IngredientOptionView option) { if (dishIngredientMap.get(dishName) == null) { List<IngredientOptionView> optionList = new ArrayList<IngredientOptionView>(); dishIngredientMap.put(dishName, optionList); } List<IngredientOptionView> optionList = dishIngredientMap.get(dishName); optionList.add(option); dishIngredientMap.put(dishName, optionList); Utilities.info("addDishSelecteedIng dishIngredientMap " + dishIngredientMap); } public void removeDishSelectedIngredient(String dishName, IngredientOptionView option) { if (dishIngredientMap.get(dishName) == null) { return; } List<IngredientOptionView> optionList = dishIngredientMap.get(dishName); optionList.remove(option); if (optionList.isEmpty()) { dishIngredientMap.remove(dishName); } else { dishIngredientMap.put(dishName, optionList); } Utilities.info("removeDishSelectedIngredient dishIngredientMap " + dishIngredientMap); } public void cleanDishSelectedIngredients(String dishName) { if (dishIngredientMap.containsKey(dishName)) { dishIngredientMap.remove(dishName); } } public static void cleanDishSelectedIngredients(ApplicationState applicationContext, String dishName) { applicationContext.cleanDishSelectedIngredients(dishName); } public ArrayList<RestaurantOrder> getMyOrderHistoryList() { return myOrderHistoryList; } public void setMyOrderHistoryList(ArrayList<RestaurantOrder> myOrderHistoryList) { this.myOrderHistoryList = myOrderHistoryList; } public static ArrayList<RestaurantOrder> getMyOrderHistoryList(ApplicationState applicationContext) { return applicationContext.getMyOrderHistoryList(); } public static void setMyOrderHistoryList(ApplicationState applicationContext, ArrayList<RestaurantOrder> myOrderHistoryList) { applicationContext.setMyOrderHistoryList(myOrderHistoryList); } public boolean isOpenCategoryDrawer() { return openCategoryDrawer; } public void setOpenCategoryDrawer(boolean openCategoryDrawer) { this.openCategoryDrawer = openCategoryDrawer; } public static boolean isOpenCategoryDrawer(ApplicationState applicationContext) { return applicationContext.isOpenCategoryDrawer(); } public static void setOpenCategoryDrawer(ApplicationState applicationContext, boolean openCategoryDrawer) { applicationContext.setOpenCategoryDrawer(openCategoryDrawer); } public static int getChildCategoryId(ApplicationState applicationContext) { return applicationContext.getChildCategoryId(); } public static void setChildCategoryId(ApplicationState applicationContext, int childCategoryId) { applicationContext.setChildCategoryId(childCategoryId); } public static String getRestaurantName(ApplicationState applicationContext) { return applicationContext.getRestaurantName(); } public static void setRestaurantName(ApplicationState applicationContext, String restName) { applicationContext.setRestaurantName(restName); } public String getRestaurantName() { return restaurantName; } public void setRestaurantName(String restaurantName) { this.restaurantName = restaurantName; } public String getActiveOrderId() { return activeOrderId; } public void setActiveOrderId(String activeOrderId) { this.activeOrderId = activeOrderId; } public static String getActiveOrderId(ApplicationState applicationContext) { return applicationContext.getActiveOrderId(); } public static void setActiveOrderId(ApplicationState applicationContext, String orderId) { applicationContext.setActiveOrderId(orderId); } }