diff --git a/plugin.xml b/plugin.xml
index 2bd62d7..fa04b9e 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -29,6 +29,7 @@
+
diff --git a/www/screenorientation.js b/www/screenorientation.js
index 4e98e9a..0e2bb27 100644
--- a/www/screenorientation.js
+++ b/www/screenorientation.js
@@ -47,42 +47,19 @@ screenOrientation.setOrientation = function (orientation) {
cordova.exec(null, null, 'CDVOrientation', 'screenOrientation', [orientationMask, orientation]);
};
-if (!screen.orientation) {
- screen.orientation = {};
-}
+screenOrientation.lock = function (orientation) {
+ var p = new Promise(function (resolve, reject) {
+ resolveOrientation(orientation, resolve, reject);
+ });
+ return p;
+};
+
+screenOrientation.unlock = function () {
+ screenOrientation.setOrientation('any');
+};
setOrientationProperties();
-function addScreenOrientationApi (screenObject) {
- if (screenObject.unlock || screenObject.lock) {
- screenObject.nativeLock = screenObject.lock;
- }
-
- screenObject.lock = function (orientation) {
- var promiseLock;
- var p = new Promise(function (resolve, reject) {
- if (screenObject.nativeLock) {
- promiseLock = screenObject.nativeLock(orientation);
- promiseLock.then(
- function success (_) {
- resolve();
- },
- function error (_) {
- screenObject.nativeLock = null;
- resolveOrientation(orientation, resolve, reject);
- }
- );
- } else {
- resolveOrientation(orientation, resolve, reject);
- }
- });
- return p;
- };
- screenObject.unlock = function () {
- screenOrientation.setOrientation('any');
- };
-}
-
function resolveOrientation (orientation, resolve, reject) {
if (!Object.prototype.hasOwnProperty.call(OrientationLockType, orientation)) {
var err = new Error();
@@ -94,18 +71,16 @@ function resolveOrientation (orientation, resolve, reject) {
}
}
-addScreenOrientationApi(screen.orientation);
-
var onChangeListener = null;
-Object.defineProperty(screen.orientation, 'onchange', {
+Object.defineProperty(screenOrientation, 'onchange', {
set: function (listener) {
if (onChangeListener) {
- screen.orientation.removeEventListener('change', onChangeListener);
+ screenOrientation.removeEventListener('change', onChangeListener);
}
onChangeListener = listener;
if (onChangeListener) {
- screen.orientation.addEventListener('change', onChangeListener);
+ screenOrientation.addEventListener('change', onChangeListener);
}
},
get: function () {
@@ -122,33 +97,33 @@ var orientationchange = function () {
evtTarget.dispatchEvent(event);
};
-screen.orientation.addEventListener = function (a, b, c) {
+screenOrientation.addEventListener = function (a, b, c) {
return evtTarget.addEventListener(a, b, c);
};
-screen.orientation.removeEventListener = function (a, b, c) {
+screenOrientation.removeEventListener = function (a, b, c) {
return evtTarget.removeEventListener(a, b, c);
};
function setOrientationProperties () {
switch (window.orientation) {
case 0:
- screen.orientation.type = 'portrait-primary';
+ screenOrientation.type = 'portrait-primary';
break;
case 90:
- screen.orientation.type = 'landscape-primary';
+ screenOrientation.type = 'landscape-primary';
break;
case 180:
- screen.orientation.type = 'portrait-secondary';
+ screenOrientation.type = 'portrait-secondary';
break;
case -90:
- screen.orientation.type = 'landscape-secondary';
+ screenOrientation.type = 'landscape-secondary';
break;
default:
- screen.orientation.type = 'portrait-primary';
+ screenOrientation.type = 'portrait-primary';
break;
}
- screen.orientation.angle = window.orientation || 0;
+ screenOrientation.angle = window.orientation || 0;
}
window.addEventListener('orientationchange', orientationchange, true);