diff --git a/README.md b/README.md index af4b755..51ee123 100644 --- a/README.md +++ b/README.md @@ -36,12 +36,6 @@ The plugin adds the following to the screen object (`window.screen`): ## Install -_cordova < 4_ - -```bash -cordova plugin add net.yoik.cordova.plugins.screenorientation -``` -_cordova > 4_ ```bash cordova plugin add cordova-plugin-screen-orientation @@ -68,7 +62,7 @@ cordova plugin add cordova-plugin-screen-orientation > The orientation is either landscape-primary or landscape-secondary (sensor). #### any -> orientation is landscape-primary or landscape-secondary (sensor). +> orientation is unlocked - all orientations are supported. ## Usage @@ -88,9 +82,6 @@ console.log('Orientation is ' + screen.orientation); Both android and iOS will fire the orientationchange event on the window object. For this version of the plugin use the window object if you require notification. -For this plugin to follow the full API events should be fired on the screen object. -iOS and BB10 do not currently support events on the _screen_ object so custom event -handling will need to be added (Suggestions welcome!). ### Example usage @@ -110,7 +101,7 @@ Wraps the com.blackberry.app plugin functions, auto installed as a dependancy. # Changelog -## 2.0 +## 2.0.0 * Common javascript for iOS, Android and Windows. ## 1.4.2 diff --git a/demo/config.xml b/demo/config.xml new file mode 100644 index 0000000..97595db --- /dev/null +++ b/demo/config.xml @@ -0,0 +1,26 @@ + + + ScreenOrientationDemo + + A sample Apache Cordova application that showcases the Screenorientation plugin. + + + Apache Cordova Team + + + + + + + + + + + + + + + + + + diff --git a/demo/www/css/index.css b/demo/www/css/index.css new file mode 100644 index 0000000..51daa79 --- /dev/null +++ b/demo/www/css/index.css @@ -0,0 +1,115 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +* { + -webkit-tap-highlight-color: rgba(0,0,0,0); /* make transparent link selection, adjust last value opacity 0 to 1.0 */ +} + +body { + -webkit-touch-callout: none; /* prevent callout to copy image, etc when tap to hold */ + -webkit-text-size-adjust: none; /* prevent webkit from resizing text to fit */ + -webkit-user-select: none; /* prevent copy paste, to allow, change 'none' to 'text' */ + background-color:#E4E4E4; + background-image:linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%); + background-image:-webkit-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%); + background-image:-ms-linear-gradient(top, #A7A7A7 0%, #E4E4E4 51%); + background-image:-webkit-gradient( + linear, + left top, + left bottom, + color-stop(0, #A7A7A7), + color-stop(0.51, #E4E4E4) + ); + background-attachment:fixed; + font-family:'HelveticaNeue-Light', 'HelveticaNeue', Helvetica, Arial, sans-serif; + font-size:12px; + height:100%; + margin:0px; + padding:0px; + text-transform:uppercase; + width:100%; +} + +/* Portrait layout (default) */ +.app { + background:url(../img/logo.png) no-repeat center top; /* 170px x 200px */ + position:absolute; /* position in the center of the screen */ + left:50%; + top:50%; + height:50px; /* text area height */ + width:225px; /* text area width */ + text-align:center; + padding:180px 0px 0px 0px; /* image height is 200px (bottom 20px are overlapped with text) */ + margin:-115px 0px 0px -112px; /* offset vertical: half of image height and text area height */ + /* offset horizontal: half of text area width */ +} + +/* Landscape layout (with min-width) */ +@media screen and (min-aspect-ratio: 1/1) and (min-width:400px) { + .app { + background-position:left center; + padding:75px 0px 75px 170px; /* padding-top + padding-bottom + text area = image height */ + margin:-90px 0px 0px -198px; /* offset vertical: half of image height */ + /* offset horizontal: half of image width and text area width */ + } +} + +h1 { + font-size:24px; + font-weight:normal; + margin:0px; + overflow:visible; + padding:0px; + text-align:center; +} + +.event { + border-radius:4px; + -webkit-border-radius:4px; + color:#FFFFFF; + font-size:12px; + margin:0px 30px; + padding:2px 0px; +} + +.event.listening { + background-color:#333333; + display:block; +} + +.event.received { + background-color:#4B946A; + display:none; +} + +@keyframes fade { + from { opacity: 1.0; } + 50% { opacity: 0.4; } + to { opacity: 1.0; } +} + +@-webkit-keyframes fade { + from { opacity: 1.0; } + 50% { opacity: 0.4; } + to { opacity: 1.0; } +} + +.blink { + animation:fade 3000ms infinite; + -webkit-animation:fade 3000ms infinite; +} diff --git a/demo/www/img/logo.png b/demo/www/img/logo.png new file mode 100644 index 0000000..9519e7d Binary files /dev/null and b/demo/www/img/logo.png differ diff --git a/demo/www/index.html b/demo/www/index.html new file mode 100644 index 0000000..36f0596 --- /dev/null +++ b/demo/www/index.html @@ -0,0 +1,58 @@ + + + + + + + + + + + Hello World + + +
+

