Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,8 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import com.revenuecat.purchases.paywalls.PaywallData
import com.revenuecat.purchases.ui.revenuecatui.R
import com.revenuecat.purchases.ui.revenuecatui.data.processed.TemplateConfiguration
import com.revenuecat.purchases.ui.revenuecatui.extensions.conditional
import com.revenuecat.purchases.ui.revenuecatui.extensions.defaultBackgroundPlaceholder
import com.revenuecat.purchases.ui.revenuecatui.isFullScreen

// Current implementation uses a transformation on API level < 31, modifier on > 31.
Expand All @@ -41,15 +38,7 @@ internal fun BoxScope.PaywallBackground(templateConfiguration: TemplateConfigura
blur(BackgroundUIConstants.blurSize, edgeTreatment = BlurredEdgeTreatment.Unbounded)
}

if (templateConfiguration.configuration.images.background == PaywallData.defaultBackgroundPlaceholder) {
LocalImage(
resource = R.drawable.default_background,
modifier = modifier,
contentScale = BackgroundUIConstants.contentScale,
transformation = backwardsCompatibleTransformation,
alpha = imageAlpha,
)
} else if (templateConfiguration.images.backgroundUri != null) {
if (templateConfiguration.images.backgroundUri != null) {
// Don't display background images on footer unless it's blurred
if (shouldBlur || templateConfiguration.mode.isFullScreen) {
RemoteImage(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.revenuecat.purchases.ui.revenuecatui.composables

import androidx.annotation.DrawableRes
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.material3.MaterialTheme
Expand Down Expand Up @@ -31,29 +30,6 @@ import com.revenuecat.purchases.ui.revenuecatui.helpers.Logger
import com.revenuecat.purchases.ui.revenuecatui.helpers.getPreviewPlaceholderBlocking
import com.revenuecat.purchases.ui.revenuecatui.helpers.isInPreviewMode

@SuppressWarnings("LongParameterList")
@Composable
internal fun LocalImage(
@DrawableRes resource: Int,
modifier: Modifier = Modifier,
contentScale: ContentScale = ContentScale.Fit,
contentDescription: String? = null,
transformation: Transformation? = null,
alpha: Float = 1f,
colorFilter: ColorFilter? = null,
) {
Image(
source = ImageSource.Local(resource),
placeholderSource = null,
modifier = modifier,
contentScale = contentScale,
contentDescription = contentDescription,
transformation = transformation,
alpha = alpha,
colorFilter = colorFilter,
)
}

/**
* @param supportImagePreview: set to false to not show any image in previews and just a colored box. This is to avoid
* modifying Paywalls V1 previews.
Expand Down Expand Up @@ -86,15 +62,11 @@ internal fun RemoteImage(
private sealed class ImageSource {

@Immutable
data class Local(@DrawableRes val resource: Int) : ImageSource() {
override val data: Any = resource
}

@Immutable
data class Remote(val urlString: String) : ImageSource() {
data class Remote(override val urlString: String) : ImageSource() {
override val data: Any = urlString
}

abstract val urlString: String
abstract val data: Any
}

Expand Down Expand Up @@ -197,12 +169,7 @@ private fun AsyncImage(
alpha = alpha,
colorFilter = colorFilter,
onError = {
val error = when (source) {
is ImageSource.Local -> "Error loading local image: '${source.resource}'"
is ImageSource.Remote -> "Error loading image from '${source.urlString}'"
}

Logger.e(error, it.result.throwable)
Logger.e("Error loading image from '${source.urlString}'", it.result.throwable)
onError?.invoke(it)
},
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,6 @@ internal fun PaywallData.Companion.createDefaultForIdentifiers(
config = PaywallData.Configuration(
packageIds = packageIdentifiers,
images = PaywallData.Configuration.Images(
background = PaywallData.defaultBackgroundPlaceholder,
icon = PaywallData.defaultAppIconPlaceholder,
),
colors = PaywallData.defaultColors(currentColors),
Expand All @@ -71,9 +70,6 @@ internal val PaywallData.Companion.defaultTemplate: PaywallTemplate
internal val PaywallData.Companion.defaultAppIconPlaceholder: String
get() = "revenuecatui_default_paywall_app_icon"

internal val PaywallData.Companion.defaultBackgroundPlaceholder: String
get() = "revenuecatui_default_paywall_background"

// endregion

// region Private defaults
Expand Down
Binary file not shown.
2 changes: 1 addition & 1 deletion ui/revenuecatui/src/test/resources/default_template.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
},
"display_restore_purchases" : true,
"images_webp" : {
"background" : "revenuecatui_default_paywall_background",
"background" : null,
"header" : null,
"icon" : "revenuecatui_default_paywall_app_icon"
},
Expand Down