Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Bower components Debian packages RPM packages NuGet packages

vipera-npm-registry / de-motifconnector-plugin   js

Repository URL to install this package:

Version: 1.2.1 

/ src / android / MotifConnector.java

package com.vipera.motifconnector;

import android.content.Context;
import android.util.Log;


import com.vipera.de.motifconnector.DEServerDelegate;
import com.vipera.de.motifconnector.DEServerRequest;
import com.vipera.de.motifconnector.DEServerResultFailure;
import com.vipera.de.motifconnector.DEServerResultSuccess;
import com.vipera.de.motifconnector.IDEServerManager;
import com.vipera.de.motifconnector.config.DEConnectorProvider;
import com.vipera.de.utility.preferences.ConfigPreferences;

import org.apache.cordova.CordovaInterface;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;

import org.apache.cordova.CordovaPreferences;
import org.apache.cordova.CordovaWebView;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;



/**
 * Motif connector plugin class
 */
public class MotifConnector extends CordovaPlugin {
    private IDEServerManager serverManager;

    @Override
    public void initialize(CordovaInterface cordova, CordovaWebView webView) {
        super.initialize(cordova, webView);
        ConfigPreferences configPreferences=new ConfigPreferences(preferences.getAll());
        DEConnectorProvider.initialize(cordova.getActivity().getApplicationContext(),configPreferences);
        serverManager=DEConnectorProvider.getSharedInstance();
    }

    @Override
    public boolean execute(String action, JSONArray args, final CallbackContext callbackContext) throws JSONException {
        if (action.equals("serverRequest")) {
            final JSONObject request = args.getJSONObject(0);
            cordova.getThreadPool().execute(new Runnable() {
                @Override
                public void run() {
                    serverRequest(request, callbackContext);
                }
            });
            return true;
        }
        return false;
    }

    private void serverRequest(JSONObject message, final CallbackContext callbackContext) {
        if (message != null && message.length()>0) {
            DEServerRequest request=serverManager.buildServerRequest(message);
            this.serverManager.Request(request, new DEServerDelegate() {
                @Override
                public void HandleSuccessResult(DEServerResultSuccess deServerResultSuccess, DEServerRequest deServerRequest) {
                    callbackContext.success(deServerResultSuccess.asJSONObject());
                }

                @Override
                public void onBeforeRetry(DEServerResultFailure deServerResultFailure, DEServerRequest deServerRequest, int tryCount, int retryDelay) {
                    //NOP
                }

                @Override
                public void HandleErrorResult(DEServerResultFailure deServerResultFailure, DEServerRequest deServerRequest) {
                    JSONObject fail=createFailResponse(deServerResultFailure);
                    callbackContext.error(fail);
                }
            });
        } else {
            callbackContext.error("Expected one non-empty JSONObject");
        }
    }

    private JSONObject createFailResponse(DEServerResultFailure deServerResultFailure) {
        JSONObject response=new JSONObject();
        try {
            response.put("ERROR_CODE",deServerResultFailure.getErrorCode());
            response.put("ERROR_MESSAGE",deServerResultFailure.getFailureDescription());
        } catch (JSONException e) {
            Log.e(MotifConnector.class.getName(),"JSON_EXCEPTION",e);
            return createGenericError();
        }
        return response;
    }

    private JSONObject createGenericError() {
        JSONObject response=new JSONObject();
        try {
            response.put("ERROR_CODE","GENERIC_ERROR");
            response.put("ERROR_CODE","GENERIC_ERROR");
        } catch (JSONException e) {
            e.printStackTrace();
        }
        return response;
    }
}