Skip to content

Commit 25f384f

Browse files
committed
added support-core-utils
1 parent df59e37 commit 25f384f

File tree

10 files changed

+122
-45
lines changed

10 files changed

+122
-45
lines changed

core/.classpath

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@
66
<classpathentry kind="lib" path="library/support-annotations-25.2.0.jar"/>
77
<classpathentry kind="lib" path="library/support-compat-25.2.0.jar"/>
88
<classpathentry kind="lib" path="library/support-fragment-25.2.0.jar"/>
9+
<classpathentry kind="lib" path="library/support-core-utils-25.2.0.jar"/>
910
<classpathentry kind="output" path="bin"/>
1011
</classpath>
102 KB
Binary file not shown.

scripts/info.txt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
Collection of utility scripts that I put here for the lack of a better place. They
22
probably should become tasks/targets in the gradle/ant build scripts at some point.
33

4-
gvrsdk-update.sh: downloads the Google VR SDK and generates all required packages and jar
5-
files needed to build and run cardboard sketches from Processing
6-
74
perm-parse.py: generates the array of permissions for a given SDK level, to be pasted in
85
Permissions.java
96

7+
support-update.sh: Explodes the support aar files from the local SDK repository,
8+
and extracts the classes jar and copies it inside core/library
9+
1010
wear-update.sh: downloads the wearable aar file from a known maven repository, and
1111
extracts the classes jar and copies it inside core/library
1212

13+
gvrsdk-update.sh: downloads the Google VR SDK and generates all required packages and jar
14+
files needed to build and run cardboard sketches from Processing
15+
1316
gradlew-update.sh: creates the gradle wrapper with the desired gradle version and packs
1417
it in the mode folder to be available when exporting projects using gradle as the build
1518
system

scripts/support-update.sh

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,32 @@
22

33
# Usage:
44
# call with the version number of the support packages to copy from local SDK and extract, i.e.:
5-
# ./wear-update.sh 2.0.0:
5+
# ./support-update.sh 25.2.0:
66

77
version=$1
88

9+
# support-core-utils
10+
cp $ANDROID_SDK/extras/android/m2repository/com/android/support/support-core-utils/$version/support-core-utils-$version.aar .
11+
unzip support-core-utils-$version.aar -d support-core-utils
12+
cp support-core-utils/classes.jar ../core/library/support-core-utils-$version.jar
13+
rm -Rf support-core-utils
14+
rm support-core-utils-$version.aar
15+
16+
# support-compat
917
cp $ANDROID_SDK/extras/android/m2repository/com/android/support/support-compat/$version/support-compat-$version.aar .
1018
unzip support-compat-$version.aar -d support-compat
1119
cp support-compat/classes.jar ../core/library/support-compat-$version.jar
1220
rm -Rf support-compat
1321
rm support-compat-$version.aar
1422

15-
23+
# support-fragment
1624
cp $ANDROID_SDK/extras/android/m2repository/com/android/support/support-fragment/$version/support-fragment-$version.aar .
1725
unzip support-fragment-$version.aar -d support-fragment
1826
cp support-fragment/classes.jar ../core/library/support-fragment-$version.jar
1927
rm -Rf support-fragment
2028
rm support-fragment-$version.aar
2129

30+
# support-annotations is provided as a jar, no aar, for some reason
2231
cp $ANDROID_SDK/extras/android/m2repository/com/android/support/support-annotations/$version/support-annotations-$version.jar ../core/library
2332

2433
# Done, print out reminder...

src/processing/mode/android/AndroidBuild.java

