Skip to content

Commit

Permalink
refactor(MyKSuiteUpgradeFeature): Use an enum instead of sealed class
Browse files Browse the repository at this point in the history
  • Loading branch information
FabianDevel committed Feb 5, 2025
1 parent b543e15 commit 49ff31b
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -114,23 +114,17 @@ private fun UpgradeBottomSheetContent(app: KSuiteApp, onButtonClicked: () -> Uni
@Composable
private fun ColumnScope.UpgradeFeatures(app: KSuiteApp, modifier: Modifier) {
app.features.forEach { UpgradeFeature(it, modifier) }
UpgradeFeature(MyKSuiteUpgradeFeatures.MyKSuiteMoreFeatures(), modifier)
UpgradeFeature(MyKSuiteUpgradeFeatures.MoreFeatures, modifier)
}

@Parcelize
enum class KSuiteApp(val features: List<MyKSuiteUpgradeFeatures>, val buttonStyle: MyKSuiteButtonType): Parcelable {
enum class KSuiteApp(val features: List<MyKSuiteUpgradeFeatures>, val buttonStyle: MyKSuiteButtonType) : Parcelable {
Mail(
features = listOf(
MyKSuiteUpgradeFeatures.MyKSuiteMailUnlimitedFeature(),
MyKSuiteUpgradeFeatures.MyKSuiteMailOtherFeature(),
),
features = listOf(MyKSuiteUpgradeFeatures.MailUnlimitedFeature, MyKSuiteUpgradeFeatures.MailOtherFeature),
buttonStyle = MyKSuiteButtonType.Mail,
),
Drive(
features = listOf(
MyKSuiteUpgradeFeatures.MyKSuiteDriveStorageFeature(),
MyKSuiteUpgradeFeatures.MyKSuiteDriveDropboxFeature(),
),
features = listOf(MyKSuiteUpgradeFeatures.DriveStorageFeature, MyKSuiteUpgradeFeatures.DriveDropboxFeature),
buttonStyle = MyKSuiteButtonType.Drive,
),
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,34 +17,31 @@
*/
package com.infomaniak.core.myksuite.ui.screens

import android.os.Parcelable
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import com.infomaniak.core.myksuite.R
import kotlinx.parcelize.Parcelize

@Parcelize
sealed class MyKSuiteUpgradeFeatures(@StringRes val title: Int, @DrawableRes val icon: Int) : Parcelable {
enum class MyKSuiteUpgradeFeatures(@StringRes val title: Int, @DrawableRes val icon: Int) {

class MyKSuiteDriveStorageFeature : MyKSuiteUpgradeFeatures(
DriveStorageFeature(
title = R.string.myKSuiteUpgradeDriveLabel,
icon = R.drawable.ic_drive_cloud,
)
),

class MyKSuiteDriveDropboxFeature : MyKSuiteUpgradeFeatures(
DriveDropboxFeature(
title = R.string.myKSuiteUpgradeDropboxLabel,
icon = R.drawable.ic_folder_circle_filled_arrow_up,
)
),

class MyKSuiteMailUnlimitedFeature : MyKSuiteUpgradeFeatures(
MailUnlimitedFeature(
title = R.string.myKSuiteUpgradeUnlimitedMailLabel,
icon = R.drawable.ic_paperplane,
)
),

class MyKSuiteMailOtherFeature : MyKSuiteUpgradeFeatures(
MailOtherFeature(
title = R.string.myKSuiteUpgradeRedirectLabel,
icon = R.drawable.ic_enveloppe_italic,
)
),

class MyKSuiteMoreFeatures : MyKSuiteUpgradeFeatures(title = R.string.myKSuiteUpgradeLabel, icon = R.drawable.ic_gift)
MoreFeatures(title = R.string.myKSuiteUpgradeLabel, icon = R.drawable.ic_gift),
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,8 +30,7 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.res.vectorResource
import androidx.compose.ui.tooling.preview.Preview
import com.infomaniak.core.myksuite.ui.screens.MyKSuiteUpgradeFeatures
import com.infomaniak.core.myksuite.ui.screens.MyKSuiteUpgradeFeatures.MyKSuiteDriveDropboxFeature
import com.infomaniak.core.myksuite.ui.screens.MyKSuiteUpgradeFeatures.MyKSuiteMoreFeatures
import com.infomaniak.core.myksuite.ui.screens.MyKSuiteUpgradeFeatures.*
import com.infomaniak.core.myksuite.ui.theme.*

@Composable
Expand Down Expand Up @@ -65,8 +64,9 @@ private fun Preview() {
MyKSuiteTheme {
Surface {
Column {
UpgradeFeature(MyKSuiteDriveDropboxFeature())
UpgradeFeature(MyKSuiteMoreFeatures())
UpgradeFeature(DriveStorageFeature)
UpgradeFeature(DriveDropboxFeature)
UpgradeFeature(MoreFeatures)
}
}
}
Expand Down

0 comments on commit 49ff31b

Please sign in to comment.