Author: jerome
Date: 2009-01-30 12:52:41 +0100 (Fri, 30 Jan 2009)
New Revision: 3545

Modified:
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesListView.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Logger.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/ServicesLauncher.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/FiFo.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/Task.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/TaskDefiner.java
   
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/gadget/GadgetsFramework.java
Log:
* Fixed : #122 ?\226?\128?\148 Alerts conflict when triggered at the same time.

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
     2009-01-29 13:07:29 UTC (rev 3544)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/CcInterface.java
     2009-01-30 11:52:41 UTC (rev 3545)
@@ -88,6 +88,7 @@
 import com.tuxdroid.cc.Utils.ServicesLauncher;
 import com.tuxdroid.cc.Utils.TuxDropTarget;
 import com.tuxdroid.cc.alerts.AttituneAlertPanel;
+import com.tuxdroid.cc.alerts.FiFo;
 import com.tuxdroid.cc.alerts.GadgetAlertPanel;
 import com.tuxdroid.cc.alerts.SimpleAlertSettings;
 import com.tuxdroid.cc.alerts.TaskDefiner;
@@ -1775,13 +1776,16 @@
        public void propertyChange(PropertyChangeEvent arg0) {
                //A stop event has been received.
                if(arg0.getPropertyName().equalsIgnoreCase("stopped")){
+                       
                        this.setFrameworkBusy(false);
                        this.fileBrowser.getFramework().letTalk(true);
                        playflag = true;
                        playB.setIcon(new 
ImageIcon(CcCommons.targetClass.getResource("images/buttons/play.png")));
                        //Restore remote control context.
                        CCRemoteActions.restoreContext();
-                       this.setPlayerControlsConsistants(true);
+                       this.setPlayerControlsConsistants(true);
+                       FiFo.canRelease = true;
+                       
                }
                //An update event has been received.
                else if(arg0.getPropertyName().equalsIgnoreCase("updated")){ 
@@ -1840,6 +1844,7 @@
                }
                
                else 
if(arg0.getPropertyName().equalsIgnoreCase("Gadget-stopped")){
+                       
                        this.playflag = !this.playflag;
                        this.setFrameworkBusy(false);
                        playflag = true;
@@ -2288,9 +2293,9 @@
                }
                
                else 
if(arg0.getPropertyName().equalsIgnoreCase("scheduler-trigger-event")){ 
-       
+                       
                        if(this.fromSheduler){
-                               
+                               CcCommons.isFrameworkBusy = true;
                                String uid = (String)arg0.getNewValue();
                                String path = 
CcCommons.settings.getPathByUUID(uid);
                                
@@ -2303,10 +2308,6 @@
                                }
                                //Scheduled object is a gadget.
                                else 
if(CcCommons.settings.getAlertObjectKind(uid).equalsIgnoreCase("gadget")){
-                                       if(CcCommons.isFrameworkBusy)
-                                       {
-                                               return;
-                                       }
                                        //getting schedul action.
                                        String action = 
CcCommons.settings.getScheduledActionByUUID(uid);
                                        
@@ -2336,12 +2337,13 @@
                                        this.schedulerGadgetCommand = 
GadgetsCommandsUtils.getRunCommand(commands);;
                                }
                                this.fromSheduler = true;
-                               CcCommons.isFrameworkBusy = false;
+                               CcCommons.isFrameworkBusy = true;
                        }
                }
                
                else if(arg0.getPropertyName().equalsIgnoreCase("gadget-talk")){
                        CcCommons.isFrameworkBusy = true;
+                       FiFo.canRelease = false;
                        
if(this.schedulerActionType.equalsIgnoreCase("attitune")){
                                try{
                                        
this.fileBrowser.getFramework().letTalk(false);
@@ -2356,7 +2358,6 @@
                        else 
if(this.schedulerActionType.equalsIgnoreCase("gadget")){
                                try{
                                        
this.fileBrowser.getFramework().letTalk(true);
-                                       CcCommons.isFrameworkBusy = false;
                                        
this.instance.getGadget().create().start(this.schedulerGadgetCommand, 
this.schedulerGadgetParameters); 
                                }catch(Exception e){
                                        
CcCommons.logger.appendError(e.getStackTrace());
@@ -2366,18 +2367,19 @@
                        else 
if(this.schedulerActionType.equalsIgnoreCase("tts")){
                                try{
                                        
CcCommons.tux.tts.speak(this.schedulerAction);
+                                       FiFo.canRelease = true;
                                }catch(NullPointerException e){
                                        
CcCommons.logger.appendError(e.getStackTrace());
-                                       e.printStackTrace();
                                }
                        }
+                       CcCommons.isFrameworkBusy = false;
                }
                
                else 
if(arg0.getPropertyName().equalsIgnoreCase("gadget-double-click")){
                        
                        if (!playflag)
                                return;
-                       
+                       FiFo.canRelease = false;
                        playB.setIcon(new 
ImageIcon(CcCommons.targetClass.getResource("images/buttons/stop_down.png")));
                        this.setFrameworkBusy(true);
                        //Deleting remote control context.
@@ -2406,6 +2408,7 @@
                }
                
                else 
if(arg0.getPropertyName().equalsIgnoreCase("attitune-double-click")){
+                       FiFo.canRelease = false;
                        playB.setIcon(new 
ImageIcon(CcCommons.targetClass.getResource("images/buttons/stop_down.png")));
                        this.setFrameworkBusy(true);
                        playflag = !playflag;
@@ -2430,7 +2433,7 @@
                        
                        if (!playflag)
                                return;
-                       
+                       FiFo.canRelease = false;
                        this.setFrameworkBusy(true);
                        //Deleting remote control context.
                        CCRemoteActions.deleteContext();
@@ -2475,6 +2478,7 @@
                
                 
                else 
if(arg0.getPropertyName().equalsIgnoreCase("alert-double-click")){
+                       FiFo.canRelease = false;
                        playB.setIcon(new 
ImageIcon(CcCommons.targetClass.getResource("images/buttons/stop_down.png")));
                        this.setFrameworkBusy(true);
                        //Deleting remote control context.
@@ -2732,6 +2736,7 @@
                        setFrameworkBusy(true); //Set the framework busy.
                        playB.setIcon(new 
ImageIcon(CcCommons.targetClass.getResource("images/buttons/stop_down.png")));
                        if(CcCommons.type == CcConstants.TYPE_GADGETS){
+                               FiFo.canRelease = false;
                                if(CcCommons.view == CcConstants.VIEW_LIST){    
                                        
                                        boolean played = 
fileBrowser.playGadget(CcConstants.VIEW_LIST);
@@ -2751,13 +2756,15 @@
                        }
                                
                        else if(CcCommons.type == CcConstants.TYPE_ATTITUNES){
+                               FiFo.canRelease = false;
                                setPlayerControlsConsistants(false);
                                fileBrowser.playAttitune(CcCommons.view);
                        }
                        
                        else if(CcCommons.type == CcConstants.TYPE_REMOTELIST){
-               
+                               
                                if(remotePlaylist.haveDatas()){
+                                       FiFo.canRelease = false;
                                        
if(remotePlaylist.getSelectedItemKind().equals("gadget")){
                                                
                                                //Getting gadget
@@ -2797,7 +2804,7 @@
                        
                        else if(CcCommons.type == CcConstants.TYPE_ALERT){
                                if(alertPlaylist.haveDatas()){
-                                       
+                                       FiFo.canRelease = false;
                                        
if(alertPlaylist.getSelectedItemKind().equals("gadget")){
                                                //Getting gadget.
                                                String name = 
alertPlaylist.getSelectedName();

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesListView.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesListView.java
        2009-01-29 13:07:29 UTC (rev 3544)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Object/View/TuxAttitunesListView.java
        2009-01-30 11:52:41 UTC (rev 3545)
@@ -70,6 +70,7 @@
 import com.tuxdroid.cc.UI.MyScrollBarUI;
 import com.tuxdroid.cc.Utils.AttitunesFunctions;
 import com.tuxdroid.cc.Utils.FileUtils;
+import com.tuxdroid.cc.alerts.FiFo;
 import com.tuxdroid.cc.swing.TuxLanguagesMenu;
 import com.tuxisalive.api.SThread;
 
@@ -425,7 +426,8 @@
                }
                CcCommons.tux.tts.stop();
                this.manuallyStopped = false;
-               CcCommons.isFrameworkBusy = false;
+               CcCommons.isFrameworkBusy = false;
+               FiFo.canRelease = true;
                changes.firePropertyChange("StoppedAttitune", null, null);
        }
        

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Logger.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Logger.java
    2009-01-29 13:07:29 UTC (rev 3544)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/Logger.java
    2009-01-30 11:52:41 UTC (rev 3545)
@@ -32,13 +32,12 @@
 public class Logger {
        
        /** Log file **/
-       private File log;
+       private File log = new 
File(CcCommons.TuxDroidSettingsDirectory.getAbsolutePath() + File.separator + 
"TuxDroidLog.txt");
        
        private Object mutex = new Object();
        
        public Logger() throws IOException
        {
-               this.log = new 
File(CcCommons.TuxDroidSettingsDirectory.getAbsolutePath() + File.separator + 
"TuxDroidLog.txt");
                if(!CcCommons.TuxDroidSettingsDirectory.exists())
                {
                        CcCommons.TuxDroidSettingsDirectory.mkdirs();

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/ServicesLauncher.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/ServicesLauncher.java
  2009-01-29 13:07:29 UTC (rev 3544)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/Utils/ServicesLauncher.java
  2009-01-30 11:52:41 UTC (rev 3545)
@@ -28,12 +28,16 @@
 import com.tuxdroid.cc.alerts.AlertRestoreThread;
 import com.tuxdroid.cc.alerts.FiFo;
 
-public class ServicesLauncher extends Thread{
+public class ServicesLauncher extends Thread implements Runnable{
        
        public void run(){
                
                CcCommons.logger.append("Starting control center services ", 
true);
                
+               //Automatic incomming attitune updater. (into /MyTuxAttitunes 
folder).
+               CcCommons.attitunesWatcher = new Watcher();
+               CcCommons.attitunesWatcher.onUpdateAvailable(this, 
"updateAllAttitunesViews");
+               
                try 
                {
                        Thread.sleep(80000);
@@ -44,10 +48,6 @@
                        e.printStackTrace();
                }
                
-               //Automatic incomming attitune updater. (into /MyTuxAttitunes 
folder).
-               CcCommons.attitunesWatcher = new Watcher();
-               CcCommons.attitunesWatcher.onUpdateAvailable(this, 
"updateAllAttitunesViews");
-               
                CcCommons.alertsFifo = new FiFo();
                
                if(CcCommons.settings.haveAlertList()){

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/FiFo.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/FiFo.java
     2009-01-29 13:07:29 UTC (rev 3544)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/FiFo.java
     2009-01-30 11:52:41 UTC (rev 3545)
@@ -22,6 +22,7 @@
 
 package com.tuxdroid.cc.alerts;
 
+import java.io.File;
 import java.util.Vector;
 
 import org.quartz.Job;
@@ -38,6 +39,8 @@
        //Attitunes fifo.
        public static Vector<String> AttitunesFifo = new Vector<String>();
        
+       public static boolean canRelease = true;
+       
        public FiFo()
        {
                //Scedulling check function.
@@ -67,11 +70,11 @@
                String uid = jobName;
                
if(CcCommons.settings.getAlertObjectKind(uid).equalsIgnoreCase("attitune")){
                        AttitunesFifo.add(jobName);
-                       this.addToAttitunesWatcher("Injected: " + uid + " 
attitune to attitunes fifo");
+                       this.addToAttitunesWatcher("Injected: " + new 
File(CcCommons.settings.getPathByUUID(uid)).getName() + " to attitunes fifo");
                }
                else{
                        GadgetFifo.add(jobName);
-                       this.addToGadgetsWatcher("Injected: " + uid + " gadget 
to gadgets fifo");
+                       this.addToGadgetsWatcher("Injected: " + new 
File(CcCommons.settings.getPathByUUID(uid)).getName() + " to gadgets fifo");
                }
        }
        
@@ -81,12 +84,12 @@
         */
        public void trigger(){
        
-               if(!CcCommons.isFrameworkBusy){ //if framework is available.
+               if((!CcCommons.isFrameworkBusy) && (canRelease)){ //if 
framework is available.
                        if(GadgetFifo.size() > 0){
                                //Then trigger gadgets events.
                                try{
                                        
CcCommons.dispatcher.triggerEvent(GadgetFifo.get(0));
-                                       this.addToGadgetsWatcher("RELEASE EVENT 
Gadget: " + GadgetFifo.get(0));
+                                       this.addToGadgetsWatcher("RELEASE EVENT 
Gadget: " + new File(GadgetFifo.get(0)).getName());
                                        GadgetFifo.remove(0);
                                }
                                catch(NullPointerException except){}
@@ -98,7 +101,7 @@
                                        if(AttitunesFifo.size() < 0)
                                                return;
                                        
CcCommons.dispatcher.triggerEvent(AttitunesFifo.get(0));
-                                       this.addToAttitunesWatcher("RELEASE 
EVENT Attitune: " + AttitunesFifo.get(0));
+                                       this.addToAttitunesWatcher("RELEASE 
EVENT Attitune: " + new File(AttitunesFifo.get(0)).getName());
                                        AttitunesFifo.remove(0);
                                    
                                }catch(Exception except){}

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/Task.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/Task.java
     2009-01-29 13:07:29 UTC (rev 3544)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/Task.java
     2009-01-30 11:52:41 UTC (rev 3545)
@@ -33,7 +33,11 @@
 
        public static EventDispatcher eventDispatcher;
        
-       public void execute(JobExecutionContext context) throws 
JobExecutionException {
-               CcCommons.alertsFifo.inject(context.getJobDetail().getName());
+       public void execute(JobExecutionContext context) throws 
JobExecutionException {
+               try
+               {
+                       
CcCommons.alertsFifo.inject(context.getJobDetail().getName());
+               }
+               catch(Exception notStarted){}
        }
 }
\ No newline at end of file

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/TaskDefiner.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/TaskDefiner.java
      2009-01-29 13:07:29 UTC (rev 3544)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/alerts/TaskDefiner.java
      2009-01-30 11:52:41 UTC (rev 3545)
@@ -73,25 +73,30 @@
        
        
        private void setJob(String uid) throws Exception{
-               SchedulerFactory sf = new StdSchedulerFactory();
-               Scheduler sched = sf.getScheduler();
-               // define the job and tie it to our HelloJob class
-               JobDetail job = new JobDetail(uid, "group_" + uid, Task.class);
-               Trigger trigger;
-               if(this.every){
-                       trigger = 
TriggerUtils.makeMinutelyTrigger(this.minutes);
-                       trigger.setName("trigger_" + uid);
-                       sched.scheduleJob(job, trigger);
+               try
+               {
+                       SchedulerFactory sf = new StdSchedulerFactory();
+                       Scheduler sched = sf.getScheduler();
+                       // define the job and tie it to our HelloJob class
+                       JobDetail job = new JobDetail(uid, "group_" + uid, 
Task.class);
+                       Trigger trigger;
+                       if(this.every){
+                               trigger = 
TriggerUtils.makeMinutelyTrigger(this.minutes);
+                               trigger.setName("trigger_" + uid);
+                               sched.scheduleJob(job, trigger);
+                       }
+                       else{
+                               trigger = 
TriggerUtils.makeDailyTrigger(this.hours, this.minutes);
+                               trigger.setName("trigger_" + uid);
+                               trigger.setGroup("group_" + uid);
+                               sched.scheduleJob(job, trigger);
+                       }
+                       
+                       trigger.addTriggerListener("triggered");
+       
+                       sched.start();
                }
-               else{
-                       trigger = TriggerUtils.makeDailyTrigger(this.hours, 
this.minutes);
-                       trigger.setName("trigger_" + uid);
-                       trigger.setGroup("group_" + uid);
-                       sched.scheduleJob(job, trigger);
-               }
-               
-               trigger.addTriggerListener("triggered");
-
-               sched.start();
+               catch(ObjectAlreadyExistsException exists)
+               {}
        }       
 }
\ No newline at end of file

Modified: 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/gadget/GadgetsFramework.java
===================================================================
--- 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/gadget/GadgetsFramework.java
 2009-01-29 13:07:29 UTC (rev 3544)
+++ 
software_suite_v2/software/control_center/trunk/control_center/sources/com/tuxdroid/cc/gadget/GadgetsFramework.java
 2009-01-30 11:52:41 UTC (rev 3545)
@@ -41,6 +41,7 @@
 import com.kysoh.tuxdroid.gadget.framework.container.GadgetsContainerListener;
 import com.tuxdroid.cc.CcCommons;
 import com.tuxdroid.cc.Object.WebBrowser.webBrowser;
+import com.tuxdroid.cc.alerts.FiFo;
 import com.tuxdroid.cc.swing.JConsole;
 
 public class GadgetsFramework implements PropertyChangeListener{
@@ -71,6 +72,7 @@
                                        }
                                        
                                        CcCommons.tux.tts.speak(str);
+                                       FiFo.canRelease = true;
                                }
                                else{
                                        
changes.firePropertyChange("gadget-talk", null, null);


------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Tux-droid-svn mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/tux-droid-svn

Reply via email to