diff --git a/iphone/Maps/Core/NetworkPolicy/MWMNetworkPolicy.h b/iphone/Maps/Core/NetworkPolicy/MWMNetworkPolicy.h index f8944d478d..2a1ca90ef7 100644 --- a/iphone/Maps/Core/NetworkPolicy/MWMNetworkPolicy.h +++ b/iphone/Maps/Core/NetworkPolicy/MWMNetworkPolicy.h @@ -8,4 +8,6 @@ void CallPartnersApi(platform::PartnersApiFn fn, bool force = false); void SetStage(platform::NetworkPolicy::Stage state); platform::NetworkPolicy::Stage GetStage(); + +bool CanUseNetwork(); } // namespace network_policy diff --git a/iphone/Maps/Core/NetworkPolicy/MWMNetworkPolicy.mm b/iphone/Maps/Core/NetworkPolicy/MWMNetworkPolicy.mm index 1f48844198..508f6441a4 100644 --- a/iphone/Maps/Core/NetworkPolicy/MWMNetworkPolicy.mm +++ b/iphone/Maps/Core/NetworkPolicy/MWMNetworkPolicy.mm @@ -78,4 +78,16 @@ np::Stage GetStage() return np::Stage::Never; return np::Stage::Session; } + +bool CanUseNetwork() +{ + auto const connectionType = GetPlatform().ConnectionStatus(); + if (connectionType == Platform::EConnectionType::CONNECTION_NONE) + return false; + if (connectionType == Platform::EConnectionType::CONNECTION_WIFI) + return true; + NSUserDefaults * ud = [NSUserDefaults standardUserDefaults]; + NSDate * policyDate = [ud objectForKey:kNetworkingPolicyTimeStamp]; + return [policyDate compare:[NSDate date]] == NSOrderedDescending; +} } // namespace network_policy