Fixed reset button for execution times

This commit is contained in:
Ziver Koc 2015-01-16 15:48:14 +01:00
parent 9d8674a3ed
commit f7a9fa09d4
4 changed files with 29 additions and 1 deletions

View file

@ -13,6 +13,7 @@ public abstract class UeBehaviour implements Serializable{
private static final Logger log = Logger.getLogger(UeBehaviour.class); private static final Logger log = Logger.getLogger(UeBehaviour.class);
private transient boolean running; private transient boolean running;
private transient long execTime = -1;
private transient BehaviourExecutionListener execListener; private transient BehaviourExecutionListener execListener;
@ -24,6 +25,7 @@ public abstract class UeBehaviour implements Serializable{
* Starts to run the behaviour, this method will block until the execution is done * Starts to run the behaviour, this method will block until the execution is done
*/ */
public void run(){ public void run(){
execTime = -1;
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
if(execListener != null) if(execListener != null)
execListener.executionStarted(); execListener.executionStarted();
@ -34,7 +36,8 @@ public abstract class UeBehaviour implements Serializable{
if(execListener != null) execListener.exception(e); if(execListener != null) execListener.exception(e);
log.warn(null, e); log.warn(null, e);
} }
long execTime = System.currentTimeMillis() - startTime; running = false;
execTime = System.currentTimeMillis() - startTime;
if(execListener != null) if(execListener != null)
execListener.executionStopped(execTime); execListener.executionStopped(execTime);
} }
@ -46,6 +49,22 @@ public abstract class UeBehaviour implements Serializable{
running = false; running = false;
} }
public void reset(){
terminate();
execTime = -1;
}
/**
* @return the last measured execution time, -1 if time is not available
*/
public long getExecTime(){
return execTime;
}
public boolean isRunning(){
return running;
}
/** /**
* @return if currently running behaviour should be terminated * @return if currently running behaviour should be terminated
*/ */
@ -54,6 +73,7 @@ public abstract class UeBehaviour implements Serializable{
} }
public void setExecutionListener(BehaviourExecutionListener l){ public void setExecutionListener(BehaviourExecutionListener l){
execListener = l; execListener = l;
} }

View file

@ -114,6 +114,9 @@ public class UeControlExecutor implements Runnable{
public synchronized void reset(){ public synchronized void reset(){
terminate(); terminate();
currentlyActive = null; currentlyActive = null;
for(int i=0; i<behaviours.size(); i++){
behaviours.get(i).reset();
}
} }

View file

@ -193,6 +193,8 @@ public class MainActivity extends FragmentActivity implements OnSharedPreference
executor.reset(); executor.reset();
if(statusFragment != null) if(statusFragment != null)
statusFragment.reset(); statusFragment.reset();
if(behaviourListFragment != null)
behaviourListFragment.onResume();
updateExecutionState(); updateExecutionState();
} }
else if (id == R.id.action_edit) { else if (id == R.id.action_edit) {

View file

@ -49,7 +49,10 @@ public class BehaviourListAdapter extends StableArrayAdapter<UeBehaviour>{
// Setting all values in listview // Setting all values in listview
title.setText(behaviour.getName()); title.setText(behaviour.getName());
description.setText(""+behaviour); description.setText(""+behaviour);
time.setText(StringUtil.getTimeString(behaviour.getExecTime()));
if(!behaviour.isRunning())
time.setVisibility(View.VISIBLE);
if(editable) if(editable)
draggable.setVisibility(View.VISIBLE); draggable.setVisibility(View.VISIBLE);