diff --git a/app/src/main/java/com/ericsson/uecontrol/core/UeBehaviour.java b/app/src/main/java/com/ericsson/uecontrol/core/UeBehaviour.java index 7095f5e..e18f1d3 100755 --- a/app/src/main/java/com/ericsson/uecontrol/core/UeBehaviour.java +++ b/app/src/main/java/com/ericsson/uecontrol/core/UeBehaviour.java @@ -24,7 +24,9 @@ public abstract class UeBehaviour implements Serializable{ * Starts to run the behaviour, this method will block until the execution is done */ public void run(){ - if(execListener != null) execListener.executionStarted(); + long startTime = System.currentTimeMillis(); + if(execListener != null) + execListener.executionStarted(); try { setProgress(0); execute(); @@ -32,7 +34,9 @@ public abstract class UeBehaviour implements Serializable{ if(execListener != null) execListener.exception(e); log.warn(null, e); } - if(execListener != null) execListener.executionStopped(); + long execTime = System.currentTimeMillis() - startTime; + if(execListener != null) + execListener.executionStopped(execTime); } /** @@ -83,7 +87,7 @@ public abstract class UeBehaviour implements Serializable{ public static interface BehaviourExecutionListener { public void executionStarted(); public void progressChanged(float progress); - public void executionStopped(); + public void executionStopped(long executionTime); public void exception(Exception e); } diff --git a/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpUpload.java b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpUpload.java index 33e48c5..b5e9f0b 100755 --- a/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpUpload.java +++ b/app/src/main/java/com/ericsson/uecontrol/core/behaviour/UeBehaviourFtpUpload.java @@ -1,8 +1,8 @@ package com.ericsson.uecontrol.core.behaviour; -import com.ericsson.uecontrol.core.util.ThroughputCalculator; import com.ericsson.uecontrol.core.util.Configurator.Configurable; +import com.ericsson.uecontrol.core.util.StringUtil; import org.apache.commons.net.ftp.FTPClient; import org.apache.log4j.Logger; @@ -111,7 +111,7 @@ public class UeBehaviourFtpUpload extends UeBehaviourFtp { public String toString() { if(sizeOrFile != null && Pattern.matches("\\d*", sizeOrFile)){ int size = Integer.parseInt(sizeOrFile); - return "Will upload "+ ThroughputCalculator.getByteString(size) +" of random data."; + return "Will upload "+ StringUtil.getByteString(size) +" of random data."; } return "Will upload local file "+ sizeOrFile; } diff --git a/app/src/main/java/com/ericsson/uecontrol/core/util/CSVWriter.java b/app/src/main/java/com/ericsson/uecontrol/core/util/CSVWriter.java index abf74a1..971a5db 100755 --- a/app/src/main/java/com/ericsson/uecontrol/core/util/CSVWriter.java +++ b/app/src/main/java/com/ericsson/uecontrol/core/util/CSVWriter.java @@ -55,7 +55,7 @@ public class CSVWriter { line.append(header).append(DELIMITER); } writeLine(line.toString()); - flush(); + //flush(); } public void addComment(String str){ diff --git a/app/src/main/java/com/ericsson/uecontrol/core/util/StringUtil.java b/app/src/main/java/com/ericsson/uecontrol/core/util/StringUtil.java new file mode 100755 index 0000000..7f5d8dd --- /dev/null +++ b/app/src/main/java/com/ericsson/uecontrol/core/util/StringUtil.java @@ -0,0 +1,41 @@ +package com.ericsson.uecontrol.core.util; + +/** + * Created by ezivkoc on 2015-01-16. + */ +public class StringUtil { + + private static final String[] BIT_DATA_SIZE = new String[]{"b", "kbit", "Mbit", "Gbit", "Tbit"}; + public static String getBitThroughputString(double bitsPerSec){ + return getSizeString(bitsPerSec, 1000, BIT_DATA_SIZE) +"/s"; + } + + private static final String[] BYTE_DATA_SIZE = new String[]{"B", "KB", "MB", "GB", "TB"}; + public static String getByteString(double value){ + return getSizeString(value, 1024, BYTE_DATA_SIZE); + } + + private static String getSizeString(double value, int division, String[] sizeList){ + int index = 0; + for(; value > division && index < sizeList.length-1 ;index++) { + value /= division; + } + + value = (int)(value*10) / 10.0; + return value+" "+ sizeList[index]; + } + + + public static String getTimeString(long time){ + int timeSec = (int)(time / 1000); + int hours = timeSec / (60*60); + int minutes = (timeSec-(hours*60*60)) / 60; + int seconds = timeSec-(hours*60*60)-(minutes*60); + + String ret = ""; + if(hours > 0) ret += hours+"h "; + if(minutes > 0) ret += minutes+"m "; + if(seconds > 0) ret += seconds+"s "; + return ret; + } +} diff --git a/app/src/main/java/com/ericsson/uecontrol/core/util/ThroughputCalculator.java b/app/src/main/java/com/ericsson/uecontrol/core/util/ThroughputCalculator.java index ebc28b1..3001684 100755 --- a/app/src/main/java/com/ericsson/uecontrol/core/util/ThroughputCalculator.java +++ b/app/src/main/java/com/ericsson/uecontrol/core/util/ThroughputCalculator.java @@ -36,26 +36,4 @@ public class ThroughputCalculator { public boolean isUpdated(){ return updated; } - - - - private static final String[] BIT_DATA_SIZE = new String[]{"b", "kbit", "Mbit", "Gbit", "Tbit"}; - public static String getBitThroughputString(double bitsPerSec){ - return getSizeString(bitsPerSec, 1000, BIT_DATA_SIZE) +"/s"; - } - - private static final String[] BYTE_DATA_SIZE = new String[]{"B", "KB", "MB", "GB", "TB"}; - public static String getByteString(double value){ - return getSizeString(value, 1024, BYTE_DATA_SIZE); - } - - private static String getSizeString(double value, int division, String[] sizeList){ - int index = 0; - for(; value > division && index < sizeList.length-1 ;index++) { - value /= division; - } - - value = (int)(value*10) / 10.0; - return value+" "+ sizeList[index]; - } } diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/fragments/ExecNotification.java b/app/src/main/java/com/ericsson/uecontrol/gui/fragments/ExecNotification.java index 3ee32c1..fb236f6 100755 --- a/app/src/main/java/com/ericsson/uecontrol/gui/fragments/ExecNotification.java +++ b/app/src/main/java/com/ericsson/uecontrol/gui/fragments/ExecNotification.java @@ -8,6 +8,7 @@ import android.support.v4.app.NotificationCompat; import android.support.v4.app.TaskStackBuilder; import com.ericsson.uecontrol.R; +import com.ericsson.uecontrol.core.util.StringUtil; import com.ericsson.uecontrol.core.util.ThroughputCalculator; import com.ericsson.uecontrol.gui.MainActivity; @@ -26,8 +27,8 @@ public class ExecNotification { public static void update(double downThroughput, double upThroughput){ if(mBuilder != null) { mBuilder.setContentTitle("Exec Behaviour: " + MainActivity.getExecutor().getRunningBehaviour().getName()); - mBuilder.setContentText(" Down: " + ThroughputCalculator.getBitThroughputString(downThroughput) - + " Up: " + ThroughputCalculator.getBitThroughputString(upThroughput)); + mBuilder.setContentText(" Down: " + StringUtil.getBitThroughputString(downThroughput) + + " Up: " + StringUtil.getBitThroughputString(upThroughput)); setNotification(mBuilder); } } diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/fragments/StatusFragment.java b/app/src/main/java/com/ericsson/uecontrol/gui/fragments/StatusFragment.java index d8a9bbd..cd2d9c5 100755 --- a/app/src/main/java/com/ericsson/uecontrol/gui/fragments/StatusFragment.java +++ b/app/src/main/java/com/ericsson/uecontrol/gui/fragments/StatusFragment.java @@ -15,8 +15,8 @@ import android.widget.TextView; import com.ericsson.uecontrol.R; import com.ericsson.uecontrol.core.UeControlExecutor; import com.ericsson.uecontrol.core.util.ThroughputCalculator; -import com.ericsson.uecontrol.gui.MainActivity; import com.ericsson.uecontrol.core.util.CSVWriter; +import com.ericsson.uecontrol.core.util.StringUtil; import com.jjoe64.graphview.GraphView.GraphViewData; import com.jjoe64.graphview.GraphViewSeries; import com.jjoe64.graphview.GraphViewSeries.GraphViewSeriesStyle; @@ -88,8 +88,8 @@ public class StatusFragment extends Fragment { down_speed.post(new Runnable() { @Override public void run() { - down_speed.setText(ThroughputCalculator.getBitThroughputString(downThroughput)); - up_speed.setText(ThroughputCalculator.getBitThroughputString(upThroughput)); + down_speed.setText(StringUtil.getBitThroughputString(downThroughput)); + up_speed.setText(StringUtil.getBitThroughputString(upThroughput)); rat_type.setText(CSVWriter.getRat()); downGraph.appendData(new GraphViewData(x, downThroughput), true, 120); @@ -137,8 +137,8 @@ public class StatusFragment extends Fragment { down_speed.post(new Runnable() { @Override public void run() { - down_speed.setText(ThroughputCalculator.getBitThroughputString(0)); - up_speed.setText(ThroughputCalculator.getBitThroughputString(0)); + down_speed.setText(StringUtil.getBitThroughputString(0)); + up_speed.setText(StringUtil.getBitThroughputString(0)); } }); } diff --git a/app/src/main/java/com/ericsson/uecontrol/gui/util/BehaviourListAdapter.java b/app/src/main/java/com/ericsson/uecontrol/gui/util/BehaviourListAdapter.java index ada0072..1b2a453 100755 --- a/app/src/main/java/com/ericsson/uecontrol/gui/util/BehaviourListAdapter.java +++ b/app/src/main/java/com/ericsson/uecontrol/gui/util/BehaviourListAdapter.java @@ -11,6 +11,7 @@ import android.widget.TextView; import com.ericsson.uecontrol.R; import com.ericsson.uecontrol.core.UeBehaviour; +import com.ericsson.uecontrol.core.util.StringUtil; import java.util.List; @@ -41,6 +42,7 @@ public class BehaviourListAdapter extends StableArrayAdapter{ final ImageView warning = (ImageView) vi.findViewById(R.id.warning); final ProgressBar active = (ProgressBar)vi.findViewById(R.id.active); final ProgressBar progress = (ProgressBar) vi.findViewById(R.id.progress); + final TextView time = (TextView) vi.findViewById(R.id.time); UeBehaviour behaviour = super.getItem(position); @@ -55,6 +57,7 @@ public class BehaviourListAdapter extends StableArrayAdapter{ public void executionStarted() { progress.post(new Runnable() { public void run() { + time.setVisibility(View.INVISIBLE); active.setVisibility(View.VISIBLE); progress.setVisibility(View.VISIBLE); warning.setVisibility(View.INVISIBLE); @@ -67,11 +70,13 @@ public class BehaviourListAdapter extends StableArrayAdapter{ executionStarted(); progress.setProgress((int) (p * 100)); } - public void executionStopped() { + public void executionStopped(final long execTime) { progress.post(new Runnable() { public void run() { active.setVisibility(View.INVISIBLE); progress.setVisibility(View.INVISIBLE); + time.setText(StringUtil.getTimeString(execTime)); + time.setVisibility(View.VISIBLE); } }); } diff --git a/app/src/main/res/layout/behaviour_list_item.xml b/app/src/main/res/layout/behaviour_list_item.xml index 9949927..6125154 100755 --- a/app/src/main/res/layout/behaviour_list_item.xml +++ b/app/src/main/res/layout/behaviour_list_item.xml @@ -76,5 +76,18 @@ android:layout_below="@+id/description" android:visibility="invisible" /> + + \ No newline at end of file