Index: webrtc/modules/utility/source/helpers_ios.mm |
diff --git a/webrtc/modules/utility/source/helpers_ios.mm b/webrtc/modules/utility/source/helpers_ios.mm |
index a312f032d13f6bd8460f04b8df904ef1a42dc316..3d7567b7f0f6362c1931f3ca286358801fb8e58c 100644 |
--- a/webrtc/modules/utility/source/helpers_ios.mm |
+++ b/webrtc/modules/utility/source/helpers_ios.mm |
@@ -23,6 +23,10 @@ |
namespace webrtc { |
namespace ios { |
+bool isOperatingSystemAtLeastVersion(double version) { |
+ return GetSystemVersion() >= version; |
+} |
+ |
// Internal helper method used by GetDeviceName() to return device name. |
const char* LookUpRealName(const char* raw_name) { |
// Lookup table which maps raw device names to real (human readable) names. |
@@ -126,14 +130,18 @@ std::string GetSystemName() { |
return StdStringFromNSString(osName); |
} |
-std::string GetSystemVersion() { |
+std::string GetSystemVersionAsString() { |
NSString* osVersion = [[UIDevice currentDevice] systemVersion]; |
return StdStringFromNSString(osVersion); |
} |
-float GetSystemVersionAsFloat() { |
- NSString* osVersion = [[UIDevice currentDevice] systemVersion]; |
- return osVersion.floatValue; |
+double GetSystemVersion() { |
+ static dispatch_once_t once_token; |
+ static double system_version; |
+ dispatch_once(&once_token, ^{ |
+ system_version = [UIDevice currentDevice].systemVersion.doubleValue; |
+ }); |
+ return system_version; |
} |
std::string GetDeviceType() { |
@@ -169,14 +177,17 @@ int GetProcessorCount() { |
return [NSProcessInfo processInfo].processorCount; |
} |
+#if defined(__IPHONE_9_0) && __IPHONE_OS_VERSION_MAX_ALLOWED >= __IPHONE_9_0 |
bool GetLowPowerModeEnabled() { |
- NSProcessInfo* info = [NSProcessInfo processInfo]; |
- // lowPoweredModeEnabled is only available on iOS9+. |
- if ([info respondsToSelector:@selector(lowPoweredModeEnabled)]) { |
- return info.lowPowerModeEnabled; |
+ if (isOperatingSystemAtLeastVersion(9.0)) { |
+ // lowPoweredModeEnabled is only available on iOS9+. |
+ return [NSProcessInfo processInfo].lowPowerModeEnabled; |
} |
+ LOG(LS_WARNING) << "webrtc::ios::GetLowPowerModeEnabled() is not " |
+ "supported. Requires at least iOS 9.0"; |
return false; |
} |
+#endif |
} // namespace ios |
} // namespace webrtc |