From 1ee156f480cc96c87c77ab9930781ab9429a8af2 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Wed, 9 Sep 2026 15:56:25 +0200 Subject: [PATCH] Remove Showkase from the project. --- .idea/dictionaries/shared.xml | 1 - docs/_developer_onboarding.md | 8 ++++---- features/preferences/impl/build.gradle.kts | 1 - .../impl/developer/DeveloperSettingsNode.kt | 10 ---------- .../impl/developer/DeveloperSettingsView.kt | 3 --- .../appsettings/AppDeveloperSettingsNode.kt | 10 ---------- .../appsettings/AppDeveloperSettingsPage.kt | 3 --- .../appsettings/AppDeveloperSettingsView.kt | 10 ---------- .../developer/DeveloperSettingsViewTest.kt | 17 ----------------- .../AppDeveloperSettingsPageTest.kt | 17 ----------------- gradle/libs.versions.toml | 4 ---- libraries/compound/build.gradle.kts | 1 - .../showkase/CompoundShowkaseRootModule.kt | 15 --------------- .../compound/tokens/CompoundTypography.kt | 18 +----------------- libraries/designsystem/build.gradle.kts | 10 ---------- libraries/designsystem/consumer-rules.keep | 5 ----- .../designsystem/preview/WithFontScale.kt | 4 ++-- .../showkase/DesignSystemShowkaseRootModule.kt | 15 --------------- .../main/kotlin/extension/KoverExtension.kt | 5 ----- tests/uitests/build.gradle.kts | 2 -- 20 files changed, 7 insertions(+), 152 deletions(-) delete mode 100644 libraries/compound/src/main/kotlin/io/element/android/compound/showkase/CompoundShowkaseRootModule.kt delete mode 100644 libraries/designsystem/consumer-rules.keep delete mode 100644 libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/showkase/DesignSystemShowkaseRootModule.kt diff --git a/.idea/dictionaries/shared.xml b/.idea/dictionaries/shared.xml index 67708285c3..2f930fb803 100644 --- a/.idea/dictionaries/shared.xml +++ b/.idea/dictionaries/shared.xml @@ -16,7 +16,6 @@ posthog rageshake securebackup - showkase snackbar spdx swipeable diff --git a/docs/_developer_onboarding.md b/docs/_developer_onboarding.md index 01ad915126..6a84149a47 100644 --- a/docs/_developer_onboarding.md +++ b/docs/_developer_onboarding.md @@ -358,7 +358,8 @@ Some dependency, mainly because they are not shared can be declared in `build.gr We have 3 tests frameworks in place, and this should be sufficient to guarantee a good code coverage and limit regressions hopefully: - Maestro to test the global usage of the application. See the related [documentation](../.maestro/README.md). -- Combination of [Showkase](https://github.com/airbnb/Showkase) and [Paparazzi](https://github.com/cashapp/paparazzi), to test UI pixel perfect. To add test, +- Combination of [Paparazzi](https://github.com/cashapp/paparazzi) and + [ComposablePreviewScanner](https://github.com/sergio-sastre/ComposablePreviewScanner), to test UI pixel perfect. To add test, just add `@Preview` for the composable you are adding. See the related [documentation](screenshot_testing.md) and see in the template the file [TemplateView.kt](../features/template/src/main/kotlin/io/element/android/features/template/TemplateView.kt). We create PreviewParam classes to provide different states. See for instance the @@ -449,9 +450,8 @@ number at the bottom 7 times. After tapping, a new "Developer options" entry wil at the bottom of the list. The developer options include feature flags, notification/push history, Element call -customization, Rust SDK log levels, per-feature tracing toggles, Showkase to debug UI -components, rageshake controls, app crash controls, cache details/controls, persistent -storage maintenance tasks. +customization, Rust SDK log levels, per-feature tracing toggles, rageshake controls, app +crash controls, cache details/controls, persistent storage maintenance tasks. Keywords: Developer settings, developer mode diff --git a/features/preferences/impl/build.gradle.kts b/features/preferences/impl/build.gradle.kts index 12554eb6fa..11f863e26d 100644 --- a/features/preferences/impl/build.gradle.kts +++ b/features/preferences/impl/build.gradle.kts @@ -94,7 +94,6 @@ dependencies { implementation(libs.androidx.datastore.preferences) implementation(libs.serialization.json) api(projects.features.preferences.api) - implementation(libs.showkase) implementation(platform(libs.network.okhttp.bom)) implementation(libs.network.okhttp) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsNode.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsNode.kt index 7a8c3222d1..e0b06bbc53 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsNode.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsNode.kt @@ -8,10 +8,8 @@ package io.element.android.features.preferences.impl.developer -import androidx.activity.compose.LocalActivity import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import com.airbnb.android.showkase.models.Showkase import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.plugin.Plugin @@ -20,7 +18,6 @@ import dev.zacsweers.metro.AssistedInject import io.element.android.annotations.ContributesNode import io.element.android.features.preferences.api.ExtraDeveloperOptionsRenderer import io.element.android.libraries.architecture.callback -import io.element.android.libraries.designsystem.showkase.getBrowserIntent import io.element.android.libraries.di.SessionScope @ContributesNode(SessionScope::class) @@ -47,17 +44,10 @@ class DeveloperSettingsNode( @Composable override fun View(modifier: Modifier) { - val activity = requireNotNull(LocalActivity.current) - fun openShowkase() { - val intent = Showkase.getBrowserIntent(activity) - activity.startActivity(intent) - } - val state = presenter.present() DeveloperSettingsView( state = state, modifier = modifier, - onOpenShowkase = ::openShowkase, onPushHistoryClick = callback::navigateToPushHistory, onBackClick = callback::onDone, extraOptions = { extraDeveloperOptionsRenderer.Render(Modifier) }, diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsView.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsView.kt index 8eff49c471..992a7e6212 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsView.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsView.kt @@ -44,7 +44,6 @@ import io.mhssn.colorpicker.ColorPickerType @Composable fun DeveloperSettingsView( state: DeveloperSettingsState, - onOpenShowkase: () -> Unit, onPushHistoryClick: () -> Unit, onBackClick: () -> Unit, modifier: Modifier = Modifier, @@ -84,7 +83,6 @@ fun DeveloperSettingsView( // Note: this is OK to hardcode strings in this debug screen. AppDeveloperSettingsView( state = state.appDeveloperSettingsState, - onOpenShowkase = onOpenShowkase, ) SessionCategory(deviceId = state.deviceId) NotificationCategory( @@ -255,7 +253,6 @@ internal fun DeveloperSettingsViewPreview( ) = ElementPreview { DeveloperSettingsView( state = state, - onOpenShowkase = {}, onPushHistoryClick = {}, onBackClick = {}, ) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsNode.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsNode.kt index 89ef240a95..f73a23063d 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsNode.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsNode.kt @@ -7,10 +7,8 @@ package io.element.android.features.preferences.impl.developer.appsettings -import androidx.activity.compose.LocalActivity import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import com.airbnb.android.showkase.models.Showkase import com.bumble.appyx.core.modality.BuildContext import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.plugin.Plugin @@ -21,7 +19,6 @@ import io.element.android.annotations.ContributesNode import io.element.android.features.preferences.api.ExtraDeveloperOptionsRenderer import io.element.android.features.preferences.api.PreferencesEntryPoint import io.element.android.libraries.architecture.callback -import io.element.android.libraries.designsystem.showkase.getBrowserIntent @ContributesNode(AppScope::class) @AssistedInject @@ -35,17 +32,10 @@ class AppDeveloperSettingsNode( @Composable override fun View(modifier: Modifier) { - val activity = requireNotNull(LocalActivity.current) - fun openShowkase() { - val intent = Showkase.getBrowserIntent(activity) - activity.startActivity(intent) - } - val state = presenter.present() AppDeveloperSettingsPage( state = state, modifier = modifier, - onOpenShowkase = ::openShowkase, onBackClick = callback::onDone, extraOptions = { extraDeveloperOptionsRenderer.Render(Modifier) }, ) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsPage.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsPage.kt index d7d62aa325..34560f9d23 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsPage.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsPage.kt @@ -21,7 +21,6 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight @Composable fun AppDeveloperSettingsPage( state: AppDeveloperSettingsState, - onOpenShowkase: () -> Unit, onBackClick: () -> Unit, modifier: Modifier = Modifier, extraOptions: @Composable () -> Unit = {}, @@ -38,7 +37,6 @@ fun AppDeveloperSettingsPage( ) { AppDeveloperSettingsView( state = state, - onOpenShowkase = onOpenShowkase, modifier = Modifier.padding(top = 8.dp) ) extraOptions() @@ -50,7 +48,6 @@ fun AppDeveloperSettingsPage( internal fun AppDeveloperSettingsPagePreview() = ElementPreview { AppDeveloperSettingsPage( state = anAppDeveloperSettingsState(), - onOpenShowkase = {}, onBackClick = {}, ) } diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsView.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsView.kt index 7b1401b5e5..1285269ca9 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsView.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsView.kt @@ -42,7 +42,6 @@ import kotlinx.collections.immutable.toImmutableList @Composable fun AppDeveloperSettingsView( state: AppDeveloperSettingsState, - onOpenShowkase: () -> Unit, modifier: Modifier = Modifier, ) { Column( @@ -82,14 +81,6 @@ fun AppDeveloperSettingsView( ) } } - PreferenceCategory(title = "Showkase") { - ListItem( - content = { - Text("Open Showkase browser") - }, - onClick = onOpenShowkase - ) - } RageshakePreferencesView( state = state.rageshakeState, ) @@ -186,6 +177,5 @@ internal fun AppDeveloperSettingsViewPreview( ) = ElementPreview { AppDeveloperSettingsView( state = state, - onOpenShowkase = {}, ) } diff --git a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsViewTest.kt b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsViewTest.kt index fcc69cda91..8b50f0e684 100644 --- a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsViewTest.kt +++ b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/DeveloperSettingsViewTest.kt @@ -70,21 +70,6 @@ class DeveloperSettingsViewTest : RobolectricTest() { eventsRecorder.assertSingle(DeveloperSettingsEvent.OpenPushRules) } - @Config(qualifiers = "h2000dp") - @Test - fun `clicking on open showkase invokes the expected callback`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder(expectEvents = false) - ensureCalledOnce { - setDeveloperSettingsView( - state = aDeveloperSettingsState( - eventSink = eventsRecorder - ), - onOpenShowkase = it - ) - onNodeWithText("Open Showkase browser").performClick() - } - } - @Config(qualifiers = "h2400dp") @Test fun `clicking on clear cache emits the expected event`() = runAndroidComposeUiTest { @@ -101,14 +86,12 @@ class DeveloperSettingsViewTest : RobolectricTest() { private fun AndroidComposeUiTest.setDeveloperSettingsView( state: DeveloperSettingsState, - onOpenShowkase: () -> Unit = EnsureNeverCalled(), onPushHistoryClick: () -> Unit = EnsureNeverCalled(), onBackClick: () -> Unit = EnsureNeverCalled() ) { setContent { DeveloperSettingsView( state = state, - onOpenShowkase = onOpenShowkase, onPushHistoryClick = onPushHistoryClick, onBackClick = onBackClick, ) diff --git a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsPageTest.kt b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsPageTest.kt index 3500b96731..891cf44b96 100644 --- a/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsPageTest.kt +++ b/features/preferences/impl/src/test/kotlin/io/element/android/features/preferences/impl/developer/appsettings/AppDeveloperSettingsPageTest.kt @@ -64,21 +64,6 @@ class AppDeveloperSettingsPageTest : RobolectricTest() { eventsRecorder.assertSingle(AppDeveloperSettingsEvent.SetCustomElementCallBaseUrl("https://call.element.dev")) } - @Config(qualifiers = "h2000dp") - @Test - fun `clicking on open showkase invokes the expected callback`() = runAndroidComposeUiTest { - val eventsRecorder = EventsRecorder(expectEvents = false) - ensureCalledOnce { - setAppDeveloperSettingsView( - state = anAppDeveloperSettingsState( - eventSink = eventsRecorder - ), - onOpenShowkase = it - ) - onNodeWithText("Open Showkase browser").performClick() - } - } - @Config(qualifiers = "h1024dp") @Test fun `clicking on log level emits the expected event`() = runAndroidComposeUiTest { @@ -96,13 +81,11 @@ class AppDeveloperSettingsPageTest : RobolectricTest() { private fun AndroidComposeUiTest.setAppDeveloperSettingsView( state: AppDeveloperSettingsState, - onOpenShowkase: () -> Unit = EnsureNeverCalled(), onBackClick: () -> Unit = EnsureNeverCalled(), ) { setContent { AppDeveloperSettingsPage( state = state, - onOpenShowkase = onOpenShowkase, onBackClick = onBackClick, ) } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d98f00b3a0..ede969506c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,8 +40,6 @@ serialization_json = "1.11.0" #other coil = "3.6.1" -# Rollback to 1.0.4, 1.0.5 has this issue: https://github.com/airbnb/Showkase/issues/420 -showkase = "1.0.5" # There is some custom logic in `RootFlowNode` that may break because it reuses some Appyx internal APIs. # When upgrading this version, check state restoration still works fine. appyx = "1.7.1" @@ -198,8 +196,6 @@ coil_test = { module = "io.coil-kt.coil3:coil-test", version.ref = "coil" } datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "datetime" } serialization_json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "serialization_json" } kotlinx_collections_immutable = "org.jetbrains.kotlinx:kotlinx-collections-immutable:0.5.2" -showkase = { module = "com.airbnb.android:showkase", version.ref = "showkase" } -showkase_processor = { module = "com.airbnb.android:showkase-processor", version.ref = "showkase" } jsoup = "org.jsoup:jsoup:1.23.2" appyx_core = { module = "com.bumble.appyx:core", version.ref = "appyx" } molecule-runtime = "app.cash.molecule:molecule-runtime:2.2.0" diff --git a/libraries/compound/build.gradle.kts b/libraries/compound/build.gradle.kts index ce8479c47a..04d55081ee 100644 --- a/libraries/compound/build.gradle.kts +++ b/libraries/compound/build.gradle.kts @@ -22,7 +22,6 @@ android { } dependencies { - implementation(libs.showkase) testCommonDependencies(libs) testImplementation(libs.test.roborazzi) testImplementation(libs.test.roborazzi.compose) diff --git a/libraries/compound/src/main/kotlin/io/element/android/compound/showkase/CompoundShowkaseRootModule.kt b/libraries/compound/src/main/kotlin/io/element/android/compound/showkase/CompoundShowkaseRootModule.kt deleted file mode 100644 index 4f36d0cc99..0000000000 --- a/libraries/compound/src/main/kotlin/io/element/android/compound/showkase/CompoundShowkaseRootModule.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2025 Element Creations Ltd. - * Copyright 2025 New Vector Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. - * Please see LICENSE files in the repository root for full details. - */ - -package io.element.android.compound.showkase - -import com.airbnb.android.showkase.annotation.ShowkaseRoot -import com.airbnb.android.showkase.annotation.ShowkaseRootModule - -@ShowkaseRoot -class CompoundShowkaseRootModule : ShowkaseRootModule diff --git a/libraries/compound/src/main/kotlin/io/element/android/compound/tokens/CompoundTypography.kt b/libraries/compound/src/main/kotlin/io/element/android/compound/tokens/CompoundTypography.kt index 9417a306bf..000cd6a9d4 100644 --- a/libraries/compound/src/main/kotlin/io/element/android/compound/tokens/CompoundTypography.kt +++ b/libraries/compound/src/main/kotlin/io/element/android/compound/tokens/CompoundTypography.kt @@ -16,19 +16,15 @@ import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.LineHeightStyle import androidx.compose.ui.unit.em import androidx.compose.ui.unit.sp -import com.airbnb.android.showkase.annotation.ShowkaseTypography import io.element.android.compound.tokens.generated.TypographyTokens // 32px (Material) vs 34px, it's the closest one -@ShowkaseTypography(name = "M3 Headline Large", group = "Compound") internal val compoundHeadingXlRegular = TypographyTokens.fontHeadingXlRegular // both are 28px -@ShowkaseTypography(name = "M3 Headline Medium", group = "Compound") internal val compoundHeadingLgRegular = TypographyTokens.fontHeadingLgRegular // These are the default M3 values, but we're setting them manually so an update in M3 doesn't break our designs -@ShowkaseTypography(name = "M3 Headline Small", group = "Compound") internal val defaultHeadlineSmall = TextStyle( fontFamily = FontFamily.Default, fontWeight = FontWeight.Normal, @@ -40,39 +36,27 @@ internal val defaultHeadlineSmall = TextStyle( ) // 22px (Material) vs 20px, it's the closest one -@ShowkaseTypography(name = "M3 Title Large", group = "Compound") internal val compoundHeadingMdRegular = TypographyTokens.fontHeadingMdRegular // 16px both -@ShowkaseTypography(name = "M3 Title Medium", group = "Compound") internal val compoundBodyLgMedium = TypographyTokens.fontBodyLgMedium // 14px both -@ShowkaseTypography(name = "M3 Title Small", group = "Compound") internal val compoundBodyMdMedium = TypographyTokens.fontBodyMdMedium // 16px both -@ShowkaseTypography(name = "M3 Body Large", group = "Compound") internal val compoundBodyLgRegular = TypographyTokens.fontBodyLgRegular // 14px both -@ShowkaseTypography(name = "M3 Body Medium", group = "Compound") internal val compoundBodyMdRegular = TypographyTokens.fontBodyMdRegular // 12px both -@ShowkaseTypography(name = "M3 Body Small", group = "Compound") internal val compoundBodySmRegular = TypographyTokens.fontBodySmRegular -// 14px both, Title Small uses the same token so we have to declare it twice -@ShowkaseTypography(name = "M3 Label Large", group = "Compound") -internal val compoundBodyMdMedium_LabelLarge = TypographyTokens.fontBodyMdMedium - // 12px both -@ShowkaseTypography(name = "M3 Label Medium", group = "Compound") internal val compoundBodySmMedium = TypographyTokens.fontBodySmMedium // 11px both -@ShowkaseTypography(name = "M3 Label Small", group = "Compound") internal val compoundBodyXsMedium = TypographyTokens.fontBodyXsMedium internal val compoundTypography = Typography( @@ -88,7 +72,7 @@ internal val compoundTypography = Typography( bodyLarge = compoundBodyLgRegular, bodyMedium = compoundBodyMdRegular, bodySmall = compoundBodySmRegular, - labelLarge = compoundBodyMdMedium_LabelLarge, + labelLarge = compoundBodyMdMedium, labelMedium = compoundBodySmMedium, labelSmall = compoundBodyXsMedium, ) diff --git a/libraries/designsystem/build.gradle.kts b/libraries/designsystem/build.gradle.kts index 9ef66f7b2f..7020b5dba6 100644 --- a/libraries/designsystem/build.gradle.kts +++ b/libraries/designsystem/build.gradle.kts @@ -10,7 +10,6 @@ import extension.testCommonDependencies plugins { id("io.element.android-compose-library") - alias(libs.plugins.ksp) id("kotlin-parcelize") } @@ -20,12 +19,6 @@ android { buildFeatures { buildConfig = true } - - buildTypes { - getByName("release") { - consumerProguardFiles("consumer-rules.keep") - } - } } dependencies { @@ -43,8 +36,5 @@ dependencies { implementation(projects.libraries.testtags) implementation(projects.libraries.uiStrings) - ksp(libs.showkase.processor) - implementation(libs.showkase) - testCommonDependencies(libs) } diff --git a/libraries/designsystem/consumer-rules.keep b/libraries/designsystem/consumer-rules.keep deleted file mode 100644 index c84e1c0613..0000000000 --- a/libraries/designsystem/consumer-rules.keep +++ /dev/null @@ -1,5 +0,0 @@ -# Showkase generates this class, and Showkase's ShowkaseBrowserActivity loads it reflectively with -# Class.forName(...).getDeclaredConstructor().newInstance(), so its constructor must be kept too. --keep class io.element.android.libraries.designsystem.showkase.DesignSystemShowkaseRootModuleCodegen { - (); -} diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/WithFontScale.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/WithFontScale.kt index 5967b660dd..266746d723 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/WithFontScale.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/preview/WithFontScale.kt @@ -14,8 +14,8 @@ import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.unit.Density /** - * Showkase does not take into account the `fontScale` parameter of the Preview annotation, so alter the - * LocalDensity in the CompositionLocalProvider. + * Render the content at the given font scale, by altering the `LocalDensity` in the + * CompositionLocalProvider. Useful to preview a Composable at several font scales. */ @Composable fun WithFontScale(fontScale: Float, content: @Composable () -> Unit) { diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/showkase/DesignSystemShowkaseRootModule.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/showkase/DesignSystemShowkaseRootModule.kt deleted file mode 100644 index abb420a0a0..0000000000 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/showkase/DesignSystemShowkaseRootModule.kt +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (c) 2025 Element Creations Ltd. - * Copyright 2022-2025 New Vector Ltd. - * - * SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial. - * Please see LICENSE files in the repository root for full details. - */ - -package io.element.android.libraries.designsystem.showkase - -import com.airbnb.android.showkase.annotation.ShowkaseRoot -import com.airbnb.android.showkase.annotation.ShowkaseRootModule - -@ShowkaseRoot -class DesignSystemShowkaseRootModule : ShowkaseRootModule diff --git a/plugins/src/main/kotlin/extension/KoverExtension.kt b/plugins/src/main/kotlin/extension/KoverExtension.kt index 610562ce6a..51b06af7a7 100644 --- a/plugins/src/main/kotlin/extension/KoverExtension.kt +++ b/plugins/src/main/kotlin/extension/KoverExtension.kt @@ -107,13 +107,8 @@ fun Project.setupKover() { // Exclude generated classes. "*_Module", "*_AssistedFactory", - "com.airbnb.android.showkase*", - "io.element.android.libraries.designsystem.showkase.*", "*ComposableSingletons$*", "*BuildConfig", - // Generated by Showkase - "*Ioelementandroid*PreviewKt$*", - "*Ioelementandroid*PreviewKt", // Other // We do not cover Nodes (normally covered by maestro, but code coverage is not computed with maestro) "*Node", diff --git a/tests/uitests/build.gradle.kts b/tests/uitests/build.gradle.kts index 466167981c..d69cdef35d 100644 --- a/tests/uitests/build.gradle.kts +++ b/tests/uitests/build.gradle.kts @@ -40,8 +40,6 @@ dependencies { ) } - implementation(libs.showkase) - // TODO There is a Resources.NotFoundException maybe due to the mipmap, even if we have // `testOptions { unitTests.isIncludeAndroidResources = true }` in the app build.gradle.kts file // implementation(projects.app)