diff --git a/app/src/main/java/org/futo/circles/model/SubscriptionListItem.kt b/app/src/main/java/org/futo/circles/model/SubscriptionListItem.kt new file mode 100644 index 0000000000000000000000000000000000000000..fc3f1aa8b889be369dd45fcbd2ad175e04bf377d --- /dev/null +++ b/app/src/main/java/org/futo/circles/model/SubscriptionListItem.kt @@ -0,0 +1,11 @@ +package org.futo.circles.model + +import org.futo.circles.core.list.IdEntity + +data class SubscriptionListItem( + override val id: String, + val name: String, + val description: String, + val price: String, + val duration: String +) : IdEntity<String> \ No newline at end of file diff --git a/app/src/main/java/org/futo/circles/subscriptions/google/ProductDetailsMapping.kt b/app/src/main/java/org/futo/circles/subscriptions/google/ProductDetailsMapping.kt new file mode 100644 index 0000000000000000000000000000000000000000..29d5a9f50c68bbf2544bd1aef8d9967e2c17bf27 --- /dev/null +++ b/app/src/main/java/org/futo/circles/subscriptions/google/ProductDetailsMapping.kt @@ -0,0 +1,28 @@ +package org.futo.circles.subscriptions.google + +import android.content.Context +import com.android.billingclient.api.ProductDetails +import org.futo.circles.extensions.Response +import org.futo.circles.model.SubscriptionListItem +import org.futo.circles.subscriptions.formatIsoPeriod + +fun ProductDetails.toSubscriptionListItem(context: Context): SubscriptionListItem { + val productOffer = + subscriptionOfferDetails?.last()?.pricingPhases?.pricingPhaseList?.last() + + return SubscriptionListItem( + id = productId, + name = name, + description = description, + price = productOffer?.formattedPrice ?: "", + duration = productOffer?.billingPeriod?.formatIsoPeriod(context) ?: "" + ) +} + +fun Response<List<ProductDetails>>.toSubscriptionListItemsResponse(context: Context): Response<List<SubscriptionListItem>> = + when (val response = this) { + is Response.Success -> Response.Success(response.data.map { + it.toSubscriptionListItem(context) + }) + is Response.Error -> response + } \ No newline at end of file