From 83400033a3b7a91ad072a5d306355c9cd5a80d82 Mon Sep 17 00:00:00 2001 From: PliablePixels Date: Fri, 24 Jul 2015 15:48:01 -0400 Subject: integrated event scrubbing with direct image access - need to clean up code --- plugins/android.json | 7 +++ .../LICENSE.md | 21 +++++++ .../com.phonegap.plugins.OrientationLock/README.md | 29 ++++++++++ .../plugin.xml | 35 ++++++++++++ .../src/com/plugin/phonegap/OrientationLock.java | 65 ++++++++++++++++++++++ .../www/orientationLock.js | 18 ++++++ plugins/fetch.json | 9 +++ plugins/ios.json | 3 + 8 files changed, 187 insertions(+) create mode 100644 plugins/com.phonegap.plugins.OrientationLock/LICENSE.md create mode 100644 plugins/com.phonegap.plugins.OrientationLock/README.md create mode 100644 plugins/com.phonegap.plugins.OrientationLock/plugin.xml create mode 100644 plugins/com.phonegap.plugins.OrientationLock/src/com/plugin/phonegap/OrientationLock.java create mode 100644 plugins/com.phonegap.plugins.OrientationLock/www/orientationLock.js (limited to 'plugins') diff --git a/plugins/android.json b/plugins/android.json index b284091c..2978230a 100644 --- a/plugins/android.json +++ b/plugins/android.json @@ -55,6 +55,10 @@ { "xml": "", "count": 1 + }, + { + "xml": "", + "count": 1 } ] } @@ -110,6 +114,9 @@ }, "org.devgeeks.Canvas2ImagePlugin": { "PACKAGE_NAME": "com.pliablepixels.zmninja" + }, + "com.phonegap.plugins.OrientationLock": { + "PACKAGE_NAME": "com.pliablepixels.zmninja" } }, "dependent_plugins": {} diff --git a/plugins/com.phonegap.plugins.OrientationLock/LICENSE.md b/plugins/com.phonegap.plugins.OrientationLock/LICENSE.md new file mode 100644 index 00000000..b5627bb1 --- /dev/null +++ b/plugins/com.phonegap.plugins.OrientationLock/LICENSE.md @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012-2014 Emil Varga + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/plugins/com.phonegap.plugins.OrientationLock/README.md b/plugins/com.phonegap.plugins.OrientationLock/README.md new file mode 100644 index 00000000..6a5899ed --- /dev/null +++ b/plugins/com.phonegap.plugins.OrientationLock/README.md @@ -0,0 +1,29 @@ +# OrientationLock # + +Android Cordova plugin for locking/unlocking the screen orientation from Javascript + +## Calling the plugin ## + +From your JavaScript code call +`window.plugins.orientationLock.unlock()` to unlock orientation, +`window.plugins.orientationLock.lock("portrait")` or `window.plugins.orientationLock.lock("landscape")` +to lock your screen to the specified orientation. + +To start your Cordova application pre-locked place +`setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);` or +`setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);` +in the `onCreate()` of your Cordova activity. + +Once unlocked, you can track orientation changes with the regular `orientationchange` event: + + window.addEventListener("orientationchange", function() { + alert(window.orientation); + }); + +## Adding the Plugin to your project ## + +Using this plugin requires [Apache Cordova for Android](https://github.com/apache/cordova-android). +Within your project, run the following command: + + cordova plugin add https://github.com/cogitor/PhoneGap-OrientationLock.git + diff --git a/plugins/com.phonegap.plugins.OrientationLock/plugin.xml b/plugins/com.phonegap.plugins.OrientationLock/plugin.xml new file mode 100644 index 00000000..8bd114b8 --- /dev/null +++ b/plugins/com.phonegap.plugins.OrientationLock/plugin.xml @@ -0,0 +1,35 @@ + + + + OrientationLock + Emil Varga + + + Android Cordova plugin for locking/unlocking the screen orientation from Javascript. + + + MIT + + + + + + + + + + + + + + + + + + + + + diff --git a/plugins/com.phonegap.plugins.OrientationLock/src/com/plugin/phonegap/OrientationLock.java b/plugins/com.phonegap.plugins.OrientationLock/src/com/plugin/phonegap/OrientationLock.java new file mode 100644 index 00000000..063fb900 --- /dev/null +++ b/plugins/com.phonegap.plugins.OrientationLock/src/com/plugin/phonegap/OrientationLock.java @@ -0,0 +1,65 @@ +package com.plugin.phonegap; + +import org.json.JSONArray; +import org.json.JSONException; + +import android.content.pm.ActivityInfo; + +import org.apache.cordova.CallbackContext; +import org.apache.cordova.CordovaInterface; +import org.apache.cordova.CordovaPlugin; +import org.apache.cordova.CordovaWebView; + +/** + * + * Android Phonegap Plugin for locking/unlocking the orientation from JS code + * + */ +public class OrientationLock extends CordovaPlugin { + + private static final String LANSCAPE = "landscape"; + private static final String PORTRAIT = "portrait"; + + public OrientationLock() { + } + + public void unlock() { + this.cordova.getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED); + } + + public void lock(String orientation) { + if (orientation.equals(PORTRAIT)) + this.cordova.getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + else + this.cordova.getActivity().setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + } + + @Override + public boolean execute(String action, JSONArray arguments, CallbackContext callbackContext) { + if (action.equals("lock")) { + + try { + String orientation = arguments.getString(0); + + if (orientation!=null && (orientation.equals(LANSCAPE) || orientation.equals(PORTRAIT))) { + this.lock(orientation); + callbackContext.success(); + return true; + } else { + return false; + } + } catch (JSONException e) { + callbackContext.error("JSON_EXCEPTION"); + return true; + } + + } else if (action.equals("unlock")) { + this.unlock(); + callbackContext.success(); + return true; + + } else { + return false; + } + } +} diff --git a/plugins/com.phonegap.plugins.OrientationLock/www/orientationLock.js b/plugins/com.phonegap.plugins.OrientationLock/www/orientationLock.js new file mode 100644 index 00000000..099a5359 --- /dev/null +++ b/plugins/com.phonegap.plugins.OrientationLock/www/orientationLock.js @@ -0,0 +1,18 @@ +var OrientationLock = function() {} + +OrientationLock.prototype.lock = function(orientation, success, fail) { + return cordova.exec(success, fail, "OrientationLock", "lock", [orientation]) +} + +OrientationLock.prototype.unlock = function(success, fail) { + return cordova.exec(success, fail, "OrientationLock", "unlock", []) +} + +if ( ! window.plugins ) { + window.plugins = {} +} +if ( ! window.plugins.orientationLock ) { + window.plugins.orientationLock = new OrientationLock() +} + +module.exports = OrientationLock diff --git a/plugins/fetch.json b/plugins/fetch.json index 7ffc871a..d4ce0140 100644 --- a/plugins/fetch.json +++ b/plugins/fetch.json @@ -119,5 +119,14 @@ }, "is_top_level": true, "variables": {} + }, + "com.phonegap.plugins.OrientationLock": { + "source": { + "type": "git", + "url": "https://github.com/cogitor/PhoneGap-OrientationLock.git", + "subdir": "." + }, + "is_top_level": true, + "variables": {} } } diff --git a/plugins/ios.json b/plugins/ios.json index fcba2cde..637e10e9 100644 --- a/plugins/ios.json +++ b/plugins/ios.json @@ -132,6 +132,9 @@ }, "org.devgeeks.Canvas2ImagePlugin": { "PACKAGE_NAME": "com.pliablepixels.zmninja" + }, + "com.phonegap.plugins.OrientationLock": { + "PACKAGE_NAME": "com.pliablepixels.zmninja" } }, "dependent_plugins": {} -- cgit v1.2.3