From e0bff52b4831e4327ec353db58a6c70a6af44fa8 Mon Sep 17 00:00:00 2001 From: Siva Velusamy Date: Tue, 18 Sep 2012 16:36:33 -0700 Subject: gltrace: Better progress indicator Use the percent of file parsed as an indicator rather than having an indeterminate progress bar. Change-Id: I7a904e007c6ec195cb0e0bb2de7483e3b585489b --- .../ide/eclipse/gltrace/TraceFileParserTask.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'eclipse') diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/TraceFileParserTask.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/TraceFileParserTask.java index c3ea122..f525657 100644 --- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/TraceFileParserTask.java +++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/TraceFileParserTask.java @@ -155,7 +155,15 @@ public class TraceFileParserTask implements IRunnableWithProgress { @Override public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException { - monitor.beginTask("Parsing OpenGL Trace File", IProgressMonitor.UNKNOWN); + long fileLength; + try { + fileLength = mFile.length(); + } catch (IOException e1) { + fileLength = 0; + } + + monitor.beginTask("Parsing OpenGL Trace File", + fileLength > 0 ? 100 : IProgressMonitor.UNKNOWN); List glFrames = null; @@ -163,6 +171,7 @@ public class TraceFileParserTask implements IRunnableWithProgress { GLMessage msg = null; int msgCount = 0; long filePointer = mFile.getFilePointer(); + int percentParsed = 0; // counters that maintain some statistics about the trace messages long minTraceStartTime = Long.MAX_VALUE; @@ -180,6 +189,12 @@ public class TraceFileParserTask implements IRunnableWithProgress { if (monitor.isCanceled()) { throw new InterruptedException(); } + + if (fileLength > 0) { + int percentParsedNow = (int)((filePointer * 100) / fileLength); + monitor.worked(percentParsedNow - percentParsed); + percentParsed = percentParsedNow; + } } if (mGLContextIds.size() > 1) { -- cgit v1.1