mirror of
https://github.com/apache/cordova-android.git
synced 2025-01-19 07:02:51 +08:00
Adding a cast for contacts.find()
This commit is contained in:
parent
c1a87ebaaa
commit
1c5aa6cd00
@ -242,7 +242,7 @@ var Contacts = function() {
|
|||||||
* @return array of Contacts matching search criteria
|
* @return array of Contacts matching search criteria
|
||||||
*/
|
*/
|
||||||
Contacts.prototype.find = function(fields, successCB, errorCB, options) {
|
Contacts.prototype.find = function(fields, successCB, errorCB, options) {
|
||||||
PhoneGap.exec(successCB, errorCB, "Contacts", "search", [fields, options], navigator.service.contacts.cast);
|
PhoneGap.exec(successCB, errorCB, "Contacts", "search", [fields, options]);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -270,12 +270,13 @@ Contacts.prototype.create = function(properties) {
|
|||||||
* @param jsonArray an array of JSON Objects that need to be converted to Contact objects.
|
* @param jsonArray an array of JSON Objects that need to be converted to Contact objects.
|
||||||
* @returns an array of Contact objects
|
* @returns an array of Contact objects
|
||||||
*/
|
*/
|
||||||
Contacts.prototype.cast = function(jsonArray) {
|
Contacts.prototype.cast = function(pluginResult) {
|
||||||
var contacts = new Array();
|
var contacts = new Array();
|
||||||
for (var i=0; i<jsonArray.length; i++) {
|
for (var i=0; i<pluginResult.message.length; i++) {
|
||||||
contacts.push(navigator.service.contacts.create(jsonArray[i]));
|
contacts.push(navigator.service.contacts.create(pluginResult.message[i]));
|
||||||
}
|
}
|
||||||
return contacts;
|
pluginResult.message = contacts;
|
||||||
|
return pluginResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -423,11 +423,11 @@ PhoneGap.callbackStatus = {
|
|||||||
* @param {String[]} [args] Zero or more arguments to pass to the method
|
* @param {String[]} [args] Zero or more arguments to pass to the method
|
||||||
* @param {String} jsClass The class to cast the return as
|
* @param {String} jsClass The class to cast the return as
|
||||||
*/
|
*/
|
||||||
PhoneGap.exec = function(success, fail, service, action, args, cast) {
|
PhoneGap.exec = function(success, fail, service, action, args) {
|
||||||
try {
|
try {
|
||||||
var callbackId = service + PhoneGap.callbackId++;
|
var callbackId = service + PhoneGap.callbackId++;
|
||||||
if (success || fail) {
|
if (success || fail) {
|
||||||
PhoneGap.callbacks[callbackId] = {success:success, fail:fail, cast:cast};
|
PhoneGap.callbacks[callbackId] = {success:success, fail:fail};
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note: Device returns string, but for some reason emulator returns object - so convert to string.
|
// Note: Device returns string, but for some reason emulator returns object - so convert to string.
|
||||||
@ -443,12 +443,7 @@ PhoneGap.exec = function(success, fail, service, action, args, cast) {
|
|||||||
// If there is a success callback, then call it now with returned value
|
// If there is a success callback, then call it now with returned value
|
||||||
if (success) {
|
if (success) {
|
||||||
try {
|
try {
|
||||||
if (cast) {
|
success(v.message);
|
||||||
success(cast(v.message));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
success(v.message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
console.log("Error in success callback: "+callbackId+" = "+e);
|
console.log("Error in success callback: "+callbackId+" = "+e);
|
||||||
@ -510,12 +505,7 @@ PhoneGap.callbackSuccess = function(callbackId, args) {
|
|||||||
if (args.status == PhoneGap.callbackStatus.OK) {
|
if (args.status == PhoneGap.callbackStatus.OK) {
|
||||||
try {
|
try {
|
||||||
if (PhoneGap.callbacks[callbackId].success) {
|
if (PhoneGap.callbacks[callbackId].success) {
|
||||||
if (PhoneGap.callbacks[callbackId].cast) {
|
PhoneGap.callbacks[callbackId].success(args.message);
|
||||||
PhoneGap.callbacks[callbackId].success(PhoneGap.callbacks[callbackId].cast(args.message));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
PhoneGap.callbacks[callbackId].success(args.message);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
|
@ -43,7 +43,7 @@ public class ContactManager extends Plugin {
|
|||||||
try {
|
try {
|
||||||
if (action.equals("search")) {
|
if (action.equals("search")) {
|
||||||
JSONArray res = contactAccessor.search(args.getJSONArray(0), args.getJSONObject(1));
|
JSONArray res = contactAccessor.search(args.getJSONArray(0), args.getJSONObject(1));
|
||||||
return new PluginResult(status, res);
|
return new PluginResult(status, res, "navigator.service.contacts.cast");
|
||||||
}
|
}
|
||||||
else if (action.equals("save")) {
|
else if (action.equals("save")) {
|
||||||
return new PluginResult(status, contactAccessor.save(args.getJSONObject(0)));
|
return new PluginResult(status, contactAccessor.save(args.getJSONObject(0)));
|
||||||
|
@ -14,6 +14,7 @@ public class PluginResult {
|
|||||||
private final int status;
|
private final int status;
|
||||||
private final String message;
|
private final String message;
|
||||||
private boolean keepCallback = false;
|
private boolean keepCallback = false;
|
||||||
|
private String cast = null;
|
||||||
|
|
||||||
public PluginResult(Status status) {
|
public PluginResult(Status status) {
|
||||||
this.status = status.ordinal();
|
this.status = status.ordinal();
|
||||||
@ -25,6 +26,12 @@ public class PluginResult {
|
|||||||
this.message = JSONObject.quote(message);
|
this.message = JSONObject.quote(message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PluginResult(Status status, JSONArray message, String cast) {
|
||||||
|
this.status = status.ordinal();
|
||||||
|
this.message = message.toString();
|
||||||
|
this.cast = cast;
|
||||||
|
}
|
||||||
|
|
||||||
public PluginResult(Status status, JSONArray message) {
|
public PluginResult(Status status, JSONArray message) {
|
||||||
this.status = status.ordinal();
|
this.status = status.ordinal();
|
||||||
this.message = message.toString();
|
this.message = message.toString();
|
||||||
@ -71,7 +78,12 @@ public class PluginResult {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public String toSuccessCallbackString(String callbackId) {
|
public String toSuccessCallbackString(String callbackId) {
|
||||||
return "PhoneGap.callbackSuccess('"+callbackId+"', " + this.getJSONString() + " );";
|
StringBuffer buf = new StringBuffer("");
|
||||||
|
if (cast != null) {
|
||||||
|
buf.append("var temp = "+cast+"("+this.getJSONString() + ");\n");
|
||||||
|
}
|
||||||
|
buf.append("PhoneGap.callbackSuccess('"+callbackId+"', temp );");
|
||||||
|
return buf.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toErrorCallbackString(String callbackId) {
|
public String toErrorCallbackString(String callbackId) {
|
||||||
|
Loading…
Reference in New Issue
Block a user