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