forked from organicmaps/organicmaps-tmp
Merge pull request #2917 from VladiMihaylenko/master
[ios] Editor big update.
This commit is contained in:
commit
b896b4ee26
49 changed files with 1001 additions and 445 deletions
|
@ -1,8 +1,8 @@
|
|||
// Default drop down which dismiss automaticaly after 3 seconds.
|
||||
@interface MWMDropDown : NSObject
|
||||
|
||||
- (instancetype)initWithSuperview:(UIView *)view;
|
||||
- (void)showWithMessage:(NSString *)message;
|
||||
- (void)dismiss;
|
||||
|
||||
- (instancetype)init __attribute__((unavailable("call -initWithSuperview: instead!")));
|
||||
+ (instancetype)new __attribute__((unavailable("call -initWithSuperview: instead!")));
|
||||
|
|
|
@ -89,6 +89,11 @@ CGFloat const kTopOffset = 25.;
|
|||
self.dropDown.alpha = 1.;
|
||||
self.dropDown.origin = {};
|
||||
}];
|
||||
|
||||
[self performAfterDelay:3 block:^
|
||||
{
|
||||
[self dismiss];
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9531" systemVersion="15A284" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9529"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner" customClass="MWMDropDown">
|
||||
|
@ -19,20 +19,16 @@
|
|||
<rect key="frame" x="16" y="25" width="288" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="textColor" white="1" alpha="0.69999999999999996" colorSpace="calibratedWhite"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="whitePrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.80000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="simulatedStatusBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="blackStatusBarBackground"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="message" destination="vvR-dC-0Hv" id="YVS-gC-WLP"/>
|
||||
</connections>
|
||||
|
|
|
@ -36,6 +36,9 @@
|
|||
- (void)presentDownloaderNotEnoughSpaceAlert;
|
||||
- (void)presentDownloaderInternalErrorAlertWithOkBlock:(nonnull TMWMVoidBlock)okBlock cancelBlock:(nonnull TMWMVoidBlock)cancelBlock;
|
||||
- (void)presentDownloaderNeedUpdateAlertWithOkBlock:(nonnull TMWMVoidBlock)okBlock;
|
||||
- (void)presentPlaceDoesntExistAlertWithBlock:(nonnull MWMStringBlock)block;
|
||||
- (void)presentResetChangesAlertWithBlock:(nonnull TMWMVoidBlock)block;
|
||||
- (void)presentDeleteFeatureAlertWithBlock:(nonnull TMWMVoidBlock)block;
|
||||
- (void)presentEditorViralAlert;
|
||||
- (void)presentOsmAuthAlert;
|
||||
- (void)closeAlert;
|
||||
|
|
|
@ -178,6 +178,21 @@ static NSString * const kAlertControllerNibIdentifier = @"MWMAlertViewController
|
|||
[self displayAlert:[MWMAlert downloaderNeedUpdateAlertWithOkBlock:okBlock]];
|
||||
}
|
||||
|
||||
- (void)presentPlaceDoesntExistAlertWithBlock:(MWMStringBlock)block
|
||||
{
|
||||
[self displayAlert:[MWMAlert placeDoesntExistAlertWithBlock:block]];
|
||||
}
|
||||
|
||||
- (void)presentResetChangesAlertWithBlock:(TMWMVoidBlock)block
|
||||
{
|
||||
[self displayAlert:[MWMAlert resetChangesAlertWithBlock:block]];
|
||||
}
|
||||
|
||||
- (void)presentDeleteFeatureAlertWithBlock:(TMWMVoidBlock)block
|
||||
{
|
||||
[self displayAlert:[MWMAlert deleteFeatureAlertWithBlock:block]];
|
||||
}
|
||||
|
||||
- (void)presentEditorViralAlert
|
||||
{
|
||||
[self displayAlert:[MWMAlert editorViralAlert]];
|
||||
|
|
|
@ -36,6 +36,9 @@ using TMWMDownloadBlock = void (^)(storage::TCountriesVec const &, TMWMVoidBlock
|
|||
+ (MWMAlert *)downloaderNotEnoughSpaceAlert;
|
||||
+ (MWMAlert *)downloaderInternalErrorAlertWithOkBlock:(TMWMVoidBlock)okBlock cancelBlock:(TMWMVoidBlock)cancelBlock;
|
||||
+ (MWMAlert *)downloaderNeedUpdateAlertWithOkBlock:(TMWMVoidBlock)okBlock;
|
||||
+ (MWMAlert *)placeDoesntExistAlertWithBlock:(MWMStringBlock)block;
|
||||
+ (MWMAlert *)resetChangesAlertWithBlock:(TMWMVoidBlock)block;
|
||||
+ (MWMAlert *)deleteFeatureAlertWithBlock:(TMWMVoidBlock)block;
|
||||
+ (MWMAlert *)editorViralAlert;
|
||||
+ (MWMAlert *)osmAuthAlert;
|
||||
- (void)close;
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
#import "MWMLocationAlert.h"
|
||||
#import "MWMOsmAuthAlert.h"
|
||||
#import "MWMPedestrianShareAlert.h"
|
||||
#import "MWMPlaceDoesntExistAlert.h"
|
||||
#import "MWMRateAlert.h"
|
||||
#import "MWMRoutingDisclaimerAlert.h"
|
||||
|
||||
|
@ -163,6 +164,21 @@
|
|||
return [MWMDefaultAlert downloaderNeedUpdateAlertWithOkBlock:okBlock];
|
||||
}
|
||||
|
||||
+ (MWMAlert *)placeDoesntExistAlertWithBlock:(MWMStringBlock)block
|
||||
{
|
||||
return [MWMPlaceDoesntExistAlert alertWithBlock:block];
|
||||
}
|
||||
|
||||
+ (MWMAlert *)resetChangesAlertWithBlock:(TMWMVoidBlock)block
|
||||
{
|
||||
return [MWMDefaultAlert resetChangesAlertWithBlock:block];
|
||||
}
|
||||
|
||||
+ (MWMAlert *)deleteFeatureAlertWithBlock:(TMWMVoidBlock)block
|
||||
{
|
||||
return [MWMDefaultAlert resetChangesAlertWithBlock:block];
|
||||
}
|
||||
|
||||
+ (MWMAlert *)editorViralAlert
|
||||
{
|
||||
return [MWMEditorViralAlert alert];
|
||||
|
|
|
@ -26,5 +26,7 @@
|
|||
+ (instancetype)downloaderInternalErrorAlertWithOkBlock:(TMWMVoidBlock)okBlock cancelBlock:(TMWMVoidBlock)cancelBlock;
|
||||
+ (instancetype)downloaderNeedUpdateAlertWithOkBlock:(TMWMVoidBlock)okBlock;
|
||||
+ (instancetype)routingMigrationAlertWithOkBlock:(TMWMVoidBlock)okBlock;
|
||||
+ (instancetype)resetChangesAlertWithBlock:(TMWMVoidBlock)block;
|
||||
+ (instancetype)deleteFeatureAlertWithBlock:(TMWMVoidBlock)block;
|
||||
|
||||
@end
|
||||
|
|
|
@ -319,6 +319,28 @@ static NSString * const kDefaultAlertNibName = @"MWMDefaultAlert";
|
|||
return alert;
|
||||
}
|
||||
|
||||
+ (instancetype)resetChangesAlertWithBlock:(TMWMVoidBlock)block
|
||||
{
|
||||
kStatisticsEvent = @"Reset changes alert";
|
||||
MWMDefaultAlert * alert = [self defaultAlertWithTitle:@"editor_reset_edits_message"
|
||||
message:nil
|
||||
rightButtonTitle:@"editor_reset_edits_button"
|
||||
leftButtonTitle:@"cancel"
|
||||
rightButtonAction:block];
|
||||
return alert;
|
||||
}
|
||||
|
||||
+ (instancetype)deleteFeatureAlertWithBlock:(TMWMVoidBlock)block
|
||||
{
|
||||
kStatisticsEvent = @"Delete feature alert";
|
||||
MWMDefaultAlert * alert = [self defaultAlertWithTitle:@"editor_remove_place_message"
|
||||
message:nil
|
||||
rightButtonTitle:@"editor_remove_place_button"
|
||||
leftButtonTitle:@"cancel"
|
||||
rightButtonAction:block];
|
||||
return alert;
|
||||
}
|
||||
|
||||
+ (instancetype)defaultAlertWithTitle:(nonnull NSString *)title
|
||||
message:(nullable NSString *)message
|
||||
rightButtonTitle:(nonnull NSString *)rightButtonTitle
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
#import "MWMAlert.h"
|
||||
|
||||
@interface MWMPlaceDoesntExistAlert : MWMAlert
|
||||
|
||||
+ (instancetype)alertWithBlock:(MWMStringBlock)block;
|
||||
|
||||
@end
|
93
iphone/Maps/Classes/CustomAlert/MWMPlaceDoesntExistAlert.mm
Normal file
93
iphone/Maps/Classes/CustomAlert/MWMPlaceDoesntExistAlert.mm
Normal file
|
@ -0,0 +1,93 @@
|
|||
#import "MWMPlaceDoesntExistAlert.h"
|
||||
|
||||
// This private class needs for change default text field's content inset.
|
||||
@interface _MWMTextField : UITextField
|
||||
|
||||
@end
|
||||
|
||||
@implementation _MWMTextField
|
||||
|
||||
// placeholder position
|
||||
- (CGRect)textRectForBounds:(CGRect)bounds
|
||||
{
|
||||
return CGRectInset(bounds, 4, 4);
|
||||
}
|
||||
|
||||
// text position
|
||||
- (CGRect)editingRectForBounds:(CGRect)bounds
|
||||
{
|
||||
return CGRectInset(bounds, 4, 4);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@interface MWMPlaceDoesntExistAlert ()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UITextField * textField;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * centerHorizontaly;
|
||||
@property (copy, nonatomic) MWMStringBlock block;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMPlaceDoesntExistAlert
|
||||
|
||||
+ (instancetype)alertWithBlock:(MWMStringBlock)block
|
||||
{
|
||||
MWMPlaceDoesntExistAlert * alert = [[[NSBundle mainBundle] loadNibNamed:[MWMPlaceDoesntExistAlert className] owner:nil
|
||||
options:nil] firstObject];
|
||||
alert.block = block;
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:alert
|
||||
selector:@selector(keyboardWillShow:)
|
||||
name:UIKeyboardWillShowNotification
|
||||
object:nil];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver:alert
|
||||
selector:@selector(keyboardWillHide:)
|
||||
name:UIKeyboardWillHideNotification
|
||||
object:nil];
|
||||
return alert;
|
||||
}
|
||||
|
||||
- (IBAction)rightButtonTap
|
||||
{
|
||||
[self.textField resignFirstResponder];
|
||||
[self close];
|
||||
self.block(self.textField.text);
|
||||
}
|
||||
|
||||
- (IBAction)leftButtonTap
|
||||
{
|
||||
[self.textField resignFirstResponder];
|
||||
[self close];
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
}
|
||||
|
||||
- (void)keyboardWillShow:(NSNotification *)notification
|
||||
{
|
||||
CGFloat const keyboardHeight = [notification.userInfo[UIKeyboardFrameBeginUserInfoKey] CGRectValue].size.height;
|
||||
NSNumber * rate = notification.userInfo[UIKeyboardAnimationDurationUserInfoKey];
|
||||
[self setNeedsLayout];
|
||||
self.centerHorizontaly.constant = - keyboardHeight / 2;
|
||||
[UIView animateWithDuration:rate.floatValue animations:^
|
||||
{
|
||||
[self layoutIfNeeded];
|
||||
}];
|
||||
}
|
||||
|
||||
- (void)keyboardWillHide:(NSNotification *)notification
|
||||
{
|
||||
NSNumber * rate = notification.userInfo[UIKeyboardAnimationDurationUserInfoKey];
|
||||
[self setNeedsLayout];
|
||||
self.centerHorizontaly.constant = 0;
|
||||
[UIView animateWithDuration:rate.floatValue animations:^
|
||||
{
|
||||
[self layoutIfNeeded];
|
||||
}];
|
||||
}
|
||||
|
||||
@end
|
193
iphone/Maps/Classes/CustomAlert/MWMPlaceDoesntExistAlert.xib
Normal file
193
iphone/Maps/Classes/CustomAlert/MWMPlaceDoesntExistAlert.xib
Normal file
|
@ -0,0 +1,193 @@
|
|||
<?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 version="2048" identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<customFonts key="customFonts">
|
||||
<mutableArray key="HelveticaNeue.ttc">
|
||||
<string>HelveticaNeue-Medium</string>
|
||||
<string>HelveticaNeue-Medium</string>
|
||||
</mutableArray>
|
||||
</customFonts>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
|
||||
<view contentMode="scaleToFill" id="bh1-8l-voy" customClass="MWMPlaceDoesntExistAlert">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxX="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="XjH-qf-m6h" userLabel="ContainerView">
|
||||
<rect key="frame" x="20" y="201" width="280" height="166"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Title" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NwN-e5-YQR" userLabel="Title">
|
||||
<rect key="frame" x="20" y="20" width="240" height="22"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="240" id="Bz8-HZ-yfK"/>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="22" id="JWn-Ze-jrX"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="18"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium18"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="editor_place_doesnt_exist"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Message" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="VvH-Bb-fV9" userLabel="Message">
|
||||
<rect key="frame" x="20" y="54" width="240" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="240" id="Gau-b5-VxP"/>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="20" id="VWx-20-JCg"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="14"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="0.54000000000000004" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="editor_notes_write_additional_info"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="0f8-vD-nJT" customClass="_MWMTextField">
|
||||
<rect key="frame" x="16" y="86" width="249" height="24"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="24" id="C7T-xQ-Aui"/>
|
||||
<constraint firstAttribute="width" constant="249" id="pFJ-Ry-C0u"/>
|
||||
</constraints>
|
||||
<edgeInsets key="layoutMargins" top="4" left="4" bottom="4" right="4"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedPlaceholder" value="editor_notes_comment"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="_placeholderLabel.colorName" value="blackHintText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="layer.borderUIColor">
|
||||
<color key="value" red="0.0" green="0.0" blue="0.0" alpha="0.12" colorSpace="calibratedRGB"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.borderWidth">
|
||||
<real key="value" value="0.5"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textField>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="kEx-DM-ynC" userLabel="hDivider">
|
||||
<rect key="frame" x="0.0" y="122" width="280" height="1"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.12" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="1" id="JKX-3f-YE4"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="blackDividers"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zaM-0A-71d" userLabel="left">
|
||||
<rect key="frame" x="0.0" y="122" width="140" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="JRt-9h-Ljb"/>
|
||||
<constraint firstAttribute="width" constant="140" id="y86-N4-bGg"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<state key="normal" title="left">
|
||||
<color key="titleColor" red="0.090196078430000007" green="0.61960784310000006" blue="0.30196078430000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="cancel"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium17"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="leftButtonTap" destination="bh1-8l-voy" eventType="touchUpInside" id="Ge7-Dx-Pf3"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="MkK-sG-n6m" userLabel="right">
|
||||
<rect key="frame" x="140" y="122" width="140" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="2ra-bP-J3a"/>
|
||||
<constraint firstAttribute="width" constant="140" id="pNb-5U-J8Z"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue-Medium" family="Helvetica Neue" pointSize="17"/>
|
||||
<state key="normal" title="right">
|
||||
<color key="titleColor" red="0.090196078430000007" green="0.61960784310000006" blue="0.30196078430000001" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</state>
|
||||
<state key="highlighted" backgroundImage="dialog_btn_press"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="editor_report_problem_send_button"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="medium17"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="rightButtonTap" destination="bh1-8l-voy" eventType="touchUpInside" id="4FZ-zi-TAB"/>
|
||||
</connections>
|
||||
</button>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Tyn-yU-dk3" userLabel="vDivider">
|
||||
<rect key="frame" x="139" y="122" width="1" height="44"/>
|
||||
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.12" colorSpace="calibratedRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="1" id="Bva-2f-zNE"/>
|
||||
<constraint firstAttribute="height" constant="44" id="jEO-cN-3PZ"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="blackDividers"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="MkK-sG-n6m" secondAttribute="trailing" id="21Y-zv-8JR"/>
|
||||
<constraint firstItem="NwN-e5-YQR" firstAttribute="top" secondItem="XjH-qf-m6h" secondAttribute="top" constant="20" id="6pQ-wv-c4Z"/>
|
||||
<constraint firstItem="VvH-Bb-fV9" firstAttribute="top" secondItem="NwN-e5-YQR" secondAttribute="bottom" constant="12" id="EAW-Ft-SfJ"/>
|
||||
<constraint firstAttribute="bottom" secondItem="MkK-sG-n6m" secondAttribute="bottom" id="K0E-y1-z0P"/>
|
||||
<constraint firstAttribute="bottom" secondItem="zaM-0A-71d" secondAttribute="bottom" id="KzG-74-cDe"/>
|
||||
<constraint firstItem="kEx-DM-ynC" firstAttribute="width" secondItem="XjH-qf-m6h" secondAttribute="width" id="Ldw-GJ-Ulm"/>
|
||||
<constraint firstItem="0f8-vD-nJT" firstAttribute="top" secondItem="VvH-Bb-fV9" secondAttribute="bottom" constant="12" id="LhK-01-SkA"/>
|
||||
<constraint firstAttribute="bottom" secondItem="Tyn-yU-dk3" secondAttribute="bottom" id="Mb3-VE-bBR"/>
|
||||
<constraint firstItem="Tyn-yU-dk3" firstAttribute="centerX" secondItem="XjH-qf-m6h" secondAttribute="centerX" id="PkD-5c-ltY"/>
|
||||
<constraint firstItem="zaM-0A-71d" firstAttribute="leading" secondItem="XjH-qf-m6h" secondAttribute="leading" id="RCZ-fs-HwM"/>
|
||||
<constraint firstItem="NwN-e5-YQR" firstAttribute="centerX" secondItem="XjH-qf-m6h" secondAttribute="centerX" id="ZbO-Kn-lsV"/>
|
||||
<constraint firstItem="zaM-0A-71d" firstAttribute="top" secondItem="kEx-DM-ynC" secondAttribute="bottom" constant="-1" id="cPx-SM-J1B"/>
|
||||
<constraint firstItem="kEx-DM-ynC" firstAttribute="top" secondItem="0f8-vD-nJT" secondAttribute="bottom" constant="12" id="kX8-Lm-Oyt"/>
|
||||
<constraint firstItem="VvH-Bb-fV9" firstAttribute="centerX" secondItem="XjH-qf-m6h" secondAttribute="centerX" id="mPb-7n-Ns1"/>
|
||||
<constraint firstAttribute="width" constant="280" id="uve-xM-xfj"/>
|
||||
<constraint firstItem="kEx-DM-ynC" firstAttribute="centerX" secondItem="XjH-qf-m6h" secondAttribute="centerX" id="vop-cl-2u7"/>
|
||||
<constraint firstItem="0f8-vD-nJT" firstAttribute="centerX" secondItem="XjH-qf-m6h" secondAttribute="centerX" id="xds-vV-Goi"/>
|
||||
</constraints>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="size" keyPath="layer.shadowOffset">
|
||||
<size key="value" width="0.0" height="3"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="color" keyPath="layer.shadowUIColor">
|
||||
<color key="value" red="0.89625308390000002" green="0.0" blue="0.0" alpha="0.22" colorSpace="calibratedRGB"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.shadowRadius">
|
||||
<integer key="value" value="6"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="number" keyPath="layer.cornerRadius">
|
||||
<integer key="value" value="12"/>
|
||||
</userDefinedRuntimeAttribute>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="alertBackground"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="XjH-qf-m6h" firstAttribute="centerX" secondItem="bh1-8l-voy" secondAttribute="centerX" id="Ez4-IC-X2C"/>
|
||||
<constraint firstItem="XjH-qf-m6h" firstAttribute="centerY" secondItem="bh1-8l-voy" secondAttribute="centerY" id="ihl-fu-ac9"/>
|
||||
</constraints>
|
||||
<connections>
|
||||
<outlet property="centerHorizontaly" destination="ihl-fu-ac9" id="f11-9c-PMh"/>
|
||||
<outlet property="textField" destination="0f8-vD-nJT" id="tm8-Pb-b1x"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="305" y="172"/>
|
||||
</view>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="dialog_btn_press" width="280" height="44"/>
|
||||
</resources>
|
||||
</document>
|
|
@ -61,9 +61,9 @@ vector<string> SliceKeys(vector<pair<string, string>> const & v)
|
|||
|
||||
- (void)keyboardWillShow:(NSNotification *)notification
|
||||
{
|
||||
CGSize const keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
|
||||
CGSize const keyboardSize = [notification.userInfo[UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
|
||||
CGFloat const bottomInset = UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]) ?
|
||||
keyboardSize.height : keyboardSize.width;
|
||||
keyboardSize.height : keyboardSize.width;
|
||||
|
||||
UIEdgeInsets const contentInsets = {.bottom = bottomInset};
|
||||
|
||||
|
|
|
@ -3,6 +3,11 @@
|
|||
#import "UIColor+MapsMeColor.h"
|
||||
#import "UIImageView+Coloring.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
CGFloat const kDetailShortRightSpace = 16;
|
||||
} // namespace
|
||||
|
||||
@interface MWMEditorCategoryCell ()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIImageView * accessoryIcon;
|
||||
|
@ -27,7 +32,7 @@
|
|||
else
|
||||
{
|
||||
self.selectionStyle = UITableViewCellSelectionStyleNone;
|
||||
self.detailRightSpace.constant -= self.accessoryIcon.width / 2;
|
||||
self.detailRightSpace.constant = kDetailShortRightSpace;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES">
|
||||
<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="9530"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
|
@ -26,7 +25,7 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Jfx-Kc-WOc">
|
||||
<rect key="frame" x="16" y="12" width="218" height="20"/>
|
||||
<rect key="frame" x="16" y="12" width="226" height="20"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="50" id="BaE-rI-CN2"/>
|
||||
<constraint firstAttribute="height" constant="20" id="oLW-um-5dA"/>
|
||||
|
@ -41,12 +40,12 @@
|
|||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="501" verticalHuggingPriority="251" text="Label" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qrd-hP-nIJ">
|
||||
<rect key="frame" x="242" y="12" width="42" height="21"/>
|
||||
<rect key="frame" x="250" y="12" width="42" height="21"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="21" id="hsO-dV-WsY"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
|
@ -64,7 +63,7 @@
|
|||
<constraint firstItem="Jfx-Kc-WOc" firstAttribute="leading" secondItem="mWc-I7-4kZ" secondAttribute="leading" constant="16" id="5lg-6C-NQt"/>
|
||||
<constraint firstItem="qrd-hP-nIJ" firstAttribute="leading" secondItem="Jfx-Kc-WOc" secondAttribute="trailing" constant="8" id="ETn-mX-ysj"/>
|
||||
<constraint firstItem="Jfx-Kc-WOc" firstAttribute="centerY" secondItem="mWc-I7-4kZ" secondAttribute="centerY" id="P6u-UL-5f7"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="qrd-hP-nIJ" secondAttribute="trailing" constant="28" id="Rwj-G9-EoG"/>
|
||||
<constraint firstAttribute="trailing" secondItem="qrd-hP-nIJ" secondAttribute="trailing" constant="28" id="Rwj-G9-EoG"/>
|
||||
<constraint firstAttribute="trailing" secondItem="uA3-ru-Ja1" secondAttribute="trailing" constant="6" id="byM-mn-aQu"/>
|
||||
<constraint firstItem="uA3-ru-Ja1" firstAttribute="centerY" secondItem="mWc-I7-4kZ" secondAttribute="centerY" id="sVc-Kt-8ZX"/>
|
||||
<constraint firstItem="qrd-hP-nIJ" firstAttribute="centerY" secondItem="mWc-I7-4kZ" secondAttribute="centerY" id="wSH-Lz-TEL"/>
|
||||
|
|
|
@ -8,7 +8,4 @@
|
|||
- (void)cellSelect:(UITableViewCell *)cell;
|
||||
- (void)tryToChangeInvalidStateForCell:(MWMEditorTextTableViewCell *)cell;
|
||||
|
||||
@optional
|
||||
- (void)fieldIsCorrect:(BOOL)isCorrect;
|
||||
|
||||
@end
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
<capability name="Constraints to layout margins" minToolsVersion="6.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
|
@ -28,8 +28,13 @@
|
|||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="name"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<variation key="default">
|
||||
<mask key="constraints">
|
||||
<exclude reference="Vyq-1r-IrP"/>
|
||||
</mask>
|
||||
</variation>
|
||||
</label>
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="XnK-GX-uDn">
|
||||
<textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" horizontalCompressionResistancePriority="499" contentHorizontalAlignment="left" contentVerticalAlignment="center" textAlignment="natural" minimumFontSize="17" clearButtonMode="whileEditing" translatesAutoresizingMaskIntoConstraints="NO" id="XnK-GX-uDn">
|
||||
<rect key="frame" x="74" y="11" width="230" height="21"/>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<textInputTraits key="textInputTraits"/>
|
||||
|
|
5
iphone/Maps/Classes/Editor/MWMEditorNotesFooter.h
Normal file
5
iphone/Maps/Classes/Editor/MWMEditorNotesFooter.h
Normal file
|
@ -0,0 +1,5 @@
|
|||
@interface MWMEditorNotesFooter : UIView
|
||||
|
||||
+ (instancetype)footer;
|
||||
|
||||
@end
|
24
iphone/Maps/Classes/Editor/MWMEditorNotesFooter.mm
Normal file
24
iphone/Maps/Classes/Editor/MWMEditorNotesFooter.mm
Normal file
|
@ -0,0 +1,24 @@
|
|||
#import "MWMEditorNotesFooter.h"
|
||||
|
||||
@implementation MWMEditorNotesFooter
|
||||
|
||||
+ (instancetype)footer
|
||||
{
|
||||
MWMEditorNotesFooter * f = [[[NSBundle mainBundle] loadNibNamed:[MWMEditorNotesFooter className] owner:nil options:nil]
|
||||
firstObject];
|
||||
[f setNeedsLayout];
|
||||
[f layoutIfNeeded];
|
||||
NSAssert(f.subviews.firstObject, @"Subviews can't be empty!");
|
||||
f.height = f.subviews.firstObject.height;
|
||||
return f;
|
||||
}
|
||||
|
||||
- (IBAction)osmTap
|
||||
{
|
||||
NSURL * url = [NSURL URLWithString:@"https://www.openstreetmap.org/about"];
|
||||
UIApplication * app = [UIApplication sharedApplication];
|
||||
if ([app canOpenURL:url])
|
||||
[app openURL:url];
|
||||
}
|
||||
|
||||
@end
|
72
iphone/Maps/Classes/Editor/MWMEditorNotesFooter.xib
Normal file
72
iphone/Maps/Classes/Editor/MWMEditorNotesFooter.xib
Normal file
|
@ -0,0 +1,72 @@
|
|||
<?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"/>
|
||||
<view contentMode="scaleToFill" id="IBb-39-rly" customClass="MWMEditorNotesFooter">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="144"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="xcv-fG-OmU">
|
||||
<rect key="frame" x="0.0" y="-15" width="320" height="173"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="natural" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="288" translatesAutoresizingMaskIntoConstraints="NO" id="vxr-iR-qGP">
|
||||
<rect key="frame" x="16" y="0.0" width="288" height="143"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" relation="greaterThanOrEqual" constant="21" id="q02-z4-K9S"/>
|
||||
</constraints>
|
||||
<string key="text">Предложенные вами изменения на карте будут отправлены в OpenStreetMap. Если у вас есть дополнительные сведения об объекте, которые MAPS.ME не может позволить отредактировать, напишите о них.</string>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackSecondaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="editor_will_be_sent_message"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="60F-c7-enR">
|
||||
<rect key="frame" x="16" y="151" width="288" height="16"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="16" id="lB5-ya-sBr"/>
|
||||
</constraints>
|
||||
<state key="normal" title="Button"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="editor_more_about_osm"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular14"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorHighlightedName" value="linkBlueHighlighted"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="osmTap" destination="IBb-39-rly" eventType="touchUpInside" id="EjN-0s-Ycy"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="60F-c7-enR" secondAttribute="trailing" constant="16" id="dTB-mL-e3M"/>
|
||||
<constraint firstItem="vxr-iR-qGP" firstAttribute="leading" secondItem="xcv-fG-OmU" secondAttribute="leading" constant="16" id="g35-I7-Ct4"/>
|
||||
<constraint firstItem="60F-c7-enR" firstAttribute="leading" secondItem="xcv-fG-OmU" secondAttribute="leading" constant="16" id="iiZ-Je-sn7"/>
|
||||
<constraint firstItem="60F-c7-enR" firstAttribute="top" secondItem="vxr-iR-qGP" secondAttribute="bottom" constant="8" id="r8W-qV-Dd0"/>
|
||||
<constraint firstItem="vxr-iR-qGP" firstAttribute="top" secondItem="xcv-fG-OmU" secondAttribute="top" id="tP9-HJ-DDm"/>
|
||||
<constraint firstAttribute="trailing" secondItem="vxr-iR-qGP" secondAttribute="trailing" constant="16" id="wPA-fe-5a9"/>
|
||||
<constraint firstAttribute="bottom" secondItem="60F-c7-enR" secondAttribute="bottom" constant="6" id="ylg-M3-Ejt"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstItem="xcv-fG-OmU" firstAttribute="centerY" secondItem="IBb-39-rly" secondAttribute="centerY" id="FeQ-eT-FSb"/>
|
||||
<constraint firstItem="xcv-fG-OmU" firstAttribute="centerX" secondItem="IBb-39-rly" secondAttribute="centerX" id="HR2-4M-jr2"/>
|
||||
<constraint firstItem="xcv-fG-OmU" firstAttribute="width" secondItem="IBb-39-rly" secondAttribute="width" id="das-TJ-zih"/>
|
||||
</constraints>
|
||||
<nil key="simulatedTopBarMetrics"/>
|
||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||
<point key="canvasLocation" x="452" y="465"/>
|
||||
</view>
|
||||
</objects>
|
||||
</document>
|
|
@ -29,7 +29,7 @@
|
|||
<rect key="frame" x="60" y="0.0" width="252" height="28"/>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="28" id="P3n-mD-g5V"/>
|
||||
<constraint firstAttribute="height" priority="750" constant="28" id="P3n-mD-g5V"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
|
||||
|
|
|
@ -1,14 +1,19 @@
|
|||
#import "MapsAppDelegate.h"
|
||||
#import "MWMAlertViewController.h"
|
||||
#import "MWMAuthorizationCommon.h"
|
||||
#import "MWMCuisineEditorViewController.h"
|
||||
#import "MWMDropDown.h"
|
||||
#import "MWMEditorCategoryCell.h"
|
||||
#import "MWMEditorCommon.h"
|
||||
#import "MWMEditorNotesFooter.h"
|
||||
#import "MWMEditorSelectTableViewCell.h"
|
||||
#import "MWMEditorSwitchTableViewCell.h"
|
||||
#import "MWMEditorTextTableViewCell.h"
|
||||
#import "MWMEditorViewController.h"
|
||||
#import "MWMNoteCell.h"
|
||||
#import "MWMObjectsCategorySelectorController.h"
|
||||
#import "MWMOpeningHoursEditorViewController.h"
|
||||
#import "MWMNoteButtonCell.h"
|
||||
#import "MWMPlacePageEntity.h"
|
||||
#import "MWMPlacePageOpeningHoursCell.h"
|
||||
#import "MWMStreetEditorViewController.h"
|
||||
|
@ -25,22 +30,27 @@ NSString * const kOpeningHoursEditorSegue = @"Editor2OpeningHoursEditorSegue";
|
|||
NSString * const kCuisineEditorSegue = @"Editor2CuisineEditorSegue";
|
||||
NSString * const kStreetEditorSegue = @"Editor2StreetEditorSegue";
|
||||
NSString * const kCategoryEditorSegue = @"Editor2CategoryEditorSegue";
|
||||
CGFloat const kDefaultFooterHeight = 32.;
|
||||
|
||||
typedef NS_ENUM(NSUInteger, MWMEditorSection)
|
||||
{
|
||||
MWMEditorSectionCategory,
|
||||
MWMEditorSectionName,
|
||||
MWMEditorSectionAddress,
|
||||
MWMEditorSectionDetails
|
||||
MWMEditorSectionDetails,
|
||||
MWMEditorSectionNote,
|
||||
MWMEditorSectionButton
|
||||
};
|
||||
|
||||
vector<MWMPlacePageCellType> const kSectionCategoryCellTypes{MWMPlacePageCellTypeCategory};
|
||||
|
||||
vector<MWMPlacePageCellType> const kSectionNameCellTypes{MWMPlacePageCellTypeName};
|
||||
|
||||
vector<MWMPlacePageCellType> const kSectionAddressCellTypes{
|
||||
MWMPlacePageCellTypeStreet, MWMPlacePageCellTypeBuilding, MWMPlacePageCellTypeZipCode};
|
||||
|
||||
vector<MWMPlacePageCellType> const kSectionNoteCellTypes{MWMPlacePageCellTypeNote};
|
||||
vector<MWMPlacePageCellType> const kSectionButtonCellTypes{MWMPlacePageCellTypeReportButton};
|
||||
|
||||
MWMPlacePageCellTypeValueMap const kCellType2ReuseIdentifier{
|
||||
{MWMPlacePageCellTypeCategory, "MWMEditorCategoryCell"},
|
||||
{MWMPlacePageCellTypeName, "MWMEditorNameTableViewCell"},
|
||||
|
@ -54,7 +64,9 @@ MWMPlacePageCellTypeValueMap const kCellType2ReuseIdentifier{
|
|||
{MWMPlacePageCellTypeEmail, "MWMEditorTextTableViewCell"},
|
||||
{MWMPlacePageCellTypeOperator, "MWMEditorTextTableViewCell"},
|
||||
{MWMPlacePageCellTypeCuisine, "MWMEditorSelectTableViewCell"},
|
||||
{MWMPlacePageCellTypeWiFi, "MWMEditorSwitchTableViewCell"}};
|
||||
{MWMPlacePageCellTypeWiFi, "MWMEditorSwitchTableViewCell"},
|
||||
{MWMPlacePageCellTypeNote, "MWMNoteCell"},
|
||||
{MWMPlacePageCellTypeReportButton, "MWMNoteButtonCell"}};
|
||||
|
||||
NSString * reuseIdentifier(MWMPlacePageCellType cellType)
|
||||
{
|
||||
|
@ -122,10 +134,14 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
UITextFieldDelegate, MWMOpeningHoursEditorProtocol,
|
||||
MWMPlacePageOpeningHoursCellProtocol,
|
||||
MWMEditorCellProtocol, MWMCuisineEditorProtocol,
|
||||
MWMStreetEditorProtocol, MWMObjectsCategorySelectorDelegate>
|
||||
MWMStreetEditorProtocol, MWMObjectsCategorySelectorDelegate,
|
||||
MWMNoteCelLDelegate>
|
||||
|
||||
@property (nonatomic) NSMutableDictionary<NSString *, UITableViewCell *> * offscreenCells;
|
||||
@property (nonatomic) NSMutableArray<NSIndexPath *> * invalidCells;
|
||||
@property (nonatomic) MWMEditorNotesFooter * footer;
|
||||
@property (copy, nonatomic) NSString * note;
|
||||
@property (nonatomic) osm::Editor::FeatureStatus featureStatus;
|
||||
|
||||
@end
|
||||
|
||||
|
@ -142,6 +158,8 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
[super viewDidLoad];
|
||||
[self configTable];
|
||||
[self configNavBar];
|
||||
auto const & featureID = m_mapObject.GetID();
|
||||
self.featureStatus = osm::Editor::Instance().GetFeatureStatus(featureID.m_mwmId, featureID.m_index);
|
||||
}
|
||||
|
||||
- (void)setFeatureToEdit:(FeatureID const &)fid
|
||||
|
@ -215,13 +233,27 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
|
||||
auto & f = GetFramework();
|
||||
auto const & featureID = m_mapObject.GetID();
|
||||
NSDictionary * info = @{kStatEditorMWMName : @(featureID.GetMwmName().c_str()),
|
||||
NSDictionary<NSString *, NSString *> * info = @{kStatEditorMWMName : @(featureID.GetMwmName().c_str()),
|
||||
kStatEditorMWMVersion : @(featureID.GetMwmVersion())};
|
||||
BOOL const haveNote = self.note.length;
|
||||
|
||||
if (haveNote)
|
||||
{
|
||||
auto const latLon = m_mapObject.GetLatLon();
|
||||
NSMutableDictionary * noteInfo = [info mutableCopy];
|
||||
noteInfo[kStatProblem] = self.note;
|
||||
noteInfo[kStatLat] = @(latLon.lat);
|
||||
noteInfo[kStatLon] = @(latLon.lon);
|
||||
[Statistics logEvent:kStatEditorProblemReport withParameters:noteInfo];
|
||||
osm::Editor::Instance().CreateNote(latLon, featureID, self.note.UTF8String);
|
||||
}
|
||||
|
||||
switch (f.SaveEditedMapObject(m_mapObject))
|
||||
{
|
||||
case osm::Editor::NothingWasChanged:
|
||||
case osm::Editor::NothingWasChanged:
|
||||
[self.navigationController popToRootViewControllerAnimated:YES];
|
||||
if (haveNote)
|
||||
[self showDropDown];
|
||||
break;
|
||||
case osm::Editor::SavedSuccessfully:
|
||||
[Statistics logEvent:(self.isCreating ? kStatEditorAddSuccess : kStatEditorEditSuccess) withParameters:info];
|
||||
|
@ -236,6 +268,20 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
}
|
||||
}
|
||||
|
||||
- (void)showDropDown
|
||||
{
|
||||
UIViewController * parent = static_cast<UIViewController *>([MapsAppDelegate theApp].mapViewController);
|
||||
MWMDropDown * dd = [[MWMDropDown alloc] initWithSuperview:parent.view];
|
||||
[dd showWithMessage:L(@"editor_edits_sent_message")];
|
||||
}
|
||||
|
||||
- (MWMEditorNotesFooter *)footer
|
||||
{
|
||||
if (!_footer)
|
||||
_footer = [MWMEditorNotesFooter footer];
|
||||
return _footer;
|
||||
}
|
||||
|
||||
#pragma mark - Offscreen cells
|
||||
|
||||
- (UITableViewCell *)offscreenCellForIdentifier:(NSString *)reuseIdentifier
|
||||
|
@ -283,6 +329,15 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
registerCellsForTableView(cells, self.tableView);
|
||||
}
|
||||
}
|
||||
m_sections.push_back(MWMEditorSectionNote);
|
||||
m_cells[MWMEditorSectionNote] = kSectionNoteCellTypes;
|
||||
registerCellsForTableView(kSectionNoteCellTypes, self.tableView);
|
||||
|
||||
if (self.isCreating)
|
||||
return;
|
||||
m_sections.push_back(MWMEditorSectionButton);
|
||||
m_cells[MWMEditorSectionButton] = kSectionButtonCellTypes;
|
||||
registerCellsForTableView(kSectionButtonCellTypes, self.tableView);
|
||||
}
|
||||
|
||||
- (MWMPlacePageCellType)cellTypeForIndexPath:(NSIndexPath *)indexPath
|
||||
|
@ -441,6 +496,35 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
placeholder:L(@"select_cuisine")];
|
||||
break;
|
||||
}
|
||||
case MWMPlacePageCellTypeNote:
|
||||
{
|
||||
MWMNoteCell * tCell = static_cast<MWMNoteCell *>(cell);
|
||||
[tCell configWithDelegate:self noteText:self.note];
|
||||
break;
|
||||
}
|
||||
case MWMPlacePageCellTypeReportButton:
|
||||
{
|
||||
MWMNoteButtonCell * tCell = static_cast<MWMNoteButtonCell *>(cell);
|
||||
|
||||
auto title = ^ NSString * (osm::Editor::FeatureStatus s)
|
||||
{
|
||||
switch (s)
|
||||
{
|
||||
case osm::Editor::FeatureStatus::Untouched:
|
||||
return L(@"editor_place_doesnt_exist");
|
||||
case osm::Editor::FeatureStatus::Deleted:
|
||||
NSAssert(false, @"Incorrect feature status!");
|
||||
return L(@"editor_place_doesnt_exist");
|
||||
case osm::Editor::FeatureStatus::Modified:
|
||||
return L(@"editor_reset_edits_button");
|
||||
case osm::Editor::FeatureStatus::Created:
|
||||
return L(@"editor_remove_place_message");
|
||||
}
|
||||
};
|
||||
|
||||
[tCell configureWithDelegate:self title:title(self.featureStatus)];
|
||||
break;
|
||||
}
|
||||
default:
|
||||
NSAssert(false, @"Invalid field for editor");
|
||||
break;
|
||||
|
@ -483,7 +567,10 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
case MWMPlacePageCellTypeOpenHours:
|
||||
return ((MWMPlacePageOpeningHoursCell *)cell).cellHeight;
|
||||
case MWMPlacePageCellTypeCategory:
|
||||
case MWMPlacePageCellTypeReportButton:
|
||||
return self.tableView.rowHeight;
|
||||
case MWMPlacePageCellTypeNote:
|
||||
return static_cast<MWMNoteCell *>(cell).cellHeight;
|
||||
default:
|
||||
{
|
||||
[cell setNeedsUpdateConstraints];
|
||||
|
@ -503,7 +590,10 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
{
|
||||
case MWMEditorSectionName:
|
||||
case MWMEditorSectionCategory:
|
||||
case MWMEditorSectionButton:
|
||||
return nil;
|
||||
case MWMEditorSectionNote:
|
||||
return L(@"editor_notes_header");
|
||||
case MWMEditorSectionAddress:
|
||||
return L(@"address");
|
||||
case MWMEditorSectionDetails:
|
||||
|
@ -520,10 +610,43 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
case MWMEditorSectionAddress:
|
||||
case MWMEditorSectionDetails:
|
||||
case MWMEditorSectionCategory:
|
||||
case MWMEditorSectionNote:
|
||||
case MWMEditorSectionButton:
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
- (UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section
|
||||
{
|
||||
switch (m_sections[section])
|
||||
{
|
||||
case MWMEditorSectionAddress:
|
||||
case MWMEditorSectionDetails:
|
||||
case MWMEditorSectionCategory:
|
||||
case MWMEditorSectionName:
|
||||
case MWMEditorSectionButton:
|
||||
return nil;
|
||||
case MWMEditorSectionNote:
|
||||
return self.footer;
|
||||
}
|
||||
}
|
||||
|
||||
- (CGFloat)tableView:(UITableView *)tableView heightForFooterInSection:(NSInteger)section
|
||||
{
|
||||
switch (m_sections[section])
|
||||
{
|
||||
case MWMEditorSectionAddress:
|
||||
case MWMEditorSectionDetails:
|
||||
case MWMEditorSectionCategory:
|
||||
return 0.;
|
||||
case MWMEditorSectionNote:
|
||||
return self.footer.height;
|
||||
case MWMEditorSectionName:
|
||||
case MWMEditorSectionButton:
|
||||
return kDefaultFooterHeight;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark - MWMPlacePageOpeningHoursCellProtocol
|
||||
|
||||
- (BOOL)forcedButton
|
||||
|
@ -559,6 +682,24 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
[self.tableView reloadRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
|
||||
}
|
||||
|
||||
#pragma mark - MWMNoteCellDelegate
|
||||
|
||||
- (void)cellShouldChangeSize:(MWMNoteCell *)cell text:(NSString *)text
|
||||
{
|
||||
self.offscreenCells[reuseIdentifier(MWMPlacePageCellTypeNote)] = cell;
|
||||
self.note = text;
|
||||
[self.tableView beginUpdates];
|
||||
[self.tableView endUpdates];
|
||||
[self.tableView scrollToRowAtIndexPath:[self.tableView indexPathForCell:cell]
|
||||
atScrollPosition:UITableViewScrollPositionBottom
|
||||
animated:YES];
|
||||
}
|
||||
|
||||
- (void)cell:(MWMNoteCell *)cell didFinishEditingWithText:(NSString *)text
|
||||
{
|
||||
self.note = text;
|
||||
}
|
||||
|
||||
#pragma mark - MWMEditorCellProtocol
|
||||
|
||||
- (void)tryToChangeInvalidStateForCell:(MWMEditorTextTableViewCell *)cell
|
||||
|
@ -624,18 +765,66 @@ void registerCellsForTableView(vector<MWMPlacePageCellType> const & cells, UITab
|
|||
MWMPlacePageCellType const cellType = [self cellTypeForIndexPath:indexPath];
|
||||
switch (cellType)
|
||||
{
|
||||
case MWMPlacePageCellTypeStreet:
|
||||
[self performSegueWithIdentifier:kStreetEditorSegue sender:nil];
|
||||
case MWMPlacePageCellTypeStreet:
|
||||
[self performSegueWithIdentifier:kStreetEditorSegue sender:nil];
|
||||
break;
|
||||
case MWMPlacePageCellTypeCuisine:
|
||||
[self performSegueWithIdentifier:kCuisineEditorSegue sender:nil];
|
||||
break;
|
||||
case MWMPlacePageCellTypeCategory:
|
||||
[self performSegueWithIdentifier:kCategoryEditorSegue sender:nil];
|
||||
break;
|
||||
case MWMPlacePageCellTypeReportButton:
|
||||
switch (self.featureStatus)
|
||||
{
|
||||
case osm::Editor::FeatureStatus::Untouched:
|
||||
{
|
||||
[self.alertController presentPlaceDoesntExistAlertWithBlock:^(NSString * additionalMessage)
|
||||
{
|
||||
auto const & fid = self->m_mapObject.GetID();
|
||||
auto const latLon = self->m_mapObject.GetLatLon();
|
||||
if (additionalMessage.length)
|
||||
{
|
||||
//TODO(Vlad): Pass additional message as second parameter into CreateNote.
|
||||
}
|
||||
|
||||
[Statistics logEvent:kStatEditorProblemReport withParameters:@{
|
||||
kStatEditorMWMName : @(fid.GetMwmName().c_str()),
|
||||
kStatEditorMWMVersion : @(fid.GetMwmVersion()),
|
||||
kStatProblem : @(osm::Editor::kPlaceDoesNotExistMessage),
|
||||
kStatLat : @(latLon.lat), kStatLon : @(latLon.lon)}];
|
||||
osm::Editor::Instance().CreateNote(latLon, fid, osm::Editor::kPlaceDoesNotExistMessage);
|
||||
[self backTap];
|
||||
[self showDropDown];
|
||||
}];
|
||||
break;
|
||||
case MWMPlacePageCellTypeCuisine:
|
||||
[self performSegueWithIdentifier:kCuisineEditorSegue sender:nil];
|
||||
}
|
||||
case osm::Editor::FeatureStatus::Modified:
|
||||
{
|
||||
[self.alertController presentResetChangesAlertWithBlock:^
|
||||
{
|
||||
// TODO(Vlad): reset all changes
|
||||
[self backTap];
|
||||
}];
|
||||
break;
|
||||
case MWMPlacePageCellTypeCategory:
|
||||
[self performSegueWithIdentifier:kCategoryEditorSegue sender:nil];
|
||||
}
|
||||
case osm::Editor::FeatureStatus::Created:
|
||||
{
|
||||
[self.alertController presentDeleteFeatureAlertWithBlock:^
|
||||
{
|
||||
//TODO(Vlad): delete feature
|
||||
[self backTap];
|
||||
}];
|
||||
break;
|
||||
default:
|
||||
NSAssert(false, @"Invalid field for cellSelect");
|
||||
}
|
||||
case osm::Editor::FeatureStatus::Deleted:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
NSAssert(false, @"Invalid field for cellSelect");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
8
iphone/Maps/Classes/Editor/MWMNoteButtonCell.h
Normal file
8
iphone/Maps/Classes/Editor/MWMNoteButtonCell.h
Normal file
|
@ -0,0 +1,8 @@
|
|||
#import "MWMEditorCommon.h"
|
||||
#import "MWMTableViewCell.h"
|
||||
|
||||
@interface MWMNoteButtonCell : MWMTableViewCell
|
||||
|
||||
- (void)configureWithDelegate:(id<MWMEditorCellProtocol>)delegate title:(NSString *)title;
|
||||
|
||||
@end
|
23
iphone/Maps/Classes/Editor/MWMNoteButtonCell.m
Normal file
23
iphone/Maps/Classes/Editor/MWMNoteButtonCell.m
Normal file
|
@ -0,0 +1,23 @@
|
|||
#import "MWMNoteButtonCell.h"
|
||||
|
||||
@interface MWMNoteButtonCell ()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UIButton * button;
|
||||
@property (weak, nonatomic) id<MWMEditorCellProtocol> delegate;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMNoteButtonCell
|
||||
|
||||
- (void)configureWithDelegate:(id<MWMEditorCellProtocol>)delegate title:(NSString *)title
|
||||
{
|
||||
[self.button setTitle:title forState:UIControlStateNormal];
|
||||
self.delegate = delegate;
|
||||
}
|
||||
|
||||
- (IBAction)buttonTap
|
||||
{
|
||||
[self.delegate cellSelect:self];
|
||||
}
|
||||
|
||||
@end
|
43
iphone/Maps/Classes/Editor/MWMNoteButtonCell.xib
Normal file
43
iphone/Maps/Classes/Editor/MWMNoteButtonCell.xib
Normal file
|
@ -0,0 +1,43 @@
|
|||
<?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" useTraitCollections="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 contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" id="KGk-i7-Jjw" customClass="MWMNoteButtonCell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="c7Y-Nr-P4C">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
|
||||
<state key="normal" title="Button">
|
||||
<color key="titleColor" red="0.95686274510000002" green="0.26274509800000001" blue="0.21176470589999999" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</state>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="red"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<action selector="buttonTap" destination="KGk-i7-Jjw" eventType="touchUpInside" id="kS2-aj-wfq"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="c7Y-Nr-P4C" secondAttribute="trailing" id="AVP-GR-W7u"/>
|
||||
<constraint firstAttribute="bottom" secondItem="c7Y-Nr-P4C" secondAttribute="bottom" constant="0.5" id="F3N-Zb-tnQ"/>
|
||||
<constraint firstItem="c7Y-Nr-P4C" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" id="JQx-63-Ane"/>
|
||||
<constraint firstItem="c7Y-Nr-P4C" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" id="fTj-1o-vWJ"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<connections>
|
||||
<outlet property="button" destination="c7Y-Nr-P4C" id="UDx-n5-6fr"/>
|
||||
</connections>
|
||||
</tableViewCell>
|
||||
</objects>
|
||||
</document>
|
17
iphone/Maps/Classes/Editor/MWMNoteCell.h
Normal file
17
iphone/Maps/Classes/Editor/MWMNoteCell.h
Normal file
|
@ -0,0 +1,17 @@
|
|||
#import "MWMTableViewCell.h"
|
||||
|
||||
@class MWMNoteCell;
|
||||
|
||||
@protocol MWMNoteCelLDelegate <NSObject>
|
||||
|
||||
- (void)cellShouldChangeSize:(MWMNoteCell *)cell text:(NSString *)text;
|
||||
- (void)cell:(MWMNoteCell *)cell didFinishEditingWithText:(NSString *)text;
|
||||
|
||||
@end
|
||||
|
||||
@interface MWMNoteCell : MWMTableViewCell
|
||||
|
||||
- (void)configWithDelegate:(id<MWMNoteCelLDelegate>)delegate noteText:(NSString *)text;
|
||||
- (CGFloat)cellHeight;
|
||||
|
||||
@end
|
88
iphone/Maps/Classes/Editor/MWMNoteCell.mm
Normal file
88
iphone/Maps/Classes/Editor/MWMNoteCell.mm
Normal file
|
@ -0,0 +1,88 @@
|
|||
#import "MWMNoteCell.h"
|
||||
|
||||
namespace
|
||||
{
|
||||
CGFloat const kMinimalTextViewHeight = 104.;
|
||||
CGFloat const kTopTextViewOffset = 12.;
|
||||
NSString * const kTextViewContentSizeKeyPath = @"contentSize";
|
||||
} // namespace
|
||||
|
||||
@interface MWMNoteCell () <UITextViewDelegate>
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UITextView * textView;
|
||||
@property (weak, nonatomic) IBOutlet NSLayoutConstraint * textViewHeight;
|
||||
@property (weak, nonatomic) id<MWMNoteCelLDelegate> delegate;
|
||||
|
||||
@end
|
||||
|
||||
static void * kContext = &kContext;
|
||||
|
||||
@implementation MWMNoteCell
|
||||
|
||||
- (void)configWithDelegate:(id<MWMNoteCelLDelegate>)delegate noteText:(NSString *)text
|
||||
{
|
||||
self.delegate = delegate;
|
||||
self.textView.text = text;
|
||||
}
|
||||
|
||||
- (void)observeValueForKeyPath:(NSString *)keyPath
|
||||
ofObject:(id)object
|
||||
change:(NSDictionary *)change
|
||||
context:(void *)context
|
||||
{
|
||||
if (context == kContext)
|
||||
{
|
||||
NSValue * s = change[@"new"];
|
||||
CGFloat const height = s.CGSizeValue.height;
|
||||
|
||||
if (height > kMinimalTextViewHeight)
|
||||
{
|
||||
self.textViewHeight.constant = height;
|
||||
[self.delegate cellShouldChangeSize:self text:self.textView.text];
|
||||
}
|
||||
else
|
||||
{
|
||||
CGFloat const currentHeight = self.textViewHeight.constant;
|
||||
if (currentHeight > kMinimalTextViewHeight)
|
||||
{
|
||||
self.textViewHeight.constant = kMinimalTextViewHeight;
|
||||
[self.delegate cellShouldChangeSize:self text:self.textView.text];
|
||||
}
|
||||
}
|
||||
|
||||
[self setNeedsLayout];
|
||||
[self layoutIfNeeded];
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
[super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
|
||||
}
|
||||
|
||||
- (CGFloat)cellHeight
|
||||
{
|
||||
return self.textViewHeight.constant + 2 * kTopTextViewOffset;
|
||||
}
|
||||
|
||||
- (void)textViewDidEndEditing:(UITextView *)textView
|
||||
{
|
||||
[self.delegate cell:self didFinishEditingWithText:textView.text];
|
||||
[self unregisterObserver];
|
||||
}
|
||||
|
||||
- (void)textViewDidBeginEditing:(UITextView *)textView
|
||||
{
|
||||
[self registerObserver];
|
||||
}
|
||||
|
||||
- (void)unregisterObserver
|
||||
{
|
||||
[self.textView removeObserver:self forKeyPath:kTextViewContentSizeKeyPath context:kContext];
|
||||
}
|
||||
|
||||
- (void)registerObserver
|
||||
{
|
||||
[self.textView addObserver:self forKeyPath:kTextViewContentSizeKeyPath options:NSKeyValueObservingOptionNew context:kContext];
|
||||
}
|
||||
|
||||
@end
|
50
iphone/Maps/Classes/Editor/MWMNoteCell.xib
Normal file
50
iphone/Maps/Classes/Editor/MWMNoteCell.xib
Normal file
|
@ -0,0 +1,50 @@
|
|||
<?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" useTraitCollections="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 contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" rowHeight="129" id="KGk-i7-Jjw" customClass="MWMNoteCell">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="129"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="KGk-i7-Jjw" id="H2p-sc-9uM">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="128"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="d32-xF-MvW" customClass="MWMTextView">
|
||||
<rect key="frame" x="16" y="12" width="288" height="104"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" priority="750" constant="104" id="J3M-HG-f2p"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedPlaceholder" value="editor_detailed_description_hint"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="delegate" destination="KGk-i7-Jjw" id="b3Z-HX-D7g"/>
|
||||
</connections>
|
||||
</textView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="d32-xF-MvW" secondAttribute="trailing" constant="16" id="Ost-1C-1e0"/>
|
||||
<constraint firstItem="d32-xF-MvW" firstAttribute="leading" secondItem="H2p-sc-9uM" secondAttribute="leading" constant="16" id="VYR-fH-Xju"/>
|
||||
<constraint firstAttribute="bottom" secondItem="d32-xF-MvW" secondAttribute="bottom" constant="12" id="X92-RT-6WG"/>
|
||||
<constraint firstItem="d32-xF-MvW" firstAttribute="top" secondItem="H2p-sc-9uM" secondAttribute="top" constant="12" id="YRt-nX-DIa"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<connections>
|
||||
<outlet property="textView" destination="d32-xF-MvW" id="dwC-Cl-3Pl"/>
|
||||
<outlet property="textViewHeight" destination="J3M-HG-f2p" id="rK2-Hv-d1g"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="334" y="383"/>
|
||||
</tableViewCell>
|
||||
</objects>
|
||||
</document>
|
|
@ -65,7 +65,7 @@ namespace
|
|||
|
||||
- (void)keyboardWillShow:(NSNotification *)notification
|
||||
{
|
||||
CGSize const keyboardSize = [[[notification userInfo] objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
|
||||
CGSize const keyboardSize = [notification.userInfo[UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
|
||||
CGFloat const bottomInset = UIInterfaceOrientationIsPortrait([[UIApplication sharedApplication] statusBarOrientation]) ?
|
||||
keyboardSize.height : keyboardSize.width;
|
||||
|
||||
|
|
|
@ -47,7 +47,6 @@ vector<MWMPlacePageCellType> const kSectionMetadataCellTypes {
|
|||
vector<MWMPlacePageCellType> const kSectionEditingCellTypes {
|
||||
MWMPlacePageCellTypeEditButton,
|
||||
MWMPlacePageCellTypeAddBusinessButton,
|
||||
MWMPlacePageCellTypeReportButton
|
||||
};
|
||||
|
||||
using TCellTypesSectionMap = pair<vector<MWMPlacePageCellType>, PlacePageSection>;
|
||||
|
@ -69,8 +68,7 @@ MWMPlacePageCellTypeValueMap const kCellType2ReuseIdentifier{
|
|||
{MWMPlacePageCellTypeOpenHours, "MWMPlacePageOpeningHoursCell"},
|
||||
{MWMPlacePageCellTypeBookmark, "PlacePageBookmarkCell"},
|
||||
{MWMPlacePageCellTypeEditButton, "MWMPlacePageButtonCell"},
|
||||
{MWMPlacePageCellTypeAddBusinessButton, "MWMPlacePageButtonCell"},
|
||||
{MWMPlacePageCellTypeReportButton, "MWMPlacePageButtonCell"}};
|
||||
{MWMPlacePageCellTypeAddBusinessButton, "MWMPlacePageButtonCell"}};
|
||||
|
||||
NSString * reuseIdentifier(MWMPlacePageCellType cellType)
|
||||
{
|
||||
|
@ -443,7 +441,6 @@ enum class AttributePosition
|
|||
break;
|
||||
case MWMPlacePageCellTypeEditButton:
|
||||
case MWMPlacePageCellTypeAddBusinessButton:
|
||||
case MWMPlacePageCellTypeReportButton:
|
||||
[static_cast<MWMPlacePageButtonCell *>(cell) config:self.ownerPlacePage forType:cellType];
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -29,7 +29,6 @@
|
|||
- (void)changeBookmarkDescription;
|
||||
- (void)editPlace;
|
||||
- (void)addBusiness;
|
||||
- (void)reportProblem;
|
||||
- (void)share;
|
||||
- (void)route;
|
||||
- (void)reloadBookmark;
|
||||
|
|
|
@ -143,11 +143,6 @@ static NSString * const kPlacePageViewCenterKeyPath = @"center";
|
|||
[self.manager addBusiness];
|
||||
}
|
||||
|
||||
- (void)reportProblem
|
||||
{
|
||||
[self.manager reportProblem];
|
||||
}
|
||||
|
||||
- (void)share
|
||||
{
|
||||
[self.manager share];
|
||||
|
|
|
@ -20,15 +20,9 @@
|
|||
switch (type)
|
||||
{
|
||||
case MWMPlacePageCellTypeAddBusinessButton:
|
||||
[self.titleButton setTitleColor:[UIColor linkBlue] forState:UIControlStateNormal];
|
||||
[self.titleButton setTitle:L(@"placepage_add_business_button") forState:UIControlStateNormal];
|
||||
break;
|
||||
case MWMPlacePageCellTypeReportButton:
|
||||
[self.titleButton setTitleColor:[UIColor red] forState:UIControlStateNormal];
|
||||
[self.titleButton setTitle:L(@"placepage_report_problem_button") forState:UIControlStateNormal];
|
||||
break;
|
||||
case MWMPlacePageCellTypeEditButton:
|
||||
[self.titleButton setTitleColor:[UIColor linkBlue] forState:UIControlStateNormal];
|
||||
[self.titleButton setTitle:L(@"edit_place") forState:UIControlStateNormal];
|
||||
break;
|
||||
default:
|
||||
|
@ -50,10 +44,6 @@
|
|||
[Statistics logEvent:kStatEditorAddClick withParameters:@{kStatValue : kStatPlacePage}];
|
||||
[self.placePage addBusiness];
|
||||
break;
|
||||
case MWMPlacePageCellTypeReportButton:
|
||||
[Statistics logEvent:kStatEventName(kStatPlacePage, kStatReport)];
|
||||
[self.placePage reportProblem];
|
||||
break;
|
||||
default:
|
||||
NSAssert(false, @"Incorrect cell type!");
|
||||
break;
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9532" systemVersion="15D21" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="10116" systemVersion="15E65" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9530"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
|
||||
|
@ -14,17 +14,13 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jmU-dJ-aRH">
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jmU-dJ-aRH">
|
||||
<rect key="frame" x="0.0" y="0.0" width="320" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" priority="999" constant="44" id="gfO-mi-8yS"/>
|
||||
</constraints>
|
||||
<fontDescription key="fontDescription" name="HelveticaNeue" family="Helvetica Neue" pointSize="17"/>
|
||||
<inset key="contentEdgeInsets" minX="16" minY="0.0" maxX="9" maxY="0.0"/>
|
||||
<state key="normal" title="Edit">
|
||||
<color key="titleColor" red="0.1176470588" green="0.58823529409999997" blue="0.94117647059999998" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<color key="titleShadowColor" red="0.49803921568627452" green="0.49803921568627452" blue="0.49803921568627452" alpha="1" colorSpace="calibratedRGB"/>
|
||||
</state>
|
||||
<state key="normal" title="Edit"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="textColorName" value="linkBlue"/>
|
||||
|
|
|
@ -24,6 +24,7 @@ typedef NS_ENUM(NSUInteger, MWMPlacePageCellType)
|
|||
MWMPlacePageCellTypeZipCode,
|
||||
MWMPlacePageCellTypeBuildingLevels,
|
||||
MWMPlacePageCellTypeCuisine,
|
||||
MWMPlacePageCellTypeNote,
|
||||
MWMPlacePageCellTypeCount
|
||||
};
|
||||
|
||||
|
|
|
@ -151,9 +151,7 @@ void initFieldsMap()
|
|||
return m_info.IsBookmark() ? @"" : nil;
|
||||
case MWMPlacePageCellTypeEditButton:
|
||||
// TODO(Vlad): It's a really strange way to "display" cell if returned text is not nil.
|
||||
return m_info.IsEditable() && isNewMWM ? @"" : nil;
|
||||
case MWMPlacePageCellTypeReportButton:
|
||||
return /* m_info.IsFeature() && isNewMWM ? @"" : */nil;
|
||||
return isNewMWM ? @"": nil;
|
||||
case MWMPlacePageCellTypeAddBusinessButton:
|
||||
return m_info.IsBuilding() ? @"" : nil;
|
||||
default:
|
||||
|
|
|
@ -26,7 +26,6 @@
|
|||
- (void)share;
|
||||
- (void)editPlace;
|
||||
- (void)addBusiness;
|
||||
- (void)reportProblem;
|
||||
- (void)addBookmark;
|
||||
- (void)removeBookmark;
|
||||
- (void)apiBack;
|
||||
|
|
|
@ -263,11 +263,6 @@ extern NSString * const kBookmarksChangedNotification;
|
|||
[self.delegate addBusinessToPoint:self.entity.mercator];
|
||||
}
|
||||
|
||||
- (void)reportProblem
|
||||
{
|
||||
[static_cast<MapViewController *>(self.ownerViewController) showReportController];
|
||||
}
|
||||
|
||||
- (void)addBookmark
|
||||
{
|
||||
[Statistics logEvent:kStatEventName(kStatPlacePage, kStatBookmarks)
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
#import "MWMTableViewController.h"
|
||||
|
||||
#include "geometry/point2d.hpp"
|
||||
|
||||
@interface MWMReportBaseController : MWMTableViewController
|
||||
|
||||
- (void)configNavBar NS_REQUIRES_SUPER;
|
||||
- (void)sendNote:(string const &)note NS_REQUIRES_SUPER;
|
||||
|
||||
- (void)setPoint:(m2::PointD const &)point NS_REQUIRES_SUPER;
|
||||
- (m2::PointD const &)point;
|
||||
|
||||
@end
|
|
@ -1,52 +0,0 @@
|
|||
#import "LocationManager.h"
|
||||
#import "MapsAppDelegate.h"
|
||||
#import "MapViewController.h"
|
||||
#import "MWMAuthorizationCommon.h"
|
||||
#import "MWMMapViewControlsManager.h"
|
||||
#import "MWMPlacePageEntity.h"
|
||||
#import "MWMReportBaseController.h"
|
||||
#import "Statistics.h"
|
||||
|
||||
#include "indexer/osm_editor.hpp"
|
||||
|
||||
@implementation MWMReportBaseController
|
||||
{
|
||||
m2::PointD m_point;
|
||||
}
|
||||
|
||||
- (void)configNavBar
|
||||
{
|
||||
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:L(@"editor_report_problem_send_button")
|
||||
style:UIBarButtonItemStylePlain target:self action:@selector(send)];
|
||||
}
|
||||
|
||||
- (void)send
|
||||
{
|
||||
[self doesNotRecognizeSelector:_cmd];
|
||||
}
|
||||
|
||||
- (void)sendNote:(string const &)note
|
||||
{
|
||||
NSAssert(!note.empty(), @"String can't be empty!");
|
||||
auto const & featureID = MapsAppDelegate.theApp.mapViewController.controlsManager.placePageEntity.info.GetID();
|
||||
auto const latLon = ToLatLon(m_point);
|
||||
osm::Editor::Instance().CreateNote(latLon, featureID, note);
|
||||
[Statistics logEvent:kStatEditorProblemReport withParameters:@{kStatEditorMWMName : @(featureID.GetMwmName().c_str()),
|
||||
kStatEditorMWMVersion : @(featureID.GetMwmVersion()),
|
||||
kStatProblem : @(note.c_str()),
|
||||
kStatLat : @(latLon.lat),
|
||||
kStatLon : @(latLon.lon)}];
|
||||
[self.navigationController popToRootViewControllerAnimated:YES];
|
||||
}
|
||||
|
||||
- (void)setPoint:(m2::PointD const &)point
|
||||
{
|
||||
m_point = point;
|
||||
}
|
||||
|
||||
- (m2::PointD const &)point
|
||||
{
|
||||
return m_point;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,5 +0,0 @@
|
|||
#import "MWMReportBaseController.h"
|
||||
|
||||
@interface MWMReportProblemController : MWMReportBaseController
|
||||
|
||||
@end
|
|
@ -1,57 +0,0 @@
|
|||
#import "MWMReportProblemController.h"
|
||||
#import "SelectableCell.h"
|
||||
|
||||
#include "indexer/osm_editor.hpp"
|
||||
|
||||
@interface MWMReportProblemController ()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet SelectableCell * placeDoesntExistCell;
|
||||
@property (nonatomic) BOOL isCellSelected;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMReportProblemController
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
self.placeDoesntExistCell.accessoryType = UITableViewCellAccessoryNone;
|
||||
[self configNavBar];
|
||||
}
|
||||
|
||||
- (void)configNavBar
|
||||
{
|
||||
[super configNavBar];
|
||||
self.title = L(@"editor_report_problem_title");
|
||||
}
|
||||
|
||||
- (void)send
|
||||
{
|
||||
if (!self.isCellSelected)
|
||||
return;
|
||||
[self sendNote:osm::Editor::kPlaceDoesNotExistMessage];
|
||||
}
|
||||
|
||||
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
|
||||
{
|
||||
MWMReportBaseController * dvc = segue.destinationViewController;
|
||||
NSAssert([dvc isKindOfClass:[MWMReportBaseController class]], @"Incorrect destination controller!");
|
||||
dvc.point = self.point;
|
||||
}
|
||||
|
||||
#pragma mark - UITableView
|
||||
|
||||
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
|
||||
{
|
||||
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
|
||||
[cell setSelected:NO animated:YES];
|
||||
|
||||
if (indexPath.row > 0)
|
||||
return;
|
||||
|
||||
self.isCellSelected = !self.isCellSelected;
|
||||
self.placeDoesntExistCell.accessoryType = self.isCellSelected ? UITableViewCellAccessoryCheckmark :
|
||||
UITableViewCellAccessoryNone;
|
||||
}
|
||||
|
||||
@end
|
|
@ -1,5 +0,0 @@
|
|||
#import "MWMReportBaseController.h"
|
||||
|
||||
@interface MWMReportProblemExtendedController : MWMReportBaseController
|
||||
|
||||
@end
|
|
@ -1,39 +0,0 @@
|
|||
#import "MWMReportProblemExtendedController.h"
|
||||
|
||||
@interface MWMReportProblemExtendedController ()
|
||||
|
||||
@property (weak, nonatomic) IBOutlet UITextView * textView;
|
||||
|
||||
@end
|
||||
|
||||
@implementation MWMReportProblemExtendedController
|
||||
|
||||
- (void)viewDidLoad
|
||||
{
|
||||
[super viewDidLoad];
|
||||
[self configNavBar];
|
||||
}
|
||||
|
||||
- (void)configNavBar
|
||||
{
|
||||
[super configNavBar];
|
||||
self.title = L(@"editor_report_problem_title");
|
||||
}
|
||||
|
||||
- (void)send
|
||||
{
|
||||
if (!self.textView.text.length)
|
||||
return;
|
||||
[self sendNote:self.textView.text.UTF8String];
|
||||
}
|
||||
|
||||
#pragma mark - UITableView
|
||||
|
||||
- (NSString *)tableView:(UITableView *)tableView titleForFooterInSection:(NSInteger)section
|
||||
{
|
||||
NSAssert(section == 0, @"Invalid section!");
|
||||
return [NSString stringWithFormat:@"%@\n\n%@", L(@"editor_report_problem_desription_1"),
|
||||
L(@"editor_report_problem_desription_2")];
|
||||
}
|
||||
|
||||
@end
|
|
@ -1 +1,2 @@
|
|||
typedef void (^TMWMVoidBlock)();
|
||||
typedef void (^MWMStringBlock)(NSString *);
|
||||
|
|
|
@ -35,7 +35,6 @@ namespace search { struct AddressInfo; }
|
|||
- (void)openBookmarks;
|
||||
- (void)openMapsDownloader;
|
||||
- (void)openEditor;
|
||||
- (void)showReportController;
|
||||
|
||||
- (void)refreshAd;
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
#import "MWMMapViewControlsManager.h"
|
||||
#import "MWMPageController.h"
|
||||
#import "MWMPlacePageEntity.h"
|
||||
#import "MWMReportBaseController.h"
|
||||
#import "MWMStorage.h"
|
||||
#import "MWMTableViewController.h"
|
||||
#import "MWMTextToSpeech.h"
|
||||
|
@ -77,7 +76,6 @@ NSString * const kDownloaderSegue = @"Map2MapDownloaderSegue";
|
|||
NSString * const kMigrationSegue = @"Map2MigrationSegue";
|
||||
NSString * const kEditorSegue = @"Map2EditorSegue";
|
||||
NSString * const kUDViralAlertWasShown = @"ViralAlertWasShown";
|
||||
NSString * const kReportSegue = @"Map2ReportSegue";
|
||||
} // namespace
|
||||
|
||||
@interface NSValueWrapper : NSObject
|
||||
|
@ -568,11 +566,6 @@ NSString * const kReportSegue = @"Map2ReportSegue";
|
|||
[self performSegueWithIdentifier:kEditorSegue sender:self.controlsManager.placePageEntity];
|
||||
}
|
||||
|
||||
- (void)showReportController
|
||||
{
|
||||
[self performSegueWithIdentifier:kReportSegue sender:self.controlsManager.placePageEntity];
|
||||
}
|
||||
|
||||
- (void)processMyPositionStateModeEvent:(location::EMyPositionMode)mode
|
||||
{
|
||||
[m_predictor setMode:mode];
|
||||
|
@ -853,11 +846,6 @@ NSString * const kReportSegue = @"Map2ReportSegue";
|
|||
MWMMapDownloaderViewController * dvc = segue.destinationViewController;
|
||||
dvc.parentCountryId = @(GetFramework().Storage().GetRootId().c_str());
|
||||
}
|
||||
else if ([segue.identifier isEqualToString:kReportSegue])
|
||||
{
|
||||
MWMReportBaseController * dvc = segue.destinationViewController;
|
||||
dvc.point = static_cast<MWMPlacePageEntity *>(sender).mercator;
|
||||
}
|
||||
else if ([segue.identifier isEqualToString:kMap2FBLoginSegue])
|
||||
{
|
||||
MWMAuthorizationWebViewLoginViewController * dvc = segue.destinationViewController;
|
||||
|
|
|
@ -658,12 +658,6 @@
|
|||
F607C1891C032A8800B53A87 /* resources-hdpi_dark in Resources */ = {isa = PBXBuildFile; fileRef = F607C1841C032A8800B53A87 /* resources-hdpi_dark */; };
|
||||
F607C18A1C032A8800B53A87 /* resources-hdpi_dark in Resources */ = {isa = PBXBuildFile; fileRef = F607C1841C032A8800B53A87 /* resources-hdpi_dark */; };
|
||||
F607C18E1C047FDC00B53A87 /* MWMSegue.mm in Sources */ = {isa = PBXBuildFile; fileRef = F607C18D1C047FDC00B53A87 /* MWMSegue.mm */; };
|
||||
F60F02E11C904E08003A0AF6 /* MWMReportProblemController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F60F02E01C904E08003A0AF6 /* MWMReportProblemController.mm */; };
|
||||
F60F02E41C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F60F02E31C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm */; };
|
||||
F60F02E51C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F60F02E31C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm */; };
|
||||
F60F02E61C904E86003A0AF6 /* MWMReportProblemController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F60F02E01C904E08003A0AF6 /* MWMReportProblemController.mm */; };
|
||||
F60F02E91C904F40003A0AF6 /* MWMReportBaseController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F60F02E81C904F40003A0AF6 /* MWMReportBaseController.mm */; };
|
||||
F60F02EA1C904F40003A0AF6 /* MWMReportBaseController.mm in Sources */ = {isa = PBXBuildFile; fileRef = F60F02E81C904F40003A0AF6 /* MWMReportBaseController.mm */; };
|
||||
F61579341AC2CE9A0032D8E9 /* MWMRateAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F61579331AC2CE9A0032D8E9 /* MWMRateAlert.mm */; };
|
||||
F61579361AC2CEB60032D8E9 /* MWMRateAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F61579351AC2CEB60032D8E9 /* MWMRateAlert.xib */; };
|
||||
F6172FA51BBD5A3E0081D325 /* MWMiPadRoutePreview.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6172FA41BBD5A3E0081D325 /* MWMiPadRoutePreview.xib */; };
|
||||
|
@ -765,6 +759,18 @@
|
|||
F6CB21681AEFC6AA00FB8963 /* MWMPlacePageActionBar.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6CB21671AEFC6AA00FB8963 /* MWMPlacePageActionBar.mm */; };
|
||||
F6CB216D1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6CB216C1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm */; };
|
||||
F6D409FA1B319BD70041730F /* ContextViews.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6D409F91B319BD70041730F /* ContextViews.mm */; };
|
||||
F6D4A72F1CC1030E00BD4E5B /* MWMEditorNotesFooter.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6D4A72E1CC1030E00BD4E5B /* MWMEditorNotesFooter.mm */; };
|
||||
F6D4A7301CC1030E00BD4E5B /* MWMEditorNotesFooter.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6D4A72E1CC1030E00BD4E5B /* MWMEditorNotesFooter.mm */; };
|
||||
F6D4A7351CC103FB00BD4E5B /* MWMEditorNotesFooter.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6D4A7341CC103FB00BD4E5B /* MWMEditorNotesFooter.xib */; };
|
||||
F6D4A7361CC103FB00BD4E5B /* MWMEditorNotesFooter.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6D4A7341CC103FB00BD4E5B /* MWMEditorNotesFooter.xib */; };
|
||||
F6D4A73A1CC1267E00BD4E5B /* MWMNoteCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6D4A7381CC1267E00BD4E5B /* MWMNoteCell.mm */; };
|
||||
F6D4A73B1CC1267E00BD4E5B /* MWMNoteCell.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6D4A7381CC1267E00BD4E5B /* MWMNoteCell.mm */; };
|
||||
F6D4A73C1CC1267E00BD4E5B /* MWMNoteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6D4A7391CC1267E00BD4E5B /* MWMNoteCell.xib */; };
|
||||
F6D4A73D1CC1267E00BD4E5B /* MWMNoteCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6D4A7391CC1267E00BD4E5B /* MWMNoteCell.xib */; };
|
||||
F6D4A7411CC1643100BD4E5B /* MWMNoteButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D4A73F1CC1643100BD4E5B /* MWMNoteButtonCell.m */; };
|
||||
F6D4A7421CC1643100BD4E5B /* MWMNoteButtonCell.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D4A73F1CC1643100BD4E5B /* MWMNoteButtonCell.m */; };
|
||||
F6D4A7431CC1643100BD4E5B /* MWMNoteButtonCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6D4A7401CC1643100BD4E5B /* MWMNoteButtonCell.xib */; };
|
||||
F6D4A7441CC1643100BD4E5B /* MWMNoteButtonCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6D4A7401CC1643100BD4E5B /* MWMNoteButtonCell.xib */; };
|
||||
F6DBF9B61AA8779300F2EC2C /* CALayer+RuntimeAttributes.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6DBF9B51AA8779300F2EC2C /* CALayer+RuntimeAttributes.mm */; };
|
||||
F6E0047B1B908CF5003BF5D8 /* MWMNiPadNavigationDashboard.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6E0047A1B908CF5003BF5D8 /* MWMNiPadNavigationDashboard.xib */; };
|
||||
F6ED13541B1643900095C6DE /* MWMDirectionView.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6ED13531B1643900095C6DE /* MWMDirectionView.mm */; };
|
||||
|
@ -778,6 +784,10 @@
|
|||
F6FE2C0F1B03A006009814AA /* MWMPlacePageNavigationBar.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE2C0E1B03A006009814AA /* MWMPlacePageNavigationBar.mm */; };
|
||||
F6FE2C111B03A016009814AA /* PlacePageNavigationBar.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6FE2C101B03A015009814AA /* PlacePageNavigationBar.xib */; };
|
||||
F6FE2C151B04A44E009814AA /* MWMPlacePageEntity.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE2C141B04A44E009814AA /* MWMPlacePageEntity.mm */; };
|
||||
F6FE3C381CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE3C371CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm */; };
|
||||
F6FE3C391CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm in Sources */ = {isa = PBXBuildFile; fileRef = F6FE3C371CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm */; };
|
||||
F6FE3C3B1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6FE3C3A1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib */; };
|
||||
F6FE3C3C1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6FE3C3A1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib */; };
|
||||
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 */; };
|
||||
|
@ -1309,12 +1319,6 @@
|
|||
F607C1841C032A8800B53A87 /* resources-hdpi_dark */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "resources-hdpi_dark"; path = "../../data/resources-hdpi_dark"; sourceTree = "<group>"; };
|
||||
F607C18C1C047FDC00B53A87 /* MWMSegue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMSegue.h; sourceTree = "<group>"; };
|
||||
F607C18D1C047FDC00B53A87 /* MWMSegue.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMSegue.mm; sourceTree = "<group>"; };
|
||||
F60F02DF1C904E08003A0AF6 /* MWMReportProblemController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMReportProblemController.h; sourceTree = "<group>"; };
|
||||
F60F02E01C904E08003A0AF6 /* MWMReportProblemController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMReportProblemController.mm; sourceTree = "<group>"; };
|
||||
F60F02E21C904E3E003A0AF6 /* MWMReportProblemExtendedController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMReportProblemExtendedController.h; sourceTree = "<group>"; };
|
||||
F60F02E31C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMReportProblemExtendedController.mm; sourceTree = "<group>"; };
|
||||
F60F02E71C904F40003A0AF6 /* MWMReportBaseController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMReportBaseController.h; sourceTree = "<group>"; };
|
||||
F60F02E81C904F40003A0AF6 /* MWMReportBaseController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMReportBaseController.mm; sourceTree = "<group>"; };
|
||||
F61579321AC2CE9A0032D8E9 /* MWMRateAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMRateAlert.h; sourceTree = "<group>"; };
|
||||
F61579331AC2CE9A0032D8E9 /* MWMRateAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMRateAlert.mm; sourceTree = "<group>"; };
|
||||
F61579351AC2CEB60032D8E9 /* MWMRateAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMRateAlert.xib; sourceTree = "<group>"; };
|
||||
|
@ -1452,6 +1456,15 @@
|
|||
F6CB216C1AF13EBD00FB8963 /* MWMPlacePageBookmarkCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPlacePageBookmarkCell.mm; sourceTree = "<group>"; };
|
||||
F6D409F81B319BD70041730F /* ContextViews.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextViews.h; sourceTree = "<group>"; };
|
||||
F6D409F91B319BD70041730F /* ContextViews.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ContextViews.mm; sourceTree = "<group>"; };
|
||||
F6D4A72D1CC1030E00BD4E5B /* MWMEditorNotesFooter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMEditorNotesFooter.h; sourceTree = "<group>"; };
|
||||
F6D4A72E1CC1030E00BD4E5B /* MWMEditorNotesFooter.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMEditorNotesFooter.mm; sourceTree = "<group>"; };
|
||||
F6D4A7341CC103FB00BD4E5B /* MWMEditorNotesFooter.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMEditorNotesFooter.xib; sourceTree = "<group>"; };
|
||||
F6D4A7371CC1267E00BD4E5B /* MWMNoteCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNoteCell.h; sourceTree = "<group>"; };
|
||||
F6D4A7381CC1267E00BD4E5B /* MWMNoteCell.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMNoteCell.mm; sourceTree = "<group>"; };
|
||||
F6D4A7391CC1267E00BD4E5B /* MWMNoteCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMNoteCell.xib; sourceTree = "<group>"; };
|
||||
F6D4A73E1CC1643100BD4E5B /* MWMNoteButtonCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMNoteButtonCell.h; sourceTree = "<group>"; };
|
||||
F6D4A73F1CC1643100BD4E5B /* MWMNoteButtonCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MWMNoteButtonCell.m; sourceTree = "<group>"; };
|
||||
F6D4A7401CC1643100BD4E5B /* MWMNoteButtonCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMNoteButtonCell.xib; sourceTree = "<group>"; };
|
||||
F6DBF9B41AA8779300F2EC2C /* CALayer+RuntimeAttributes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "CALayer+RuntimeAttributes.h"; sourceTree = "<group>"; };
|
||||
F6DBF9B51AA8779300F2EC2C /* CALayer+RuntimeAttributes.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = "CALayer+RuntimeAttributes.mm"; sourceTree = "<group>"; };
|
||||
F6E0047A1B908CF5003BF5D8 /* MWMNiPadNavigationDashboard.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMNiPadNavigationDashboard.xib; sourceTree = "<group>"; };
|
||||
|
@ -1474,6 +1487,9 @@
|
|||
F6FE2C101B03A015009814AA /* PlacePageNavigationBar.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = PlacePageNavigationBar.xib; sourceTree = "<group>"; };
|
||||
F6FE2C131B04A44E009814AA /* MWMPlacePageEntity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlacePageEntity.h; sourceTree = "<group>"; };
|
||||
F6FE2C141B04A44E009814AA /* MWMPlacePageEntity.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPlacePageEntity.mm; sourceTree = "<group>"; };
|
||||
F6FE3C361CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MWMPlaceDoesntExistAlert.h; sourceTree = "<group>"; };
|
||||
F6FE3C371CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MWMPlaceDoesntExistAlert.mm; sourceTree = "<group>"; };
|
||||
F6FE3C3A1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = MWMPlaceDoesntExistAlert.xib; sourceTree = "<group>"; };
|
||||
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>"; };
|
||||
|
@ -1655,7 +1671,6 @@
|
|||
080E96DDFE201D6D7F000001 /* Classes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F60F02DE1C904DE8003A0AF6 /* ReportProblem */,
|
||||
34479C741C60C6130065D261 /* Framework */,
|
||||
34CE8A641C7740CF00F4351A /* Storage */,
|
||||
34ABA61D1C2D514A00FE1BEC /* Input Validators */,
|
||||
|
@ -2330,6 +2345,7 @@
|
|||
34EB84501C0738D30004689F /* Editor */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F6D4A72C1CC102EA00BD4E5B /* Notes */,
|
||||
F653CE1D1C7361DF00A453F1 /* FeatureType */,
|
||||
34F9FB811C4389EE00F71201 /* Street */,
|
||||
340C20E01C3E563500111D22 /* Cuisine */,
|
||||
|
@ -2511,19 +2527,6 @@
|
|||
name = Segue;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F60F02DE1C904DE8003A0AF6 /* ReportProblem */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F60F02E71C904F40003A0AF6 /* MWMReportBaseController.h */,
|
||||
F60F02E81C904F40003A0AF6 /* MWMReportBaseController.mm */,
|
||||
F60F02DF1C904E08003A0AF6 /* MWMReportProblemController.h */,
|
||||
F60F02E01C904E08003A0AF6 /* MWMReportProblemController.mm */,
|
||||
F60F02E21C904E3E003A0AF6 /* MWMReportProblemExtendedController.h */,
|
||||
F60F02E31C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm */,
|
||||
);
|
||||
name = ReportProblem;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F613FA741AB330AF002394D4 /* MapViewController */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -2586,6 +2589,7 @@
|
|||
F64F195F1AB8125C006EAF7E /* CustomAlert */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F6FE3C351CC50FDF00A73196 /* PlaceDoesntExist */,
|
||||
F6BD1D1D1CA412700047B8E8 /* AuthAlert */,
|
||||
F64D9C9C1C899BEA0063FA30 /* EditorAlert */,
|
||||
F63774E51B59374F00BCF54D /* RoutingDisclaimerAlert */,
|
||||
|
@ -2885,6 +2889,22 @@
|
|||
name = ActionBar;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F6D4A72C1CC102EA00BD4E5B /* Notes */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F6D4A72D1CC1030E00BD4E5B /* MWMEditorNotesFooter.h */,
|
||||
F6D4A72E1CC1030E00BD4E5B /* MWMEditorNotesFooter.mm */,
|
||||
F6D4A7341CC103FB00BD4E5B /* MWMEditorNotesFooter.xib */,
|
||||
F6D4A7371CC1267E00BD4E5B /* MWMNoteCell.h */,
|
||||
F6D4A7381CC1267E00BD4E5B /* MWMNoteCell.mm */,
|
||||
F6D4A7391CC1267E00BD4E5B /* MWMNoteCell.xib */,
|
||||
F6D4A73E1CC1643100BD4E5B /* MWMNoteButtonCell.h */,
|
||||
F6D4A73F1CC1643100BD4E5B /* MWMNoteButtonCell.m */,
|
||||
F6D4A7401CC1643100BD4E5B /* MWMNoteButtonCell.xib */,
|
||||
);
|
||||
name = Notes;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F6F722F51AE156A000DA3DA1 /* PlacePage */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -2924,6 +2944,16 @@
|
|||
name = iPhonePortrait;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
F6FE3C351CC50FDF00A73196 /* PlaceDoesntExist */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
F6FE3C361CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.h */,
|
||||
F6FE3C371CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm */,
|
||||
F6FE3C3A1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib */,
|
||||
);
|
||||
name = PlaceDoesntExist;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
FA065FC61286143F00FEA989 /* External Resources */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
|
@ -3172,6 +3202,7 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
4519503A1B7A3E070085DA05 /* patterns.txt in Resources */,
|
||||
F6FE3C3B1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib in Resources */,
|
||||
5605022F1B6211E100169CAD /* sound-strings in Resources */,
|
||||
34CCFDE21C22A2EF00F28959 /* MWMPlacePageOpeningHoursCell.xib in Resources */,
|
||||
452FCA3B1B6A3DF7007019AB /* colors.txt in Resources */,
|
||||
|
@ -3188,6 +3219,7 @@
|
|||
341F99DB1C6B1165001C67B8 /* MWMMapDownloaderPlaceTableViewCell.xib in Resources */,
|
||||
EE583CBB12F773F00042CBE3 /* unicode_blocks.txt in Resources */,
|
||||
EEFE7C1412F8C9E1006AF8C3 /* fonts_blacklist.txt in Resources */,
|
||||
F6D4A7431CC1643100BD4E5B /* MWMNoteButtonCell.xib in Resources */,
|
||||
4A23D15F1B8B4DD700D4EB6F /* resources-xxhdpi_clear in Resources */,
|
||||
F6BD33781B62400E00F2CE18 /* MWMLandscapeNavigationDashboard.xib in Resources */,
|
||||
F64F199E1AB81A00006EAF7E /* MWMDefaultAlert.xib in Resources */,
|
||||
|
@ -3204,6 +3236,7 @@
|
|||
EEA61603134C496A003A9827 /* 03_jomolhari-id-a3d.ttf in Resources */,
|
||||
347FD8711C60B2CE002FB65E /* MWMOpeningHoursAllDayTableViewCell.xib in Resources */,
|
||||
EEA61604134C496A003A9827 /* 04_padauk.ttf in Resources */,
|
||||
F6D4A73C1CC1267E00BD4E5B /* MWMNoteCell.xib in Resources */,
|
||||
3406FA181C6E0D8F00E9FAD2 /* MWMMapDownloadDialog.xib in Resources */,
|
||||
341F99E31C6B1165001C67B8 /* MWMMapDownloaderTableViewCell.xib in Resources */,
|
||||
341F99D71C6B1165001C67B8 /* MWMMapDownloaderLargeCountryTableViewCell.xib in Resources */,
|
||||
|
@ -3258,6 +3291,7 @@
|
|||
F6588E381B15D87A00EE1E58 /* MWMBookmarkColorCell.xib in Resources */,
|
||||
3401CD691C3C03A80028C6F8 /* MWMEditorTextTableViewCell.xib in Resources */,
|
||||
FAAEA7D1161BD26600CCD661 /* synonyms.txt in Resources */,
|
||||
F6D4A7351CC103FB00BD4E5B /* MWMEditorNotesFooter.xib in Resources */,
|
||||
4A00DBDF1AB704C400113624 /* drules_proto_dark.bin in Resources */,
|
||||
4A23D15D1B8B4DD700D4EB6F /* resources-mdpi_clear in Resources */,
|
||||
F6FE2C111B03A016009814AA /* PlacePageNavigationBar.xib in Resources */,
|
||||
|
@ -3312,6 +3346,7 @@
|
|||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
676507611C10559B00830BB3 /* colors.txt in Resources */,
|
||||
F6FE3C3C1CC5106500A73196 /* MWMPlaceDoesntExistAlert.xib in Resources */,
|
||||
671182E51C7F0DDB00CB8177 /* packed_polygons_obsolete.bin in Resources */,
|
||||
676507601C10559800830BB3 /* patterns.txt in Resources */,
|
||||
6741A9421BF340DE002C974C /* sound-strings in Resources */,
|
||||
|
@ -3328,6 +3363,7 @@
|
|||
6741A94B1BF340DE002C974C /* unicode_blocks.txt in Resources */,
|
||||
6741A94C1BF340DE002C974C /* fonts_blacklist.txt in Resources */,
|
||||
3401CD721C3C0C420028C6F8 /* MWMEditorNameTableViewCell.xib in Resources */,
|
||||
F6D4A7441CC1643100BD4E5B /* MWMNoteButtonCell.xib in Resources */,
|
||||
34CCFDE31C22A2EF00F28959 /* MWMPlacePageOpeningHoursCell.xib in Resources */,
|
||||
6741A94D1BF340DE002C974C /* resources-xxhdpi_clear in Resources */,
|
||||
6741A94E1BF340DE002C974C /* MWMLandscapeNavigationDashboard.xib in Resources */,
|
||||
|
@ -3343,6 +3379,7 @@
|
|||
341F99DC1C6B1165001C67B8 /* MWMMapDownloaderPlaceTableViewCell.xib in Resources */,
|
||||
6741A9551BF340DE002C974C /* resources-xxhdpi_dark in Resources */,
|
||||
671182E61C7F0DDD00CB8177 /* countries_obsolete.txt in Resources */,
|
||||
F6D4A73D1CC1267E00BD4E5B /* MWMNoteCell.xib in Resources */,
|
||||
347FD86E1C60B2CE002FB65E /* MWMOpeningHoursAddScheduleTableViewCell.xib in Resources */,
|
||||
9DA46A0D1C47E92100EF52BA /* resources-xhdpi_legacy in Resources */,
|
||||
9DA46A0F1C47E92100EF52BA /* resources-xxhdpi_legacy in Resources */,
|
||||
|
@ -3398,6 +3435,7 @@
|
|||
6741A9781BF340DE002C974C /* AddSetTableViewCell.xib in Resources */,
|
||||
6741A9791BF340DE002C974C /* Localizable.strings in Resources */,
|
||||
9DA46A091C47E92100EF52BA /* resources-hdpi_legacy in Resources */,
|
||||
F6D4A7361CC103FB00BD4E5B /* MWMEditorNotesFooter.xib in Resources */,
|
||||
34CCFDD81C22915600F28959 /* MWMPlacePageOpeningHoursWeekDayView.xib in Resources */,
|
||||
6741A97A1BF340DE002C974C /* MWMSearchView.xib in Resources */,
|
||||
6741A97C1BF340DE002C974C /* MWMBookmarkColorCell.xib in Resources */,
|
||||
|
@ -3513,12 +3551,12 @@
|
|||
34F9FB8B1C438ADB00F71201 /* MWMStreetEditorViewController.mm in Sources */,
|
||||
EED10A4511F78D120095FAD4 /* MapViewController.mm in Sources */,
|
||||
34CCFDD11C21945500F28959 /* MWMPlacePageOpeningHoursDayView.mm in Sources */,
|
||||
F60F02E41C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm in Sources */,
|
||||
F61579341AC2CE9A0032D8E9 /* MWMRateAlert.mm in Sources */,
|
||||
F6BB6CC61BB18C0900DF1DF2 /* MWMRoutePointCell.m in Sources */,
|
||||
A3CC2CD41A1C723900B832E1 /* LocationPredictor.mm in Sources */,
|
||||
347D7C691C2C0703006B2D0A /* UITextView+RuntimeAttributes.mm in Sources */,
|
||||
34181EB91C0ED1C30081B586 /* MWMOpeningHoursSection.mm in Sources */,
|
||||
F6D4A72F1CC1030E00BD4E5B /* MWMEditorNotesFooter.mm in Sources */,
|
||||
F62404FB1AAF3DB200B58DB6 /* UILabel+RuntimeAttributes.mm in Sources */,
|
||||
34CC4C0E1B82069C00E44C1F /* MWMSearchTabbedCollectionViewCell.mm in Sources */,
|
||||
F6588E2C1B15C26700EE1E58 /* MWMTextView.mm in Sources */,
|
||||
|
@ -3549,6 +3587,7 @@
|
|||
F6BBF2C61B4FFB72000CF8E2 /* MWMLocationAlert.mm in Sources */,
|
||||
F66A8FB01B09F268001B9C97 /* MWMPlacePage.mm in Sources */,
|
||||
F6ED13911B1EF96B0095C6DE /* MWMBookmarkDescriptionViewController.mm in Sources */,
|
||||
F6FE3C381CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm in Sources */,
|
||||
F64F19991AB81A00006EAF7E /* MWMAlertViewController.mm in Sources */,
|
||||
341223BB1BEB58FA007227E9 /* MWMBaseMapDownloaderViewController.mm in Sources */,
|
||||
FAFCB63613366E78001A5C59 /* WebViewController.mm in Sources */,
|
||||
|
@ -3609,6 +3648,7 @@
|
|||
34B82AD61B84746E00180497 /* MWMSearchSuggestionCell.mm in Sources */,
|
||||
F6C641B01C15BBE6008FCAF3 /* MWMRecentTrackSettingsController.mm in Sources */,
|
||||
341F99F11C6B4288001C67B8 /* MWMMapDownloaderSearchDataSource.mm in Sources */,
|
||||
F6D4A73A1CC1267E00BD4E5B /* MWMNoteCell.mm in Sources */,
|
||||
F6588E2F1B15D2BC00EE1E58 /* MWMBookmarkColorViewController.mm in Sources */,
|
||||
34BC1E561C2ADBD3009BBF51 /* MWMOpeningHoursCommon.mm in Sources */,
|
||||
F653CE161C71F60200A453F1 /* MWMAddPlaceNavigationBar.mm in Sources */,
|
||||
|
@ -3634,7 +3674,6 @@
|
|||
34BC72241B0DECAE0012A34B /* MWMMapViewControlsManager.mm in Sources */,
|
||||
F6B2E61F1C3D5F31005562DF /* MWMNightModeController.mm in Sources */,
|
||||
F6BD33791B62400E00F2CE18 /* MWMNavigationDashboard.mm in Sources */,
|
||||
F60F02E91C904F40003A0AF6 /* MWMReportBaseController.mm in Sources */,
|
||||
F6BD1D201CA412920047B8E8 /* MWMOsmAuthAlert.mm in Sources */,
|
||||
347FD8891C60B2CE002FB65E /* MWMOpeningHoursTimeSpanTableViewCell.mm in Sources */,
|
||||
34CD81C31C91C281007D2A60 /* MWMWhatsNewNightModeController.mm in Sources */,
|
||||
|
@ -3662,7 +3701,6 @@
|
|||
F64F4B6D1B46A51F0081A24A /* MWMDownloaderDialogCell.mm in Sources */,
|
||||
3491E7CB1C06F1F10042FE24 /* MWMPlacePageButtonCell.mm in Sources */,
|
||||
97508423199522D300A7457D /* SettingsAndMoreVC.mm in Sources */,
|
||||
F60F02E11C904E08003A0AF6 /* MWMReportProblemController.mm in Sources */,
|
||||
341F99D91C6B1165001C67B8 /* MWMMapDownloaderPlaceTableViewCell.mm in Sources */,
|
||||
341F99D51C6B1165001C67B8 /* MWMMapDownloaderLargeCountryTableViewCell.mm in Sources */,
|
||||
347FD86F1C60B2CE002FB65E /* MWMOpeningHoursAllDayTableViewCell.mm in Sources */,
|
||||
|
@ -3677,6 +3715,7 @@
|
|||
F6BD33841B6240F200F2CE18 /* MWMNavigationView.mm in Sources */,
|
||||
3472EC051B4D44BE0085CB79 /* UIFont+MapsMeFonts.mm in Sources */,
|
||||
342AD76F1B53D30C00E0B997 /* UIButton+RuntimeAttributes.mm in Sources */,
|
||||
F6D4A7411CC1643100BD4E5B /* MWMNoteButtonCell.m in Sources */,
|
||||
349C26B91BB04ED30005DF2F /* MWMBottomMenuView.mm in Sources */,
|
||||
F63732961AE9431E00A03764 /* MWMBasePlacePageView.mm in Sources */,
|
||||
F64F199B1AB81A00006EAF7E /* MWMAlert.mm in Sources */,
|
||||
|
@ -3733,6 +3772,7 @@
|
|||
6741A9BF1BF340DE002C974C /* MWMSearchTabbedCollectionViewCell.mm in Sources */,
|
||||
6741A9C01BF340DE002C974C /* MWMTextView.mm in Sources */,
|
||||
6741A9C11BF340DE002C974C /* MWMNextTurnPanel.mm in Sources */,
|
||||
F6D4A7301CC1030E00BD4E5B /* MWMEditorNotesFooter.mm in Sources */,
|
||||
6741A9C21BF340DE002C974C /* MWMiPhonePortraitPlacePage.mm in Sources */,
|
||||
347FD8841C60B2CE002FB65E /* MWMOpeningHoursTableViewCell.mm in Sources */,
|
||||
6741A9C31BF340DE002C974C /* MWMPlacePageActionBar.mm in Sources */,
|
||||
|
@ -3760,9 +3800,9 @@
|
|||
6741A9D01BF340DE002C974C /* MWMPlacePage.mm in Sources */,
|
||||
3492CC131C6DF00F0057D8E8 /* (null) in Sources */,
|
||||
6741A9D21BF340DE002C974C /* MWMBookmarkDescriptionViewController.mm in Sources */,
|
||||
F60F02E61C904E86003A0AF6 /* MWMReportProblemController.mm in Sources */,
|
||||
3476B8CC1BFDCB6700874594 /* MWMTTSSettingsViewController.mm in Sources */,
|
||||
6741A9D41BF340DE002C974C /* MWMAlertViewController.mm in Sources */,
|
||||
F6FE3C391CC50FFD00A73196 /* MWMPlaceDoesntExistAlert.mm in Sources */,
|
||||
34C9BD0A1C6DBCDA000DC38D /* MWMNavigationController.mm in Sources */,
|
||||
3406FA161C6E0C3300E9FAD2 /* MWMMapDownloadDialog.mm in Sources */,
|
||||
6741A9D51BF340DE002C974C /* WebViewController.mm in Sources */,
|
||||
|
@ -3823,6 +3863,7 @@
|
|||
6741A9FC1BF340DE002C974C /* iosOGLContextFactory.mm in Sources */,
|
||||
6741A9FE1BF340DE002C974C /* SelectSetVC.mm in Sources */,
|
||||
34BC1E571C2ADBD3009BBF51 /* MWMOpeningHoursCommon.mm in Sources */,
|
||||
F6D4A73B1CC1267E00BD4E5B /* MWMNoteCell.mm in Sources */,
|
||||
347FD8681C60B2CE002FB65E /* MWMOpeningHoursAddClosedTableViewCell.mm in Sources */,
|
||||
6741A9FF1BF340DE002C974C /* AddSetVC.mm in Sources */,
|
||||
6741AA011BF340DE002C974C /* MWMSearchTabbedViewLayout.mm in Sources */,
|
||||
|
@ -3846,8 +3887,6 @@
|
|||
34CCFDE11C22A2EF00F28959 /* MWMPlacePageOpeningHoursCell.mm in Sources */,
|
||||
6741AA0D1BF340DE002C974C /* LocalNotificationManager.mm in Sources */,
|
||||
347FD88A1C60B2CE002FB65E /* MWMOpeningHoursTimeSpanTableViewCell.mm in Sources */,
|
||||
F60F02E51C904E3E003A0AF6 /* MWMReportProblemExtendedController.mm in Sources */,
|
||||
F60F02EA1C904F40003A0AF6 /* MWMReportBaseController.mm in Sources */,
|
||||
6741AA0E1BF340DE002C974C /* AppInfo.mm in Sources */,
|
||||
F6BD1D211CA412920047B8E8 /* MWMOsmAuthAlert.mm in Sources */,
|
||||
6741AA0F1BF340DE002C974C /* MWMSearchHistoryMyPositionCell.mm in Sources */,
|
||||
|
@ -3891,6 +3930,7 @@
|
|||
6741AA241BF340DE002C974C /* UIButton+RuntimeAttributes.mm in Sources */,
|
||||
6741AA251BF340DE002C974C /* MWMBottomMenuView.mm in Sources */,
|
||||
F6FEA82E1C58F108007223CC /* MWMButton.mm in Sources */,
|
||||
F6D4A7421CC1643100BD4E5B /* MWMNoteButtonCell.m in Sources */,
|
||||
6741AA271BF340DE002C974C /* MWMBasePlacePageView.mm in Sources */,
|
||||
F64D9C9B1C8861BA0063FA30 /* MWMObjectsCategorySelectorController.mm in Sources */,
|
||||
6741AA281BF340DE002C974C /* MWMAlert.mm in Sources */,
|
||||
|
|
|
@ -30,7 +30,6 @@
|
|||
<navigationItem key="navigationItem" id="8E8-0f-UV9"/>
|
||||
<connections>
|
||||
<segue destination="Lfa-Zp-orR" kind="custom" identifier="Map2EditorSegue" customClass="MWMSegue" id="OEF-kR-jKi"/>
|
||||
<segue destination="Lgr-ZK-lGB" kind="custom" identifier="Map2ReportSegue" customClass="MWMSegue" id="gCh-Ix-flI"/>
|
||||
<segue destination="QlF-CJ-cEG" kind="custom" identifier="MapToCategorySelectorSegue" customClass="MWMSegue" id="4Cc-99-mlN"/>
|
||||
<segue destination="4R7-Vk-fQr" kind="custom" identifier="Map2OsmLogin" customClass="MWMSegue" id="7YC-t5-0WN"/>
|
||||
<segue destination="anB-7S-ebY" kind="custom" identifier="Map2FBLogin" customClass="MWMSegue" id="nCr-QR-kY7"/>
|
||||
|
@ -1008,156 +1007,6 @@
|
|||
</objects>
|
||||
<point key="canvasLocation" x="1134" y="2753"/>
|
||||
</scene>
|
||||
<!--Report Problem Controller-->
|
||||
<scene sceneID="RAz-lh-lom">
|
||||
<objects>
|
||||
<tableViewController id="Lgr-ZK-lGB" customClass="MWMReportProblemController" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="static" style="grouped" separatorStyle="default" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="li8-xE-fzL">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<sections>
|
||||
<tableViewSection id="gnw-eJ-Ieg">
|
||||
<cells>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="checkmark" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SelectableCell" id="g66-LD-sto" customClass="SelectableCell">
|
||||
<rect key="frame" x="0.0" y="35" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="g66-LD-sto" id="5kM-d9-YTL">
|
||||
<rect key="frame" x="0.0" y="0.0" width="561" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Place doesn't exist" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="477" translatesAutoresizingMaskIntoConstraints="NO" id="9h0-27-Qdf">
|
||||
<rect key="frame" x="16" y="11" width="527" height="21"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="editor_report_problem_no_place_title"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="bottomMargin" secondItem="9h0-27-Qdf" secondAttribute="bottom" constant="3.5" id="E6x-dZ-hhU"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="9h0-27-Qdf" secondAttribute="trailing" constant="10" id="aZV-kX-gEm"/>
|
||||
<constraint firstItem="9h0-27-Qdf" firstAttribute="leading" secondItem="5kM-d9-YTL" secondAttribute="leadingMargin" constant="8" id="e6j-E8-7Sr"/>
|
||||
<constraint firstItem="9h0-27-Qdf" firstAttribute="top" secondItem="5kM-d9-YTL" secondAttribute="topMargin" constant="3" id="fdM-4J-HXY"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="titleLabel" destination="9h0-27-Qdf" id="H0n-Kf-h4a"/>
|
||||
</connections>
|
||||
</tableViewCell>
|
||||
<tableViewCell contentMode="scaleToFill" selectionStyle="default" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="LinkCell" id="EX5-r9-xqT" customClass="LinkCell">
|
||||
<rect key="frame" x="0.0" y="79" width="600" height="44"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="EX5-r9-xqT" id="nQT-aY-P4o">
|
||||
<rect key="frame" x="0.0" y="0.0" width="567" height="43"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Other" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" preferredMaxLayoutWidth="483" translatesAutoresizingMaskIntoConstraints="NO" id="Tyx-T5-jhZ">
|
||||
<rect key="frame" x="16" y="11" width="533" height="21"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<nil key="highlightedColor"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedText" value="editor_report_problem_other_title"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</label>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstItem="Tyx-T5-jhZ" firstAttribute="leading" secondItem="nQT-aY-P4o" secondAttribute="leadingMargin" constant="8" id="NBC-ht-mZv"/>
|
||||
<constraint firstItem="Tyx-T5-jhZ" firstAttribute="top" secondItem="nQT-aY-P4o" secondAttribute="topMargin" constant="3" id="Zup-2W-vrv"/>
|
||||
<constraint firstAttribute="trailingMargin" secondItem="Tyx-T5-jhZ" secondAttribute="trailing" constant="10" id="lbh-4g-faW"/>
|
||||
<constraint firstAttribute="bottomMargin" secondItem="Tyx-T5-jhZ" secondAttribute="bottom" constant="3.5" id="ynn-p5-DoB"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
<connections>
|
||||
<outlet property="titleLabel" destination="Tyx-T5-jhZ" id="ybn-sU-9Cm"/>
|
||||
<segue destination="Ajb-eT-8P5" kind="custom" identifier="2ExtendedReportSegue" customClass="MWMSegue" id="Gb3-ux-wqf"/>
|
||||
</connections>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
</sections>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="Lgr-ZK-lGB" id="thy-3c-4iP"/>
|
||||
<outlet property="delegate" destination="Lgr-ZK-lGB" id="kA1-Uj-n5M"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<connections>
|
||||
<outlet property="placeDoesntExistCell" destination="g66-LD-sto" id="8A7-uC-72C"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="HsP-Mh-TdZ" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="1866" y="1978"/>
|
||||
</scene>
|
||||
<!--Report Problem Extended Controller-->
|
||||
<scene sceneID="MQs-9R-SZd">
|
||||
<objects>
|
||||
<tableViewController id="Ajb-eT-8P5" customClass="MWMReportProblemExtendedController" sceneMemberID="viewController">
|
||||
<tableView key="view" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" keyboardDismissMode="interactive" dataMode="static" style="grouped" separatorStyle="default" showsSelectionImmediatelyOnTouchBegin="NO" rowHeight="44" sectionHeaderHeight="18" sectionFooterHeight="18" id="Urf-xt-sj3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<color key="backgroundColor" red="0.93725490199999995" green="0.93725490199999995" blue="0.95686274510000002" alpha="1" colorSpace="calibratedRGB"/>
|
||||
<sections>
|
||||
<tableViewSection id="M33-4h-2SR">
|
||||
<cells>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" rowHeight="128" id="Wg5-bm-vvK">
|
||||
<rect key="frame" x="0.0" y="35" width="600" height="128"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Wg5-bm-vvK" id="2nm-b7-p6S">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="127"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" textAlignment="natural" translatesAutoresizingMaskIntoConstraints="NO" id="6cE-dD-8Es" customClass="MWMTextView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="600" height="127"/>
|
||||
<color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
|
||||
<inset key="scrollIndicatorInsets" minX="16" minY="12" maxX="16" maxY="12"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="14"/>
|
||||
<textInputTraits key="textInputTraits" autocapitalizationType="sentences"/>
|
||||
<userDefinedRuntimeAttributes>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="localizedPlaceholder" value="detailed_problem_description"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="backgroundColorName" value="white"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="colorName" value="blackPrimaryText"/>
|
||||
<userDefinedRuntimeAttribute type="string" keyPath="fontName" value="regular17"/>
|
||||
</userDefinedRuntimeAttributes>
|
||||
</textView>
|
||||
</subviews>
|
||||
<constraints>
|
||||
<constraint firstAttribute="trailing" secondItem="6cE-dD-8Es" secondAttribute="trailing" id="46N-cT-757"/>
|
||||
<constraint firstItem="6cE-dD-8Es" firstAttribute="leading" secondItem="2nm-b7-p6S" secondAttribute="leading" id="EcU-2x-yiV"/>
|
||||
<constraint firstAttribute="bottom" secondItem="6cE-dD-8Es" secondAttribute="bottom" id="ijn-qI-Zcj"/>
|
||||
<constraint firstItem="6cE-dD-8Es" firstAttribute="top" secondItem="2nm-b7-p6S" secondAttribute="top" id="mS6-LW-Exq"/>
|
||||
</constraints>
|
||||
</tableViewCellContentView>
|
||||
</tableViewCell>
|
||||
</cells>
|
||||
</tableViewSection>
|
||||
</sections>
|
||||
<connections>
|
||||
<outlet property="dataSource" destination="Ajb-eT-8P5" id="tKq-fG-sly"/>
|
||||
<outlet property="delegate" destination="Ajb-eT-8P5" id="x6s-Q1-1pZ"/>
|
||||
</connections>
|
||||
</tableView>
|
||||
<connections>
|
||||
<outlet property="textView" destination="6cE-dD-8Es" id="j33-dl-6So"/>
|
||||
</connections>
|
||||
</tableViewController>
|
||||
<placeholder placeholderIdentifier="IBFirstResponder" id="vnV-2b-u0g" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||
</objects>
|
||||
<point key="canvasLocation" x="2584" y="1978"/>
|
||||
</scene>
|
||||
<!--AuthorizationOSM Login View Controller-->
|
||||
<scene sceneID="14Y-XP-wqe">
|
||||
<objects>
|
||||
|
|
Loading…
Add table
Reference in a new issue