package cn.com.basic.face.util;
|
|
import android.content.Context;
|
import android.content.res.AssetManager;
|
|
import cn.com.basic.face.model.CountryModel;
|
import cn.com.basic.face.model.CountrysModel;
|
|
import java.io.InputStream;
|
import java.util.Arrays;
|
import java.util.HashMap;
|
import java.util.List;
|
import java.util.Map;
|
|
import javax.xml.parsers.SAXParser;
|
import javax.xml.parsers.SAXParserFactory;
|
|
/**
|
* Created by Sinoe on 2017/2/28.
|
*/
|
|
public class CountryPresenter {
|
|
protected String mCurrentCountrysWord;
|
protected String mCurrentCountryName;
|
protected String[] mCountryWordDatas;
|
protected Map<String, String[]> mCountryDatasMap = new HashMap<>();
|
|
private Context mContext;
|
|
public CountryPresenter(Context mContext) {
|
this.mContext = mContext;
|
initCountrys();
|
}
|
|
private void initCountrys() {
|
List<CountrysModel> countrysModelList = null;
|
AssetManager asset = mContext.getAssets();
|
try {
|
InputStream input = asset.open("countrys.xml");
|
SAXParserFactory spf = SAXParserFactory.newInstance();
|
SAXParser parser = spf.newSAXParser();
|
XmlParserHandler handler = new XmlParserHandler();
|
parser.parse(input, handler);
|
input.close();
|
countrysModelList = handler.getDataList();
|
if (countrysModelList != null && !countrysModelList.isEmpty()) {
|
mCurrentCountrysWord = countrysModelList.get(0).getName();
|
List<CountryModel> countryList = countrysModelList.get(0).getCountryModelList();
|
if (countryList != null && !countryList.isEmpty()) {
|
mCurrentCountryName = countryList.get(0).getName();
|
}
|
}
|
mCountryWordDatas = new String[countrysModelList.size()];
|
for (int i = 0; i < countrysModelList.size(); i++) {
|
mCountryWordDatas[i] = countrysModelList.get(i).getName();
|
List<CountryModel> countryModelList = countrysModelList.get(i).getCountryModelList();
|
String[] CountryNames = new String[countryModelList.size()];
|
for (int j = 0; j < countryModelList.size(); j++) {
|
CountryNames[j] = countryModelList.get(j).getName();
|
}
|
mCountryDatasMap.put(countrysModelList.get(i).getName(), CountryNames);
|
}
|
} catch (Throwable e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
public String[] getCountryWordData() {
|
if (mCountryWordDatas == null) {
|
initCountrys();
|
}
|
return mCountryWordDatas;
|
}
|
public HashMap<String, List<String>> getCountryData() {
|
HashMap<String, List<String>> cityDataMap = new HashMap<>();
|
if (mCountryDatasMap == null) {
|
initCountrys();
|
}
|
for (int i = 0; i < mCountryDatasMap.size(); i++) {
|
String[] cities = mCountryDatasMap.get(mCountryWordDatas[i]);
|
if (cities == null) {
|
cities = new String[]{""};
|
}
|
cityDataMap.put(mCountryWordDatas[i], Arrays.asList(cities));
|
}
|
return cityDataMap;
|
}
|
}
|