diff --git a/.editorconfig b/.editorconfig index f37e5e5e404..d1181ad6329 100644 --- a/.editorconfig +++ b/.editorconfig @@ -3,8 +3,9 @@ root = true # Most of the standard properties are supported max_line_length=100 +[*.{java,kt,kts}] +ktlint_standard_max-line-length=disabled # don't use wildcard for Java/Kotlin imports -[*.{java,kt}] wildcard_import_limit = 999 ij_kotlin_name_count_to_use_star_import = 999 -ij_kotlin_name_count_to_use_star_import_for_members = 999 \ No newline at end of file +ij_kotlin_name_count_to_use_star_import_for_members = 999 diff --git a/benchmark/build.gradle.kts b/benchmark/build.gradle.kts index 015e5deef2e..27bab61787f 100644 --- a/benchmark/build.gradle.kts +++ b/benchmark/build.gradle.kts @@ -13,29 +13,16 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -import io.getstream.video.configureFlavors - -@Suppress("DSL_SCOPE_VIOLATION") plugins { - id(libs.plugins.android.test.get().pluginId) - id(libs.plugins.kotlin.android.get().pluginId) - id(libs.plugins.baseline.profile.get().pluginId) - id("io.getstream.spotless") + alias(libs.plugins.stream.android.test) + alias(libs.plugins.baseline.profile) + id("io.getstream.video.android.demoflavor") } android { namespace = "io.getstream.video.android.benchmark" compileSdk = libs.versions.compileSdk.get().toInt() - compileOptions { - sourceCompatibility = JavaVersion.VERSION_11 - targetCompatibility = JavaVersion.VERSION_11 - } - - kotlinOptions { - jvmTarget = "11" - } - defaultConfig { minSdk = libs.versions.minSdk.get().toInt() targetSdk = libs.versions.targetSdk.get().toInt() @@ -62,17 +49,6 @@ android { } } - // Use the same flavor dimensions as the application to allow generating Baseline Profiles on prod, - // which is more close to what will be shipped to users (no fake data), but has ability to run the - // benchmarks on demo, so we benchmark on stable data. - configureFlavors(this) { flavor -> - buildConfigField( - "String", - "APP_FLAVOR_SUFFIX", - "\"${flavor.applicationIdSuffix ?: ""}\"" - ) - } - targetProjectPath = ":demo-app" testOptions.managedDevices.devices { diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts index b41e20baf5f..0290acae97b 100644 --- a/build-logic/convention/build.gradle.kts +++ b/build-logic/convention/build.gradle.kts @@ -9,7 +9,6 @@ java { targetCompatibility = JavaVersion.VERSION_17 } -@Suppress("DSL_SCOPE_VIOLATION") dependencies { compileOnly(libs.android.gradlePlugin) compileOnly(libs.kotlin.gradlePlugin) @@ -35,9 +34,9 @@ gradlePlugin { id = "io.getstream.video.android.library" implementationClass = "AndroidLibraryConventionPlugin" } - register("spotless") { - id = "io.getstream.spotless" - implementationClass = "SpotlessConventionPlugin" + register("demoFlavorConvention") { + id = "io.getstream.video.android.demoflavor" + implementationClass = "DemoFlavorConventionPlugin" } } } diff --git a/build-logic/convention/src/main/kotlin/DemoFlavorConventionPlugin.kt b/build-logic/convention/src/main/kotlin/DemoFlavorConventionPlugin.kt new file mode 100644 index 00000000000..90abed6f1ed --- /dev/null +++ b/build-logic/convention/src/main/kotlin/DemoFlavorConventionPlugin.kt @@ -0,0 +1,19 @@ +import com.android.build.api.dsl.ApplicationExtension +import com.android.build.api.dsl.TestExtension +import io.getstream.video.configureFlavors +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure + +class DemoFlavorConventionPlugin : Plugin { + override fun apply(target: Project) { + with(target) { + pluginManager.withPlugin("com.android.application") { + extensions.configure(::configureFlavors) + } + pluginManager.withPlugin("com.android.test") { + extensions.configure(::configureFlavors) + } + } + } +} diff --git a/build-logic/convention/src/main/kotlin/SpotlessConventionPlugin.kt b/build-logic/convention/src/main/kotlin/SpotlessConventionPlugin.kt deleted file mode 100644 index e4b0ee4fd02..00000000000 --- a/build-logic/convention/src/main/kotlin/SpotlessConventionPlugin.kt +++ /dev/null @@ -1,55 +0,0 @@ -import com.diffplug.gradle.spotless.SpotlessExtension -import com.diffplug.spotless.kotlin.KotlinConstants -import org.gradle.api.Plugin -import org.gradle.api.Project -import org.gradle.kotlin.dsl.configure - -class SpotlessConventionPlugin : Plugin { - override fun apply(target: Project) { - with(target) { - pluginManager.apply("com.diffplug.spotless") - - extensions.configure { - kotlin { - target("**/*.kt") - targetExclude( - "**/build/**/*.kt", // Build directory - "**/generated/**" // OpenAPI generated code - ) - ktlint() - .editorConfigOverride( - mapOf( - "ktlint_standard_max-line-length" to "disabled" - ) - ) - trimTrailingWhitespace() - endWithNewline() - licenseHeaderFile(rootProject.file("$rootDir/spotless/copyright.kt")) - } - format("openapiGenerated") { - target("**/*.kt") - targetExclude("**/build/**/*.kt", "**/generated/**") - trimTrailingWhitespace() - endWithNewline() - licenseHeaderFile(rootProject.file("$rootDir/spotless/copyright.kt"), - KotlinConstants.LICENSE_HEADER_DELIMITER) - } - format("kts") { - target("**/*.kts") - targetExclude("**/build/**/*.kts") - // Look for the first line that doesn't have a block comment (assumed to be the license) - licenseHeaderFile( - rootProject.file("spotless/copyright.kts"), - "(^(?![\\/ ]\\*).*$)" - ) - } - format("xml") { - target("**/*.xml") - targetExclude("**/build/**/*.xml") - // Look for the first XML tag that isn't a comment ( diff --git a/stream-video-android-core/build.gradle.kts b/stream-video-android-core/build.gradle.kts index 35af273dec5..bf7352a510e 100644 --- a/stream-video-android-core/build.gradle.kts +++ b/stream-video-android-core/build.gradle.kts @@ -22,7 +22,6 @@ plugins { alias(libs.plugins.maven.publish) id("io.getstream.video.android.library") id("io.getstream.video.generateServices") - id("io.getstream.spotless") id(libs.plugins.kotlin.serialization.get().pluginId) id(libs.plugins.kotlin.parcelize.get().pluginId) id(libs.plugins.wire.get().pluginId) diff --git a/stream-video-android-filters-video/build.gradle.kts b/stream-video-android-filters-video/build.gradle.kts index 96c19596418..9aac20755f8 100644 --- a/stream-video-android-filters-video/build.gradle.kts +++ b/stream-video-android-filters-video/build.gradle.kts @@ -19,7 +19,6 @@ import io.getstream.video.android.Configuration plugins { alias(libs.plugins.maven.publish) id("io.getstream.video.android.library") - id("io.getstream.spotless") } android { diff --git a/stream-video-android-previewdata/build.gradle.kts b/stream-video-android-previewdata/build.gradle.kts index 5c025c51caa..2c5d4b56ef6 100644 --- a/stream-video-android-previewdata/build.gradle.kts +++ b/stream-video-android-previewdata/build.gradle.kts @@ -19,7 +19,6 @@ import io.getstream.video.android.Configuration plugins { alias(libs.plugins.maven.publish) id("io.getstream.video.android.library") - id("io.getstream.spotless") } android { diff --git a/stream-video-android-ui-compose/build.gradle.kts b/stream-video-android-ui-compose/build.gradle.kts index 0acb0d33bfd..4f2020e78ff 100644 --- a/stream-video-android-ui-compose/build.gradle.kts +++ b/stream-video-android-ui-compose/build.gradle.kts @@ -19,7 +19,6 @@ import io.getstream.video.android.Configuration plugins { alias(libs.plugins.maven.publish) id("io.getstream.video.android.library.compose") - id("io.getstream.spotless") } android { diff --git a/stream-video-android-ui-core/build.gradle.kts b/stream-video-android-ui-core/build.gradle.kts index bd4b4f52229..e8db1adee3e 100644 --- a/stream-video-android-ui-core/build.gradle.kts +++ b/stream-video-android-ui-core/build.gradle.kts @@ -19,7 +19,6 @@ import io.getstream.video.android.Configuration plugins { alias(libs.plugins.maven.publish) id("io.getstream.video.android.library") - id("io.getstream.spotless") } android { diff --git a/stream-video-android-ui-xml/build.gradle.kts b/stream-video-android-ui-xml/build.gradle.kts index 95b778e8403..488545a5abb 100644 --- a/stream-video-android-ui-xml/build.gradle.kts +++ b/stream-video-android-ui-xml/build.gradle.kts @@ -19,7 +19,6 @@ import io.getstream.video.android.Configuration plugins { alias(libs.plugins.maven.publish) id("io.getstream.video.android.library") - id("io.getstream.spotless") } android { diff --git a/tutorials/tutorial-audio/build.gradle.kts b/tutorials/tutorial-audio/build.gradle.kts index ddf22be4c63..e3fdfff5b56 100644 --- a/tutorials/tutorial-audio/build.gradle.kts +++ b/tutorials/tutorial-audio/build.gradle.kts @@ -15,10 +15,8 @@ */ @file:Suppress("UnstableApiUsage") -@Suppress("DSL_SCOPE_VIOLATION") plugins { id("io.getstream.video.android.application.compose") - id("io.getstream.spotless") } android { diff --git a/tutorials/tutorial-livestream/build.gradle.kts b/tutorials/tutorial-livestream/build.gradle.kts index e4c54432ff0..ddeaf6cdb5f 100644 --- a/tutorials/tutorial-livestream/build.gradle.kts +++ b/tutorials/tutorial-livestream/build.gradle.kts @@ -15,10 +15,8 @@ */ @file:Suppress("UnstableApiUsage") -@Suppress("DSL_SCOPE_VIOLATION") plugins { id("io.getstream.video.android.application.compose") - id("io.getstream.spotless") } android { diff --git a/tutorials/tutorial-ringing/build.gradle.kts b/tutorials/tutorial-ringing/build.gradle.kts index e1122117d4e..461f973fae9 100644 --- a/tutorials/tutorial-ringing/build.gradle.kts +++ b/tutorials/tutorial-ringing/build.gradle.kts @@ -15,11 +15,8 @@ */ @file:Suppress("UnstableApiUsage") -@Suppress("DSL_SCOPE_VIOLATION") plugins { id("io.getstream.video.android.application.compose") - id("io.getstream.spotless") - id("com.google.gms.google-services") } diff --git a/tutorials/tutorial-video/build.gradle.kts b/tutorials/tutorial-video/build.gradle.kts index 47b95626bca..60dafceb3ef 100644 --- a/tutorials/tutorial-video/build.gradle.kts +++ b/tutorials/tutorial-video/build.gradle.kts @@ -15,10 +15,8 @@ */ @file:Suppress("UnstableApiUsage") -@Suppress("DSL_SCOPE_VIOLATION") plugins { id("io.getstream.video.android.application.compose") - id("io.getstream.spotless") } android {