Subversion Repositories SmartDukaan

Rev

Blame | Last modification | View Log | RSS feed



var keyboard,
        resultObjs = {},
        threadCallback = null,
   _utils = require("../../lib/utils");
   _event = require("../../lib/event");
    _webview = require("../../lib/webview");




module.exports = {

        // Code can be declared and used outside the module.exports object,
        // but any functions to be called by client.js need to be declared
        // here in this object.

        // These methods call into JNEXT.Keyboard which handles the
        // communication through the JNEXT plugin to keyboard_js.cpp
        startService: function (success, fail, args, env) {
        var result = new PluginResult(args, env);
                
        result.ok(keyboard.getInstance().startService(), false);
        },
        show: function (success, fail, args, env) {
                var result = new PluginResult(args, env);
                
                result.ok(keyboard.getInstance().showKeyboard(), false);
        },
        close: function (success, fail, args, env) {
        var result = new PluginResult(args, env);
                
        result.ok(keyboard.getInstance().closeKeyboard(), false);
        }
};

keyboardShow = function(a){
        _webview.executeJavascript("cordova.plugins.Keyboard.isVisible = true");
        _webview.executeJavascript("cordova.fireDocumentEvent('native.keyboardshow',"+a+")");
         
}
keyboardHide = function(){
        _webview.executeJavascript("cordova.plugins.Keyboard.isVisible = false");
        _webview.executeJavascript("cordova.fireDocumentEvent('native.keyboardhide','')");
        
}
onStart = function() {
                _webview.executeJavascript("cordova.exec("+null+", "+null+", 'Keyboard', 'startService', '')");
        }

setTimeout(onStart,2000);

///////////////////////////////////////////////////////////////////
// JavaScript wrapper for JNEXT plugin for connection
///////////////////////////////////////////////////////////////////

JNEXT.Keyboard = function () {
        var self = this,
                hasInstance = false;

        self.getId = function () {
                return self.m_id;
        };

        self.init = function () {
                if (!JNEXT.require("libKeyboard")) {
                        return false;
                }

                self.m_id = JNEXT.createObject("libKeyboard.Keyboard_JS");

                if (self.m_id === "") {
                        return false;
                }

                JNEXT.registerEvents(self);
        };

        // ************************
        // Enter your methods here
        // ************************

        // calls into InvokeMethod(string command) in keyboard_js.cpp
        self.startService = function () {
                return JNEXT.invoke(self.m_id, "startService");
        };
        self.showKeyboard = function () {
                return JNEXT.invoke(self.m_id, "showKeyboard");
        };
        self.closeKeyboard = function () {
                return JNEXT.invoke(self.m_id, "closeKeyboard");
        };

        self.onEvent = function (strData)       {       // Fired by the Event framework (used by asynchronous callbacks)
                var arData = strData.split(" "),
        strEventDesc = arData[0],
        jsonData;

        if (strEventDesc === "native.keyboardshow") {
                        jsonData = arData.slice(1, arData.length).join(" ");
                        keyboardShow(jsonData);
                        
    }
    else if (strEventDesc === "native.keyboardhide") {           
                        keyboardHide();
    }

        };

        // Thread methods
        self.keyboardStartThread = function (callbackId) {
                return JNEXT.invoke(self.m_id, "keyboardStartThread " + callbackId);
        };
        self.keyboardStopThread = function () {
                return JNEXT.invoke(self.m_id, "keyboardStopThread");
        };

        // ************************
        // End of methods to edit
        // ************************
        self.m_id = "";

        self.getInstance = function () {
                if (!hasInstance) {
                        hasInstance = true;
                        self.init();
                }
                return self;
        };

};

keyboard = new JNEXT.Keyboard();