Skip to content

Commit 2ec87ff

Browse files
committed
release: SDK 3.0.0
1 parent 0663efe commit 2ec87ff

File tree

184 files changed

+22309
-4030
lines changed

Some content is hidden

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

184 files changed

+22309
-4030
lines changed

Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,7 @@ aar:
99

1010
clean:
1111
rm -f public-sdk/Batch.aar
12-
cd Sources && ./gradlew clean
12+
cd Sources && ./gradlew clean
13+
14+
doc:
15+
cd Sources && ./gradlew :sdk:dokkaGeneratePublicationHtml

Sources/.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,7 @@
2727
**/.idea/saveactions_settings.xml
2828
**/.idea/assetWizardSettings.xml
2929
**/.idea/jarRepositories.xml
30+
**/.idea/AndroidProjectSystem.xml
31+
**/.idea/RunConfigurations.xml
3032

3133
**/.idea/compiler.xml

Sources/build.gradle.kts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
// Top-level build file where you can add configuration options common to all sub-projects/modules.
22

33
plugins {
4-
id("com.android.application") version ProjectConsts.ANDROID_GRADLE_PLUGIN_VERSION apply false
5-
id("com.android.library") version ProjectConsts.ANDROID_GRADLE_PLUGIN_VERSION apply false
6-
id("org.jetbrains.kotlin.android") version ProjectConsts.KOTLIN_VERSION apply false
7-
id("com.google.gms.google-services") version ProjectConsts.GMS_GRADLE_PLUGIN_VERSION apply false
8-
id("io.codearte.nexus-staging") version "0.30.0"
9-
id("org.sonarqube") version "4.2.1.3168"
4+
alias(libs.plugins.android.application) apply false
5+
alias(libs.plugins.android.library) apply false
6+
alias(libs.plugins.kotlin.android) apply false
7+
alias(libs.plugins.kotlin.jvm) apply false
8+
alias(libs.plugins.gms.google.services) apply false
9+
alias(libs.plugins.testify) apply false
10+
alias(libs.plugins.nexus.staging)
11+
alias(libs.plugins.dokka)
12+
alias(libs.plugins.kfmt)
1013
}

Sources/buildSrc/build.gradle.kts

Lines changed: 0 additions & 7 deletions
This file was deleted.

Sources/buildSrc/src/main/java/Consts.kt

Lines changed: 0 additions & 32 deletions
This file was deleted.
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
plugins {
2+
id("org.jetbrains.kotlin.jvm")
3+
}
4+
5+
dependencies {
6+
compileOnly(libs.dokka.core)
7+
implementation(libs.dokka.base)
8+
testImplementation(libs.kotlin.test)
9+
testImplementation(libs.dokka.base.test.utils)
10+
testImplementation(libs.dokka.test.api)
11+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package com.batch.dokka.plugin
2+
3+
import org.jetbrains.dokka.base.DokkaBase
4+
import org.jetbrains.dokka.plugability.DokkaPlugin
5+
import org.jetbrains.dokka.plugability.DokkaPluginApiPreview
6+
import org.jetbrains.dokka.plugability.PluginApiPreviewAcknowledgement
7+
8+
class FilterPublicSDKClassesPlugin : DokkaPlugin() {
9+
10+
val filterExtension by extending {
11+
plugin<DokkaBase>().preMergeDocumentableTransformer providing ::FilterPublicSDKClassesTransformer
12+
}
13+
14+
@OptIn(DokkaPluginApiPreview::class)
15+
override fun pluginApiPreviewAcknowledgement() = PluginApiPreviewAcknowledgement
16+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.batch.dokka.plugin
2+
3+
import org.jetbrains.dokka.base.transformers.documentables.SuppressedByConditionDocumentableFilterTransformer
4+
import org.jetbrains.dokka.model.Annotations
5+
import org.jetbrains.dokka.model.DClasslike
6+
import org.jetbrains.dokka.model.Documentable
7+
import org.jetbrains.dokka.model.properties.WithExtraProperties
8+
import org.jetbrains.dokka.plugability.DokkaContext
9+
10+
class FilterPublicSDKClassesTransformer(
11+
context: DokkaContext,
12+
) : SuppressedByConditionDocumentableFilterTransformer(context) {
13+
14+
override fun shouldBeSuppressed(d: Documentable): Boolean {
15+
16+
// Non class types are public, as otherwise dokka will skip complete packages
17+
// Enums, fields, etc are also public as all that matters is the Class' PublicSDK
18+
// annotation.
19+
val isPublic = when (d) {
20+
is DClasslike -> d.isBatchPublicSDK()
21+
else -> true
22+
}
23+
24+
if (!isPublic) {
25+
context.logger.warn("Suppressing non-PublicSDK documentable '${d.name}'")
26+
}
27+
28+
return !isPublic
29+
}
30+
}
31+
32+
fun DClasslike.isBatchPublicSDK(): Boolean {
33+
val annotations: List<Annotations.Annotation> =
34+
(this as? WithExtraProperties<*>)
35+
?.extra
36+
?.allOfType<Annotations>()
37+
?.flatMap { a -> a.directAnnotations.flatMap { it.value } }
38+
?: emptyList()
39+
40+
return annotations.any { it.isBatchPublicSDK() }
41+
}
42+
43+
fun Annotations.Annotation.isBatchPublicSDK(): Boolean =
44+
dri.packageName == "com.batch.android.annotation" && dri.classNames == "PublicSDK"
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
com.batch.dokka.plugin.FilterPublicSDKClassesPlugin

Sources/gradle.properties

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,3 +20,6 @@ android.useAndroidX=true
2020
android.enableJetifier=false
2121
gnsp.disableApplyOnlyOnRootProjectEnforcement=true
2222
kotlin.stdlib.default.dependency=false
23+
org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled
24+
org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true
25+
ksp.incremental=false

0 commit comments

Comments
 (0)