From 9e5babf9db52e64bdae60137be7696e56241fca6 Mon Sep 17 00:00:00 2001 From: xingzilong <xingzilong@454eff88-639b-444f-9e54-f578c98de674> Date: 星期五, 18 八月 2017 18:12:17 +0800 Subject: [PATCH] H264 NALU解析 并在RTSPServer判断 --- VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DictionaryMng.java | 328 ++++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 253 insertions(+), 75 deletions(-) diff --git a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DictionaryMng.java b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DictionaryMng.java index 1b3da89..2dd297c 100644 --- a/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DictionaryMng.java +++ b/VisitFace/DemoForBsk/app/src/main/java/cn/com/basic/face/service/DictionaryMng.java @@ -1,23 +1,32 @@ package cn.com.basic.face.service; -import cn.com.basic.face.dialog.CountryDialog; -import cn.com.basic.face.dialog.SelectDialog; -import cn.com.basic.face.discern.query.item.VistorTypeQueryItem; -import cn.com.basic.face.util.AppApi; +import android.widget.Toast; import org.xutils.http.RequestParams; import org.xutils.x; import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; -import java.util.Map; +import cn.com.basic.face.base.BaseApplication; +import cn.com.basic.face.base.MainActivity; +import cn.com.basic.face.dialog.CountryDialog; +import cn.com.basic.face.dialog.SelectDialog; import cn.com.basic.face.discern.common.BaseCommonCallBack; import cn.com.basic.face.discern.common.CommonVariables; +import cn.com.basic.face.discern.common.SqliteSqlBean; import cn.com.basic.face.discern.entity.Dictionary; +import cn.com.basic.face.discern.query.condition.DictionaryQueryCondition; +import cn.com.basic.face.service.sqlite.DictionaryDao; +import cn.com.basic.face.util.AppApi; +import cn.com.basic.face.util.CharacterParser; +import cn.com.basic.face.util.Constant; +import cn.com.basic.face.util.SqliteSqlUtil; -public class DictionaryMng { +public class DictionaryMng extends BaseMng { public static DictionaryMng instance = new DictionaryMng(); @@ -25,98 +34,267 @@ return instance; } - public Map<String, String> idMap = new HashMap<String, String>(); - - public String getId(String name) { - return idMap.get(name); - } - public void loadAllDictionaryData() { + if (!BaseApplication.deviceAvailable) { + return; + } loadCountries(); loadIdTypeList(); loadGenderList(); loadVisitReasonList(); loadVisitorTypeList(); + loadResolutionList(); + loadProtocolList(); + loadCameraBrandList(); + DepartmentMng.getInstance().loadDepartmentDictionary(); + PostMng.getInstance().loadPostDictionary(); + loadAttenderTypeList(); } public void loadCountries() { - RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.DICTIONARY_TYPE_LIST); - params.addParameter(Dictionary.FieldNames.type, CommonVariables.DictionaryType.COUNTRY); - x.http().get(params, new BaseCommonCallBack() { - public void success() { - List<Dictionary> items = getList(Dictionary.class); - int i=0; - List<String> uniqueFirstLetterList = new ArrayList<String>(); - HashMap<String,List<String>> countriesGroupByFirstLetter = new HashMap<String,List<String>>(); - for (Dictionary item : items) { - idMap.put(item.getName(), item.getId()+""); - String firstLetter = item.getRemark(); - List list = countriesGroupByFirstLetter.get(firstLetter); - if (list == null) { - list = new ArrayList(); - countriesGroupByFirstLetter.put(firstLetter, list); - uniqueFirstLetterList.add(0, firstLetter); - } - list.add(item.getName()); - i++; + if (!BaseApplication.deviceAvailable) { + return; + } + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); + params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.COUNTRY); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().get(params, new BaseCommonCallBack() { + public void success() { + loadCountriesAfterReturn(getList(Dictionary.class)); } - CountryDialog.setCountries(uniqueFirstLetterList, countriesGroupByFirstLetter); + }); + } else { + loadCountriesAfterReturn(DictionaryDao.getInstance().loadCountries()); + } + } + + private void loadCountriesAfterReturn(List<Dictionary> items) { + int i=0; + List<String> uniqueFirstLetterList = new ArrayList<String>(); + HashMap<String,List<String>> countriesGroupByFirstLetter = new HashMap<String,List<String>>(); + sortCountries(items); + for (Dictionary item : items) { + idMap.put(item.getName(), item.getDictId()+""); + + String firstLetter = item.getName(); + if (item.getName().length() > 0) { + firstLetter = CharacterParser.getInstance().getSelling(item.getName()).substring(0, 1).toUpperCase(); + } + List list = countriesGroupByFirstLetter.get(firstLetter); + if (list == null) { + list = new ArrayList(); + countriesGroupByFirstLetter.put(firstLetter, list); + uniqueFirstLetterList.add(0, firstLetter); + } + list.add(item.getName()); + i++; + } + CountryDialog.setCountries(uniqueFirstLetterList, countriesGroupByFirstLetter); + } + + + private void sortCountries(List<Dictionary> countries) { + if (!BaseApplication.deviceAvailable) { + return; + } + Collections.sort(countries, new Comparator<Dictionary>() { + @Override + public int compare(Dictionary t1, Dictionary t2) { + String name1 = t1.getName()==null?"":t1.getName(); + String name2 = t2.getName()==null?"":t2.getName(); + String dept1Name_a = name1.trim(); + String dept1Name_b = name2.trim(); + if (dept1Name_a.length() > 0 && dept1Name_b.length() > 0) { + dept1Name_a = CharacterParser.getInstance().getSelling(name1).toLowerCase(); + dept1Name_b = CharacterParser.getInstance().getSelling(name2).toLowerCase(); + } + return dept1Name_b.compareTo(dept1Name_a); } }); - } public void loadIdTypeList() { - RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.DICTIONARY_TYPE_LIST); - params.addParameter(Dictionary.FieldNames.type, CommonVariables.DictionaryType.ID_TYPE); - x.http().get(params, new BaseCommonCallBack() { - public void success() { - SelectDialog.setIdTypeList(getDictionaryNameList(getList(Dictionary.class))); - } - }); + if (!BaseApplication.deviceAvailable) { + return; + } + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); + params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.ID_TYPE); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().get(params, new BaseCommonCallBack() { + public void success() { + SelectDialog.setIdTypeList(getDictionaryNameList(getList(Dictionary.class))); + } + }); + } else { + SelectDialog.setIdTypeList(getDictionaryNameList(DictionaryDao.getInstance().loadIdTypeList())); + } } private void loadGenderList() { - RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.DICTIONARY_TYPE_LIST); - params.addParameter(Dictionary.FieldNames.type, CommonVariables.DictionaryType.GENDER); - x.http().get(params, new BaseCommonCallBack() { - public void success() { - SelectDialog.setGenderList(getDictionaryNameList(getList(Dictionary.class))); - } - }); - } - - private void loadVisitReasonList() { - RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.DICTIONARY_TYPE_LIST); - params.addParameter(Dictionary.FieldNames.type, CommonVariables.DictionaryType.VISIT_REASON); - x.http().get(params, new BaseCommonCallBack() { - public void success() { - SelectDialog.setVisitReasonList(getDictionaryNameList(getList(Dictionary.class))); - } - }); - } - - public List<String> getDictionaryNameList(List<Dictionary> dictionaryList) { - List nameList = new ArrayList(); - for (Dictionary dictionary : dictionaryList) { - idMap.put(dictionary.getName(), dictionary.getId()+""); - nameList.add(dictionary.getName()); + if (!BaseApplication.deviceAvailable) { + return; } - return nameList; + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); + params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.GENDER); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().get(params, new BaseCommonCallBack() { + public void success() { + SelectDialog.setGenderList(getDictionaryNameList(getList(Dictionary.class))); + } + }); + } else { + SelectDialog.setGenderList(getDictionaryNameList(DictionaryDao.getInstance().loadGenderList())); + } + } + + public void loadVisitReasonList() { + if (!BaseApplication.deviceAvailable) { + return; + } + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); + params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.VISIT_REASON); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().get(params, new BaseCommonCallBack() { + public void success() { + SelectDialog.setVisitReasonList(getDictionaryNameList(getList(Dictionary.class))); + } + }); + } else { + SelectDialog.setVisitReasonList(getDictionaryNameList(DictionaryDao.getInstance().loadVisitReasonList())); + } + } + + public void loadResolutionList() { + if (!BaseApplication.deviceAvailable) { + return; + } + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); + params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.RESOLUTION); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().get(params, new BaseCommonCallBack() { + public void success() { + SelectDialog.setResolutionList(getDictionaryNameList(getList(Dictionary.class))); + } + }); + } else { + SelectDialog.setResolutionList(getDictionaryNameList(DictionaryDao.getInstance().loadResolutionList())); + } + } + + public void loadProtocolList() { + if (!BaseApplication.deviceAvailable) { + return; + } + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); + params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.PROTOCOL); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().get(params, new BaseCommonCallBack() { + public void success() { + SelectDialog.setProtocolList(getDictionaryNameList(getList(Dictionary.class))); + } + }); + } else { + SelectDialog.setProtocolList(getDictionaryNameList(DictionaryDao.getInstance().loadProtocolList())); + } + } + + public void loadCameraBrandList() { + if (!BaseApplication.deviceAvailable) { + return; + } + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); + params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.CAMERA_BRAND); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().get(params, new BaseCommonCallBack() { + public void success() { + SelectDialog.setCameraBrandList(getDictionaryNameList(getList(Dictionary.class))); + } + }); + } else { + SelectDialog.setCameraBrandList(getDictionaryNameList(DictionaryDao.getInstance().loadCameraBrandList())); + } } private void loadVisitorTypeList() { - RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.VISITOR_TYPE_LIST); - x.http().get(params, new BaseCommonCallBack() { - public void success() { - List<String> mVisitorTypeList = new ArrayList<String>(); - for (VistorTypeQueryItem item : getList(VistorTypeQueryItem.class)) { - mVisitorTypeList.add(item.getLabel()); - idMap.put(item.getLabel(), item.getId()+""); + if (!BaseApplication.deviceAvailable) { + return; + } + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); + params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.VISITOR_TYPE); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().get(params, new BaseCommonCallBack() { + public void success() { + SelectDialog.setVisitorTypeList(getDictionaryNameList(getList(Dictionary.class))); } - SelectDialog.setVisitorTypeList(mVisitorTypeList); - } - }); + }); + } else { + SelectDialog.setVisitorTypeList(getDictionaryNameList(DictionaryDao.getInstance().loadVisitorTypeList())); + } + } + + + private void loadAttenderTypeList() { + if (!BaseApplication.deviceAvailable) { + return; + } + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.Query.DICTIONARY_QUERY); + params.addParameter(DictionaryQueryCondition.FieldNames.type, CommonVariables.DictionaryType.ATTENDER_TYPE); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().get(params, new BaseCommonCallBack() { + public void success() { + SelectDialog.setAttenderTypeList(getDictionaryNameList(getList(Dictionary.class))); + } + }); + } else { + SelectDialog.setAttenderTypeList(getDictionaryNameList(DictionaryDao.getInstance().loadAttenderTypeList())); + } + } + + public void addDictionary(final int type, String type1, String name) { + if (!BaseApplication.deviceAvailable) { + return; + } + if (BaseApplication.getInstance().networkAvailable()) { + RequestParams params = new RequestParams(AppApi.BASE_URL +AppApi.DICTIONARY_ADD); + params.addBodyParameter(Dictionary.FieldNames.type, type1); + params.addBodyParameter(Dictionary.FieldNames.name, name); + params.addBodyParameter(Dictionary.FieldNames.orderBy, "10"); + params.addBodyParameter("deviceCompanyId", BaseApplication.getInstance().getAndroidDevice().getCompanyId()); + x.http().post(params, new BaseCommonCallBack() { + public void success() { + SqliteSqlUtil.insert(getExtraList(SqliteSqlBean.class)); + addDictionaryAfterReturn(getList(Dictionary.class), type); + } + }); + } else { + addDictionaryAfterReturn(DictionaryDao.getInstance().addDictionary(type1, name), type); + } + } + + public void addDictionaryAfterReturn(List<Dictionary> list, int type) { + switch (type) { + case Constant.DialogSelectType.VISIT_REASON: + break; + case Constant.DialogSelectType.RESOLUTION: + SelectDialog.setResolutionList(getDictionaryNameList(list)); + break; + case Constant.DialogSelectType.PROTOCOL: + SelectDialog.setProtocolList(getDictionaryNameList(list)); + break; + case Constant.DialogSelectType.CAMERA_BRAND: + SelectDialog.setCameraBrandList(getDictionaryNameList(list)); + break; + } + Toast.makeText(MainActivity.getInstance(), "娣诲姞鎴愬姛", Toast.LENGTH_SHORT).show(); } } -- Gitblit v1.8.0