package com.robert.maps.applib.preference; import java.io.InputStream; import java.util.ArrayList; import javax.xml.parsers.SAXParser; import javax.xml.parsers.SAXParserFactory; import android.database.Cursor; import android.os.Bundle; import android.preference.PreferenceActivity; import com.robert.maps.applib.R; import com.robert.maps.applib.kml.PoiManager; import com.robert.maps.applib.kml.XMLparser.PredefMapsParser; import com.robert.maps.applib.kml.constants.PoiConstants; public class MMPreferenceActivity extends PreferenceActivity implements PoiConstants { public static final String MAPID = "mapid"; public static final String MAPPROJECTION = "mapprojection"; public static final String OVERLAYID = "overlayid"; public static final String OVERLAYPROJECTION = "overlayprojection"; public static final String OVERLAYOPAQUE = "overlayopaque"; public static final String PREF_MIXMAPS_ = "PREF_MIXMAPS_"; public static final String BASEURL = "baseurl"; public static final String ISOVERLAY = "isoverlay"; public static final String ONLINECACHE = "onlinecache"; public static final String STRETCH = "stretch"; protected PoiManager mPoiManager; protected MapHelper mMapHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mPoiManager = new PoiManager(this); mMapHelper = new MapHelper(); } @Override protected void onDestroy() { mPoiManager.FreeDatabases(); super.onDestroy(); } protected class MapHelper { public long ID; public String NAME; public int TYPE; public String PARAMS; public void getMap(long id) { ID = 0; NAME = ""; TYPE = 0; PARAMS = ""; Cursor c = MMPreferenceActivity.this.mPoiManager.getGeoDatabase().getMap(id); if(c != null) { if(c.moveToFirst()) { ID = id; NAME = c.getString(1); TYPE = c.getInt(2); PARAMS = c.getString(3); } c.close(); } } public void updateMap() { MMPreferenceActivity.this.mPoiManager.getGeoDatabase().updateMap(ID, NAME, TYPE, PARAMS); } } protected String[][] getMaps(final boolean aGetMaps, final boolean aGetOverlays, final int aProjection) { ArrayList<String> arr1 = new ArrayList<String>(); ArrayList<String> arr2 = new ArrayList<String>(); final SAXParserFactory fac = SAXParserFactory.newInstance(); SAXParser parser = null; try { parser = fac.newSAXParser(); if(parser != null){ final InputStream in = getResources().openRawResource(R.raw.predefmaps); parser.parse(in, new PredefMapsParser(arr1, arr2, aGetMaps, aGetOverlays, aProjection)); String[][] arrayList = new String[2][arr2.size()]; arr1.toArray(arrayList[0]); arr2.toArray(arrayList[1]); return arrayList; } } catch (Exception e) { e.printStackTrace(); } return null; } }