Commit 7c5eefd0 authored by PKnittel's avatar PKnittel
Browse files

Restructured LocalNotification.java

parent 1694a815
Loading
Loading
Loading
Loading
+112 −57
Changes for src/android/LocalNotification.java: 112 added lines, 57 removed lines.
Original line number Diff line number Diff line
@@ -81,18 +81,7 @@ public class LocalNotification extends CordovaPlugin {
        if (action.equalsIgnoreCase("add")) {
            cordova.getThreadPool().execute( new Runnable() {
                public void run() { 
                	JSONArray notifications = args.optJSONArray(0);
                	JSONObject arguments;
                	for(int i=0;i<notifications.length();i++){
                		arguments = notifications.optJSONObject(i);
                    	LOG.d("LocalNotification", arguments.toString());
                		arguments = asset.parseURIs(arguments);
                		Options options      = new Options(context).parse(arguments);
                		options.setInitDate();
                    	nWrapper.schedule(options);
                    	JSONArray data = new JSONArray().put(options.getJSONObject());
                   		fireEvent("add", options.getId(), options.getJSON(), data);
                	}                    
                	add(args);
                    command.success();
                }
            });
@@ -101,13 +90,7 @@ public class LocalNotification extends CordovaPlugin {
        if (action.equalsIgnoreCase("update")) {
        	cordova.getThreadPool().execute( new Runnable() {
                public void run() {
                	JSONArray updates = args.optJSONArray(0);
                	JSONObject updateContent;
                	for(int i=0;i<updates.length();i++){
                		updateContent = args.optJSONObject(i);
                	
                		nWrapper.update(updateContent);
                	}
                	update(args);
                	command.success();
                }
            });
@@ -116,15 +99,7 @@ public class LocalNotification extends CordovaPlugin {
        if (action.equalsIgnoreCase("cancel")) {
            cordova.getThreadPool().execute( new Runnable() {
                public void run() {
                	JSONArray ids = args.optJSONArray(0);
                	String id;
                	for(int i=0;i<ids.length();i++){
                		id = args.optString(i);
                		nWrapper.cancel(id);
                    	JSONArray managerId = new JSONArray().put(id);
                    	JSONArray data = new JSONArray().put(manager.getAll(managerId));
                        fireEvent("cancel", id, "",data);
                	}
                	cancel(args);
                    command.success();
                    
                }
@@ -134,16 +109,7 @@ public class LocalNotification extends CordovaPlugin {
        if (action.equalsIgnoreCase("cancelAll")) {
            cordova.getThreadPool().execute( new Runnable() {
                public void run() {
                	JSONArray options = manager.getAll();
                    nWrapper.cancelAll();
                	String id;
                	JSONObject arguments;
                    for(int i=0;i<options.length();i++){
                    	arguments= (JSONObject) options.opt(i);
                      	JSONArray data = new JSONArray().put(arguments);
                      	id = arguments.optString("id");
                      	fireEvent("cancel", id, "",data);
                    }
                	cancelAll(args);
                    command.success();
                }
            });
@@ -152,15 +118,7 @@ public class LocalNotification extends CordovaPlugin {
        if (action.equalsIgnoreCase("clear")) {
        	cordova.getThreadPool().execute( new Runnable() {
                public void run() {
                	JSONArray ids = args.optJSONArray(0);
                	String id;
                	for(int i=0;i<ids.length();i++){
                		id = args.optString(i);
                		nWrapper.clear(id);
                    	JSONArray managerId = new JSONArray().put(id);
                    	JSONArray data = new JSONArray().put(manager.getAll(managerId));
                        fireEvent("clear", id, "",data);
                	}
                	clear(args);
                    command.success();
                }
            });
@@ -169,16 +127,7 @@ public class LocalNotification extends CordovaPlugin {
        if (action.equalsIgnoreCase("clearAll")) {
        	cordova.getThreadPool().execute( new Runnable() {
                public void run() {
                	JSONArray options = manager.getAll();
                	nWrapper.clearAll();
                	String id;
                	JSONObject arguments;
                    for(int i=0;i<options.length();i++){
                    	arguments= (JSONObject) options.opt(i);
                      	JSONArray data = new JSONArray().put(arguments);
                      	id = arguments.optString("id");
                      	fireEvent("clear", id, "",data);
                    }
                	clearAll(args);
                    command.success();
                }
            });
@@ -275,6 +224,112 @@ public class LocalNotification extends CordovaPlugin {
        return true;
    }
    
    
    //------------------------------------------------exec-Functions-----------------------------------------------
    /**
     * Schedule notifications contained in the args-Array
     * @param args
     */
    private void add(JSONArray args){
    	JSONArray notifications = args.optJSONArray(0);
    	JSONObject arguments;
    	for(int i=0;i<notifications.length();i++){
    		arguments = notifications.optJSONObject(i);
        	LOG.d("LocalNotification", arguments.toString());
    		arguments = asset.parseURIs(arguments);
    		Options options      = new Options(context).parse(arguments);
    		options.setInitDate();
        	nWrapper.schedule(options);
        	JSONArray data = new JSONArray().put(options.getJSONObject());
       		fireEvent("add", options.getId(), options.getJSON(), data);
    	} 
    }
    
    /**
     * Update existing notifications
     * @param args
     */
    private void update(JSONArray args){
    	JSONArray updates = args.optJSONArray(0);
    	JSONObject updateContent;
    	for(int i=0;i<updates.length();i++){
    		updateContent = args.optJSONObject(i);
    	
    		nWrapper.update(updateContent);
    	}
    }
    
    /**
     * Cancel scheduled Notifications
     * @param args
     */
    private void cancel(JSONArray args){
    	JSONArray ids = args.optJSONArray(0);
    	String id;
    	for(int i=0;i<ids.length();i++){
    		id = args.optString(i);
    		nWrapper.cancel(id);
        	JSONArray managerId = new JSONArray().put(id);
        	JSONArray data = new JSONArray().put(manager.getAll(managerId));
            fireEvent("cancel", id, "",data);
    	}
    }
    
    /**
     * Cancel all scheduled notifications
     * @param args
     */
    public void cancelAll(JSONArray args){
    	JSONArray options = manager.getAll();
        nWrapper.cancelAll();
    	String id;
    	JSONObject arguments;
        for(int i=0;i<options.length();i++){
        	arguments= (JSONObject) options.opt(i);
          	JSONArray data = new JSONArray().put(arguments);
          	id = arguments.optString("id");
          	fireEvent("cancel", id, "",data);
        }
    }
    
    /**
     * Clear triggered notifications without cancel repeating.
     * @param args
     */
    public void clear(JSONArray args){
    	JSONArray ids = args.optJSONArray(0);
    	String id;
    	for(int i=0;i<ids.length();i++){
    		id = args.optString(i);
    		nWrapper.clear(id);
        	JSONArray managerId = new JSONArray().put(id);
        	JSONArray data = new JSONArray().put(manager.getAll(managerId));
            fireEvent("clear", id, "",data);
    	}
    }
    
    /**
     * Clear all triggered notifications without cancel repeating.
     * @param args
     */
    public void clearAll(JSONArray args){
    	JSONArray options = manager.getAll();
    	nWrapper.clearAll();
    	String id;
    	JSONObject arguments;
        for(int i=0;i<options.length();i++){
        	arguments= (JSONObject) options.opt(i);
          	JSONArray data = new JSONArray().put(arguments);
          	id = arguments.optString("id");
          	fireEvent("clear", id, "",data);
        }
    }
    

    
    
    
    //-------------------------------------------------------------------------------------------------------------
    /**
     * Calls all pending callbacks after the deviceready event has been fired.
     */