forked from organicmaps/organicmaps
[ios] rutaxi is added to ios
This commit is contained in:
parent
0ef0f2e142
commit
1ef7d6e25d
47 changed files with 118 additions and 17 deletions
|
@ -91,6 +91,4 @@
|
|||
<string name="pref_opt_out_fabric_activated" translatable="false">pref_opt_out_fabric_activated</string>
|
||||
<string name="pref_opt_out_mopub" translatable="false">pref_opt_out_mopub</string>
|
||||
<string name="pref_opt_out_flurry" translatable="false">pref_opt_out_flurry</string>
|
||||
|
||||
<string name="rutaxi_title" translatable="false">RuTaxi</string>
|
||||
</resources>
|
||||
|
|
|
@ -1436,6 +1436,7 @@
|
|||
<string name="server_unavailable_title">Server is unavailable</string>
|
||||
<string name="server_unavailable_message">The purchase will be completed later. If the error persists, please contact support\@maps.me.</string>
|
||||
<string name="offline_fiters_check_in">Connect to the internet to filter hotels by dates.</string>
|
||||
<string name="rutaxi_title">RuTaxi</string>
|
||||
|
||||
<!-- SECTION: Partners -->
|
||||
<string name="sponsored_partner1_action">Outlets</string>
|
||||
|
|
|
@ -33293,3 +33293,6 @@ fa = دوباره نپرس
|
|||
[offline_fiters_check_in]
|
||||
en = Connect to the internet to filter hotels by dates.
|
||||
ru = Подключитесь к интернету, чтобы выбрать дату заезда и выезда.
|
||||
|
||||
[rutaxi_title]
|
||||
en = RuTaxi
|
||||
|
|
|
@ -2,5 +2,6 @@ typedef NS_ENUM(NSInteger, MWMRoutePreviewTaxiCellType) {
|
|||
MWMRoutePreviewTaxiCellTypeTaxi,
|
||||
MWMRoutePreviewTaxiCellTypeUber,
|
||||
MWMRoutePreviewTaxiCellTypeYandex,
|
||||
MWMRoutePreviewTaxiCellTypeMaxim
|
||||
MWMRoutePreviewTaxiCellTypeMaxim,
|
||||
MWMRoutePreviewTaxiCellTypeRutaxi
|
||||
};
|
||||
|
|
|
@ -133,10 +133,10 @@ using namespace taxi;
|
|||
self.type = MWMRoutePreviewTaxiCellTypeMaxim;
|
||||
providerName = kStatMaxim;
|
||||
break;
|
||||
// Dummy.
|
||||
case taxi::Provider::Type::Rutaxi:
|
||||
self.type = MWMRoutePreviewTaxiCellTypeMaxim;
|
||||
providerName = kStatMaxim;
|
||||
self.type = MWMRoutePreviewTaxiCellTypeRutaxi;
|
||||
providerName = kStatRutaxi;
|
||||
break;
|
||||
case taxi::Provider::Type::Count:
|
||||
LOG(LERROR, ("Incorrect taxi provider"));
|
||||
break;
|
||||
|
@ -171,8 +171,7 @@ using namespace taxi;
|
|||
case taxi::Provider::Type::Uber: provider = kStatUber; break;
|
||||
case taxi::Provider::Type::Yandex: provider = kStatYandex; break;
|
||||
case taxi::Provider::Type::Maxim: provider = kStatMaxim; break;
|
||||
// Dummy.
|
||||
case taxi::Provider::Type::Rutaxi: provider = kStatMaxim; break;
|
||||
case taxi::Provider::Type::Rutaxi: provider = kStatRutaxi; break;
|
||||
case taxi::Provider::Count: LOG(LERROR, ("Incorrect taxi provider")); break;
|
||||
}
|
||||
NSString * errorValue = nil;
|
||||
|
@ -205,6 +204,7 @@ using namespace taxi;
|
|||
case MWMRoutePreviewTaxiCellTypeUber: url = [NSURL URLWithString:@"uber://"]; break;
|
||||
case MWMRoutePreviewTaxiCellTypeYandex: url = [NSURL URLWithString:@"yandextaxi://"]; break;
|
||||
case MWMRoutePreviewTaxiCellTypeMaxim: url = [NSURL URLWithString:@"maximzakaz://"]; break;
|
||||
case MWMRoutePreviewTaxiCellTypeRutaxi: url = [NSURL URLWithString:@"rto://"]; break;
|
||||
}
|
||||
return [UIApplication.sharedApplication canOpenURL:url];
|
||||
}
|
||||
|
@ -227,6 +227,7 @@ using namespace taxi;
|
|||
case MWMRoutePreviewTaxiCellTypeUber: type = Provider::Type::Uber; break;
|
||||
case MWMRoutePreviewTaxiCellTypeYandex: type = Provider::Type::Yandex; break;
|
||||
case MWMRoutePreviewTaxiCellTypeMaxim: type = Provider::Type::Maxim; break;
|
||||
case MWMRoutePreviewTaxiCellTypeRutaxi: type = Provider::Type::Rutaxi; break;
|
||||
}
|
||||
|
||||
auto links = engine->GetRideRequestLinks(type, productId, m_from, m_to);
|
||||
|
|
|
@ -23,6 +23,7 @@ final class RoutePreviewTaxiCell: UICollectionViewCell {
|
|||
case .uber: return #imageLiteral(resourceName: "icTaxiUber")
|
||||
case .yandex: return #imageLiteral(resourceName: "ic_taxi_logo_yandex")
|
||||
case .maxim: return #imageLiteral(resourceName: "ic_taxi_logo_maksim")
|
||||
case .rutaxi: return #imageLiteral(resourceName: "ic_taxi_logo_rutaxi")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,6 +33,7 @@ final class RoutePreviewTaxiCell: UICollectionViewCell {
|
|||
case .uber: return title
|
||||
case .yandex: return L("yandex_taxi_title")
|
||||
case .maxim: return L("maxim_taxi_title")
|
||||
case .rutaxi: return L("rutaxi_title")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -40,7 +42,8 @@ final class RoutePreviewTaxiCell: UICollectionViewCell {
|
|||
case .taxi: fallthrough
|
||||
case .uber: return price
|
||||
case .yandex: fallthrough
|
||||
case .maxim:
|
||||
case .maxim: fallthrough
|
||||
case .rutaxi:
|
||||
let formatter = NumberFormatter()
|
||||
formatter.numberStyle = .currency
|
||||
formatter.currencyCode = currency
|
||||
|
@ -54,7 +57,15 @@ final class RoutePreviewTaxiCell: UICollectionViewCell {
|
|||
}
|
||||
|
||||
let timeString = { () -> String in
|
||||
let timeValue = DateComponentsFormatter.etaString(from: TimeInterval(eta)!)!
|
||||
var timeValue = DateComponentsFormatter.etaString(from: TimeInterval(eta)!)!
|
||||
switch type {
|
||||
case .taxi: break
|
||||
case .uber: break
|
||||
case .yandex: break
|
||||
case .maxim: break
|
||||
case .rutaxi:
|
||||
timeValue = String(coreFormat: L("place_page_starting_from"), arguments: [timeValue])
|
||||
}
|
||||
return String(coreFormat: L("taxi_wait"), arguments: [timeValue])
|
||||
}
|
||||
|
||||
|
|
|
@ -301,6 +301,7 @@ static NSString * const kStatRoutingTooltipClicked = @"Routing_PlanTooltip_click
|
|||
static NSString * const kStatRoutingRouteStart = @"Routing_Route_start";
|
||||
static NSString * const kStatRoutingRouteFinish = @"Routing_Route_finish";
|
||||
static NSString * const kStatRoutingInterrupted = @"interrupted";
|
||||
static NSString * const kStatRutaxi = @"Rutaxi";
|
||||
static NSString * const kStatSave = @"Save";
|
||||
static NSString * const kStatScenario = @"scenario";
|
||||
static NSString * const kStatScreen = @"Screen";
|
||||
|
|
|
@ -130,6 +130,7 @@ void logPointEvent(MWMRoutePoint * point, NSString * eventType)
|
|||
case MWMRoutePreviewTaxiCellTypeUber: provider = kStatUber; break;
|
||||
case MWMRoutePreviewTaxiCellTypeYandex: provider = kStatYandex; break;
|
||||
case MWMRoutePreviewTaxiCellTypeMaxim: provider = kStatMaxim; break;
|
||||
case MWMRoutePreviewTaxiCellTypeRutaxi: provider = kStatRutaxi; break;
|
||||
}
|
||||
|
||||
[Statistics logEvent:eventName
|
||||
|
|
23
iphone/Maps/Images.xcassets/ic_taxi_logo_rutaxi.imageset/Contents.json
vendored
Normal file
23
iphone/Maps/Images.xcassets/ic_taxi_logo_rutaxi.imageset/Contents.json
vendored
Normal file
|
@ -0,0 +1,23 @@
|
|||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_taxi_logo_rutaxi.png",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_taxi_logo_rutaxi@2x.png",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"filename" : "ic_taxi_logo_rutaxi@3x.png",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"version" : 1,
|
||||
"author" : "xcode"
|
||||
}
|
||||
}
|
BIN
iphone/Maps/Images.xcassets/ic_taxi_logo_rutaxi.imageset/ic_taxi_logo_rutaxi.png
vendored
Normal file
BIN
iphone/Maps/Images.xcassets/ic_taxi_logo_rutaxi.imageset/ic_taxi_logo_rutaxi.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.7 KiB |
BIN
iphone/Maps/Images.xcassets/ic_taxi_logo_rutaxi.imageset/ic_taxi_logo_rutaxi@2x.png
vendored
Normal file
BIN
iphone/Maps/Images.xcassets/ic_taxi_logo_rutaxi.imageset/ic_taxi_logo_rutaxi@2x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 3 KiB |
BIN
iphone/Maps/Images.xcassets/ic_taxi_logo_rutaxi.imageset/ic_taxi_logo_rutaxi@3x.png
vendored
Normal file
BIN
iphone/Maps/Images.xcassets/ic_taxi_logo_rutaxi.imageset/ic_taxi_logo_rutaxi@3x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Подключитесь к интернету, чтобы выбрать дату заезда и выезда.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -2468,6 +2468,8 @@
|
|||
|
||||
"offline_fiters_check_in" = "Connect to the internet to filter hotels by dates.";
|
||||
|
||||
"rutaxi_title" = "RuTaxi";
|
||||
|
||||
|
||||
/********** Partners **********/
|
||||
|
||||
|
|
|
@ -110,6 +110,7 @@
|
|||
<string>tel</string>
|
||||
<string>booking</string>
|
||||
<string>maximzakaz</string>
|
||||
<string>rto</string>
|
||||
</array>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
|
|
|
@ -107,8 +107,7 @@ NSString * const kUserDefaultsLatLonAsDMSKey = @"UserDefaultsLatLonAsDMS";
|
|||
case taxi::Provider::Uber: provider = kStatUber; break;
|
||||
case taxi::Provider::Yandex: provider = kStatYandex; break;
|
||||
case taxi::Provider::Maxim: provider = kStatMaxim; break;
|
||||
// Dummy.
|
||||
case taxi::Provider::Rutaxi: provider = kStatMaxim; break;
|
||||
case taxi::Provider::Rutaxi: provider = kStatRutaxi; break;
|
||||
case taxi::Provider::Count: LOG(LERROR, ("Incorrect taxi provider")); break;
|
||||
}
|
||||
[Statistics logEvent:kStatPlacepageTaxiShow withParameters:@{ @"provider" : provider }];
|
||||
|
|
|
@ -352,6 +352,7 @@ void logSponsoredEvent(MWMPlacePageData * data, NSString * eventName)
|
|||
case MWMPlacePageTaxiProviderUber: providerString = kStatUber; break;
|
||||
case MWMPlacePageTaxiProviderYandex: providerString = kStatYandex; break;
|
||||
case MWMPlacePageTaxiProviderMaxim: providerString = kStatMaxim; break;
|
||||
case MWMPlacePageTaxiProviderRutaxi: providerString = kStatRutaxi; break;
|
||||
}
|
||||
[Statistics logEvent:kStatPlacePageTaxiClick
|
||||
withParameters:@{kStatProvider : providerString, kStatTags : data.statisticsTags}];
|
||||
|
|
|
@ -2,5 +2,6 @@ typedef NS_ENUM(NSInteger, MWMPlacePageTaxiProvider) {
|
|||
MWMPlacePageTaxiProviderTaxi,
|
||||
MWMPlacePageTaxiProviderUber,
|
||||
MWMPlacePageTaxiProviderYandex,
|
||||
MWMPlacePageTaxiProviderMaxim
|
||||
MWMPlacePageTaxiProviderMaxim,
|
||||
MWMPlacePageTaxiProviderRutaxi
|
||||
};
|
||||
|
|
|
@ -40,6 +40,9 @@ final class PlacePageTaxiCell: MWMTableViewCell {
|
|||
case .maxim:
|
||||
icon.image = #imageLiteral(resourceName: "ic_taxi_logo_maksim")
|
||||
title.text = L("maxim_taxi_title")
|
||||
case .rutaxi:
|
||||
icon.image = #imageLiteral(resourceName: "ic_taxi_logo_rutaxi")
|
||||
title.text = L("rutaxi_title")
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -386,8 +386,7 @@ map<MetainfoRows, Class> const kMetaInfoCells = {
|
|||
case taxi::Provider::Uber: type = MWMPlacePageTaxiProviderUber; break;
|
||||
case taxi::Provider::Yandex: type = MWMPlacePageTaxiProviderYandex; break;
|
||||
case taxi::Provider::Maxim: type = MWMPlacePageTaxiProviderMaxim; break;
|
||||
// Dummy.
|
||||
case taxi::Provider::Rutaxi: type = MWMPlacePageTaxiProviderMaxim; break;
|
||||
case taxi::Provider::Rutaxi: type = MWMPlacePageTaxiProviderRutaxi; break;
|
||||
case taxi::Provider::Count: LOG(LERROR, ("Incorrect taxi provider")); break;
|
||||
}
|
||||
[c configWithType:type delegate:delegate];
|
||||
|
@ -630,8 +629,7 @@ map<MetainfoRows, Class> const kMetaInfoCells = {
|
|||
case taxi::Provider::Uber: provider = kStatUber; break;
|
||||
case taxi::Provider::Yandex: provider = kStatYandex; break;
|
||||
case taxi::Provider::Maxim: provider = kStatMaxim; break;
|
||||
// Dummy.
|
||||
case taxi::Provider::Rutaxi: provider = kStatMaxim; break;
|
||||
case taxi::Provider::Rutaxi: provider = kStatRutaxi; break;
|
||||
case taxi::Provider::Count: LOG(LERROR, ("Incorrect taxi provider")); break;
|
||||
}
|
||||
[Statistics logEvent:kStatPlacepageTaxiShow
|
||||
|
|
Loading…
Add table
Reference in a new issue