Modifies SDK and iOS detection for helper method that needs iOS 9+
BUG=NONE
R=tkchin@webrtc.org
Review URL: https://codereview.webrtc.org/1746023002 .
Cr-Commit-Position: refs/heads/master@{#11861}
diff --git a/webrtc/modules/utility/source/helpers_ios.mm b/webrtc/modules/utility/source/helpers_ios.mm
index a312f03..3d7567b 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 @@
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 @@
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