Skip to content

Commit

Permalink
fix getCompositeIcon crash (#4211)
Browse files Browse the repository at this point in the history
  • Loading branch information
nnngrach authored Dec 17, 2024
1 parent e79f800 commit 13544ad
Show file tree
Hide file tree
Showing 8 changed files with 19 additions and 11 deletions.
4 changes: 2 additions & 2 deletions Sources/Controllers/Map/Layers/OAFavoritesLayer.mm
Original file line number Diff line number Diff line change
Expand Up @@ -166,11 +166,11 @@ + (UIImage *) getImageWithColor:(UIColor *)color background:(NSString *)backgrou

UIImage *shadowImage = [OATargetInfoViewController getIcon:[NSString stringWithFormat:@"ic_bg_point_%@_bottom", background]];
if (!shadowImage)
shadowImage = [OAUtilities tintImageWithColor:[UIImage imageNamed:@"circle"] color:color];
shadowImage = [OAUtilities tintImageWithColor:[UIImage imageNamed:DEFAULT_ICON_SHAPE_KEY] color:color];

UIImage *colorFilledImage = [OAUtilities tintImageWithColor:[UIImage imageNamed:[NSString stringWithFormat:@"ic_bg_point_%@_center", background]] color:color];
if (!colorFilledImage)
colorFilledImage = [OAUtilities tintImageWithColor:[UIImage imageNamed:@"circle"] color:color];
colorFilledImage = [OAUtilities tintImageWithColor:[UIImage imageNamed:DEFAULT_ICON_SHAPE_KEY] color:color];

UIImage *innerImage = [OAUtilities tintImageWithColor:[OATargetInfoViewController getIcon:icon size:innerImageCenterRect.size] color:UIColor.whiteColor];
if (!innerImage)
Expand Down
2 changes: 1 addition & 1 deletion Sources/Controllers/Map/Layers/OAGPXLayer.mm
Original file line number Diff line number Diff line change
Expand Up @@ -1908,7 +1908,7 @@ - (UIImage *) getPointIcon:(id)object
return [OAFavoritesLayer getImageWithColor:point.color background:point.point.getBackgroundType icon:[@"mx_" stringByAppendingString:point.point.getIconName]];
}
OAFavoriteColor *def = [OADefaultFavorite nearestFavColor:OADefaultFavorite.builtinColors.firstObject];
return [OAFavoritesLayer getImageWithColor:def.color background:@"circle" icon:[@"mx_" stringByAppendingString:DEFAULT_ICON_NAME_KEY]];
return [OAFavoritesLayer getImageWithColor:def.color background:DEFAULT_ICON_SHAPE_KEY icon:[@"mx_" stringByAppendingString:DEFAULT_ICON_NAME_KEY]];
}

