summaryrefslogtreecommitdiff
path: root/plugins/com.phonegap.plugins.OrientationLock
diff options
context:
space:
mode:
authorPliablePixels <pliablepixels@gmail.com>2015-07-24 15:48:01 -0400
committerPliablePixels <pliablepixels@gmail.com>2015-07-24 15:48:01 -0400
commit83400033a3b7a91ad072a5d306355c9cd5a80d82 (patch)
treeb84d23a607523249554dc97ed26f000ca03d0abd /plugins/com.phonegap.plugins.OrientationLock
parent89640e9b0212a2525ea132b1d11bb8962f5444dd (diff)
integrated event scrubbing with direct image access - need to clean up code
Diffstat (limited to 'plugins/com.phonegap.plugins.OrientationLock')
-rw-r--r--plugins/com.phonegap.plugins.OrientationLock/LICENSE.md21
-rw-r--r--plugins/com.phonegap.plugins.OrientationLock/README.md29
-rw-r--r--plugins/com.phonegap.plugins.OrientationLock/plugin.xml35
-rw-r--r--plugins/com.phonegap.plugins.OrientationLock/src/com/plugin/phonegap/OrientationLock.java65
-rw-r--r--plugins/com.phonegap.plugins.OrientationLock/www/orientationLock.js18
5 files changed, 168 insertions, 0 deletions
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 <emil.varga@gmail.com>
+
+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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ id="com.phonegap.plugins.OrientationLock"
+ version="0.1">
+
+ <name>OrientationLock</name>
+ <author>Emil Varga</author>
+
+ <description>
+ Android Cordova plugin for locking/unlocking the screen orientation from Javascript.
+ </description>
+
+ <license>MIT</license>
+
+ <js-module src="www/orientationLock.js" name="OrientationLock">
+ <clobbers target="OrientationLock" />
+ </js-module>
+
+ <engines>
+ <engine name="cordova" version=">=3.0.0" />
+ </engines>
+
+ <platform name="android">
+
+ <config-file target="res/xml/config.xml" parent="/*">
+ <feature name="OrientationLock" >
+ <param name="android-package" value="com.plugin.phonegap.OrientationLock"/>
+ </feature>
+ </config-file>
+
+ <source-file src="src/com/plugin/phonegap/OrientationLock.java" target-dir="src/com/plugin/phonegap/" />
+
+ </platform>
+</plugin>
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