From 8503bf9196f9c94086a4c01aefe2a993317a2155 Mon Sep 17 00:00:00 2001 From: VladiMihaylenko Date: Wed, 27 Apr 2016 15:02:28 +0300 Subject: [PATCH] [ios] Fixed bookmarks. --- iphone/Maps/Bookmarks/BookmarkCell.h | 10 --- iphone/Maps/Bookmarks/BookmarkCell.mm | 79 ----------------- iphone/Maps/Bookmarks/BookmarksVC.h | 3 +- iphone/Maps/Bookmarks/BookmarksVC.mm | 95 ++++++++------------- iphone/Maps/Classes/MWMBookmarkNameCell.h | 8 ++ iphone/Maps/Classes/MWMBookmarkNameCell.mm | 22 +++++ iphone/Maps/Classes/MWMBookmarkNameCell.xib | 54 ++++++++++++ iphone/Maps/Maps.xcodeproj/project.pbxproj | 22 +++-- 8 files changed, 133 insertions(+), 160 deletions(-) delete mode 100644 iphone/Maps/Bookmarks/BookmarkCell.h delete mode 100644 iphone/Maps/Bookmarks/BookmarkCell.mm create mode 100644 iphone/Maps/Classes/MWMBookmarkNameCell.h create mode 100644 iphone/Maps/Classes/MWMBookmarkNameCell.mm create mode 100644 iphone/Maps/Classes/MWMBookmarkNameCell.xib diff --git a/iphone/Maps/Bookmarks/BookmarkCell.h b/iphone/Maps/Bookmarks/BookmarkCell.h deleted file mode 100644 index e97a244bd2..0000000000 --- a/iphone/Maps/Bookmarks/BookmarkCell.h +++ /dev/null @@ -1,10 +0,0 @@ -#import "MWMTableViewCell.h" - -@interface BookmarkCell : MWMTableViewCell - -@property (nonatomic, readonly) UILabel * bmName; -@property (nonatomic, readonly) UILabel * bmDistance; - -- (id)initWithReuseIdentifier:(NSString *)identifier; - -@end diff --git a/iphone/Maps/Bookmarks/BookmarkCell.mm b/iphone/Maps/Bookmarks/BookmarkCell.mm deleted file mode 100644 index 9264738d9d..0000000000 --- a/iphone/Maps/Bookmarks/BookmarkCell.mm +++ /dev/null @@ -1,79 +0,0 @@ -#import "BookmarkCell.h" -#import "UIColor+MapsMeColor.h" - -@implementation BookmarkCell - -- (id)initWithReuseIdentifier:(NSString *)identifier -{ - self = [super initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:identifier]; - if (self) - { - _bmName = [[UILabel alloc] init]; - _bmDistance = [[UILabel alloc] init]; - _bmDistance.textAlignment = NSTextAlignmentRight; - - // There is a hack below to get standart fonts and colors. - self.textLabel.text = @"tmpText"; - self.detailTextLabel.text = @"tmpText"; - - [super layoutSubviews]; - - _bmName.font = self.textLabel.font; - _bmName.textColor = [UIColor blackPrimaryText]; - _bmName.backgroundColor = [UIColor clearColor]; - - _bmDistance.font = self.detailTextLabel.font; - _bmDistance.textColor = [UIColor blackHintText]; - _bmDistance.backgroundColor = [UIColor clearColor]; - - self.detailTextLabel.text = nil; - self.textLabel.text = nil; - - [self.contentView addSubview:_bmName]; - [self.contentView addSubview:_bmDistance]; - } - return self; -} - -- (void)layoutSubviews -{ - [super layoutSubviews]; - - CGRect r = self.contentView.bounds; - // Leave some experimentally choosen paddings - CGFloat const KPaddingX = 9.0; - CGFloat const KPaddingBottom = 1.0; - - if (self.imageView.image) - { - CGRect const imgRect = self.imageView.frame; - CGFloat const imgPadding = imgRect.size.width + imgRect.origin.x; - r.origin.x += imgPadding; - r.size.width -= imgPadding; - } - - r.origin.x += KPaddingX; - r.size.width -= 2 * KPaddingX; - r.size.height -= KPaddingBottom; - - // Labels on the right should always fit and be visible, but not more than half of the cell - CGFloat const w = r.size.width; - CGFloat const h = r.size.height; - - CGFloat xDelim = (int)(r.origin.x + w / 2); - if (_bmDistance.text.length) - { - CGSize const distanceTextSize = [_bmDistance.text sizeWithAttributes:@{NSFontAttributeName:_bmDistance.font}]; - if (xDelim + distanceTextSize.width < r.origin.x + w) - xDelim = r.origin.x + w - distanceTextSize.width - KPaddingX; - } - else // Sometimes distance is not available, so use full cell length for the name - { - xDelim = r.origin.x + w - KPaddingX; - } - - _bmName.frame = CGRectMake(r.origin.x, r.origin.y, xDelim - r.origin.x, h); - _bmDistance.frame = CGRectMake(xDelim, r.origin.y, r.origin.x + w - xDelim, h); -} - -@end diff --git a/iphone/Maps/Bookmarks/BookmarksVC.h b/iphone/Maps/Bookmarks/BookmarksVC.h index 7082345c31..e619f92dd0 100644 --- a/iphone/Maps/Bookmarks/BookmarksVC.h +++ b/iphone/Maps/Bookmarks/BookmarksVC.h @@ -3,10 +3,9 @@ @interface BookmarksVC : MWMTableViewController { - LocationManager * m_locationManager; size_t m_categoryIndex; } -- (id)initWithCategory:(size_t)index; +- (instancetype)initWithCategory:(size_t)index; @end diff --git a/iphone/Maps/Bookmarks/BookmarksVC.mm b/iphone/Maps/Bookmarks/BookmarksVC.mm index aabf173daf..c555e1dea8 100644 --- a/iphone/Maps/Bookmarks/BookmarksVC.mm +++ b/iphone/Maps/Bookmarks/BookmarksVC.mm @@ -1,10 +1,10 @@ -#import "BookmarkCell.h" #import "BookmarksVC.h" #import "CircleView.h" #import "ColorPickerView.h" #import "Common.h" #import "MapsAppDelegate.h" #import "MapViewController.h" +#import "MWMBookmarkNameCell.h" #import "MWMMapViewControlsManager.h" #import "Statistics.h" #import "UIColor+MapsMeColor.h" @@ -19,8 +19,6 @@ #include "coding/zip_creator.hpp" #include "coding/internal/file_data.hpp" - -#define TEXTFIELD_TAG 999 #define PINDIAMETER 18 #define EMPTY_SECTION -666 @@ -38,12 +36,11 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi @implementation BookmarksVC -- (id) initWithCategory:(size_t)index +- (instancetype)initWithCategory:(size_t)index { self = [super initWithStyle:UITableViewStyleGrouped]; if (self) { - m_locationManager = [MapsAppDelegate theApp].locationManager; m_categoryIndex = index; self.title = @(GetFramework().GetBmCategory(index)->GetName().c_str()); [self calculateSections]; @@ -51,9 +48,16 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi return self; } -- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation +- (LocationManager *)locationManager { - return YES; + return [MapsAppDelegate theApp].locationManager; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + [self.tableView registerNib:[UINib nibWithNibName:[MWMBookmarkNameCell className] bundle:nil] + forCellReuseIdentifier:[MWMBookmarkNameCell className]]; } - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView @@ -109,39 +113,8 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi { if (indexPath.row == 0) { - cell = [tableView dequeueReusableCellWithIdentifier:@"BookmarksVCSetNameCell"]; - if (!cell) - { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:@"BookmarksVCSetNameCell"]; - cell.textLabel.text = L(@"name"); - cell.selectionStyle = UITableViewCellSelectionStyleNone; - // Temporary, to init font and color - cell.detailTextLabel.text = @"temp string"; - // Called to initialize frames and fonts - [cell layoutIfNeeded]; - CGRect const leftR = cell.textLabel.frame; - CGFloat const padding = leftR.origin.x; - - UITextField * f = [[UITextField alloc] initWithFrame:{{padding + leftR.size.width + padding + leftR.origin.x, - leftR.origin.y}, - {cell.contentView.frame.size.width - 3 * padding - leftR.size.width, - leftR.size.height}}]; - f.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; - f.enablesReturnKeyAutomatically = YES; - f.returnKeyType = UIReturnKeyDone; - f.clearButtonMode = UITextFieldViewModeWhileEditing; - f.autocorrectionType = UITextAutocorrectionTypeNo; - f.textAlignment = NSTextAlignmentRight; - f.textColor = cell.detailTextLabel.textColor; - f.font = [cell.detailTextLabel.font fontWithSize:[cell.detailTextLabel.font pointSize]]; - f.tag = TEXTFIELD_TAG; - f.delegate = self; - f.autocapitalizationType = UITextAutocapitalizationTypeWords; - // Reset temporary font - cell.detailTextLabel.text = nil; - [cell.contentView addSubview:f]; - } - ((UITextField *)[cell.contentView viewWithTag:TEXTFIELD_TAG]).text = @(cat->GetName().c_str()); + cell = [tableView dequeueReusableCellWithIdentifier:[MWMBookmarkNameCell className]]; + [static_cast(cell) configWithName:@(cat->GetName().c_str()) delegate:self]; } else { @@ -180,31 +153,31 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi // Contains bookmarks list else if (indexPath.section == m_bookmarkSection) { - BookmarkCell * bmCell = (BookmarkCell *)[tableView dequeueReusableCellWithIdentifier:@"BookmarksVCBookmarkItemCell"]; + UITableViewCell * bmCell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"BookmarksVCBookmarkItemCell"]; if (!bmCell) - bmCell = [[BookmarkCell alloc] initWithReuseIdentifier:@"BookmarksVCBookmarkItemCell"]; + bmCell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"BookmarksVCBookmarkItemCell"]; Bookmark const * bm = static_cast(cat->GetUserMark(indexPath.row)); if (bm) { - bmCell.bmName.text = @(bm->GetName().c_str()); + bmCell.textLabel.text = @(bm->GetName().c_str()); bmCell.imageView.image = [CircleView createCircleImageWith:PINDIAMETER andColor:[ColorPickerView colorForName:@(bm->GetType().c_str())]]; // Get current position and compass "north" direction double azimut = -1.0; double lat, lon; - if ([m_locationManager getLat:lat Lon:lon]) + if ([self.locationManager getLat:lat Lon:lon]) { double north = -1.0; - [m_locationManager getNorthRad:north]; + [self.locationManager getNorthRad:north]; string distance; fr.GetDistanceAndAzimut(bm->GetPivot(), lat, lon, north, distance, azimut); - bmCell.bmDistance.text = @(distance.c_str()); + bmCell.detailTextLabel.text = @(distance.c_str()); } else - bmCell.bmDistance.text = nil; + bmCell.detailTextLabel.text = nil; } else ASSERT(false, ("NULL bookmark")); @@ -224,7 +197,7 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi } cell.backgroundColor = [UIColor white]; cell.textLabel.textColor = [UIColor blackPrimaryText]; - cell.detailTextLabel.textColor = [UIColor blackHintText]; + cell.detailTextLabel.textColor = [UIColor blackSecondaryText]; return cell; } @@ -363,23 +336,21 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi if (cat) { UITableView * table = (UITableView *)self.view; - NSArray * cells = [table visibleCells]; - for (NSUInteger i = 0; i < cells.count; ++i) + [table.visibleCells enumerateObjectsUsingBlock:^(UITableViewCell * cell, NSUInteger idx, BOOL * stop) { - BookmarkCell * cell = (BookmarkCell *)[cells objectAtIndex:i]; NSIndexPath * indexPath = [table indexPathForCell:cell]; - if (indexPath.section == m_bookmarkSection) + if (indexPath.section == self->m_bookmarkSection) { Bookmark const * bm = static_cast(cat->GetUserMark(indexPath.row)); if (bm) { m2::PointD const center = bm->GetPivot(); double const metres = ms::DistanceOnEarth(info.m_latitude, info.m_longitude, - MercatorBounds::YToLat(center.y), MercatorBounds::XToLon(center.x)); - cell.bmDistance.text = [LocationManager formattedDistance:metres]; + MercatorBounds::YToLat(center.y), MercatorBounds::XToLon(center.x)); + cell.detailTextLabel.text = [LocationManager formattedDistance:metres]; } } - } + }]; } } @@ -388,7 +359,7 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi - (void)viewWillAppear:(BOOL)animated { - [m_locationManager start:self]; + [self.locationManager start:self]; // Display Edit button only if table is not empty BookmarkCategory * cat = GetFramework().GetBmCategory(m_categoryIndex); @@ -415,13 +386,15 @@ extern NSString * const kBookmarksChangedNotification = @"BookmarksChangedNotifi - (void)viewWillDisappear:(BOOL)animated { - [m_locationManager stop:self]; + [self.locationManager stop:self]; // Save possibly edited set name UITableViewCell * cell = [self.tableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]]; - NSString * newName = ((UITextField *)[cell.contentView viewWithTag:TEXTFIELD_TAG]).text; - if (newName) - [self renameBMCategoryIfChanged:newName]; - + if ([cell isKindOfClass:[MWMBookmarkNameCell class]]) + { + NSString * newName = static_cast(cell).currentName; + if (newName) + [self renameBMCategoryIfChanged:newName]; + } [super viewWillDisappear:animated]; } diff --git a/iphone/Maps/Classes/MWMBookmarkNameCell.h b/iphone/Maps/Classes/MWMBookmarkNameCell.h new file mode 100644 index 0000000000..d4bf89fca2 --- /dev/null +++ b/iphone/Maps/Classes/MWMBookmarkNameCell.h @@ -0,0 +1,8 @@ +#import "MWMTableViewCell.h" + +@interface MWMBookmarkNameCell : MWMTableViewCell + +- (void)configWithName:(NSString *)name delegate:(id)delegate; +- (NSString *)currentName; + +@end diff --git a/iphone/Maps/Classes/MWMBookmarkNameCell.mm b/iphone/Maps/Classes/MWMBookmarkNameCell.mm new file mode 100644 index 0000000000..b65539df48 --- /dev/null +++ b/iphone/Maps/Classes/MWMBookmarkNameCell.mm @@ -0,0 +1,22 @@ +#import "MWMBookmarkNameCell.h" + +@interface MWMBookmarkNameCell () + +@property (weak, nonatomic) IBOutlet UITextField * nameField; + +@end + +@implementation MWMBookmarkNameCell + +- (void)configWithName:(NSString *)name delegate:(id)delegate +{ + self.nameField.text = name; + self.nameField.delegate = delegate; +} + +- (NSString *)currentName +{ + return self.nameField.text; +} + +@end diff --git a/iphone/Maps/Classes/MWMBookmarkNameCell.xib b/iphone/Maps/Classes/MWMBookmarkNameCell.xib new file mode 100644 index 0000000000..95923de3be --- /dev/null +++ b/iphone/Maps/Classes/MWMBookmarkNameCell.xib @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/iphone/Maps/Maps.xcodeproj/project.pbxproj b/iphone/Maps/Maps.xcodeproj/project.pbxproj index ffc005758e..006d816fbc 100644 --- a/iphone/Maps/Maps.xcodeproj/project.pbxproj +++ b/iphone/Maps/Maps.xcodeproj/project.pbxproj @@ -485,7 +485,6 @@ 6741AA041BF340DE002C974C /* MWMNavigationDashboardManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 3497A9371B5CF8A900F51E55 /* MWMNavigationDashboardManager.mm */; }; 6741AA061BF340DE002C974C /* MWMSearchHistoryRequestCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34B82AB81B837FFD00180497 /* MWMSearchHistoryRequestCell.mm */; }; 6741AA071BF340DE002C974C /* MWMBottomMenuLayout.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34BAB6E81BB2DA0C00DB941B /* MWMBottomMenuLayout.mm */; }; - 6741AA091BF340DE002C974C /* BookmarkCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F785EB3F16386FC4003A38A8 /* BookmarkCell.mm */; }; 6741AA0A1BF340DE002C974C /* MWMBottomMenuCollectionViewCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34BAB6EB1BB2DFCE00DB941B /* MWMBottomMenuCollectionViewCell.mm */; }; 6741AA0B1BF340DE002C974C /* MWMMapViewControlsManager.mm in Sources */ = {isa = PBXBuildFile; fileRef = 34BC72111B0DECAE0012A34B /* MWMMapViewControlsManager.mm */; }; 6741AA0C1BF340DE002C974C /* MWMNavigationDashboard.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BD33761B62400E00F2CE18 /* MWMNavigationDashboard.mm */; }; @@ -733,6 +732,10 @@ F6AD57BD1C870A3C00CED368 /* MWMEditorCategoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6AD57BC1C870A3C00CED368 /* MWMEditorCategoryCell.xib */; }; F6AD57BE1C870A3C00CED368 /* MWMEditorCategoryCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6AD57BC1C870A3C00CED368 /* MWMEditorCategoryCell.xib */; }; F6B2E61F1C3D5F31005562DF /* MWMNightModeController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6B2E61E1C3D5F31005562DF /* MWMNightModeController.mm */; }; + F6B97B261CD0CA990009B612 /* MWMBookmarkNameCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6B97B251CD0CA990009B612 /* MWMBookmarkNameCell.mm */; }; + F6B97B271CD0CA990009B612 /* MWMBookmarkNameCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6B97B251CD0CA990009B612 /* MWMBookmarkNameCell.mm */; }; + F6B97B291CD0CB170009B612 /* MWMBookmarkNameCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6B97B281CD0CB170009B612 /* MWMBookmarkNameCell.xib */; }; + F6B97B2A1CD0CB170009B612 /* MWMBookmarkNameCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6B97B281CD0CB170009B612 /* MWMBookmarkNameCell.xib */; }; F6BB6CBE1BB15A5E00DF1DF2 /* MWMRoutePreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BB6CBD1BB15A5E00DF1DF2 /* MWMRoutePreview.xib */; }; F6BB6CC01BB17D7000DF1DF2 /* MWMRoutePointCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BB6CBF1BB17D7000DF1DF2 /* MWMRoutePointCell.xib */; }; F6BB6CC31BB1860D00DF1DF2 /* MWMRoutePointLayout.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6BB6CC21BB1860D00DF1DF2 /* MWMRoutePointLayout.mm */; }; @@ -795,7 +798,6 @@ F6FEA82D1C58E89B007223CC /* MWMButton.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FEA82C1C58E89B007223CC /* MWMButton.mm */; }; F6FEA82E1C58F108007223CC /* MWMButton.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FEA82C1C58E89B007223CC /* MWMButton.mm */; }; F6FF2E2B1B8C5C020063FD1F /* MWMNextTurnPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6FF2E2A1B8C5C020063FD1F /* MWMNextTurnPanel.xib */; }; - F785EB4016386FC4003A38A8 /* BookmarkCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F785EB3F16386FC4003A38A8 /* BookmarkCell.mm */; }; FA054612155C465E001F4E37 /* SelectSetVC.mm in Sources */ = {isa = PBXBuildFile; fileRef = FA054611155C465E001F4E37 /* SelectSetVC.mm */; }; FA29FDAA141E77F8004ADF66 /* Preferences.mm in Sources */ = {isa = PBXBuildFile; fileRef = FA29FDA9141E77F8004ADF66 /* Preferences.mm */; }; FA36B80D15403A4F004560CC /* BookmarksVC.mm in Sources */ = {isa = PBXBuildFile; fileRef = FA36B80615403A4F004560CC /* BookmarksVC.mm */; }; @@ -1421,6 +1423,9 @@ F6AD57BC1C870A3C00CED368 /* MWMEditorCategoryCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMEditorCategoryCell.xib; sourceTree = ""; }; F6B2E61D1C3D5F31005562DF /* MWMNightModeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNightModeController.h; sourceTree = ""; }; F6B2E61E1C3D5F31005562DF /* MWMNightModeController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMNightModeController.mm; sourceTree = ""; }; + F6B97B241CD0CA990009B612 /* MWMBookmarkNameCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMBookmarkNameCell.h; sourceTree = ""; }; + F6B97B251CD0CA990009B612 /* MWMBookmarkNameCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMBookmarkNameCell.mm; sourceTree = ""; }; + F6B97B281CD0CB170009B612 /* MWMBookmarkNameCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMBookmarkNameCell.xib; sourceTree = ""; }; F6BB6CBD1BB15A5E00DF1DF2 /* MWMRoutePreview.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMRoutePreview.xib; sourceTree = ""; }; F6BB6CBF1BB17D7000DF1DF2 /* MWMRoutePointCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMRoutePointCell.xib; sourceTree = ""; }; F6BB6CC11BB1860D00DF1DF2 /* MWMRoutePointLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMRoutePointLayout.h; sourceTree = ""; }; @@ -1502,8 +1507,6 @@ F6FEA82B1C58E89B007223CC /* MWMButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMButton.h; sourceTree = ""; }; F6FEA82C1C58E89B007223CC /* MWMButton.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMButton.mm; sourceTree = ""; }; F6FF2E2A1B8C5C020063FD1F /* MWMNextTurnPanel.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMNextTurnPanel.xib; sourceTree = ""; }; - F785EB3E16386FC4003A38A8 /* BookmarkCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BookmarkCell.h; path = Bookmarks/BookmarkCell.h; sourceTree = SOURCE_ROOT; }; - F785EB3F16386FC4003A38A8 /* BookmarkCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = BookmarkCell.mm; path = Bookmarks/BookmarkCell.mm; sourceTree = SOURCE_ROOT; }; F7DD848414FE77F8005695E1 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; F7DD848514FE7C7F005695E1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = ""; }; F7DD848614FE7FE0005695E1 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; @@ -3039,14 +3042,15 @@ FA36B8011540388B004560CC /* Bookmarks */ = { isa = PBXGroup; children = ( - F785EB3E16386FC4003A38A8 /* BookmarkCell.h */, - F785EB3F16386FC4003A38A8 /* BookmarkCell.mm */, FAA614B6155F16950031C345 /* AddSetVC.h */, FAA614B7155F16950031C345 /* AddSetVC.mm */, FA054610155C465E001F4E37 /* SelectSetVC.h */, FA054611155C465E001F4E37 /* SelectSetVC.mm */, FA36B80515403A4F004560CC /* BookmarksVC.h */, FA36B80615403A4F004560CC /* BookmarksVC.mm */, + F6B97B241CD0CA990009B612 /* MWMBookmarkNameCell.h */, + F6B97B251CD0CA990009B612 /* MWMBookmarkNameCell.mm */, + F6B97B281CD0CB170009B612 /* MWMBookmarkNameCell.xib */, FAAEA7D4161D8D3100CCD661 /* BookmarksRootVC.h */, FAAEA7D3161D8D3100CCD661 /* BookmarksRootVC.mm */, 34D15BA51BD8F93C00C8BCBE /* AddSetTableViewCell.h */, @@ -3311,6 +3315,7 @@ F6FE2C111B03A016009814AA /* PlacePageNavigationBar.xib in Resources */, F61579361AC2CEB60032D8E9 /* MWMRateAlert.xib in Resources */, 845C891F1C78748000940D7F /* me.maps.enterprise.entitlements in Resources */, + F6B97B291CD0CB170009B612 /* MWMBookmarkNameCell.xib in Resources */, 347FD8791C60B2CE002FB65E /* MWMOpeningHoursDaysSelectorTableViewCell.xib in Resources */, 34CD81D31C92AD4D007D2A60 /* Welcome.storyboard in Resources */, 34634B1B1BB42D270013573C /* MWMBottomMenuCollectionViewLandscapeCell.xib in Resources */, @@ -3456,6 +3461,7 @@ 6741A97C1BF340DE002C974C /* MWMBookmarkColorCell.xib in Resources */, 6741A97D1BF340DE002C974C /* synonyms.txt in Resources */, 6741A97E1BF340DE002C974C /* drules_proto_dark.bin in Resources */, + F6B97B2A1CD0CB170009B612 /* MWMBookmarkNameCell.xib in Resources */, 6741A97F1BF340DE002C974C /* resources-mdpi_clear in Resources */, 6741A9801BF340DE002C974C /* PlacePageNavigationBar.xib in Resources */, 3401CD791C3CED1E0028C6F8 /* MWMEditorSelectTableViewCell.xib in Resources */, @@ -3684,7 +3690,6 @@ 345FDD261C3BB3AF0070C459 /* MWMEditorViewController.mm in Sources */, 34B82ABA1B837FFD00180497 /* MWMSearchHistoryRequestCell.mm in Sources */, 34BAB6E91BB2DA0C00DB941B /* MWMBottomMenuLayout.mm in Sources */, - F785EB4016386FC4003A38A8 /* BookmarkCell.mm in Sources */, 34BAB6ED1BB2DFCE00DB941B /* MWMBottomMenuCollectionViewCell.mm in Sources */, 34CCFDE01C22A2EF00F28959 /* MWMPlacePageOpeningHoursCell.mm in Sources */, 341F99E11C6B1165001C67B8 /* MWMMapDownloaderTableViewCell.mm in Sources */, @@ -3694,6 +3699,7 @@ F6BD1D201CA412920047B8E8 /* MWMOsmAuthAlert.mm in Sources */, 347FD8891C60B2CE002FB65E /* MWMOpeningHoursTimeSpanTableViewCell.mm in Sources */, 34CD81C31C91C281007D2A60 /* MWMWhatsNewNightModeController.mm in Sources */, + F6B97B261CD0CA990009B612 /* MWMBookmarkNameCell.mm in Sources */, 974D041D1977DE430081D0A7 /* LocalNotificationManager.mm in Sources */, 97C98522186AE3CF00AF7E9E /* AppInfo.mm in Sources */, F6A750B91BE8C74400981B41 /* MWMSearchHistoryMyPositionCell.mm in Sources */, @@ -3896,7 +3902,6 @@ 6741AA071BF340DE002C974C /* MWMBottomMenuLayout.mm in Sources */, 3401CD771C3CED1E0028C6F8 /* MWMEditorSelectTableViewCell.mm in Sources */, 345FDD271C3BB3AF0070C459 /* MWMEditorViewController.mm in Sources */, - 6741AA091BF340DE002C974C /* BookmarkCell.mm in Sources */, 6741AA0A1BF340DE002C974C /* MWMBottomMenuCollectionViewCell.mm in Sources */, 34181EBA1C0ED1C30081B586 /* MWMOpeningHoursSection.mm in Sources */, 341F99E21C6B1165001C67B8 /* MWMMapDownloaderTableViewCell.mm in Sources */, @@ -3910,6 +3915,7 @@ 6741AA0F1BF340DE002C974C /* MWMSearchHistoryMyPositionCell.mm in Sources */, 34CD81C41C91C281007D2A60 /* MWMWhatsNewNightModeController.mm in Sources */, 6741AA101BF340DE002C974C /* SelectableCell.mm in Sources */, + F6B97B271CD0CA990009B612 /* MWMBookmarkNameCell.mm in Sources */, 6741AA111BF340DE002C974C /* MWMSearchCategoriesManager.mm in Sources */, 34ABA6211C2D517500FE1BEC /* MWMInputValidator.mm in Sources */, 34CD81D11C92A884007D2A60 /* MWMPageControllerDataSource.mm in Sources */,