sync from upstream

This commit is contained in:
EddyVerbruggen 2015-12-08 12:35:37 +01:00
commit 23d35404b5
6 changed files with 18 additions and 5 deletions

View File

@ -186,7 +186,8 @@ called again. You can distinguish between those events of course:
message: "hey there", message: "hey there",
duration: "short", duration: "short",
position: "bottom", position: "bottom",
addPixelsY: -40 // added a negative value to move it up a bit (default 0) addPixelsY: -40, // (optional) added a negative value to move it up a bit (default 0)
data: {'foo','bar'} // (optional) pass in a JSON object here (it will be sent back in the success callback below)
}, },
// implement the success callback // implement the success callback
function(result) { function(result) {
@ -194,6 +195,7 @@ called again. You can distinguish between those events of course:
console.log("The toast was tapped"); console.log("The toast was tapped");
console.log("Event: " + result.event); // will be defined, with a value of "touch" when it was tapped by the user console.log("Event: " + result.event); // will be defined, with a value of "touch" when it was tapped by the user
console.log("Message: " + result.message); // will be equal to the message you passed in console.log("Message: " + result.message); // will be equal to the message you passed in
console.log("data.foo: " + result.data.foo); // .. retrieve passed in data here
} else { } else {
console.log("The toast has been shown"); console.log("The toast has been shown");
} }

View File

@ -1,6 +1,6 @@
{ {
"name": "cordova-plugin-x-toast", "name": "cordova-plugin-x-toast",
"version": "2.3.0", "version": "2.3.1",
"description": "This plugin allows you to show a Toast. A Toast is a little non intrusive buttonless popup which automatically disappears.", "description": "This plugin allows you to show a Toast. A Toast is a little non intrusive buttonless popup which automatically disappears.",
"cordova": { "cordova": {
"id": "cordova-plugin-x-toast", "id": "cordova-plugin-x-toast",

View File

@ -55,6 +55,7 @@ public class Toast extends CordovaPlugin {
final String duration = options.getString("duration"); final String duration = options.getString("duration");
final String position = options.getString("position"); final String position = options.getString("position");
final int addPixelsY = options.has("addPixelsY") ? options.getInt("addPixelsY") : 0; final int addPixelsY = options.has("addPixelsY") ? options.getInt("addPixelsY") : 0;
final JSONObject data = options.has("data") ? options.getJSONObject("data") : null;
cordova.getActivity().runOnUiThread(new Runnable() { cordova.getActivity().runOnUiThread(new Runnable() {
public void run() { public void run() {
@ -88,6 +89,7 @@ public class Toast extends CordovaPlugin {
try { try {
json.put("event", "touch"); json.put("event", "touch");
json.put("message", message); json.put("message", message);
json.put("data", data);
} catch (JSONException e) { } catch (JSONException e) {
e.printStackTrace(); e.printStackTrace();
} }

View File

@ -6,7 +6,7 @@
// each makeToast method creates a view and displays it as toast // each makeToast method creates a view and displays it as toast
- (void)makeToast:(NSString *)message; - (void)makeToast:(NSString *)message;
- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position; - (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position;
- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position addPixelsY:(int)addPixelsY commandDelegate:(id <CDVCommandDelegate>)commandDelegate callbackId:(NSString *)callbackId; - (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position addPixelsY:(int)addPixelsY data:(NSDictionary*)data commandDelegate:(id <CDVCommandDelegate>)commandDelegate callbackId:(NSString *)callbackId;
- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position image:(UIImage *)image; - (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position image:(UIImage *)image;
- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title; - (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title;
- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title image:(UIImage *)image; - (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title image:(UIImage *)image;

View File

@ -52,6 +52,7 @@ static UIView *prevToast = NULL;
static id commandDelegate; static id commandDelegate;
static id callbackId; static id callbackId;
static id msg; static id msg;
static id data;
@interface UIView (ToastPrivate) @interface UIView (ToastPrivate)
@ -66,6 +67,7 @@ static id msg;
@implementation UIView (Toast) @implementation UIView (Toast)
#pragma mark - Toast Methods #pragma mark - Toast Methods
- (void)makeToast:(NSString *)message { - (void)makeToast:(NSString *)message {
@ -77,10 +79,11 @@ static id msg;
[self showToast:toast duration:duration position:position]; [self showToast:toast duration:duration position:position];
} }
- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position addPixelsY:(int)addPixelsY commandDelegate:(id <CDVCommandDelegate>)_commandDelegate callbackId:(NSString *)_callbackId { - (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position addPixelsY:(int)addPixelsY data:(NSDictionary*)_data commandDelegate:(id <CDVCommandDelegate>)_commandDelegate callbackId:(NSString *)_callbackId {
commandDelegate = _commandDelegate; commandDelegate = _commandDelegate;
callbackId = _callbackId; callbackId = _callbackId;
msg = message; msg = message;
data = _data;
UIView *toast = [self viewForMessage:message title:nil image:nil]; UIView *toast = [self viewForMessage:message title:nil image:nil];
[self showToast:toast duration:duration position:position addedPixelsY:addPixelsY]; [self showToast:toast duration:duration position:position addedPixelsY:addPixelsY];
} }
@ -178,7 +181,11 @@ static id msg;
[self hideToast:recognizer.view]; [self hideToast:recognizer.view];
// also send an event back to JS // also send an event back to JS
NSDictionary *dict = [[NSDictionary alloc] initWithObjectsAndKeys:msg, @"message", @"touch", @"event", nil]; NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithObjectsAndKeys:msg, @"message", @"touch", @"event", nil];
if (data != nil) {
[dict setObject:data forKey:@"data"];
}
CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:dict]; CDVPluginResult* pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsDictionary:dict];
[commandDelegate sendPluginResult:pluginResult callbackId:callbackId]; [commandDelegate sendPluginResult:pluginResult callbackId:callbackId];
} }

View File

@ -11,6 +11,7 @@
NSString *message = [options objectForKey:@"message"]; NSString *message = [options objectForKey:@"message"];
NSString *duration = [options objectForKey:@"duration"]; NSString *duration = [options objectForKey:@"duration"];
NSString *position = [options objectForKey:@"position"]; NSString *position = [options objectForKey:@"position"];
NSDictionary *data = [options objectForKey:@"data"];
NSNumber *addPixelsY = [options objectForKey:@"addPixelsY"]; NSNumber *addPixelsY = [options objectForKey:@"addPixelsY"];
if (![position isEqual: @"top"] && ![position isEqual: @"center"] && ![position isEqual: @"bottom"]) { if (![position isEqual: @"top"] && ![position isEqual: @"center"] && ![position isEqual: @"bottom"]) {
@ -34,6 +35,7 @@
duration:durationInt duration:durationInt
position:position position:position
addPixelsY:addPixelsY == nil ? 0 : [addPixelsY intValue] addPixelsY:addPixelsY == nil ? 0 : [addPixelsY intValue]
data:data
commandDelegate:self.commandDelegate commandDelegate:self.commandDelegate
callbackId:command.callbackId]; callbackId:command.callbackId];