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:
authorIlya Grechuhin <i.grechuhin@mapswithme.com>2015-07-16 13:49:24 +0300
committerAlex Zolotarev <alex@maps.me>2015-09-23 02:56:31 +0300
commit3c5bb1746c29c54a40a16efaba9c6c2eb5500c74 (patch)
treeae57f3dfb910e049888931b38d14e5158dc69071
parent51e035216bc40b91819c9aaa16eab2205715ec5d (diff)
[omim] Extracted measurement system setup to platform.
-rw-r--r--platform/platform.hpp2
-rw-r--r--platform/platform_android.cpp11
-rw-r--r--platform/platform_ios.mm21
-rw-r--r--platform/platform_qt.cpp17
-rw-r--r--qt/main.cpp24
5 files changed, 49 insertions, 26 deletions
diff --git a/platform/platform.hpp b/platform/platform.hpp
index 95e1eb7587..283614aa61 100644
--- a/platform/platform.hpp
+++ b/platform/platform.hpp
@@ -207,6 +207,8 @@ public:
static EConnectionType ConnectionStatus();
static bool IsConnected() { return ConnectionStatus() != EConnectionType::CONNECTION_NONE; }
+ void SetupMeasurementSystem() const;
+
private:
void GetSystemFontNames(FilesList & res) const;
};
diff --git a/platform/platform_android.cpp b/platform/platform_android.cpp
index 225547015e..dcd83fffe0 100644
--- a/platform/platform_android.cpp
+++ b/platform/platform_android.cpp
@@ -1,6 +1,7 @@
#include "platform/platform.hpp"
#include "platform/platform_unix_impl.hpp"
#include "platform/constants.hpp"
+#include "platform/settings.hpp"
#include "coding/zip_reader.hpp"
#include "coding/file_name_utils.hpp"
@@ -264,6 +265,16 @@ Platform::EError Platform::MkDir(string const & dirName) const
return Platform::ERR_OK;
}
+void Platform::SetupMeasurementSystem() const
+{
+ Settings::Units u;
+ if (Settings::Get("Units", u))
+ return;
+ // @TODO Add correct implementation
+ u = Settings::Metric;
+ Settings::Set("Units", u);
+}
+
namespace
{
class FunctorWrapper : public threads::IRoutine
diff --git a/platform/platform_ios.mm b/platform/platform_ios.mm
index 2cbc073dbb..9e95dfd48b 100644
--- a/platform/platform_ios.mm
+++ b/platform/platform_ios.mm
@@ -1,20 +1,21 @@
+#include "platform/constants.hpp"
#include "platform/platform_ios.hpp"
#include "platform/platform_unix_impl.hpp"
-#include "platform/constants.hpp"
+#include "platform/settings.hpp"
#include "coding/file_reader.hpp"
#include <ifaddrs.h>
-#import <mach/mach.h>
+#include <mach/mach.h>
+
+#include <net/if_dl.h>
+#include <net/if.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <sys/types.h>
-#include <net/if_dl.h>
-#include <net/if.h>
-
#if !defined(IFT_ETHER)
#define IFT_ETHER 0x6 /* Ethernet CSMACD */
#endif
@@ -195,6 +196,16 @@ Platform::EConnectionType Platform::ConnectionStatus()
return EConnectionType::CONNECTION_WIFI;
}
+void Platform::SetupMeasurementSystem() const
+{
+ Settings::Units u;
+ if (Settings::Get("Units", u))
+ return;
+ BOOL const isMetric = [[[NSLocale autoupdatingCurrentLocale] objectForKey:NSLocaleUsesMetricSystem] boolValue];
+ u = isMetric ? Settings::Metric : Settings::Foot;
+ Settings::Set("Units", u);
+}
+
CustomIOSPlatform::CustomIOSPlatform()
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
diff --git a/platform/platform_qt.cpp b/platform/platform_qt.cpp
index 004c273446..31f127b466 100644
--- a/platform/platform_qt.cpp
+++ b/platform/platform_qt.cpp
@@ -1,17 +1,19 @@
-#include "platform/platform.hpp"
+
#include "platform/constants.hpp"
+#include "platform/platform.hpp"
+#include "platform/settings.hpp"
#include "coding/file_reader.hpp"
#include "base/logging.hpp"
#include "base/regexp.hpp"
-#include "std/target_os.hpp"
#include "std/algorithm.hpp"
+#include "std/target_os.hpp"
#include <QtCore/QDir>
#include <QtCore/QFileInfo>
-
+#include <QtCore/QLocale>
ModelReader * Platform::GetReader(string const & file, string const & searchScope) const
{
@@ -69,6 +71,15 @@ Platform::EError Platform::MkDir(string const & dirName) const
return Platform::ERR_OK;
}
+void Platform::SetupMeasurementSystem() const
+{
+ Settings::Units u;
+ if (Settings::Get("Units", u))
+ return;
+ bool const isMetric = QLocale::system().measurementSystem() == QLocale::MetricSystem;
+ u = isMetric ? Settings::Metric : Settings::Foot;
+ Settings::Set("Units", u);
+}
extern Platform & GetPlatform()
{
diff --git a/qt/main.cpp b/qt/main.cpp
index 0948022ec0..acfb89f402 100644
--- a/qt/main.cpp
+++ b/qt/main.cpp
@@ -1,20 +1,20 @@
-#include "qt/mainwindow.hpp"
+
#include "qt/info_dialog.hpp"
+#include "qt/mainwindow.hpp"
-#include "platform/settings.hpp"
#include "platform/platform.hpp"
+#include "platform/settings.hpp"
+
+#include "coding/file_reader.hpp"
#include "base/logging.hpp"
#include "base/macros.hpp"
#include "base/object_tracker.hpp"
-#include "coding/file_reader.hpp"
-
#include "std/cstdio.hpp"
#include "3party/Alohalytics/src/alohalytics.h"
-#include <QtCore/QLocale>
#include <QtCore/QDir>
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
@@ -71,19 +71,7 @@ int main(int argc, char * argv[])
alohalytics::Stats::Instance().SetDebugMode(true);
#endif
- // checking default measurement system.
- Settings::Units u;
-
- if (!Settings::Get("Units", u))
- {
- // set default measurement from system locale
- if (QLocale::system().measurementSystem() == QLocale::MetricSystem)
- u = Settings::Metric;
- else
- u = Settings::Foot;
- }
-
- Settings::Set("Units", u);
+ GetPlatform().SetupMeasurementSystem();
// display EULA if needed
char const * settingsEULA = "EulaAccepted";