diff --git a/android/jni/com/mapswithme/maps/Framework.cpp b/android/jni/com/mapswithme/maps/Framework.cpp index 1d82cc1975..1b1dd146c2 100644 --- a/android/jni/com/mapswithme/maps/Framework.cpp +++ b/android/jni/com/mapswithme/maps/Framework.cpp @@ -508,12 +508,12 @@ place_page::Info & Framework::GetPlacePageInfo() } void Framework::RequestBookingMinPrice(JNIEnv * env, jobject policy, - booking::BlockParams const & params, + booking::BlockParams && params, booking::BlockAvailabilityCallback const & callback) { auto const bookingApi = m_work.GetBookingApi(ToNativeNetworkPolicy(env, policy)); if (bookingApi) - bookingApi->GetBlockAvailability(params, callback); + bookingApi->GetBlockAvailability(move(params), callback); } void Framework::RequestBookingInfo(JNIEnv * env, jobject policy, diff --git a/android/jni/com/mapswithme/maps/Framework.hpp b/android/jni/com/mapswithme/maps/Framework.hpp index eaeaa50f63..8e94fb9be3 100644 --- a/android/jni/com/mapswithme/maps/Framework.hpp +++ b/android/jni/com/mapswithme/maps/Framework.hpp @@ -181,7 +181,7 @@ namespace android void SetPlacePageInfo(place_page::Info const & info); place_page::Info & GetPlacePageInfo(); - void RequestBookingMinPrice(JNIEnv * env, jobject policy, booking::BlockParams const & params, + void RequestBookingMinPrice(JNIEnv * env, jobject policy, booking::BlockParams && params, booking::BlockAvailabilityCallback const & callback); void RequestBookingInfo(JNIEnv * env, jobject policy, std::string const & hotelId, std::string const & lang, diff --git a/android/jni/com/mapswithme/maps/Sponsored.cpp b/android/jni/com/mapswithme/maps/Sponsored.cpp index 9c44b84e0a..f7127586d4 100644 --- a/android/jni/com/mapswithme/maps/Sponsored.cpp +++ b/android/jni/com/mapswithme/maps/Sponsored.cpp @@ -10,6 +10,7 @@ #include #include +#include namespace { @@ -149,7 +150,8 @@ JNIEXPORT void JNICALL Java_com_mapswithme_maps_widget_placepage_Sponsored_nativ params.m_hotelId = hotelId; params.m_currency = code; g_framework->RequestBookingMinPrice( - env, policy, params, [](std::string const & hotelId, booking::Blocks const & blocks) { + env, policy, std::move(params), + [](std::string const & hotelId, booking::Blocks const & blocks) { if (g_lastRequestedHotelId != hotelId) return; diff --git a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm index 32828608f1..aaa0523d66 100644 --- a/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm +++ b/iphone/Maps/UI/PlacePage/MWMPlacePageData.mm @@ -21,6 +21,7 @@ #include "3party/opening_hours/opening_hours.hpp" #include +#include using namespace place_page; @@ -610,7 +611,7 @@ NSString * const kUserDefaultsLatLonAsDMSKey = @"UserDefaultsLatLonAsDMS"; auto params = booking::BlockParams::MakeDefault(); params.m_hotelId = self.sponsoredId.UTF8String; params.m_currency = currency; - api->GetBlockAvailability(params, func); + api->GetBlockAvailability(std::move(params), func); }); } diff --git a/partners_api/booking_api.cpp b/partners_api/booking_api.cpp index ad92a1548d..ad94437cf3 100644 --- a/partners_api/booking_api.cpp +++ b/partners_api/booking_api.cpp @@ -240,7 +240,7 @@ void FillPriceAndCurrency(json_t * src, string const & currency, BlockInfo & res return; // Try to get price in requested currency. - json_t * other = json_object_get(src, "other_currency"); + auto other = json_object_get(src, "other_currency"); if (!json_is_object(other)) return; @@ -281,7 +281,7 @@ BlockInfo MakeBlock(json_t * src, string const & currency) result.m_photos.emplace_back(photoUrl); } - Deals deals; + auto & deals = result.m_deals; bool lastMinuteDeal = false; FromJSONObjectOptionalField(src, "is_last_minute_deal", lastMinuteDeal); if (lastMinuteDeal) @@ -495,10 +495,10 @@ string Api::ApplyAvailabilityParams(string const & url, AvailabilityParams const return ApplyAvailabilityParamsUniversal(url, params); } -void Api::GetBlockAvailability(BlockParams const & params, +void Api::GetBlockAvailability(BlockParams && params, BlockAvailabilityCallback const & fn) const { - GetPlatform().RunTask(Platform::Thread::Network, [params, fn]() + GetPlatform().RunTask(Platform::Thread::Network, [params = move(params), fn]() { string httpResult; if (!RawApi::BlockAvailability(params, httpResult)) diff --git a/partners_api/booking_api.hpp b/partners_api/booking_api.hpp index f35d295003..74182e2fd7 100644 --- a/partners_api/booking_api.hpp +++ b/partners_api/booking_api.hpp @@ -135,7 +135,7 @@ public: /// Real-time information methods (used for retrieving rapidly changing information). /// These methods send requests directly to Booking. - void GetBlockAvailability(BlockParams const & params, BlockAvailabilityCallback const & fn) const; + void GetBlockAvailability(BlockParams && params, BlockAvailabilityCallback const & fn) const; /// NOTE: callback will be called on the network thread. void GetHotelAvailability(AvailabilityParams const & params, diff --git a/partners_api/booking_block_params.cpp b/partners_api/booking_block_params.cpp index bcd98b4548..22921e5607 100644 --- a/partners_api/booking_block_params.cpp +++ b/partners_api/booking_block_params.cpp @@ -57,4 +57,4 @@ void BlockParams::Set(ParamsBase const & src) { src.CopyTo(*this); } -} // namepace booking \ No newline at end of file +} // namepace booking diff --git a/partners_api/partners_api_tests/booking_tests.cpp b/partners_api/partners_api_tests/booking_tests.cpp index 5491a9c21a..3f791d51af 100644 --- a/partners_api/partners_api_tests/booking_tests.cpp +++ b/partners_api/partners_api_tests/booking_tests.cpp @@ -5,6 +5,7 @@ #include "partners_api/booking_api.hpp" #include +#include using namespace partners_api; using namespace booking; @@ -57,15 +58,15 @@ UNIT_TEST(Booking_HotelAvailability) UNIT_CLASS_TEST(AsyncGuiThreadBooking, Booking_GetBlockAvailability) { - auto params = BlockParams::MakeDefault(); - params.m_hotelId = "0"; // Internal hotel id for testing. Api api; { - double price = std::numeric_limits::max(); + auto params = BlockParams::MakeDefault(); + params.m_hotelId = "0"; // Internal hotel id for testing. + auto price = BlockInfo::kIncorrectPrice; string currency; string hotelId; - api.GetBlockAvailability(params, [&hotelId, &price, ¤cy](std::string const & id, - Blocks const & blocks) + api.GetBlockAvailability(std::move(params), [&hotelId, &price, ¤cy](std::string const & id, + Blocks const & blocks) { hotelId = id; price = blocks.m_totalMinPrice; @@ -87,8 +88,8 @@ UNIT_CLASS_TEST(AsyncGuiThreadBooking, Booking_GetBlockAvailability) double price = std::numeric_limits::max(); string currency; string hotelId; - api.GetBlockAvailability(params, [&hotelId, &price, ¤cy](std::string const & id, - Blocks const & blocks) + api.GetBlockAvailability(std::move(params), [&hotelId, &price, ¤cy](std::string const & id, + Blocks const & blocks) { hotelId = id; price = blocks.m_totalMinPrice;