Skip to content

Commit

Permalink
Fix restore for favorites
Browse files Browse the repository at this point in the history
  • Loading branch information
vshcherb committed Jan 17, 2025
1 parent 4fb3167 commit afb4fcf
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 14 deletions.
9 changes: 1 addition & 8 deletions Sources/Helpers/OADefaultFavorite.m
Original file line number Diff line number Diff line change
Expand Up @@ -41,20 +41,13 @@ + (NSArray*)builtinColors
{
if (!colors)
colors = @[
[[OAFavoriteColor alloc] initWithName:OALocalizedString(@"rendering_value_yellow_name") color:UIColorFromRGB(0xEECC22)],
[[OAFavoriteColor alloc] initWithName:OALocalizedString(@"rendering_value_purple_name") color:UIColorFromRGB(0x3F51B5)],

[[OAFavoriteColor alloc] initWithName:OALocalizedString(@"rendering_value_green_name") color:UIColorFromRGB(0x43A047)],

[[OAFavoriteColor alloc] initWithName:OALocalizedString(@"rendering_value_yellow_name") color:UIColorFromRGB(0xffb300)],

[[OAFavoriteColor alloc] initWithName:OALocalizedString(@"rendering_value_orange_name") color:UIColorFromRGB(0xff5722)],

[[OAFavoriteColor alloc] initWithName:OALocalizedString(@"col_gray") color:UIColorFromRGB(0x607d8b)],

[[OAFavoriteColor alloc] initWithName:OALocalizedString(@"rendering_value_red_name") color:UIColorFromRGB(0xe91e63)],

[[OAFavoriteColor alloc] initWithName:OALocalizedString(@"rendering_value_blue_name") color:UIColorFromRGB(0x2196f3)],

[[OAFavoriteColor alloc] initWithName:OALocalizedString(@"shared_string_color_magenta") color:UIColorFromRGB(0x9c27b0)]
];

Expand Down
1 change: 1 addition & 0 deletions Sources/Helpers/OAFavoritesHelper.h
Original file line number Diff line number Diff line change
Expand Up @@ -131,5 +131,6 @@
+ (NSString *) convertDisplayNameToGroupIdName:(NSString *)name;
- (OASGpxUtilitiesPointsGroup *)toPointsGroup;
+ (OAFavoriteGroup *)fromPointsGroup:(OASGpxUtilitiesPointsGroup *)pointsGroup;
- (BOOL)isEqual:(id)object;

@end
30 changes: 24 additions & 6 deletions Sources/Helpers/OAFavoritesHelper.mm
Original file line number Diff line number Diff line change
Expand Up @@ -792,7 +792,6 @@ + (NSArray *) getBackupFiles
NSFileManager *manager = [NSFileManager defaultManager];
NSArray<NSString *> *files = [manager contentsOfDirectoryAtPath:favoritesPath error:nil];

// acquire modification dates
NSMutableArray<NSString *> *result = [NSMutableArray arrayWithCapacity:files.count];
for (NSString* file in files)
if ([file hasSuffix:GPX_FILE_EXT])
Expand Down Expand Up @@ -1163,16 +1162,35 @@ - (instancetype)init
return self;
}

- (BOOL)isEqual:(id)object {
if (self == object) {
return YES;
}

if (![object isKindOfClass:[OAFavoriteGroup class]]) {
return NO;
}

OAFavoriteGroup *otherGroup = (OAFavoriteGroup *)object;
return ([self.name isEqualToString:otherGroup.name] &&
[self.color isEqual:otherGroup.color] &&
self.isVisible == otherGroup.isVisible &&
[self.iconName isEqualToString:otherGroup.iconName] &&
[self.backgroundType isEqualToString:otherGroup.backgroundType] &&
[self.points isEqualToArray:otherGroup.points]);
}


- (instancetype)initWithPoint:(OAFavoriteItem *)point
{
self = [self init];
if (self)
{
_name = [point getCategory];
_color = [point getColor];
_color = [point getInternalColor];
_isVisible = [point isVisible];
_iconName = [point getIcon];
_backgroundType = [point getBackgroundIcon];
_iconName = [point getInternalIcon];
_backgroundType = [point getInternalBackgroundIcon];
}
return self;
}
Expand Down Expand Up @@ -1209,7 +1227,7 @@ - (void) addPoint:(OAFavoriteItem *)point

- (UIColor *) color
{
if ([_color toRGBNumber] != 0)
if (_color != nil && [_color toRGBNumber] != 0)
return [UIColor colorRGB:_color equalToColorRGB:UIColor.whiteColor] ? [OADefaultFavorite getDefaultColor] : _color;
else
return [OADefaultFavorite getDefaultColor];
Expand Down Expand Up @@ -1251,7 +1269,7 @@ + (NSString *) convertDisplayNameToGroupIdName:(NSString *)name

- (OASGpxUtilitiesPointsGroup *)toPointsGroup
{
OASGpxUtilitiesPointsGroup *pointsGroup = [[OASGpxUtilitiesPointsGroup alloc] initWithName:_name iconName:_iconName backgroundType:_backgroundType color:_color.toARGBNumber];
OASGpxUtilitiesPointsGroup *pointsGroup = [[OASGpxUtilitiesPointsGroup alloc] initWithName:_name iconName:_iconName backgroundType:_backgroundType color:[self color].toARGBNumber];
pointsGroup.hidden = !_isVisible;
NSMutableArray<OASWptPt *> *points = [NSMutableArray array];
for (OAFavoriteItem *point in _points)
Expand Down
4 changes: 4 additions & 0 deletions Sources/Models/OAFavoriteItem.h
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,14 @@
- (void) setAddress:(NSString *)address;

- (NSString *) getIcon;
- (NSString *) getInternalIcon;
- (void) setIcon:(NSString *)icon;

- (NSString *) getBackgroundIcon;
- (NSString *) getInternalBackgroundIcon;
- (void) setBackgroundIcon:(NSString *)backgroundIcon;

- (UIColor *) getInternalColor;
- (UIColor *) getColor;
- (void) setColor:(UIColor *)color;

Expand Down Expand Up @@ -103,5 +106,6 @@
+ (OAFavoriteItem *)fromWpt:(OASWptPt *)pt category:(NSString *)category;

- (UIImage *) getCompositeIcon;
- (BOOL)isEqual:(id)object;

@end
24 changes: 24 additions & 0 deletions Sources/Models/OAFavoriteItem.mm
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,13 @@ - (void) setAddress:(NSString *)address
_address = nil;
}

- (NSString *) getInternalIcon
{
if (!self.favorite->getIcon().isNull())
return self.favorite->getIcon().toNSString();
return nil;
}

- (NSString *) getIcon
{
if (_icon)
Expand All @@ -398,6 +405,13 @@ - (void) setIcon:(NSString *)icon
_icon = nil;
}

- (NSString *) getInternalBackgroundIcon
{
if (!self.favorite->getBackground().isNull())
return self.favorite->getBackground().toNSString();
return nil;
}

- (NSString *) getBackgroundIcon
{
if (_backgroundIcon)
Expand All @@ -421,6 +435,16 @@ - (void) setBackgroundIcon:(NSString *)backgroundIcon
_backgroundIcon = nil;
}

- (UIColor *) getInternalColor
{
const auto color = self.favorite->getColor();
if (color.argb != 0)
{
_color = [UIColor colorWithRed:color.r/255.0 green:color.g/255.0 blue:color.b/255.0 alpha:color.a/255.0];
}
return nil;
}

- (UIColor *) getColor
{
if (_color)
Expand Down

0 comments on commit afb4fcf

Please sign in to comment.