diff --git a/include/mbgl/storage/default_file_source.hpp b/include/mbgl/storage/default_file_source.hpp index 93d629765..dd67cff9b 100644 --- a/include/mbgl/storage/default_file_source.hpp +++ b/include/mbgl/storage/default_file_source.hpp @@ -102,7 +102,6 @@ public: // For testing only. void put(const Resource&, const Response&); - void goOffline(); class Impl; diff --git a/include/mbgl/storage/network_status.hpp b/include/mbgl/storage/network_status.hpp index 420279366..d5ea13e07 100644 --- a/include/mbgl/storage/network_status.hpp +++ b/include/mbgl/storage/network_status.hpp @@ -18,8 +18,8 @@ public: Offline, }; - Status Get(); - void Set(Status); + static Status Get(); + static void Set(Status); static void Reachable(); diff --git a/platform/default/default_file_source.cpp b/platform/default/default_file_source.cpp index 24297374c..80666ca12 100644 --- a/platform/default/default_file_source.cpp +++ b/platform/default/default_file_source.cpp @@ -1,5 +1,6 @@ #include #include +#include #include #include #include @@ -39,7 +40,7 @@ public: callback(*offlineResponse); } - if (!impl->offline) { + if (NetworkStatus::Get() == NetworkStatus::Status::Online) { onlineRequest = impl->onlineFileSource.request(revalidation, [=] (Response onlineResponse) { impl->offlineDatabase.put(revalidation, onlineResponse); callback(onlineResponse); @@ -121,10 +122,6 @@ public: offlineDatabase.put(resource, response); } - void goOffline() { - offline = true; - } - private: OfflineDownload& getDownload(int64_t regionID) { auto it = downloads.find(regionID); @@ -139,7 +136,6 @@ private: OnlineFileSource onlineFileSource; std::unordered_map> tasks; std::unordered_map> downloads; - bool offline = false; }; DefaultFileSource::DefaultFileSource(const std::string& cachePath, @@ -219,8 +215,4 @@ void DefaultFileSource::put(const Resource& resource, const Response& response) thread->invokeSync(&Impl::put, resource, response); } -void DefaultFileSource::goOffline() { - thread->invokeSync(&Impl::goOffline); -} - } // namespace mbgl diff --git a/test/api/offline.cpp b/test/api/offline.cpp index f168ff71f..9940432e3 100644 --- a/test/api/offline.cpp +++ b/test/api/offline.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -38,7 +39,7 @@ TEST(API, Offline) { fileSource.put(Resource::spriteImage(prefix + "/offline/sprite", 1.0), expiredItem("offline/sprite.png")); fileSource.put(Resource::tile(prefix + "/offline/{z}-{x}-{y}.vector.pbf", 1.0, 0, 0, 0), expiredItem("offline/0-0-0.vector.pbf")); fileSource.put(Resource::glyphs(prefix + "/offline/{fontstack}/{range}.pbf", "Helvetica", {0, 255}), expiredItem("offline/glyph.pbf")); - fileSource.goOffline(); + NetworkStatus::Set(NetworkStatus::Status::Offline); Map map(view, fileSource, MapMode::Still); map.setStyleURL(prefix + "/offline/style.json"); @@ -47,4 +48,6 @@ TEST(API, Offline) { test::render(map), 0.0015, 0.1); + + NetworkStatus::Set(NetworkStatus::Status::Online); }