Browse Source

Merge pull request #3673 from element-hq/feature/bma/previewProviderName

Improve preview provider name consistency
pull/3671/head
Benoit Marty 2 days ago committed by GitHub
parent
commit
9dc58fcaeb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/confirmation/QrCodeConfirmationStepProvider.kt
  2. 2
      features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/confirmation/QrCodeConfirmationView.kt
  3. 2
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersStateProvider.kt
  4. 2
      features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersView.kt
  5. 2
      features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationStateProvider.kt
  6. 2
      features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationView.kt
  7. 2
      features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStateProvider.kt
  8. 2
      features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsView.kt
  9. 4
      libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/BigIcon.kt
  10. 2
      libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/PageTitle.kt
  11. 8
      libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/icons/IconsPreview.kt
  12. 18
      tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt

2
features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/confirmation/QrCodeConfirmationStepPreviewProvider.kt → features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/confirmation/QrCodeConfirmationStepProvider.kt

@ -9,7 +9,7 @@ package io.element.android.features.login.impl.screens.qrcode.confirmation
import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.tooling.preview.PreviewParameterProvider
class QrCodeConfirmationStepPreviewProvider : PreviewParameterProvider<QrCodeConfirmationStep> { class QrCodeConfirmationStepProvider : PreviewParameterProvider<QrCodeConfirmationStep> {
override val values: Sequence<QrCodeConfirmationStep> override val values: Sequence<QrCodeConfirmationStep>
get() = sequenceOf( get() = sequenceOf(
QrCodeConfirmationStep.DisplayCheckCode("12"), QrCodeConfirmationStep.DisplayCheckCode("12"),

2
features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/confirmation/QrCodeConfirmationView.kt

@ -148,7 +148,7 @@ private fun Buttons(
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun QrCodeConfirmationViewPreview(@PreviewParameter(QrCodeConfirmationStepPreviewProvider::class) step: QrCodeConfirmationStep) { internal fun QrCodeConfirmationViewPreview(@PreviewParameter(QrCodeConfirmationStepProvider::class) step: QrCodeConfirmationStep) {
ElementPreview { ElementPreview {
QrCodeConfirmationView( QrCodeConfirmationView(
step = step, step = step,

2
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersStatePreviewProvider.kt → features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersStateProvider.kt

@ -13,7 +13,7 @@ import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.ui.components.aMatrixUserList import io.element.android.libraries.matrix.ui.components.aMatrixUserList
import kotlinx.collections.immutable.toPersistentList import kotlinx.collections.immutable.toPersistentList
class BlockedUsersStatePreviewProvider : PreviewParameterProvider<BlockedUsersState> { class BlockedUsersStateProvider : PreviewParameterProvider<BlockedUsersState> {
override val values: Sequence<BlockedUsersState> override val values: Sequence<BlockedUsersState>
get() = sequenceOf( get() = sequenceOf(
aBlockedUsersState(), aBlockedUsersState(),

2
features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersView.kt

@ -123,7 +123,7 @@ private fun BlockedUserItem(
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun BlockedUsersViewPreview(@PreviewParameter(BlockedUsersStatePreviewProvider::class) state: BlockedUsersState) { internal fun BlockedUsersViewPreview(@PreviewParameter(BlockedUsersStateProvider::class) state: BlockedUsersState) {
ElementPreview { ElementPreview {
BlockedUsersView( BlockedUsersView(
state = state, state = state,

2
features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationStatePreviewProvider.kt → features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationStateProvider.kt

@ -13,7 +13,7 @@ import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.matrix.api.room.RoomMember import io.element.android.libraries.matrix.api.room.RoomMember
import kotlinx.collections.immutable.toPersistentList import kotlinx.collections.immutable.toPersistentList
class RoomMembersModerationStatePreviewProvider : PreviewParameterProvider<RoomMembersModerationState> { class RoomMembersModerationStateProvider : PreviewParameterProvider<RoomMembersModerationState> {
override val values: Sequence<RoomMembersModerationState> override val values: Sequence<RoomMembersModerationState>
get() = sequenceOf( get() = sequenceOf(
aRoomMembersModerationState( aRoomMembersModerationState(

2
features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationView.kt

@ -284,7 +284,7 @@ private fun RoomMemberActionsBottomSheet(
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun RoomMembersModerationViewPreview(@PreviewParameter(RoomMembersModerationStatePreviewProvider::class) state: RoomMembersModerationState) { internal fun RoomMembersModerationViewPreview(@PreviewParameter(RoomMembersModerationStateProvider::class) state: RoomMembersModerationState) {
ElementPreview { ElementPreview {
Box( Box(
modifier = Modifier modifier = Modifier

2
features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStatePreviewProvider.kt → features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStateProvider.kt

@ -13,7 +13,7 @@ import io.element.android.libraries.matrix.api.room.RoomMember
import io.element.android.libraries.matrix.api.room.powerlevels.MatrixRoomPowerLevels import io.element.android.libraries.matrix.api.room.powerlevels.MatrixRoomPowerLevels
import kotlinx.collections.immutable.toPersistentList import kotlinx.collections.immutable.toPersistentList
class ChangeRoomPermissionsStatePreviewProvider : PreviewParameterProvider<ChangeRoomPermissionsState> { class ChangeRoomPermissionsStateProvider : PreviewParameterProvider<ChangeRoomPermissionsState> {
override val values: Sequence<ChangeRoomPermissionsState> override val values: Sequence<ChangeRoomPermissionsState>
get() = sequenceOf( get() = sequenceOf(
aChangeRoomPermissionsState(section = ChangeRoomPermissionsSection.RoomDetails), aChangeRoomPermissionsState(section = ChangeRoomPermissionsSection.RoomDetails),

2
features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsView.kt

@ -180,7 +180,7 @@ private fun titleForSection(item: RoomPermissionType): String = when (item) {
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun ChangeRoomPermissionsViewPreview(@PreviewParameter(ChangeRoomPermissionsStatePreviewProvider::class) state: ChangeRoomPermissionsState) { internal fun ChangeRoomPermissionsViewPreview(@PreviewParameter(ChangeRoomPermissionsStateProvider::class) state: ChangeRoomPermissionsState) {
ElementPreview { ElementPreview {
ChangeRoomPermissionsView( ChangeRoomPermissionsView(
state = state, state = state,

4
libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/BigIcon.kt

@ -126,7 +126,7 @@ object BigIcon {
internal fun BigIconPreview() { internal fun BigIconPreview() {
ElementPreview { ElementPreview {
Row(horizontalArrangement = Arrangement.spacedBy(10.dp), modifier = Modifier.padding(10.dp)) { Row(horizontalArrangement = Arrangement.spacedBy(10.dp), modifier = Modifier.padding(10.dp)) {
val provider = BigIconStylePreviewProvider() val provider = BigIconStyleProvider()
for (style in provider.values) { for (style in provider.values) {
BigIcon(style = style) BigIcon(style = style)
} }
@ -134,7 +134,7 @@ internal fun BigIconPreview() {
} }
} }
internal class BigIconStylePreviewProvider : PreviewParameterProvider<BigIcon.Style> { internal class BigIconStyleProvider : PreviewParameterProvider<BigIcon.Style> {
override val values: Sequence<BigIcon.Style> override val values: Sequence<BigIcon.Style>
get() = sequenceOf( get() = sequenceOf(
BigIcon.Style.Default(Icons.Filled.CatchingPokemon), BigIcon.Style.Default(Icons.Filled.CatchingPokemon),

2
libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/PageTitle.kt

@ -99,7 +99,7 @@ fun PageTitle(
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun PageTitleWithIconFullPreview(@PreviewParameter(BigIconStylePreviewProvider::class) style: BigIcon.Style) { internal fun PageTitleWithIconFullPreview(@PreviewParameter(BigIconStyleProvider::class) style: BigIcon.Style) {
ElementPreview { ElementPreview {
PageTitle( PageTitle(
modifier = Modifier.padding(top = 24.dp), modifier = Modifier.padding(top = 24.dp),

8
libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/icons/IconsPreview.kt

@ -30,7 +30,7 @@ import io.element.android.libraries.designsystem.theme.components.Text
import kotlinx.collections.immutable.ImmutableList import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.toPersistentList import kotlinx.collections.immutable.toPersistentList
internal class CompoundIconListPreviewProvider : PreviewParameterProvider<IconChunk> { internal class CompoundIconChunkProvider : PreviewParameterProvider<IconChunk> {
override val values: Sequence<IconChunk> override val values: Sequence<IconChunk>
get() { get() {
val chunks = CompoundIcons.allResIds.chunked(36) val chunks = CompoundIcons.allResIds.chunked(36)
@ -41,7 +41,7 @@ internal class CompoundIconListPreviewProvider : PreviewParameterProvider<IconCh
} }
} }
internal class OtherIconListPreviewProvider : PreviewParameterProvider<IconChunk> { internal class OtherIconChunkProvider : PreviewParameterProvider<IconChunk> {
override val values: Sequence<IconChunk> override val values: Sequence<IconChunk>
get() { get() {
val chunks = iconsOther.chunked(36) val chunks = iconsOther.chunked(36)
@ -60,7 +60,7 @@ internal data class IconChunk(
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun IconsCompoundPreview(@PreviewParameter(CompoundIconListPreviewProvider::class) chunk: IconChunk) = ElementPreview { internal fun IconsCompoundPreview(@PreviewParameter(CompoundIconChunkProvider::class) chunk: IconChunk) = ElementPreview {
IconsPreview( IconsPreview(
title = "R.drawable.ic_compound_* ${chunk.index}/${chunk.total}", title = "R.drawable.ic_compound_* ${chunk.index}/${chunk.total}",
iconsList = chunk.icons, iconsList = chunk.icons,
@ -73,7 +73,7 @@ internal fun IconsCompoundPreview(@PreviewParameter(CompoundIconListPreviewProvi
@PreviewsDayNight @PreviewsDayNight
@Composable @Composable
internal fun IconsOtherPreview(@PreviewParameter(OtherIconListPreviewProvider::class) iconChunk: IconChunk) = ElementPreview { internal fun IconsOtherPreview(@PreviewParameter(OtherIconChunkProvider::class) iconChunk: IconChunk) = ElementPreview {
IconsPreview( IconsPreview(
title = "R.drawable.ic_* ${iconChunk.index}/${iconChunk.total}", title = "R.drawable.ic_* ${iconChunk.index}/${iconChunk.total}",
iconsList = iconChunk.icons, iconsList = iconChunk.icons,

18
tests/konsist/src/test/kotlin/io/element/android/tests/konsist/KonsistClassNameTest.kt

@ -9,6 +9,7 @@ package io.element.android.tests.konsist
import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import com.bumble.appyx.core.node.Node import com.bumble.appyx.core.node.Node
import com.google.common.truth.Truth.assertThat
import com.lemonappdev.konsist.api.Konsist import com.lemonappdev.konsist.api.Konsist
import com.lemonappdev.konsist.api.ext.list.withAllParentsOf import com.lemonappdev.konsist.api.ext.list.withAllParentsOf
import com.lemonappdev.konsist.api.ext.list.withAnnotationNamed import com.lemonappdev.konsist.api.ext.list.withAnnotationNamed
@ -44,19 +45,26 @@ class KonsistClassNameTest {
@Test @Test
fun `Classes extending 'PreviewParameterProvider' name MUST end with 'Provider' and MUST contain provided class name`() { fun `Classes extending 'PreviewParameterProvider' name MUST end with 'Provider' and MUST contain provided class name`() {
Konsist.scopeFromProject() Konsist.scopeFromProduction()
.classes() .classes()
.withAllParentsOf(PreviewParameterProvider::class) .withAllParentsOf(PreviewParameterProvider::class)
.assertTrue { .also {
// Check that classes are actually found
assertThat(it.size).isGreaterThan(100)
}
.assertTrue { klass ->
// Cannot find a better way to get the type of the generic // Cannot find a better way to get the type of the generic
val providedType = it.text val providedType = klass.text
.substringAfter("PreviewParameterProvider<")
.substringBefore(">") .substringBefore(">")
.substringAfter("<")
// Get the substring before the first '<' to remove the generic type // Get the substring before the first '<' to remove the generic type
.substringBefore("<") .substringBefore("<")
.removeSuffix("?") .removeSuffix("?")
.replace(".", "") .replace(".", "")
it.name.endsWith("Provider") && (it.name.contains("IconList") || it.name.contains(providedType)) val name = klass.name
name.endsWith("Provider") &&
name.endsWith("PreviewProvider").not() &&
name.contains(providedType)
} }
} }

Loading…
Cancel
Save