Skip to content

Commit 6308d78

Browse files
committed
gradle export of watchface apps
1 parent 9425bff commit 6308d78

File tree

3 files changed

+125
-8
lines changed

3 files changed

+125
-8
lines changed

src/processing/mode/android/AndroidBuild.java

Lines changed: 59 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ class AndroidBuild extends JavaBuild {
7272
static private final String TOP_GRADLE_BUILD_TEMPLATE = "TopBuild.gradle.tmpl";
7373
static private final String GRADLE_SETTINGS_TEMPLATE = "Settings.gradle.tmpl";
7474
static private final String FRAGMENT_GRADLE_BUILD_TEMPLATE = "FragmentBuild.gradle.tmpl";
75+
static private final String HANDHELD_GRADLE_BUILD_TEMPLATE = "HandheldBuild.gradle.tmpl";
76+
static private final String WEARABLE_GRADLE_BUILD_TEMPLATE = "WearableBuild.gradle.tmpl";
7577

7678
// TODO: ask base package name when exporting signed apk
7779
// static final String basePackage = "changethispackage.beforesubmitting.tothemarket";
@@ -1521,7 +1523,7 @@ protected void createGradleProject(File projectFolder, File exportFolder) throws
15211523
if (appComponent == WATCHFACE) {
15221524
createTopModule(projectFolder, exportFolder, "':mobile', ':wear'");
15231525
createMobileModule(projectFolder, exportFolder, "24.0.1");
1524-
createWearModule(projectFolder, exportFolder, "24.0.1");
1526+
createWearModule(new File(projectFolder, "wear"), exportFolder, "24.0.1");
15251527
} else {
15261528
createTopModule(projectFolder, exportFolder, "':app'");
15271529
createAppModule(projectFolder, exportFolder, "24.0.1");
@@ -1553,12 +1555,11 @@ private void createTopModule(File projectFolder, File exportFolder,
15531555

15541556
private void createAppModule(File projectFolder, File exportFolder, String buildToolsVer)
15551557
throws SketchException, IOException {
1556-
File appFolder = mkdirs(exportFolder, "app");
1558+
File moduleFolder = mkdirs(exportFolder, "app");
15571559

15581560
File appBuildTemplate = mode.getContentFile("templates/" + FRAGMENT_GRADLE_BUILD_TEMPLATE);
1559-
File appBuildFile = new File(appFolder, "build.gradle");
1560-
HashMap<String, String> replaceMap = new HashMap<String, String>();
1561-
1561+
File appBuildFile = new File(moduleFolder, "build.gradle");
1562+
HashMap<String, String> replaceMap = new HashMap<String, String>();
15621563
replaceMap.put("@@build_tools@@", buildToolsVer);
15631564
replaceMap.put("@@package_name@@", getPackageName());
15641565
replaceMap.put("@@min_sdk@@", AndroidBuild.min_sdk_fragment);
@@ -1567,14 +1568,14 @@ private void createAppModule(File projectFolder, File exportFolder, String build
15671568
replaceMap.put("@@version_name@@", manifest.getVersionName());
15681569
AndroidMode.createFileFromTemplate(appBuildTemplate, appBuildFile, replaceMap);
15691570

1570-
writeFile(new File(appFolder, "proguard-rules.pro"),
1571+
writeFile(new File(moduleFolder, "proguard-rules.pro"),
15711572
new String[]{"# Add project specific ProGuard rules here."});
15721573

15731574
File coreFile = new File(projectFolder, "libs/processing-core.jar");
1574-
File libsFolder = mkdirs(appFolder, "libs");
1575+
File libsFolder = mkdirs(moduleFolder, "libs");
15751576
Util.copyFile(coreFile, new File(libsFolder, "processing-core.jar"));
15761577

1577-
File mainFolder = mkdirs(appFolder, "src/main");
1578+
File mainFolder = mkdirs(moduleFolder, "src/main");
15781579
File javaFolder = mkdirs(mainFolder, "java");
15791580
File resFolder = mkdirs(mainFolder, "res");
15801581

@@ -1586,12 +1587,62 @@ private void createAppModule(File projectFolder, File exportFolder, String build
15861587

15871588
private void createMobileModule(File projectFolder, File exportFolder, String buildToolsVer)
15881589
throws SketchException, IOException {
1590+
File moduleFolder = mkdirs(exportFolder, "mobile");
1591+
1592+
File appBuildTemplate = mode.getContentFile("templates/" + HANDHELD_GRADLE_BUILD_TEMPLATE);
1593+
File appBuildFile = new File(moduleFolder, "build.gradle");
1594+
HashMap<String, String> replaceMap = new HashMap<String, String>();
1595+
replaceMap.put("@@build_tools@@", buildToolsVer);
1596+
replaceMap.put("@@package_name@@", getPackageName());
1597+
replaceMap.put("@@min_sdk@@", AndroidBuild.min_sdk_handheld);
1598+
replaceMap.put("@@target_sdk@@", AndroidBuild.target_sdk);
1599+
replaceMap.put("@@version_code@@", manifest.getVersionCode());
1600+
replaceMap.put("@@version_name@@", manifest.getVersionName());
1601+
AndroidMode.createFileFromTemplate(appBuildTemplate, appBuildFile, replaceMap);
1602+
1603+
writeFile(new File(moduleFolder, "proguard-rules.pro"),
1604+
new String[]{"# Add project specific ProGuard rules here."});
1605+
1606+
File mainFolder = mkdirs(moduleFolder, "src/main");
1607+
File javaFolder = mkdirs(mainFolder, "java");
1608+
File resFolder = mkdirs(mainFolder, "res");
15891609

1610+
Util.copyFile(new File(projectFolder, "AndroidManifest.xml"),
1611+
new File(mainFolder, "AndroidManifest.xml"));
1612+
Util.copyDir(new File(projectFolder, "res"), resFolder);
1613+
Util.copyDir(new File(projectFolder, "src"), javaFolder);
15901614
}
15911615

15921616
private void createWearModule(File projectFolder, File exportFolder, String buildToolsVer)
15931617
throws SketchException, IOException {
1618+
File moduleFolder = mkdirs(exportFolder, "wear");
15941619

1620+
File appBuildTemplate = mode.getContentFile("templates/" + WEARABLE_GRADLE_BUILD_TEMPLATE);
1621+
File appBuildFile = new File(moduleFolder, "build.gradle");
1622+
HashMap<String, String> replaceMap = new HashMap<String, String>();
1623+
replaceMap.put("@@build_tools@@", buildToolsVer);
1624+
replaceMap.put("@@package_name@@", getPackageName());
1625+
replaceMap.put("@@min_sdk@@", AndroidBuild.min_sdk_watchface);
1626+
replaceMap.put("@@target_sdk@@", AndroidBuild.target_sdk);
1627+
replaceMap.put("@@version_code@@", manifest.getVersionCode());
1628+
replaceMap.put("@@version_name@@", manifest.getVersionName());
1629+
AndroidMode.createFileFromTemplate(appBuildTemplate, appBuildFile, replaceMap);
1630+
1631+
writeFile(new File(moduleFolder, "proguard-rules.pro"),
1632+
new String[]{"# Add project specific ProGuard rules here."});
1633+
1634+
File coreFile = new File(projectFolder, "libs/processing-core.jar");
1635+
File libsFolder = mkdirs(moduleFolder, "libs");
1636+
Util.copyFile(coreFile, new File(libsFolder, "processing-core.jar"));
1637+
1638+
File mainFolder = mkdirs(moduleFolder, "src/main");
1639+
File javaFolder = mkdirs(mainFolder, "java");
1640+
File resFolder = mkdirs(mainFolder, "res");
1641+
1642+
Util.copyFile(new File(projectFolder, "AndroidManifest.xml"),
1643+
new File(mainFolder, "AndroidManifest.xml"));
1644+
Util.copyDir(new File(projectFolder, "res"), resFolder);
1645+
Util.copyDir(new File(projectFolder, "src"), javaFolder);
15951646
}
15961647

15971648
private void writeFile(final File file, String[] lines) {

templates/HandheldBuild.gradle.tmpl

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
apply plugin: 'com.android.application'
2+
3+
android {
4+
compileSdkVersion @@target_sdk@@
5+
buildToolsVersion "@@build_tools@@"
6+
defaultConfig {
7+
applicationId "@@package_name@@"
8+
minSdkVersion @@min_sdk@@
9+
targetSdkVersion @@target_sdk@@
10+
versionCode @@version_code@@
11+
versionName "@@version_name@@"
12+
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
13+
}
14+
buildTypes {
15+
release {
16+
minifyEnabled false
17+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18+
}
19+
}
20+
}
21+
22+
dependencies {
23+
compile fileTree(dir: 'libs', include: ['*.jar'])
24+
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
25+
exclude group: 'com.android.support', module: 'support-annotations'
26+
})
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"
31+
compile 'com.google.android.support:wearable:2.0.0'
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'
35+
wearApp project(':wear')
36+
}

templates/WearableBuild.gradle.tmpl

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
apply plugin: 'com.android.application'
2+
3+
android {
4+
compileSdkVersion @@target_sdk@@
5+
buildToolsVersion "@@build_tools@@"
6+
defaultConfig {
7+
applicationId "@@package_name@@"
8+
minSdkVersion @@min_sdk@@
9+
targetSdkVersion @@target_sdk@@
10+
versionCode @@version_code@@
11+
versionName "@@version_name@@"
12+
}
13+
buildTypes {
14+
release {
15+
minifyEnabled false
16+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17+
}
18+
}
19+
}
20+
21+
dependencies {
22+
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'
27+
provided 'com.google.android.wearable:wearable:2.0.0'
28+
compile 'com.google.android.support:wearable:2.0.0'
29+
compile files('libs/processing-core.jar')
30+
}

0 commit comments

Comments
 (0)