public ApplicationSettingsReader(string appdir, string filename) { XmlSerializer serializer = new XmlSerializer(typeof(ApplicationSettingRoot)); ApplicationSettingRoot readitems; using (Stream reader = new FileStream(Path.Combine(appdir, filename), FileMode.Open)) { readitems = (ApplicationSettingRoot)serializer.Deserialize(reader); } ConversionLibrary = new Dictionary <string, RealToGameSpaceConversion>(); PathLibrary = new Dictionary <string, string>(); //IconFiles = new Dictionary<string, string>(); PinTypes = new List <MapPinType>(); ShortNameLookup = new Dictionary <string, string>(); ShortNames = new List <string>(); LongNames = new List <string>(); foreach (WorldSetting ws in readitems.worldsettings.Worlds) { string loc = ws.ShortName; ConversionLibrary[loc] = new RealToGameSpaceConversion(ws.conversionsetting.Slope, ws.conversionsetting.xintercept, ws.conversionsetting.yintercept); if (!File.Exists(Path.Combine(appdir, ws.filename))) { throw new FileNotFoundException("Invalid filename"); } PathLibrary[loc] = Path.Combine(appdir, ws.filename); ShortNameLookup[ws.ShortName] = loc; if (ws.AliasShortName != null) { ShortNameLookup[ws.AliasShortName] = ws.ShortName; } LongNames.Add(ws.Name); ShortNames.Add(ws.ShortName); } TypeLookup = new Dictionary <string, MapPinType>(); foreach (IconSetting icset in readitems.iconsettings.Icons) { MapPinType m = new MapPinType(icset.Groupname, icset.InternalName); m.Aliases = icset.Aliases; m.IconFile = icset.ImageName; TypeLookup[icset.InternalName] = m; foreach (string alias in icset.Aliases) { TypeLookup[alias] = m; } PinTypes.Add(m); } largeiconpath = readitems.iconsettings.LargeIconPath; smalliconpath = readitems.iconsettings.SmallIconPath; }
/// <summary> /// Gets the resource ID for the provided pin type. /// </summary> /// <param name="pinType">Pin type to get image resource.</param> /// <returns>Image resource identifier.</returns> private static int GetResourceId(MapPinType pinType) { switch (pinType) { case MapPinType.DropPoint: return(Resource.Drawable.pin_drop_point); case MapPinType.Favorite: return(Resource.Drawable.pin_favorite); case MapPinType.PrimaryFavorite: return(Resource.Drawable.pin_primary_favorite); default: return(Resource.Drawable.pin_vehicle); } }