GitHub user tisztamo opened a pull request:

    https://github.com/apache/cordova-plugin-device-orientation/pull/16

    Fixed invalid orientation reports on iOS related to landscape mode

    The iOS plugin sets the locationManager.headingOrientation at the first 
heading request but later it doesn't adapt to (screen) orientation changes 
while the heading watch is running which causes invalid reports when the first 
request happens in landscape orientation.
    
    The fix is just removing this setting.
    
    ### Note 1
    The documentation is not clear about the plugin behaviour at screen 
orientation changes. The only place where it talks about this question is at 
iOS quirks: 
    
    *"For iOS 4 devices and above, heading factors in the device's current 
orientation, and does not reference its absolute position, for apps that 
supports that orientation."*
    
    This feature is not working correctly and being not compatible with other 
platforms it just creates unneeded hassle for the user. At the time both 
Android and iOS versions behave the same: nothing happens at orientation 
change. This is how the native sensor APIs are working too so I think that 
removing this is the correct fix of the problem.
    
    I have removed this from the documentation too.
    
    ### Note 2
    To correct the reported value based on screen orientation the user can do 
something like (Do not use the % operator because of this: 
http://wiki.ecmascript.org/doku.php?id=strawman:modulo_operator ):
    
    var corrected = heading + window.orientation;
    if (corrected < 0) {
       corrected += 360;
    } else if (corrected >= 360) {
       corrected -= 360;
    }
    
    I haven't updated the documentation with this but I suggest to include this 
info

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/tisztamo/cordova-plugin-device-orientation 
fixiosorientation

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/cordova-plugin-device-orientation/pull/16.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #16
    
----
commit 0623d82f8f5e298d98f7967d0b518bc11cc68c7a
Author: ko <[email protected]>
Date:   2014-10-23T13:52:32Z

    Fixed invalid heading reports on iOS when the first request is initiated in 
landscape orientation

commit 8adaa2367a22fedd4426e5575d2d5bb29d1f5399
Author: ko <[email protected]>
Date:   2014-10-23T14:30:20Z

    Removed the ios orientation quirk from the documentation

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to