Skip to content

Commit a2c4218

Browse files
committed
added createSubFolder() method to AndroidUtil
1 parent 95b8514 commit a2c4218

File tree

3 files changed

+47
-41
lines changed

3 files changed

+47
-41
lines changed

src/processing/mode/android/AndroidBuild.java

Lines changed: 1 addition & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -951,44 +951,6 @@ private void installGradlew(File exportFolder) throws IOException {
951951

952952

953953
private File createExportFolder(String name) throws IOException {
954-
// Sketch sketch = editor.getSketch();
955-
// Create the 'android' build folder, and move any existing version out.
956-
File androidFolder = new File(sketch.getFolder(), name);
957-
if (androidFolder.exists()) {
958-
String stamp = AndroidMode.getDateStamp(androidFolder.lastModified());
959-
File dest = new File(sketch.getFolder(), name + "." + stamp);
960-
boolean result = androidFolder.renameTo(dest);
961-
if (!result) {
962-
ProcessHelper mv;
963-
ProcessResult pr;
964-
try {
965-
System.err.println("createProject renameTo() failed, resorting to mv/move instead.");
966-
mv = new ProcessHelper("mv", androidFolder.getAbsolutePath(), dest.getAbsolutePath());
967-
pr = mv.execute();
968-
} catch (InterruptedException e) {
969-
e.printStackTrace();
970-
return null;
971-
}
972-
if (!pr.succeeded()) {
973-
System.err.println(pr.getStderr());
974-
Messages.showWarning("Failed to rename",
975-
"Could not rename the old \"" + name + "\" build folder.\n" +
976-
"Please delete, close, or rename the folder\n" +
977-
androidFolder.getAbsolutePath() + "\n" +
978-
"and try again." , null);
979-
Platform.openFolder(sketch.getFolder());
980-
return null;
981-
}
982-
}
983-
} else {
984-
boolean result = androidFolder.mkdirs();
985-
if (!result) {
986-
Messages.showWarning("Folders, folders, folders",
987-
"Could not create the necessary folders to build.\n" +
988-
"Perhaps you have some file permissions to sort out?", null);
989-
return null;
990-
}
991-
}
992-
return androidFolder;
954+
return AndroidUtil.createSubFolder(sketch.getFolder(), name);
993955
}
994956
}

src/processing/mode/android/AndroidUtil.java

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,12 @@
3939
import javax.swing.event.HyperlinkListener;
4040

4141
import processing.app.Base;
42+
import processing.app.Messages;
4243
import processing.app.Platform;
4344
import processing.app.SketchException;
4445
import processing.app.Util;
46+
import processing.app.exec.ProcessHelper;
47+
import processing.app.exec.ProcessResult;
4548
import processing.app.ui.Toolkit;
4649
import processing.core.PApplet;
4750

@@ -130,6 +133,47 @@ static public void createFileFromTemplate(final File tmplFile, final File destFi
130133
}
131134

132135

136+
static public File createSubFolder(File parent, String name) throws IOException {
137+
File newFolder = new File(parent, name);
138+
if (newFolder.exists()) {
139+
String stamp = AndroidMode.getDateStamp(newFolder.lastModified());
140+
File dest = new File(parent, name + "." + stamp);
141+
boolean result = newFolder.renameTo(dest);
142+
if (!result) {
143+
ProcessHelper mv;
144+
ProcessResult pr;
145+
try {
146+
System.err.println("Cannot rename existing " + name + " folder, resorting to mv/move instead.");
147+
mv = new ProcessHelper("mv", newFolder.getAbsolutePath(), dest.getAbsolutePath());
148+
pr = mv.execute();
149+
} catch (InterruptedException e) {
150+
e.printStackTrace();
151+
return null;
152+
}
153+
if (!pr.succeeded()) {
154+
System.err.println(pr.getStderr());
155+
Messages.showWarning("Failed to rename",
156+
"Could not rename the old \"" + name + "\" folder.\n" +
157+
"Please delete, close, or rename the folder\n" +
158+
newFolder.getAbsolutePath() + "\n" +
159+
"and try again." , null);
160+
Platform.openFolder(newFolder);
161+
return null;
162+
}
163+
}
164+
} else {
165+
boolean result = newFolder.mkdirs();
166+
if (!result) {
167+
Messages.showWarning("Folders, folders, folders",
168+
"Could not create the necessary folders to build.\n" +
169+
"Perhaps you have some file permissions to sort out?", null);
170+
return null;
171+
}
172+
}
173+
return newFolder;
174+
}
175+
176+
133177
static public void extractFolder(File file, File newPath, boolean setExec)
134178
throws IOException {
135179
extractFolder(file, newPath, setExec, false);

src/processing/mode/android/SDKDownloader.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,10 +100,10 @@ protected Object doInBackground() throws Exception {
100100
File sketchbookFolder = processing.app.Base.getSketchbookFolder();
101101
File androidFolder = new File(sketchbookFolder, "android");
102102
if (!androidFolder.exists()) androidFolder.mkdir();
103+
104+
File sdkFolder = AndroidUtil.createSubFolder(androidFolder, "sdk");
103105

104106
// creating sdk folders
105-
File sdkFolder = new File(androidFolder, "sdk");
106-
if (!sdkFolder.exists()) sdkFolder.mkdirs();
107107
File platformsFolder = new File(sdkFolder, "platforms");
108108
if (!platformsFolder.exists()) platformsFolder.mkdir();
109109
File buildToolsFolder = new File(sdkFolder, "build-tools");

0 commit comments

Comments
 (0)