Skip to content

Commit e3d84b7

Browse files
DROID-3951 Membership | New tiers ui (#2963)
1 parent 76f49e1 commit e3d84b7

File tree

2 files changed

+36
-123
lines changed

2 files changed

+36
-123
lines changed

core-models/src/main/java/com/anytypeio/anytype/core_models/membership/MembershipConstants.kt

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,6 @@ object MembershipConstants {
1111
const val CO_CREATOR_ID = 5
1212
const val ANY_TEAM_ID = 7
1313

14-
// New tier IDs
15-
const val FREE_ID = 31
16-
const val PLUS_ID = 40
17-
const val PLUS_MONTHLY_ID = 41
18-
const val PRO_ID = 42
19-
const val PRO_MONTHLY_ID = 43
20-
const val ULTRA_ID = 44
21-
const val ULTRA_MONTHLY_ID = 45
22-
2314
const val MEMBERSHIP_LEVEL_DETAILS = "https://anytype.io/pricing"
2415
const val PRIVACY_POLICY = "https://anytype.io/app_privacy"
2516
const val TERMS_OF_SERVICE = "https://anytype.io/terms_of_use"

payments/src/main/java/com/anytypeio/anytype/payments/screens/TierPreviewView.kt

Lines changed: 36 additions & 114 deletions
Original file line numberDiff line numberDiff line change
@@ -31,27 +31,19 @@ import androidx.compose.ui.tooling.preview.Preview
3131
import androidx.compose.ui.unit.dp
3232
import androidx.compose.ui.unit.em
3333
import androidx.compose.ui.unit.sp
34+
import com.anytypeio.anytype.core_models.membership.TierId
3435
import com.anytypeio.anytype.core_ui.R
3536
import com.anytypeio.anytype.core_ui.foundation.noRippleThrottledClickable
3637
import com.anytypeio.anytype.core_ui.views.ButtonPrimary
3738
import com.anytypeio.anytype.core_ui.views.ButtonSize
3839
import com.anytypeio.anytype.core_ui.views.Caption1Regular
3940
import com.anytypeio.anytype.core_ui.views.Relations3
4041
import com.anytypeio.anytype.core_ui.views.fontInterSemibold
41-
import com.anytypeio.anytype.core_models.membership.MembershipConstants.BUILDER_ID
42-
import com.anytypeio.anytype.core_models.membership.MembershipConstants.CO_CREATOR_ID
43-
import com.anytypeio.anytype.core_models.membership.MembershipConstants.FREE_ID
44-
import com.anytypeio.anytype.core_models.membership.MembershipConstants.NEW_EXPLORER_ID
45-
import com.anytypeio.anytype.core_models.membership.MembershipConstants.OLD_EXPLORER_ID
46-
import com.anytypeio.anytype.core_models.membership.MembershipConstants.STARTER_ID
47-
import com.anytypeio.anytype.core_models.membership.MembershipConstants.PIONEER_ID
48-
import com.anytypeio.anytype.core_models.membership.MembershipConstants.PRO_MONTHLY_ID
49-
import com.anytypeio.anytype.payments.models.TierPreview
5042
import com.anytypeio.anytype.payments.models.Tier
5143
import com.anytypeio.anytype.payments.models.TierConditionInfo
5244
import com.anytypeio.anytype.payments.models.TierPeriod
45+
import com.anytypeio.anytype.payments.models.TierPreview
5346
import com.anytypeio.anytype.presentation.editor.cover.CoverColor
54-
import com.anytypeio.anytype.core_models.membership.TierId
5547

5648
@Composable
5749
fun TierPreviewView(
@@ -146,117 +138,47 @@ fun TierPreviewView(
146138
}
147139
}
148140

149-
@Composable
150-
fun mapTierToResources(tier: Tier): TierResources {
151-
return when (tier.id.value) {
152-
BUILDER_ID -> TierResources(
153-
mediumIcon = R.drawable.logo_builder_96,
154-
smallIcon = R.drawable.logo_builder_64,
155-
colors = toValue(tier.color),
156-
features = tier.features,
141+
/**
142+
* Maps color code to icon resources (smallIcon, mediumIcon)
143+
*/
144+
private fun getIconsForColor(colorCode: String): Pair<Int, Int> {
145+
return when (colorCode) {
146+
CoverColor.RED.code -> Pair(R.drawable.logo_co_creator_64, R.drawable.logo_co_creator_96)
147+
CoverColor.BLUE.code -> Pair(
148+
R.drawable.logo_new_explorer_64,
149+
R.drawable.logo_new_explorer_96
157150
)
158151

159-
CO_CREATOR_ID -> TierResources(
160-
mediumIcon = R.drawable.logo_co_creator_96,
161-
smallIcon = R.drawable.logo_co_creator_64,
162-
colors = toValue(tier.color),
163-
features = tier.features,
164-
)
165-
OLD_EXPLORER_ID -> TierResources(
166-
mediumIcon = R.drawable.logo_explorer_96,
167-
smallIcon = R.drawable.logo_explorer_64,
168-
colors = toValue(tier.color),
169-
features = tier.features,
170-
)
171-
STARTER_ID -> TierResources(
172-
mediumIcon = R.drawable.logo_explorer_96,
173-
smallIcon = R.drawable.logo_explorer_64,
174-
colors = toValue(tier.color),
175-
features = tier.features,
176-
)
177-
PIONEER_ID -> TierResources(
178-
mediumIcon = R.drawable.logo_custom_64,
179-
smallIcon = R.drawable.logo_custom_64,
180-
colors = toValue(tier.color),
181-
features = tier.features,
182-
)
183-
NEW_EXPLORER_ID -> TierResources(
184-
mediumIcon = R.drawable.logo_new_explorer_96,
185-
smallIcon = R.drawable.logo_new_explorer_64,
186-
colors = toValue(tier.color),
187-
features = tier.features,
188-
)
189-
FREE_ID -> TierResources(
190-
mediumIcon = R.drawable.logo_explorer_96,
191-
smallIcon = R.drawable.logo_explorer_64,
192-
colors = toValue(tier.color),
193-
features = tier.features,
194-
)
195-
PRO_MONTHLY_ID -> TierResources(
196-
mediumIcon = R.drawable.logo_co_creator_96,
197-
smallIcon = R.drawable.logo_co_creator_64,
198-
colors = toValue(tier.color),
199-
features = tier.features,
200-
)
201-
else -> TierResources(
202-
smallIcon = R.drawable.logo_custom_64,
203-
mediumIcon = R.drawable.logo_custom_64,
204-
colors = toValue(tier.color),
205-
features = tier.features,
152+
CoverColor.GREEN.code -> Pair(R.drawable.logo_explorer_64, R.drawable.logo_explorer_96)
153+
CoverColor.PURPLE.code -> Pair(R.drawable.logo_custom_64, R.drawable.logo_custom_64)
154+
CoverColor.ICE.code -> Pair(
155+
R.drawable.logo_new_explorer_64,
156+
R.drawable.logo_new_explorer_96
206157
)
158+
159+
else -> Pair(R.drawable.logo_custom_64, R.drawable.logo_custom_64)
207160
}
208161
}
209162

210163
@Composable
211-
fun mapTierPreviewToResources(tier: TierPreview): TierResources {
212-
return when (tier.id.value) {
213-
BUILDER_ID -> TierResources(
214-
mediumIcon = R.drawable.logo_builder_96,
215-
smallIcon = R.drawable.logo_builder_64,
216-
colors = toValue(tier.color)
217-
)
164+
fun mapTierToResources(tier: Tier): TierResources {
165+
val (smallIcon, mediumIcon) = getIconsForColor(tier.color)
166+
return TierResources(
167+
mediumIcon = mediumIcon,
168+
smallIcon = smallIcon,
169+
colors = toValue(tier.color),
170+
features = tier.features,
171+
)
172+
}
218173

219-
CO_CREATOR_ID -> TierResources(
220-
mediumIcon = R.drawable.logo_co_creator_96,
221-
smallIcon = R.drawable.logo_co_creator_64,
222-
colors = toValue(tier.color)
223-
)
224-
OLD_EXPLORER_ID -> TierResources(
225-
mediumIcon = R.drawable.logo_explorer_96,
226-
smallIcon = R.drawable.logo_explorer_64,
227-
colors = toValue(tier.color)
228-
)
229-
STARTER_ID -> TierResources(
230-
mediumIcon = R.drawable.logo_explorer_96,
231-
smallIcon = R.drawable.logo_explorer_64,
232-
colors = toValue(tier.color)
233-
)
234-
PIONEER_ID -> TierResources(
235-
mediumIcon = R.drawable.logo_custom_64,
236-
smallIcon = R.drawable.logo_custom_64,
237-
colors = toValue(tier.color)
238-
)
239-
NEW_EXPLORER_ID -> TierResources(
240-
mediumIcon = R.drawable.logo_new_explorer_96,
241-
smallIcon = R.drawable.logo_new_explorer_64,
242-
colors = toValue(tier.color)
243-
)
244-
FREE_ID -> TierResources(
245-
mediumIcon = R.drawable.logo_explorer_96,
246-
smallIcon = R.drawable.logo_explorer_64,
247-
colors = toValue(tier.color),
248-
)
249-
PRO_MONTHLY_ID -> TierResources(
250-
mediumIcon = R.drawable.logo_co_creator_96,
251-
smallIcon = R.drawable.logo_co_creator_64,
252-
colors = toValue(tier.color),
253-
)
254-
else -> TierResources(
255-
smallIcon = R.drawable.logo_custom_64,
256-
mediumIcon = R.drawable.logo_custom_64,
257-
colors = toValue(tier.color)
258-
)
259-
}
174+
@Composable
175+
fun mapTierPreviewToResources(tier: TierPreview): TierResources {
176+
val (smallIcon, mediumIcon) = getIconsForColor(tier.color)
177+
return TierResources(
178+
mediumIcon = mediumIcon,
179+
smallIcon = smallIcon,
180+
colors = toValue(tier.color),
181+
)
260182
}
261183

262184
@Composable
@@ -314,7 +236,7 @@ data class TierColors(
314236
fun TierPreviewViewPreview() {
315237
TierPreviewView(
316238
tier = TierPreview(
317-
id = TierId(PRO_MONTHLY_ID),
239+
id = TierId(221),
318240
title = "Pro (monthly)",
319241
subtitle = "For those who want to build and create",
320242
conditionInfo = TierConditionInfo.Visible.Price("99.99", TierPeriod.Year(1)),

0 commit comments

Comments
 (0)