You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cordova.apache.org by to...@apache.org on 2016/05/23 13:42:14 UTC
[16/50] cordova-plugin-screen-orientation git commit: Added WP8
support
Added WP8 support
Project: http://git-wip-us.apache.org/repos/asf/cordova-plugin-screen-orientation/repo
Commit: http://git-wip-us.apache.org/repos/asf/cordova-plugin-screen-orientation/commit/865c81a0
Tree: http://git-wip-us.apache.org/repos/asf/cordova-plugin-screen-orientation/tree/865c81a0
Diff: http://git-wip-us.apache.org/repos/asf/cordova-plugin-screen-orientation/diff/865c81a0
Branch: refs/heads/master
Commit: 865c81a09effa5a4176de8882bcbfbb1b7f11d25
Parents: b3aadac
Author: EddyVerbruggen <ed...@gmail.com>
Authored: Wed May 13 20:30:41 2015 +0200
Committer: EddyVerbruggen <ed...@gmail.com>
Committed: Wed May 13 20:30:41 2015 +0200
----------------------------------------------------------------------
plugin.xml | 14 +++-
src/wp/YoikScreenOrientation.cs | 133 +++++++++++++++++++++++++++++++++++
www/screenorientation.wp8.js | 8 +++
3 files changed, 154 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cordova-plugin-screen-orientation/blob/865c81a0/plugin.xml
----------------------------------------------------------------------
diff --git a/plugin.xml b/plugin.xml
index 07a9b5d..874d7da 100644
--- a/plugin.xml
+++ b/plugin.xml
@@ -2,7 +2,7 @@
<plugin xmlns="http://www.phonegap.com/ns/plugins/1.0"
xmlns:android="http://schemas.android.com/apk/res/android"
id="net.yoik.cordova.plugins.screenorientation"
- version="1.3.2">
+ version="1.3.3">
<name>Screen Orientation</name>
<description>Adds Screen Orientation API lock and unlock functions to the global screen object in android, iOS and BB10.</description>
@@ -52,4 +52,16 @@
</js-module>
</platform>
+ <platform name="wp8">
+ <config-file target="config.xml" parent="/*">
+ <feature name="YoikScreenOrientation">
+ <param name="wp-package" value="YoikScreenOrientation"/>
+ </feature>
+ </config-file>
+ <js-module src="www/screenorientation.wp8.js" name="screenorientation.wp8">
+ <merges target="cordova.plugins.screenorientation" />
+ </js-module>
+ <source-file src="src/wp/YoikScreenOrientation.cs" />
+ </platform>
+
</plugin>
http://git-wip-us.apache.org/repos/asf/cordova-plugin-screen-orientation/blob/865c81a0/src/wp/YoikScreenOrientation.cs
----------------------------------------------------------------------
diff --git a/src/wp/YoikScreenOrientation.cs b/src/wp/YoikScreenOrientation.cs
new file mode 100644
index 0000000..00545e3
--- /dev/null
+++ b/src/wp/YoikScreenOrientation.cs
@@ -0,0 +1,133 @@
+/*
+ Licensed 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.
+*/
+
+using System;
+using System.Net;
+using System.IO;
+using Microsoft.Phone.Controls;
+using Microsoft.Phone.Notification;
+using Microsoft.Phone.Shell;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Documents;
+using System.Windows.Ink;
+using System.Windows.Input;
+using System.Windows.Media;
+using System.Windows.Media.Animation;
+using System.Windows.Shapes;
+using System.Windows.Threading;
+using System.Runtime.Serialization;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.Globalization;
+using System.Threading;
+
+using WPCordovaClassLib.Cordova;
+using WPCordovaClassLib.Cordova.Commands;
+using WPCordovaClassLib.Cordova.JSON;
+
+
+namespace WPCordovaClassLib.Cordova.Commands
+{
+ public class YoikScreenOrientation : BaseCommand
+ {
+ #region Static members
+ private const string UNLOCKED = "unlocked";
+
+ private const string PORTRAIT = "portrait";
+ private const string PORTRAIT_PRIMARY = "portrait-primary";
+ private const string PORTRAIT_SECONDARY = "portrait-secondary";
+
+ private const string LANDSCAPE = "landscape";
+ private const string LANDSCAPE_PRIMARY = "landscape-primary";
+ private const string LANDSCAPE_SECONDARY = "landscape-secondary";
+
+ #endregion
+
+ /// <summary>
+ /// Current orientation
+ /// </summary>
+ private string currentOrientation;
+
+ public YoikScreenOrientation()
+ {
+
+ }
+
+ /// <summary>
+ /// Changes the orientation
+ /// </summary>
+
+ public void screenOrientation(string options)
+ {
+ string orientation = null;
+ try
+ {
+ orientation = JSON.JsonHelper.Deserialize<string[]>(options)[0];
+ }
+ catch (Exception ex)
+ {
+ this.DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION, ex.Message));
+ return;
+ }
+
+ if (string.IsNullOrEmpty(orientation))
+ {
+ this.DispatchCommandResult(new PluginResult(PluginResult.Status.JSON_EXCEPTION));
+ return;
+ }
+
+ if (this.currentOrientation != orientation) // Might prevent flickering
+ {
+
+ Deployment.Current.Dispatcher.BeginInvoke(() =>
+ {
+ PhoneApplicationFrame frame;
+ PhoneApplicationPage page;
+ if (TryCast(Application.Current.RootVisual, out frame) &&
+ TryCast(frame.Content, out page))
+ {
+ if (orientation == PORTRAIT || orientation == PORTRAIT_PRIMARY || orientation == PORTRAIT_SECONDARY)
+ {
+ page.SupportedOrientations = SupportedPageOrientation.Portrait;
+ }
+
+ else if (orientation == LANDSCAPE || orientation == LANDSCAPE_PRIMARY || orientation == LANDSCAPE_SECONDARY)
+ {
+ page.SupportedOrientations = SupportedPageOrientation.Landscape;
+ }
+ else if (orientation == UNLOCKED)
+ {
+ page.SupportedOrientations = SupportedPageOrientation.PortraitOrLandscape;
+ }
+ else
+ {
+ this.DispatchCommandResult(new PluginResult(PluginResult.Status.ERROR, "Screen orientation not detected."));
+ return;
+ }
+ this.currentOrientation = orientation;
+ }
+ });
+
+ this.DispatchCommandResult();
+ }
+ }
+
+ static bool TryCast<T>(object obj, out T result) where T : class
+ {
+ result = obj as T;
+ return result != null;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/cordova-plugin-screen-orientation/blob/865c81a0/www/screenorientation.wp8.js
----------------------------------------------------------------------
diff --git a/www/screenorientation.wp8.js b/www/screenorientation.wp8.js
new file mode 100644
index 0000000..9dd64ae
--- /dev/null
+++ b/www/screenorientation.wp8.js
@@ -0,0 +1,8 @@
+var exec = require('cordova/exec'),
+ screenOrientation = {};
+
+screenOrientation.setOrientation = function(orientation) {
+ exec(null, null, "YoikScreenOrientation", "screenOrientation", [orientation]);
+};
+
+module.exports = screenOrientation;
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cordova.apache.org
For additional commands, e-mail: commits-help@cordova.apache.org