Skip to content

Commit 2ad6507

Browse files
committed
copy device art to SDK folder if not present
1 parent e254f20 commit 2ad6507

File tree

2 files changed

+25
-12
lines changed

2 files changed

+25
-12
lines changed

mode/src/processing/mode/android/AVD.java

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import processing.app.Base;
2525
import processing.app.Platform;
2626
import processing.app.Preferences;
27-
import processing.app.exec.LineProcessor;
2827
import processing.app.exec.StreamPump;
2928
import processing.core.PApplet;
3029

@@ -353,6 +352,16 @@ protected String getSdkId() throws IOException {
353352
return "null";
354353
}
355354

355+
protected void copyDeviceSkins(final AndroidSDK sdk, final AndroidMode mode) {
356+
File skinsFolder = new File(sdk.getFolder(), "skins");
357+
if (!skinsFolder.exists()) {
358+
// The skins in this folder come from Android Studio, on Mac they are in the folder:
359+
// /Applications/Android Studio.app/Contents/plugins/android/resources/device-art-resources
360+
// Apparently the skins are not available as a SDK download.
361+
File artFolder = new File(mode.getResourcesFolder(), "device-art-resources");
362+
AndroidUtil.copyDir(artFolder, skinsFolder);
363+
}
364+
}
356365

357366
protected boolean create(final AndroidSDK sdk) throws IOException {
358367
File sketchbookFolder = processing.app.Base.getSketchbookFolder();
@@ -379,9 +388,8 @@ protected boolean create(final AndroidSDK sdk) throws IOException {
379388
}
380389

381390
// avdmanager create avd -n "Wear-Processing-0254" -k "system-images;android-25;google_apis;x86" -c 64M
382-
383391
// Set the list to null so that exists() will check again
384-
avdList = null;
392+
// avdList = null;
385393

386394
Map<String, String> env = pb.environment();
387395
env.clear();
@@ -392,13 +400,13 @@ protected boolean create(final AndroidSDK sdk) throws IOException {
392400
process = pb.start();
393401

394402
// Passes 'no' to "Do you wish to create a custom hardware profile [no]"
395-
OutputStream os = process.getOutputStream();
396-
PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
397-
pw.println("no");
398-
pw.flush();
399-
pw.close();
400-
os.flush();
401-
os.close();
403+
// OutputStream os = process.getOutputStream();
404+
// PrintWriter pw = new PrintWriter(new OutputStreamWriter(os));
405+
// pw.println("no");
406+
// pw.flush();
407+
// pw.close();
408+
// os.flush();
409+
// os.close();
402410

403411
StringWriter outWriter = new StringWriter();
404412
new StreamPump(process.getInputStream(), "out: ").addTarget(outWriter).start();
@@ -427,7 +435,6 @@ protected boolean create(final AndroidSDK sdk) throws IOException {
427435
AndroidMode.getTextString("android_avd.error.cannot_create_avd_body", AndroidBuild.TARGET_SDK));
428436
}
429437
System.err.println(outWriter.toString());
430-
//System.err.println(createAvdResult);
431438
} catch (final InterruptedException ie) {
432439
ie.printStackTrace();
433440
} finally {
@@ -463,6 +470,7 @@ static public boolean ensureProperAVD(final Frame window, final AndroidMode mode
463470
avd.refreshImages(sdk);
464471
}
465472
}
473+
avd.copyDeviceSkins(sdk, mode);
466474
if (avd.create(sdk)) {
467475
return true;
468476
}

mode/src/processing/mode/android/AndroidMode.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,12 @@ public void checkSDK(Editor editor) {
188188
public AndroidSDK getSDK() {
189189
return sdk;
190190
}
191-
191+
192+
193+
public File getResourcesFolder() {
194+
return new File(getFolder(), "resources");
195+
}
196+
192197

193198
public String getModeJar() {
194199
String modePath = new File(getFolder(), "mode").getAbsolutePath();

0 commit comments

Comments
 (0)