1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-07 21:37:02 +09:00

DROID-3656 Payments | Legacy explorer tier (#2431)

This commit is contained in:
Konstantin Ivanov 2025-05-22 11:56:32 +02:00 committed by GitHub
parent 775952ce2c
commit 9f706617be
Signed by: github
GPG key ID: B5690EEEBB952194
6 changed files with 30 additions and 3 deletions

View file

@ -20,6 +20,7 @@ fun TierId.isPossibleToUpgrade(
fun TierId.isPossibleToUpgradeNumberOfSpaceMembers(): Boolean {
return when (this.value) {
MembershipConstants.NONE_ID -> true
MembershipConstants.OLD_EXPLORER_ID -> true
MembershipConstants.STARTER_ID -> true
MembershipConstants.PIONEER_ID -> true
MembershipConstants.NEW_EXPLORER_ID -> true
@ -33,6 +34,7 @@ fun TierId.isPossibleToUpgradeNumberOfSpaceMembers(): Boolean {
fun TierId.isPossibleToUpgradeStorageSpace(): Boolean {
return when (this.value) {
MembershipConstants.NONE_ID -> true
MembershipConstants.OLD_EXPLORER_ID -> true
MembershipConstants.STARTER_ID -> true
MembershipConstants.PIONEER_ID -> true
MembershipConstants.NEW_EXPLORER_ID -> true

View file

@ -3,6 +3,7 @@ package com.anytypeio.anytype.core_models.membership
object MembershipConstants {
const val NONE_ID = 0
const val OLD_EXPLORER_ID = 1
const val STARTER_ID = 21
const val PIONEER_ID = 22
const val NEW_EXPLORER_ID = 20
@ -15,7 +16,7 @@ object MembershipConstants {
const val TERMS_OF_SERVICE = "https://anytype.io/terms_of_use"
const val MEMBERSHIP_CONTACT_EMAIL = "membership-upgrade@anytype.io"
val ACTIVE_TIERS_WITH_BANNERS = listOf(NONE_ID, STARTER_ID, PIONEER_ID)
val ACTIVE_TIERS_WITH_BANNERS = listOf(NONE_ID, OLD_EXPLORER_ID, STARTER_ID, PIONEER_ID)
const val ERROR_PRODUCT_NOT_FOUND = "Product not found"
const val ERROR_PRODUCT_PRICE = "Price of the product is not available"

View file

@ -184,6 +184,12 @@ private fun MembershipTierData.mapActiveTierButtonAndNameStates(
val wasPurchasedOnAndroid = isActiveTierPurchasedOnAndroid(paymentMethod)
if (!wasPurchasedOnAndroid) {
return when {
id == MembershipConstants.OLD_EXPLORER_ID && userEmail.isBlank() -> {
TierButton.Submit.Enabled to TierAnyName.Hidden
}
id == MembershipConstants.OLD_EXPLORER_ID -> {
TierButton.ChangeEmail to TierAnyName.Hidden
}
id == MembershipConstants.STARTER_ID && userEmail.isBlank() -> {
TierButton.Submit.Enabled to TierAnyName.Hidden
}
@ -448,6 +454,9 @@ private fun convertToTierViewPeriod(tier: MembershipTierData): TierPeriod {
private fun MembershipTierData.getTierEmail(isActive: Boolean, membershipEmail: String): TierEmail {
if (isActive) {
if (id == MembershipConstants.OLD_EXPLORER_ID && membershipEmail.isBlank()) {
return TierEmail.Visible.Enter
}
if (id == MembershipConstants.STARTER_ID && membershipEmail.isBlank()) {
return TierEmail.Visible.Enter
}

View file

@ -41,6 +41,7 @@ import com.anytypeio.anytype.core_ui.views.fontInterSemibold
import com.anytypeio.anytype.core_models.membership.MembershipConstants.BUILDER_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.CO_CREATOR_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.NEW_EXPLORER_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.OLD_EXPLORER_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.PIONEER_ID
import com.anytypeio.anytype.payments.models.TierPreview
@ -159,6 +160,12 @@ fun mapTierToResources(tier: Tier): TierResources {
colors = toValue(tier.color),
features = tier.features,
)
OLD_EXPLORER_ID -> TierResources(
mediumIcon = R.drawable.logo_explorer_96,
smallIcon = R.drawable.logo_explorer_64,
colors = toValue(tier.color),
features = tier.features,
)
STARTER_ID -> TierResources(
mediumIcon = R.drawable.logo_explorer_96,
smallIcon = R.drawable.logo_explorer_64,
@ -200,6 +207,11 @@ fun mapTierPreviewToResources(tier: TierPreview): TierResources {
smallIcon = R.drawable.logo_co_creator_64,
colors = toValue(tier.color)
)
OLD_EXPLORER_ID -> TierResources(
mediumIcon = R.drawable.logo_explorer_96,
smallIcon = R.drawable.logo_explorer_64,
colors = toValue(tier.color)
)
STARTER_ID -> TierResources(
mediumIcon = R.drawable.logo_explorer_96,
smallIcon = R.drawable.logo_explorer_64,

View file

@ -14,6 +14,7 @@ import com.anytypeio.anytype.core_models.membership.EmailVerificationStatus
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.MEMBERSHIP_NAME_MIN_LENGTH
import com.anytypeio.anytype.core_models.membership.MembershipConstants.NONE_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.OLD_EXPLORER_ID
import com.anytypeio.anytype.core_models.membership.MembershipErrors
import com.anytypeio.anytype.core_models.membership.MembershipPaymentMethod
import com.anytypeio.anytype.core_models.membership.MembershipStatus
@ -458,7 +459,7 @@ class MembershipViewModel(
(tierState.value as? MembershipTierState.Visible)?.tier ?: return@fold
when (status) {
EmailVerificationStatus.STATUS_VERIFIED -> {
if (tierView.id.value == STARTER_ID) {
if (tierView.id.value == STARTER_ID || tierView.id.value == OLD_EXPLORER_ID) {
anyEmailState.clearText()
val updatedState = tierView.copy(
email = TierEmail.Hidden,

View file

@ -13,6 +13,8 @@ import com.anytypeio.anytype.core_models.Id
import com.anytypeio.anytype.core_models.ObjectWrapper
import com.anytypeio.anytype.core_models.ext.isPossibleToUpgradeNumberOfSpaceMembers
import com.anytypeio.anytype.core_models.membership.MembershipConstants.BUILDER_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.OLD_EXPLORER_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.PIONEER_ID
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
import com.anytypeio.anytype.core_models.membership.TierId
import com.anytypeio.anytype.core_models.multiplayer.MultiplayerError
@ -137,7 +139,7 @@ class SpaceJoinRequestViewModel(
Timber.d("proceedWithState, tierId: $tierId, spaceView: $spaceView, spaceMembers: $spaceMembers, newMember: $newMember, isCurrentUserOwner: $isCurrentUserOwner")
val state = when (tierId.value) {
STARTER_ID -> createExplorerState(
STARTER_ID, OLD_EXPLORER_ID, PIONEER_ID -> createExplorerState(
spaceView = spaceView,
spaceMembers = spaceMembers,
newMember = newMember,