Apache Cordova

+ +
+ + +
+
+ + +
+ +
+ + + + diff --git a/demo/www/js/index.js b/demo/www/js/index.js new file mode 100644 index 0000000..3df971c --- /dev/null +++ b/demo/www/js/index.js @@ -0,0 +1,96 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +var app = { + // Application Constructor + initialize: function() { + this.bindEvents(); + }, + // Bind Event Listeners + // + // Bind any events that are required on startup. Common events are: + // 'load', 'deviceready', 'offline', and 'online'. + bindEvents: function() { + document.addEventListener('deviceready', this.onDeviceReady, false); + + }, + // deviceready Event Handler + // + // The scope of 'this' is the event. In order to call the 'receivedEvent' + // function, we must explicitly call 'app.receivedEvent(...);' + onDeviceReady: function() { + app.receivedEvent('deviceready'); + btnPortrait.addEventListener("click", function() { + // alert('Orientation is ' + screen.orientation); + screen.lockOrientation('portrait').then(function(obj) { + console.log(obj); + }).catch(function(obj) { + console.log(obj); + }); + }); + btnLandscape.addEventListener("click", function() { + // alert('Orientation is ' + screen.orientation); + screen.lockOrientation('landscape').then(function(obj) { + console.log(obj); + }).catch(function(obj) { + console.log(obj); + }); + }); + btnPortPrimary.addEventListener("click", function() { + // alert('Orientation is ' + screen.orientation); + screen.lockOrientation('portrait-primary').then(function(obj) { + console.log(obj); + }).catch(function(obj) { + console.log(obj); + }); + }); + btnLandPrimary.addEventListener("click", function() { + // alert('Orientation is ' + screen.orientation); + screen.lockOrientation('landscape-primary').then(function(obj) { + console.log(obj); + }).catch(function(obj) { + console.log(obj); + }); + }); + btnAny.addEventListener("click", function() { + // alert('Orientation is ' + screen.orientation); + screen.lockOrientation('any').then(function(obj) { + console.log(obj); + }).catch(function(obj) { + console.log(obj); + }); + }); + + + + + }, + // Update DOM on a Received Event + receivedEvent: function(id) { + var parentElement = document.getElementById(id); + var listeningElement = parentElement.querySelector('.listening'); + var receivedElement = parentElement.querySelector('.received'); + + listeningElement.setAttribute('style', 'display:none;'); + receivedElement.setAttribute('style', 'display:block;'); + + console.log('Received Event: ' + id); + } +}; + +app.initialize(); \ No newline at end of file diff --git a/package.json b/package.json index 62589d9..b440fa4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "cordova-plugin-screen-orientation", - "version": "1.4.2", + "version": "2.0.0-dev", "description": "Adds Screen Orientation API lock and unlock functions to the global screen object in android, iOS, WP8, W8.1, and BB10.", "repository": { "type": "git", diff --git a/plugin.xml b/plugin.xml index 205a6a5..b777d6f 100644 --- a/plugin.xml +++ b/plugin.xml @@ -18,7 +18,7 @@ + version="2.0.0-dev"> Screen Orientation Adds Screen Orientation API lock and unlock functions to the global screen object in android, iOS, WP8, W8.1, and BB10. diff --git a/www/screenorientation.js b/www/screenorientation.js index e03f7ee..d574faa 100644 --- a/www/screenorientation.js +++ b/www/screenorientation.js @@ -35,7 +35,7 @@ cordova.define("cordova-plugin-screen-orientation.screenorientation", function(r 'landscape', // The orientation is either landscape-primary or landscape-secondary. 'any' - // All orientations are supported + // All orientations are supported (unlocked orientation) ]; screenOrientation.Orientations = Orientations;