Android Open Source - trivial-lists Category Item Manager






From Project

Back to project page trivial-lists.

License

The source code is released under:

MIT License

If you think the Android project trivial-lists listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package org.hbabcock.triviallists;
//w w w .jav a2 s.  c  o  m
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.UUID;

import android.content.Context;
import android.util.Log;

public class CategoryItemManager {
  private static final String TAG = "CategoryItemManager";
  private static final String CATEGORY_FILENAME = "categories.json";
  private static final String ITEM_FILENAME = "items.json";

  private ArrayList<Item> mAllItems;
  private Context mAppContext;
  private ArrayList<Category> mCategories;
  private ArrayList<Item> mCategoryItems;
  private TrivialListJSONSerializer mSerializer;
  private static CategoryItemManager sCategoryItemManager;

  private CategoryItemManager(Context appContext){
    Log.i(TAG, "load");
    mAppContext = appContext;
    mSerializer = new TrivialListJSONSerializer(mAppContext);
    mCategoryItems = new ArrayList<Item>();
    
    try {
      mCategories = mSerializer.loadCategories(CATEGORY_FILENAME);
      mAllItems = mSerializer.loadItems(ITEM_FILENAME);
    }
    catch (Exception e){
      Log.e(TAG, "Error loading: ", e);
      mCategories = new ArrayList<Category>();
      mAllItems = new ArrayList<Item>();
    }
  }
  
  public static CategoryItemManager get(Context c){
    if (sCategoryItemManager == null){
      Log.i(TAG, "Creating new CategoryItemManager");
      sCategoryItemManager = new CategoryItemManager(c.getApplicationContext());
    }
    
    return sCategoryItemManager;
  }

  public void addCategory(Category c){
    mCategories.add(c);
  }
  
  public void addItem(Item i){
    Log.i(TAG, "addItem " + i.getCategoryId());
    mAllItems.add(i);
    mCategoryItems.add(i);
  }
  
  public void deleteCategory(Category c){
    Iterator<Item> it = mAllItems.iterator();
    while(it.hasNext())
    {
        Item i = it.next();
      if (i.getCategoryId().equals(c.getId())){
        it.remove();
      }
    }
    mCategories.remove(c);
  }
  
  public void deleteItem(Item i){
    mAllItems.remove(i);
    mCategoryItems.remove(i);
    Log.i(TAG, "deleteItem ," + mCategoryItems.size());
  }

  public Category getCategory(UUID id){
    for (Category c : mCategories){
      if (c.getId().equals(id)){
        return c;
      }
    }
    return null;
  }
  
  public Item getItem(UUID id){
    for (Item i : mAllItems){
      if (i.getId().equals(id)){
        return i;
      }
    }
    return null;
  }
  
  public ArrayList<Category> getCategories(){
    return mCategories;
  }

  public ArrayList<Item> getItems(Category c){
    Log.i(TAG, "getItems " + mAllItems.size() + " " + c.getId());
    mCategoryItems.clear();
    for (Item i : mAllItems){
      if (i.getCategoryId().equals(c.getId())){
        mCategoryItems.add(i);
      }
    }
    return mCategoryItems;
  }
  
  public void save(){
    Log.i(TAG, "save");
    
    Collections.sort(mCategories, new Comparator<Category>() {
      @Override
      public int compare(Category c1, Category c2)
      {
        return  c1.getName().compareTo(c2.getName());
      }
    });

    Collections.sort(mAllItems, new Comparator<Item>() {
      @Override
      public int compare(Item i1, Item i2)
      {
        return  i1.getName().compareTo(i2.getName());
      }
    });

    try {
      mSerializer.saveCategories(mCategories, CATEGORY_FILENAME);  
      mSerializer.saveItems(mAllItems, ITEM_FILENAME);  
    }
    catch (Exception e){
      Log.e(TAG, "Error saving: ", e);
    }
  }

}




Java Source Code List

org.hbabcock.triviallists.CategoryActivity.java
org.hbabcock.triviallists.CategoryDeleteDialog.java
org.hbabcock.triviallists.CategoryFragment.java
org.hbabcock.triviallists.CategoryItemManager.java
org.hbabcock.triviallists.Category.java
org.hbabcock.triviallists.GenericEditorDialogFragment.java
org.hbabcock.triviallists.ItemFragmentEdit.java
org.hbabcock.triviallists.ItemFragmentShop.java
org.hbabcock.triviallists.ItemFragment.java
org.hbabcock.triviallists.ItemPagerActivity.java
org.hbabcock.triviallists.Item.java
org.hbabcock.triviallists.SingleFragmentActivity.java
org.hbabcock.triviallists.TrivialListJSONSerializer.java