summaryrefslogtreecommitdiff
path: root/bindings/cordova/org.crosswire.sword.cordova.SWORD/www/SWORD.js
diff options
context:
space:
mode:
Diffstat (limited to 'bindings/cordova/org.crosswire.sword.cordova.SWORD/www/SWORD.js')
-rw-r--r--bindings/cordova/org.crosswire.sword.cordova.SWORD/www/SWORD.js414
1 files changed, 414 insertions, 0 deletions
diff --git a/bindings/cordova/org.crosswire.sword.cordova.SWORD/www/SWORD.js b/bindings/cordova/org.crosswire.sword.cordova.SWORD/www/SWORD.js
new file mode 100644
index 0000000..3362359
--- /dev/null
+++ b/bindings/cordova/org.crosswire.sword.cordova.SWORD/www/SWORD.js
@@ -0,0 +1,414 @@
+var argscheck = require('cordova/argscheck'),
+ channel = require('cordova/channel'),
+ utils = require('cordova/utils'),
+ exec = require('cordova/exec'),
+ cordova = require('cordova');
+
+channel.createSticky('onSWORDReady');
+// Tell cordova channel to wait on the CordovaInfoReady event
+channel.waitForInitialization('onSWORDReady');
+
+
+function InstallMgr() {
+}
+
+InstallMgr.prototype.setUserDisclaimerConfirmed = function(callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "InstallMgr_setUserDisclaimerConfirmed", []
+ );
+ return retVal;
+}
+
+InstallMgr.prototype.syncConfig = function(callback, progressNotify) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "InstallMgr_syncConfig", [progressNotify]
+ );
+ return retVal;
+}
+
+
+InstallMgr.prototype.getRemoteSources = function(callback) {
+ var retVal = [];
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "InstallMgr_getRemoteSources", []
+ );
+ return retVal;
+}
+
+
+InstallMgr.prototype.refreshRemoteSource = function(sourceName, callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "InstallMgr_refreshRemoteSource", [sourceName]
+ );
+ return retVal;
+}
+
+InstallMgr.prototype.getRemoteModInfoList = function(sourceName, callback) {
+ var retVal = [];
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "InstallMgr_getRemoteModInfoList", [sourceName]
+ );
+ return retVal;
+}
+
+// callback({ status : preStatus|update|complete, totalBytes : n, completedBytes : n, message : displayable });
+InstallMgr.prototype.remoteInstallModule = function(sourceName, modName, callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "InstallMgr_remoteInstallModule", [sourceName, modName]
+ );
+ return retVal;
+}
+
+InstallMgr.prototype.uninstallModule = function(modName, callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "InstallMgr_uninstallModule", [modName]
+ );
+ return retVal;
+}
+
+function SWModule(modInfo) {
+ this.name = modInfo.name;
+ this.description = modInfo.description;
+ this.category = modInfo.category;
+ this.direction = modInfo.direction;
+ this.language = modInfo.language;
+ this.font = modInfo.font;
+ this.shortCopyright = modInfo.shortCopyright;
+ this.shortPromo = modInfo.shortPromo;
+}
+
+SWModule.prototype.SEARCHTYPE_REGEX = 1;
+SWModule.prototype.SEARCHTYPE_PHRASE = -1;
+SWModule.prototype.SEARCHTYPE_MULTIWORD = -2;
+SWModule.prototype.SEARCHTYPE_ENTRYATTR = -3;
+SWModule.prototype.SEARCHTYPE_LUCENE = -4;
+
+SWModule.prototype.SEARCHOPTION_ICASE = 2;
+
+
+SWModule.prototype.setKeyText = function(keyText, callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_setKeyText", [this.name, keyText]
+ );
+ return retVal;
+}
+
+SWModule.prototype.search = function(expression, searchType, flags, scope, callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_search", [this.name, expression, searchType, flags, scope]
+ );
+ return retVal;
+}
+
+SWModule.prototype.getKeyText = function(callback) {
+ var retVal = null;
+ exec(callback?callback:function(m) { retVal = m; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_getKeyText", [this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.getRenderText = function(callback) {
+ var retVal = null;
+ exec(callback?callback:function(m) { retVal = m; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_getRenderText", [this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.shareVerse = function(callback) {
+ var retVal = null;
+ exec(callback?callback:function(m) { retVal = m; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_sendText", [this.name]
+ );
+ return retVal;
+}
+
+/*
+ * masterMod - SWModule to use for traversing chapter; null if self
+ * useful for parallel display with alternate v11ns
+ *
+ * returns [ { verse : verseKey, preVerse : 'text', text : 'text' }, ... }
+ */
+SWModule.prototype.getRenderChapter = function(masterMod, callback) {
+ var retVal = null;
+ if (!masterMod) masterMod = this;
+ exec(callback?callback:function(m) { retVal = m; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_getRenderChapter", [masterMod.name, this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.getRenderHeader = function(callback) {
+ var retVal = null;
+ exec(callback?callback:function(m) { retVal = m; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_getRenderHeader", [this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.getKeyChildren = function(callback) {
+ var retVal = [];
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_getKeyChildren", [this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.getVerseKey = function(callback) {
+ var retVal = {};
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_getVerseKey", [this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.getConfigEntry = function(key, callback) {
+ var retVal = '';
+ exec(callback?callback:function(m) { if (m) retVal = m; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_getConfigEntry", [this.name, key]
+ );
+ return retVal;
+}
+
+
+SWModule.prototype.popError = function(callback) {
+ var retVal = 0;
+ exec(callback?callback:function(m) { retVal = m; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_popError", [this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.getEntryAttribute = function(level1Key, level2Key, level3Key, isFiltered, callback) {
+ var retVal = [];
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_getEntryAttribute", [this.name, level1Key, level2Key, level3Key, isFiltered]
+ );
+ return retVal;
+}
+
+SWModule.prototype.next = function(callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_next", [this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.previous = function(callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_previous", [this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.begin = function(callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_begin", [this.name]
+ );
+ return retVal;
+}
+
+SWModule.prototype.getBookNames = function(callback) {
+ var retVal = [];
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWModule_getBookNames", [this.name]
+ );
+ return retVal;
+}
+
+function SWMgr() {
+}
+
+
+SWMgr.prototype.getModInfoList = function(callback) {
+ if (!this.hasOwnProperty('_lastModInfoList')) this._lastModInfoList = [];
+ exec(function(m) { if (m && m.length > 0) this._lastModInfoList = m; if (callback) callback(m); },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_getModInfoList", []
+ );
+ return this._lastModInfoList;
+}
+
+SWMgr.prototype.getModuleByName = function(modName, callback) {
+ var mod = null;
+ exec(function(m) { if (m.name) mod = new SWModule(m); if (callback) callback(mod); },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_getModuleByName", [modName]
+ );
+ return mod;
+}
+
+SWMgr.prototype.getExtraConfigSections = function(callback) {
+ var retVal = [];
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_getExtraConfigSections", []
+ );
+ return retVal;
+}
+
+SWMgr.prototype.getExtraConfigKeys = function(section, callback) {
+ var retVal = [];
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_getExtraConfigKeys", [section]
+ );
+ return retVal;
+}
+
+SWMgr.prototype.getExtraConfigValue = function(section, key, callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_getExtraConfigValue", [section, key]
+ );
+ return retVal;
+}
+
+SWMgr.prototype.setExtraConfigValue = function(section, key, value, callback) {
+ exec(callback?callback:function() {},
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_setExtraConfigValue", [section, key, value]
+ );
+}
+
+SWMgr.prototype.addExtraConfig = function(confBlob, callback) {
+ var retVal = null;
+ exec(callback?callback:function(r) { retVal = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_addExtraConfig", [confBlob]
+ );
+ return retVal;
+}
+
+SWMgr.prototype.registerBibleSyncListener = function(callback) {
+ exec(callback,
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_registerBibleSyncListener", []
+ );
+}
+
+SWMgr.prototype.sendBibleSyncMessage = function(osisRef, callback) {
+ exec(callback?callback:function() {},
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_sendBibleSyncMessage", [osisRef]
+ );
+}
+
+SWMgr.prototype.setJavascript = function(val, callback) {
+ exec(callback?callback:function() {},
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "SWMgr_setJavascript", [val]
+ );
+}
+
+function HTTPUtils() {}
+
+HTTPUtils.prototype.METHOD_GET = 0;
+HTTPUtils.prototype.METHOD_POST = 1;
+
+HTTPUtils.prototype.makeRequest = function(url, postData, callback, method) {
+ var result = null;
+ if (!method) method = this.METHOD_POST;
+ exec(callback?callback:function(r) { if (r && r.length > 0) result = r; },
+ function(err) { utils.alert('[ERROR] problem: ' + err); },
+ "SWORD", "HTTPUtils_makeRequest", [url, postData, method]
+ );
+ return result;
+}
+
+
+
+/*
+ public native String getPrefixPath();
+ public native String getConfigPath();
+ public native void setGlobalOption(String option, String value);
+ public native String getGlobalOption(String option);
+ public native String getGlobalOptionTip(String option);
+ public native String filterText(String filterName, String text);
+ public native String[] getGlobalOptions();
+ public native String[] getGlobalOptionValues(String option);
+ public native void setCipherKey(String modName, String key);
+ public native void setJavascript(boolean val);
+ public native String[] getAvailableLocales();
+ public native void setDefaultLocale(String name);
+*/
+
+
+/**
+ * This is the SWORD namespace and access to singleton SWMgr, InstallMgr, and HTTPUtils.
+ * @constructor
+ */
+function SWORD() {
+
+ var me = this;
+
+ this.available = false;
+ this.version = null;
+
+ this.installMgr = new InstallMgr();
+ this.mgr = new SWMgr();
+ this.httpUtils = new HTTPUtils();
+
+ channel.onCordovaReady.subscribe(function() {
+ me.init(function(info) {
+ me.available = true;
+ me.version = info.version;
+ channel.onSWORDReady.fire();
+ },function(e) {
+ me.available = false;
+ utils.alert("[ERROR] Error initializing SWORD: " + e);
+ });
+ });
+}
+
+
+SWORD.prototype.CATEGORY_BIBLES = "Biblical Texts";
+SWORD.prototype.CATEGORY_COMMENTARIES = "Commentaries";
+SWORD.prototype.CATEGORY_LEXDICTS = "Lexicons / Dictionaries";
+SWORD.prototype.CATEGORY_GENBOOKS = "Generic Books";
+SWORD.prototype.CATEGORY_DAILYDEVOS = "Daily Devotional";
+
+
+SWORD.prototype.init = function(successCallback, errorCallback) {
+ exec(successCallback, errorCallback, "SWORD", "initSWORD", []);
+};
+
+
+module.exports = new SWORD();
+
+