[ios] Fixed bookmarks.

This commit is contained in:
VladiMihaylenko 2016-04-27 15:02:28 +03:00 committed by Alex Zolotarev
parent 48179a4e46
commit 8503bf9196
8 changed files with 133 additions and 160 deletions

View file

@ -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

View file

@ -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

View file

@ -3,10 +3,9 @@
@interface BookmarksVC : MWMTableViewController <LocationObserver, UITextFieldDelegate>
{
LocationManager * m_locationManager;
size_t m_categoryIndex;
}
- (id)initWithCategory:(size_t)index;
- (instancetype)initWithCategory:(size_t)index;
@end

View file

@ -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<MWMBookmarkNameCell *>(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<Bookmark const *>(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<Bookmark const *>(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<MWMBookmarkNameCell *>(cell).currentName;
if (newName)
[self renameBMCategoryIfChanged:newName];
}
[super viewWillDisappear:animated];
}

View file

@ -0,0 +1,8 @@
#import "MWMTableViewCell.h"
@interface MWMBookmarkNameCell : MWMTableViewCell
- (void)configWithName:(NSString *)name delegate:(id<UITextFieldDelegate>)delegate;
- (NSString *)currentName;
@end

View file

@ -0,0 +1,22 @@
#import "MWMBookmarkNameCell.h"
@interface MWMBookmarkNameCell ()
@property (weak, nonatomic) IBOutlet UITextField * nameField;
@end
@implementation MWMBookmarkNameCell
- (void)configWithName:(NSString *)name delegate:(id<UITextFieldDelegate>)delegate
{
self.nameField.text = name;
self.nameField.delegate = delegate;
}
- (NSString *)currentName
{
return self.nameField.text;
}
@end

View file

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
<dependencies>
<deployment identifier="iOS"/>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
</dependencies>
<objects>
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="XcA-Lf-TNj" customClass="MWMBookmarkNameCell">
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
<autoresizingMask key="autoresizingMask"/>
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="XcA-Lf-TNj" id="JSP-hB-p5v">
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
<autoresizingMask key="autoresizingMask"/>
<subviews>
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="501" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="42" translatesAutoresizingMaskIntoConstraints="NO" id="y2T-Xq-sVO">
<rect key="frame" x="22" y="0.0" width="42" height="43"/>
<fontDescription key="fontDescription" type="system" pointSize="17"/>
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
<nil key="highlightedColor"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="name"/>
</userDefinedRuntimeAttributes>
</label>
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalCompressionResistancePriority="499" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="right" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="xxY-3p-j42">
<rect key="frame" x="74" y="0.0" width="224" height="43"/>
<fontDescription key="fontDescription" type="system" pointSize="14"/>
<textInputTraits key="textInputTraits" autocapitalizationType="words" autocorrectionType="no" returnKeyType="done" enablesReturnKeyAutomatically="YES"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
</userDefinedRuntimeAttributes>
</textField>
</subviews>
<constraints>
<constraint firstItem="xxY-3p-j42" firstAttribute="top" secondItem="JSP-hB-p5v" secondAttribute="top" id="6fa-DN-Nt8"/>
<constraint firstAttribute="bottom" secondItem="y2T-Xq-sVO" secondAttribute="bottom" id="R50-3P-oI3"/>
<constraint firstAttribute="trailing" secondItem="xxY-3p-j42" secondAttribute="trailing" constant="22" id="YOB-YM-Gwe"/>
<constraint firstItem="y2T-Xq-sVO" firstAttribute="leading" secondItem="JSP-hB-p5v" secondAttribute="leading" constant="22" id="ck1-pn-8sB"/>
<constraint firstItem="xxY-3p-j42" firstAttribute="leading" secondItem="y2T-Xq-sVO" secondAttribute="trailing" constant="10" id="o7X-28-JJd"/>
<constraint firstAttribute="bottom" secondItem="xxY-3p-j42" secondAttribute="bottom" id="tlR-WZ-ZEy"/>
<constraint firstItem="y2T-Xq-sVO" firstAttribute="top" secondItem="JSP-hB-p5v" secondAttribute="top" id="uv3-ZQ-lXe"/>
</constraints>
</tableViewCellContentView>
<connections>
<outlet property="nameField" destination="xxY-3p-j42" id="dtT-Hn-kcC"/>
</connections>
<point key="canvasLocation" x="288" y="287"/>
</tableViewCell>
</objects>
</document>

View file

@ -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 = "<group>"; };
F6B2E61D1C3D5F31005562DF /* MWMNightModeController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNightModeController.h; sourceTree = "<group>"; };
F6B2E61E1C3D5F31005562DF /* MWMNightModeController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMNightModeController.mm; sourceTree = "<group>"; };
F6B97B241CD0CA990009B612 /* MWMBookmarkNameCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMBookmarkNameCell.h; sourceTree = "<group>"; };
F6B97B251CD0CA990009B612 /* MWMBookmarkNameCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMBookmarkNameCell.mm; sourceTree = "<group>"; };
F6B97B281CD0CB170009B612 /* MWMBookmarkNameCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMBookmarkNameCell.xib; sourceTree = "<group>"; };
F6BB6CBD1BB15A5E00DF1DF2 /* MWMRoutePreview.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMRoutePreview.xib; sourceTree = "<group>"; };
F6BB6CBF1BB17D7000DF1DF2 /* MWMRoutePointCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMRoutePointCell.xib; sourceTree = "<group>"; };
F6BB6CC11BB1860D00DF1DF2 /* MWMRoutePointLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMRoutePointLayout.h; sourceTree = "<group>"; };
@ -1502,8 +1507,6 @@
F6FEA82B1C58E89B007223CC /* MWMButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMButton.h; sourceTree = "<group>"; };
F6FEA82C1C58E89B007223CC /* MWMButton.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMButton.mm; sourceTree = "<group>"; };
F6FF2E2A1B8C5C020063FD1F /* MWMNextTurnPanel.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMNextTurnPanel.xib; sourceTree = "<group>"; };
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 = "<group>"; };
F7DD848514FE7C7F005695E1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/Localizable.strings; sourceTree = "<group>"; };
F7DD848614FE7FE0005695E1 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
@ -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 */,