diff --git a/README.md b/README.md index a2a4656..9ebe00c 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,43 @@ cordova-yoik-screenorientation ============================== + +Cordova plugin to set/lock the screen orientation in a common way for both iOS and Android. + + +Android +==== +The android version is implemented via the standard _activity.setRequestedOrientation_ as used in other screen orientation plugins + +iOS +==== +The iOS version is a combination of the cordova JS callback _window.shouldRotateToOrientation_ and the workaround to recheck the orientation as implemented in https://github.com/Adlotto/cordova-plugin-recheck-screen-orientation. + +If you have a custom impelemntation of the _window.shouldRotateToOrientation_ it will have to be removed for the plugin to function as expected. + +Constants +==== + Orientation: { + UNSPECIFIED: "unspecified", + LANDSCAPE: "landscape", + PORTRAIT: "portrait", + USER: "user", + BEHIND: "behind", + SENSOR: "sensor", + NOSENSOR: "nosensor", + SENSOR_LANDSCAPE: "sensorLandscape", + SENSOR_PORTRAIT: "sensorPortrait", + REVERSE_LANDSCAPE: "reverseLandscape", + REVERSE_PORTRAIT: "reversePortrait", + FULL_SENSOR: "fullSensor" + } + +Usage +==== + + var so = cordova.plugins.screenorientation; + + // with callbacks + so.setOrientation(successCallback, errorCallback, so.Orientation.PORTRAIT); + + // no callbacks + so.setOrientation(so.Orientation.SENSOR_LANDSCAPE); \ No newline at end of file diff --git a/src/android/net/yoik/cordova/plugins/screenorientation/YoikScreenOrientation.java b/src/android/net/yoik/cordova/plugins/screenorientation/YoikScreenOrientation.java index 5729e76..13a2115 100644 --- a/src/android/net/yoik/cordova/plugins/screenorientation/YoikScreenOrientation.java +++ b/src/android/net/yoik/cordova/plugins/screenorientation/YoikScreenOrientation.java @@ -1,3 +1,26 @@ +/* +The MIT License (MIT) + +Copyright (c) 2014 + +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. + */ package net.yoik.cordova.plugins.screenorientation; import org.apache.cordova.CallbackContext; @@ -9,9 +32,6 @@ import org.json.JSONException; import android.app.Activity; import android.content.pm.ActivityInfo; import android.util.Log; -import android.webkit.CookieSyncManager; -import android.widget.Toast; - public class YoikScreenOrientation extends CordovaPlugin { @@ -40,10 +60,8 @@ public class YoikScreenOrientation extends CordovaPlugin { // an index for the toast message private static final int TOAST_MESSAGE_INDEX = 0; - @Override - public boolean execute(String action, JSONArray args, - CallbackContext callbackContext) { + public boolean execute(String action, JSONArray args, CallbackContext callbackContext) { Log.d(TAG, "execute action: " + action); @@ -57,14 +75,7 @@ public class YoikScreenOrientation extends CordovaPlugin { return false; } - /** - * Screen Orientation Methods - * - * @author Ronald Diaz - * @return boolean - */ - private boolean routeScreenOrientation(JSONArray args, - CallbackContext callbackContext) { + private boolean routeScreenOrientation(JSONArray args, CallbackContext callbackContext) { String action = args.optString(0); @@ -115,5 +126,4 @@ public class YoikScreenOrientation extends CordovaPlugin { } - } \ No newline at end of file diff --git a/src/ios/YoikScreenOrientation.m b/src/ios/YoikScreenOrientation.m index 94b6731..094ac97 100644 --- a/src/ios/YoikScreenOrientation.m +++ b/src/ios/YoikScreenOrientation.m @@ -1,5 +1,5 @@ // -// Utility.m +// YoikScreenOrientation.m // Yoik // // Created by Nick Luo on 14/06/13. @@ -8,37 +8,10 @@ #import "YoikScreenOrientation.h" -// #import "AppDelegate.h" -// #import "MainViewController.h" -// #import "TempViewController.h" - @implementation YoikScreenOrientation - -(void)screenOrientation:(CDVInvokedUrlCommand *)command { - // NSString *action = [command.arguments objectAtIndex:0]; - - // AppDelegate *delegate = [UIApplication sharedApplication].delegate; - - // MainViewController *viewController =(MainViewController *)delegate.viewController; - - // if ([action isEqual:@"portrait"]) { - // [viewController forcePortrait]; - // } else { - // [viewController forceLandscape]; - // } - - // TempViewController *temp = [[[TempViewController alloc] init] autorelease]; - - // [delegate.viewController presentViewController:temp animated:NO completion:^{ - // [temp dismissModalViewControllerAnimated:NO]; - - // CDVPluginResult *pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK]; - // [self.commandDelegate sendPluginResult:pluginResult callbackId:command.callbackId]; - - // }]; - // HACK: Force rotate by changing the view hierarchy. Present modal view then dismiss it immediately. [self.viewController presentViewController:[UIViewController new] animated:NO completion:^{ [self.viewController dismissViewControllerAnimated:NO completion:nil]; }];