diff --git a/inspector/an-inspector/ForgeModule/src/io/trigger/forge/android/modules/notification/API.java b/inspector/an-inspector/ForgeModule/src/io/trigger/forge/android/modules/notification/API.java index b136f2e..eabcf13 100644 --- a/inspector/an-inspector/ForgeModule/src/io/trigger/forge/android/modules/notification/API.java +++ b/inspector/an-inspector/ForgeModule/src/io/trigger/forge/android/modules/notification/API.java @@ -104,12 +104,36 @@ public void onClick(DialogInterface dialog, int which) { task.success(false); } }); - + alertBuilder.create().show(); } - }); + }); } - + + public static void prompt(final ForgeTask task, @ForgeParam("title") final String title, @ForgeParam("body") final String body) { + task.performUI(new Runnable() { + @Override + public void run() { + AlertDialog.Builder alertBuilder = new AlertDialog.Builder(ForgeApp.getActivity()); + alertBuilder.setTitle(title); + alertBuilder.setMessage(body); + + final EditText input = new EditText(this); + alertBuilder.setView(input); + + alertBuilder.setCancelable(false); + alertBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + task.success(input.getText()); + } + }); + + alertBuilder.create().show(); + } + }); + } + public static void toast(final ForgeTask task, @ForgeParam("body") final String body) { task.performUI(new Runnable() { @Override diff --git a/inspector/ios-inspector/ForgeModule/notification_API.m b/inspector/ios-inspector/ForgeModule/notification_API.m index 5458759..8f7efe0 100644 --- a/inspector/ios-inspector/ForgeModule/notification_API.m +++ b/inspector/ios-inspector/ForgeModule/notification_API.m @@ -58,6 +58,17 @@ + (void)confirm:(ForgeTask*)task title:(NSString*)title body:(NSString*)body pos [[[UIAlertView alloc] initWithTitle:title message:body cancelButtonItem:negativeBtn otherButtonItems:positiveBtn, nil] show]; } ++ (void)prompt:(ForgeTask*)task title:(NSString*)title body:(NSString*)body { + RIButtonItem *ok = [RIButtonItem item]; + ok.label = @"OK"; + UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:title message:body cancelButtonItem:ok otherButtonItems:nil]; + UITextField *input = [alertView textFieldAtIndex:0]; + ok.action = ^{ + [task success:input.text]; + }; + [alertView show]; +} + + (void)toast:(ForgeTask*)task body:(NSString*)body { [PCToastMessage toastWithDuration:5.0 andText:body inView:[[[ForgeApp sharedApp] viewController] view]]; [task success:nil]; diff --git a/module/javascript/module.js b/module/javascript/module.js index 11f2215..1d1cb8d 100644 --- a/module/javascript/module.js +++ b/module/javascript/module.js @@ -52,6 +52,12 @@ forge['notification'] = { negative: negative }, success, error); }, + 'prompt': function (title, body, success, error) { + forge.internal.call("notification.prompt", { + title: title, + body: body + }, success, error); + }, 'toast': function (body, success, error) { forge.internal.call("notification.toast", { body: body