diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index b0b8454c5..0be1a0320 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -2060,6 +2060,16 @@ public abstract class Editor extends JFrame implements RunnerListener { public void stopIndeterminate() { status.stopIndeterminate(); } + + + public void statusHalt() { + // stop called by someone else + } + + + public boolean isHalted() { + return false; + } // . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . diff --git a/app/src/processing/app/RunnerListener.java b/app/src/processing/app/RunnerListener.java index cd3777cfa..aa5adf5c5 100644 --- a/app/src/processing/app/RunnerListener.java +++ b/app/src/processing/app/RunnerListener.java @@ -30,10 +30,16 @@ public interface RunnerListener { public void statusError(Exception exception); public void statusNotice(String message); - - // + + // public void startIndeterminate(); public void stopIndeterminate(); + + // + + public void statusHalt(); + + public boolean isHalted(); } \ No newline at end of file diff --git a/app/src/processing/mode/android/AndroidBuild.java b/app/src/processing/mode/android/AndroidBuild.java index 77c722f2b..c9e968a82 100644 --- a/app/src/processing/mode/android/AndroidBuild.java +++ b/app/src/processing/mode/android/AndroidBuild.java @@ -96,21 +96,21 @@ class AndroidBuild extends JavaBuild { // PApplet.saveStream(new File(libsFolder, "processing-core.jar"), input); Base.copyFile(coreZipFile, new File(libsFolder, "processing-core.jar")); - try { - // Copy any imported libraries or code folder contents to the project - copyLibraries(libsFolder, assetsFolder); - copyCodeFolder(libsFolder); +// try { + // Copy any imported libraries or code folder contents to the project + copyLibraries(libsFolder, assetsFolder); + copyCodeFolder(libsFolder); - // Copy the data folder, if one exists, to the 'assets' folder of the - // project - final File sketchDataFolder = sketch.getDataFolder(); - if (sketchDataFolder.exists()) { - Base.copyDir(sketchDataFolder, assetsFolder); - } - } catch (final IOException e) { - e.printStackTrace(); - throw new SketchException(e.getMessage()); + // Copy the data folder, if one exists, to the 'assets' folder of the + // project + final File sketchDataFolder = sketch.getDataFolder(); + if (sketchDataFolder.exists()) { + Base.copyDir(sketchDataFolder, assetsFolder); } +// } catch (final IOException e) { +// e.printStackTrace(); +// throw new SketchException(e.getMessage()); +// } } // } catch (final SketchException e) { // editor.statusError(e); diff --git a/app/src/processing/mode/android/AndroidEditor.java b/app/src/processing/mode/android/AndroidEditor.java index 24a194ba8..5300bf0c6 100644 --- a/app/src/processing/mode/android/AndroidEditor.java +++ b/app/src/processing/mode/android/AndroidEditor.java @@ -328,10 +328,11 @@ public class AndroidEditor extends JavaEditor implements DeviceListener { } - private Device waitForDevice(final Future deviceFuture, - final IndeterminateProgressMonitor monitor) throws MonitorCanceled { + private Device waitForDevice(Future deviceFuture, RunnerListener listener) throws MonitorCanceled { +// final IndeterminateProgressMonitor monitor) for (int i = 0; i < 120; i++) { - if (monitor.isCanceled()) { +// if (monitor.isCanceled()) { + if (listener.isHalted()) { deviceFuture.cancel(true); throw new MonitorCanceled(); } @@ -360,13 +361,13 @@ public class AndroidEditor extends JavaEditor implements DeviceListener { private void runSketchOnDevice(final Future deviceFuture, final String target, RunnerListener listener) throws MonitorCanceled { - final IndeterminateProgressMonitor monitor = - new IndeterminateProgressMonitor(this, - "Building and launching...", - "Creating project..."); +// final IndeterminateProgressMonitor monitor = +// new IndeterminateProgressMonitor(this, +// "Building and launching...", +// "Creating project..."); listener.startIndeterminate(); - listener.statusNotice("Building and launching..."); + listener.statusNotice("Creating project..."); build = new AndroidBuild(sketch, amode.getSDK()); try { @@ -380,10 +381,11 @@ public class AndroidEditor extends JavaEditor implements DeviceListener { statusError(e); } try { - if (monitor.isCanceled()) { - throw new MonitorCanceled(); - } - monitor.setNote("Building..."); +// if (monitor.isCanceled()) { +// throw new MonitorCanceled(); +// } +// monitor.setNote("Building..."); + listener.statusNotice("Building..."); try { if (!build.antBuild(target)) { return; @@ -392,11 +394,13 @@ public class AndroidEditor extends JavaEditor implements DeviceListener { statusError(se); } - if (monitor.isCanceled()) { - throw new MonitorCanceled(); - } - monitor.setNote("Waiting for device to become available..."); - final Device device = waitForDevice(deviceFuture, monitor); +// if (monitor.isCanceled()) { +// throw new MonitorCanceled(); +// } +// monitor.setNote("Waiting for device to become available..."); + listener.statusNotice("Waiting for device to become available..."); +// final Device device = waitForDevice(deviceFuture, monitor); + final Device device = waitForDevice(deviceFuture, listener); if (device == null || !device.isAlive()) { statusError("Device killed or disconnected."); return; @@ -404,19 +408,22 @@ public class AndroidEditor extends JavaEditor implements DeviceListener { device.addListener(this); - if (monitor.isCanceled()) { + if (listener.isHalted()) { +// if (monitor.isCanceled()) { throw new MonitorCanceled(); } - monitor.setNote("Installing sketch on " + device.getId()); +// monitor.setNote("Installing sketch on " + device.getId()); + statusNotice("Installing sketch on " + device.getId()); if (!device.installApp(build.getPathForAPK(target), this)) { statusError("Device killed or disconnected."); return; } - if (monitor.isCanceled()) { - throw new MonitorCanceled(); - } - monitor.setNote("Starting sketch on " + device.getId()); +// if (monitor.isCanceled()) { +// throw new MonitorCanceled(); +// } +// monitor.setNote("Starting sketch on " + device.getId()); + listener.statusNotice("Starting sketch on " + device.getId()); if (startSketch(device)) { statusNotice("Sketch launched on the " + (device.isEmulator() ? "emulator" : "phone") + "."); @@ -429,7 +436,8 @@ public class AndroidEditor extends JavaEditor implements DeviceListener { build.cleanup(); } } finally { - monitor.close(); +// monitor.close(); + listener.stopIndeterminate(); } } diff --git a/todo.txt b/todo.txt index 6b9e6e21f..e770acd00 100644 --- a/todo.txt +++ b/todo.txt @@ -103,6 +103,15 @@ _ test code folder on android _ test libraries on android _ test opengl on android +ugliness +_ inside AndroidPreprocessor +_ processing.mode.java.JavaBuild.scrubComments(sketch.getCode(0).getProgram()) +_ PApplet.match(scrubbed, processing.mode.java.JavaBuild.SIZE_REGEX); +_ remove PdeKeyListener, roll it into the Java InputHandler for JEditTextArea +_ remove any reference to 'Editor' from Sketch.java +_ or is that excessive, since Document is in there, etc +_ Build does the heavy lifting anyway... + _ don't make examples read-only _ just do them from psk files @@ -113,11 +122,6 @@ _ make sure that android is working again _ the build is broken! the build is broken! _ http://code.google.com/p/processing/issues/detail?id=519 -_ remove PdeKeyListener, roll it into the Java InputHandler for JEditTextArea -_ remove any reference to 'Editor' from Sketch.java -_ or is that excessive, since Document is in there, etc -_ Build does the heavy lifting anyway... - _ export is broken in 0192 _ http://code.google.com/p/processing/issues/detail?id=487