Lines changed: 84 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -99,9 +99,12 @@ class AndroidBuild extends JavaBuild {
9999
static public final String target_sdk = "25"; // Nougat (7.1.1)
100100
static public final String target_platform = "android-" + target_sdk;
101101

102-
// Versions of Support, AppCompatn, Wear and VR in use
102+
// Versions of Support, AppCompat, Wear and VR in use
103+
// All of these are hard-coded, as the target_sdk. Should obtained from the
104+
// repository files? Or users being able to change them in the preferences
105+
// file?
103106
static public final String support_version = "25.2.0";
104-
static public final String appcompat_version = "25.2.0";
107+
static public final String play_services_version = "10.2.0";
105108
static public final String wear_version = "2.0.0";
106109
static public final String gvr_sdk_version = "1.20.0";
107110

@@ -317,26 +320,84 @@ public File createProject(boolean wear) throws IOException, SketchException {
317320
// package included in the SDK:
318321
wearAarFile = new File(sdk.getWearableFolder(), wear_version + "/wearable-" + wear_version + ".aar");
319322
explodeDir = new File(tmpFolder, "aar");
320-
AndroidMode.explodeAar(wearAarFile, explodeDir, new File(libsFolder, "wearable-" + wear_version + ".jar"));
323+
AndroidMode.extractClassesJarFromAar(wearAarFile, explodeDir, new File(libsFolder, "wearable-" + wear_version + ".jar"));
324+
325+
// Copy support packages (core-utils, compat, fragment, and annotations)
326+
wearAarFile = new File(sdk.getSupportLibrary(), "/support-core-utils/" + support_version + "/support-core-utils-" + support_version + ".aar");
327+
explodeDir = new File(tmpFolder, "aar");
328+
AndroidMode.extractClassesJarFromAar(wearAarFile, explodeDir, new File(libsFolder, "support-core-utils-" + support_version + ".jar"));
321329

322-
// Copy support packages (compat, fragment, and annotations)
323330
wearAarFile = new File(sdk.getSupportLibrary(), "/support-compat/" + support_version + "/support-compat-" + support_version + ".aar");
324331
explodeDir = new File(tmpFolder, "aar");
325-
AndroidMode.explodeAar(wearAarFile, explodeDir, new File(libsFolder, "support-compat-" + support_version + ".jar"));
332+
AndroidMode.extractClassesJarFromAar(wearAarFile, explodeDir, new File(libsFolder, "support-compat-" + support_version + ".jar"));
326333

327334
wearAarFile = new File(sdk.getSupportLibrary(), "/support-fragment/" + support_version + "/support-fragment-" + support_version + ".aar");
328335
explodeDir = new File(tmpFolder, "aar");
329-
AndroidMode.explodeAar(wearAarFile, explodeDir, new File(libsFolder, "support-fragment-" + support_version + ".jar"));
336+
AndroidMode.extractClassesJarFromAar(wearAarFile, explodeDir, new File(libsFolder, "support-fragment-" + support_version + ".jar"));
330337

331-
wearAarFile = new File(sdk.getSupportLibrary(), "/support-annotations/" + support_version + "/support-annotations-" + support_version + ".aar");
332-
explodeDir = new File(tmpFolder, "aar");
333-
AndroidMode.explodeAar(wearAarFile, explodeDir, new File(libsFolder, "support-annotations-" + support_version + ".jar"));
338+
File compatJarFile = new File(sdk.getSupportLibrary(), "/support-annotations/" + support_version + "/support-annotations-" + support_version + ".jar");
339+
Util.copyFile(compatJarFile, new File(libsFolder, "support-annotations-" + support_version + ".jar"));
334340

335341
if (getAppComponent() == FRAGMENT) {
336-
// Copy support appcompat-v7 package
337-
wearAarFile = new File(sdk.getSupportLibrary(), "/appcompat-v7/" + support_version + "/appcompat-v7-" + appcompat_version + ".aar");
338-
explodeDir = new File(tmpFolder, "aar");
339-
AndroidMode.explodeAar(wearAarFile, explodeDir, new File(libsFolder, "appcompat-v7-" + appcompat_version + ".jar"));
342+
////////////////////////////////////////////////////////////////////////
343+
// first step: extract appcompat library project
344+
345+
wearAarFile = new File(sdk.getSupportLibrary(), "/appcompat-v7/" + support_version + "/appcompat-v7-" + support_version + ".aar");
346+
File appCompatFolder = new File(libsFolder, "appcompat");
347+
AndroidMode.extractFolder(wearAarFile, appCompatFolder, false);
348+
Util.removeDir(new File(appCompatFolder, "aidl"));
349+
Util.removeDir(new File(appCompatFolder, "android"));
350+
Util.removeDir(new File(appCompatFolder, "assets"));
351+
File classesJar = new File(appCompatFolder, "classes.jar");
352+
File appCompatLibsFolder = new File(appCompatFolder, "/libs");
353+
if (!appCompatLibsFolder.exists()) appCompatLibsFolder.mkdir();
354+
File appCompatJar = new File(appCompatLibsFolder, "android-support-v7-appcompat.jar");
355+
Util.copyFile(classesJar, appCompatJar);
356+
classesJar.delete();
357+
358+
// remove aidl
359+
// remove android
360+
// remove annotations
361+
// remove assets
362+
// move classes.jar to libs as android-support-v7-appcompat.jar
363+
// remove jni
364+
365+
366+
/*
367+
// Need to add appcompat as a library project (includes v4 support)
368+
369+
// TODO: the support-v7 library project should be copied from the Android
370+
// Support Repository, and not from the Support Library.
371+
File appCompatFolderSrc = new File(sdk.getSupportLibrary(), "v7/appcompat");
372+
// Delete the project.properties files because Processing will regenerate
373+
// it when building the project
374+
File propFile = new File(appCompatFolderSrc, "project.properties");
375+
propFile.delete();
376+
File appCompatFolder = new File(libsFolder, "appcompat");
377+
Util.copyDir(appCompatFolderSrc, appCompatFolder);
378+
*/
379+
380+
////////////////////////////////////////////////////////////////////////
381+
// second step: create library projects
382+
boolean appCompatRes = createLibraryProject("appcompat", targetID,
383+
appCompatFolder.getAbsolutePath(), "android.support.v7.appcompat");
384+
385+
////////////////////////////////////////////////////////////////////////
386+
// third step: reference library projects from main project
387+
if (appCompatRes) {
388+
System.out.println("Library project created succesfully in " + libsFolder.toString());
389+
appCompatRes = referenceLibraryProject(targetID, tmpFolder.getAbsolutePath(), "libs/appcompat");
390+
if (appCompatRes) {
391+
System.out.println("Library project referenced succesfully!");
392+
// Finally, re-write the build files so they use org.eclipse.jdt.core.JDTCompilerAdapter
393+
// instead of com.sun.tools.javac.Main
394+
// TODO: use the build file generated by the android tools, and
395+
// add the custom section redefining the target
396+
File appCompatBuildFile = new File(appCompatFolder, "build.xml");
397+
writeBuildXML(appCompatBuildFile, "appcompat");
398+
}
399+
}
400+
340401
}
341402

342403
// Copy any imported libraries (their libs and assets),
@@ -535,7 +596,7 @@ private void writeHandheldManifest(final File tmpFolder, String versionCode, Str
535596
replaceMap.put("@@package_name@@", getPackageName());
536597
replaceMap.put("@@version_code@@", versionCode);
537598
replaceMap.put("@@version_name@@", versionName);
538-
replaceMap.put("@@min_sdk@@", AndroidBuild.min_sdk_handheld);
599+
replaceMap.put("@@min_sdk@@", min_sdk_handheld);
539600
replaceMap.put("@@sketch_class_name@@", sketchClassName);
540601
replaceMap.put("@@uses_permissions@@", usesPermissions);
541602

@@ -1577,8 +1638,9 @@ private void createAppModule(File projectFolder, File exportFolder, String build
15771638
replaceMap.put("@@build_tools@@", buildToolsVer);
15781639
replaceMap.put("@@package_name@@", getPackageName());
15791640
replaceMap.put("@@min_sdk@@", minSdk);
1580-
replaceMap.put("@@target_sdk@@", AndroidBuild.target_sdk);
1581-
replaceMap.put("@@wear_version@@", wear_version);
1641+
replaceMap.put("@@target_sdk@@", target_sdk);
1642+
replaceMap.put("@@support_version@@", support_version);
1643+
replaceMap.put("@@wear_version@@", wear_version);
15821644
replaceMap.put("@@gvr_version@@", gvr_sdk_version);
15831645
replaceMap.put("@@version_code@@", manifest.getVersionCode());
15841646
replaceMap.put("@@version_name@@", manifest.getVersionName());
@@ -1615,8 +1677,9 @@ private void createMobileModule(File projectFolder, File exportFolder, String bu
16151677
HashMap<String, String> replaceMap = new HashMap<String, String>();
16161678
replaceMap.put("@@build_tools@@", buildToolsVer);
16171679
replaceMap.put("@@package_name@@", getPackageName());
1618-
replaceMap.put("@@min_sdk@@", AndroidBuild.min_sdk_handheld);
1619-
replaceMap.put("@@target_sdk@@", AndroidBuild.target_sdk);
1680+
replaceMap.put("@@min_sdk@@", min_sdk_handheld);
1681+
replaceMap.put("@@target_sdk@@", target_sdk);
1682+
replaceMap.put("@@play_services_version@@", play_services_version);
16201683
replaceMap.put("@@wear_version@@", wear_version);
16211684
replaceMap.put("@@version_code@@", manifest.getVersionCode());
16221685
replaceMap.put("@@version_name@@", manifest.getVersionName());
@@ -1644,8 +1707,9 @@ private void createWearModule(File projectFolder, File exportFolder, String buil
16441707
HashMap<String, String> replaceMap = new HashMap<String, String>();
16451708
replaceMap.put("@@build_tools@@", buildToolsVer);
16461709
replaceMap.put("@@package_name@@", getPackageName());
1647-
replaceMap.put("@@min_sdk@@", AndroidBuild.min_sdk_watchface);
1648-
replaceMap.put("@@target_sdk@@", AndroidBuild.target_sdk);
1710+
replaceMap.put("@@min_sdk@@", min_sdk_watchface);
1711+
replaceMap.put("@@target_sdk@@", target_sdk);
1712+
replaceMap.put("@@play_services_version@@", play_services_version);
16491713
replaceMap.put("@@wear_version@@", wear_version);
16501714
replaceMap.put("@@version_code@@", manifest.getVersionCode());
16511715
replaceMap.put("@@version_name@@", manifest.getVersionName());

src/processing/mode/android/AndroidMode.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -444,14 +444,14 @@ public static void extractFolder(File file, File newPath,
444444
}
445445

446446

447-
static public void explodeAar(File wearFile, File explodeDir, File jarFile)
448-
throws IOException {
449-
explodeAar(wearFile, explodeDir, jarFile, true);
447+
static public void extractClassesJarFromAar(File wearFile, File explodeDir,
448+
File jarFile) throws IOException {
449+
extractClassesJarFromAar(wearFile, explodeDir, jarFile, true);
450450
}
451451

452452

453-
static public void explodeAar(File wearFile, File explodeDir, File jarFile,
454-
boolean removeDir) throws IOException {
453+
static public void extractClassesJarFromAar(File wearFile, File explodeDir,
454+
File jarFile, boolean removeDir) throws IOException {
455455
extractFolder(wearFile, explodeDir, false);
456456
File classFile = new File(explodeDir, "classes.jar");
457457
Util.copyFile(classFile, jarFile);

templates/CardboardBuild.gradle.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ dependencies {
2323
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
2424
exclude group: 'com.android.support', module: 'support-annotations'
2525
})
26-
compile 'com.android.support:appcompat-v7:23.4.0'
27-
compile 'com.android.support:design:23.4.0'
26+
compile 'com.android.support:appcompat-v7:@@support_version@@'
27+
compile 'com.android.support:design:@@support_version@@'
2828
compile 'com.google.vr:sdk-audio:@@gvr_version@@'
2929
compile 'com.google.vr:sdk-base:@@gvr_version@@'
3030
testCompile 'junit:junit:4.12'

templates/FragmentBuild.gradle.tmpl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ dependencies {
2424
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
2525
exclude group: 'com.android.support', module: 'support-annotations'
2626
})
27-
compile 'com.android.support:appcompat-v7:23.4.0'
28-
compile 'com.android.support:design:23.4.0'
27+
compile 'com.android.support:appcompat-v7:@@support_version@@'
28+
compile 'com.android.support:design:@@support_version@@'
2929
testCompile 'junit:junit:4.12'
3030
compile files('libs/processing-core.jar')
3131
}

templates/HandheldBuild.gradle.tmpl

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ dependencies {
2424
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
2525
exclude group: 'com.android.support', module: 'support-annotations'
2626
})
27-
compile "com.android.support:support-v4:25.0.1"
28-
compile "com.android.support:support-v13:25.0.1"
29-
compile "com.android.support:cardview-v7:25.0.1"
30-
compile "com.android.support:appcompat-v7:25.0.1"
27+
compile "com.android.support:support-v4:@@support_version@@"
28+
compile "com.android.support:support-v13:@@support_version@@"
29+
compile "com.android.support:cardview-v7:@@support_version@@"
30+
compile "com.android.support:appcompat-v7:@@support_version@@"
3131
compile 'com.google.android.support:wearable:@@wear_version@@'
32-
compile 'com.google.android.gms:play-services-fitness:10.0.1'
33-
compile 'com.google.android.gms:play-services-wearable:10.0.1'
34-
compile 'com.android.support:support-v13:25.0.1'
32+
compile 'com.google.android.gms:play-services-fitness:@@play_services_version@@'
33+
compile 'com.google.android.gms:play-services-wearable:@@play_services_version@@'
34+
compile 'com.android.support:support-v13:@@support_version@@'
3535
wearApp project(':wear')
3636
}

templates/WearableBuild.gradle.tmpl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,10 @@ android {
2020

2121
dependencies {
2222
compile fileTree(dir: 'libs', include: ['*.jar'])
23-
compile 'com.android.support:palette-v7:25.1.0'
24-
compile 'com.google.android.gms:play-services-fitness:10.0.1'
25-
compile 'com.google.android.gms:play-services-wearable:10.0.1'
26-
compile 'com.android.support:support-v13:25.0.1'
23+
compile 'com.android.support:palette-v7:@@support_version@@'
24+
compile 'com.google.android.gms:play-services-fitness:@@play_services_version@@'
25+
compile 'com.google.android.gms:play-services-wearable:@@play_services_version@@'
26+
compile 'com.android.support:support-v13:@@support_version@@'
2727
provided 'com.google.android.wearable:wearable:@@wear_version@@'
2828
compile 'com.google.android.support:wearable:@@wear_version@@'
2929
compile files('libs/processing-core.jar')

0 commit comments

Comments
 (0)