From b1edfbd666d26a3595a51d03ae25713734080fe4 Mon Sep 17 00:00:00 2001 From: Konstantin Tskhovrebov Date: Tue, 23 Apr 2024 18:18:34 +0200 Subject: [PATCH] [resources] Don't use data class in public API. https://kotlinlang.org/docs/jvm-api-guidelines-backward-compatibility.html#don-t-use-data-classes-in-an-api --- .../compose/resources/ResourceEnvironment.kt | 26 +++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/components/resources/library/src/commonMain/kotlin/org/jetbrains/compose/resources/ResourceEnvironment.kt b/components/resources/library/src/commonMain/kotlin/org/jetbrains/compose/resources/ResourceEnvironment.kt index 3965a75797..20ac17ca09 100644 --- a/components/resources/library/src/commonMain/kotlin/org/jetbrains/compose/resources/ResourceEnvironment.kt +++ b/components/resources/library/src/commonMain/kotlin/org/jetbrains/compose/resources/ResourceEnvironment.kt @@ -6,12 +6,34 @@ import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.text.intl.Locale @ExperimentalResourceApi -data class ResourceEnvironment internal constructor( +class ResourceEnvironment internal constructor( internal val language: LanguageQualifier, internal val region: RegionQualifier, internal val theme: ThemeQualifier, internal val density: DensityQualifier -) +) { + override fun equals(other: Any?): Boolean { + if (this === other) return true + if (other == null || this::class != other::class) return false + + other as ResourceEnvironment + + if (language != other.language) return false + if (region != other.region) return false + if (theme != other.theme) return false + if (density != other.density) return false + + return true + } + + override fun hashCode(): Int { + var result = language.hashCode() + result = 31 * result + region.hashCode() + result = 31 * result + theme.hashCode() + result = 31 * result + density.hashCode() + return result + } +} internal interface ComposeEnvironment { @Composable