$apply already in progress error

Stack trace:

Error: $apply already in progress
at Error (<anonymous>)
at beginPhase (file:///android_asset/www/built.min.js:7:22740)
at Object.Scope.$apply (file:///android_asset/www/built.min.js:7:25967)
at navigator.geolocation.getCurrentPosition.that (file:///android_asset/www/built.min.js:13:8670)
at Object.geolocation.getCurrentPosition (file:///android_asset/www/plugins/org.apache.cordova.core.geolocation/www/geolocation.js:122:13)
at Object.getCurrentPosition (file:///android_asset/www/built.min.js:13:8589)
at Object.getCurrentPosition (file:///android_asset/www/built.min.js:13:8277)
at Object.getCurrentCity (file:///android_asset/www/built.min.js:13:8941)
at Object.$scope.locateDevice (file:///android_asset/www/built.min.js:13:10480)
at file:///android_asset/www/built.min.js:7:12292:7

refers to this code http://pastebin.com/B9V6yvFu

    getCurrentPosition: cordovaReady(function (onSuccess, onError, options) {
    navigator.geolocation.getCurrentPosition(function () {
        var that = this,
            args = arguments;

        if (onSuccess) {
            $rootScope.$apply(function () {
                onSuccess.apply(that, args);
            });
        }
    }, function () {
        var that = this,
            args = arguments;
        if (onError) {
            $rootScope.$apply(function () {
                onError.apply(that, args);
            });
        }
    }, {
        enableHighAccuracy: true,
        timeout: 20000,
        maximumAge: 18000000
    });
})

Strange thing, on my LG4X it works fine, however on my samsung s2 it throws the above error. Any ideas whats wrong?

#angular.js #cordova

2.60 GEEK