com.phonegap.ContactManager.java Source code

Java tutorial

Introduction

Here is the source code for com.phonegap.ContactManager.java

Source

/*
 * PhoneGap is available under *either* the terms of the modified BSD license *or* the
 * MIT License (2008). See http://opensource.org/licenses/alphabetical for full text.
 * 
 * Copyright (c) 2005-2010, Nitobi Software Inc.
 * Copyright (c) 2010, IBM Corporation
 */
package com.phonegap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import com.phonegap.api.Plugin;
import com.phonegap.api.PluginResult;
import android.util.Log;

public class ContactManager extends Plugin {

    private static ContactAccessor contactAccessor;
    private static final String LOG_TAG = "Contact Query";

    /**
     * Constructor.
     */
    public ContactManager() {
    }

    /**
     * Executes the request and returns PluginResult.
     * 
     * @param action       The action to execute.
     * @param args          JSONArry of arguments for the plugin.
     * @param callbackId   The callback id used when calling back into JavaScript.
     * @return             A PluginResult object with a status and message.
     */
    public PluginResult execute(String action, JSONArray args, String callbackId) {
        if (contactAccessor == null) {
            contactAccessor = ContactAccessor.getInstance(webView, ctx);
        }
        PluginResult.Status status = PluginResult.Status.OK;
        String result = "";

        try {
            if (action.equals("search")) {
                JSONArray res = contactAccessor.search(args.getJSONArray(0), args.optJSONObject(1));
                return new PluginResult(status, res, "navigator.service.contacts.cast");
            } else if (action.equals("save")) {
                return new PluginResult(status, contactAccessor.save(args.getJSONObject(0)));
            } else if (action.equals("remove")) {
                if (contactAccessor.remove(args.getString(0))) {
                    return new PluginResult(status, result);
                } else {
                    JSONObject r = new JSONObject();
                    r.put("code", 2);
                    return new PluginResult(PluginResult.Status.ERROR, r);
                }
            }
            return new PluginResult(status, result);
        } catch (JSONException e) {
            Log.e(LOG_TAG, e.getMessage(), e);
            return new PluginResult(PluginResult.Status.JSON_EXCEPTION);
        }
    }
}