Commit 421b2df5 by Sebastián Katzer

Removed hard coded 4s pause. Callbacks are called after the webview was initialized.

parent 663037ad
......@@ -21,6 +21,7 @@
package de.appplant.cordova.plugin.localnotification;
import java.util.ArrayList;
import java.util.Map;
import java.util.Set;
......@@ -53,12 +54,16 @@ public class LocalNotification extends CordovaPlugin {
protected static CordovaWebView webView = null;
protected static Context context = null;
protected static ArrayList<String> callbackQueue = new ArrayList<String>();
@Override
public void initialize (CordovaInterface cordova, CordovaWebView webView) {
super.initialize(cordova, webView);
LocalNotification.webView = super.webView;
LocalNotification.context = super.cordova.getActivity().getApplicationContext();
execPendingCallbacks();
}
@Override
......@@ -240,4 +245,15 @@ public class LocalNotification extends CordovaPlugin {
protected static NotificationManager getNotificationManager () {
return (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
}
/**
* Calls all pending callbacks after the webview was created.
*/
private void execPendingCallbacks () {
for (String js : callbackQueue) {
webView.sendJavascript(js);
}
callbackQueue.clear();
}
}
......@@ -21,9 +21,6 @@
package de.appplant.cordova.plugin.localnotification;
import java.util.Timer;
import java.util.TimerTask;
import org.json.JSONException;
import org.json.JSONObject;
......@@ -80,12 +77,7 @@ public class ReceiverActivity extends Activity {
// after reboot, LocalNotification.webView is always null
// call background callback later
if (LocalNotification.webView == null) {
new Timer().schedule(new TimerTask() {
@Override
public void run() {
LocalNotification.webView.sendJavascript(js);
}
}, 4000);
LocalNotification.callbackQueue.add(js);
} else {
LocalNotification.webView.sendJavascript(js);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment