package org.pccpa; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.SortedMap; import java.util.TreeMap; import org.pccpa.api.Client; import org.pccpa.api.Contact; import org.pccpa.api.InnerMsg; import org.pccpa.api.LoginLog; import org.pccpa.api.SiteSynRunnable; import android.content.Context; import com.kull.android.SQLiteOrmHelper; public enum DB { backup,local; public SQLiteOrmHelper createSqLiteOrmHelper(Context context){ return new SQLiteOrmHelper(context,this.name()); } public boolean initDB(Context context) { SQLiteOrmHelper sqLiteOrmHelper=createSqLiteOrmHelper(context); try{ sqLiteOrmHelper.count(Contact.class); sqLiteOrmHelper.count(LoginLog.class); sqLiteOrmHelper.count(InnerMsg.class); }catch(Exception ex){ sqLiteOrmHelper.replaceTable(Contact.class,LoginLog.class,InnerMsg.class); //SiteSynRunnable siteSynRunnable=new SiteSynRunnable(context); //new Thread(siteSynRunnable).start(); return true; } return false; } public List<Contact> selectAreaContacts(Context context,String areaid) throws Exception{ SQLiteOrmHelper sqLiteOrmHelper=createSqLiteOrmHelper(context); //sqLiteOrmHelper.createTable(Contact.class); List<Contact> contacts=new ArrayList<Contact>(); contacts=sqLiteOrmHelper.select(Contact.class, new String[]{"*"} ,"areaid = ?" ,new String[]{areaid} ,"" ,"" ,"dorderno asc,eorderno asc" ); return contacts; } public List<Contact> selectAreaRankContacts(Context context,String areaid,String rankid) throws Exception{ SQLiteOrmHelper sqLiteOrmHelper=createSqLiteOrmHelper(context); //sqLiteOrmHelper.createTable(Contact.class); List<Contact> contacts=new ArrayList<Contact>(); contacts=sqLiteOrmHelper.select(Contact.class, new String[]{"*"} ,"areaid = ? and rankid=?" ,new String[]{areaid,rankid} ,"" ,"" ,"dorderno asc,eorderno asc" ); return contacts; } public List<Contact> selectDeptContacts(Context context,String deptid) throws Exception{ SQLiteOrmHelper sqLiteOrmHelper=createSqLiteOrmHelper(context); //sqLiteOrmHelper.createTable(Contact.class); List<Contact> contacts=new ArrayList<Contact>(); contacts=sqLiteOrmHelper.select(Contact.class, new String[]{"*"} ,"departid = ?" ,new String[]{deptid} ,"" ,"" ,"eorderno asc" ); return contacts; } public SortedMap<String,Area> selectArea(Context context) throws Exception{ SQLiteOrmHelper sqLiteOrmHelper=createSqLiteOrmHelper(context); SortedMap<String,Area> areas=new TreeMap<String,DB.Area>(); List<Contact> depts=sqLiteOrmHelper.select(Contact.class, new String[]{"AreaId","AreaName","DepartId","DepartName"} ,"" ,new String[]{} ,"departid" ,"" ,"aorderno asc,dorderno asc" ); for(Contact dept :depts){ if(!areas.containsKey(dept.getAreaID())){ Area area=new Area(); area.areaId=dept.getAreaID(); area.areaName=dept.getAreaName(); areas.put(area.areaId, area); } Area area=areas.get(dept.getAreaID()); Dept d=new Dept(); d.deptId=dept.getDepartID(); d.deptName=dept.getDepartName(); d.areaName=dept.getAreaName(); area.depts.put(d.deptId, d); } return areas; } public class Area{ private Area(){} private String areaId,areaName; private SortedMap<String,Dept> depts=new TreeMap<String, DB.Dept>(); public String getAreaId() { return areaId; } public String getAreaName() { return areaName; } public SortedMap<String, Dept> getDepts() { return depts; } } public class Dept{ private Dept(){} private String deptId,deptName,areaName; public String getDeptId() { return deptId; } public String getDeptName() { return deptName; } public String getAreaName() { return areaName; } } }