mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-19 13:03:36 +00:00
[iOS] Drop products features on the place page
Signed-off-by: Jean-Baptiste Charron <jeanbaptiste.charron@outlook.fr>
This commit is contained in:
committed by
Yannik Bloscheck
parent
9a759229f9
commit
3abf354099
@@ -92,11 +92,6 @@
|
|||||||
ED46DE3A2D09BE21007CACD6 /* PlacePageTrackData.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED46DE382D09BE21007CACD6 /* PlacePageTrackData.mm */; };
|
ED46DE3A2D09BE21007CACD6 /* PlacePageTrackData.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED46DE382D09BE21007CACD6 /* PlacePageTrackData.mm */; };
|
||||||
ED46DE3B2D09BE21007CACD6 /* PlacePageTrackData.h in Headers */ = {isa = PBXBuildFile; fileRef = ED46DE372D09BE21007CACD6 /* PlacePageTrackData.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
ED46DE3B2D09BE21007CACD6 /* PlacePageTrackData.h in Headers */ = {isa = PBXBuildFile; fileRef = ED46DE372D09BE21007CACD6 /* PlacePageTrackData.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
ED46DE3C2D09BE21007CACD6 /* PlacePageTrackData+Core.h in Headers */ = {isa = PBXBuildFile; fileRef = ED46DE392D09BE21007CACD6 /* PlacePageTrackData+Core.h */; };
|
ED46DE3C2D09BE21007CACD6 /* PlacePageTrackData+Core.h in Headers */ = {isa = PBXBuildFile; fileRef = ED46DE392D09BE21007CACD6 /* PlacePageTrackData+Core.h */; };
|
||||||
ED49D7222CED0395004AF27E /* ProductsConfiguration+Core.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED49D7202CED0395004AF27E /* ProductsConfiguration+Core.mm */; };
|
|
||||||
ED49D7242CED03AC004AF27E /* ProductsConfiguration+Core.h in Headers */ = {isa = PBXBuildFile; fileRef = ED49D7232CED03A8004AF27E /* ProductsConfiguration+Core.h */; };
|
|
||||||
ED49D75B2CEF8BD2004AF27E /* ProductsConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED49D7562CEF850F004AF27E /* ProductsConfiguration.swift */; };
|
|
||||||
ED49D75F2CEFA8C0004AF27E /* Product+Core.h in Headers */ = {isa = PBXBuildFile; fileRef = ED49D75E2CEFA8C0004AF27E /* Product+Core.h */; };
|
|
||||||
ED49D7612CEFA8E1004AF27E /* Product+Core.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED49D7602CEFA8E1004AF27E /* Product+Core.mm */; };
|
|
||||||
ED7306F42D0C5D2400523AA1 /* TrackInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED7306F12D0C5D2400523AA1 /* TrackInfo.mm */; };
|
ED7306F42D0C5D2400523AA1 /* TrackInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = ED7306F12D0C5D2400523AA1 /* TrackInfo.mm */; };
|
||||||
ED7306F52D0C5D2400523AA1 /* TrackInfo+Core.h in Headers */ = {isa = PBXBuildFile; fileRef = ED7306F22D0C5D2400523AA1 /* TrackInfo+Core.h */; };
|
ED7306F52D0C5D2400523AA1 /* TrackInfo+Core.h in Headers */ = {isa = PBXBuildFile; fileRef = ED7306F22D0C5D2400523AA1 /* TrackInfo+Core.h */; };
|
||||||
ED7306F62D0C5D2400523AA1 /* TrackInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED7306F02D0C5D2400523AA1 /* TrackInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
ED7306F62D0C5D2400523AA1 /* TrackInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = ED7306F02D0C5D2400523AA1 /* TrackInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
@@ -205,11 +200,6 @@
|
|||||||
ED46DE372D09BE21007CACD6 /* PlacePageTrackData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlacePageTrackData.h; sourceTree = "<group>"; };
|
ED46DE372D09BE21007CACD6 /* PlacePageTrackData.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PlacePageTrackData.h; sourceTree = "<group>"; };
|
||||||
ED46DE382D09BE21007CACD6 /* PlacePageTrackData.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = PlacePageTrackData.mm; sourceTree = "<group>"; };
|
ED46DE382D09BE21007CACD6 /* PlacePageTrackData.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = PlacePageTrackData.mm; sourceTree = "<group>"; };
|
||||||
ED46DE392D09BE21007CACD6 /* PlacePageTrackData+Core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PlacePageTrackData+Core.h"; sourceTree = "<group>"; };
|
ED46DE392D09BE21007CACD6 /* PlacePageTrackData+Core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "PlacePageTrackData+Core.h"; sourceTree = "<group>"; };
|
||||||
ED49D7202CED0395004AF27E /* ProductsConfiguration+Core.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = "ProductsConfiguration+Core.mm"; sourceTree = "<group>"; };
|
|
||||||
ED49D7232CED03A8004AF27E /* ProductsConfiguration+Core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ProductsConfiguration+Core.h"; sourceTree = "<group>"; };
|
|
||||||
ED49D7562CEF850F004AF27E /* ProductsConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductsConfiguration.swift; sourceTree = "<group>"; };
|
|
||||||
ED49D75E2CEFA8C0004AF27E /* Product+Core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Product+Core.h"; sourceTree = "<group>"; };
|
|
||||||
ED49D7602CEFA8E1004AF27E /* Product+Core.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = "Product+Core.mm"; sourceTree = "<group>"; };
|
|
||||||
ED7306F02D0C5D2400523AA1 /* TrackInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TrackInfo.h; sourceTree = "<group>"; };
|
ED7306F02D0C5D2400523AA1 /* TrackInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TrackInfo.h; sourceTree = "<group>"; };
|
||||||
ED7306F12D0C5D2400523AA1 /* TrackInfo.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = TrackInfo.mm; sourceTree = "<group>"; };
|
ED7306F12D0C5D2400523AA1 /* TrackInfo.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = TrackInfo.mm; sourceTree = "<group>"; };
|
||||||
ED7306F22D0C5D2400523AA1 /* TrackInfo+Core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TrackInfo+Core.h"; sourceTree = "<group>"; };
|
ED7306F22D0C5D2400523AA1 /* TrackInfo+Core.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "TrackInfo+Core.h"; sourceTree = "<group>"; };
|
||||||
@@ -341,11 +331,6 @@
|
|||||||
47F701ED238C86F000D18E95 /* PlacePageButtonsData.h */,
|
47F701ED238C86F000D18E95 /* PlacePageButtonsData.h */,
|
||||||
47F701F1238C877C00D18E95 /* PlacePageButtonsData+Core.h */,
|
47F701F1238C877C00D18E95 /* PlacePageButtonsData+Core.h */,
|
||||||
47F701EE238C86F000D18E95 /* PlacePageButtonsData.mm */,
|
47F701EE238C86F000D18E95 /* PlacePageButtonsData.mm */,
|
||||||
ED49D7562CEF850F004AF27E /* ProductsConfiguration.swift */,
|
|
||||||
ED49D7232CED03A8004AF27E /* ProductsConfiguration+Core.h */,
|
|
||||||
ED49D7202CED0395004AF27E /* ProductsConfiguration+Core.mm */,
|
|
||||||
ED49D75E2CEFA8C0004AF27E /* Product+Core.h */,
|
|
||||||
ED49D7602CEFA8E1004AF27E /* Product+Core.mm */,
|
|
||||||
);
|
);
|
||||||
path = Common;
|
path = Common;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -530,7 +515,6 @@
|
|||||||
9957FADB237ACB1100855F48 /* DeepLinkSearchData.h in Headers */,
|
9957FADB237ACB1100855F48 /* DeepLinkSearchData.h in Headers */,
|
||||||
479F7056234FB7F200011E2E /* MWMBookmarksManager.h in Headers */,
|
479F7056234FB7F200011E2E /* MWMBookmarksManager.h in Headers */,
|
||||||
47942D83237CC52E00DEFAE3 /* MWMOpeningHours.h in Headers */,
|
47942D83237CC52E00DEFAE3 /* MWMOpeningHours.h in Headers */,
|
||||||
ED49D7242CED03AC004AF27E /* ProductsConfiguration+Core.h in Headers */,
|
|
||||||
4718C4322355FC3C00640DF1 /* MWMNetworkPolicy.h in Headers */,
|
4718C4322355FC3C00640DF1 /* MWMNetworkPolicy.h in Headers */,
|
||||||
47CA68EC2506F6F100671019 /* MWMTrack+Core.h in Headers */,
|
47CA68EC2506F6F100671019 /* MWMTrack+Core.h in Headers */,
|
||||||
47F4F1FD23A3D1AC0022FD56 /* MWMMapNodeAttributes+Core.h in Headers */,
|
47F4F1FD23A3D1AC0022FD56 /* MWMMapNodeAttributes+Core.h in Headers */,
|
||||||
@@ -540,7 +524,6 @@
|
|||||||
47942DA0237D954400DEFAE3 /* PlacePageBookmarkData+Core.h in Headers */,
|
47942DA0237D954400DEFAE3 /* PlacePageBookmarkData+Core.h in Headers */,
|
||||||
479F704B234F78AB00011E2E /* MWMFrameworkHelper.h in Headers */,
|
479F704B234F78AB00011E2E /* MWMFrameworkHelper.h in Headers */,
|
||||||
47D9019923AC236100D9364C /* MWMMapUpdateInfo+Core.h in Headers */,
|
47D9019923AC236100D9364C /* MWMMapUpdateInfo+Core.h in Headers */,
|
||||||
ED49D75F2CEFA8C0004AF27E /* Product+Core.h in Headers */,
|
|
||||||
47942D6E237CC3E800DEFAE3 /* PlacePagePreviewData+Core.h in Headers */,
|
47942D6E237CC3E800DEFAE3 /* PlacePagePreviewData+Core.h in Headers */,
|
||||||
47942D87237CC55800DEFAE3 /* MWMOpeningHoursCommon.h in Headers */,
|
47942D87237CC55800DEFAE3 /* MWMOpeningHoursCommon.h in Headers */,
|
||||||
CE838D272D9D834F00476DD0 /* PlacePagePhone.h in Headers */,
|
CE838D272D9D834F00476DD0 /* PlacePagePhone.h in Headers */,
|
||||||
@@ -662,14 +645,12 @@
|
|||||||
47D9019623AC22E500D9364C /* MWMMapUpdateInfo.mm in Sources */,
|
47D9019623AC22E500D9364C /* MWMMapUpdateInfo.mm in Sources */,
|
||||||
47CA68E42506D29000671019 /* MWMBookmarkColor.mm in Sources */,
|
47CA68E42506D29000671019 /* MWMBookmarkColor.mm in Sources */,
|
||||||
471AB98E23AB925D00F56D49 /* MWMMapSearchResult.mm in Sources */,
|
471AB98E23AB925D00F56D49 /* MWMMapSearchResult.mm in Sources */,
|
||||||
ED49D7612CEFA8E1004AF27E /* Product+Core.mm in Sources */,
|
|
||||||
47C637D62354AEBE00E12DE0 /* MWMMapOverlayManager.mm in Sources */,
|
47C637D62354AEBE00E12DE0 /* MWMMapOverlayManager.mm in Sources */,
|
||||||
475784C32344B422008291A4 /* Framework.cpp in Sources */,
|
475784C32344B422008291A4 /* Framework.cpp in Sources */,
|
||||||
4718C4332355FC3C00640DF1 /* MWMNetworkPolicy.mm in Sources */,
|
4718C4332355FC3C00640DF1 /* MWMNetworkPolicy.mm in Sources */,
|
||||||
47CA68E92506F61400671019 /* MWMTrack.mm in Sources */,
|
47CA68E92506F61400671019 /* MWMTrack.mm in Sources */,
|
||||||
472602A924092C5B00731135 /* MWMGeoUtil.mm in Sources */,
|
472602A924092C5B00731135 /* MWMGeoUtil.mm in Sources */,
|
||||||
47F701F0238C86F000D18E95 /* PlacePageButtonsData.mm in Sources */,
|
47F701F0238C86F000D18E95 /* PlacePageButtonsData.mm in Sources */,
|
||||||
ED49D7222CED0395004AF27E /* ProductsConfiguration+Core.mm in Sources */,
|
|
||||||
9940622123EAC57900493D1A /* ElevationHeightPoint.m in Sources */,
|
9940622123EAC57900493D1A /* ElevationHeightPoint.m in Sources */,
|
||||||
CE838D282D9D834F00476DD0 /* PlacePagePhone.m in Sources */,
|
CE838D282D9D834F00476DD0 /* PlacePagePhone.m in Sources */,
|
||||||
ED965B2A2CDA1C440049E39E /* DateTimeFormatter.swift in Sources */,
|
ED965B2A2CDA1C440049E39E /* DateTimeFormatter.swift in Sources */,
|
||||||
@@ -677,7 +658,6 @@
|
|||||||
47E8163623B1889C008FD836 /* MWMStorage.mm in Sources */,
|
47E8163623B1889C008FD836 /* MWMStorage.mm in Sources */,
|
||||||
ED965B0D2CD67A470049E39E /* DistanceFormatter.mm in Sources */,
|
ED965B0D2CD67A470049E39E /* DistanceFormatter.mm in Sources */,
|
||||||
EDC4E3512C5D222D009286A2 /* RecentlyDeletedCategory.mm in Sources */,
|
EDC4E3512C5D222D009286A2 /* RecentlyDeletedCategory.mm in Sources */,
|
||||||
ED49D75B2CEF8BD2004AF27E /* ProductsConfiguration.swift in Sources */,
|
|
||||||
ED46DE3A2D09BE21007CACD6 /* PlacePageTrackData.mm in Sources */,
|
ED46DE3A2D09BE21007CACD6 /* PlacePageTrackData.mm in Sources */,
|
||||||
47CA68DE2502022400671019 /* MWMBookmark.mm in Sources */,
|
47CA68DE2502022400671019 /* MWMBookmark.mm in Sources */,
|
||||||
9957FAE9237AE5B000855F48 /* Logger.mm in Sources */,
|
9957FAE9237AE5B000855F48 /* Logger.mm in Sources */,
|
||||||
|
|||||||
@@ -9,13 +9,6 @@
|
|||||||
|
|
||||||
typedef NS_ENUM(NSUInteger, MWMZoomMode) { MWMZoomModeIn = 0, MWMZoomModeOut };
|
typedef NS_ENUM(NSUInteger, MWMZoomMode) { MWMZoomModeIn = 0, MWMZoomModeOut };
|
||||||
|
|
||||||
typedef NS_ENUM(NSInteger, ProductsPopupCloseReason) {
|
|
||||||
ProductsPopupCloseReasonClose,
|
|
||||||
ProductsPopupCloseReasonSelectProduct,
|
|
||||||
ProductsPopupCloseReasonAlreadyDonated,
|
|
||||||
ProductsPopupCloseReasonRemindLater
|
|
||||||
};
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
NS_ASSUME_NONNULL_BEGIN
|
||||||
|
|
||||||
typedef void (^SearchInDownloaderCompletions)(NSArray<MWMMapSearchResult *> *results, BOOL finished);
|
typedef void (^SearchInDownloaderCompletions)(NSArray<MWMMapSearchResult *> *results, BOOL finished);
|
||||||
@@ -35,19 +28,8 @@ typedef void (^TrackRecordingUpdatedHandler)(TrackInfo * _Nonnull trackInfo);
|
|||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
@class ProductsConfiguration;
|
|
||||||
@class Product;
|
|
||||||
|
|
||||||
@protocol ProductsManager <NSObject>
|
|
||||||
|
|
||||||
+ (nullable ProductsConfiguration *)getProductsConfiguration;
|
|
||||||
+ (void)didCloseProductsPopupWithReason:(ProductsPopupCloseReason)reason;
|
|
||||||
+ (void)didSelectProduct:(Product *)product;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
NS_SWIFT_NAME(FrameworkHelper)
|
NS_SWIFT_NAME(FrameworkHelper)
|
||||||
@interface MWMFrameworkHelper : NSObject<TrackRecorder, ProductsManager>
|
@interface MWMFrameworkHelper : NSObject<TrackRecorder>
|
||||||
|
|
||||||
+ (void)processFirstLaunch:(BOOL)hasLocation;
|
+ (void)processFirstLaunch:(BOOL)hasLocation;
|
||||||
+ (void)setVisibleViewport:(CGRect)rect scaleFactor:(CGFloat)scale;
|
+ (void)setVisibleViewport:(CGRect)rect scaleFactor:(CGFloat)scale;
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
#import "MWMFrameworkHelper.h"
|
#import "MWMFrameworkHelper.h"
|
||||||
#import "MWMMapSearchResult+Core.h"
|
#import "MWMMapSearchResult+Core.h"
|
||||||
#import "ProductsConfiguration+Core.h"
|
|
||||||
#import "Product+Core.h"
|
|
||||||
#import "TrackInfo+Core.h"
|
#import "TrackInfo+Core.h"
|
||||||
#import "ElevationProfileData+Core.h"
|
#import "ElevationProfileData+Core.h"
|
||||||
|
|
||||||
@@ -12,19 +10,6 @@
|
|||||||
#include "platform/local_country_file_utils.hpp"
|
#include "platform/local_country_file_utils.hpp"
|
||||||
#include "platform/network_policy_ios.h"
|
#include "platform/network_policy_ios.h"
|
||||||
|
|
||||||
static Framework::ProductsPopupCloseReason ConvertProductPopupCloseReasonToCore(ProductsPopupCloseReason reason) {
|
|
||||||
switch (reason) {
|
|
||||||
case ProductsPopupCloseReasonClose:
|
|
||||||
return Framework::ProductsPopupCloseReason::Close;
|
|
||||||
case ProductsPopupCloseReasonSelectProduct:
|
|
||||||
return Framework::ProductsPopupCloseReason::SelectProduct;
|
|
||||||
case ProductsPopupCloseReasonAlreadyDonated:
|
|
||||||
return Framework::ProductsPopupCloseReason::AlreadyDonated;
|
|
||||||
case ProductsPopupCloseReasonRemindLater:
|
|
||||||
return Framework::ProductsPopupCloseReason::RemindLater;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@implementation MWMFrameworkHelper
|
@implementation MWMFrameworkHelper
|
||||||
|
|
||||||
+ (void)processFirstLaunch:(BOOL)hasLocation {
|
+ (void)processFirstLaunch:(BOOL)hasLocation {
|
||||||
@@ -255,19 +240,4 @@ static Framework::ProductsPopupCloseReason ConvertProductPopupCloseReasonToCore(
|
|||||||
return [[ElevationProfileData alloc] initWithElevationInfo:GetFramework().GetTrackRecordingElevationInfo()];
|
return [[ElevationProfileData alloc] initWithElevationInfo:GetFramework().GetTrackRecordingElevationInfo()];
|
||||||
}
|
}
|
||||||
|
|
||||||
// MARK: - ProductsManager
|
|
||||||
|
|
||||||
+ (nullable ProductsConfiguration *)getProductsConfiguration {
|
|
||||||
auto const & config = GetFramework().GetProductsConfiguration();
|
|
||||||
return config.has_value() ? [[ProductsConfiguration alloc] init:config.value()] : nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)didCloseProductsPopupWithReason:(ProductsPopupCloseReason)reason {
|
|
||||||
GetFramework().DidCloseProductsPopup(ConvertProductPopupCloseReasonToCore(reason));
|
|
||||||
}
|
|
||||||
|
|
||||||
+ (void)didSelectProduct:(Product *)product {
|
|
||||||
GetFramework().DidSelectProduct({product.title.UTF8String, product.link.UTF8String});
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -1,10 +0,0 @@
|
|||||||
#include <CoreApi/CoreApi-Swift.h>
|
|
||||||
#include <CoreApi/Framework.h>
|
|
||||||
|
|
||||||
#include "platform/products.hpp"
|
|
||||||
|
|
||||||
@interface Product (Core)
|
|
||||||
|
|
||||||
- (nonnull instancetype)init:(products::ProductsConfig::Product const &)product;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
#import "Product+Core.h"
|
|
||||||
|
|
||||||
@implementation Product (Core)
|
|
||||||
|
|
||||||
- (nonnull instancetype)init:(products::ProductsConfig::Product const &)product {
|
|
||||||
self = [self initWithTitle:[NSString stringWithCString:product.GetTitle().c_str() encoding:NSUTF8StringEncoding]
|
|
||||||
link:[NSString stringWithCString:product.GetLink().c_str() encoding:NSUTF8StringEncoding]];
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
#include <CoreApi/CoreApi-Swift.h>
|
|
||||||
#include <CoreApi/Framework.h>
|
|
||||||
|
|
||||||
#include "platform/products.hpp"
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_BEGIN
|
|
||||||
|
|
||||||
@interface ProductsConfiguration (Core)
|
|
||||||
|
|
||||||
- (nonnull instancetype)init:(products::ProductsConfig const &)config;
|
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
NS_ASSUME_NONNULL_END
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
#import "ProductsConfiguration+Core.h"
|
|
||||||
#import "Product+Core.h"
|
|
||||||
|
|
||||||
@implementation ProductsConfiguration (Core)
|
|
||||||
|
|
||||||
- (nonnull instancetype)init:(products::ProductsConfig const &)config {
|
|
||||||
auto const & coreProducts = config.GetProducts();
|
|
||||||
NSMutableArray<Product *> * products = [[NSMutableArray<Product *> alloc] initWithCapacity:coreProducts.size()];
|
|
||||||
for (auto const & product : coreProducts)
|
|
||||||
[products addObject:[[Product alloc] init:product]];
|
|
||||||
self = [self initWithPlacePagePrompt:[NSString stringWithCString:config.GetPlacePagePrompt().c_str() encoding:NSUTF8StringEncoding] products:products];
|
|
||||||
return self;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
import Foundation
|
|
||||||
|
|
||||||
@objcMembers
|
|
||||||
public final class Product: NSObject {
|
|
||||||
public let title: String
|
|
||||||
public let link: String
|
|
||||||
|
|
||||||
public init(title: String, link: String) {
|
|
||||||
self.title = title
|
|
||||||
self.link = link
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@objcMembers
|
|
||||||
public final class ProductsConfiguration: NSObject {
|
|
||||||
public let placePagePrompt: String
|
|
||||||
public let products: [Product]
|
|
||||||
|
|
||||||
public init(placePagePrompt: String, products: [Product]) {
|
|
||||||
self.placePagePrompt = placePagePrompt
|
|
||||||
self.products = products
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Skenk";
|
"donate" = "Skenk";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Skenk om saam die beste kaarte te bou!";
|
|
||||||
"already_donated" = "Reeds geskenk";
|
|
||||||
"remind_me_later" = "Herinner later";
|
|
||||||
"support_us" = "Ondersteun CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Kopiereg";
|
"copyright" = "Kopiereg";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "تبرع";
|
"donate" = "تبرع";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "تبرع لبناء أفضل الخرائط معًا!";
|
|
||||||
"already_donated" = "تم التبرع";
|
|
||||||
"remind_me_later" = "ذكر لاحقاً";
|
|
||||||
"support_us" = "دعم CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "حقوق النشر";
|
"copyright" = "حقوق النشر";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Bağışlamaq";
|
"donate" = "Bağışlamaq";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Ən yaxşı xəritələri birlikdə qurmaq üçün ianə edin!";
|
|
||||||
"already_donated" = "Artıq ianə edildi";
|
|
||||||
"remind_me_later" = "Daha sonra xatırlat";
|
|
||||||
"support_us" = "CoMaps-i dəstəkləmək";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Müəllif hüququ";
|
"copyright" = "Müəllif hüququ";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Падтрымаць грашыма";
|
"donate" = "Падтрымаць грашыма";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Падтрымайць, каб разам ствараць лепшыя карты!";
|
|
||||||
"already_donated" = "Ужо ахвяравана";
|
|
||||||
"remind_me_later" = "Нагадаць пазней";
|
|
||||||
"support_us" = "Падтрымаць CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Аўтарскія правы";
|
"copyright" = "Аўтарскія правы";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Дарете";
|
"donate" = "Дарете";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Дарете, за да създадем заедно най-добрите карти!";
|
|
||||||
"already_donated" = "Вече дарено";
|
|
||||||
"remind_me_later" = "Напомни по-късно";
|
|
||||||
"support_us" = "Подкрепи CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Авторски права";
|
"copyright" = "Авторски права";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Donatiu";
|
"donate" = "Donatiu";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Fes una donació per construir els millors mapes junts!";
|
|
||||||
"already_donated" = "Ja donat";
|
|
||||||
"remind_me_later" = "Recorda més tard";
|
|
||||||
"support_us" = "Donar suport a CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Drets d’autor";
|
"copyright" = "Drets d’autor";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Darovat";
|
"donate" = "Darovat";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Přispějte, abychom společně vytvořili ty nejlepší mapy!";
|
|
||||||
"already_donated" = "Již darováno";
|
|
||||||
"remind_me_later" = "Připomeň později";
|
|
||||||
"support_us" = "Podpořit CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Autorská práva";
|
"copyright" = "Autorská práva";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Doner";
|
"donate" = "Doner";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Donér for at bygge de bedste kort sammen!";
|
|
||||||
"already_donated" = "Allerede doneret";
|
|
||||||
"remind_me_later" = "Påmind mig senere";
|
|
||||||
"support_us" = "Støt CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Copyright";
|
"copyright" = "Copyright";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Spenden";
|
"donate" = "Spenden";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Spende, um gemeinsam die besten Karten zu erstellen!";
|
|
||||||
"already_donated" = "Bereits gespendet";
|
|
||||||
"remind_me_later" = "Später erinnern";
|
|
||||||
"support_us" = "CoMaps unterstützen";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Copyright";
|
"copyright" = "Copyright";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Δωρεά";
|
"donate" = "Δωρεά";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Κάντε δωρεά για να φτιάξουμε μαζί τους καλύτερους χάρτες!";
|
|
||||||
"already_donated" = "Ήδη δωρεά";
|
|
||||||
"remind_me_later" = "Υπενθύμισε αργότερα";
|
|
||||||
"support_us" = "Υποστήριξε το CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Πνευματικά δικαιώματα";
|
"copyright" = "Πνευματικά δικαιώματα";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Donate";
|
"donate" = "Donate";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Donate to build the best maps together!";
|
|
||||||
"already_donated" = "Already donated";
|
|
||||||
"remind_me_later" = "Remind later";
|
|
||||||
"support_us" = "Support CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Copyright";
|
"copyright" = "Copyright";
|
||||||
|
|
||||||
|
|||||||
@@ -306,12 +306,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Donate";
|
"donate" = "Donate";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Donate to build the best maps together!";
|
|
||||||
"already_donated" = "Already donated";
|
|
||||||
"remind_me_later" = "Remind later";
|
|
||||||
"support_us" = "Support CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Copyright";
|
"copyright" = "Copyright";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Donar";
|
"donate" = "Donar";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "¡Dona para construir los mejores mapas juntos!";
|
|
||||||
"already_donated" = "Ya donado";
|
|
||||||
"remind_me_later" = "Recordar más tarde";
|
|
||||||
"support_us" = "Apoyar CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Derechos de autor";
|
"copyright" = "Derechos de autor";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Donar";
|
"donate" = "Donar";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Haga un donativo para desarrollar juntos los mejores mapas.";
|
|
||||||
"already_donated" = "Ya he donado";
|
|
||||||
"remind_me_later" = "Recordar más tarde";
|
|
||||||
"support_us" = "Apoyar CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Derechos de autor";
|
"copyright" = "Derechos de autor";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Anneta";
|
"donate" = "Anneta";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Anneta, et luua koos parimaid kaarte!";
|
|
||||||
"already_donated" = "Juba annetasin";
|
|
||||||
"remind_me_later" = "Meenuta hiljem";
|
|
||||||
"support_us" = "Toeta CoMapsi";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Autoriõigused";
|
"copyright" = "Autoriõigused";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Dohaintza eman";
|
"donate" = "Dohaintza eman";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Eman dohaintza elkarrekin mapa onenak eraikitzeko!";
|
|
||||||
"already_donated" = "Dohaintza jada emana";
|
|
||||||
"remind_me_later" = "Gogoratu geroago";
|
|
||||||
"support_us" = "Sustatu CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Egile eskubideak";
|
"copyright" = "Egile eskubideak";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "حمایت مالی";
|
"donate" = "حمایت مالی";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "کمک مالی کنید تا بهترین نقشه ها را با هم بسازید!";
|
|
||||||
"already_donated" = "قبلاً اهدا شده";
|
|
||||||
"remind_me_later" = "بعداً یادآوری کن";
|
|
||||||
"support_us" = "پشتیبانی از CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "حق نشر و کپی رایت";
|
"copyright" = "حق نشر و کپی رایت";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Lahjoita";
|
"donate" = "Lahjoita";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Lahjoittakaa, jotta voimme rakentaa parhaita karttoja yhdessä!";
|
|
||||||
"already_donated" = "Jo lahjoitettu";
|
|
||||||
"remind_me_later" = "Muistuta myöhemmin";
|
|
||||||
"support_us" = "Tukea CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Tekijänoikeudet";
|
"copyright" = "Tekijänoikeudet";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Faire un don";
|
"donate" = "Faire un don";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Fais un don pour construire ensemble les meilleures cartes !";
|
|
||||||
"already_donated" = "Déjà donné";
|
|
||||||
"remind_me_later" = "Rappeler plus tard";
|
|
||||||
"support_us" = "Soutenir CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Tous droits réservés";
|
"copyright" = "Tous droits réservés";
|
||||||
|
|
||||||
|
|||||||
@@ -126,9 +126,6 @@
|
|||||||
"help" = "Axuda";
|
"help" = "Axuda";
|
||||||
"faq" = "Preguntas frecuentes";
|
"faq" = "Preguntas frecuentes";
|
||||||
"donate" = "Doar";
|
"donate" = "Doar";
|
||||||
"remind_me_later" = "Lembrar máis tarde";
|
|
||||||
"already_donated" = "Xa doei";
|
|
||||||
"support_us" = "Apoiar CoMaps";
|
|
||||||
"copyright" = "Dereitos de autor";
|
"copyright" = "Dereitos de autor";
|
||||||
"report_a_bug" = "Informar dun fallo";
|
"report_a_bug" = "Informar dun fallo";
|
||||||
"report_incorrect_map_bug" = "Informar ou corrixir datos de mapa incorrectos";
|
"report_incorrect_map_bug" = "Informar ou corrixir datos de mapa incorrectos";
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "לתרום";
|
"donate" = "לתרום";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "תרמו כדי לבנות יחד את המפות הטובות ביותר!";
|
|
||||||
"already_donated" = "כבר נתרם";
|
|
||||||
"remind_me_later" = "הזכר מאוחר יותר";
|
|
||||||
"support_us" = "לתמוך ב-CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "זכויות יוצרים";
|
"copyright" = "זכויות יוצרים";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "दान देना";
|
"donate" = "दान देना";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "एक साथ सर्वोत्तम मानचित्र बनाने के लिए दान करें!";
|
|
||||||
"already_donated" = "पहले से दान";
|
|
||||||
"remind_me_later" = "बाद में याद दिलाना";
|
|
||||||
"support_us" = "CoMaps का समर्थन करें";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "कॉपीराइट";
|
"copyright" = "कॉपीराइट";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Adományozás";
|
"donate" = "Adományozás";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Adományozzon, hogy együtt építsük a legjobb térképeket!";
|
|
||||||
"already_donated" = "Már adományozott";
|
|
||||||
"remind_me_later" = "Emlékeztessen később";
|
|
||||||
"support_us" = "CoMaps támogatása";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Szerzői jogok";
|
"copyright" = "Szerzői jogok";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Menyumbangkan";
|
"donate" = "Menyumbangkan";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Donasi untuk membangun peta terbaik bersama-sama!";
|
|
||||||
"already_donated" = "Sudah disumbang";
|
|
||||||
"remind_me_later" = "Ingatkan nanti";
|
|
||||||
"support_us" = "Mendukung CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Hak cipta";
|
"copyright" = "Hak cipta";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Dona";
|
"donate" = "Dona";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Fai una donazione per creare insieme le migliori mappe!";
|
|
||||||
"already_donated" = "Già donato";
|
|
||||||
"remind_me_later" = "Ricorda più tardi";
|
|
||||||
"support_us" = "Supporta CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Copyright";
|
"copyright" = "Copyright";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "寄付";
|
"donate" = "寄付";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "寄付して最高の地図を一緒に作ろう!";
|
|
||||||
"already_donated" = "寄付済み";
|
|
||||||
"remind_me_later" = "後でリマインド";
|
|
||||||
"support_us" = "CoMaps を支援";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "著作権";
|
"copyright" = "著作権";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "기부";
|
"donate" = "기부";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "기부하여 최고의 지도를 함께 만들어 보세요!";
|
|
||||||
"already_donated" = "기부완료";
|
|
||||||
"remind_me_later" = "나중에 알림";
|
|
||||||
"support_us" = "CoMaps 지원하기";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "저작권";
|
"copyright" = "저작권";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Paaukoti";
|
"donate" = "Paaukoti";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Paaukokite, kad kartu sukurtume geriausius žemėlapius!";
|
|
||||||
"already_donated" = "Jau paaukojau";
|
|
||||||
"remind_me_later" = "Priminti vėliau";
|
|
||||||
"support_us" = "Paremti „CoMaps“";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Autorių teisės";
|
"copyright" = "Autorių teisės";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Ziedot";
|
"donate" = "Ziedot";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Ziedojiet, lai kopā varam veidot vislabākās kartes!";
|
|
||||||
"already_donated" = "Jau esmu ziedojis/usi";
|
|
||||||
"remind_me_later" = "Atgādināt vēlāk";
|
|
||||||
"support_us" = "Atbalstīt CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Autortiesības";
|
"copyright" = "Autortiesības";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "दान करा";
|
"donate" = "दान करा";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "एकत्र सर्वोत्तम नकाशे तयार करण्यासाठी देणगी द्या!";
|
|
||||||
"already_donated" = "आधीच दान केले";
|
|
||||||
"remind_me_later" = "नंतर आठवण करून द्या";
|
|
||||||
"support_us" = "CoMaps ला समर्थन द्या";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "प्रकाशन अधिकार (कॉपीराईट)";
|
"copyright" = "प्रकाशन अधिकार (कॉपीराईट)";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Donazzjoni";
|
"donate" = "Donazzjoni";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Agħti donazzjoni biex tibni l-aħjar mapep flimkien!";
|
|
||||||
"already_donated" = "Ġa mogħtija id-donazzjoni";
|
|
||||||
"remind_me_later" = "Fakkar aktar tard";
|
|
||||||
"support_us" = "Appoġġja lill-CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Drittijiet tal-awtur";
|
"copyright" = "Drittijiet tal-awtur";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Donere";
|
"donate" = "Donere";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Doner for å bygge de beste kartene sammen!";
|
|
||||||
"already_donated" = "Allerede donert";
|
|
||||||
"remind_me_later" = "Påminn senere";
|
|
||||||
"support_us" = "Støtte CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Opphavsrett";
|
"copyright" = "Opphavsrett";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Doneer";
|
"donate" = "Doneer";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Doneer om samen de beste kaarten te bouwen!";
|
|
||||||
"already_donated" = "Reeds gedoneerd";
|
|
||||||
"remind_me_later" = "Herinner later";
|
|
||||||
"support_us" = "Ondersteun CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Auteursrechten";
|
"copyright" = "Auteursrechten";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Wspomóż";
|
"donate" = "Wspomóż";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Przekaż darowiznę, aby wspólnie tworzyć najlepsze mapy!";
|
|
||||||
"already_donated" = "Już przekazano";
|
|
||||||
"remind_me_later" = "Przypomnij później";
|
|
||||||
"support_us" = "Wspierać CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Prawa autorskie";
|
"copyright" = "Prawa autorskie";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Doar";
|
"donate" = "Doar";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Doe para criarmos juntos os melhores mapas!";
|
|
||||||
"already_donated" = "Já doei";
|
|
||||||
"remind_me_later" = "Lembre-me mais tarde";
|
|
||||||
"support_us" = "Apoie o CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Direitos autorais";
|
"copyright" = "Direitos autorais";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Doar";
|
"donate" = "Doar";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Faz um donativo para construirmos juntos os melhores mapas!";
|
|
||||||
"already_donated" = "Já doei";
|
|
||||||
"remind_me_later" = "Lembre-me mais tarde";
|
|
||||||
"support_us" = "Apoie o CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Direitos de autor";
|
"copyright" = "Direitos de autor";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Donează";
|
"donate" = "Donează";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Donează pentru a construi împreună cele mai bune hărți!";
|
|
||||||
"already_donated" = "Deja donat";
|
|
||||||
"remind_me_later" = "Amintește mai târziu";
|
|
||||||
"support_us" = "Susține CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Drepturi de autor";
|
"copyright" = "Drepturi de autor";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Поддержать деньгами";
|
"donate" = "Поддержать деньгами";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Поддержать деньгами, чтобы вместе создавать лучшие карты!";
|
|
||||||
"already_donated" = "Уже пожертвовано";
|
|
||||||
"remind_me_later" = "Напомнить позже";
|
|
||||||
"support_us" = "Поддержать CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Копирайт";
|
"copyright" = "Копирайт";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Darovať";
|
"donate" = "Darovať";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Darujte, aby sme spoločne vytvorili tie najlepšie mapy!";
|
|
||||||
"already_donated" = "Už darované";
|
|
||||||
"remind_me_later" = "Pripomeň neskôr";
|
|
||||||
"support_us" = "Podporiť CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Autorské práva";
|
"copyright" = "Autorské práva";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Донација";
|
"donate" = "Донација";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Донирате да бисмо заједно направили најбоље мапе!";
|
|
||||||
"already_donated" = "Већ је донирано";
|
|
||||||
"remind_me_later" = "Подсети ме касније";
|
|
||||||
"support_us" = "Подршка CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Copyright";
|
"copyright" = "Copyright";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Donera";
|
"donate" = "Donera";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Donera för att bygga de bästa kartorna tillsammans!";
|
|
||||||
"already_donated" = "Redan donerat";
|
|
||||||
"remind_me_later" = "Påminn senare";
|
|
||||||
"support_us" = "Stödja CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Upphovsrätt";
|
"copyright" = "Upphovsrätt";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Changia";
|
"donate" = "Changia";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Changia ili kuunda ramani bora pamoja!";
|
|
||||||
"already_donated" = "Tayari kutoa";
|
|
||||||
"remind_me_later" = "Kumbusha baadaye";
|
|
||||||
"support_us" = "Kuunga mkono CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Copyright";
|
"copyright" = "Copyright";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "บริจาค";
|
"donate" = "บริจาค";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "บริจาคเพื่อสร้างแผนที่ที่ดีที่สุดด้วยกัน!";
|
|
||||||
"already_donated" = "บริจาคแล้ว";
|
|
||||||
"remind_me_later" = "เตือนภายหลัง";
|
|
||||||
"support_us" = "สนับสนุน CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "ลิขสิทธิ์";
|
"copyright" = "ลิขสิทธิ์";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Bağış yap";
|
"donate" = "Bağış yap";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "En iyi harita uygulamasını birlikte geliştirmemiz için bağış yapın!";
|
|
||||||
"already_donated" = "Zaten bağış yaptım";
|
|
||||||
"remind_me_later" = "Sonra hatırlat";
|
|
||||||
"support_us" = "CoMaps’i Destekleyin";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Telif hakkı";
|
"copyright" = "Telif hakkı";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Підтримати грошима";
|
"donate" = "Підтримати грошима";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Пожертвуйте, щоб разом створювати найкращі мапи!";
|
|
||||||
"already_donated" = "Вже пожертвувано";
|
|
||||||
"remind_me_later" = "Нагадати пізніше";
|
|
||||||
"support_us" = "Підтримати CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Копірайт";
|
"copyright" = "Копірайт";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "Quyên tặng";
|
"donate" = "Quyên tặng";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "Hãy quyên góp để cùng nhau xây dựng những bản đồ tốt nhất!";
|
|
||||||
"already_donated" = "Đã quyên góp";
|
|
||||||
"remind_me_later" = "Nhắc sau";
|
|
||||||
"support_us" = "Hỗ trợ CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "Bản quyền";
|
"copyright" = "Bản quyền";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "捐助我们";
|
"donate" = "捐助我们";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "捐助,以共同打造最好的地图!";
|
|
||||||
"already_donated" = "已捐赠";
|
|
||||||
"remind_me_later" = "稍后提醒";
|
|
||||||
"support_us" = "支持 CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "版权";
|
"copyright" = "版权";
|
||||||
|
|
||||||
|
|||||||
@@ -294,12 +294,6 @@
|
|||||||
/* Button in the main menu */
|
/* Button in the main menu */
|
||||||
"donate" = "捐助我們";
|
"donate" = "捐助我們";
|
||||||
|
|
||||||
/* Tex label above the Donate button */
|
|
||||||
"donate_description" = "捐助,以共同打造最好的地圖!";
|
|
||||||
"already_donated" = "已捐贈";
|
|
||||||
"remind_me_later" = "稍後提醒";
|
|
||||||
"support_us" = "支持 CoMaps";
|
|
||||||
|
|
||||||
/* Button in the main Help dialog */
|
/* Button in the main Help dialog */
|
||||||
"copyright" = "版權";
|
"copyright" = "版權";
|
||||||
|
|
||||||
|
|||||||
@@ -476,9 +476,6 @@
|
|||||||
ED46DDCE2D098A0B007CACD6 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED46DDCD2D098A0B007CACD6 /* WidgetKit.framework */; };
|
ED46DDCE2D098A0B007CACD6 /* WidgetKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED46DDCD2D098A0B007CACD6 /* WidgetKit.framework */; };
|
||||||
ED46DDD02D098A0B007CACD6 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED46DDCF2D098A0B007CACD6 /* SwiftUI.framework */; };
|
ED46DDD02D098A0B007CACD6 /* SwiftUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = ED46DDCF2D098A0B007CACD6 /* SwiftUI.framework */; };
|
||||||
ED46DDE12D098A0C007CACD6 /* CoMapsWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = ED46DDCC2D098A0B007CACD6 /* CoMapsWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
ED46DDE12D098A0C007CACD6 /* CoMapsWidgetExtension.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = ED46DDCC2D098A0B007CACD6 /* CoMapsWidgetExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; };
|
||||||
ED4DC7772CAEDECC0029B338 /* ProductsViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED4DC7752CAEDECC0029B338 /* ProductsViewModel.swift */; };
|
|
||||||
ED4DC7782CAEDECC0029B338 /* ProductButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED4DC7732CAEDECC0029B338 /* ProductButton.swift */; };
|
|
||||||
ED4DC7792CAEDECC0029B338 /* ProductsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED4DC7742CAEDECC0029B338 /* ProductsViewController.swift */; };
|
|
||||||
ED5BAF4B2D688F5B0088D7B1 /* SearchOnMapHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED5BAF4A2D688F5A0088D7B1 /* SearchOnMapHeaderView.swift */; };
|
ED5BAF4B2D688F5B0088D7B1 /* SearchOnMapHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED5BAF4A2D688F5A0088D7B1 /* SearchOnMapHeaderView.swift */; };
|
||||||
ED5E02142D8B17B600A5CC7B /* ModalPresentationStepsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED5E02132D8B17B600A5CC7B /* ModalPresentationStepsController.swift */; };
|
ED5E02142D8B17B600A5CC7B /* ModalPresentationStepsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED5E02132D8B17B600A5CC7B /* ModalPresentationStepsController.swift */; };
|
||||||
ED63CEB92BDF8F9D006155C4 /* SettingsTableViewiCloudSwitchCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED63CEB62BDF8F9C006155C4 /* SettingsTableViewiCloudSwitchCell.swift */; };
|
ED63CEB92BDF8F9D006155C4 /* SettingsTableViewiCloudSwitchCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED63CEB62BDF8F9C006155C4 /* SettingsTableViewiCloudSwitchCell.swift */; };
|
||||||
@@ -1442,9 +1439,6 @@
|
|||||||
ED48BBB817C2B1E2003E7E92 /* CircleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleView.h; sourceTree = "<group>"; };
|
ED48BBB817C2B1E2003E7E92 /* CircleView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CircleView.h; sourceTree = "<group>"; };
|
||||||
ED48BBB917C2B1E2003E7E92 /* CircleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircleView.m; sourceTree = "<group>"; };
|
ED48BBB917C2B1E2003E7E92 /* CircleView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CircleView.m; sourceTree = "<group>"; };
|
||||||
ED49D76F2CF0E3A8004AF27E /* TrackRecordingButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackRecordingButtonViewController.swift; sourceTree = "<group>"; };
|
ED49D76F2CF0E3A8004AF27E /* TrackRecordingButtonViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackRecordingButtonViewController.swift; sourceTree = "<group>"; };
|
||||||
ED4DC7732CAEDECC0029B338 /* ProductButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductButton.swift; sourceTree = "<group>"; };
|
|
||||||
ED4DC7742CAEDECC0029B338 /* ProductsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductsViewController.swift; sourceTree = "<group>"; };
|
|
||||||
ED4DC7752CAEDECC0029B338 /* ProductsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductsViewModel.swift; sourceTree = "<group>"; };
|
|
||||||
ED5BAF4A2D688F5A0088D7B1 /* SearchOnMapHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapHeaderView.swift; sourceTree = "<group>"; };
|
ED5BAF4A2D688F5A0088D7B1 /* SearchOnMapHeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchOnMapHeaderView.swift; sourceTree = "<group>"; };
|
||||||
ED5E02132D8B17B600A5CC7B /* ModalPresentationStepsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalPresentationStepsController.swift; sourceTree = "<group>"; };
|
ED5E02132D8B17B600A5CC7B /* ModalPresentationStepsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalPresentationStepsController.swift; sourceTree = "<group>"; };
|
||||||
ED63CEB62BDF8F9C006155C4 /* SettingsTableViewiCloudSwitchCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsTableViewiCloudSwitchCell.swift; sourceTree = "<group>"; };
|
ED63CEB62BDF8F9C006155C4 /* SettingsTableViewiCloudSwitchCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SettingsTableViewiCloudSwitchCell.swift; sourceTree = "<group>"; };
|
||||||
@@ -3050,7 +3044,6 @@
|
|||||||
993DF0C223F6BD0600AC231A /* ElevationDetails */,
|
993DF0C223F6BD0600AC231A /* ElevationDetails */,
|
||||||
99DEF9D523E420D2006BFD21 /* ElevationProfile */,
|
99DEF9D523E420D2006BFD21 /* ElevationProfile */,
|
||||||
EDE8EAE32C2DB74A002777F5 /* OpenInAppActionSheet */,
|
EDE8EAE32C2DB74A002777F5 /* OpenInAppActionSheet */,
|
||||||
ED4DC7762CAEDECC0029B338 /* Products */,
|
|
||||||
);
|
);
|
||||||
path = Components;
|
path = Components;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -3251,16 +3244,6 @@
|
|||||||
path = DocumentPicker;
|
path = DocumentPicker;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
ED4DC7762CAEDECC0029B338 /* Products */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
ED4DC7732CAEDECC0029B338 /* ProductButton.swift */,
|
|
||||||
ED4DC7742CAEDECC0029B338 /* ProductsViewController.swift */,
|
|
||||||
ED4DC7752CAEDECC0029B338 /* ProductsViewModel.swift */,
|
|
||||||
);
|
|
||||||
path = Products;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
ED70D5812D539A2500738C1E /* Presentation */ = {
|
ED70D5812D539A2500738C1E /* Presentation */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -4627,9 +4610,6 @@
|
|||||||
F692F3831EA0FAF5001E82EB /* MWMAutoupdateController.mm in Sources */,
|
F692F3831EA0FAF5001E82EB /* MWMAutoupdateController.mm in Sources */,
|
||||||
34AB664D1FC5AA330078E451 /* RouteManagerFooterView.swift in Sources */,
|
34AB664D1FC5AA330078E451 /* RouteManagerFooterView.swift in Sources */,
|
||||||
6741A9E01BF340DE002C974C /* MWMDownloaderDialogHeader.mm in Sources */,
|
6741A9E01BF340DE002C974C /* MWMDownloaderDialogHeader.mm in Sources */,
|
||||||
ED4DC7772CAEDECC0029B338 /* ProductsViewModel.swift in Sources */,
|
|
||||||
ED4DC7782CAEDECC0029B338 /* ProductButton.swift in Sources */,
|
|
||||||
ED4DC7792CAEDECC0029B338 /* ProductsViewController.swift in Sources */,
|
|
||||||
CDCA2748223FD24600167D87 /* MWMCarPlaySearchResultObject.mm in Sources */,
|
CDCA2748223FD24600167D87 /* MWMCarPlaySearchResultObject.mm in Sources */,
|
||||||
475ED78824C7D0F30063ADC7 /* ValueStepperView.swift in Sources */,
|
475ED78824C7D0F30063ADC7 /* ValueStepperView.swift in Sources */,
|
||||||
3454D7E01E07F045004AF2AD /* UITextField+RuntimeAttributes.m in Sources */,
|
3454D7E01E07F045004AF2AD /* UITextField+RuntimeAttributes.m in Sources */,
|
||||||
|
|||||||
@@ -1,38 +0,0 @@
|
|||||||
final class ProductButton: UIButton {
|
|
||||||
|
|
||||||
private var action: () -> Void
|
|
||||||
|
|
||||||
init(title: String, action: @escaping () -> Void) {
|
|
||||||
self.action = action
|
|
||||||
super.init(frame: .zero)
|
|
||||||
self.setup(title: title, action: action)
|
|
||||||
self.layout()
|
|
||||||
}
|
|
||||||
|
|
||||||
@available(*, unavailable)
|
|
||||||
required init?(coder: NSCoder) {
|
|
||||||
fatalError("init(coder:) has not been implemented")
|
|
||||||
}
|
|
||||||
|
|
||||||
private func setup(title: String, action: @escaping () -> Void) {
|
|
||||||
setStyleAndApply(.blueBackground)
|
|
||||||
setTitle(title, for: .normal)
|
|
||||||
setTitleColor(.white, for: .normal)
|
|
||||||
titleLabel?.font = UIFont.regular14()
|
|
||||||
titleLabel?.allowsDefaultTighteningForTruncation = true
|
|
||||||
titleLabel?.adjustsFontSizeToFitWidth = true
|
|
||||||
titleLabel?.minimumScaleFactor = 0.5
|
|
||||||
layer.setCornerRadius(.buttonDefaultSmall)
|
|
||||||
layer.masksToBounds = true
|
|
||||||
addTarget(self, action: #selector(buttonDidTap), for: .touchUpInside)
|
|
||||||
}
|
|
||||||
|
|
||||||
private func layout() {
|
|
||||||
translatesAutoresizingMaskIntoConstraints = false
|
|
||||||
heightAnchor.constraint(equalToConstant: 30.0).isActive = true
|
|
||||||
}
|
|
||||||
|
|
||||||
@objc private func buttonDidTap() {
|
|
||||||
action()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,162 +0,0 @@
|
|||||||
final class ProductsViewController: UIViewController {
|
|
||||||
|
|
||||||
private enum Constants {
|
|
||||||
static let spacing: CGFloat = 10
|
|
||||||
static let titleLeadingPadding: CGFloat = 12
|
|
||||||
static let titleTrailingPadding: CGFloat = 10
|
|
||||||
static let descriptionTopPadding: CGFloat = 10
|
|
||||||
static let closeButtonSize: CGFloat = 24
|
|
||||||
static let closeButtonTrailingPadding: CGFloat = -12
|
|
||||||
static let closeButtonTopPadding: CGFloat = 12
|
|
||||||
static let stackViewTopPadding: CGFloat = 12
|
|
||||||
static let subtitleButtonTopPadding: CGFloat = 4
|
|
||||||
static let subtitleButtonBottomPadding: CGFloat = -4
|
|
||||||
}
|
|
||||||
|
|
||||||
private let viewModel: ProductsViewModel
|
|
||||||
private let titleLabel = UILabel()
|
|
||||||
private let descriptionLabel = UILabel()
|
|
||||||
private let closeButton = UIButton(type: .system)
|
|
||||||
private let stackView = UIStackView()
|
|
||||||
private let leadingSubtitleButton = UIButton(type: .system)
|
|
||||||
private let trailingSubtitleButton = UIButton(type: .system)
|
|
||||||
|
|
||||||
init(viewModel: ProductsViewModel) {
|
|
||||||
self.viewModel = viewModel
|
|
||||||
super.init(nibName: nil, bundle: nil)
|
|
||||||
}
|
|
||||||
|
|
||||||
@available(*, unavailable)
|
|
||||||
required init?(coder: NSCoder) {
|
|
||||||
fatalError("init(coder:) has not been implemented")
|
|
||||||
}
|
|
||||||
|
|
||||||
override func viewDidLoad() {
|
|
||||||
super.viewDidLoad()
|
|
||||||
setupViews()
|
|
||||||
layout()
|
|
||||||
}
|
|
||||||
|
|
||||||
private func setupViews() {
|
|
||||||
view.setStyleAndApply(.background)
|
|
||||||
setupTitleLabel()
|
|
||||||
setupDescriptionLabel()
|
|
||||||
setupCloseButton()
|
|
||||||
setupProductsStackView()
|
|
||||||
setupSubtitleButtons()
|
|
||||||
}
|
|
||||||
|
|
||||||
private func setupTitleLabel() {
|
|
||||||
titleLabel.text = viewModel.title
|
|
||||||
titleLabel.font = UIFont.semibold16()
|
|
||||||
titleLabel.numberOfLines = 1
|
|
||||||
titleLabel.translatesAutoresizingMaskIntoConstraints = false
|
|
||||||
}
|
|
||||||
|
|
||||||
private func setupDescriptionLabel() {
|
|
||||||
descriptionLabel.text = viewModel.description
|
|
||||||
descriptionLabel.font = UIFont.regular14()
|
|
||||||
descriptionLabel.numberOfLines = 0
|
|
||||||
descriptionLabel.translatesAutoresizingMaskIntoConstraints = false
|
|
||||||
}
|
|
||||||
|
|
||||||
private func setupCloseButton() {
|
|
||||||
closeButton.setStyleAndApply(.gray)
|
|
||||||
closeButton.setImage(UIImage(resource: .icSearchClear), for: .normal)
|
|
||||||
closeButton.translatesAutoresizingMaskIntoConstraints = false
|
|
||||||
closeButton.addTarget(self, action: #selector(closeButtonDidTap), for: .touchUpInside)
|
|
||||||
}
|
|
||||||
|
|
||||||
private func setupProductsStackView() {
|
|
||||||
stackView.axis = .horizontal
|
|
||||||
stackView.alignment = .fill
|
|
||||||
stackView.distribution = .fillEqually
|
|
||||||
stackView.spacing = Constants.spacing
|
|
||||||
stackView.translatesAutoresizingMaskIntoConstraints = false
|
|
||||||
viewModel.products.forEach { product in
|
|
||||||
let button = ProductButton(title: product.title) { [weak self] in
|
|
||||||
self?.productButtonDidTap(product)
|
|
||||||
}
|
|
||||||
stackView.addArrangedSubview(button)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private func setupSubtitleButtons() {
|
|
||||||
leadingSubtitleButton.setTitle(viewModel.leadingSubtitle, for: .normal)
|
|
||||||
leadingSubtitleButton.backgroundColor = .clear
|
|
||||||
leadingSubtitleButton.setTitleColor(.linkBlue(), for: .normal)
|
|
||||||
leadingSubtitleButton.translatesAutoresizingMaskIntoConstraints = false
|
|
||||||
leadingSubtitleButton.addTarget(self, action: #selector(leadingSubtitleButtonDidTap), for: .touchUpInside)
|
|
||||||
|
|
||||||
trailingSubtitleButton.setTitle(viewModel.trailingSubtitle, for: .normal)
|
|
||||||
trailingSubtitleButton.backgroundColor = .clear
|
|
||||||
trailingSubtitleButton.setTitleColor(.linkBlue(), for: .normal)
|
|
||||||
trailingSubtitleButton.translatesAutoresizingMaskIntoConstraints = false
|
|
||||||
trailingSubtitleButton.addTarget(self, action: #selector(trailingSubtitleButtonDidTap), for: .touchUpInside)
|
|
||||||
}
|
|
||||||
|
|
||||||
private func layout() {
|
|
||||||
view.addSubview(titleLabel)
|
|
||||||
view.addSubview(descriptionLabel)
|
|
||||||
view.addSubview(closeButton)
|
|
||||||
view.addSubview(stackView)
|
|
||||||
view.addSubview(leadingSubtitleButton)
|
|
||||||
view.addSubview(trailingSubtitleButton)
|
|
||||||
|
|
||||||
NSLayoutConstraint.activate([
|
|
||||||
titleLabel.topAnchor.constraint(equalTo: closeButton.topAnchor),
|
|
||||||
titleLabel.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: Constants.titleLeadingPadding),
|
|
||||||
titleLabel.trailingAnchor.constraint(equalTo: closeButton.leadingAnchor),
|
|
||||||
|
|
||||||
descriptionLabel.topAnchor.constraint(equalTo: titleLabel.bottomAnchor, constant: Constants.descriptionTopPadding),
|
|
||||||
descriptionLabel.leadingAnchor.constraint(equalTo: titleLabel.leadingAnchor),
|
|
||||||
descriptionLabel.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -Constants.titleTrailingPadding),
|
|
||||||
|
|
||||||
closeButton.widthAnchor.constraint(equalToConstant: Constants.closeButtonSize),
|
|
||||||
closeButton.heightAnchor.constraint(equalToConstant: Constants.closeButtonSize),
|
|
||||||
closeButton.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: Constants.closeButtonTrailingPadding),
|
|
||||||
closeButton.topAnchor.constraint(equalTo: view.topAnchor, constant: Constants.closeButtonTopPadding),
|
|
||||||
|
|
||||||
stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: Constants.titleLeadingPadding),
|
|
||||||
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -Constants.titleLeadingPadding),
|
|
||||||
stackView.topAnchor.constraint(equalTo: descriptionLabel.bottomAnchor, constant: Constants.stackViewTopPadding),
|
|
||||||
|
|
||||||
leadingSubtitleButton.topAnchor.constraint(equalTo: stackView.bottomAnchor, constant: Constants.subtitleButtonTopPadding),
|
|
||||||
leadingSubtitleButton.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: Constants.titleLeadingPadding),
|
|
||||||
leadingSubtitleButton.trailingAnchor.constraint(equalTo: view.centerXAnchor),
|
|
||||||
leadingSubtitleButton.bottomAnchor.constraint(equalTo: view.bottomAnchor, constant: Constants.subtitleButtonBottomPadding),
|
|
||||||
|
|
||||||
trailingSubtitleButton.topAnchor.constraint(equalTo: leadingSubtitleButton.topAnchor, constant: Constants.subtitleButtonTopPadding),
|
|
||||||
trailingSubtitleButton.leadingAnchor.constraint(equalTo: view.centerXAnchor),
|
|
||||||
trailingSubtitleButton.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -Constants.titleLeadingPadding),
|
|
||||||
trailingSubtitleButton.bottomAnchor.constraint(equalTo: leadingSubtitleButton.bottomAnchor)
|
|
||||||
])
|
|
||||||
}
|
|
||||||
|
|
||||||
@objc private func closeButtonDidTap() {
|
|
||||||
viewModel.didClose(reason: .close)
|
|
||||||
hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
private func productButtonDidTap(_ product: Product) {
|
|
||||||
viewModel.didSelectProduct(product)
|
|
||||||
viewModel.didClose(reason: .selectProduct)
|
|
||||||
hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
@objc private func leadingSubtitleButtonDidTap() {
|
|
||||||
viewModel.didClose(reason: .alreadyDonated)
|
|
||||||
hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
@objc private func trailingSubtitleButtonDidTap() {
|
|
||||||
viewModel.didClose(reason: .remindLater)
|
|
||||||
hide()
|
|
||||||
}
|
|
||||||
|
|
||||||
func hide() {
|
|
||||||
UIView.transition(with: view, duration: kDefaultAnimationDuration / 2, options: .transitionCrossDissolve) {
|
|
||||||
self.view.isHidden = true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
struct ProductsViewModel {
|
|
||||||
private let productsManager: ProductsManager.Type
|
|
||||||
|
|
||||||
let title: String = L("support_us")
|
|
||||||
let description: String
|
|
||||||
let leadingSubtitle: String = L("already_donated")
|
|
||||||
let trailingSubtitle: String = L("remind_me_later")
|
|
||||||
let products: [Product]
|
|
||||||
|
|
||||||
init(manager: ProductsManager.Type, configuration: ProductsConfiguration) {
|
|
||||||
self.productsManager = manager
|
|
||||||
self.description = configuration.placePagePrompt
|
|
||||||
self.products = configuration.products
|
|
||||||
}
|
|
||||||
|
|
||||||
func didSelectProduct(_ product: Product) {
|
|
||||||
UIViewController.topViewController().openUrl(product.link, externally: true)
|
|
||||||
productsManager.didSelect(product)
|
|
||||||
}
|
|
||||||
|
|
||||||
func didClose(reason: ProductsPopupCloseReason) {
|
|
||||||
productsManager.didCloseProductsPopup(with: reason)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -57,13 +57,6 @@ class PlacePageCommonLayout: NSObject, IPlacePageLayout {
|
|||||||
return vc
|
return vc
|
||||||
} ()
|
} ()
|
||||||
|
|
||||||
private func productsViewController() -> ProductsViewController? {
|
|
||||||
let productsManager = FrameworkHelper.self
|
|
||||||
guard let configuration = productsManager.getProductsConfiguration() else { return nil }
|
|
||||||
let viewModel = ProductsViewModel(manager: productsManager, configuration: configuration)
|
|
||||||
return ProductsViewController(viewModel: viewModel)
|
|
||||||
}
|
|
||||||
|
|
||||||
lazy var buttonsViewController: PlacePageButtonsViewController = {
|
lazy var buttonsViewController: PlacePageButtonsViewController = {
|
||||||
let vc = storyboard.instantiateViewController(ofType: PlacePageButtonsViewController.self)
|
let vc = storyboard.instantiateViewController(ofType: PlacePageButtonsViewController.self)
|
||||||
vc.buttonsData = placePageData.buttonsData!
|
vc.buttonsData = placePageData.buttonsData!
|
||||||
@@ -109,10 +102,6 @@ class PlacePageCommonLayout: NSObject, IPlacePageLayout {
|
|||||||
viewControllers.append(infoViewController)
|
viewControllers.append(infoViewController)
|
||||||
}
|
}
|
||||||
|
|
||||||
if let productsViewController = productsViewController() {
|
|
||||||
viewControllers.append(productsViewController)
|
|
||||||
}
|
|
||||||
|
|
||||||
if placePageData.buttonsData != nil {
|
if placePageData.buttonsData != nil {
|
||||||
viewControllers.append(buttonsViewController)
|
viewControllers.append(buttonsViewController)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user