Skip to content

Commit 2104e70

Browse files
Kotlinで構成されたAndroid版プラグインのソースコード を生成するテンプレートを追加した。
1 parent a6fa4bf commit 2104e70

61 files changed

Lines changed: 2659 additions & 5 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

modules/deviceconnect-codegen/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>org.deviceconnect</groupId>
66
<artifactId>deviceconnect-codegen</artifactId>
7-
<version>1.9.1</version>
7+
<version>1.9.2</version>
88

99
<packaging>jar</packaging>
1010

modules/deviceconnect-codegen/src/main/java/org/deviceconnect/codegen/plugin/AndroidPluginCodegenConfig.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,10 +299,10 @@ public void processOpts() {
299299

300300
// 実装ファイル (全プラグイン共通)
301301
final String packageFolder = getPluginPackageRootDir();
302-
supportingFiles.add(new SupportingFile("java/MessageServiceProvider.java.mustache", packageFolder, messageServiceProviderClass + ".java"));
302+
supportingFiles.add(new SupportingFile("java/MessageServiceProvider.kt.mustache", packageFolder, messageServiceProviderClass + ".java"));
303303
supportingFiles.add(new SupportingFile("java/MessageService.java.mustache", packageFolder, messageServiceClass + ".java"));
304-
supportingFiles.add(new SupportingFile("java/SystemProfile.java.mustache", packageFolder + File.separator + "profiles", classPrefix + "SystemProfile.java"));
305-
supportingFiles.add(new SupportingFile("java/SettingActivity.java.mustache", packageFolder, classPrefix + "SettingActivity.java"));
304+
supportingFiles.add(new SupportingFile("java/SystemProfile.kt.mustache", packageFolder + File.separator + "profiles", classPrefix + "SystemProfile.java"));
305+
supportingFiles.add(new SupportingFile("java/SettingActivity.kt.mustache", packageFolder, classPrefix + "SettingActivity.java"));
306306
if (connectionType == ConnectionType.BROADCAST) {
307307
additionalProperties.put("launchServiceClass", classPrefix + "LaunchService");
308308
supportingFiles.add(new SupportingFile("java/LaunchService.java.mustache", packageFolder, classPrefix + "LaunchService.java"));

modules/deviceconnect-codegen/src/main/java/org/deviceconnect/codegen/plugin/KotlinPluginCodegenConfig.java

Lines changed: 945 additions & 0 deletions
Large diffs are not rendered by default.

modules/deviceconnect-codegen/src/main/resources/META-INF/services/org.deviceconnect.codegen.DConnectCodegenConfig

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ org.deviceconnect.codegen.app.HtmlAppCodegenConfig
22
org.deviceconnect.codegen.docs.HtmlDocsCodegenConfig
33
org.deviceconnect.codegen.docs.MarkdownDocsCodegenConfig
44
org.deviceconnect.codegen.plugin.AndroidPluginCodegenConfig
5+
org.deviceconnect.codegen.plugin.KotlinPluginCodegenConfig
56
org.deviceconnect.codegen.plugin.IosPluginCodegenConfig
67
org.deviceconnect.codegen.plugin.NodePluginCodegenConfig
78
org.deviceconnect.codegen.server.EmulatorCodegenConfig
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# {{displayName}}
2+
3+
## 開発環境
4+
Android Studio 3.6.2以上
5+
6+
## サポートするプロファイル
7+
{{#supportedProfileNames}}
8+
- {{name}}
9+
{{/supportedProfileNames}}
10+
11+
## 要実装箇所
12+
下記のjavaファイルにTODOを記載しています。プラグインの要件に合わせて実装してください。
13+
14+
{{#supportedProfileClasses}}
15+
- {{name}}.java
16+
{{/supportedProfileClasses}}
17+
- {{messageServiceClass}}.java
18+
19+
20+
## 関連ページ
21+
- [Device Connect プラグイン開発マニュアル](https://github.com/DeviceConnect/DeviceConnect-Android/wiki/Plugin-Development-Manual-for-Plugin-SDK-ver-2.8.4-For-Kotlin)
22+
23+
## テスト
24+
以下は config オプションのテストです。
25+
26+
testString: {{testString}}
27+
testInt: {{testInt}}
28+
testNumber: {{testNumber}}
29+
testBoolean: {{testBoolean}}
30+
testObject: {{#testObject}}{{objKey}}{{/testObject}}
31+
testArray: {{#testArray}}{{.}} {{/testArray}}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
gpr.usr={{githubAccountName}}
2+
gpr.key={{githubAccountKey}}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
storeFile=YOUR_STORE_FILE
2+
storePassword=YOUR_STORE_PASSWORD
3+
keyAlias=YOUR_KEY_ALIAS
4+
keyPassword=YOUR_KEY_PASSWORD
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
apply plugin: 'com.android.application'
2+
apply plugin: 'kotlin-android'
3+
apply plugin: 'kotlin-android-extensions'
4+
// Create github.properties in root project folder file with
5+
// gpr.usr=GITHUB_USER_ID
6+
// gpr.key=PERSONAL_ACCESS_TOKEN
7+
def githubPropertiesFile = rootProject.file("github.properties")
8+
def githubProperties = new Properties()
9+
if (githubPropertiesFile.exists()) {
10+
githubProperties.load(new FileInputStream(githubPropertiesFile))
11+
}
12+
13+
dependencies {
14+
implementation fileTree(include: '*.jar', dir: 'libs')
15+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
16+
implementation 'org.deviceconnect:dconnect-device-plugin-sdk:{{{deviceConnectPluginSdkVersion}}}'
17+
}
18+
19+
android {
20+
21+
compileSdkVersion {{compileSdkVersion}}
22+
23+
defaultConfig {
24+
applicationId "{{invokerPackage}}"
25+
minSdkVersion {{minSdkVersion}}
26+
targetSdkVersion {{targetSdkVersion}}
27+
versionCode 1
28+
versionName '1.0.0'
29+
}
30+
31+
compileOptions {
32+
sourceCompatibility 1.8
33+
targetCompatibility 1.8
34+
}
35+
36+
signingConfigs {
37+
releaseConfig {
38+
storeFile=file(project.properties.storeFile)
39+
storePassword=project.properties.storePassword
40+
keyAlias=project.properties.keyAlias
41+
keyPassword=project.properties.keyPassword
42+
}
43+
}
44+
45+
buildTypes {
46+
release {
47+
minifyEnabled false
48+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
49+
signingConfig signingConfigs.releaseConfig
50+
}
51+
}
52+
53+
packagingOptions {
54+
exclude 'LICENSE.txt'
55+
exclude 'META-INF/DEPENDENCIES'
56+
exclude 'META-INF/LICENSE'
57+
exclude 'META-INF/NOTICE'
58+
}
59+
60+
tasks.withType(JavaCompile) {
61+
options.encoding = 'UTF-8'
62+
}
63+
repositories {
64+
maven {
65+
name = "DeviceConnect-Android"
66+
url = uri("https://maven.pkg.github.com/DeviceConnect/DeviceConnect-Android")
67+
68+
credentials {
69+
username = System.getenv("GPR_USER") ?: githubProperties['gpr.usr']
70+
password = System.getenv("GPR_API_KEY") ?: githubProperties['gpr.key']
71+
}
72+
}
73+
}
74+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
apply plugin: 'com.android.application'
2+
apply plugin: 'kotlin-android'
3+
apply plugin: 'kotlin-android-extensions'
4+
5+
dependencies {
6+
implementation fileTree(include: '*.jar', dir: 'libs')
7+
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
8+
implementation 'org.deviceconnect:dconnect-device-plugin-sdk:{{{deviceConnectPluginSdkVersion}}}'
9+
}
10+
11+
repositories {
12+
maven { url 'https://raw.githubusercontent.com/DeviceConnect/DeviceConnect-Android/master/dConnectSDK/dConnectSDKForAndroid/repository/' }
13+
maven { url 'https://raw.githubusercontent.com/DeviceConnect/DeviceConnect-Android/master/dConnectDevicePlugin/dConnectDevicePluginSDK/repository/' }
14+
}
15+
16+
android {
17+
18+
compileSdkVersion {{compileSdkVersion}}
19+
20+
defaultConfig {
21+
applicationId "{{invokerPackage}}"
22+
minSdkVersion {{minSdkVersion}}
23+
targetSdkVersion {{targetSdkVersion}}
24+
versionCode 1
25+
versionName '1.0.0'
26+
}
27+
28+
compileOptions {
29+
sourceCompatibility 1.8
30+
targetCompatibility 1.8
31+
}
32+
33+
signingConfigs {
34+
releaseConfig {
35+
storeFile=file(project.properties.storeFile)
36+
storePassword=project.properties.storePassword
37+
keyAlias=project.properties.keyAlias
38+
keyPassword=project.properties.keyPassword
39+
}
40+
}
41+
42+
buildTypes {
43+
release {
44+
minifyEnabled false
45+
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
46+
signingConfig signingConfigs.releaseConfig
47+
}
48+
}
49+
50+
packagingOptions {
51+
exclude 'LICENSE.txt'
52+
exclude 'META-INF/DEPENDENCIES'
53+
exclude 'META-INF/LICENSE'
54+
exclude 'META-INF/NOTICE'
55+
}
56+
57+
tasks.withType(JavaCompile) {
58+
options.encoding = 'UTF-8'
59+
}
60+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
buildscript {
2+
ext.kotlin_version = '1.3.61'
3+
repositories {
4+
google()
5+
jcenter()
6+
}
7+
dependencies {
8+
classpath 'com.android.tools.build:gradle:{{{gradlePluginVersion}}}'
9+
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
10+
}
11+
}
12+
13+
allprojects {
14+
repositories {
15+
google()
16+
jcenter()
17+
}
18+
}
19+
20+
task clean(type: Delete) {
21+
delete rootProject.buildDir
22+
}

0 commit comments

Comments
 (0)