diff --git a/android/keywords.txt b/android/keywords.txt
new file mode 100644
index 000000000..f17283619
--- /dev/null
+++ b/android/keywords.txt
@@ -0,0 +1,642 @@
+# LITERAL2 specifies constants
+
+ADD LITERAL2
+ALIGN_CENTER LITERAL2
+ALIGN_LEFT LITERAL2
+ALIGN_RIGHT LITERAL2
+ALPHA LITERAL2
+ALPHA_MASK LITERAL2
+ALT LITERAL2
+AMBIENT LITERAL2
+ARROW LITERAL2
+ARGB LITERAL2
+BACKSPACE LITERAL2
+BASELINE LITERAL2
+BEVEL LITERAL2
+BLEND LITERAL2
+BLUE_MASK LITERAL2
+BLUR LITERAL2
+BOTTOM LITERAL2
+BURN LITERAL2
+CENTER LITERAL2
+CHATTER LITERAL2
+CODED LITERAL2
+COMPLAINT LITERAL2
+COMPOSITE LITERAL2
+COMPONENT LITERAL2
+CONCAVE_POLYGON LITERAL2
+CONTROL LITERAL2
+CONVEX_POLYGON LITERAL2
+CORNER LITERAL2
+CORNERS LITERAL2
+CLOSE LITERAL2
+CMYK LITERAL2
+CODED LITERAL2
+COMPLAINT LITERAL2
+CONTROL LITERAL2
+CORNER LITERAL2
+CORNERS LITERAL2
+CROSS LITERAL2
+CUSTOM LITERAL2
+DARKEST LITERAL2
+DEGREES LITERAL2
+DEG_TO_RAD LITERAL2
+DELETE LITERAL2
+DIAMETER LITERAL2
+DIFFERENCE LITERAL2
+DIFFUSE LITERAL2
+DILATE LITERAL2
+DIRECTIONAL LITERAL2
+DISABLE_ACCURATE_TEXTURES LITERAL2
+DISABLE_DEPTH_SORT LITERAL2
+DISABLE_DEPTH_TEST LITERAL2
+DISABLE_NATIVE_FONTS LITERAL2
+DISABLE_OPENGL_ERROR_REPORT LITERAL2
+DISABLE_OPENGL_2X_SMOOTH LITERAL2
+DISABLE_OPENGL_4X_SMOOTH LITERAL2
+DISABLE_TEXT_SMOOTH LITERAL2
+DISABLED LITERAL2
+DODGE LITERAL2
+DOWN LITERAL2
+DXF LITERAL2
+ENABLE_ACCURATE_TEXTURES LITERAL2
+ENABLE_DEPTH_SORT LITERAL2
+ENABLE_DEPTH_TEST LITERAL2
+ENABLE_NATIVE_FONTS LITERAL2
+ENABLE_OPENGL_2X_SMOOTH LITERAL2
+ENABLE_OPENGL_4X_SMOOTH LITERAL2
+ENABLE_OPENGL_ERROR_REPORT LITERAL2
+ENTER LITERAL2
+EPSILON LITERAL2
+ERODE LITERAL2
+ESC LITERAL2
+EXCLUSION LITERAL2
+GIF LITERAL2
+GRAY LITERAL2
+GREEN_MASK LITERAL2
+GROUP LITERAL2
+HALF LITERAL2
+HALF_PI LITERAL2
+HAND LITERAL2
+HARD_LIGHT LITERAL2
+HINT_COUNT LITERAL2
+HSB LITERAL2
+IMAGE LITERAL2
+INVERT LITERAL2
+JAVA2D LITERAL2
+JPEG LITERAL2
+LEFT LITERAL2
+LIGHTEST LITERAL2
+LINES LITERAL2
+LINUX LITERAL2
+MACOSX LITERAL2
+MAX_FLOAT LITERAL2
+MAX_INT LITERAL2
+MITER LITERAL2
+MODEL LITERAL2
+MOVE LITERAL2
+MULTIPLY LITERAL2
+NORMAL LITERAL2
+NO_DEPTH_TEST LITERAL2
+NTSC LITERAL2
+ONE LITERAL2
+OPAQUE LITERAL2
+OPEN LITERAL2
+OPENGL LITERAL2
+ORTHOGRAPHIC LITERAL2
+OVERLAY LITERAL2
+PAL LITERAL2
+P2D LITERAL2
+P3D LITERAL2
+PERSPECTIVE LITERAL2
+PI LITERAL2
+PIXEL_CENTER LITERAL2
+POINT LITERAL2
+POINTS LITERAL2
+POSTERIZE LITERAL2
+PROBLEM LITERAL2
+PROJECT LITERAL2
+QUAD_STRIP LITERAL2
+QUADS LITERAL2
+QUARTER_PI LITERAL2
+RAD_TO_DEG LITERAL2
+RADIUS LITERAL2
+RADIANS LITERAL2
+RED_MASK LITERAL2
+REPLACE LITERAL2
+RETURN LITERAL2
+RGB LITERAL2
+RIGHT LITERAL2
+ROUND LITERAL2
+SCREEN LITERAL2
+SECAM LITERAL2
+SHIFT LITERAL2
+SPECULAR LITERAL2
+SOFT_LIGHT LITERAL2
+SQUARE LITERAL2
+SUBTRACT LITERAL2
+SVIDEO LITERAL2
+TAB LITERAL2
+TARGA LITERAL2
+TEXT LITERAL2
+TFF LITERAL2
+THIRD_PI LITERAL2
+THRESHOLD LITERAL2
+TIFF LITERAL2
+TOP LITERAL2
+TRIANGLE_FAN LITERAL2
+TRIANGLES LITERAL2
+TRIANGLE_STRIP LITERAL2
+TUNER LITERAL2
+TWO LITERAL2
+TWO_PI LITERAL2
+UP LITERAL2
+WAIT LITERAL2
+WHITESPACE LITERAL2
+
+
+# KEYWORD1 specifies datatypes and keywords
+
+ArrayList KEYWORD1
+Boolean KEYWORD1
+Byte KEYWORD1
+Character KEYWORD1
+Class KEYWORD1
+Double KEYWORD1
+Float KEYWORD1
+Integer KEYWORD1
+HashMap KEYWORD1
+String KEYWORD1
+StringBuffer KEYWORD1
+Thread KEYWORD1
+abstract KEYWORD1
+assert KEYWORD1
+boolean KEYWORD1
+break KEYWORD1
+byte KEYWORD1
+catch KEYWORD1
+char KEYWORD1
+class KEYWORD1
+continue KEYWORD1
+default KEYWORD1
+do KEYWORD1
+double KEYWORD1
+else KEYWORD1
+enum KEYWORD1
+extends KEYWORD1
+false KEYWORD1
+final KEYWORD1
+finally KEYWORD1
+for KEYWORD1
+float KEYWORD1
+if KEYWORD1
+implements KEYWORD1
+import KEYWORD1
+instanceof KEYWORD1
+int KEYWORD1
+interface KEYWORD1
+long KEYWORD1
+native KEYWORD1
+new KEYWORD1
+null KEYWORD1
+package KEYWORD1
+private KEYWORD1
+protected KEYWORD1
+public KEYWORD1
+return KEYWORD1
+short KEYWORD1
+static KEYWORD1
+strictfp KEYWORD1
+super KEYWORD1
+switch KEYWORD1
+synchronized KEYWORD1
+this KEYWORD1
+throw KEYWORD1
+throws KEYWORD1
+transient KEYWORD1
+true KEYWORD1
+try KEYWORD1
+void KEYWORD1
+volatile KEYWORD1
+while KEYWORD1
+
+# Depricated API
+
+arraycopy KEYWORD2 arraycopy_
+openStream KEYWORD2 openStream_
+
+
+# KEYWORD2 specifies methods and functions
+
+cache KEYWORD2
+
+
+# THE TEXT ABOVE IS HAND-WRITTEN AND FOUND IN THE FILE "keywords_base.txt"
+# THE TEXT BELOW IS AUTO-GENERATED
+
+
+abs KEYWORD2 abs_
+acos KEYWORD2 acos_
++= addassign
++ addition
+alpha KEYWORD2 alpha_
+ambient KEYWORD2 ambient_
+ambientLight KEYWORD2 ambientLight_
+append KEYWORD2 append_
+applyMatrix KEYWORD2 applyMatrix_
+arc KEYWORD2 arc_
+Array KEYWORD1 Array
+[] arrayaccess
+arrayCopy KEYWORD2 arrayCopy_
+ArrayList KEYWORD1 ArrayList
+asin KEYWORD2 asin_
+= assign
+atan KEYWORD2 atan_
+atan2 KEYWORD2 atan2_
+background KEYWORD2 background_
+beginCamera KEYWORD2 beginCamera_
+beginRaw KEYWORD2 beginRaw_
+beginRecord KEYWORD2 beginRecord_
+beginShape KEYWORD2 beginShape_
+bezier KEYWORD2 bezier_
+bezierDetail KEYWORD2 bezierDetail_
+bezierPoint KEYWORD2 bezierPoint_
+bezierTangent KEYWORD2 bezierTangent_
+bezierVertex KEYWORD2 bezierVertex_
+binary KEYWORD2 binary_
+binary KEYWORD2 bitwiseAND_
+| bitwiseOR
+blend KEYWORD2 blend_
+blendColor KEYWORD2 blendColor_
+blue KEYWORD2 blue_
+boolean KEYWORD1 boolean
+boolean KEYWORD2 boolean_
+box KEYWORD2 box_
+break KEYWORD1 break
+brightness KEYWORD2 brightness_
+BufferedReader KEYWORD2 BufferedReader_
+readLine KEYWORD2 BufferedReader_readLine_
+byte KEYWORD1 byte
+byte KEYWORD2 byte_
+camera KEYWORD2 camera_
+case KEYWORD1 case
+catch KEYWORD1 catch
+ceil KEYWORD2 ceil_
+char KEYWORD1 char
+char KEYWORD2 char_
+char KEYWORD2 class_
+color KEYWORD2 color_
+color KEYWORD1 color_datatype
+colorMode KEYWORD2 colorMode_
+, comma
+// comment
+concat KEYWORD2 concat_
+?: KEYWORD1 conditional_
+constrain KEYWORD2 constrain_
+continue KEYWORD1 continue
+copy KEYWORD2 copy_
+cos KEYWORD2 cos_
+createFont KEYWORD2 createFont_
+createGraphics KEYWORD2 createGraphics_
+createImage KEYWORD2 createImage_
+createInput KEYWORD2 createInput_
+createOutput KEYWORD2 createOutput_
+createReader KEYWORD2 createReader_
+createWriter KEYWORD2 createWriter_
+{} curlybraces
+cursor KEYWORD2 cursor_
+curve KEYWORD2 curve_
+curveDetail KEYWORD2 curveDetail_
+curvePoint KEYWORD2 curvePoint_
+curveTangent KEYWORD2 curveTangent_
+curveTightness KEYWORD2 curveTightness_
+curveVertex KEYWORD2 curveVertex_
+day KEYWORD2 day_
+-- decrement
+default KEYWORD1 default
+degrees KEYWORD2 degrees_
+delay KEYWORD2 delay_
+directionalLight KEYWORD2 directionalLight_
+dist KEYWORD2 dist_
+/ divide
+/= divideassign
+/** doccomment
+. dot
+double KEYWORD1 double
+draw KEYWORD3 draw_
+ellipse KEYWORD2 ellipse_
+ellipseMode KEYWORD2 ellipseMode_
+else KEYWORD1 else
+emissive KEYWORD2 emissive_
+endCamera KEYWORD2 endCamera_
+endRaw KEYWORD2 endRaw_
+endRecord KEYWORD2 endRecord_
+endShape KEYWORD2 endShape_
+== equality
+exit KEYWORD2 exit_
+exp KEYWORD2 exp_
+expand KEYWORD2 expand_
+extends KEYWORD1 extends
+false KEYWORD1 false
+fill KEYWORD2 fill_
+filter KEYWORD2 filter_
+final KEYWORD1 final
+float KEYWORD1 float
+float KEYWORD2 float_
+floor KEYWORD2 floor_
+focusGained KEYWORD3 focusGained_
+focusLost KEYWORD3 focusLost_
+focused LITERAL2 focused
+for KEYWORD1 for_
+frameCount LITERAL2 frameCount
+frameRate KEYWORD2 frameRate_
+frameRate LITERAL2 frameRate
+frustum KEYWORD2 frustum_
+get KEYWORD2 get_
+< greaterthan
+<= greaterthanorequalto
+green KEYWORD2 green_
+HALF_PI LITERAL2 HALF_PI
+HashMap KEYWORD1 HashMap
+height LITERAL2 height
+hex KEYWORD2 hex_
+hint KEYWORD2 hint_
+hour KEYWORD2 hour_
+hue KEYWORD2 hue_
+if KEYWORD1 if_
+image KEYWORD2 image_
+imageMode KEYWORD2 imageMode_
+implements KEYWORD1 implements
+import KEYWORD1 import
+++ increment
+!= inequality
+int KEYWORD1 int
+int KEYWORD2 int_
+join KEYWORD2 join_
+key LITERAL2 key
+keyCode LITERAL2 keyCode
+keyPressed KEYWORD2 keyPressed_
+keyPressed LITERAL2 keyPressed
+keyReleased KEYWORD2 keyReleased_
+keyTyped KEYWORD2 keyTyped_
+<< leftshift
+lerp KEYWORD2 lerp_
+lerpColor KEYWORD2 lerpColor_
+< lessthan
+<= lessthanorequalto
+lightFalloff KEYWORD2 lightFalloff_
+lights KEYWORD2 lights_
+lightSpecular KEYWORD2 lightSpecular_
+line KEYWORD2 line_
+link KEYWORD2 link_
+loadBytes KEYWORD2 loadBytes_
+loadFont KEYWORD2 loadFont_
+loadImage KEYWORD2 loadImage_
+loadPixels KEYWORD2 loadPixels_
+loadShape KEYWORD2 loadShape_
+loadStrings KEYWORD2 loadStrings_
+log KEYWORD2 log_
+&& logicalAND
+! logicalNOT
+|| logicalOR
+long KEYWORD1 long
+loop KEYWORD2 loop_
+mag KEYWORD2 mag_
+map KEYWORD2 map_
+match KEYWORD2 match_
+matchAll KEYWORD2 matchAll_
+max KEYWORD2 max_
+millis KEYWORD2 millis_
+min KEYWORD2 min_
+- minus
+minute KEYWORD2 minute_
+modelX KEYWORD2 modelX_
+modelY KEYWORD2 modelY_
+modelZ KEYWORD2 modelZ_
+% modulo
+month KEYWORD2 month_
+mouseButton LITERAL2 mouseButton
+mouseClicked KEYWORD2 mouseClicked_
+mouseDragged KEYWORD2 mouseDragged_
+mouseMoved KEYWORD2 mouseMoved_
+mousePressed KEYWORD2 mousePressed_
+mousePressed LITERAL2 mousePressed
+mouseReleased KEYWORD2 mouseReleased_
+mouseX LITERAL2 mouseX
+mouseY LITERAL2 mouseY
+/* multilinecomment
+* multiply
+*= multiplyassign
+new KEYWORD1 new
+nf KEYWORD2 nf_
+nfc KEYWORD2 nfc_
+nfp KEYWORD2 nfp_
+nfs KEYWORD2 nfs_
+noCursor KEYWORD2 noCursor_
+noFill KEYWORD2 noFill_
+noise KEYWORD2 noise_
+noiseDetail KEYWORD2 noiseDetail_
+noiseSeed KEYWORD2 noiseSeed_
+noLights KEYWORD2 noLights_
+noLoop KEYWORD2 noLoop_
+norm KEYWORD2 norm_
+normal KEYWORD2 normal_
+noSmooth KEYWORD2 noSmooth_
+noStroke KEYWORD2 noStroke_
+noTint KEYWORD2 noTint_
+null KEYWORD1 null
+Object KEYWORD1 Object
+online LITERAL2 online
+open KEYWORD2 open_
+ortho KEYWORD2 ortho_
+param KEYWORD2 param_
+() parentheses
+perspective KEYWORD2 perspective_
+PFont KEYWORD1 PFont
+list KEYWORD2 PFont_list_
+PGraphics KEYWORD1 PGraphics
+beginDraw KEYWORD2 PGraphics_beginDraw_
+endDraw KEYWORD2 PGraphics_endDraw_
+PI LITERAL2 PI
+PImage KEYWORD1 PImage
+alpha KEYWORD2 PImage_alpha_
+blend KEYWORD2 PImage_blend_
+copy KEYWORD2 PImage_copy_
+filter KEYWORD2 PImage_filter_
+get KEYWORD2 PImage_get_
+height LITERAL2 PImage_height
+loadPixels KEYWORD2 PImage_loadPixels_
+mask KEYWORD2 PImage_mask_
+pixels LITERAL2 PImage_pixels
+resize KEYWORD2 PImage_resize_
+save KEYWORD2 PImage_save_
+set KEYWORD2 PImage_set_
+updatePixels KEYWORD2 PImage_updatePixels_
+width LITERAL2 PImage_width
+pixels LITERAL2 pixels
+pmouseX LITERAL2 pmouseX
+pmouseY LITERAL2 pmouseY
+point KEYWORD2 point_
+point KEYWORD2 pointLight_
+popMatrix KEYWORD2 popMatrix_
+popStyle KEYWORD3 popStyle_
+pow KEYWORD2 pow_
+print KEYWORD2 print_
+printCamera KEYWORD2 printCamera_
+println KEYWORD2 println_
+printMatrix KEYWORD2 printMatrix_
+printProjection KEYWORD2 printProjection_
+PrintWriter KEYWORD1 PrintWriter
+close KEYWORD2 PrintWriter_close_
+flush KEYWORD2 PrintWriter_flush_
+print KEYWORD2 PrintWriter_print_
+println KEYWORD2 PrintWriter_println_
+private KEYWORD1 private
+PShape KEYWORD1 PShape
+disableStyle KEYWORD2 PShape_disableStyle_
+enableStyle KEYWORD2 PShape_enableStyle_
+getChild KEYWORD2 PShape_getChild_
+height LITERAL2 PShape_height
+isVisible KEYWORD2 PShape_isVisible_
+resetMatrix KEYWORD2 PShape_resetMatrix_
+rotate KEYWORD2 PShape_rotate_
+rotateX KEYWORD2 PShape_rotateX_
+rotateY KEYWORD2 PShape_rotateY_
+rotateZ KEYWORD2 PShape_rotateZ_
+scale KEYWORD2 PShape_scale_
+setVisible KEYWORD2 PShape_setVisible_
+translate KEYWORD2 PShape_translate_
+width LITERAL2 PShape_width
+public KEYWORD1 public
+pushMatrix KEYWORD2 pushMatrix_
+pushStyle KEYWORD3 pushStyle_
+PVector KEYWORD1 PVector
+add KEYWORD2 PVector_add_
+angleBetween KEYWORD2 PVector_angleBetween_
+array KEYWORD2 PVector_array_
+copy KEYWORD2 PVector_copy_
+cross KEYWORD2 PVector_cross_
+dist KEYWORD2 PVector_dist_
+div KEYWORD2 PVector_div_
+dot KEYWORD2 PVector_dot_
+get KEYWORD2 PVector_get_
+limit KEYWORD2 PVector_limit_
+mag KEYWORD2 PVector_mag_
+mult KEYWORD2 PVector_mult_
+normalize KEYWORD2 PVector_normalize_
+set KEYWORD2 PVector_set_
+sub KEYWORD2 PVector_sub_
+quad KEYWORD2 quad_
+QUARTER_PI LITERAL2 QUARTER_PI
+radians KEYWORD2 radians_
+random KEYWORD2 random_
+randomSeed KEYWORD2 randomSeed_
+rect KEYWORD2 rect_
+rectMode KEYWORD2 rectMode_
+red KEYWORD2 red_
+redraw KEYWORD2 redraw_
+requestImage KEYWORD2 requestImage_
+resetMatrix KEYWORD2 resetMatrix_
+return KEYWORD1 return
+reverse KEYWORD2 reverse_
+<< rightshift
+rotate KEYWORD2 rotate_
+rotateX KEYWORD2 rotateX_
+rotateY KEYWORD2 rotateY_
+rotateZ KEYWORD2 rotateZ_
+round KEYWORD2 round_
+saturation KEYWORD2 saturation_
+save KEYWORD2 save_
+saveBytes KEYWORD2 saveBytes_
+saveFrame KEYWORD2 saveFrame_
+saveStream KEYWORD2 saveStream_
+saveStrings KEYWORD2 saveStrings_
+scale KEYWORD2 scale_
+screen LITERAL2 screen
+screenHeight LITERAL2 screenHeight
+screenWidth LITERAL2 screenWidth
+screenX KEYWORD2 screenX_
+screenY KEYWORD2 screenY_
+screenZ KEYWORD2 screenZ_
+second KEYWORD2 second_
+selectFolder KEYWORD2 selectFolder_
+selectInput KEYWORD2 selectInput_
+selectOutput KEYWORD2 selectOutput_
+; semicolon
+set KEYWORD2 set_
+setup KEYWORD3 setup_
+shape KEYWORD2 shape_
+shapeMode KEYWORD2 shapeMode_
+shearX KEYWORD2 shearX_
+shearY KEYWORD2 shearY_
+shininess KEYWORD2 shininess_
+shorten KEYWORD2 shorten_
+sin KEYWORD2 sin_
+size KEYWORD2 size_
+smooth KEYWORD2 smooth_
+sort KEYWORD2 sort_
+specular KEYWORD2 specular_
+sphere KEYWORD2 sphere_
+sphereDetail KEYWORD2 sphereDetail_
+splice KEYWORD2 splice_
+split KEYWORD2 split_
+splitTokens KEYWORD2 splitTokens_
+spotLight KEYWORD2 spotLight_
+sq KEYWORD2 sq_
+sqrt KEYWORD2 sqrt_
+static KEYWORD1 static
+status KEYWORD2 status_
+str KEYWORD2 str_
+String KEYWORD1 String
+charAt KEYWORD2 String_charAt_
+equals KEYWORD2 String_equals_
+indexOf KEYWORD2 String_indexOf_
+length KEYWORD2 String_length_
+substring KEYWORD2 String_substring_
+toLowerCase KEYWORD2 String_toLowerCase_
+toUpperCase KEYWORD2 String_toUpperCase_
+stroke KEYWORD2 stroke_
+strokeCap KEYWORD2 strokeCap_
+strokeJoin KEYWORD2 strokeJoin_
+strokeWeight KEYWORD2 strokeWeight_
+subset KEYWORD2 subset_
+-= subtractassign
+super KEYWORD1 super
+switch KEYWORD2 switch_
+tan KEYWORD2 tan_
+text KEYWORD2 text_
+textAlign KEYWORD2 textAlign_
+textAscent KEYWORD2 textAscent_
+textDescent KEYWORD2 textDescent_
+textFont KEYWORD2 textFont_
+textLeading KEYWORD2 textLeading_
+textMode KEYWORD2 textMode_
+textSize KEYWORD2 textSize_
+texture KEYWORD2 texture_
+textureMode KEYWORD2 textureMode_
+textWidth KEYWORD2 textWidth_
+this KEYWORD1 this
+tint KEYWORD2 tint_
+translate KEYWORD2 translate_
+triangle KEYWORD2 triangle_
+trim KEYWORD2 trim_
+true KEYWORD1 true
+try KEYWORD1 try
+TWO_PI LITERAL2 TWO_PI
+unbinary KEYWORD2 unbinary_
+unhex KEYWORD2 unhex_
+updatePixels KEYWORD2 updatePixels_
+vertex KEYWORD2 vertex_
+void KEYWORD1 void
+while KEYWORD1 while_
+width LITERAL2 width
+XMLElement KEYWORD1 XMLElement
+getChild KEYWORD2 XMLElement_getChild_
+getChildCount KEYWORD2 XMLElement_getChildCount_
+getChildren KEYWORD2 XMLElement_getChildren_
+getContent KEYWORD2 XMLElement_getContent_
+getFloat KEYWORD2 XMLElement_getFloat_
+getInt KEYWORD2 XMLElement_getInt_
+getName KEYWORD2 XMLElement_getName_
+getString KEYWORD2 XMLElement_getString_
+year KEYWORD2 year_
diff --git a/app/src/processing/mode/android/AndroidBuild.java b/app/src/processing/mode/android/AndroidBuild.java
index 89932659d..af8654706 100644
--- a/app/src/processing/mode/android/AndroidBuild.java
+++ b/app/src/processing/mode/android/AndroidBuild.java
@@ -380,21 +380,26 @@ class AndroidBuild extends JavaBuild {
if (!localIcon36.exists() &&
!localIcon48.exists() &&
!localIcon72.exists()) {
- // if no icons are in the sketch folder, then copy all the defaults
- if (new File(resFolder, "drawable-ldpi").mkdirs()) {
- PApplet.saveStream(buildIcon36, getClass().getResourceAsStream("data/icon-36.png"));
- } else {
- System.err.println("Could not create \"drawable-ldpi\" folder.");
- }
- if (new File(resFolder, "drawable").mkdirs()) {
- PApplet.saveStream(buildIcon48, getClass().getResourceAsStream("data/icon-48.png"));
- } else {
- System.err.println("Could not create \"drawable\" folder.");
- }
- if (new File(resFolder, "drawable-hdpi").mkdirs()) {
- PApplet.saveStream(buildIcon72, getClass().getResourceAsStream("data/icon-72.png"));
- } else {
- System.err.println("Could not create \"drawable-hdpi\" folder.");
+ try {
+ // if no icons are in the sketch folder, then copy all the defaults
+ if (buildIcon36.getParentFile().mkdirs()) {
+ Base.copyFile(mode.getContentFile("icons/" + ICON_36), buildIcon36);
+ } else {
+ System.err.println("Could not create \"drawable-ldpi\" folder.");
+ }
+ if (buildIcon48.getParentFile().mkdirs()) {
+ Base.copyFile(mode.getContentFile("icons/" + ICON_48), buildIcon48);
+ } else {
+ System.err.println("Could not create \"drawable\" folder.");
+ }
+ if (buildIcon72.getParentFile().mkdirs()) {
+ Base.copyFile(mode.getContentFile("icons/" + ICON_72), buildIcon72);
+ } else {
+ System.err.println("Could not create \"drawable-hdpi\" folder.");
+ }
+ } catch (IOException e) {
+ e.printStackTrace();
+ //throw new SketchException("Could not get Android icons");
}
} else {
// if at least one of the icons already exists, then use that across the board
diff --git a/build/build.xml b/build/build.xml
index d62cef2db..e229e1e4c 100644
--- a/build/build.xml
+++ b/build/build.xml
@@ -112,6 +112,22 @@
+
+
+
+
+
+
+
+
+
+
+