Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mapsme/omim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Gorbushin <m.gorbushin@corp.mail.ru>2019-03-26 15:09:39 +0300
committerVlad Mihaylenko <vxmihaylenko@gmail.com>2019-03-26 15:15:58 +0300
commit4496f0b2a009522a59c81ec8bd3380dc46deb3dd (patch)
tree824f503d9934e78a51449bb76df28a621558fce2 /routing
parent2bceb4e7b26dec9aeb5ff63b958b99a9eabb9563 (diff)
[routing] add settings save for routing options
Diffstat (limited to 'routing')
-rw-r--r--routing/routing_options.cpp8
-rw-r--r--routing/routing_options.hpp1
-rw-r--r--routing/routing_tests/routing_options_tests.cpp21
3 files changed, 29 insertions, 1 deletions
diff --git a/routing/routing_options.cpp b/routing/routing_options.cpp
index aeb8ca3a79..9067ad5eda 100644
--- a/routing/routing_options.cpp
+++ b/routing/routing_options.cpp
@@ -8,6 +8,7 @@
#include "base/checked_cast.hpp"
#include "base/logging.hpp"
#include "base/macros.hpp"
+#include "base/string_utils.hpp"
#include <initializer_list>
#include <sstream>
@@ -32,6 +33,13 @@ RoutingOptions RoutingOptions::LoadCarOptionsFromSettings()
return RoutingOptions(base::checked_cast<RoadType>(mode));
}
+// static
+void RoutingOptions::SaveCarOptionsToSettings(RoutingOptions options)
+{
+ settings::Set(kAvoidRoutingOptionSettingsForCar,
+ strings::to_string(static_cast<int32_t>(options.GetOptions())));
+}
+
void RoutingOptions::Add(RoutingOptions::Road type)
{
m_options |= static_cast<RoadType>(type);
diff --git a/routing/routing_options.hpp b/routing/routing_options.hpp
index 437080de98..457ad61cf1 100644
--- a/routing/routing_options.hpp
+++ b/routing/routing_options.hpp
@@ -33,6 +33,7 @@ public:
explicit RoutingOptions(RoadType mask) : m_options(mask) {}
static RoutingOptions LoadCarOptionsFromSettings();
+ static void SaveCarOptionsToSettings(RoutingOptions options);
void Add(Road type);
void Remove(Road type);
diff --git a/routing/routing_tests/routing_options_tests.cpp b/routing/routing_tests/routing_options_tests.cpp
index 779101a392..2f2df77bf7 100644
--- a/routing/routing_tests/routing_options_tests.cpp
+++ b/routing/routing_tests/routing_options_tests.cpp
@@ -11,13 +11,20 @@ namespace
{
using RoadType = RoutingOptions::RoadType;
-void Checker(std::vector<RoutingOptions::Road> const & include)
+RoutingOptions CreateOptions(std::vector<RoutingOptions::Road> const & include)
{
RoutingOptions options;
for (auto type : include)
options.Add(type);
+ return options;
+}
+
+void Checker(std::vector<RoutingOptions::Road> const & include)
+{
+ RoutingOptions options = CreateOptions(include);
+
for (auto type : include)
TEST(options.Has(type), ());
@@ -48,4 +55,16 @@ UNIT_TEST(RoutingOptionTest)
Checker({RoutingOptions::Road::Dirty, RoutingOptions::Road::Motorway});
Checker({});
}
+
+UNIT_TEST(RoutingOption_GetSetTest)
+{
+ RoutingOptions options = CreateOptions({RoutingOptions::Road::Toll,
+ RoutingOptions::Road::Motorway,
+ RoutingOptions::Road::Dirty});
+
+ RoutingOptions::SaveCarOptionsToSettings(options);
+ RoutingOptions fromSettings = RoutingOptions::LoadCarOptionsFromSettings();
+
+ TEST_EQUAL(options.GetOptions(), fromSettings.GetOptions(), ());
+}
} // namespace