package com.example.administrator.cookman.model.manager; import android.content.res.AssetManager; import com.example.administrator.cookman.CookManApplication; import com.example.administrator.cookman.model.entity.CookEntity.CategoryChildInfo1; import com.example.administrator.cookman.model.entity.CookEntity.CategoryChildInfo2; import com.example.administrator.cookman.model.entity.CookEntity.CategoryInfo; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import org.json.JSONArray; import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.util.ArrayList; /** * Created by Administrator on 2017/2/25. */ public class CookCategoryManager { private static CookCategoryManager Instance = null; public static CookCategoryManager getInstance(){ if(Instance == null) Instance = new CookCategoryManager(); return Instance; } private ArrayList<CategoryChildInfo1> categoryAllDatas; private ArrayList<CategoryInfo> categoryFirDatas; private Gson gson; private CookCategoryManager(){ gson = new Gson(); } public void initDatas(ArrayList<CategoryChildInfo1> categoryAllDatas){ this.categoryAllDatas = categoryAllDatas; initCategoryFirDatas(); } public ArrayList<CategoryChildInfo1> getCategoryDatas(){ if(categoryAllDatas == null || categoryAllDatas.size() < 1) { initDatasFrmJson(); initCategoryFirDatas(); } return categoryAllDatas; } public ArrayList<CategoryInfo> getCategoryFirDatas() { if(categoryFirDatas == null || categoryFirDatas.size() < 1){ getCategoryDatas(); } return categoryFirDatas; } public ArrayList<CategoryChildInfo2> getCategorySndDatas(String cid){ for(CategoryChildInfo1 item : categoryAllDatas){ if(item.getCategoryInfo().getCtgId().equals(cid)){ return item.getChilds(); } } return null; } private void initDatasFrmJson(){ try { StringBuilder buf = new StringBuilder(); InputStream json = CookManApplication .getContext().getAssets().open("default_cook_category_all.json" , AssetManager.ACCESS_STREAMING); BufferedReader in = new BufferedReader(new InputStreamReader(json, "UTF-8")); String str; while ((str = in.readLine()) != null) { buf.append(str); } in.close(); JSONArray jo = new JSONArray(buf.toString()); categoryAllDatas = gson .fromJson( jo.toString() , new TypeToken<ArrayList<CategoryChildInfo1>>() {}.getType()); } catch (Exception e){ } } private void initCategoryFirDatas(){ categoryFirDatas = new ArrayList<>(); if(categoryAllDatas == null || categoryAllDatas.size() < 1) return ; for(CategoryChildInfo1 item : categoryAllDatas) categoryFirDatas.add(item.getCategoryInfo()); } //抵制南朝鲜部署萨德,剔除“韩国料理” —— 2017.03.06 public static ArrayList<CategoryChildInfo1> removeBangZi(ArrayList<CategoryChildInfo1> datas){ for(CategoryChildInfo1 item1 : datas){ if(item1.getCategoryInfo().getCtgId().equals("0010001004")){ for(CategoryChildInfo2 item2 : item1.getChilds()){ if(item2.getCategoryInfo().getCtgId().equals("0010001045")){ item1.getChilds().remove(item2); return datas; } } } } return datas; } }