Skip to content

Commit 917d0d3

Browse files
committed
Listen for folder changes
1 parent 12ce442 commit 917d0d3

File tree

3 files changed

+12
-4
lines changed

3 files changed

+12
-4
lines changed

app/src/processing/app/Sketch.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public class Sketch {
6767

6868
/** folder that contains this sketch */
6969
private File folder;
70+
public List<Runnable> onFolderChangeListeners = new ArrayList<Runnable>();
7071

7172
/** data folder location for this sketch (may not exist yet) */
7273
private File dataFolder;
@@ -1240,6 +1241,7 @@ protected void updateInternal(File sketchFolder) {
12401241

12411242
name = sketchFolder.getName();
12421243
folder = sketchFolder;
1244+
onFolderChangeListeners.forEach(Runnable::run);
12431245
disappearedWarning = false;
12441246
codeFolder = new File(folder, "code");
12451247
dataFolder = new File(folder, "data");

app/src/processing/app/gradle/GradleJob.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ abstract class GradleJob{
6262
run()
6363
}
6464
}catch (e: Exception){
65-
Messages.log("Error while running: ${e.message}")
65+
Messages.log("Error while running: ${e.message} ${e.cause?.message}")
6666
}finally {
6767
state.value = State.DONE
6868
vm.value = null

app/src/processing/app/gradle/GradleService.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ import kotlin.io.path.writeText
3030
// TODO: Improve background building
3131
// TODO: Track build speed (for analytics?)
3232

33+
// TODO: Support offline mode
34+
3335
// The gradle service runs the gradle tasks and manages the gradle connection
3436
// It will create the necessary build files for gradle to run
3537
// Then it will kick off a new GradleJob to run the tasks
@@ -56,10 +58,15 @@ class GradleService(val editor: Editor) {
5658

5759
fun startService(){
5860
Messages.log("Starting Gradle service at $folder")
59-
// TODO: recreate connection if sketch folder changes
6061
connection = GradleConnector.newConnector()
6162
.forProjectDirectory(folder)
6263
.connect()
64+
editor.sketch.onFolderChangeListeners.add {
65+
connection?.close()
66+
connection = GradleConnector.newConnector()
67+
.forProjectDirectory(folder)
68+
.connect()
69+
}
6370

6471
startListening()
6572
startBuilding()
@@ -97,9 +104,8 @@ class GradleService(val editor: Editor) {
97104
})
98105
}
99106

100-
// TODO: Attach listener to new tab created
107+
// TODO: Attach listener to new tab created, callback has to be added to the editor
101108
}
102-
// TODO: Stop all jobs on dispose
103109
}
104110
// TODO: Add support for present
105111
fun run(){

0 commit comments

Comments
 (0)