@Override public boolean execute(String action, JSONArray data, CallbackContext callbackId) { Log.d("PushNotifications", "Plugin Called"); // make sure the receivers are on registerReceivers(); if (ON_DEVICE_READY.equals(action)) { checkMessage(cordova.getActivity().getIntent()); return true; } if (REGISTER.equals(action)) { return internalRegister(data, callbackId); } if (UNREGISTER.equals(action)) { return internalUnregister(data, callbackId); } if (SET_TAGS.equals(action)) { return internalSendTags(data, callbackId); } if (SEND_LOCATION.equals(action)) { return internalSendLocation(data, callbackId); } if (START_GEO_PUSHES.equals(action)) { if (mPushManager == null) { return false; } mPushManager.startTrackingGeoPushes(); return true; } if (STOP_GEO_PUSHES.equals(action)) { if (mPushManager == null) { return false; } mPushManager.stopTrackingGeoPushes(); return true; } if (CREATE_LOCAL_NOTIFICATION.equals(action)) { JSONObject params = null; try { params = data.getJSONObject(0); } catch (JSONException e) { e.printStackTrace(); return false; } try { // config params: {msg:"message", seconds:30, userData:"optional"} String message = params.getString("msg"); Integer seconds = params.getInt("seconds"); if (message == null || seconds == null) return false; String userData = params.getString("userData"); Bundle extras = new Bundle(); if (userData != null) extras.putString("u", userData); PushManager.scheduleLocalNotification(cordova.getActivity(), message, extras, seconds); } catch (JSONException e) { e.printStackTrace(); return false; } return true; } if (CLEAR_LOCAL_NOTIFICATION.equals(action)) { PushManager.clearLocalNotifications(cordova.getActivity()); return true; } if ("setMultiNotificationMode".equals(action)) { PushManager.setMultiNotificationMode(cordova.getActivity()); return true; } if ("setSingleNotificationMode".equals(action)) { PushManager.setSimpleNotificationMode(cordova.getActivity()); return true; } if ("setSoundType".equals(action)) { try { Integer type = (Integer) data.get(0); if (type == null) return false; PushManager.setSoundNotificationType(cordova.getActivity(), SoundType.fromInt(type)); } catch (Exception e) { e.printStackTrace(); return false; } return true; } if ("setVibrateType".equals(action)) { try { Integer type = (Integer) data.get(0); if (type == null) return false; PushManager.setVibrateNotificationType(cordova.getActivity(), VibrateType.fromInt(type)); } catch (Exception e) { e.printStackTrace(); return false; } return true; } if ("setLightScreenOnNotification".equals(action)) { try { boolean type = (boolean) data.getBoolean(0); PushManager.setLightScreenOnNotification(cordova.getActivity(), type); } catch (Exception e) { e.printStackTrace(); return false; } return true; } if ("setEnableLED".equals(action)) { try { boolean type = (boolean) data.getBoolean(0); PushManager.setEnableLED(cordova.getActivity(), type); } catch (Exception e) { e.printStackTrace(); return false; } return true; } if ("sendGoalAchieved".equals(action)) { JSONObject params = null; try { params = data.getJSONObject(0); } catch (JSONException e) { e.printStackTrace(); return false; } try { // config params: {goal:"goalName", count:30} String goal = params.getString("goal"); if (goal == null) return false; Integer count = null; if (params.has("count")) count = params.getInt("count"); PushManager.sendGoalAchieved(cordova.getActivity(), goal, count); } catch (Exception e) { e.printStackTrace(); return false; } return true; } Log.d("DirectoryListPlugin", "Invalid action : " + action + " passed"); return false; }