Updated Branches: refs/heads/develop 2e0f18ca0 -> 66b542611
INPROGRESS - FLEX-33949 Manage OS version in @media CSS implemented for iOS and desktop OS TODO: Android version from system/build.prop Project: http://git-wip-us.apache.org/repos/asf/flex-sdk/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-sdk/commit/e82b4504 Tree: http://git-wip-us.apache.org/repos/asf/flex-sdk/tree/e82b4504 Diff: http://git-wip-us.apache.org/repos/asf/flex-sdk/diff/e82b4504 Branch: refs/heads/develop Commit: e82b45047ab0a61ae9ca47169ccffb04169db210 Parents: 2e0f18c Author: mamsellem <[email protected]> Authored: Sun Dec 1 17:21:49 2013 +0100 Committer: mamsellem <[email protected]> Committed: Sun Dec 1 17:21:49 2013 +0100 ---------------------------------------------------------------------- .../framework/src/mx/utils/MediaQueryParser.as | 28 +++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-sdk/blob/e82b4504/frameworks/projects/framework/src/mx/utils/MediaQueryParser.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/framework/src/mx/utils/MediaQueryParser.as b/frameworks/projects/framework/src/mx/utils/MediaQueryParser.as index d670281..4e54140 100644 --- a/frameworks/projects/framework/src/mx/utils/MediaQueryParser.as +++ b/frameworks/projects/framework/src/mx/utils/MediaQueryParser.as @@ -103,6 +103,7 @@ public class MediaQueryParser applicationDpi = moduleFactory.info()["applicationDPI"]; } osPlatform = getPlatform(); + osVersion = getOSVersion(osPlatform); } /** @@ -407,7 +408,29 @@ public class MediaQueryParser // expression return s.toLowerCase(); } - + + /** @private + * extract OS version information from os + * os is typically a non-numeric string (such as Windows, iPhone OS, Android, etc...) followed by a number. + * if no number is found, OS version is set to 0. + * os on ADL will return the host OS and not the device OS. + * That why we need to check for a specific sequence for iOS and Android + * */ + private function getOSVersion(osPlatform: String ):Number { + + //TODO (mamsellem) retrieve os version for Android, reading system/build.prop + + var os: String = Capabilities.os; + var osMatch: Array; + if (osPlatform == "ios"){ + osMatch = os.match(/iPhone OS\s([\d\.]+)/); + } + else { + osMatch = os.match(/[A-Za-z\s]+([\d\.]+)/); + } + return osMatch ? Number(osMatch [1]) : 0.0; + } + // the type of the media public var type:String = "screen"; @@ -416,6 +439,9 @@ public class MediaQueryParser // the platform of the media public var osPlatform:String; + + // the platform os version of the media + public var osVersion: Number; }
