List of usage examples for org.apache.cordova CordovaArgs opt
public Object opt(int index)
From source file:com.microsoft.c3p.cordova.C3PCordovaPlugin.java
License:Open Source License
@Override public boolean execute(String action, CordovaArgs args, final CallbackContext callbackContext) throws JSONException { try {// ww w . j a v a 2s . co m if (JavaScriptBridge.CallType.GET_STATIC_PROPERTY.equals(action)) { String type = args.getString(0); String property = args.getString(1); JavaScriptValue value = this.bridge.getStaticProperty(type, property); C3PCordovaPlugin.returnResult(value, callbackContext); } else if (JavaScriptBridge.CallType.SET_STATIC_PROPERTY.equals(action)) { String type = args.getString(0); String property = args.getString(1); Object value = args.opt(2); this.bridge.setStaticProperty(type, property, JSValue.fromObject(value)); callbackContext.success(); } else if (JavaScriptBridge.CallType.INVOKE_STATIC_METHOD.equals(action)) { String type = args.getString(0); String method = args.getString(1); JSONArray arguments = args.getJSONArray(2); ChainablePromise<JavaScriptValue> returnValue = this.bridge.invokeStaticMethod(type, method, JSValue.fromObject(arguments)); C3PCordovaPlugin.returnFutureResult(returnValue, callbackContext, false); } else if (JavaScriptBridge.CallType.ADD_STATIC_EVENT_LISTENER.equals(action)) { String type = args.getString(0); String event = args.getString(1); Consumer<JavaScriptValue> eventListener = new Consumer<JavaScriptValue>() { @Override public void accept(JavaScriptValue eventObject) { C3PCordovaPlugin.returnResult(eventObject, callbackContext, true); } }; this.bridge.addStaticEventListener(type, event, eventListener); this.eventListenerMap.put(callbackContext.getCallbackId(), eventListener); C3PCordovaPlugin.returnResult(JSValue.fromString(callbackContext.getCallbackId()), callbackContext, true); } else if (JavaScriptBridge.CallType.REMOVE_STATIC_EVENT_LISTENER.equals(action)) { String type = args.getString(0); String event = args.getString(1); String registrationToken = args.getString(2); Consumer<JavaScriptValue> eventListener = this.eventListenerMap.get(registrationToken); if (eventListener != null) { this.bridge.removeStaticEventListener(type, event, eventListener); this.eventListenerMap.remove(registrationToken); } else { Log.w(TAG, "Event registration not found for callbackId: " + registrationToken); } callbackContext.success(); } else if (JavaScriptBridge.CallType.CREATE_INSTANCE.equals(action)) { String type = args.getString(0); JSONArray arguments = args.getJSONArray(1); JavaScriptValue instance = this.bridge.createInstance(type, JSValue.fromObject(arguments)); callbackContext.success((JSONObject) JSValue.toObject(instance)); } else if (JavaScriptBridge.CallType.RELEASE_INSTANCE.equals(action)) { JSONObject instance = args.getJSONObject(0); this.bridge.releaseInstance(JSValue.fromObject(instance)); callbackContext.success(); } else if (JavaScriptBridge.CallType.GET_PROPERTY.equals(action)) { JSONObject instance = args.getJSONObject(0); String property = args.getString(1); JavaScriptValue value = this.bridge.getProperty(JSValue.fromObject(instance), property); C3PCordovaPlugin.returnResult(value, callbackContext); } else if (JavaScriptBridge.CallType.SET_PROPERTY.equals(action)) { JSONObject instance = args.getJSONObject(0); String property = args.getString(1); Object value = args.opt(2); this.bridge.setProperty(JSValue.fromObject(instance), property, JSValue.fromObject(value)); callbackContext.success(); } else if (JavaScriptBridge.CallType.INVOKE_METHOD.equals(action)) { JSONObject instance = args.getJSONObject(0); String method = args.getString(1); JSONArray arguments = args.getJSONArray(2); ChainablePromise<JavaScriptValue> returnValue = this.bridge .invokeMethod(JSValue.fromObject(instance), method, JSValue.fromObject(arguments)); C3PCordovaPlugin.returnFutureResult(returnValue, callbackContext, false); } else if (JavaScriptBridge.CallType.ADD_EVENT_LISTENER.equals(action)) { JSONObject instance = args.getJSONObject(0); String event = args.getString(1); Consumer<JavaScriptValue> eventListener = new Consumer<JavaScriptValue>() { @Override public void accept(JavaScriptValue eventObject) { C3PCordovaPlugin.returnResult(eventObject, callbackContext, true); } }; this.bridge.addEventListener(JSValue.fromObject(instance), event, eventListener); this.eventListenerMap.put(callbackContext.getCallbackId(), eventListener); C3PCordovaPlugin.returnResult(JSValue.fromString(callbackContext.getCallbackId()), callbackContext, true); } else if (JavaScriptBridge.CallType.REMOVE_EVENT_LISTENER.equals(action)) { JSONObject instance = args.getJSONObject(0); String event = args.getString(1); String registrationToken = args.getString(2); Consumer<JavaScriptValue> eventListener = this.eventListenerMap.get(registrationToken); if (eventListener != null) { this.bridge.removeEventListener(JSValue.fromObject(instance), event, eventListener); this.eventListenerMap.remove(registrationToken); } else { Log.w(TAG, "Event registration not found for callbackId: " + registrationToken); } callbackContext.success(); } else { throw new IllegalArgumentException("Invalid action: " + action); } } catch (IllegalArgumentException iaex) { throw new RuntimeException(iaex); } catch (InvocationTargetException itex) { throw new RuntimeException(itex.getTargetException()); } return true; }