- (void) setPointVisibility:(id)object hidden:(BOOL)hidden
Expand Down
6 changes: 3 additions & 3 deletions Sources/Controllers/Map/Layers/OAOsmEditsLayer.mm
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ - (void) refreshOsmEditsCollection
if (isNew)
{
bitmap = [OACompoundIconUtils createCompositeIconWithcolor:UIColorFromARGB(color_osm_edit)
shapeName:@"circle"
shapeName:DEFAULT_ICON_SHAPE_KEY
iconName:type.name
isFullSize:YES
icon:type.icon
Expand All @@ -193,7 +193,7 @@ - (void) refreshOsmEditsCollection
if (!bitmap)
{
bitmap = [OACompoundIconUtils createCompositeIconWithcolor:UIColorFromARGB(color_osm_edit)
shapeName:@"circle"
shapeName:DEFAULT_ICON_SHAPE_KEY
iconName:@"ic_custom_poi"
isFullSize:YES
icon:[UIImage imageNamed:@"ic_custom_poi"]
Expand Down Expand Up @@ -370,7 +370,7 @@ - (void)applyNewObjectPosition:(id)object position:(CLLocationCoordinate2D)posit
- (void)getOsmNoteBitmap:(sk_sp<SkImage> &)bitmap
{
UIImage *img = [UIImage mapSvgImageNamed:@"mx_special_information"];
bitmap = [OACompoundIconUtils createCompositeIconWithcolor:UIColorFromARGB(color_osm_edit) shapeName:@"circle" iconName:@"special_information" isFullSize:YES icon:img scale:_textSize];
bitmap = [OACompoundIconUtils createCompositeIconWithcolor:UIColorFromARGB(color_osm_edit) shapeName:DEFAULT_ICON_SHAPE_KEY iconName:@"special_information" isFullSize:YES icon:img scale:_textSize];
}

- (UIImage *) getPointIcon:(id)point
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ - (instancetype)initWithLocation:(CLLocationCoordinate2D)location title:(NSStrin
_iconName = poiIconName;

[p setIconNameIconName:_iconName];
[p setBackgroundTypeBackType:@"circle"];
[p setBackgroundTypeBackType:DEFAULT_ICON_SHAPE_KEY];
[p setAddressAddress:address];
NSDictionary<NSString *, NSString *> *extensions = [poi toTagValue:PRIVATE_PREFIX osmPrefix:OSM_PREFIX_KEY];
[[p getExtensionsToWrite] addEntriesFromDictionary:extensions];
Expand Down
1 change: 1 addition & 0 deletions Sources/GPX/OAGPXDocumentPrimitives.h
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
#define CREATION_TIME_EXTENSION @"creation_date"
#define PICKUP_DATE_EXTENSION @"pickup_date"
#define DEFAULT_ICON_NAME_KEY @"special_star"
#define DEFAULT_ICON_SHAPE_KEY @"circle"
#define PROFILE_TYPE_EXTENSION_KEY @"profile"

#define PRIVATE_PREFIX @"amenity_"
Expand Down
7 changes: 7 additions & 0 deletions Sources/Helpers/OAFavoritesHelper.mm
Original file line number Diff line number Diff line change
Expand Up @@ -1089,6 +1089,13 @@ + (void) removeParkingReminderFromCalendar

+ (UIImage *) getCompositeIcon:(NSString *)icon backgroundIcon:(NSString *)backgroundIcon color:(UIColor *)color
{
if (!icon)
icon = DEFAULT_ICON_NAME_KEY;
if (!backgroundIcon)
backgroundIcon = DEFAULT_ICON_SHAPE_KEY;
if (!color)
color = [OADefaultFavorite getDefaultColor];

UIImage *resultImg;
NSString *backgrounfIconName = [@"bg_point_" stringByAppendingString:backgroundIcon];
UIImage *backgroundImg = [UIImage imageNamed:backgrounfIconName];
Expand Down
4 changes: 2 additions & 2 deletions Sources/Models/OAFavoriteItem.mm
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,7 @@ - (NSString *) getIcon
if (!self.favorite->getIcon().isNull())
_icon = self.favorite->getIcon().toNSString();
else
_icon = @"special_star";
_icon = DEFAULT_ICON_NAME_KEY;
return _icon;
}

Expand All @@ -411,7 +411,7 @@ - (NSString *) getBackgroundIcon
return _backgroundIcon;
}
}
_backgroundIcon = @"circle";
_backgroundIcon = DEFAULT_ICON_SHAPE_KEY;
return _backgroundIcon;
}

Expand Down
4 changes: 2 additions & 2 deletions Sources/Models/OAGpxWptItem.mm
Original file line number Diff line number Diff line change
Expand Up @@ -107,8 +107,8 @@ - (NSUInteger) hash

- (UIImage *) getCompositeIcon
{
NSString *iconName = _point.getIconName ?: @"special_star";
NSString *backgroundIconName = _point.getBackgroundType ?: @"circle";
NSString *iconName = _point.getIconName ?: DEFAULT_ICON_NAME_KEY;
NSString *backgroundIconName = _point.getBackgroundType ?: DEFAULT_ICON_SHAPE_KEY;
return [OAFavoritesHelper getCompositeIcon:iconName backgroundIcon:backgroundIconName color:UIColorFromRGBA([_point getColor])];
}

Expand Down

0 comments on commit 13544ad

Please sign in to comment.