Rename PreviewParameterProvider subclasses to the PreviewParam suffix

The `Provider` suffix reads as a dependency provider rather than as preview
data, and it collides with the real providers in the codebase — `StringProvider`,
`PickerProvider`, the login feature's `AccountProvider` — so the name says
nothing about which of the two a class is. `PreviewParam` says it.

195 classes are renamed, along with the 185 files named after them, the konsist
rule that enforces the convention, the presentation-class file templates and the
onboarding documentation.

This cannot be split. `Konsist.scopeFromProduction()` scans the whole project, so
flipping the assertion before every class has moved leaves the rule red, and a
rule that accepted either suffix during a transition would be exactly the kind of
compatibility layer this convention change is meant to remove.

Two judgement calls in the rule itself. The `name.endsWith("PreviewProvider")`
exclusion is dropped: its only job was to reject a redundant `Preview` before
`Provider`, and the new suffix already contains it; no class currently ends with
`PreviewProvider`, so removing it changes nothing today. And
`EditableAvatarViewUriProvider` is renamed rather than deleted from the exclusion
list even though no such class exists in this repository, since it presumably
comes from the modules overlaid for the enterprise build.

Nothing keyed off the old suffix: no snapshot filename contains a provider class
name, so no Paparazzi image changes, and the Kover variants match on `*Presenter`,
`*State` and `*ViewKt`, so coverage bounds are unaffected.
This commit is contained in:
hayaksi1
2026-08-17 17:40:33 +03:00
parent 12791406ca
commit 03c330ee07
388 changed files with 495 additions and 476 deletions
@@ -12,7 +12,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.libraries.architecture.AsyncAction
import io.element.android.libraries.matrix.api.encryption.BackupState
open class SecureBackupDisableStateProvider : PreviewParameterProvider<SecureBackupDisableState> {
open class SecureBackupDisableStatePreviewParam : PreviewParameterProvider<SecureBackupDisableState> {
override val values: Sequence<SecureBackupDisableState>
get() = sequenceOf(
aSecureBackupDisableState(),
@@ -112,7 +112,7 @@ private fun SecureBackupDisableItem(text: String) {
@PreviewsDayNight
@Composable
internal fun SecureBackupDisableViewPreview(
@PreviewParameter(SecureBackupDisableStateProvider::class) state: SecureBackupDisableState
@PreviewParameter(SecureBackupDisableStatePreviewParam::class) state: SecureBackupDisableState
) = ElementPreview {
SecureBackupDisableView(
state = state,
@@ -14,7 +14,7 @@ import io.element.android.features.securebackup.impl.setup.views.RecoveryKeyView
import io.element.android.features.securebackup.impl.setup.views.aFormattedRecoveryKey
import io.element.android.libraries.architecture.AsyncAction
open class SecureBackupEnterRecoveryKeyStateProvider : PreviewParameterProvider<SecureBackupEnterRecoveryKeyState> {
open class SecureBackupEnterRecoveryKeyStatePreviewParam : PreviewParameterProvider<SecureBackupEnterRecoveryKeyState> {
override val values: Sequence<SecureBackupEnterRecoveryKeyState>
get() = sequenceOf(
aSecureBackupEnterRecoveryKeyState(recoveryKey = ""),
@@ -97,7 +97,7 @@ private fun ColumnScope.Buttons(
@PreviewsDayNight
@Composable
internal fun SecureBackupEnterRecoveryKeyViewPreview(
@PreviewParameter(SecureBackupEnterRecoveryKeyStateProvider::class) state: SecureBackupEnterRecoveryKeyState
@PreviewParameter(SecureBackupEnterRecoveryKeyStatePreviewParam::class) state: SecureBackupEnterRecoveryKeyState
) = ElementPreview {
SecureBackupEnterRecoveryKeyView(
state = state,
@@ -11,7 +11,7 @@ package io.element.android.features.securebackup.impl.reset.password
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
import io.element.android.libraries.architecture.AsyncAction
class ResetIdentityPasswordStateProvider : PreviewParameterProvider<ResetIdentityPasswordState> {
class ResetIdentityPasswordStatePreviewParam : PreviewParameterProvider<ResetIdentityPasswordState> {
override val values: Sequence<ResetIdentityPasswordState>
get() = sequenceOf(
aResetIdentityPasswordState(),
@@ -106,7 +106,7 @@ private fun Content(text: String, onTextChange: (String) -> Unit, hasError: Bool
@PreviewsDayNight
@Composable
internal fun ResetIdentityPasswordViewPreview(@PreviewParameter(ResetIdentityPasswordStateProvider::class) state: ResetIdentityPasswordState) {
internal fun ResetIdentityPasswordViewPreview(@PreviewParameter(ResetIdentityPasswordStatePreviewParam::class) state: ResetIdentityPasswordState) {
ElementPreview {
ResetIdentityPasswordView(
state = state,
@@ -10,7 +10,7 @@ package io.element.android.features.securebackup.impl.reset.root
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
class ResetIdentityRootStateProvider : PreviewParameterProvider<ResetIdentityRootState> {
class ResetIdentityRootStatePreviewParam : PreviewParameterProvider<ResetIdentityRootState> {
override val values: Sequence<ResetIdentityRootState>
get() = sequenceOf(
ResetIdentityRootState(
@@ -130,7 +130,7 @@ private fun Content() {
@PreviewsDayNight
@Composable
internal fun ResetIdentityRootViewPreview(@PreviewParameter(ResetIdentityRootStateProvider::class) state: ResetIdentityRootState) {
internal fun ResetIdentityRootViewPreview(@PreviewParameter(ResetIdentityRootStatePreviewParam::class) state: ResetIdentityRootState) {
ElementPreview {
ResetIdentityRootView(
state = state,
@@ -15,7 +15,7 @@ import io.element.android.libraries.designsystem.utils.snackbar.SnackbarMessage
import io.element.android.libraries.matrix.api.encryption.BackupState
import io.element.android.libraries.matrix.api.encryption.RecoveryState
open class SecureBackupRootStateProvider : PreviewParameterProvider<SecureBackupRootState> {
open class SecureBackupRootStatePreviewParam : PreviewParameterProvider<SecureBackupRootState> {
override val values: Sequence<SecureBackupRootState>
get() = sequenceOf(
aSecureBackupRootState(backupState = BackupState.UNKNOWN, doesBackupExistOnServer = AsyncData.Uninitialized),
@@ -236,7 +236,7 @@ private fun LoadingView() {
@PreviewsDayNight
@Composable
internal fun SecureBackupRootViewPreview(
@PreviewParameter(SecureBackupRootStateProvider::class) state: SecureBackupRootState
@PreviewParameter(SecureBackupRootStatePreviewParam::class) state: SecureBackupRootState
) = ElementPreview {
SecureBackupRootView(
state = state,
@@ -13,7 +13,7 @@ import io.element.android.features.securebackup.impl.setup.views.RecoveryKeyUser
import io.element.android.features.securebackup.impl.setup.views.RecoveryKeyViewState
import io.element.android.features.securebackup.impl.setup.views.aFormattedRecoveryKey
open class SecureBackupSetupStateProvider : PreviewParameterProvider<SecureBackupSetupState> {
open class SecureBackupSetupStatePreviewParam : PreviewParameterProvider<SecureBackupSetupState> {
override val values: Sequence<SecureBackupSetupState>
get() = sequenceOf(
aSecureBackupSetupState(setupState = SetupState.Init),
@@ -195,7 +195,7 @@ private fun ColumnScope.Buttons(
@PreviewsDayNight
@Composable
internal fun SecureBackupSetupViewPreview(
@PreviewParameter(SecureBackupSetupStateProvider::class) state: SecureBackupSetupState
@PreviewParameter(SecureBackupSetupStatePreviewParam::class) state: SecureBackupSetupState
) = ElementPreview {
SecureBackupSetupView(
state = state,
@@ -17,7 +17,7 @@ import io.element.android.libraries.designsystem.preview.PreviewsDayNight
@PreviewsDayNight
@Composable
internal fun SecureBackupSetupViewChangePreview(
@PreviewParameter(SecureBackupSetupStateProvider::class) state: SecureBackupSetupState
@PreviewParameter(SecureBackupSetupStatePreviewParam::class) state: SecureBackupSetupState
) = ElementPreview {
SecureBackupSetupView(
state = state.copy(
@@ -269,7 +269,7 @@ private fun RecoveryKeyFooter(state: RecoveryKeyViewState) {
@PreviewsDayNight
@Composable
internal fun RecoveryKeyViewPreview(
@PreviewParameter(RecoveryKeyViewStateProvider::class) state: RecoveryKeyViewState
@PreviewParameter(RecoveryKeyViewStatePreviewParam::class) state: RecoveryKeyViewState
) = ElementPreview {
RecoveryKeyView(
state = state,
@@ -10,7 +10,7 @@ package io.element.android.features.securebackup.impl.setup.views
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
open class RecoveryKeyViewStateProvider : PreviewParameterProvider<RecoveryKeyViewState> {
open class RecoveryKeyViewStatePreviewParam : PreviewParameterProvider<RecoveryKeyViewState> {
override val values: Sequence<RecoveryKeyViewState>
get() = sequenceOf(RecoveryKeyUserStory.Setup, RecoveryKeyUserStory.Change, RecoveryKeyUserStory.Enter)
.flatMap {