front_idill/lib/cordova-2.0.0.js
author bastiena
Mon, 24 Sep 2012 15:19:49 +0200
changeset 123 57a65edde708
parent 89 b6a115568b52
permissions -rw-r--r--
Front IDILL: non tmpl config files removed.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
89
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
     1
// commit 114cf5304a74ff8f7c9ff1d21cf5652298af04b0
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
     2
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
     3
// File generated at :: Wed Jul 18 2012 16:47:25 GMT-0700 (PDT)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
     4
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
     5
/*
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
     6
 Licensed to the Apache Software Foundation (ASF) under one
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
     7
 or more contributor license agreements.  See the NOTICE file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
     8
 distributed with this work for additional information
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
     9
 regarding copyright ownership.  The ASF licenses this file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    10
 to you under the Apache License, Version 2.0 (the
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    11
 "License"); you may not use this file except in compliance
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    12
 with the License.  You may obtain a copy of the License at
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    13
 
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    14
     http://www.apache.org/licenses/LICENSE-2.0
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    15
 
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    16
 Unless required by applicable law or agreed to in writing,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    17
 software distributed under the License is distributed on an
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    18
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    19
 KIND, either express or implied.  See the License for the
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    20
 specific language governing permissions and limitations
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    21
 under the License.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    22
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    23
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    24
;(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    25
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    26
// file: lib/scripts/require.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    27
var require,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    28
    define;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    29
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    30
(function () {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    31
    var modules = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    32
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    33
    function build(module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    34
        var factory = module.factory;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    35
        module.exports = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    36
        delete module.factory;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    37
        factory(require, module.exports, module);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    38
        return module.exports;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    39
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    40
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    41
    require = function (id) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    42
        if (!modules[id]) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    43
            throw "module " + id + " not found";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    44
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    45
        return modules[id].factory ? build(modules[id]) : modules[id].exports;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    46
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    47
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    48
    define = function (id, factory) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    49
        if (modules[id]) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    50
            throw "module " + id + " already defined";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    51
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    52
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    53
        modules[id] = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    54
            id: id,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    55
            factory: factory
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    56
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    57
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    58
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    59
    define.remove = function (id) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    60
        delete modules[id];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    61
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    62
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    63
})();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    64
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    65
//Export for use in node
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    66
if (typeof module === "object" && typeof require === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    67
    module.exports.require = require;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    68
    module.exports.define = define;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    69
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    70
// file: lib/cordova.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    71
define("cordova", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    72
var channel = require('cordova/channel');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    73
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    74
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    75
 * Listen for DOMContentLoaded and notify our channel subscribers.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    76
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    77
document.addEventListener('DOMContentLoaded', function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    78
    channel.onDOMContentLoaded.fire();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    79
}, false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    80
if (document.readyState == 'complete' || document.readyState == 'interactive') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    81
    channel.onDOMContentLoaded.fire();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    82
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    83
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    84
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    85
 * Intercept calls to addEventListener + removeEventListener and handle deviceready,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    86
 * resume, and pause events.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    87
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    88
var m_document_addEventListener = document.addEventListener;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    89
var m_document_removeEventListener = document.removeEventListener;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    90
var m_window_addEventListener = window.addEventListener;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    91
var m_window_removeEventListener = window.removeEventListener;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    92
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    93
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    94
 * Houses custom event handlers to intercept on document + window event listeners.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    95
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    96
var documentEventHandlers = {},
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    97
    windowEventHandlers = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    98
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
    99
document.addEventListener = function(evt, handler, capture) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   100
    var e = evt.toLowerCase();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   101
    if (typeof documentEventHandlers[e] != 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   102
        if (evt === 'deviceready') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   103
            documentEventHandlers[e].subscribeOnce(handler);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   104
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   105
            documentEventHandlers[e].subscribe(handler);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   106
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   107
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   108
        m_document_addEventListener.call(document, evt, handler, capture);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   109
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   110
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   111
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   112
window.addEventListener = function(evt, handler, capture) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   113
    var e = evt.toLowerCase();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   114
    if (typeof windowEventHandlers[e] != 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   115
        windowEventHandlers[e].subscribe(handler);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   116
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   117
        m_window_addEventListener.call(window, evt, handler, capture);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   118
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   119
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   120
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   121
document.removeEventListener = function(evt, handler, capture) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   122
    var e = evt.toLowerCase();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   123
    // If unsubcribing from an event that is handled by a plugin
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   124
    if (typeof documentEventHandlers[e] != "undefined") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   125
        documentEventHandlers[e].unsubscribe(handler);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   126
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   127
        m_document_removeEventListener.call(document, evt, handler, capture);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   128
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   129
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   130
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   131
window.removeEventListener = function(evt, handler, capture) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   132
    var e = evt.toLowerCase();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   133
    // If unsubcribing from an event that is handled by a plugin
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   134
    if (typeof windowEventHandlers[e] != "undefined") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   135
        windowEventHandlers[e].unsubscribe(handler);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   136
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   137
        m_window_removeEventListener.call(window, evt, handler, capture);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   138
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   139
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   140
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   141
function createEvent(type, data) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   142
    var event = document.createEvent('Events');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   143
    event.initEvent(type, false, false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   144
    if (data) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   145
        for (var i in data) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   146
            if (data.hasOwnProperty(i)) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   147
                event[i] = data[i];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   148
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   149
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   150
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   151
    return event;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   152
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   153
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   154
if(typeof window.console === "undefined") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   155
    window.console = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   156
        log:function(){}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   157
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   158
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   159
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   160
var cordova = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   161
    define:define,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   162
    require:require,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   163
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   164
     * Methods to add/remove your own addEventListener hijacking on document + window.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   165
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   166
    addWindowEventHandler:function(event, opts) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   167
        return (windowEventHandlers[event] = channel.create(event, opts));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   168
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   169
    addDocumentEventHandler:function(event, opts) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   170
        return (documentEventHandlers[event] = channel.create(event, opts));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   171
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   172
    removeWindowEventHandler:function(event) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   173
        delete windowEventHandlers[event];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   174
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   175
    removeDocumentEventHandler:function(event) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   176
        delete documentEventHandlers[event];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   177
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   178
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   179
     * Retreive original event handlers that were replaced by Cordova
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   180
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   181
     * @return object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   182
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   183
    getOriginalHandlers: function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   184
        return {'document': {'addEventListener': m_document_addEventListener, 'removeEventListener': m_document_removeEventListener},
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   185
        'window': {'addEventListener': m_window_addEventListener, 'removeEventListener': m_window_removeEventListener}};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   186
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   187
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   188
     * Method to fire event from native code
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   189
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   190
    fireDocumentEvent: function(type, data) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   191
        var evt = createEvent(type, data);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   192
        if (typeof documentEventHandlers[type] != 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   193
            setTimeout(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   194
                documentEventHandlers[type].fire(evt);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   195
            }, 0);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   196
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   197
            document.dispatchEvent(evt);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   198
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   199
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   200
    fireWindowEvent: function(type, data) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   201
        var evt = createEvent(type,data);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   202
        if (typeof windowEventHandlers[type] != 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   203
            setTimeout(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   204
                windowEventHandlers[type].fire(evt);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   205
            }, 0);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   206
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   207
            window.dispatchEvent(evt);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   208
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   209
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   210
    // TODO: this is Android only; think about how to do this better
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   211
    shuttingDown:false,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   212
    UsePolling:false,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   213
    // END TODO
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   214
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   215
    // TODO: iOS only
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   216
    // This queue holds the currently executing command and all pending
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   217
    // commands executed with cordova.exec().
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   218
    commandQueue:[],
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   219
    // Indicates if we're currently in the middle of flushing the command
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   220
    // queue on the native side.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   221
    commandQueueFlushing:false,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   222
    // END TODO
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   223
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   224
     * Plugin callback mechanism.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   225
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   226
    callbackId: 0,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   227
    callbacks:  {},
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   228
    callbackStatus: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   229
        NO_RESULT: 0,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   230
        OK: 1,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   231
        CLASS_NOT_FOUND_EXCEPTION: 2,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   232
        ILLEGAL_ACCESS_EXCEPTION: 3,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   233
        INSTANTIATION_EXCEPTION: 4,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   234
        MALFORMED_URL_EXCEPTION: 5,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   235
        IO_EXCEPTION: 6,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   236
        INVALID_ACTION: 7,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   237
        JSON_EXCEPTION: 8,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   238
        ERROR: 9
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   239
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   240
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   241
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   242
     * Called by native code when returning successful result from an action.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   243
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   244
     * @param callbackId
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   245
     * @param args
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   246
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   247
    callbackSuccess: function(callbackId, args) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   248
        if (cordova.callbacks[callbackId]) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   249
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   250
            // If result is to be sent to callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   251
            if (args.status == cordova.callbackStatus.OK) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   252
                try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   253
                    if (cordova.callbacks[callbackId].success) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   254
                        cordova.callbacks[callbackId].success(args.message);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   255
                    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   256
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   257
                catch (e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   258
                    console.log("Error in success callback: "+callbackId+" = "+e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   259
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   260
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   261
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   262
            // Clear callback if not expecting any more results
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   263
            if (!args.keepCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   264
                delete cordova.callbacks[callbackId];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   265
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   266
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   267
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   268
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   269
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   270
     * Called by native code when returning error result from an action.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   271
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   272
     * @param callbackId
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   273
     * @param args
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   274
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   275
    callbackError: function(callbackId, args) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   276
        if (cordova.callbacks[callbackId]) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   277
            try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   278
                if (cordova.callbacks[callbackId].fail) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   279
                    cordova.callbacks[callbackId].fail(args.message);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   280
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   281
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   282
            catch (e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   283
                console.log("Error in error callback: "+callbackId+" = "+e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   284
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   285
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   286
            // Clear callback if not expecting any more results
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   287
            if (!args.keepCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   288
                delete cordova.callbacks[callbackId];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   289
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   290
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   291
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   292
    addConstructor: function(func) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   293
        channel.onCordovaReady.subscribeOnce(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   294
            try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   295
                func();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   296
            } catch(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   297
                console.log("Failed to run constructor: " + e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   298
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   299
        });
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   300
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   301
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   302
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   303
// Register pause, resume and deviceready channels as events on document.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   304
channel.onPause = cordova.addDocumentEventHandler('pause');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   305
channel.onResume = cordova.addDocumentEventHandler('resume');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   306
channel.onDeviceReady = cordova.addDocumentEventHandler('deviceready');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   307
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   308
module.exports = cordova;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   309
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   310
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   311
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   312
// file: lib/common/builder.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   313
define("cordova/builder", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   314
var utils = require('cordova/utils');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   315
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   316
function each(objects, func, context) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   317
    for (var prop in objects) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   318
        if (objects.hasOwnProperty(prop)) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   319
            func.apply(context, [objects[prop], prop]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   320
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   321
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   322
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   323
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   324
function include(parent, objects, clobber, merge) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   325
    each(objects, function (obj, key) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   326
        try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   327
          var result = obj.path ? require(obj.path) : {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   328
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   329
          if (clobber) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   330
              // Clobber if it doesn't exist.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   331
              if (typeof parent[key] === 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   332
                  parent[key] = result;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   333
              } else if (typeof obj.path !== 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   334
                  // If merging, merge properties onto parent, otherwise, clobber.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   335
                  if (merge) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   336
                      recursiveMerge(parent[key], result);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   337
                  } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   338
                      parent[key] = result;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   339
                  }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   340
              }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   341
              result = parent[key];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   342
          } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   343
            // Overwrite if not currently defined.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   344
            if (typeof parent[key] == 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   345
              parent[key] = result;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   346
            } else if (merge && typeof obj.path !== 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   347
              // If merging, merge parent onto result
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   348
              recursiveMerge(result, parent[key]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   349
              parent[key] = result;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   350
            } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   351
              // Set result to what already exists, so we can build children into it if they exist.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   352
              result = parent[key];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   353
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   354
          }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   355
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   356
          if (obj.children) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   357
            include(result, obj.children, clobber, merge);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   358
          }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   359
        } catch(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   360
          utils.alert('Exception building cordova JS globals: ' + e + ' for key "' + key + '"');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   361
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   362
    });
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   363
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   364
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   365
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   366
 * Merge properties from one object onto another recursively.  Properties from
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   367
 * the src object will overwrite existing target property.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   368
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   369
 * @param target Object to merge properties into.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   370
 * @param src Object to merge properties from.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   371
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   372
function recursiveMerge(target, src) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   373
    for (var prop in src) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   374
        if (src.hasOwnProperty(prop)) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   375
            if (typeof target.prototype !== 'undefined' && target.prototype.constructor === target) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   376
                // If the target object is a constructor override off prototype.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   377
                target.prototype[prop] = src[prop];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   378
            } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   379
                target[prop] = typeof src[prop] === 'object' ? recursiveMerge(
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   380
                        target[prop], src[prop]) : src[prop];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   381
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   382
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   383
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   384
    return target;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   385
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   386
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   387
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   388
    build: function (objects) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   389
        return {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   390
            intoButDontClobber: function (target) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   391
                include(target, objects, false, false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   392
            },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   393
            intoAndClobber: function(target) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   394
                include(target, objects, true, false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   395
            },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   396
            intoAndMerge: function(target) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   397
                include(target, objects, true, true);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   398
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   399
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   400
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   401
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   402
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   403
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   404
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   405
// file: lib/common/channel.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   406
define("cordova/channel", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   407
var utils = require('cordova/utils');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   408
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   409
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   410
 * Custom pub-sub "channel" that can have functions subscribed to it
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   411
 * This object is used to define and control firing of events for
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   412
 * cordova initialization.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   413
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   414
 * The order of events during page load and Cordova startup is as follows:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   415
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   416
 * onDOMContentLoaded         Internal event that is received when the web page is loaded and parsed.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   417
 * onNativeReady              Internal event that indicates the Cordova native side is ready.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   418
 * onCordovaReady             Internal event fired when all Cordova JavaScript objects have been created.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   419
 * onCordovaInfoReady         Internal event fired when device properties are available.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   420
 * onCordovaConnectionReady   Internal event fired when the connection property has been set.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   421
 * onDeviceReady              User event fired to indicate that Cordova is ready
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   422
 * onResume                   User event fired to indicate a start/resume lifecycle event
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   423
 * onPause                    User event fired to indicate a pause lifecycle event
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   424
 * onDestroy                  Internal event fired when app is being destroyed (User should use window.onunload event, not this one).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   425
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   426
 * The only Cordova events that user code should register for are:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   427
 *      deviceready           Cordova native code is initialized and Cordova APIs can be called from JavaScript
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   428
 *      pause                 App has moved to background
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   429
 *      resume                App has returned to foreground
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   430
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   431
 * Listeners can be registered as:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   432
 *      document.addEventListener("deviceready", myDeviceReadyListener, false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   433
 *      document.addEventListener("resume", myResumeListener, false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   434
 *      document.addEventListener("pause", myPauseListener, false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   435
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   436
 * The DOM lifecycle events should be used for saving and restoring state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   437
 *      window.onload
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   438
 *      window.onunload
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   439
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   440
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   441
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   442
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   443
 * Channel
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   444
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   445
 * @param type  String the channel name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   446
 * @param opts  Object options to pass into the channel, currently
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   447
 *                     supports:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   448
 *                     onSubscribe: callback that fires when
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   449
 *                       something subscribes to the Channel. Sets
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   450
 *                       context to the Channel.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   451
 *                     onUnsubscribe: callback that fires when
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   452
 *                       something unsubscribes to the Channel. Sets
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   453
 *                       context to the Channel.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   454
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   455
var Channel = function(type, opts) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   456
    this.type = type;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   457
    this.handlers = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   458
    this.numHandlers = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   459
    this.guid = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   460
    this.fired = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   461
    this.enabled = true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   462
    this.events = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   463
        onSubscribe:null,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   464
        onUnsubscribe:null
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   465
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   466
    if (opts) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   467
        if (opts.onSubscribe) this.events.onSubscribe = opts.onSubscribe;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   468
        if (opts.onUnsubscribe) this.events.onUnsubscribe = opts.onUnsubscribe;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   469
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   470
},
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   471
    channel = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   472
        /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   473
         * Calls the provided function only after all of the channels specified
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   474
         * have been fired.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   475
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   476
        join: function (h, c) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   477
            var i = c.length;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   478
            var len = i;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   479
            var f = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   480
                if (!(--i)) h();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   481
            };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   482
            for (var j=0; j<len; j++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   483
                !c[j].fired?c[j].subscribeOnce(f):i--;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   484
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   485
            if (!i) h();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   486
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   487
        create: function (type, opts) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   488
            channel[type] = new Channel(type, opts);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   489
            return channel[type];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   490
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   491
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   492
        /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   493
         * cordova Channels that must fire before "deviceready" is fired.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   494
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   495
        deviceReadyChannelsArray: [],
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   496
        deviceReadyChannelsMap: {},
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   497
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   498
        /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   499
         * Indicate that a feature needs to be initialized before it is ready to be used.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   500
         * This holds up Cordova's "deviceready" event until the feature has been initialized
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   501
         * and Cordova.initComplete(feature) is called.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   502
         *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   503
         * @param feature {String}     The unique feature name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   504
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   505
        waitForInitialization: function(feature) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   506
            if (feature) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   507
                var c = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   508
                if (this[feature]) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   509
                    c = this[feature];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   510
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   511
                else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   512
                    c = this.create(feature);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   513
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   514
                this.deviceReadyChannelsMap[feature] = c;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   515
                this.deviceReadyChannelsArray.push(c);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   516
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   517
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   518
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   519
        /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   520
         * Indicate that initialization code has completed and the feature is ready to be used.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   521
         *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   522
         * @param feature {String}     The unique feature name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   523
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   524
        initializationComplete: function(feature) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   525
            var c = this.deviceReadyChannelsMap[feature];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   526
            if (c) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   527
                c.fire();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   528
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   529
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   530
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   531
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   532
function forceFunction(f) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   533
    if (f === null || f === undefined || typeof f != 'function') throw "Function required as first argument!";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   534
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   535
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   536
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   537
 * Subscribes the given function to the channel. Any time that
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   538
 * Channel.fire is called so too will the function.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   539
 * Optionally specify an execution context for the function
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   540
 * and a guid that can be used to stop subscribing to the channel.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   541
 * Returns the guid.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   542
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   543
Channel.prototype.subscribe = function(f, c, g) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   544
    // need a function to call
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   545
    forceFunction(f);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   546
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   547
    var func = f;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   548
    if (typeof c == "object") { func = utils.close(c, f); }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   549
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   550
    g = g || func.observer_guid || f.observer_guid;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   551
    if (!g) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   552
        // first time we've seen this subscriber
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   553
        g = this.guid++;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   554
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   555
    else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   556
        // subscriber already handled; dont set it twice
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   557
        return g;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   558
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   559
    func.observer_guid = g;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   560
    f.observer_guid = g;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   561
    this.handlers[g] = func;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   562
    this.numHandlers++;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   563
    if (this.events.onSubscribe) this.events.onSubscribe.call(this);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   564
    if (this.fired) func.call(this);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   565
    return g;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   566
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   567
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   568
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   569
 * Like subscribe but the function is only called once and then it
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   570
 * auto-unsubscribes itself.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   571
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   572
Channel.prototype.subscribeOnce = function(f, c) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   573
    // need a function to call
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   574
    forceFunction(f);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   575
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   576
    var g = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   577
    var _this = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   578
    var m = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   579
        f.apply(c || null, arguments);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   580
        _this.unsubscribe(g);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   581
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   582
    if (this.fired) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   583
        if (typeof c == "object") { f = utils.close(c, f); }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   584
        f.apply(this, this.fireArgs);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   585
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   586
        g = this.subscribe(m);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   587
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   588
    return g;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   589
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   590
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   591
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   592
 * Unsubscribes the function with the given guid from the channel.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   593
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   594
Channel.prototype.unsubscribe = function(g) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   595
    // need a function to unsubscribe
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   596
    if (g === null || g === undefined) { throw "You must pass _something_ into Channel.unsubscribe"; }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   597
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   598
    if (typeof g == 'function') { g = g.observer_guid; }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   599
    var handler = this.handlers[g];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   600
    if (handler) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   601
        if (handler.observer_guid) handler.observer_guid=null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   602
        this.handlers[g] = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   603
        delete this.handlers[g];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   604
        this.numHandlers--;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   605
        if (this.events.onUnsubscribe) this.events.onUnsubscribe.call(this);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   606
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   607
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   608
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   609
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   610
 * Calls all functions subscribed to this channel.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   611
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   612
Channel.prototype.fire = function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   613
    if (this.enabled) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   614
        var fail = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   615
        this.fired = true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   616
        for (var item in this.handlers) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   617
            var handler = this.handlers[item];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   618
            if (typeof handler == 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   619
                var rv = (handler.apply(this, arguments)===false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   620
                fail = fail || rv;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   621
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   622
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   623
        this.fireArgs = arguments;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   624
        return !fail;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   625
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   626
    return true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   627
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   628
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   629
// defining them here so they are ready super fast!
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   630
// DOM event that is received when the web page is loaded and parsed.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   631
channel.create('onDOMContentLoaded');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   632
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   633
// Event to indicate the Cordova native side is ready.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   634
channel.create('onNativeReady');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   635
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   636
// Event to indicate that all Cordova JavaScript objects have been created
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   637
// and it's time to run plugin constructors.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   638
channel.create('onCordovaReady');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   639
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   640
// Event to indicate that device properties are available
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   641
channel.create('onCordovaInfoReady');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   642
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   643
// Event to indicate that the connection property has been set.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   644
channel.create('onCordovaConnectionReady');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   645
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   646
// Event to indicate that Cordova is ready
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   647
channel.create('onDeviceReady');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   648
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   649
// Event to indicate a resume lifecycle event
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   650
channel.create('onResume');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   651
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   652
// Event to indicate a pause lifecycle event
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   653
channel.create('onPause');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   654
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   655
// Event to indicate a destroy lifecycle event
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   656
channel.create('onDestroy');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   657
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   658
// Channels that must fire before "deviceready" is fired.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   659
channel.waitForInitialization('onCordovaReady');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   660
channel.waitForInitialization('onCordovaConnectionReady');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   661
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   662
module.exports = channel;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   663
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   664
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   665
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   666
// file: lib/common/common.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   667
define("cordova/common", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   668
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   669
    objects: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   670
        cordova: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   671
            path: 'cordova',
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   672
            children: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   673
                exec: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   674
                    path: 'cordova/exec'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   675
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   676
                logger: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   677
                    path: 'cordova/plugin/logger'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   678
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   679
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   680
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   681
        Cordova: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   682
            children: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   683
                exec: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   684
                    path: 'cordova/exec'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   685
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   686
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   687
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   688
        PhoneGap:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   689
            children: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   690
                exec: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   691
                    path: 'cordova/exec'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   692
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   693
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   694
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   695
        navigator: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   696
            children: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   697
                notification: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   698
                    path: 'cordova/plugin/notification'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   699
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   700
                accelerometer: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   701
                    path: 'cordova/plugin/accelerometer'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   702
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   703
                battery: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   704
                    path: 'cordova/plugin/battery'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   705
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   706
                camera:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   707
                    path: 'cordova/plugin/Camera'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   708
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   709
                compass:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   710
                    path: 'cordova/plugin/compass'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   711
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   712
                contacts: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   713
                    path: 'cordova/plugin/contacts'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   714
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   715
                device:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   716
                    children:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   717
                        capture: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   718
                            path: 'cordova/plugin/capture'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   719
                        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   720
                    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   721
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   722
                geolocation: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   723
                    path: 'cordova/plugin/geolocation'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   724
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   725
                network: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   726
                    children: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   727
                        connection: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   728
                            path: 'cordova/plugin/network'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   729
                        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   730
                    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   731
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   732
                splashscreen: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   733
                    path: 'cordova/plugin/splashscreen'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   734
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   735
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   736
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   737
        Acceleration: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   738
            path: 'cordova/plugin/Acceleration'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   739
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   740
        Camera:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   741
            path: 'cordova/plugin/CameraConstants'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   742
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   743
        CameraPopoverOptions: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   744
            path: 'cordova/plugin/CameraPopoverOptions'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   745
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   746
        CaptureError: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   747
            path: 'cordova/plugin/CaptureError'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   748
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   749
        CaptureAudioOptions:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   750
            path: 'cordova/plugin/CaptureAudioOptions'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   751
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   752
        CaptureImageOptions: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   753
            path: 'cordova/plugin/CaptureImageOptions'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   754
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   755
        CaptureVideoOptions: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   756
            path: 'cordova/plugin/CaptureVideoOptions'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   757
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   758
        CompassHeading:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   759
            path: 'cordova/plugin/CompassHeading'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   760
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   761
        CompassError:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   762
            path: 'cordova/plugin/CompassError'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   763
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   764
        ConfigurationData: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   765
            path: 'cordova/plugin/ConfigurationData'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   766
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   767
        Connection: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   768
            path: 'cordova/plugin/Connection'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   769
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   770
        Contact: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   771
            path: 'cordova/plugin/Contact'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   772
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   773
        ContactAddress: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   774
            path: 'cordova/plugin/ContactAddress'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   775
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   776
        ContactError: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   777
            path: 'cordova/plugin/ContactError'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   778
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   779
        ContactField: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   780
            path: 'cordova/plugin/ContactField'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   781
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   782
        ContactFindOptions: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   783
            path: 'cordova/plugin/ContactFindOptions'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   784
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   785
        ContactName: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   786
            path: 'cordova/plugin/ContactName'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   787
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   788
        ContactOrganization: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   789
            path: 'cordova/plugin/ContactOrganization'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   790
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   791
        Coordinates: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   792
            path: 'cordova/plugin/Coordinates'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   793
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   794
        device: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   795
            path: 'cordova/plugin/device'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   796
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   797
        DirectoryEntry: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   798
            path: 'cordova/plugin/DirectoryEntry'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   799
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   800
        DirectoryReader: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   801
            path: 'cordova/plugin/DirectoryReader'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   802
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   803
        Entry: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   804
            path: 'cordova/plugin/Entry'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   805
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   806
        File: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   807
            path: 'cordova/plugin/File'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   808
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   809
        FileEntry: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   810
            path: 'cordova/plugin/FileEntry'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   811
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   812
        FileError: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   813
            path: 'cordova/plugin/FileError'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   814
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   815
        FileReader: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   816
            path: 'cordova/plugin/FileReader'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   817
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   818
        FileSystem: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   819
            path: 'cordova/plugin/FileSystem'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   820
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   821
        FileTransfer: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   822
            path: 'cordova/plugin/FileTransfer'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   823
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   824
        FileTransferError: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   825
            path: 'cordova/plugin/FileTransferError'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   826
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   827
        FileUploadOptions: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   828
            path: 'cordova/plugin/FileUploadOptions'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   829
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   830
        FileUploadResult: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   831
            path: 'cordova/plugin/FileUploadResult'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   832
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   833
        FileWriter: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   834
            path: 'cordova/plugin/FileWriter'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   835
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   836
        Flags: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   837
            path: 'cordova/plugin/Flags'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   838
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   839
        LocalFileSystem: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   840
            path: 'cordova/plugin/LocalFileSystem'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   841
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   842
        Media: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   843
            path: 'cordova/plugin/Media'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   844
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   845
        MediaError: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   846
            path: 'cordova/plugin/MediaError'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   847
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   848
        MediaFile: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   849
            path: 'cordova/plugin/MediaFile'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   850
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   851
        MediaFileData:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   852
            path: 'cordova/plugin/MediaFileData'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   853
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   854
        Metadata:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   855
            path: 'cordova/plugin/Metadata'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   856
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   857
        Position: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   858
            path: 'cordova/plugin/Position'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   859
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   860
        PositionError: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   861
            path: 'cordova/plugin/PositionError'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   862
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   863
        ProgressEvent: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   864
            path: 'cordova/plugin/ProgressEvent'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   865
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   866
        requestFileSystem:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   867
            path: 'cordova/plugin/requestFileSystem'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   868
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   869
        resolveLocalFileSystemURI:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   870
            path: 'cordova/plugin/resolveLocalFileSystemURI'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   871
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   872
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   873
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   874
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   875
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   876
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   877
// file: lib/ios/exec.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   878
define("cordova/exec", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   879
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   880
     * Creates a gap bridge iframe used to notify the native code about queued
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   881
     * commands.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   882
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   883
     * @private
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   884
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   885
var cordova = require('cordova'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   886
    utils = require('cordova/utils'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   887
    gapBridge,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   888
    createGapBridge = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   889
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   890
        gapBridge = document.createElement("iframe");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   891
        gapBridge.setAttribute("style", "display:none;");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   892
        gapBridge.setAttribute("height","0px");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   893
        gapBridge.setAttribute("width","0px");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   894
        gapBridge.setAttribute("frameborder","0");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   895
        document.documentElement.appendChild(gapBridge);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   896
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   897
    channel = require('cordova/channel');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   898
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   899
module.exports = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   900
    if (!channel.onCordovaReady.fired) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   901
        utils.alert("ERROR: Attempting to call cordova.exec()" +
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   902
              " before 'deviceready'. Ignoring.");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   903
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   904
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   905
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   906
    var successCallback, failCallback, service, action, actionArgs, splitCommand;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   907
    var callbackId = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   908
    if (typeof arguments[0] !== "string") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   909
        // FORMAT ONE
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   910
        successCallback = arguments[0];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   911
        failCallback = arguments[1];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   912
        service = arguments[2];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   913
        action = arguments[3];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   914
        actionArgs = arguments[4];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   915
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   916
        // Since we need to maintain backwards compatibility, we have to pass
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   917
        // an invalid callbackId even if no callback was provided since plugins
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   918
        // will be expecting it. The Cordova.exec() implementation allocates
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   919
        // an invalid callbackId and passes it even if no callbacks were given.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   920
        callbackId = 'INVALID';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   921
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   922
        // FORMAT TWO
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   923
        splitCommand = arguments[0].split(".");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   924
        action = splitCommand.pop();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   925
        service = splitCommand.join(".");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   926
        actionArgs = Array.prototype.splice.call(arguments, 1);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   927
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   928
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   929
    // Start building the command object.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   930
    var command = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   931
        className: service,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   932
        methodName: action,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   933
        "arguments": []
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   934
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   935
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   936
    // Register the callbacks and add the callbackId to the positional
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   937
    // arguments if given.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   938
    if (successCallback || failCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   939
        callbackId = service + cordova.callbackId++;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   940
        cordova.callbacks[callbackId] =
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   941
            {success:successCallback, fail:failCallback};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   942
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   943
    if (callbackId !== null) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   944
        command["arguments"].push(callbackId);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   945
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   946
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   947
    for (var i = 0; i < actionArgs.length; ++i) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   948
        var arg = actionArgs[i];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   949
        if (arg === undefined || arg === null) { // nulls are pushed to the args now (becomes NSNull)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   950
            command["arguments"].push(arg);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   951
        } else if (typeof(arg) == 'object' && !(utils.isArray(arg))) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   952
            command.options = arg;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   953
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   954
            command["arguments"].push(arg);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   955
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   956
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   957
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   958
    // Stringify and queue the command. We stringify to command now to
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   959
    // effectively clone the command arguments in case they are mutated before
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   960
    // the command is executed.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   961
    cordova.commandQueue.push(JSON.stringify(command));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   962
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   963
    // If the queue length is 1, then that means it was empty before we queued
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   964
    // the given command, so let the native side know that we have some
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   965
    // commands to execute, unless the queue is currently being flushed, in
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   966
    // which case the command will be picked up without notification.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   967
    if (cordova.commandQueue.length == 1 && !cordova.commandQueueFlushing) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   968
        if (!gapBridge) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   969
            createGapBridge();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   970
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   971
        gapBridge.src = "gap://ready";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   972
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   973
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   974
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   975
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   976
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   977
// file: lib/ios/platform.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   978
define("cordova/platform", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   979
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   980
    id: "ios",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   981
    initialize:function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   982
        // iOS doesn't allow reassigning / overriding navigator.geolocation object.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   983
        // So clobber its methods here instead :)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   984
        var geo = require('cordova/plugin/geolocation');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   985
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   986
        navigator.geolocation.getCurrentPosition = geo.getCurrentPosition;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   987
        navigator.geolocation.watchPosition = geo.watchPosition;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   988
        navigator.geolocation.clearWatch = geo.clearWatch;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   989
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   990
    objects: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   991
        File: { // exists natively, override
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   992
            path: "cordova/plugin/File"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   993
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   994
        MediaError: { // exists natively, override
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   995
            path: "cordova/plugin/MediaError"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   996
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   997
        console: {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   998
            path: 'cordova/plugin/ios/console'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
   999
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1000
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1001
    merges:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1002
        Contact:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1003
            path: "cordova/plugin/ios/Contact"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1004
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1005
        Entry:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1006
            path: "cordova/plugin/ios/Entry"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1007
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1008
        FileReader:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1009
            path: "cordova/plugin/ios/FileReader"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1010
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1011
        navigator:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1012
            children:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1013
                notification:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1014
                    path:"cordova/plugin/ios/notification"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1015
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1016
                contacts:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1017
                    path:"cordova/plugin/ios/contacts"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1018
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1019
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1020
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1021
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1022
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1023
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1024
// use the native logger
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1025
var logger = require("cordova/plugin/logger");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1026
logger.useConsole(false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1027
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1028
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1029
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1030
// file: lib/common/plugin/Acceleration.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1031
define("cordova/plugin/Acceleration", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1032
var Acceleration = function(x, y, z, timestamp) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1033
    this.x = x;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1034
    this.y = y;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1035
    this.z = z;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1036
    this.timestamp = timestamp || (new Date()).getTime();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1037
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1038
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1039
module.exports = Acceleration;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1040
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1041
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1042
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1043
// file: lib/common/plugin/Camera.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1044
define("cordova/plugin/Camera", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1045
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1046
    Camera = require('cordova/plugin/CameraConstants');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1047
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1048
var cameraExport = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1049
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1050
// Tack on the Camera Constants to the base camera plugin.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1051
for (var key in Camera) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1052
    cameraExport[key] = Camera[key];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1053
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1054
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1055
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1056
 * Gets a picture from source defined by "options.sourceType", and returns the
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1057
 * image as defined by the "options.destinationType" option.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1058
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1059
 * The defaults are sourceType=CAMERA and destinationType=FILE_URI.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1060
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1061
 * @param {Function} successCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1062
 * @param {Function} errorCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1063
 * @param {Object} options
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1064
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1065
cameraExport.getPicture = function(successCallback, errorCallback, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1066
    // successCallback required
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1067
    if (typeof successCallback != "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1068
        console.log("Camera Error: successCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1069
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1070
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1071
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1072
    // errorCallback optional
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1073
    if (errorCallback && (typeof errorCallback != "function")) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1074
        console.log("Camera Error: errorCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1075
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1076
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1077
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1078
    var quality = 50;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1079
    if (options && typeof options.quality == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1080
        quality = options.quality;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1081
    } else if (options && typeof options.quality == "string") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1082
        var qlity = parseInt(options.quality, 10);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1083
        if (isNaN(qlity) === false) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1084
            quality = qlity.valueOf();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1085
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1086
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1087
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1088
    var destinationType = Camera.DestinationType.FILE_URI;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1089
    if (typeof options.destinationType == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1090
        destinationType = options.destinationType;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1091
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1092
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1093
    var sourceType = Camera.PictureSourceType.CAMERA;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1094
    if (typeof options.sourceType == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1095
        sourceType = options.sourceType;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1096
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1097
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1098
    var targetWidth = -1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1099
    if (typeof options.targetWidth == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1100
        targetWidth = options.targetWidth;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1101
    } else if (typeof options.targetWidth == "string") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1102
        var width = parseInt(options.targetWidth, 10);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1103
        if (isNaN(width) === false) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1104
            targetWidth = width.valueOf();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1105
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1106
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1107
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1108
    var targetHeight = -1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1109
    if (typeof options.targetHeight == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1110
        targetHeight = options.targetHeight;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1111
    } else if (typeof options.targetHeight == "string") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1112
        var height = parseInt(options.targetHeight, 10);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1113
        if (isNaN(height) === false) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1114
            targetHeight = height.valueOf();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1115
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1116
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1117
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1118
    var encodingType = Camera.EncodingType.JPEG;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1119
    if (typeof options.encodingType == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1120
        encodingType = options.encodingType;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1121
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1122
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1123
    var mediaType = Camera.MediaType.PICTURE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1124
    if (typeof options.mediaType == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1125
        mediaType = options.mediaType;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1126
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1127
    var allowEdit = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1128
    if (typeof options.allowEdit == "boolean") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1129
        allowEdit = options.allowEdit;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1130
    } else if (typeof options.allowEdit == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1131
        allowEdit = options.allowEdit <= 0 ? false : true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1132
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1133
    var correctOrientation = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1134
    if (typeof options.correctOrientation == "boolean") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1135
        correctOrientation = options.correctOrientation;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1136
    } else if (typeof options.correctOrientation == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1137
        correctOrientation = options.correctOrientation <=0 ? false : true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1138
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1139
    var saveToPhotoAlbum = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1140
    if (typeof options.saveToPhotoAlbum == "boolean") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1141
        saveToPhotoAlbum = options.saveToPhotoAlbum;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1142
    } else if (typeof options.saveToPhotoAlbum == "number") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1143
        saveToPhotoAlbum = options.saveToPhotoAlbum <=0 ? false : true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1144
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1145
    var popoverOptions = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1146
    if (typeof options.popoverOptions == "object") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1147
        popoverOptions = options.popoverOptions;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1148
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1149
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1150
    var args = [quality, destinationType, sourceType, targetWidth, targetHeight, encodingType,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1151
                mediaType, allowEdit, correctOrientation, saveToPhotoAlbum, popoverOptions];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1152
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1153
    exec(successCallback, errorCallback, "Camera", "takePicture", args);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1154
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1155
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1156
cameraExport.cleanup = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1157
    exec(successCallback, errorCallback, "Camera", "cleanup", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1158
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1159
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1160
module.exports = cameraExport;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1161
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1162
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1163
// file: lib/common/plugin/CameraConstants.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1164
define("cordova/plugin/CameraConstants", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1165
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1166
  DestinationType:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1167
    DATA_URL: 0,         // Return base64 encoded string
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1168
    FILE_URI: 1          // Return file uri (content://media/external/images/media/2 for Android)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1169
  },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1170
  EncodingType:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1171
    JPEG: 0,             // Return JPEG encoded image
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1172
    PNG: 1               // Return PNG encoded image
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1173
  },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1174
  MediaType:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1175
    PICTURE: 0,          // allow selection of still pictures only. DEFAULT. Will return format specified via DestinationType
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1176
    VIDEO: 1,            // allow selection of video only, ONLY RETURNS URL
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1177
    ALLMEDIA : 2         // allow selection from all media types
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1178
  },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1179
  PictureSourceType:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1180
    PHOTOLIBRARY : 0,    // Choose image from picture library (same as SAVEDPHOTOALBUM for Android)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1181
    CAMERA : 1,          // Take picture from camera
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1182
    SAVEDPHOTOALBUM : 2  // Choose image from picture library (same as PHOTOLIBRARY for Android)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1183
  },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1184
  PopoverArrowDirection:{
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1185
      ARROW_UP : 1,        // matches iOS UIPopoverArrowDirection constants to specify arrow location on popover
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1186
      ARROW_DOWN : 2,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1187
      ARROW_LEFT : 4,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1188
      ARROW_RIGHT : 8,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1189
      ARROW_ANY : 15
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1190
  }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1191
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1192
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1193
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1194
// file: lib/common/plugin/CameraPopoverOptions.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1195
define("cordova/plugin/CameraPopoverOptions", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1196
var Camera = require('cordova/plugin/CameraConstants');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1197
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1198
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1199
 * Encapsulates options for iOS Popover image picker
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1200
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1201
var CameraPopoverOptions = function(x,y,width,height,arrowDir){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1202
    // information of rectangle that popover should be anchored to
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1203
    this.x = x || 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1204
    this.y = y || 32;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1205
    this.width = width || 320;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1206
    this.height = height || 480;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1207
    // The direction of the popover arrow
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1208
    this.arrowDir = arrowDir || Camera.PopoverArrowDirection.ARROW_ANY;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1209
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1210
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1211
module.exports = CameraPopoverOptions;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1212
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1213
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1214
// file: lib/common/plugin/CaptureAudioOptions.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1215
define("cordova/plugin/CaptureAudioOptions", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1216
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1217
 * Encapsulates all audio capture operation configuration options.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1218
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1219
var CaptureAudioOptions = function(){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1220
    // Upper limit of sound clips user can record. Value must be equal or greater than 1.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1221
    this.limit = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1222
    // Maximum duration of a single sound clip in seconds.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1223
    this.duration = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1224
    // The selected audio mode. Must match with one of the elements in supportedAudioModes array.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1225
    this.mode = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1226
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1227
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1228
module.exports = CaptureAudioOptions;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1229
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1230
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1231
// file: lib/common/plugin/CaptureError.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1232
define("cordova/plugin/CaptureError", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1233
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1234
 * The CaptureError interface encapsulates all errors in the Capture API.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1235
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1236
var CaptureError = function(c) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1237
   this.code = c || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1238
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1239
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1240
// Camera or microphone failed to capture image or sound.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1241
CaptureError.CAPTURE_INTERNAL_ERR = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1242
// Camera application or audio capture application is currently serving other capture request.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1243
CaptureError.CAPTURE_APPLICATION_BUSY = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1244
// Invalid use of the API (e.g. limit parameter has value less than one).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1245
CaptureError.CAPTURE_INVALID_ARGUMENT = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1246
// User exited camera application or audio capture application before capturing anything.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1247
CaptureError.CAPTURE_NO_MEDIA_FILES = 3;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1248
// The requested capture operation is not supported.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1249
CaptureError.CAPTURE_NOT_SUPPORTED = 20;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1250
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1251
module.exports = CaptureError;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1252
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1253
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1254
// file: lib/common/plugin/CaptureImageOptions.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1255
define("cordova/plugin/CaptureImageOptions", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1256
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1257
 * Encapsulates all image capture operation configuration options.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1258
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1259
var CaptureImageOptions = function(){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1260
    // Upper limit of images user can take. Value must be equal or greater than 1.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1261
    this.limit = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1262
    // The selected image mode. Must match with one of the elements in supportedImageModes array.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1263
    this.mode = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1264
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1265
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1266
module.exports = CaptureImageOptions;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1267
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1268
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1269
// file: lib/common/plugin/CaptureVideoOptions.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1270
define("cordova/plugin/CaptureVideoOptions", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1271
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1272
 * Encapsulates all video capture operation configuration options.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1273
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1274
var CaptureVideoOptions = function(){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1275
    // Upper limit of videos user can record. Value must be equal or greater than 1.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1276
    this.limit = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1277
    // Maximum duration of a single video clip in seconds.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1278
    this.duration = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1279
    // The selected video mode. Must match with one of the elements in supportedVideoModes array.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1280
    this.mode = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1281
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1282
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1283
module.exports = CaptureVideoOptions;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1284
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1285
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1286
// file: lib/common/plugin/CompassError.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1287
define("cordova/plugin/CompassError", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1288
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1289
 *  CompassError.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1290
 *  An error code assigned by an implementation when an error has occured
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1291
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1292
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1293
var CompassError = function(err) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1294
    this.code = (err !== undefined ? err : null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1295
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1296
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1297
CompassError.COMPASS_INTERNAL_ERR = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1298
CompassError.COMPASS_NOT_SUPPORTED = 20;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1299
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1300
module.exports = CompassError;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1301
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1302
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1303
// file: lib/common/plugin/CompassHeading.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1304
define("cordova/plugin/CompassHeading", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1305
var CompassHeading = function(magneticHeading, trueHeading, headingAccuracy, timestamp) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1306
  this.magneticHeading = (magneticHeading !== undefined ? magneticHeading : null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1307
  this.trueHeading = (trueHeading !== undefined ? trueHeading : null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1308
  this.headingAccuracy = (headingAccuracy !== undefined ? headingAccuracy : null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1309
  this.timestamp = (timestamp !== undefined ? timestamp : new Date().getTime());
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1310
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1311
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1312
module.exports = CompassHeading;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1313
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1314
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1315
// file: lib/common/plugin/ConfigurationData.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1316
define("cordova/plugin/ConfigurationData", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1317
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1318
 * Encapsulates a set of parameters that the capture device supports.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1319
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1320
function ConfigurationData() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1321
    // The ASCII-encoded string in lower case representing the media type.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1322
    this.type = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1323
    // The height attribute represents height of the image or video in pixels.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1324
    // In the case of a sound clip this attribute has value 0.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1325
    this.height = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1326
    // The width attribute represents width of the image or video in pixels.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1327
    // In the case of a sound clip this attribute has value 0
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1328
    this.width = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1329
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1330
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1331
module.exports = ConfigurationData;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1332
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1333
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1334
// file: lib/common/plugin/Connection.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1335
define("cordova/plugin/Connection", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1336
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1337
 * Network status
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1338
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1339
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1340
        UNKNOWN: "unknown",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1341
        ETHERNET: "ethernet",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1342
        WIFI: "wifi",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1343
        CELL_2G: "2g",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1344
        CELL_3G: "3g",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1345
        CELL_4G: "4g",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1346
        NONE: "none"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1347
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1348
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1349
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1350
// file: lib/common/plugin/Contact.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1351
define("cordova/plugin/Contact", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1352
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1353
    ContactError = require('cordova/plugin/ContactError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1354
    utils = require('cordova/utils');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1355
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1356
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1357
* Converts primitives into Complex Object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1358
* Currently only used for Date fields
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1359
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1360
function convertIn(contact) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1361
    var value = contact.birthday;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1362
    try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1363
      contact.birthday = new Date(parseFloat(value));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1364
    } catch (exception){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1365
      console.log("Cordova Contact convertIn error: exception creating date.");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1366
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1367
    return contact;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1368
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1369
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1370
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1371
* Converts Complex objects into primitives
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1372
* Only conversion at present is for Dates.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1373
**/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1374
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1375
function convertOut(contact) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1376
    var value = contact.birthday;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1377
    if (value !== null) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1378
        // try to make it a Date object if it is not already
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1379
        if (!utils.isDate(value)){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1380
            try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1381
                value = new Date(value);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1382
            } catch(exception){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1383
                value = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1384
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1385
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1386
        if (utils.isDate(value)){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1387
            value = value.valueOf(); // convert to milliseconds
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1388
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1389
        contact.birthday = value;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1390
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1391
    return contact;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1392
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1393
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1394
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1395
* Contains information about a single contact.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1396
* @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1397
* @param {DOMString} id unique identifier
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1398
* @param {DOMString} displayName
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1399
* @param {ContactName} name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1400
* @param {DOMString} nickname
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1401
* @param {Array.<ContactField>} phoneNumbers array of phone numbers
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1402
* @param {Array.<ContactField>} emails array of email addresses
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1403
* @param {Array.<ContactAddress>} addresses array of addresses
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1404
* @param {Array.<ContactField>} ims instant messaging user ids
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1405
* @param {Array.<ContactOrganization>} organizations
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1406
* @param {DOMString} birthday contact's birthday
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1407
* @param {DOMString} note user notes about contact
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1408
* @param {Array.<ContactField>} photos
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1409
* @param {Array.<ContactField>} categories
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1410
* @param {Array.<ContactField>} urls contact's web sites
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1411
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1412
var Contact = function (id, displayName, name, nickname, phoneNumbers, emails, addresses,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1413
    ims, organizations, birthday, note, photos, categories, urls) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1414
    this.id = id || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1415
    this.rawId = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1416
    this.displayName = displayName || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1417
    this.name = name || null; // ContactName
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1418
    this.nickname = nickname || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1419
    this.phoneNumbers = phoneNumbers || null; // ContactField[]
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1420
    this.emails = emails || null; // ContactField[]
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1421
    this.addresses = addresses || null; // ContactAddress[]
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1422
    this.ims = ims || null; // ContactField[]
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1423
    this.organizations = organizations || null; // ContactOrganization[]
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1424
    this.birthday = birthday || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1425
    this.note = note || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1426
    this.photos = photos || null; // ContactField[]
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1427
    this.categories = categories || null; // ContactField[]
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1428
    this.urls = urls || null; // ContactField[]
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1429
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1430
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1431
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1432
* Removes contact from device storage.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1433
* @param successCB success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1434
* @param errorCB error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1435
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1436
Contact.prototype.remove = function(successCB, errorCB) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1437
    var fail = function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1438
        errorCB(new ContactError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1439
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1440
    if (this.id === null) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1441
        fail(ContactError.UNKNOWN_ERROR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1442
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1443
    else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1444
        exec(successCB, fail, "Contacts", "remove", [this.id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1445
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1446
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1447
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1448
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1449
* Creates a deep copy of this Contact.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1450
* With the contact ID set to null.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1451
* @return copy of this Contact
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1452
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1453
Contact.prototype.clone = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1454
    var clonedContact = utils.clone(this);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1455
    var i;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1456
    clonedContact.id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1457
    clonedContact.rawId = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1458
    // Loop through and clear out any id's in phones, emails, etc.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1459
    if (clonedContact.phoneNumbers) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1460
        for (i = 0; i < clonedContact.phoneNumbers.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1461
            clonedContact.phoneNumbers[i].id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1462
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1463
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1464
    if (clonedContact.emails) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1465
        for (i = 0; i < clonedContact.emails.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1466
            clonedContact.emails[i].id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1467
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1468
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1469
    if (clonedContact.addresses) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1470
        for (i = 0; i < clonedContact.addresses.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1471
            clonedContact.addresses[i].id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1472
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1473
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1474
    if (clonedContact.ims) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1475
        for (i = 0; i < clonedContact.ims.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1476
            clonedContact.ims[i].id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1477
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1478
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1479
    if (clonedContact.organizations) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1480
        for (i = 0; i < clonedContact.organizations.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1481
            clonedContact.organizations[i].id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1482
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1483
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1484
    if (clonedContact.categories) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1485
        for (i = 0; i < clonedContact.categories.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1486
            clonedContact.categories[i].id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1487
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1488
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1489
    if (clonedContact.photos) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1490
        for (i = 0; i < clonedContact.photos.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1491
            clonedContact.photos[i].id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1492
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1493
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1494
    if (clonedContact.urls) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1495
        for (i = 0; i < clonedContact.urls.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1496
            clonedContact.urls[i].id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1497
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1498
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1499
    return clonedContact;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1500
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1501
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1502
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1503
* Persists contact to device storage.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1504
* @param successCB success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1505
* @param errorCB error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1506
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1507
Contact.prototype.save = function(successCB, errorCB) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1508
  var fail = function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1509
      errorCB(new ContactError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1510
  };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1511
    var success = function(result) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1512
      if (result) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1513
          if (typeof successCB === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1514
              var fullContact = require('cordova/plugin/contacts').create(result);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1515
              successCB(convertIn(fullContact));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1516
          }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1517
      }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1518
      else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1519
          // no Entry object returned
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1520
          fail(ContactError.UNKNOWN_ERROR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1521
      }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1522
  };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1523
    var dupContact = convertOut(utils.clone(this));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1524
    exec(success, fail, "Contacts", "save", [dupContact]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1525
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1526
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1527
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1528
module.exports = Contact;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1529
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1530
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1531
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1532
// file: lib/common/plugin/ContactAddress.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1533
define("cordova/plugin/ContactAddress", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1534
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1535
* Contact address.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1536
* @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1537
* @param {DOMString} id unique identifier, should only be set by native code
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1538
* @param formatted // NOTE: not a W3C standard
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1539
* @param streetAddress
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1540
* @param locality
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1541
* @param region
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1542
* @param postalCode
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1543
* @param country
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1544
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1545
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1546
var ContactAddress = function(pref, type, formatted, streetAddress, locality, region, postalCode, country) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1547
    this.id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1548
    this.pref = (typeof pref != 'undefined' ? pref : false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1549
    this.type = type || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1550
    this.formatted = formatted || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1551
    this.streetAddress = streetAddress || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1552
    this.locality = locality || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1553
    this.region = region || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1554
    this.postalCode = postalCode || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1555
    this.country = country || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1556
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1557
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1558
module.exports = ContactAddress;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1559
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1560
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1561
// file: lib/common/plugin/ContactError.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1562
define("cordova/plugin/ContactError", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1563
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1564
 *  ContactError.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1565
 *  An error code assigned by an implementation when an error has occured
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1566
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1567
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1568
var ContactError = function(err) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1569
    this.code = (typeof err != 'undefined' ? err : null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1570
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1571
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1572
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1573
 * Error codes
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1574
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1575
ContactError.UNKNOWN_ERROR = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1576
ContactError.INVALID_ARGUMENT_ERROR = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1577
ContactError.TIMEOUT_ERROR = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1578
ContactError.PENDING_OPERATION_ERROR = 3;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1579
ContactError.IO_ERROR = 4;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1580
ContactError.NOT_SUPPORTED_ERROR = 5;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1581
ContactError.PERMISSION_DENIED_ERROR = 20;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1582
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1583
module.exports = ContactError;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1584
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1585
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1586
// file: lib/common/plugin/ContactField.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1587
define("cordova/plugin/ContactField", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1588
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1589
* Generic contact field.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1590
* @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1591
* @param {DOMString} id unique identifier, should only be set by native code // NOTE: not a W3C standard
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1592
* @param type
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1593
* @param value
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1594
* @param pref
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1595
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1596
var ContactField = function(type, value, pref) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1597
    this.id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1598
    this.type = (type && type.toString()) || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1599
    this.value = (value && value.toString()) || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1600
    this.pref = (typeof pref != 'undefined' ? pref : false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1601
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1602
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1603
module.exports = ContactField;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1604
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1605
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1606
// file: lib/common/plugin/ContactFindOptions.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1607
define("cordova/plugin/ContactFindOptions", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1608
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1609
 * ContactFindOptions.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1610
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1611
 * @param filter used to match contacts against
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1612
 * @param multiple boolean used to determine if more than one contact should be returned
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1613
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1614
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1615
var ContactFindOptions = function(filter, multiple) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1616
    this.filter = filter || '';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1617
    this.multiple = (typeof multiple != 'undefined' ? multiple : false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1618
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1619
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1620
module.exports = ContactFindOptions;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1621
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1622
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1623
// file: lib/common/plugin/ContactName.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1624
define("cordova/plugin/ContactName", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1625
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1626
* Contact name.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1627
* @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1628
* @param formatted // NOTE: not part of W3C standard
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1629
* @param familyName
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1630
* @param givenName
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1631
* @param middle
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1632
* @param prefix
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1633
* @param suffix
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1634
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1635
var ContactName = function(formatted, familyName, givenName, middle, prefix, suffix) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1636
    this.formatted = formatted || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1637
    this.familyName = familyName || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1638
    this.givenName = givenName || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1639
    this.middleName = middle || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1640
    this.honorificPrefix = prefix || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1641
    this.honorificSuffix = suffix || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1642
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1643
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1644
module.exports = ContactName;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1645
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1646
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1647
// file: lib/common/plugin/ContactOrganization.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1648
define("cordova/plugin/ContactOrganization", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1649
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1650
* Contact organization.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1651
* @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1652
* @param {DOMString} id unique identifier, should only be set by native code // NOTE: not a W3C standard
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1653
* @param name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1654
* @param dept
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1655
* @param title
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1656
* @param startDate
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1657
* @param endDate
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1658
* @param location
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1659
* @param desc
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1660
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1661
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1662
var ContactOrganization = function(pref, type, name, dept, title) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1663
    this.id = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1664
    this.pref = (typeof pref != 'undefined' ? pref : false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1665
    this.type = type || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1666
    this.name = name || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1667
    this.department = dept || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1668
    this.title = title || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1669
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1670
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1671
module.exports = ContactOrganization;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1672
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1673
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1674
// file: lib/common/plugin/Coordinates.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1675
define("cordova/plugin/Coordinates", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1676
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1677
 * This class contains position information.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1678
 * @param {Object} lat
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1679
 * @param {Object} lng
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1680
 * @param {Object} alt
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1681
 * @param {Object} acc
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1682
 * @param {Object} head
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1683
 * @param {Object} vel
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1684
 * @param {Object} altacc
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1685
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1686
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1687
var Coordinates = function(lat, lng, alt, acc, head, vel, altacc) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1688
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1689
     * The latitude of the position.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1690
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1691
    this.latitude = lat;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1692
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1693
     * The longitude of the position,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1694
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1695
    this.longitude = lng;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1696
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1697
     * The accuracy of the position.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1698
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1699
    this.accuracy = acc;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1700
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1701
     * The altitude of the position.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1702
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1703
    this.altitude = (alt !== undefined ? alt : null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1704
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1705
     * The direction the device is moving at the position.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1706
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1707
    this.heading = (head !== undefined ? head : null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1708
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1709
     * The velocity with which the device is moving at the position.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1710
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1711
    this.speed = (vel !== undefined ? vel : null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1712
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1713
    if (this.speed === 0 || this.speed === null) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1714
        this.heading = NaN;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1715
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1716
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1717
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1718
     * The altitude accuracy of the position.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1719
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1720
    this.altitudeAccuracy = (altacc !== undefined) ? altacc : null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1721
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1722
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1723
module.exports = Coordinates;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1724
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1725
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1726
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1727
// file: lib/common/plugin/DirectoryEntry.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1728
define("cordova/plugin/DirectoryEntry", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1729
var utils = require('cordova/utils'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1730
    exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1731
    Entry = require('cordova/plugin/Entry'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1732
    FileError = require('cordova/plugin/FileError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1733
    DirectoryReader = require('cordova/plugin/DirectoryReader');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1734
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1735
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1736
 * An interface representing a directory on the file system.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1737
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1738
 * {boolean} isFile always false (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1739
 * {boolean} isDirectory always true (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1740
 * {DOMString} name of the directory, excluding the path leading to it (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1741
 * {DOMString} fullPath the absolute full path to the directory (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1742
 * TODO: implement this!!! {FileSystem} filesystem on which the directory resides (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1743
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1744
var DirectoryEntry = function(name, fullPath) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1745
     DirectoryEntry.__super__.constructor.apply(this, [false, true, name, fullPath]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1746
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1747
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1748
utils.extend(DirectoryEntry, Entry);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1749
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1750
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1751
 * Creates a new DirectoryReader to read entries from this directory
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1752
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1753
DirectoryEntry.prototype.createReader = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1754
    return new DirectoryReader(this.fullPath);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1755
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1756
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1757
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1758
 * Creates or looks up a directory
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1759
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1760
 * @param {DOMString} path either a relative or absolute path from this directory in which to look up or create a directory
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1761
 * @param {Flags} options to create or excluively create the directory
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1762
 * @param {Function} successCallback is called with the new entry
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1763
 * @param {Function} errorCallback is called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1764
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1765
DirectoryEntry.prototype.getDirectory = function(path, options, successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1766
    var win = typeof successCallback !== 'function' ? null : function(result) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1767
        var entry = new DirectoryEntry(result.name, result.fullPath);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1768
        successCallback(entry);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1769
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1770
    var fail = typeof errorCallback !== 'function' ? null : function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1771
        errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1772
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1773
    exec(win, fail, "File", "getDirectory", [this.fullPath, path, options]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1774
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1775
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1776
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1777
 * Deletes a directory and all of it's contents
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1778
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1779
 * @param {Function} successCallback is called with no parameters
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1780
 * @param {Function} errorCallback is called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1781
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1782
DirectoryEntry.prototype.removeRecursively = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1783
    var fail = typeof errorCallback !== 'function' ? null : function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1784
        errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1785
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1786
    exec(successCallback, fail, "File", "removeRecursively", [this.fullPath]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1787
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1788
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1789
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1790
 * Creates or looks up a file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1791
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1792
 * @param {DOMString} path either a relative or absolute path from this directory in which to look up or create a file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1793
 * @param {Flags} options to create or excluively create the file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1794
 * @param {Function} successCallback is called with the new entry
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1795
 * @param {Function} errorCallback is called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1796
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1797
DirectoryEntry.prototype.getFile = function(path, options, successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1798
    var win = typeof successCallback !== 'function' ? null : function(result) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1799
        var FileEntry = require('cordova/plugin/FileEntry');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1800
        var entry = new FileEntry(result.name, result.fullPath);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1801
        successCallback(entry);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1802
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1803
    var fail = typeof errorCallback !== 'function' ? null : function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1804
        errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1805
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1806
    exec(win, fail, "File", "getFile", [this.fullPath, path, options]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1807
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1808
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1809
module.exports = DirectoryEntry;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1810
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1811
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1812
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1813
// file: lib/common/plugin/DirectoryReader.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1814
define("cordova/plugin/DirectoryReader", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1815
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1816
    FileError = require('cordova/plugin/FileError') ;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1817
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1818
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1819
 * An interface that lists the files and directories in a directory.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1820
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1821
function DirectoryReader(path) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1822
    this.path = path || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1823
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1824
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1825
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1826
 * Returns a list of entries from a directory.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1827
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1828
 * @param {Function} successCallback is called with a list of entries
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1829
 * @param {Function} errorCallback is called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1830
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1831
DirectoryReader.prototype.readEntries = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1832
    var win = typeof successCallback !== 'function' ? null : function(result) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1833
        var retVal = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1834
        for (var i=0; i<result.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1835
            var entry = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1836
            if (result[i].isDirectory) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1837
                entry = new (require('cordova/plugin/DirectoryEntry'))();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1838
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1839
            else if (result[i].isFile) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1840
                entry = new (require('cordova/plugin/FileEntry'))();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1841
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1842
            entry.isDirectory = result[i].isDirectory;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1843
            entry.isFile = result[i].isFile;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1844
            entry.name = result[i].name;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1845
            entry.fullPath = result[i].fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1846
            retVal.push(entry);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1847
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1848
        successCallback(retVal);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1849
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1850
    var fail = typeof errorCallback !== 'function' ? null : function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1851
        errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1852
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1853
    exec(win, fail, "File", "readEntries", [this.path]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1854
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1855
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1856
module.exports = DirectoryReader;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1857
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1858
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1859
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1860
// file: lib/common/plugin/Entry.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1861
define("cordova/plugin/Entry", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1862
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1863
    FileError = require('cordova/plugin/FileError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1864
    Metadata = require('cordova/plugin/Metadata');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1865
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1866
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1867
 * Represents a file or directory on the local file system.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1868
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1869
 * @param isFile
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1870
 *            {boolean} true if Entry is a file (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1871
 * @param isDirectory
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1872
 *            {boolean} true if Entry is a directory (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1873
 * @param name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1874
 *            {DOMString} name of the file or directory, excluding the path
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1875
 *            leading to it (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1876
 * @param fullPath
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1877
 *            {DOMString} the absolute full path to the file or directory
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1878
 *            (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1879
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1880
function Entry(isFile, isDirectory, name, fullPath, fileSystem) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1881
    this.isFile = (typeof isFile != 'undefined'?isFile:false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1882
    this.isDirectory = (typeof isDirectory != 'undefined'?isDirectory:false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1883
    this.name = name || '';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1884
    this.fullPath = fullPath || '';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1885
    this.filesystem = fileSystem || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1886
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1887
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1888
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1889
 * Look up the metadata of the entry.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1890
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1891
 * @param successCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1892
 *            {Function} is called with a Metadata object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1893
 * @param errorCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1894
 *            {Function} is called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1895
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1896
Entry.prototype.getMetadata = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1897
  var success = typeof successCallback !== 'function' ? null : function(lastModified) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1898
      var metadata = new Metadata(lastModified);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1899
      successCallback(metadata);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1900
  };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1901
  var fail = typeof errorCallback !== 'function' ? null : function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1902
      errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1903
  };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1904
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1905
  exec(success, fail, "File", "getMetadata", [this.fullPath]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1906
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1907
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1908
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1909
 * Set the metadata of the entry.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1910
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1911
 * @param successCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1912
 *            {Function} is called with a Metadata object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1913
 * @param errorCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1914
 *            {Function} is called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1915
 * @param metadataObject
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1916
 *            {Object} keys and values to set
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1917
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1918
Entry.prototype.setMetadata = function(successCallback, errorCallback, metadataObject) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1919
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1920
  exec(successCallback, errorCallback, "File", "setMetadata", [this.fullPath, metadataObject]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1921
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1922
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1923
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1924
 * Move a file or directory to a new location.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1925
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1926
 * @param parent
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1927
 *            {DirectoryEntry} the directory to which to move this entry
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1928
 * @param newName
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1929
 *            {DOMString} new name of the entry, defaults to the current name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1930
 * @param successCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1931
 *            {Function} called with the new DirectoryEntry object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1932
 * @param errorCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1933
 *            {Function} called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1934
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1935
Entry.prototype.moveTo = function(parent, newName, successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1936
    var fail = function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1937
        if (typeof errorCallback === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1938
            errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1939
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1940
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1941
    // user must specify parent Entry
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1942
    if (!parent) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1943
        fail(FileError.NOT_FOUND_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1944
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1945
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1946
    // source path
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1947
    var srcPath = this.fullPath,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1948
        // entry name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1949
        name = newName || this.name,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1950
        success = function(entry) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1951
            if (entry) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1952
                if (typeof successCallback === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1953
                    // create appropriate Entry object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1954
                    var result = (entry.isDirectory) ? new (require('cordova/plugin/DirectoryEntry'))(entry.name, entry.fullPath) : new (require('cordova/plugin/FileEntry'))(entry.name, entry.fullPath);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1955
                    try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1956
                        successCallback(result);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1957
                    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1958
                    catch (e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1959
                        console.log('Error invoking callback: ' + e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1960
                    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1961
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1962
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1963
            else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1964
                // no Entry object returned
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1965
                fail(FileError.NOT_FOUND_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1966
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1967
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1968
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1969
    // copy
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1970
    exec(success, fail, "File", "moveTo", [srcPath, parent.fullPath, name]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1971
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1972
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1973
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1974
 * Copy a directory to a different location.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1975
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1976
 * @param parent
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1977
 *            {DirectoryEntry} the directory to which to copy the entry
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1978
 * @param newName
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1979
 *            {DOMString} new name of the entry, defaults to the current name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1980
 * @param successCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1981
 *            {Function} called with the new Entry object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1982
 * @param errorCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1983
 *            {Function} called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1984
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1985
Entry.prototype.copyTo = function(parent, newName, successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1986
    var fail = function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1987
        if (typeof errorCallback === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1988
            errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1989
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1990
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1991
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1992
    // user must specify parent Entry
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1993
    if (!parent) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1994
        fail(FileError.NOT_FOUND_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1995
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1996
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1997
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1998
        // source path
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  1999
    var srcPath = this.fullPath,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2000
        // entry name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2001
        name = newName || this.name,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2002
        // success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2003
        success = function(entry) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2004
            if (entry) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2005
                if (typeof successCallback === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2006
                    // create appropriate Entry object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2007
                    var result = (entry.isDirectory) ? new (require('cordova/plugin/DirectoryEntry'))(entry.name, entry.fullPath) : new (require('cordova/plugin/FileEntry'))(entry.name, entry.fullPath);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2008
                    try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2009
                        successCallback(result);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2010
                    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2011
                    catch (e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2012
                        console.log('Error invoking callback: ' + e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2013
                    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2014
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2015
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2016
            else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2017
                // no Entry object returned
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2018
                fail(FileError.NOT_FOUND_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2019
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2020
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2021
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2022
    // copy
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2023
    exec(success, fail, "File", "copyTo", [srcPath, parent.fullPath, name]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2024
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2025
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2026
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2027
 * Return a URL that can be used to identify this entry.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2028
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2029
Entry.prototype.toURL = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2030
    // fullPath attribute contains the full URL
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2031
    return this.fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2032
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2033
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2034
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2035
 * Returns a URI that can be used to identify this entry.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2036
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2037
 * @param {DOMString} mimeType for a FileEntry, the mime type to be used to interpret the file, when loaded through this URI.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2038
 * @return uri
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2039
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2040
Entry.prototype.toURI = function(mimeType) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2041
    console.log("DEPRECATED: Update your code to use 'toURL'");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2042
    // fullPath attribute contains the full URI
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2043
    return this.toURL();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2044
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2045
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2046
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2047
 * Remove a file or directory. It is an error to attempt to delete a
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2048
 * directory that is not empty. It is an error to attempt to delete a
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2049
 * root directory of a file system.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2050
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2051
 * @param successCallback {Function} called with no parameters
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2052
 * @param errorCallback {Function} called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2053
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2054
Entry.prototype.remove = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2055
    var fail = typeof errorCallback !== 'function' ? null : function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2056
        errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2057
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2058
    exec(successCallback, fail, "File", "remove", [this.fullPath]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2059
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2060
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2061
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2062
 * Look up the parent DirectoryEntry of this entry.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2063
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2064
 * @param successCallback {Function} called with the parent DirectoryEntry object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2065
 * @param errorCallback {Function} called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2066
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2067
Entry.prototype.getParent = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2068
    var win = typeof successCallback !== 'function' ? null : function(result) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2069
        var DirectoryEntry = require('cordova/plugin/DirectoryEntry');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2070
        var entry = new DirectoryEntry(result.name, result.fullPath);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2071
        successCallback(entry);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2072
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2073
    var fail = typeof errorCallback !== 'function' ? null : function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2074
        errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2075
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2076
    exec(win, fail, "File", "getParent", [this.fullPath]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2077
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2078
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2079
module.exports = Entry;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2080
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2081
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2082
// file: lib/common/plugin/File.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2083
define("cordova/plugin/File", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2084
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2085
 * Constructor.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2086
 * name {DOMString} name of the file, without path information
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2087
 * fullPath {DOMString} the full path of the file, including the name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2088
 * type {DOMString} mime type
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2089
 * lastModifiedDate {Date} last modified date
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2090
 * size {Number} size of the file in bytes
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2091
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2092
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2093
var File = function(name, fullPath, type, lastModifiedDate, size){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2094
    this.name = name || '';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2095
    this.fullPath = fullPath || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2096
    this.type = type || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2097
    this.lastModifiedDate = lastModifiedDate || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2098
    this.size = size || 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2099
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2100
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2101
module.exports = File;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2102
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2103
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2104
// file: lib/common/plugin/FileEntry.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2105
define("cordova/plugin/FileEntry", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2106
var utils = require('cordova/utils'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2107
    exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2108
    Entry = require('cordova/plugin/Entry'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2109
    FileWriter = require('cordova/plugin/FileWriter'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2110
    File = require('cordova/plugin/File'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2111
    FileError = require('cordova/plugin/FileError');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2112
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2113
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2114
 * An interface representing a file on the file system.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2115
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2116
 * {boolean} isFile always true (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2117
 * {boolean} isDirectory always false (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2118
 * {DOMString} name of the file, excluding the path leading to it (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2119
 * {DOMString} fullPath the absolute full path to the file (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2120
 * {FileSystem} filesystem on which the file resides (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2121
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2122
var FileEntry = function(name, fullPath) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2123
     FileEntry.__super__.constructor.apply(this, [true, false, name, fullPath]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2124
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2125
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2126
utils.extend(FileEntry, Entry);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2127
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2128
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2129
 * Creates a new FileWriter associated with the file that this FileEntry represents.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2130
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2131
 * @param {Function} successCallback is called with the new FileWriter
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2132
 * @param {Function} errorCallback is called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2133
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2134
FileEntry.prototype.createWriter = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2135
    this.file(function(filePointer) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2136
        var writer = new FileWriter(filePointer);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2137
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2138
        if (writer.fileName === null || writer.fileName === "") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2139
            if (typeof errorCallback === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2140
                errorCallback(new FileError(FileError.INVALID_STATE_ERR));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2141
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2142
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2143
            if (typeof successCallback === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2144
                successCallback(writer);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2145
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2146
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2147
    }, errorCallback);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2148
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2149
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2150
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2151
 * Returns a File that represents the current state of the file that this FileEntry represents.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2152
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2153
 * @param {Function} successCallback is called with the new File object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2154
 * @param {Function} errorCallback is called with a FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2155
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2156
FileEntry.prototype.file = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2157
    var win = typeof successCallback !== 'function' ? null : function(f) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2158
        var file = new File(f.name, f.fullPath, f.type, f.lastModifiedDate, f.size);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2159
        successCallback(file);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2160
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2161
    var fail = typeof errorCallback !== 'function' ? null : function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2162
        errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2163
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2164
    exec(win, fail, "File", "getFileMetadata", [this.fullPath]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2165
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2166
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2167
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2168
module.exports = FileEntry;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2169
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2170
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2171
// file: lib/common/plugin/FileError.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2172
define("cordova/plugin/FileError", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2173
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2174
 * FileError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2175
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2176
function FileError(error) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2177
  this.code = error || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2178
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2179
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2180
// File error codes
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2181
// Found in DOMException
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2182
FileError.NOT_FOUND_ERR = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2183
FileError.SECURITY_ERR = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2184
FileError.ABORT_ERR = 3;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2185
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2186
// Added by File API specification
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2187
FileError.NOT_READABLE_ERR = 4;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2188
FileError.ENCODING_ERR = 5;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2189
FileError.NO_MODIFICATION_ALLOWED_ERR = 6;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2190
FileError.INVALID_STATE_ERR = 7;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2191
FileError.SYNTAX_ERR = 8;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2192
FileError.INVALID_MODIFICATION_ERR = 9;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2193
FileError.QUOTA_EXCEEDED_ERR = 10;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2194
FileError.TYPE_MISMATCH_ERR = 11;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2195
FileError.PATH_EXISTS_ERR = 12;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2196
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2197
module.exports = FileError;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2198
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2199
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2200
// file: lib/common/plugin/FileReader.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2201
define("cordova/plugin/FileReader", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2202
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2203
    FileError = require('cordova/plugin/FileError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2204
    ProgressEvent = require('cordova/plugin/ProgressEvent');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2205
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2206
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2207
 * This class reads the mobile device file system.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2208
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2209
 * For Android:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2210
 *      The root directory is the root of the file system.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2211
 *      To read from the SD card, the file name is "sdcard/my_file.txt"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2212
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2213
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2214
var FileReader = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2215
    this.fileName = "";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2216
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2217
    this.readyState = 0; // FileReader.EMPTY
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2218
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2219
    // File data
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2220
    this.result = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2221
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2222
    // Error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2223
    this.error = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2224
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2225
    // Event handlers
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2226
    this.onloadstart = null;    // When the read starts.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2227
    this.onprogress = null;     // While reading (and decoding) file or fileBlob data, and reporting partial file data (progess.loaded/progress.total)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2228
    this.onload = null;         // When the read has successfully completed.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2229
    this.onerror = null;        // When the read has failed (see errors).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2230
    this.onloadend = null;      // When the request has completed (either in success or failure).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2231
    this.onabort = null;        // When the read has been aborted. For instance, by invoking the abort() method.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2232
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2233
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2234
// States
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2235
FileReader.EMPTY = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2236
FileReader.LOADING = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2237
FileReader.DONE = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2238
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2239
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2240
 * Abort reading file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2241
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2242
FileReader.prototype.abort = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2243
    this.result = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2244
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2245
    if (this.readyState == FileReader.DONE || this.readyState == FileReader.EMPTY) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2246
      return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2247
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2248
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2249
    this.readyState = FileReader.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2250
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2251
    // If abort callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2252
    if (typeof this.onabort === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2253
        this.onabort(new ProgressEvent('abort', {target:this}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2254
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2255
    // If load end callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2256
    if (typeof this.onloadend === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2257
        this.onloadend(new ProgressEvent('loadend', {target:this}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2258
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2259
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2260
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2261
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2262
 * Read text file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2263
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2264
 * @param file          {File} File object containing file properties
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2265
 * @param encoding      [Optional] (see http://www.iana.org/assignments/character-sets)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2266
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2267
FileReader.prototype.readAsText = function(file, encoding) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2268
    // Figure out pathing
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2269
    this.fileName = '';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2270
    if (typeof file.fullPath === 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2271
        this.fileName = file;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2272
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2273
        this.fileName = file.fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2274
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2275
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2276
    // Already loading something
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2277
    if (this.readyState == FileReader.LOADING) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2278
        throw new FileError(FileError.INVALID_STATE_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2279
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2280
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2281
    // LOADING state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2282
    this.readyState = FileReader.LOADING;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2283
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2284
    // If loadstart callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2285
    if (typeof this.onloadstart === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2286
        this.onloadstart(new ProgressEvent("loadstart", {target:this}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2287
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2288
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2289
    // Default encoding is UTF-8
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2290
    var enc = encoding ? encoding : "UTF-8";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2291
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2292
    var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2293
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2294
    // Read file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2295
    exec(
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2296
        // Success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2297
        function(r) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2298
            // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2299
            if (me.readyState === FileReader.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2300
                return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2301
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2302
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2303
            // Save result
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2304
            me.result = r;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2305
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2306
            // If onload callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2307
            if (typeof me.onload === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2308
                me.onload(new ProgressEvent("load", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2309
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2310
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2311
            // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2312
            me.readyState = FileReader.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2313
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2314
            // If onloadend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2315
            if (typeof me.onloadend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2316
                me.onloadend(new ProgressEvent("loadend", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2317
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2318
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2319
        // Error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2320
        function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2321
            // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2322
            if (me.readyState === FileReader.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2323
                return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2324
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2325
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2326
            // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2327
            me.readyState = FileReader.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2328
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2329
            // null result
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2330
            me.result = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2331
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2332
            // Save error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2333
            me.error = new FileError(e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2334
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2335
            // If onerror callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2336
            if (typeof me.onerror === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2337
                me.onerror(new ProgressEvent("error", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2338
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2339
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2340
            // If onloadend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2341
            if (typeof me.onloadend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2342
                me.onloadend(new ProgressEvent("loadend", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2343
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2344
        }, "File", "readAsText", [this.fileName, enc]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2345
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2346
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2347
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2348
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2349
 * Read file and return data as a base64 encoded data url.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2350
 * A data url is of the form:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2351
 *      data:[<mediatype>][;base64],<data>
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2352
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2353
 * @param file          {File} File object containing file properties
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2354
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2355
FileReader.prototype.readAsDataURL = function(file) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2356
    this.fileName = "";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2357
    if (typeof file.fullPath === "undefined") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2358
        this.fileName = file;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2359
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2360
        this.fileName = file.fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2361
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2362
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2363
    // Already loading something
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2364
    if (this.readyState == FileReader.LOADING) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2365
        throw new FileError(FileError.INVALID_STATE_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2366
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2367
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2368
    // LOADING state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2369
    this.readyState = FileReader.LOADING;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2370
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2371
    // If loadstart callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2372
    if (typeof this.onloadstart === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2373
        this.onloadstart(new ProgressEvent("loadstart", {target:this}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2374
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2375
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2376
    var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2377
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2378
    // Read file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2379
    exec(
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2380
        // Success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2381
        function(r) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2382
            // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2383
            if (me.readyState === FileReader.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2384
                return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2385
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2386
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2387
            // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2388
            me.readyState = FileReader.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2389
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2390
            // Save result
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2391
            me.result = r;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2392
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2393
            // If onload callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2394
            if (typeof me.onload === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2395
                me.onload(new ProgressEvent("load", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2396
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2397
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2398
            // If onloadend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2399
            if (typeof me.onloadend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2400
                me.onloadend(new ProgressEvent("loadend", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2401
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2402
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2403
        // Error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2404
        function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2405
            // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2406
            if (me.readyState === FileReader.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2407
                return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2408
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2409
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2410
            // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2411
            me.readyState = FileReader.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2412
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2413
            me.result = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2414
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2415
            // Save error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2416
            me.error = new FileError(e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2417
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2418
            // If onerror callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2419
            if (typeof me.onerror === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2420
                me.onerror(new ProgressEvent("error", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2421
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2422
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2423
            // If onloadend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2424
            if (typeof me.onloadend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2425
                me.onloadend(new ProgressEvent("loadend", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2426
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2427
        }, "File", "readAsDataURL", [this.fileName]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2428
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2429
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2430
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2431
 * Read file and return data as a binary data.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2432
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2433
 * @param file          {File} File object containing file properties
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2434
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2435
FileReader.prototype.readAsBinaryString = function(file) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2436
    // TODO - Can't return binary data to browser.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2437
    console.log('method "readAsBinaryString" is not supported at this time.');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2438
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2439
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2440
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2441
 * Read file and return data as a binary data.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2442
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2443
 * @param file          {File} File object containing file properties
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2444
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2445
FileReader.prototype.readAsArrayBuffer = function(file) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2446
    // TODO - Can't return binary data to browser.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2447
    console.log('This method is not supported at this time.');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2448
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2449
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2450
module.exports = FileReader;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2451
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2452
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2453
// file: lib/common/plugin/FileSystem.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2454
define("cordova/plugin/FileSystem", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2455
var DirectoryEntry = require('cordova/plugin/DirectoryEntry');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2456
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2457
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2458
 * An interface representing a file system
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2459
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2460
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2461
 * {DOMString} name the unique name of the file system (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2462
 * {DirectoryEntry} root directory of the file system (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2463
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2464
var FileSystem = function(name, root) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2465
    this.name = name || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2466
    if (root) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2467
        this.root = new DirectoryEntry(root.name, root.fullPath);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2468
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2469
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2470
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2471
module.exports = FileSystem;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2472
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2473
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2474
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2475
// file: lib/common/plugin/FileTransfer.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2476
define("cordova/plugin/FileTransfer", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2477
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2478
    FileTransferError = require('cordova/plugin/FileTransferError');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2479
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2480
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2481
 * FileTransfer uploads a file to a remote server.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2482
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2483
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2484
var FileTransfer = function() {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2485
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2486
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2487
* Given an absolute file path, uploads a file on the device to a remote server
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2488
* using a multipart HTTP request.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2489
* @param filePath {String}           Full path of the file on the device
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2490
* @param server {String}             URL of the server to receive the file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2491
* @param successCallback (Function}  Callback to be invoked when upload has completed
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2492
* @param errorCallback {Function}    Callback to be invoked upon error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2493
* @param options {FileUploadOptions} Optional parameters such as file name and mimetype
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2494
* @param trustAllHosts {Boolean} Optional trust all hosts (e.g. for self-signed certs), defaults to false
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2495
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2496
FileTransfer.prototype.upload = function(filePath, server, successCallback, errorCallback, options, trustAllHosts) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2497
    // sanity parameter checking
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2498
    if (!filePath || !server) throw new Error("FileTransfer.upload requires filePath and server URL parameters at the minimum.");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2499
    // check for options
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2500
    var fileKey = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2501
    var fileName = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2502
    var mimeType = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2503
    var params = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2504
    var chunkedMode = true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2505
    if (options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2506
        fileKey = options.fileKey;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2507
        fileName = options.fileName;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2508
        mimeType = options.mimeType;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2509
        if (options.chunkedMode !== null || typeof options.chunkedMode != "undefined") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2510
            chunkedMode = options.chunkedMode;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2511
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2512
        if (options.params) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2513
            params = options.params;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2514
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2515
        else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2516
            params = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2517
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2518
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2519
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2520
    var fail = function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2521
        var error = new FileTransferError(e.code, e.source, e.target, e.http_status);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2522
        errorCallback(error);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2523
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2524
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2525
    exec(successCallback, fail, 'FileTransfer', 'upload', [filePath, server, fileKey, fileName, mimeType, params, trustAllHosts, chunkedMode]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2526
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2527
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2528
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2529
 * Downloads a file form a given URL and saves it to the specified directory.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2530
 * @param source {String}          URL of the server to receive the file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2531
 * @param target {String}         Full path of the file on the device
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2532
 * @param successCallback (Function}  Callback to be invoked when upload has completed
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2533
 * @param errorCallback {Function}    Callback to be invoked upon error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2534
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2535
FileTransfer.prototype.download = function(source, target, successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2536
    // sanity parameter checking
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2537
    if (!source || !target) throw new Error("FileTransfer.download requires source URI and target URI parameters at the minimum.");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2538
    var win = function(result) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2539
        var entry = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2540
        if (result.isDirectory) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2541
            entry = new (require('cordova/plugin/DirectoryEntry'))();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2542
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2543
        else if (result.isFile) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2544
            entry = new (require('cordova/plugin/FileEntry'))();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2545
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2546
        entry.isDirectory = result.isDirectory;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2547
        entry.isFile = result.isFile;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2548
        entry.name = result.name;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2549
        entry.fullPath = result.fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2550
        successCallback(entry);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2551
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2552
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2553
    var fail = function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2554
        var error = new FileTransferError(e.code, e.source, e.target, e.http_status);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2555
        errorCallback(error);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2556
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2557
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2558
    exec(win, errorCallback, 'FileTransfer', 'download', [source, target]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2559
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2560
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2561
module.exports = FileTransfer;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2562
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2563
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2564
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2565
// file: lib/common/plugin/FileTransferError.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2566
define("cordova/plugin/FileTransferError", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2567
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2568
 * FileTransferError
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2569
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2570
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2571
var FileTransferError = function(code, source, target, status) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2572
    this.code = code || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2573
    this.source = source || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2574
    this.target = target || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2575
    this.http_status = status || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2576
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2577
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2578
FileTransferError.FILE_NOT_FOUND_ERR = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2579
FileTransferError.INVALID_URL_ERR = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2580
FileTransferError.CONNECTION_ERR = 3;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2581
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2582
module.exports = FileTransferError;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2583
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2584
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2585
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2586
// file: lib/common/plugin/FileUploadOptions.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2587
define("cordova/plugin/FileUploadOptions", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2588
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2589
 * Options to customize the HTTP request used to upload files.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2590
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2591
 * @param fileKey {String}   Name of file request parameter.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2592
 * @param fileName {String}  Filename to be used by the server. Defaults to image.jpg.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2593
 * @param mimeType {String}  Mimetype of the uploaded file. Defaults to image/jpeg.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2594
 * @param params {Object}    Object with key: value params to send to the server.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2595
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2596
var FileUploadOptions = function(fileKey, fileName, mimeType, params) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2597
    this.fileKey = fileKey || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2598
    this.fileName = fileName || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2599
    this.mimeType = mimeType || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2600
    this.params = params || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2601
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2602
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2603
module.exports = FileUploadOptions;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2604
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2605
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2606
// file: lib/common/plugin/FileUploadResult.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2607
define("cordova/plugin/FileUploadResult", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2608
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2609
 * FileUploadResult
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2610
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2611
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2612
var FileUploadResult = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2613
    this.bytesSent = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2614
    this.responseCode = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2615
    this.response = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2616
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2617
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2618
module.exports = FileUploadResult;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2619
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2620
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2621
// file: lib/common/plugin/FileWriter.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2622
define("cordova/plugin/FileWriter", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2623
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2624
    FileError = require('cordova/plugin/FileError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2625
    ProgressEvent = require('cordova/plugin/ProgressEvent');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2626
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2627
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2628
 * This class writes to the mobile device file system.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2629
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2630
 * For Android:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2631
 *      The root directory is the root of the file system.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2632
 *      To write to the SD card, the file name is "sdcard/my_file.txt"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2633
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2634
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2635
 * @param file {File} File object containing file properties
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2636
 * @param append if true write to the end of the file, otherwise overwrite the file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2637
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2638
var FileWriter = function(file) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2639
    this.fileName = "";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2640
    this.length = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2641
    if (file) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2642
        this.fileName = file.fullPath || file;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2643
        this.length = file.size || 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2644
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2645
    // default is to write at the beginning of the file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2646
    this.position = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2647
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2648
    this.readyState = 0; // EMPTY
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2649
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2650
    this.result = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2651
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2652
    // Error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2653
    this.error = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2654
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2655
    // Event handlers
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2656
    this.onwritestart = null;   // When writing starts
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2657
    this.onprogress = null;     // While writing the file, and reporting partial file data
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2658
    this.onwrite = null;        // When the write has successfully completed.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2659
    this.onwriteend = null;     // When the request has completed (either in success or failure).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2660
    this.onabort = null;        // When the write has been aborted. For instance, by invoking the abort() method.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2661
    this.onerror = null;        // When the write has failed (see errors).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2662
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2663
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2664
// States
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2665
FileWriter.INIT = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2666
FileWriter.WRITING = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2667
FileWriter.DONE = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2668
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2669
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2670
 * Abort writing file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2671
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2672
FileWriter.prototype.abort = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2673
    // check for invalid state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2674
    if (this.readyState === FileWriter.DONE || this.readyState === FileWriter.INIT) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2675
        throw new FileError(FileError.INVALID_STATE_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2676
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2677
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2678
    // set error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2679
    this.error = new FileError(FileError.ABORT_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2680
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2681
    this.readyState = FileWriter.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2682
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2683
    // If abort callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2684
    if (typeof this.onabort === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2685
        this.onabort(new ProgressEvent("abort", {"target":this}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2686
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2687
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2688
    // If write end callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2689
    if (typeof this.onwriteend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2690
        this.onwriteend(new ProgressEvent("writeend", {"target":this}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2691
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2692
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2693
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2694
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2695
 * Writes data to the file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2696
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2697
 * @param text to be written
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2698
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2699
FileWriter.prototype.write = function(text) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2700
    // Throw an exception if we are already writing a file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2701
    if (this.readyState === FileWriter.WRITING) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2702
        throw new FileError(FileError.INVALID_STATE_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2703
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2704
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2705
    // WRITING state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2706
    this.readyState = FileWriter.WRITING;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2707
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2708
    var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2709
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2710
    // If onwritestart callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2711
    if (typeof me.onwritestart === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2712
        me.onwritestart(new ProgressEvent("writestart", {"target":me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2713
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2714
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2715
    // Write file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2716
    exec(
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2717
        // Success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2718
        function(r) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2719
            // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2720
            if (me.readyState === FileWriter.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2721
                return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2722
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2723
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2724
            // position always increases by bytes written because file would be extended
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2725
            me.position += r;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2726
            // The length of the file is now where we are done writing.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2727
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2728
            me.length = me.position;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2729
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2730
            // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2731
            me.readyState = FileWriter.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2732
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2733
            // If onwrite callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2734
            if (typeof me.onwrite === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2735
                me.onwrite(new ProgressEvent("write", {"target":me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2736
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2737
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2738
            // If onwriteend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2739
            if (typeof me.onwriteend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2740
                me.onwriteend(new ProgressEvent("writeend", {"target":me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2741
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2742
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2743
        // Error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2744
        function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2745
            // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2746
            if (me.readyState === FileWriter.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2747
                return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2748
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2749
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2750
            // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2751
            me.readyState = FileWriter.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2752
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2753
            // Save error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2754
            me.error = new FileError(e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2755
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2756
            // If onerror callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2757
            if (typeof me.onerror === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2758
                me.onerror(new ProgressEvent("error", {"target":me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2759
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2760
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2761
            // If onwriteend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2762
            if (typeof me.onwriteend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2763
                me.onwriteend(new ProgressEvent("writeend", {"target":me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2764
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2765
        }, "File", "write", [this.fileName, text, this.position]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2766
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2767
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2768
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2769
 * Moves the file pointer to the location specified.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2770
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2771
 * If the offset is a negative number the position of the file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2772
 * pointer is rewound.  If the offset is greater than the file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2773
 * size the position is set to the end of the file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2774
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2775
 * @param offset is the location to move the file pointer to.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2776
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2777
FileWriter.prototype.seek = function(offset) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2778
    // Throw an exception if we are already writing a file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2779
    if (this.readyState === FileWriter.WRITING) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2780
        throw new FileError(FileError.INVALID_STATE_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2781
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2782
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2783
    if (!offset && offset !== 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2784
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2785
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2786
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2787
    // See back from end of file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2788
    if (offset < 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2789
        this.position = Math.max(offset + this.length, 0);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2790
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2791
    // Offset is bigger then file size so set position
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2792
    // to the end of the file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2793
    else if (offset > this.length) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2794
        this.position = this.length;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2795
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2796
    // Offset is between 0 and file size so set the position
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2797
    // to start writing.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2798
    else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2799
        this.position = offset;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2800
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2801
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2802
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2803
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2804
 * Truncates the file to the size specified.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2805
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2806
 * @param size to chop the file at.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2807
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2808
FileWriter.prototype.truncate = function(size) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2809
    // Throw an exception if we are already writing a file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2810
    if (this.readyState === FileWriter.WRITING) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2811
        throw new FileError(FileError.INVALID_STATE_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2812
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2813
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2814
    // WRITING state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2815
    this.readyState = FileWriter.WRITING;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2816
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2817
    var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2818
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2819
    // If onwritestart callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2820
    if (typeof me.onwritestart === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2821
        me.onwritestart(new ProgressEvent("writestart", {"target":this}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2822
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2823
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2824
    // Write file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2825
    exec(
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2826
        // Success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2827
        function(r) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2828
            // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2829
            if (me.readyState === FileWriter.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2830
                return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2831
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2832
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2833
            // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2834
            me.readyState = FileWriter.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2835
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2836
            // Update the length of the file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2837
            me.length = r;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2838
            me.position = Math.min(me.position, r);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2839
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2840
            // If onwrite callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2841
            if (typeof me.onwrite === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2842
                me.onwrite(new ProgressEvent("write", {"target":me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2843
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2844
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2845
            // If onwriteend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2846
            if (typeof me.onwriteend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2847
                me.onwriteend(new ProgressEvent("writeend", {"target":me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2848
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2849
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2850
        // Error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2851
        function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2852
            // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2853
            if (me.readyState === FileWriter.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2854
                return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2855
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2856
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2857
            // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2858
            me.readyState = FileWriter.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2859
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2860
            // Save error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2861
            me.error = new FileError(e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2862
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2863
            // If onerror callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2864
            if (typeof me.onerror === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2865
                me.onerror(new ProgressEvent("error", {"target":me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2866
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2867
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2868
            // If onwriteend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2869
            if (typeof me.onwriteend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2870
                me.onwriteend(new ProgressEvent("writeend", {"target":me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2871
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2872
        }, "File", "truncate", [this.fileName, size]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2873
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2874
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2875
module.exports = FileWriter;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2876
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2877
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2878
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2879
// file: lib/common/plugin/Flags.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2880
define("cordova/plugin/Flags", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2881
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2882
 * Supplies arguments to methods that lookup or create files and directories.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2883
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2884
 * @param create
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2885
 *            {boolean} file or directory if it doesn't exist
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2886
 * @param exclusive
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2887
 *            {boolean} used with create; if true the command will fail if
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2888
 *            target path exists
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2889
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2890
function Flags(create, exclusive) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2891
    this.create = create || false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2892
    this.exclusive = exclusive || false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2893
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2894
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2895
module.exports = Flags;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2896
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2897
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2898
// file: lib/common/plugin/LocalFileSystem.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2899
define("cordova/plugin/LocalFileSystem", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2900
var exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2901
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2902
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2903
 * Represents a local file system.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2904
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2905
var LocalFileSystem = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2906
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2907
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2908
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2909
LocalFileSystem.TEMPORARY = 0; //temporary, with no guarantee of persistence
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2910
LocalFileSystem.PERSISTENT = 1; //persistent
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2911
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2912
module.exports = LocalFileSystem;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2913
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2914
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2915
// file: lib/common/plugin/Media.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2916
define("cordova/plugin/Media", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2917
var utils = require('cordova/utils'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2918
    exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2919
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2920
var mediaObjects = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2921
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2922
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2923
 * This class provides access to the device media, interfaces to both sound and video
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2924
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2925
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2926
 * @param src                   The file name or url to play
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2927
 * @param successCallback       The callback to be called when the file is done playing or recording.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2928
 *                                  successCallback()
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2929
 * @param errorCallback         The callback to be called if there is an error.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2930
 *                                  errorCallback(int errorCode) - OPTIONAL
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2931
 * @param statusCallback        The callback to be called when media status has changed.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2932
 *                                  statusCallback(int statusCode) - OPTIONAL
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2933
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2934
var Media = function(src, successCallback, errorCallback, statusCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2935
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2936
    // successCallback optional
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2937
    if (successCallback && (typeof successCallback !== "function")) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2938
        console.log("Media Error: successCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2939
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2940
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2941
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2942
    // errorCallback optional
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2943
    if (errorCallback && (typeof errorCallback !== "function")) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2944
        console.log("Media Error: errorCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2945
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2946
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2947
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2948
    // statusCallback optional
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2949
    if (statusCallback && (typeof statusCallback !== "function")) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2950
        console.log("Media Error: statusCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2951
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2952
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2953
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2954
    this.id = utils.createUUID();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2955
    mediaObjects[this.id] = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2956
    this.src = src;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2957
    this.successCallback = successCallback;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2958
    this.errorCallback = errorCallback;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2959
    this.statusCallback = statusCallback;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2960
    this._duration = -1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2961
    this._position = -1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2962
    exec(null, this.errorCallback, "Media", "create", [this.id, this.src]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2963
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2964
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2965
// Media messages
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2966
Media.MEDIA_STATE = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2967
Media.MEDIA_DURATION = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2968
Media.MEDIA_POSITION = 3;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2969
Media.MEDIA_ERROR = 9;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2970
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2971
// Media states
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2972
Media.MEDIA_NONE = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2973
Media.MEDIA_STARTING = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2974
Media.MEDIA_RUNNING = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2975
Media.MEDIA_PAUSED = 3;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2976
Media.MEDIA_STOPPED = 4;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2977
Media.MEDIA_MSG = ["None", "Starting", "Running", "Paused", "Stopped"];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2978
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2979
// "static" function to return existing objs.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2980
Media.get = function(id) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2981
    return mediaObjects[id];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2982
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2983
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2984
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2985
 * Start or resume playing audio file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2986
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2987
Media.prototype.play = function(options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2988
    exec(null, null, "Media", "startPlayingAudio", [this.id, this.src, options]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2989
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2990
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2991
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2992
 * Stop playing audio file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2993
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2994
Media.prototype.stop = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2995
    var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2996
    exec(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2997
        me._position = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2998
        me.successCallback();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  2999
    }, this.errorCallback, "Media", "stopPlayingAudio", [this.id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3000
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3001
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3002
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3003
 * Seek or jump to a new time in the track..
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3004
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3005
Media.prototype.seekTo = function(milliseconds) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3006
    var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3007
    exec(function(p) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3008
        me._position = p;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3009
    }, this.errorCallback, "Media", "seekToAudio", [this.id, milliseconds]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3010
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3011
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3012
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3013
 * Pause playing audio file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3014
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3015
Media.prototype.pause = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3016
    exec(null, this.errorCallback, "Media", "pausePlayingAudio", [this.id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3017
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3018
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3019
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3020
 * Get duration of an audio file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3021
 * The duration is only set for audio that is playing, paused or stopped.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3022
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3023
 * @return      duration or -1 if not known.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3024
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3025
Media.prototype.getDuration = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3026
    return this._duration;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3027
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3028
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3029
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3030
 * Get position of audio.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3031
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3032
Media.prototype.getCurrentPosition = function(success, fail) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3033
    var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3034
    exec(function(p) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3035
        me._position = p;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3036
        success(p);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3037
    }, fail, "Media", "getCurrentPositionAudio", [this.id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3038
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3039
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3040
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3041
 * Start recording audio file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3042
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3043
Media.prototype.startRecord = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3044
    exec(this.successCallback, this.errorCallback, "Media", "startRecordingAudio", [this.id, this.src]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3045
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3046
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3047
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3048
 * Stop recording audio file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3049
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3050
Media.prototype.stopRecord = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3051
    exec(this.successCallback, this.errorCallback, "Media", "stopRecordingAudio", [this.id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3052
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3053
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3054
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3055
 * Release the resources.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3056
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3057
Media.prototype.release = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3058
    exec(null, this.errorCallback, "Media", "release", [this.id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3059
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3060
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3061
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3062
 * Adjust the volume.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3063
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3064
Media.prototype.setVolume = function(volume) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3065
    exec(null, null, "Media", "setVolume", [this.id, volume]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3066
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3067
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3068
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3069
 * Audio has status update.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3070
 * PRIVATE
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3071
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3072
 * @param id            The media object id (string)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3073
 * @param status        The status code (int)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3074
 * @param msg           The status message (string)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3075
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3076
Media.onStatus = function(id, msg, value) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3077
    var media = mediaObjects[id];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3078
    // If state update
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3079
    if (msg === Media.MEDIA_STATE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3080
        if (value === Media.MEDIA_STOPPED) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3081
            if (media.successCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3082
                media.successCallback();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3083
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3084
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3085
        if (media.statusCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3086
            media.statusCallback(value);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3087
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3088
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3089
    else if (msg === Media.MEDIA_DURATION) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3090
        media._duration = value;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3091
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3092
    else if (msg === Media.MEDIA_ERROR) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3093
        if (media.errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3094
            // value should be a MediaError object when msg == MEDIA_ERROR
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3095
            media.errorCallback(value);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3096
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3097
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3098
    else if (msg === Media.MEDIA_POSITION) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3099
        media._position = value;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3100
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3101
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3102
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3103
module.exports = Media;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3104
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3105
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3106
// file: lib/common/plugin/MediaError.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3107
define("cordova/plugin/MediaError", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3108
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3109
 * This class contains information about any Media errors.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3110
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3111
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3112
var MediaError = function(code, msg) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3113
    this.code = (code !== undefined ? code : null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3114
    this.message = msg || "";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3115
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3116
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3117
MediaError.MEDIA_ERR_NONE_ACTIVE    = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3118
MediaError.MEDIA_ERR_ABORTED        = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3119
MediaError.MEDIA_ERR_NETWORK        = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3120
MediaError.MEDIA_ERR_DECODE         = 3;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3121
MediaError.MEDIA_ERR_NONE_SUPPORTED = 4;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3122
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3123
module.exports = MediaError;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3124
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3125
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3126
// file: lib/common/plugin/MediaFile.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3127
define("cordova/plugin/MediaFile", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3128
var utils = require('cordova/utils'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3129
    exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3130
    File = require('cordova/plugin/File'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3131
    CaptureError = require('cordova/plugin/CaptureError');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3132
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3133
 * Represents a single file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3134
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3135
 * name {DOMString} name of the file, without path information
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3136
 * fullPath {DOMString} the full path of the file, including the name
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3137
 * type {DOMString} mime type
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3138
 * lastModifiedDate {Date} last modified date
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3139
 * size {Number} size of the file in bytes
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3140
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3141
var MediaFile = function(name, fullPath, type, lastModifiedDate, size){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3142
    MediaFile.__super__.constructor.apply(this, arguments);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3143
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3144
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3145
utils.extend(MediaFile, File);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3146
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3147
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3148
 * Request capture format data for a specific file and type
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3149
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3150
 * @param {Function} successCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3151
 * @param {Function} errorCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3152
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3153
MediaFile.prototype.getFormatData = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3154
    if (typeof this.fullPath === "undefined" || this.fullPath === null) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3155
        errorCallback(new CaptureError(CaptureError.CAPTURE_INVALID_ARGUMENT));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3156
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3157
        exec(successCallback, errorCallback, "Capture", "getFormatData", [this.fullPath, this.type]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3158
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3159
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3160
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3161
// TODO: can we axe this?
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3162
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3163
 * Casts a PluginResult message property  (array of objects) to an array of MediaFile objects
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3164
 * (used in Objective-C and Android)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3165
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3166
 * @param {PluginResult} pluginResult
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3167
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3168
MediaFile.cast = function(pluginResult) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3169
    var mediaFiles = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3170
    for (var i=0; i<pluginResult.message.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3171
        var mediaFile = new MediaFile();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3172
        mediaFile.name = pluginResult.message[i].name;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3173
        mediaFile.fullPath = pluginResult.message[i].fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3174
        mediaFile.type = pluginResult.message[i].type;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3175
        mediaFile.lastModifiedDate = pluginResult.message[i].lastModifiedDate;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3176
        mediaFile.size = pluginResult.message[i].size;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3177
        mediaFiles.push(mediaFile);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3178
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3179
    pluginResult.message = mediaFiles;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3180
    return pluginResult;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3181
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3182
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3183
module.exports = MediaFile;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3184
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3185
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3186
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3187
// file: lib/common/plugin/MediaFileData.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3188
define("cordova/plugin/MediaFileData", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3189
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3190
 * MediaFileData encapsulates format information of a media file.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3191
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3192
 * @param {DOMString} codecs
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3193
 * @param {long} bitrate
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3194
 * @param {long} height
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3195
 * @param {long} width
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3196
 * @param {float} duration
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3197
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3198
var MediaFileData = function(codecs, bitrate, height, width, duration){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3199
    this.codecs = codecs || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3200
    this.bitrate = bitrate || 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3201
    this.height = height || 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3202
    this.width = width || 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3203
    this.duration = duration || 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3204
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3205
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3206
module.exports = MediaFileData;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3207
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3208
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3209
// file: lib/common/plugin/Metadata.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3210
define("cordova/plugin/Metadata", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3211
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3212
 * Information about the state of the file or directory
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3213
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3214
 * {Date} modificationTime (readonly)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3215
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3216
var Metadata = function(time) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3217
    this.modificationTime = (typeof time != 'undefined'?new Date(time):null);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3218
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3219
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3220
module.exports = Metadata;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3221
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3222
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3223
// file: lib/common/plugin/Position.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3224
define("cordova/plugin/Position", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3225
var Coordinates = require('cordova/plugin/Coordinates');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3226
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3227
var Position = function(coords, timestamp) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3228
    if (coords) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3229
        this.coords = new Coordinates(coords.latitude, coords.longitude, coords.altitude, coords.accuracy, coords.heading, coords.velocity, coords.altitudeAccuracy);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3230
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3231
        this.coords = new Coordinates();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3232
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3233
    this.timestamp = (timestamp !== undefined) ? timestamp : new Date();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3234
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3235
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3236
module.exports = Position;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3237
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3238
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3239
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3240
// file: lib/common/plugin/PositionError.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3241
define("cordova/plugin/PositionError", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3242
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3243
 * Position error object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3244
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3245
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3246
 * @param code
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3247
 * @param message
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3248
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3249
var PositionError = function(code, message) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3250
    this.code = code || null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3251
    this.message = message || '';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3252
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3253
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3254
PositionError.PERMISSION_DENIED = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3255
PositionError.POSITION_UNAVAILABLE = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3256
PositionError.TIMEOUT = 3;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3257
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3258
module.exports = PositionError;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3259
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3260
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3261
// file: lib/common/plugin/ProgressEvent.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3262
define("cordova/plugin/ProgressEvent", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3263
// If ProgressEvent exists in global context, use it already, otherwise use our own polyfill
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3264
// Feature test: See if we can instantiate a native ProgressEvent;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3265
// if so, use that approach,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3266
// otherwise fill-in with our own implementation.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3267
//
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3268
// NOTE: right now we always fill in with our own. Down the road would be nice if we can use whatever is native in the webview.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3269
var ProgressEvent = (function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3270
    /*
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3271
    var createEvent = function(data) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3272
        var event = document.createEvent('Events');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3273
        event.initEvent('ProgressEvent', false, false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3274
        if (data) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3275
            for (var i in data) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3276
                if (data.hasOwnProperty(i)) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3277
                    event[i] = data[i];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3278
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3279
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3280
            if (data.target) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3281
                // TODO: cannot call <some_custom_object>.dispatchEvent
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3282
                // need to first figure out how to implement EventTarget
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3283
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3284
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3285
        return event;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3286
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3287
    try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3288
        var ev = createEvent({type:"abort",target:document});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3289
        return function ProgressEvent(type, data) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3290
            data.type = type;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3291
            return createEvent(data);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3292
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3293
    } catch(e){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3294
    */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3295
        return function ProgressEvent(type, dict) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3296
            this.type = type;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3297
            this.bubbles = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3298
            this.cancelBubble = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3299
            this.cancelable = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3300
            this.lengthComputable = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3301
            this.loaded = dict && dict.loaded ? dict.loaded : 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3302
            this.total = dict && dict.total ? dict.total : 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3303
            this.target = dict && dict.target ? dict.target : null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3304
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3305
    //}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3306
})();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3307
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3308
module.exports = ProgressEvent;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3309
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3310
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3311
// file: lib/common/plugin/accelerometer.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3312
define("cordova/plugin/accelerometer", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3313
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3314
 * This class provides access to device accelerometer data.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3315
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3316
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3317
var utils = require("cordova/utils"),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3318
    exec = require("cordova/exec"),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3319
    Acceleration = require('cordova/plugin/Acceleration');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3320
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3321
// Is the accel sensor running?
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3322
var running = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3323
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3324
// Keeps reference to watchAcceleration calls.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3325
var timers = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3326
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3327
// Array of listeners; used to keep track of when we should call start and stop.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3328
var listeners = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3329
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3330
// Last returned acceleration object from native
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3331
var accel = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3332
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3333
// Tells native to start.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3334
function start() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3335
    exec(function(a) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3336
        var tempListeners = listeners.slice(0);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3337
        accel = new Acceleration(a.x, a.y, a.z, a.timestamp);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3338
        for (var i = 0, l = tempListeners.length; i < l; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3339
            tempListeners[i].win(accel);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3340
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3341
    }, function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3342
        var tempListeners = listeners.slice(0);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3343
        for (var i = 0, l = tempListeners.length; i < l; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3344
            tempListeners[i].fail(e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3345
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3346
    }, "Accelerometer", "start", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3347
    running = true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3348
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3349
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3350
// Tells native to stop.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3351
function stop() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3352
    exec(null, null, "Accelerometer", "stop", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3353
    running = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3354
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3355
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3356
// Adds a callback pair to the listeners array
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3357
function createCallbackPair(win, fail) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3358
    return {win:win, fail:fail};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3359
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3360
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3361
// Removes a win/fail listener pair from the listeners array
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3362
function removeListeners(l) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3363
    var idx = listeners.indexOf(l);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3364
    if (idx > -1) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3365
        listeners.splice(idx, 1);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3366
        if (listeners.length === 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3367
            stop();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3368
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3369
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3370
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3371
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3372
var accelerometer = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3373
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3374
     * Asynchronously aquires the current acceleration.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3375
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3376
     * @param {Function} successCallback    The function to call when the acceleration data is available
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3377
     * @param {Function} errorCallback      The function to call when there is an error getting the acceleration data. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3378
     * @param {AccelerationOptions} options The options for getting the accelerometer data such as timeout. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3379
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3380
    getCurrentAcceleration: function(successCallback, errorCallback, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3381
        // successCallback required
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3382
        if (typeof successCallback !== "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3383
            throw "getCurrentAcceleration must be called with at least a success callback function as first parameter.";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3384
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3385
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3386
        var p;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3387
        var win = function(a) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3388
            removeListeners(p);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3389
            successCallback(a);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3390
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3391
        var fail = function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3392
            removeListeners(p);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3393
            errorCallback(e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3394
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3395
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3396
        p = createCallbackPair(win, fail);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3397
        listeners.push(p);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3398
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3399
        if (!running) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3400
            start();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3401
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3402
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3403
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3404
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3405
     * Asynchronously aquires the acceleration repeatedly at a given interval.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3406
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3407
     * @param {Function} successCallback    The function to call each time the acceleration data is available
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3408
     * @param {Function} errorCallback      The function to call when there is an error getting the acceleration data. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3409
     * @param {AccelerationOptions} options The options for getting the accelerometer data such as timeout. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3410
     * @return String                       The watch id that must be passed to #clearWatch to stop watching.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3411
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3412
    watchAcceleration: function(successCallback, errorCallback, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3413
        // Default interval (10 sec)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3414
        var frequency = (options && options.frequency && typeof options.frequency == 'number') ? options.frequency : 10000;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3415
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3416
        // successCallback required
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3417
        if (typeof successCallback !== "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3418
            throw "watchAcceleration must be called with at least a success callback function as first parameter.";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3419
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3420
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3421
        // Keep reference to watch id, and report accel readings as often as defined in frequency
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3422
        var id = utils.createUUID();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3423
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3424
        var p = createCallbackPair(function(){}, function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3425
            removeListeners(p);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3426
            errorCallback(e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3427
        });
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3428
        listeners.push(p);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3429
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3430
        timers[id] = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3431
            timer:window.setInterval(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3432
                if (accel) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3433
                    successCallback(accel);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3434
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3435
            }, frequency),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3436
            listeners:p
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3437
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3438
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3439
        if (running) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3440
            // If we're already running then immediately invoke the success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3441
            // but only if we have retreived a value, sample code does not check for null ...
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3442
            if(accel) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3443
                successCallback(accel);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3444
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3445
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3446
            start();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3447
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3448
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3449
        return id;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3450
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3451
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3452
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3453
     * Clears the specified accelerometer watch.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3454
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3455
     * @param {String} id       The id of the watch returned from #watchAcceleration.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3456
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3457
    clearWatch: function(id) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3458
        // Stop javascript timer & remove from timer list
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3459
        if (id && timers[id]) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3460
            window.clearInterval(timers[id].timer);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3461
            removeListeners(timers[id].listeners);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3462
            delete timers[id];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3463
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3464
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3465
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3466
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3467
module.exports = accelerometer;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3468
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3469
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3470
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3471
// file: lib/common/plugin/battery.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3472
define("cordova/plugin/battery", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3473
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3474
 * This class contains information about the current battery status.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3475
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3476
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3477
var cordova = require('cordova'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3478
    exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3479
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3480
function handlers() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3481
  return battery.channels.batterystatus.numHandlers +
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3482
         battery.channels.batterylow.numHandlers +
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3483
         battery.channels.batterycritical.numHandlers;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3484
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3485
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3486
var Battery = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3487
    this._level = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3488
    this._isPlugged = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3489
    // Create new event handlers on the window (returns a channel instance)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3490
    var subscriptionEvents = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3491
      onSubscribe:this.onSubscribe,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3492
      onUnsubscribe:this.onUnsubscribe
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3493
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3494
    this.channels = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3495
      batterystatus:cordova.addWindowEventHandler("batterystatus", subscriptionEvents),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3496
      batterylow:cordova.addWindowEventHandler("batterylow", subscriptionEvents),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3497
      batterycritical:cordova.addWindowEventHandler("batterycritical", subscriptionEvents)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3498
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3499
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3500
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3501
 * Event handlers for when callbacks get registered for the battery.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3502
 * Keep track of how many handlers we have so we can start and stop the native battery listener
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3503
 * appropriately (and hopefully save on battery life!).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3504
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3505
Battery.prototype.onSubscribe = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3506
  var me = battery;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3507
  // If we just registered the first handler, make sure native listener is started.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3508
  if (handlers() === 1) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3509
    exec(me._status, me._error, "Battery", "start", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3510
  }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3511
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3512
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3513
Battery.prototype.onUnsubscribe = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3514
  var me = battery;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3515
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3516
  // If we just unregistered the last handler, make sure native listener is stopped.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3517
  if (handlers() === 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3518
      exec(null, null, "Battery", "stop", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3519
  }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3520
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3521
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3522
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3523
 * Callback for battery status
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3524
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3525
 * @param {Object} info            keys: level, isPlugged
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3526
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3527
Battery.prototype._status = function(info) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3528
    if (info) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3529
        var me = battery;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3530
    var level = info.level;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3531
        if (me._level !== level || me._isPlugged !== info.isPlugged) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3532
            // Fire batterystatus event
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3533
            cordova.fireWindowEvent("batterystatus", info);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3534
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3535
            // Fire low battery event
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3536
            if (level === 20 || level === 5) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3537
                if (level === 20) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3538
                    cordova.fireWindowEvent("batterylow", info);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3539
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3540
                else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3541
                    cordova.fireWindowEvent("batterycritical", info);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3542
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3543
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3544
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3545
        me._level = level;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3546
        me._isPlugged = info.isPlugged;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3547
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3548
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3549
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3550
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3551
 * Error callback for battery start
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3552
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3553
Battery.prototype._error = function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3554
    console.log("Error initializing Battery: " + e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3555
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3556
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3557
var battery = new Battery();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3558
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3559
module.exports = battery;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3560
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3561
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3562
// file: lib/common/plugin/capture.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3563
define("cordova/plugin/capture", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3564
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3565
    MediaFile = require('cordova/plugin/MediaFile');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3566
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3567
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3568
 * Launches a capture of different types.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3569
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3570
 * @param (DOMString} type
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3571
 * @param {Function} successCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3572
 * @param {Function} errorCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3573
 * @param {CaptureVideoOptions} options
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3574
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3575
function _capture(type, successCallback, errorCallback, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3576
    var win = function(pluginResult) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3577
        var mediaFiles = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3578
        var i;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3579
        for (i = 0; i < pluginResult.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3580
            var mediaFile = new MediaFile();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3581
            mediaFile.name = pluginResult[i].name;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3582
            mediaFile.fullPath = pluginResult[i].fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3583
            mediaFile.type = pluginResult[i].type;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3584
            mediaFile.lastModifiedDate = pluginResult[i].lastModifiedDate;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3585
            mediaFile.size = pluginResult[i].size;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3586
            mediaFiles.push(mediaFile);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3587
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3588
        successCallback(mediaFiles);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3589
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3590
    exec(win, errorCallback, "Capture", type, [options]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3591
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3592
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3593
 * The Capture interface exposes an interface to the camera and microphone of the hosting device.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3594
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3595
function Capture() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3596
    this.supportedAudioModes = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3597
    this.supportedImageModes = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3598
    this.supportedVideoModes = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3599
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3600
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3601
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3602
 * Launch audio recorder application for recording audio clip(s).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3603
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3604
 * @param {Function} successCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3605
 * @param {Function} errorCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3606
 * @param {CaptureAudioOptions} options
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3607
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3608
Capture.prototype.captureAudio = function(successCallback, errorCallback, options){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3609
    _capture("captureAudio", successCallback, errorCallback, options);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3610
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3611
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3612
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3613
 * Launch camera application for taking image(s).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3614
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3615
 * @param {Function} successCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3616
 * @param {Function} errorCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3617
 * @param {CaptureImageOptions} options
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3618
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3619
Capture.prototype.captureImage = function(successCallback, errorCallback, options){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3620
    _capture("captureImage", successCallback, errorCallback, options);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3621
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3622
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3623
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3624
 * Launch device camera application for recording video(s).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3625
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3626
 * @param {Function} successCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3627
 * @param {Function} errorCB
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3628
 * @param {CaptureVideoOptions} options
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3629
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3630
Capture.prototype.captureVideo = function(successCallback, errorCallback, options){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3631
    _capture("captureVideo", successCallback, errorCallback, options);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3632
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3633
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3634
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3635
module.exports = new Capture();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3636
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3637
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3638
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3639
// file: lib/common/plugin/compass.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3640
define("cordova/plugin/compass", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3641
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3642
    utils = require('cordova/utils'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3643
    CompassHeading = require('cordova/plugin/CompassHeading'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3644
    CompassError = require('cordova/plugin/CompassError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3645
    timers = {},
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3646
    compass = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3647
        /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3648
         * Asynchronously acquires the current heading.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3649
         * @param {Function} successCallback The function to call when the heading
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3650
         * data is available
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3651
         * @param {Function} errorCallback The function to call when there is an error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3652
         * getting the heading data.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3653
         * @param {CompassOptions} options The options for getting the heading data (not used).
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3654
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3655
        getCurrentHeading:function(successCallback, errorCallback, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3656
            // successCallback required
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3657
            if (typeof successCallback !== "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3658
              console.log("Compass Error: successCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3659
              return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3660
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3661
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3662
            // errorCallback optional
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3663
            if (errorCallback && (typeof errorCallback !== "function")) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3664
              console.log("Compass Error: errorCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3665
              return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3666
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3667
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3668
            var win = function(result) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3669
                var ch = new CompassHeading(result.magneticHeading, result.trueHeading, result.headingAccuracy, result.timestamp);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3670
                successCallback(ch);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3671
            };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3672
            var fail = function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3673
                var ce = new CompassError(code);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3674
                errorCallback(ce);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3675
            };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3676
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3677
            // Get heading
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3678
            exec(win, fail, "Compass", "getHeading", [options]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3679
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3680
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3681
        /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3682
         * Asynchronously acquires the heading repeatedly at a given interval.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3683
         * @param {Function} successCallback The function to call each time the heading
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3684
         * data is available
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3685
         * @param {Function} errorCallback The function to call when there is an error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3686
         * getting the heading data.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3687
         * @param {HeadingOptions} options The options for getting the heading data
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3688
         * such as timeout and the frequency of the watch. For iOS, filter parameter
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3689
         * specifies to watch via a distance filter rather than time.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3690
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3691
        watchHeading:function(successCallback, errorCallback, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3692
            // Default interval (100 msec)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3693
            var frequency = (options !== undefined && options.frequency !== undefined) ? options.frequency : 100;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3694
            var filter = (options !== undefined && options.filter !== undefined) ? options.filter : 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3695
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3696
            // successCallback required
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3697
            if (typeof successCallback !== "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3698
              console.log("Compass Error: successCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3699
              return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3700
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3701
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3702
            // errorCallback optional
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3703
            if (errorCallback && (typeof errorCallback !== "function")) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3704
              console.log("Compass Error: errorCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3705
              return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3706
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3707
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3708
            var id = utils.createUUID();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3709
            if (filter > 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3710
                // is an iOS request for watch by filter, no timer needed
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3711
                timers[id] = "iOS";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3712
                compass.getCurrentHeading(successCallback, errorCallback, options);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3713
            } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3714
                // Start watch timer to get headings
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3715
                timers[id] = window.setInterval(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3716
                    compass.getCurrentHeading(successCallback, errorCallback);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3717
                }, frequency);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3718
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3719
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3720
            return id;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3721
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3722
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3723
        /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3724
         * Clears the specified heading watch.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3725
         * @param {String} watchId The ID of the watch returned from #watchHeading.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3726
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3727
        clearWatch:function(id) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3728
            // Stop javascript timer & remove from timer list
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3729
            if (id && timers[id]) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3730
                if (timers[id] != "iOS") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3731
                      clearInterval(timers[id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3732
                  } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3733
                    // is iOS watch by filter so call into device to stop
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3734
                    exec(null, null, "Compass", "stopHeading", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3735
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3736
                delete timers[id];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3737
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3738
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3739
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3740
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3741
module.exports = compass;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3742
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3743
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3744
// file: lib/common/plugin/console-via-logger.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3745
define("cordova/plugin/console-via-logger", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3746
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3747
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3748
var logger = require("cordova/plugin/logger");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3749
var utils  = require("cordova/utils");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3750
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3751
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3752
// object that we're exporting
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3753
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3754
var console = module.exports;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3755
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3756
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3757
// copy of the original console object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3758
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3759
var WinConsole = window.console;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3760
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3761
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3762
// whether to use the logger
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3763
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3764
var UseLogger = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3765
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3766
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3767
// Timers
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3768
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3769
var Timers = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3770
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3771
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3772
// used for unimplemented methods
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3773
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3774
function noop() {}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3775
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3776
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3777
// used for unimplemented methods
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3778
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3779
console.useLogger = function (value) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3780
    if (arguments.length) UseLogger = !!value;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3781
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3782
    if (UseLogger) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3783
        if (logger.useConsole()) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3784
            throw new Error("console and logger are too intertwingly");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3785
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3786
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3787
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3788
    return UseLogger;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3789
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3790
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3791
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3792
console.log = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3793
    if (logger.useConsole()) return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3794
    logger.log.apply(logger, [].slice.call(arguments));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3795
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3796
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3797
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3798
console.error = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3799
    if (logger.useConsole()) return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3800
    logger.error.apply(logger, [].slice.call(arguments));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3801
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3802
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3803
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3804
console.warn = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3805
    if (logger.useConsole()) return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3806
    logger.warn.apply(logger, [].slice.call(arguments));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3807
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3808
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3809
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3810
console.info = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3811
    if (logger.useConsole()) return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3812
    logger.info.apply(logger, [].slice.call(arguments));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3813
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3814
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3815
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3816
console.debug = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3817
    if (logger.useConsole()) return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3818
    logger.debug.apply(logger, [].slice.call(arguments));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3819
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3820
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3821
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3822
console.assert = function(expression) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3823
    if (expression) return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3824
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3825
    var message = utils.vformat(arguments[1], [].slice.call(arguments, 2));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3826
    console.log("ASSERT: " + message);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3827
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3828
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3829
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3830
console.clear = function() {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3831
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3832
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3833
console.dir = function(object) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3834
    console.log("%o", object);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3835
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3836
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3837
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3838
console.dirxml = function(node) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3839
    console.log(node.innerHTML);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3840
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3841
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3842
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3843
console.trace = noop;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3844
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3845
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3846
console.group = console.log;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3847
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3848
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3849
console.groupCollapsed = console.log;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3850
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3851
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3852
console.groupEnd = noop;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3853
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3854
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3855
console.time = function(name) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3856
    Timers[name] = new Date().valueOf();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3857
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3858
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3859
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3860
console.timeEnd = function(name) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3861
    var timeStart = Timers[name];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3862
    if (!timeStart) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3863
        console.warn("unknown timer: " + name);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3864
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3865
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3866
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3867
    var timeElapsed = new Date().valueOf() - timeStart;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3868
    console.log(name + ": " + timeElapsed + "ms");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3869
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3870
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3871
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3872
console.timeStamp = noop;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3873
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3874
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3875
console.profile = noop;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3876
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3877
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3878
console.profileEnd = noop;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3879
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3880
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3881
console.count = noop;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3882
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3883
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3884
console.exception = console.log;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3885
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3886
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3887
console.table = function(data, columns) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3888
    console.log("%o", data);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3889
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3890
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3891
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3892
// return a new function that calls both functions passed as args
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3893
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3894
function wrapperedOrigCall(orgFunc, newFunc) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3895
    return function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3896
        var args = [].slice.call(arguments);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3897
        try { orgFunc.apply(WinConsole, args); } catch (e) {}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3898
        try { newFunc.apply(console,    args); } catch (e) {}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3899
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3900
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3901
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3902
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3903
// For every function that exists in the original console object, that
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3904
// also exists in the new console object, wrap the new console method
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3905
// with one that calls both
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3906
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3907
for (var key in console) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3908
    if (typeof WinConsole[key] == "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3909
        console[key] = wrapperedOrigCall(WinConsole[key], console[key]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3910
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3911
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3912
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3913
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3914
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3915
// file: lib/common/plugin/contacts.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3916
define("cordova/plugin/contacts", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3917
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3918
    ContactError = require('cordova/plugin/ContactError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3919
    utils = require('cordova/utils'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3920
    Contact = require('cordova/plugin/Contact');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3921
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3922
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3923
* Represents a group of Contacts.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3924
* @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3925
*/
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3926
var contacts = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3927
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3928
     * Returns an array of Contacts matching the search criteria.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3929
     * @param fields that should be searched
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3930
     * @param successCB success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3931
     * @param errorCB error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3932
     * @param {ContactFindOptions} options that can be applied to contact searching
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3933
     * @return array of Contacts matching search criteria
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3934
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3935
    find:function(fields, successCB, errorCB, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3936
        if (!successCB) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3937
            throw new TypeError("You must specify a success callback for the find command.");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3938
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3939
        if (!fields || (utils.isArray(fields) && fields.length === 0)) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3940
            if (typeof errorCB === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3941
                errorCB(new ContactError(ContactError.INVALID_ARGUMENT_ERROR));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3942
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3943
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3944
            var win = function(result) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3945
                var cs = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3946
                for (var i = 0, l = result.length; i < l; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3947
                    cs.push(contacts.create(result[i]));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3948
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3949
                successCB(cs);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3950
            };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3951
            exec(win, errorCB, "Contacts", "search", [fields, options]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3952
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3953
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3954
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3955
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3956
     * This function creates a new contact, but it does not persist the contact
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3957
     * to device storage. To persist the contact to device storage, invoke
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3958
     * contact.save().
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3959
     * @param properties an object who's properties will be examined to create a new Contact
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3960
     * @returns new Contact object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3961
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3962
    create:function(properties) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3963
        var i;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3964
        var contact = new Contact();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3965
        for (i in properties) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3966
            if (typeof contact[i] !== 'undefined' && properties.hasOwnProperty(i)) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3967
                contact[i] = properties[i];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3968
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3969
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3970
        return contact;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3971
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3972
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3973
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3974
module.exports = contacts;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3975
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3976
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3977
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3978
// file: lib/common/plugin/device.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3979
define("cordova/plugin/device", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3980
var channel = require('cordova/channel'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3981
    utils = require('cordova/utils'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3982
    exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3983
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3984
// Tell cordova channel to wait on the CordovaInfoReady event
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3985
channel.waitForInitialization('onCordovaInfoReady');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3986
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3987
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3988
 * This represents the mobile device, and provides properties for inspecting the model, version, UUID of the
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3989
 * phone, etc.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3990
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3991
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3992
function Device() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3993
    this.available = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3994
    this.platform = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3995
    this.version = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3996
    this.name = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3997
    this.uuid = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3998
    this.cordova = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  3999
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4000
    var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4001
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4002
    channel.onCordovaReady.subscribeOnce(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4003
        me.getInfo(function(info) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4004
            me.available = true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4005
            me.platform = info.platform;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4006
            me.version = info.version;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4007
            me.name = info.name;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4008
            me.uuid = info.uuid;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4009
            me.cordova = info.cordova;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4010
            channel.onCordovaInfoReady.fire();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4011
        },function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4012
            me.available = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4013
            utils.alert("[ERROR] Error initializing Cordova: " + e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4014
        });
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4015
    });
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4016
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4017
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4018
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4019
 * Get device info
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4020
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4021
 * @param {Function} successCallback The function to call when the heading data is available
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4022
 * @param {Function} errorCallback The function to call when there is an error getting the heading data. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4023
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4024
Device.prototype.getInfo = function(successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4025
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4026
    // successCallback required
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4027
    if (typeof successCallback !== "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4028
        console.log("Device Error: successCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4029
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4030
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4031
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4032
    // errorCallback optional
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4033
    if (errorCallback && (typeof errorCallback !== "function")) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4034
        console.log("Device Error: errorCallback is not a function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4035
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4036
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4037
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4038
    // Get info
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4039
    exec(successCallback, errorCallback, "Device", "getDeviceInfo", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4040
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4041
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4042
module.exports = new Device();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4043
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4044
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4045
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4046
// file: lib/common/plugin/geolocation.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4047
define("cordova/plugin/geolocation", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4048
var utils = require('cordova/utils'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4049
    exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4050
    PositionError = require('cordova/plugin/PositionError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4051
    Position = require('cordova/plugin/Position');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4052
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4053
var timers = {};   // list of timers in use
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4054
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4055
// Returns default params, overrides if provided with values
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4056
function parseParameters(options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4057
    var opt = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4058
        maximumAge: 0,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4059
        enableHighAccuracy: false,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4060
        timeout: Infinity
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4061
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4062
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4063
    if (options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4064
        if (options.maximumAge !== undefined && !isNaN(options.maximumAge) && options.maximumAge > 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4065
            opt.maximumAge = options.maximumAge;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4066
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4067
        if (options.enableHighAccuracy !== undefined) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4068
            opt.enableHighAccuracy = options.enableHighAccuracy;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4069
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4070
        if (options.timeout !== undefined && !isNaN(options.timeout)) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4071
            if (options.timeout < 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4072
                opt.timeout = 0;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4073
            } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4074
                opt.timeout = options.timeout;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4075
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4076
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4077
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4078
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4079
    return opt;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4080
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4081
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4082
// Returns a timeout failure, closed over a specified timeout value and error callback.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4083
function createTimeout(errorCallback, timeout) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4084
    var t = setTimeout(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4085
        clearTimeout(t);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4086
        t = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4087
        errorCallback({
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4088
            code:PositionError.TIMEOUT,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4089
            message:"Position retrieval timed out."
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4090
        });
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4091
    }, timeout);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4092
    return t;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4093
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4094
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4095
var geolocation = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4096
    lastPosition:null, // reference to last known (cached) position returned
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4097
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4098
   * Asynchronously aquires the current position.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4099
   *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4100
   * @param {Function} successCallback    The function to call when the position data is available
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4101
   * @param {Function} errorCallback      The function to call when there is an error getting the heading position. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4102
   * @param {PositionOptions} options     The options for getting the position data. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4103
   */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4104
    getCurrentPosition:function(successCallback, errorCallback, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4105
        if (arguments.length === 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4106
            throw new Error("getCurrentPosition must be called with at least one argument.");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4107
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4108
        options = parseParameters(options);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4109
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4110
        // Timer var that will fire an error callback if no position is retrieved from native
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4111
        // before the "timeout" param provided expires
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4112
        var timeoutTimer = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4113
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4114
        var win = function(p) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4115
            clearTimeout(timeoutTimer);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4116
            if (!timeoutTimer) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4117
                // Timeout already happened, or native fired error callback for
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4118
                // this geo request.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4119
                // Don't continue with success callback.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4120
                return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4121
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4122
            var pos = new Position(
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4123
                {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4124
                    latitude:p.latitude,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4125
                    longitude:p.longitude,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4126
                    altitude:p.altitude,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4127
                    accuracy:p.accuracy,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4128
                    heading:p.heading,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4129
                    velocity:p.velocity,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4130
                    altitudeAccuracy:p.altitudeAccuracy
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4131
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4132
                (p.timestamp === undefined ? new Date() : ((p.timestamp instanceof Date) ? p.timestamp : new Date(p.timestamp)))
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4133
            );
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4134
            geolocation.lastPosition = pos;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4135
            successCallback(pos);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4136
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4137
        var fail = function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4138
            clearTimeout(timeoutTimer);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4139
            timeoutTimer = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4140
            var err = new PositionError(e.code, e.message);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4141
            if (errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4142
                errorCallback(err);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4143
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4144
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4145
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4146
        // Check our cached position, if its timestamp difference with current time is less than the maximumAge, then just
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4147
        // fire the success callback with the cached position.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4148
        if (geolocation.lastPosition && options.maximumAge && (((new Date()).getTime() - geolocation.lastPosition.timestamp.getTime()) <= options.maximumAge)) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4149
            successCallback(geolocation.lastPosition);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4150
        // If the cached position check failed and the timeout was set to 0, error out with a TIMEOUT error object.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4151
        } else if (options.timeout === 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4152
            fail({
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4153
                code:PositionError.TIMEOUT,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4154
                message:"timeout value in PositionOptions set to 0 and no cached Position object available, or cached Position object's age exceed's provided PositionOptions' maximumAge parameter."
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4155
            });
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4156
        // Otherwise we have to call into native to retrieve a position.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4157
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4158
            if (options.timeout !== Infinity) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4159
                // If the timeout value was not set to Infinity (default), then
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4160
                // set up a timeout function that will fire the error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4161
                // if no successful position was retrieved before timeout expired.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4162
                timeoutTimer = createTimeout(fail, options.timeout);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4163
            } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4164
                // This is here so the check in the win function doesn't mess stuff up
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4165
                // may seem weird but this guarantees timeoutTimer is
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4166
                // always truthy before we call into native
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4167
                timeoutTimer = true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4168
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4169
            exec(win, fail, "Geolocation", "getLocation", [options.enableHighAccuracy, options.maximumAge]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4170
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4171
        return timeoutTimer;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4172
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4173
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4174
     * Asynchronously watches the geolocation for changes to geolocation.  When a change occurs,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4175
     * the successCallback is called with the new location.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4176
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4177
     * @param {Function} successCallback    The function to call each time the location data is available
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4178
     * @param {Function} errorCallback      The function to call when there is an error getting the location data. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4179
     * @param {PositionOptions} options     The options for getting the location data such as frequency. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4180
     * @return String                       The watch id that must be passed to #clearWatch to stop watching.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4181
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4182
    watchPosition:function(successCallback, errorCallback, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4183
        if (arguments.length === 0) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4184
            throw new Error("watchPosition must be called with at least one argument.");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4185
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4186
        options = parseParameters(options);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4187
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4188
        var id = utils.createUUID();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4189
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4190
        // Tell device to get a position ASAP, and also retrieve a reference to the timeout timer generated in getCurrentPosition
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4191
        timers[id] = geolocation.getCurrentPosition(successCallback, errorCallback, options);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4192
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4193
        var fail = function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4194
            clearTimeout(timers[id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4195
            var err = new PositionError(e.code, e.message);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4196
            if (errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4197
                errorCallback(err);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4198
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4199
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4200
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4201
        var win = function(p) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4202
            clearTimeout(timers[id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4203
            if (options.timeout !== Infinity) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4204
                timers[id] = createTimeout(fail, options.timeout);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4205
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4206
            var pos = new Position(
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4207
                {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4208
                    latitude:p.latitude,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4209
                    longitude:p.longitude,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4210
                    altitude:p.altitude,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4211
                    accuracy:p.accuracy,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4212
                    heading:p.heading,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4213
                    velocity:p.velocity,
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4214
                    altitudeAccuracy:p.altitudeAccuracy
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4215
                },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4216
                (p.timestamp === undefined ? new Date() : ((p.timestamp instanceof Date) ? p.timestamp : new Date(p.timestamp)))
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4217
            );
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4218
            geolocation.lastPosition = pos;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4219
            successCallback(pos);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4220
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4221
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4222
        exec(win, fail, "Geolocation", "addWatch", [id, options.enableHighAccuracy]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4223
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4224
        return id;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4225
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4226
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4227
     * Clears the specified heading watch.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4228
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4229
     * @param {String} id       The ID of the watch returned from #watchPosition
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4230
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4231
    clearWatch:function(id) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4232
        if (id && timers[id] !== undefined) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4233
            clearTimeout(timers[id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4234
            delete timers[id];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4235
            exec(null, null, "Geolocation", "clearWatch", [id]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4236
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4237
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4238
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4239
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4240
module.exports = geolocation;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4241
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4242
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4243
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4244
// file: lib/ios/plugin/ios/Contact.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4245
define("cordova/plugin/ios/Contact", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4246
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4247
    ContactError = require('cordova/plugin/ContactError');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4248
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4249
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4250
 * Provides iOS Contact.display API.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4251
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4252
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4253
    display : function(errorCB, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4254
        /*
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4255
         *    Display a contact using the iOS Contact Picker UI
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4256
         *    NOT part of W3C spec so no official documentation
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4257
         *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4258
         *    @param errorCB error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4259
         *    @param options object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4260
         *    allowsEditing: boolean AS STRING
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4261
         *        "true" to allow editing the contact
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4262
         *        "false" (default) display contact
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4263
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4264
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4265
        if (this.id === null) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4266
            if (typeof errorCB === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4267
                var errorObj = new ContactError(ContactError.UNKNOWN_ERROR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4268
                errorCB(errorObj);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4269
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4270
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4271
        else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4272
            exec(null, errorCB, "Contacts","displayContact", [this.id, options]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4273
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4274
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4275
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4276
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4277
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4278
// file: lib/ios/plugin/ios/Entry.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4279
define("cordova/plugin/ios/Entry", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4280
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4281
    toURL:function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4282
        // TODO: refactor path in a cross-platform way so we can eliminate
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4283
        // these kinds of platform-specific hacks.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4284
        return "file://localhost" + this.fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4285
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4286
    toURI: function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4287
        console.log("DEPRECATED: Update your code to use 'toURL'");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4288
        return "file://localhost" + this.fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4289
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4290
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4291
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4292
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4293
// file: lib/ios/plugin/ios/FileReader.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4294
define("cordova/plugin/ios/FileReader", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4295
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4296
    FileError = require('cordova/plugin/FileError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4297
    FileReader = require('cordova/plugin/FileReader'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4298
    ProgressEvent = require('cordova/plugin/ProgressEvent');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4299
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4300
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4301
    readAsText:function(file, encoding) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4302
        // Figure out pathing
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4303
        this.fileName = '';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4304
        if (typeof file.fullPath === 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4305
            this.fileName = file;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4306
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4307
            this.fileName = file.fullPath;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4308
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4309
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4310
        // Already loading something
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4311
        if (this.readyState == FileReader.LOADING) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4312
            throw new FileError(FileError.INVALID_STATE_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4313
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4314
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4315
        // LOADING state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4316
        this.readyState = FileReader.LOADING;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4317
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4318
        // If loadstart callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4319
        if (typeof this.onloadstart === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4320
            this.onloadstart(new ProgressEvent("loadstart", {target:this}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4321
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4322
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4323
        // Default encoding is UTF-8
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4324
        var enc = encoding ? encoding : "UTF-8";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4325
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4326
        var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4327
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4328
        // Read file
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4329
        exec(
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4330
            // Success callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4331
            function(r) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4332
                // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4333
                if (me.readyState === FileReader.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4334
                    return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4335
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4336
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4337
                // Save result
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4338
                me.result = decodeURIComponent(r);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4339
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4340
                // If onload callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4341
                if (typeof me.onload === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4342
                    me.onload(new ProgressEvent("load", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4343
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4344
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4345
                // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4346
                me.readyState = FileReader.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4347
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4348
                // If onloadend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4349
                if (typeof me.onloadend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4350
                    me.onloadend(new ProgressEvent("loadend", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4351
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4352
            },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4353
            // Error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4354
            function(e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4355
                // If DONE (cancelled), then don't do anything
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4356
                if (me.readyState === FileReader.DONE) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4357
                    return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4358
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4359
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4360
                // DONE state
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4361
                me.readyState = FileReader.DONE;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4362
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4363
                // null result
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4364
                me.result = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4365
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4366
                // Save error
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4367
                me.error = new FileError(e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4368
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4369
                // If onerror callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4370
                if (typeof me.onerror === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4371
                    me.onerror(new ProgressEvent("error", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4372
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4373
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4374
                // If onloadend callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4375
                if (typeof me.onloadend === "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4376
                    me.onloadend(new ProgressEvent("loadend", {target:me}));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4377
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4378
            },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4379
        "File", "readAsText", [this.fileName, enc]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4380
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4381
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4382
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4383
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4384
// file: lib/ios/plugin/ios/console.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4385
define("cordova/plugin/ios/console", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4386
var exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4387
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4388
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4389
 * This class provides access to the debugging console.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4390
 * @constructor
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4391
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4392
var DebugConsole = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4393
    this.winConsole = window.console;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4394
    this.logLevel = DebugConsole.INFO_LEVEL;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4395
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4396
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4397
// from most verbose, to least verbose
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4398
DebugConsole.ALL_LEVEL    = 1; // same as first level
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4399
DebugConsole.INFO_LEVEL   = 1;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4400
DebugConsole.WARN_LEVEL   = 2;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4401
DebugConsole.ERROR_LEVEL  = 4;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4402
DebugConsole.NONE_LEVEL   = 8;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4403
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4404
DebugConsole.prototype.setLevel = function(level) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4405
    this.logLevel = level;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4406
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4407
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4408
var stringify = function(message) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4409
    try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4410
        if (typeof message === "object" && JSON && JSON.stringify) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4411
            try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4412
                return JSON.stringify(message);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4413
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4414
            catch (e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4415
                return "error JSON.stringify()ing argument: " + e;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4416
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4417
        } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4418
            return message.toString();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4419
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4420
    } catch (e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4421
        return e.toString();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4422
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4423
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4424
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4425
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4426
 * Print a normal log message to the console
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4427
 * @param {Object|String} message Message or object to print to the console
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4428
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4429
DebugConsole.prototype.log = function(message) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4430
    if (this.logLevel <= DebugConsole.INFO_LEVEL) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4431
        exec(null, null, 'Debug Console', 'log', [ stringify(message), { logLevel: 'INFO' } ]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4432
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4433
    else if (this.winConsole && this.winConsole.log) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4434
        this.winConsole.log(message);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4435
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4436
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4437
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4438
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4439
 * Print a warning message to the console
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4440
 * @param {Object|String} message Message or object to print to the console
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4441
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4442
DebugConsole.prototype.warn = function(message) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4443
    if (this.logLevel <= DebugConsole.WARN_LEVEL) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4444
        exec(null, null, 'Debug Console', 'log', [ stringify(message), { logLevel: 'WARN' } ]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4445
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4446
    else if (this.winConsole && this.winConsole.warn) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4447
        this.winConsole.warn(message);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4448
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4449
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4450
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4451
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4452
 * Print an error message to the console
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4453
 * @param {Object|String} message Message or object to print to the console
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4454
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4455
DebugConsole.prototype.error = function(message) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4456
    if (this.logLevel <= DebugConsole.ERROR_LEVEL) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4457
        exec(null, null, 'Debug Console', 'log', [ stringify(message), { logLevel: 'ERROR' } ]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4458
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4459
    else if (this.winConsole && this.winConsole.error){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4460
        this.winConsole.error(message);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4461
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4462
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4463
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4464
module.exports = new DebugConsole();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4465
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4466
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4467
// file: lib/ios/plugin/ios/contacts.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4468
define("cordova/plugin/ios/contacts", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4469
var exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4470
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4471
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4472
 * Provides iOS enhanced contacts API.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4473
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4474
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4475
    newContactUI : function(successCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4476
        /*
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4477
         *    Create a contact using the iOS Contact Picker UI
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4478
         *    NOT part of W3C spec so no official documentation
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4479
         *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4480
         * returns:  the id of the created contact as param to successCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4481
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4482
        exec(successCallback, null, "Contacts","newContact", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4483
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4484
    chooseContact : function(successCallback, options) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4485
        /*
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4486
         *    Select a contact using the iOS Contact Picker UI
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4487
         *    NOT part of W3C spec so no official documentation
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4488
         *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4489
         *    @param errorCB error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4490
         *    @param options object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4491
         *    allowsEditing: boolean AS STRING
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4492
         *        "true" to allow editing the contact
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4493
         *        "false" (default) display contact
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4494
         *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4495
         * returns:  the id of the selected contact as param to successCallback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4496
         */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4497
        exec(successCallback, null, "Contacts","chooseContact", [options]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4498
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4499
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4500
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4501
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4502
// file: lib/ios/plugin/ios/nativecomm.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4503
define("cordova/plugin/ios/nativecomm", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4504
var cordova = require('cordova');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4505
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4506
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4507
 * Called by native code to retrieve all queued commands and clear the queue.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4508
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4509
module.exports = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4510
  var json = JSON.stringify(cordova.commandQueue);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4511
  cordova.commandQueue = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4512
  return json;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4513
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4514
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4515
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4516
// file: lib/ios/plugin/ios/notification.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4517
define("cordova/plugin/ios/notification", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4518
var Media = require('cordova/plugin/Media');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4519
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4520
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4521
    beep:function(count) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4522
        (new Media('beep.wav')).play();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4523
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4524
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4525
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4526
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4527
// file: lib/common/plugin/logger.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4528
define("cordova/plugin/logger", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4529
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4530
// The logger module exports the following properties/functions:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4531
//
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4532
// LOG                          - constant for the level LOG
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4533
// ERROR                        - constant for the level ERROR
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4534
// WARN                         - constant for the level WARN
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4535
// INFO                         - constant for the level INFO
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4536
// DEBUG                        - constant for the level DEBUG
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4537
// logLevel()                   - returns current log level
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4538
// logLevel(value)              - sets and returns a new log level
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4539
// useConsole()                 - returns whether logger is using console
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4540
// useConsole(value)            - sets and returns whether logger is using console
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4541
// log(message,...)             - logs a message at level LOG
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4542
// error(message,...)           - logs a message at level ERROR
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4543
// warn(message,...)            - logs a message at level WARN
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4544
// info(message,...)            - logs a message at level INFO
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4545
// debug(message,...)           - logs a message at level DEBUG
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4546
// logLevel(level,message,...)  - logs a message specified level
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4547
//
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4548
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4549
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4550
var logger = exports;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4551
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4552
var exec    = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4553
var utils   = require('cordova/utils');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4554
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4555
var UseConsole   = true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4556
var Queued       = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4557
var DeviceReady  = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4558
var CurrentLevel;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4559
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4560
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4561
 * Logging levels
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4562
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4563
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4564
var Levels = [
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4565
    "LOG",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4566
    "ERROR",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4567
    "WARN",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4568
    "INFO",
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4569
    "DEBUG"
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4570
];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4571
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4572
/*
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4573
 * add the logging levels to the logger object and
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4574
 * to a separate levelsMap object for testing
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4575
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4576
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4577
var LevelsMap = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4578
for (var i=0; i<Levels.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4579
    var level = Levels[i];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4580
    LevelsMap[level] = i;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4581
    logger[level]    = level;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4582
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4583
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4584
CurrentLevel = LevelsMap.WARN;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4585
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4586
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4587
 * Getter/Setter for the logging level
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4588
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4589
 * Returns the current logging level.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4590
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4591
 * When a value is passed, sets the logging level to that value.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4592
 * The values should be one of the following constants:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4593
 *    logger.LOG
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4594
 *    logger.ERROR
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4595
 *    logger.WARN
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4596
 *    logger.INFO
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4597
 *    logger.DEBUG
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4598
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4599
 * The value used determines which messages get printed.  The logging
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4600
 * values above are in order, and only messages logged at the logging
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4601
 * level or above will actually be displayed to the user.  Eg, the
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4602
 * default level is WARN, so only messages logged with LOG, ERROR, or
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4603
 * WARN will be displayed; INFO and DEBUG messages will be ignored.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4604
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4605
logger.level = function (value) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4606
    if (arguments.length) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4607
        if (LevelsMap[value] === null) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4608
            throw new Error("invalid logging level: " + value);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4609
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4610
        CurrentLevel = LevelsMap[value];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4611
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4612
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4613
    return Levels[CurrentLevel];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4614
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4615
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4616
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4617
 * Getter/Setter for the useConsole functionality
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4618
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4619
 * When useConsole is true, the logger will log via the
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4620
 * browser 'console' object.  Otherwise, it will use the
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4621
 * native Logger plugin.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4622
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4623
logger.useConsole = function (value) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4624
    if (arguments.length) UseConsole = !!value;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4625
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4626
    if (UseConsole) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4627
        if (typeof console == "undefined") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4628
            throw new Error("global console object is not defined");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4629
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4630
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4631
        if (typeof console.log != "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4632
            throw new Error("global console object does not have a log function");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4633
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4634
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4635
        if (typeof console.useLogger == "function") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4636
            if (console.useLogger()) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4637
                throw new Error("console and logger are too intertwingly");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4638
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4639
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4640
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4641
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4642
    return UseConsole;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4643
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4644
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4645
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4646
 * Logs a message at the LOG level.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4647
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4648
 * Parameters passed after message are used applied to
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4649
 * the message with utils.format()
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4650
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4651
logger.log   = function(message) { logWithArgs("LOG",   arguments); };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4652
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4653
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4654
 * Logs a message at the ERROR level.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4655
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4656
 * Parameters passed after message are used applied to
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4657
 * the message with utils.format()
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4658
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4659
logger.error = function(message) { logWithArgs("ERROR", arguments); };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4660
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4661
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4662
 * Logs a message at the WARN level.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4663
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4664
 * Parameters passed after message are used applied to
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4665
 * the message with utils.format()
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4666
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4667
logger.warn  = function(message) { logWithArgs("WARN",  arguments); };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4668
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4669
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4670
 * Logs a message at the INFO level.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4671
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4672
 * Parameters passed after message are used applied to
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4673
 * the message with utils.format()
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4674
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4675
logger.info  = function(message) { logWithArgs("INFO",  arguments); };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4676
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4677
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4678
 * Logs a message at the DEBUG level.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4679
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4680
 * Parameters passed after message are used applied to
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4681
 * the message with utils.format()
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4682
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4683
logger.debug = function(message) { logWithArgs("DEBUG", arguments); };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4684
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4685
// log at the specified level with args
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4686
function logWithArgs(level, args) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4687
    args = [level].concat([].slice.call(args));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4688
    logger.logLevel.apply(logger, args);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4689
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4690
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4691
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4692
 * Logs a message at the specified level.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4693
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4694
 * Parameters passed after message are used applied to
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4695
 * the message with utils.format()
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4696
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4697
logger.logLevel = function(level, message /* , ... */) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4698
    // format the message with the parameters
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4699
    var formatArgs = [].slice.call(arguments, 2);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4700
    message    = utils.vformat(message, formatArgs);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4701
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4702
    if (LevelsMap[level] === null) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4703
        throw new Error("invalid logging level: " + level);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4704
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4705
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4706
    if (LevelsMap[level] > CurrentLevel) return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4707
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4708
    // queue the message if not yet at deviceready
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4709
    if (!DeviceReady && !UseConsole) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4710
        Queued.push([level, message]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4711
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4712
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4713
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4714
    // if not using the console, use the native logger
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4715
    if (!UseConsole) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4716
        exec(null, null, "Logger", "logLevel", [level, message]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4717
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4718
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4719
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4720
    // make sure console is not using logger
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4721
    if (console.__usingCordovaLogger) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4722
        throw new Error("console and logger are too intertwingly");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4723
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4724
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4725
    // log to the console
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4726
    switch (level) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4727
        case logger.LOG:   console.log(message); break;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4728
        case logger.ERROR: console.log("ERROR: " + message); break;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4729
        case logger.WARN:  console.log("WARN: "  + message); break;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4730
        case logger.INFO:  console.log("INFO: "  + message); break;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4731
        case logger.DEBUG: console.log("DEBUG: " + message); break;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4732
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4733
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4734
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4735
// when deviceready fires, log queued messages
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4736
logger.__onDeviceReady = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4737
    if (DeviceReady) return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4738
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4739
    DeviceReady = true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4740
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4741
    for (var i=0; i<Queued.length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4742
        var messageArgs = Queued[i];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4743
        logger.logLevel(messageArgs[0], messageArgs[1]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4744
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4745
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4746
    Queued = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4747
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4748
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4749
// add a deviceready event to log queued messages
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4750
document.addEventListener("deviceready", logger.__onDeviceReady, false);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4751
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4752
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4753
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4754
// file: lib/common/plugin/network.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4755
define("cordova/plugin/network", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4756
var exec = require('cordova/exec'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4757
    cordova = require('cordova'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4758
    channel = require('cordova/channel');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4759
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4760
var NetworkConnection = function () {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4761
    this.type = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4762
    this._firstRun = true;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4763
    this._timer = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4764
    this.timeout = 500;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4765
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4766
    var me = this;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4767
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4768
    channel.onCordovaReady.subscribeOnce(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4769
        me.getInfo(function (info) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4770
            me.type = info;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4771
            if (info === "none") {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4772
                // set a timer if still offline at the end of timer send the offline event
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4773
                me._timer = setTimeout(function(){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4774
                    cordova.fireDocumentEvent("offline");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4775
                    me._timer = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4776
                    }, me.timeout);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4777
            } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4778
                // If there is a current offline event pending clear it
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4779
                if (me._timer !== null) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4780
                    clearTimeout(me._timer);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4781
                    me._timer = null;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4782
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4783
                cordova.fireDocumentEvent("online");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4784
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4785
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4786
            // should only fire this once
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4787
            if (me._firstRun) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4788
                me._firstRun = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4789
                channel.onCordovaConnectionReady.fire();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4790
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4791
        },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4792
        function (e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4793
            // If we can't get the network info we should still tell Cordova
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4794
            // to fire the deviceready event.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4795
            if (me._firstRun) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4796
                me._firstRun = false;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4797
                channel.onCordovaConnectionReady.fire();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4798
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4799
            console.log("Error initializing Network Connection: " + e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4800
        });
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4801
    });
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4802
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4803
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4804
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4805
 * Get connection info
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4806
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4807
 * @param {Function} successCallback The function to call when the Connection data is available
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4808
 * @param {Function} errorCallback The function to call when there is an error getting the Connection data. (OPTIONAL)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4809
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4810
NetworkConnection.prototype.getInfo = function (successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4811
    // Get info
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4812
    exec(successCallback, errorCallback, "NetworkStatus", "getConnectionInfo", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4813
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4814
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4815
module.exports = new NetworkConnection();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4816
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4817
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4818
// file: lib/common/plugin/notification.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4819
define("cordova/plugin/notification", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4820
var exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4821
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4822
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4823
 * Provides access to notifications on the device.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4824
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4825
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4826
module.exports = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4827
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4828
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4829
     * Open a native alert dialog, with a customizable title and button text.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4830
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4831
     * @param {String} message              Message to print in the body of the alert
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4832
     * @param {Function} completeCallback   The callback that is called when user clicks on a button.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4833
     * @param {String} title                Title of the alert dialog (default: Alert)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4834
     * @param {String} buttonLabel          Label of the close button (default: OK)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4835
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4836
    alert: function(message, completeCallback, title, buttonLabel) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4837
        var _title = (title || "Alert");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4838
        var _buttonLabel = (buttonLabel || "OK");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4839
        exec(completeCallback, null, "Notification", "alert", [message, _title, _buttonLabel]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4840
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4841
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4842
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4843
     * Open a native confirm dialog, with a customizable title and button text.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4844
     * The result that the user selects is returned to the result callback.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4845
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4846
     * @param {String} message              Message to print in the body of the alert
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4847
     * @param {Function} resultCallback     The callback that is called when user clicks on a button.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4848
     * @param {String} title                Title of the alert dialog (default: Confirm)
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4849
     * @param {String} buttonLabels         Comma separated list of the labels of the buttons (default: 'OK,Cancel')
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4850
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4851
    confirm: function(message, resultCallback, title, buttonLabels) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4852
        var _title = (title || "Confirm");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4853
        var _buttonLabels = (buttonLabels || "OK,Cancel");
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4854
        exec(resultCallback, null, "Notification", "confirm", [message, _title, _buttonLabels]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4855
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4856
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4857
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4858
     * Causes the device to vibrate.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4859
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4860
     * @param {Integer} mills       The number of milliseconds to vibrate for.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4861
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4862
    vibrate: function(mills) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4863
        exec(null, null, "Notification", "vibrate", [mills]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4864
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4865
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4866
    /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4867
     * Causes the device to beep.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4868
     * On Android, the default notification ringtone is played "count" times.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4869
     *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4870
     * @param {Integer} count       The number of beeps.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4871
     */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4872
    beep: function(count) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4873
        exec(null, null, "Notification", "beep", [count]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4874
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4875
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4876
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4877
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4878
// file: lib/common/plugin/requestFileSystem.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4879
define("cordova/plugin/requestFileSystem", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4880
var FileError = require('cordova/plugin/FileError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4881
    FileSystem = require('cordova/plugin/FileSystem'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4882
    exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4883
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4884
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4885
 * Request a file system in which to store application data.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4886
 * @param type  local file system type
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4887
 * @param size  indicates how much storage space, in bytes, the application expects to need
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4888
 * @param successCallback  invoked with a FileSystem object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4889
 * @param errorCallback  invoked if error occurs retrieving file system
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4890
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4891
var requestFileSystem = function(type, size, successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4892
    var fail = function(code) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4893
        if (typeof errorCallback === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4894
            errorCallback(new FileError(code));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4895
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4896
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4897
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4898
    if (type < 0 || type > 3) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4899
        fail(FileError.SYNTAX_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4900
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4901
        // if successful, return a FileSystem object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4902
        var success = function(file_system) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4903
            if (file_system) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4904
                if (typeof successCallback === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4905
                    // grab the name and root from the file system object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4906
                    var result = new FileSystem(file_system.name, file_system.root);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4907
                    successCallback(result);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4908
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4909
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4910
            else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4911
                // no FileSystem object returned
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4912
                fail(FileError.NOT_FOUND_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4913
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4914
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4915
        exec(success, fail, "File", "requestFileSystem", [type, size]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4916
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4917
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4918
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4919
module.exports = requestFileSystem;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4920
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4921
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4922
// file: lib/common/plugin/resolveLocalFileSystemURI.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4923
define("cordova/plugin/resolveLocalFileSystemURI", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4924
var DirectoryEntry = require('cordova/plugin/DirectoryEntry'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4925
    FileEntry = require('cordova/plugin/FileEntry'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4926
    FileError = require('cordova/plugin/FileError'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4927
    exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4928
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4929
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4930
 * Look up file system Entry referred to by local URI.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4931
 * @param {DOMString} uri  URI referring to a local file or directory
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4932
 * @param successCallback  invoked with Entry object corresponding to URI
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4933
 * @param errorCallback    invoked if error occurs retrieving file system entry
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4934
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4935
module.exports = function(uri, successCallback, errorCallback) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4936
    // error callback
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4937
    var fail = function(error) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4938
        if (typeof errorCallback === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4939
            errorCallback(new FileError(error));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4940
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4941
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4942
    // sanity check for 'not:valid:filename'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4943
    if(!uri || uri.split(":").length > 2) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4944
        setTimeout( function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4945
            fail(FileError.ENCODING_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4946
        },0);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4947
        return;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4948
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4949
    // if successful, return either a file or directory entry
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4950
    var success = function(entry) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4951
        var result;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4952
        if (entry) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4953
            if (typeof successCallback === 'function') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4954
                // create appropriate Entry object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4955
                result = (entry.isDirectory) ? new DirectoryEntry(entry.name, entry.fullPath) : new FileEntry(entry.name, entry.fullPath);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4956
                try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4957
                    successCallback(result);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4958
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4959
                catch (e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4960
                    console.log('Error invoking callback: ' + e);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4961
                }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4962
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4963
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4964
        else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4965
            // no Entry object returned
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4966
            fail(FileError.NOT_FOUND_ERR);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4967
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4968
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4969
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4970
    exec(success, fail, "File", "resolveLocalFileSystemURI", [uri]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4971
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4972
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4973
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4974
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4975
// file: lib/common/plugin/splashscreen.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4976
define("cordova/plugin/splashscreen", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4977
var exec = require('cordova/exec');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4978
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4979
var splashscreen = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4980
    show:function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4981
        exec(null, null, "SplashScreen", "show", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4982
    },
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4983
    hide:function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4984
        exec(null, null, "SplashScreen", "hide", []);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4985
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4986
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4987
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4988
module.exports = splashscreen;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4989
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4990
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4991
// file: lib/common/utils.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4992
define("cordova/utils", function(require, exports, module) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4993
var utils = exports;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4994
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4995
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4996
 * Returns an indication of whether the argument is an array or not
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4997
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4998
utils.isArray = function(a) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  4999
    return Object.prototype.toString.call(a) == '[object Array]';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5000
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5001
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5002
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5003
 * Returns an indication of whether the argument is a Date or not
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5004
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5005
utils.isDate = function(d) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5006
    return Object.prototype.toString.call(d) == '[object Date]';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5007
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5008
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5009
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5010
 * Does a deep clone of the object.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5011
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5012
utils.clone = function(obj) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5013
    if(!obj || typeof obj == 'function' || utils.isDate(obj) || typeof obj != 'object') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5014
        return obj;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5015
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5016
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5017
    var retVal, i;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5018
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5019
    if(utils.isArray(obj)){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5020
        retVal = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5021
        for(i = 0; i < obj.length; ++i){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5022
            retVal.push(utils.clone(obj[i]));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5023
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5024
        return retVal;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5025
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5026
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5027
    retVal = {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5028
    for(i in obj){
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5029
        if(!(i in retVal) || retVal[i] != obj[i]) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5030
            retVal[i] = utils.clone(obj[i]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5031
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5032
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5033
    return retVal;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5034
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5035
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5036
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5037
 * Returns a wrappered version of the function
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5038
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5039
utils.close = function(context, func, params) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5040
    if (typeof params == 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5041
        return function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5042
            return func.apply(context, arguments);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5043
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5044
    } else {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5045
        return function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5046
            return func.apply(context, params);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5047
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5048
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5049
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5050
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5051
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5052
 * Create a UUID
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5053
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5054
utils.createUUID = function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5055
    return UUIDcreatePart(4) + '-' +
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5056
        UUIDcreatePart(2) + '-' +
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5057
        UUIDcreatePart(2) + '-' +
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5058
        UUIDcreatePart(2) + '-' +
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5059
        UUIDcreatePart(6);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5060
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5061
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5062
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5063
 * Extends a child object from a parent object using classical inheritance
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5064
 * pattern.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5065
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5066
utils.extend = (function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5067
    // proxy used to establish prototype chain
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5068
    var F = function() {};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5069
    // extend Child from Parent
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5070
    return function(Child, Parent) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5071
        F.prototype = Parent.prototype;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5072
        Child.prototype = new F();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5073
        Child.__super__ = Parent.prototype;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5074
        Child.prototype.constructor = Child;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5075
    };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5076
}());
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5077
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5078
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5079
 * Alerts a message in any available way: alert or console.log.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5080
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5081
utils.alert = function(msg) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5082
    if (alert) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5083
        alert(msg);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5084
    } else if (console && console.log) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5085
        console.log(msg);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5086
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5087
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5088
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5089
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5090
 * Formats a string and arguments following it ala sprintf()
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5091
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5092
 * see utils.vformat() for more information
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5093
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5094
utils.format = function(formatString /* ,... */) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5095
    var args = [].slice.call(arguments, 1);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5096
    return utils.vformat(formatString, args);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5097
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5098
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5099
/**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5100
 * Formats a string and arguments following it ala vsprintf()
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5101
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5102
 * format chars:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5103
 *   %j - format arg as JSON
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5104
 *   %o - format arg as JSON
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5105
 *   %c - format arg as ''
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5106
 *   %% - replace with '%'
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5107
 * any other char following % will format it's
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5108
 * arg via toString().
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5109
 *
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5110
 * for rationale, see FireBug's Console API:
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5111
 *    http://getfirebug.com/wiki/index.php/Console_API
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5112
 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5113
utils.vformat = function(formatString, args) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5114
    if (formatString === null || formatString === undefined) return "";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5115
    if (arguments.length == 1) return formatString.toString();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5116
    if (typeof formatString != "string") return formatString.toString();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5117
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5118
    var pattern = /(.*?)%(.)(.*)/;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5119
    var rest    = formatString;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5120
    var result  = [];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5121
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5122
    while (args.length) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5123
        var arg   = args.shift();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5124
        var match = pattern.exec(rest);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5125
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5126
        if (!match) break;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5127
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5128
        rest = match[3];
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5129
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5130
        result.push(match[1]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5131
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5132
        if (match[2] == '%') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5133
            result.push('%');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5134
            args.unshift(arg);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5135
            continue;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5136
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5137
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5138
        result.push(formatted(arg, match[2]));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5139
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5140
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5141
    result.push(rest);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5142
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5143
    return result.join('');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5144
};
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5145
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5146
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5147
function UUIDcreatePart(length) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5148
    var uuidpart = "";
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5149
    for (var i=0; i<length; i++) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5150
        var uuidchar = parseInt((Math.random() * 256), 10).toString(16);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5151
        if (uuidchar.length == 1) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5152
            uuidchar = "0" + uuidchar;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5153
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5154
        uuidpart += uuidchar;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5155
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5156
    return uuidpart;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5157
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5158
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5159
//------------------------------------------------------------------------------
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5160
function formatted(object, formatChar) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5161
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5162
    try {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5163
        switch(formatChar) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5164
            case 'j':
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5165
            case 'o': return JSON.stringify(object);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5166
            case 'c': return '';
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5167
        }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5168
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5169
    catch (e) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5170
        return "error JSON.stringify()ing argument: " + e;
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5171
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5172
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5173
    if ((object === null) || (object === undefined)) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5174
        return Object.prototype.toString.call(object);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5175
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5176
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5177
    return object.toString();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5178
}
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5179
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5180
});
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5181
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5182
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5183
window.cordova = require('cordova');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5184
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5185
// file: lib/scripts/bootstrap.js
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5186
(function (context) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5187
    var channel = require("cordova/channel"),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5188
        _self = {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5189
            boot: function () {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5190
                /**
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5191
                 * Create all cordova objects once page has fully loaded and native side is ready.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5192
                 */
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5193
                channel.join(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5194
                    var builder = require('cordova/builder'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5195
                        base = require('cordova/common'),
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5196
                        platform = require('cordova/platform');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5197
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5198
                    // Drop the common globals into the window object, but be nice and don't overwrite anything.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5199
                    builder.build(base.objects).intoButDontClobber(window);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5200
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5201
                    // Drop the platform-specific globals into the window object
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5202
                    // and clobber any existing object.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5203
                    builder.build(platform.objects).intoAndClobber(window);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5204
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5205
                    // Merge the platform-specific overrides/enhancements into
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5206
                    // the window object.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5207
                    if (typeof platform.merges !== 'undefined') {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5208
                        builder.build(platform.merges).intoAndMerge(window);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5209
                    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5210
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5211
                    // Call the platform-specific initialization
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5212
                    platform.initialize();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5213
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5214
                    // Fire event to notify that all objects are created
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5215
                    channel.onCordovaReady.fire();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5216
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5217
                    // Fire onDeviceReady event once all constructors have run and
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5218
                    // cordova info has been received from native side.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5219
                    channel.join(function() {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5220
                        require('cordova').fireDocumentEvent('deviceready');
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5221
                    }, channel.deviceReadyChannelsArray);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5222
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5223
                }, [ channel.onDOMContentLoaded, channel.onNativeReady ]);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5224
            }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5225
        };
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5226
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5227
    // boot up once native side is ready
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5228
    channel.onNativeReady.subscribeOnce(_self.boot);
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5229
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5230
    // _nativeReady is global variable that the native side can set
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5231
    // to signify that the native code is ready. It is a global since
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5232
    // it may be called before any cordova JS is ready.
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5233
    if (window._nativeReady) {
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5234
        channel.onNativeReady.fire();
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5235
    }
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5236
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5237
}(window));
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5238
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5239
b6a115568b52 Front IDILL:
bastiena
parents:
diff changeset
  5240
})();