com.keepe.plugins.cardio.CardIO.java Source code

Java tutorial

Introduction

Here is the source code for com.keepe.plugins.cardio.CardIO.java

Source

/**
 * CardIO.java
 * card.io Cordova plugin
 * @Copyright 2015 Keepe UP, Inc
 * @author Vishal <vishal@keepe.com>
 * MIT licensed
 */

package com.keepe.plugins.cardio;

import io.card.payment.CardIOActivity;

import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.PluginResult;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.content.Intent;
import android.graphics.Color;

public class CardIO extends CordovaPlugin {

    public CallbackContext callbackContext;
    public static JSONObject cardNumber = null;
    public static Boolean expiry;
    public static Boolean cvv;
    public static Boolean zip;
    public static Boolean confirm;
    public static Boolean hideLogo;
    public static Boolean suppressManual;
    public static int guideColor;

    @Override
    public boolean execute(String action, JSONArray args, CallbackContext callbackContext) {

        // TODO Auto-generated method stub
        this.callbackContext = callbackContext;

        try {
            // set configurations
            if (action.equals("scan")) {
                JSONObject config = args.getJSONObject(0);
                expiry = config.getBoolean("expiry");
                cvv = config.getBoolean("cvv");
                zip = config.getBoolean("zip");
                confirm = config.getBoolean("suppressConfirm");
                hideLogo = config.getBoolean("hideLogo");
                suppressManual = config.getBoolean("suppressManual");
                guideColor = Color.parseColor(config.getString("guideColor"));

                Intent scanIntent = new Intent(cordova.getActivity(), CardIOMain.class);
                cordova.getActivity().startActivity(scanIntent);

                PluginResult cardData = new PluginResult(PluginResult.Status.NO_RESULT);
                cardData.setKeepCallback(true);
                callbackContext.sendPluginResult(cardData);
                return true;
            } else if (action.equals("canScan")) {
                if (CardIOActivity.canReadCardWithCamera()) {
                    callbackContext.success("PASS");
                    return true;
                } else {
                    callbackContext.error("FAIL");
                    return false;
                }
            }
            return false;
        } catch (JSONException e) {
            e.printStackTrace();

            PluginResult res = new PluginResult(PluginResult.Status.JSON_EXCEPTION);
            callbackContext.sendPluginResult(res);
            return false;
        }

    }

    @Override
    public void onResume(boolean multitasking) {
        super.onResume(multitasking);

        // send plugin result if success
        JSONObject mImagepath = cardNumber;
        if (mImagepath != null) {
            PluginResult cardData = new PluginResult(PluginResult.Status.OK, cardNumber);
            cardData.setKeepCallback(false);
            callbackContext.sendPluginResult(cardData);
            cardNumber = null;
        } else {
            PluginResult cardData = new PluginResult(PluginResult.Status.NO_RESULT);
            cardData.setKeepCallback(false);
            callbackContext.sendPluginResult(cardData);
        }

    }
}