Skip to content

Commit 569932e

Browse files
Merge pull request #9990 from wmontwe/feat/8927/add-account-settings-profile-indicator
feat(account-setting): add account settings profile indicator
2 parents 935d77f + 9dc500f commit 569932e

File tree

26 files changed

+446
-134
lines changed

26 files changed

+446
-134
lines changed

app-k9mail/src/debug/kotlin/app/k9mail/featureflag/K9FeatureFlagFactory.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import net.thunderbird.core.featureflag.FeatureFlag
66
import net.thunderbird.core.featureflag.FeatureFlagFactory
77
import net.thunderbird.core.featureflag.FeatureFlagKey
88
import net.thunderbird.core.featureflag.toFeatureFlagKey
9+
import net.thunderbird.feature.account.settings.AccountSettingsFeatureFlags
910

1011
class K9FeatureFlagFactory : FeatureFlagFactory {
1112
override fun createFeatureCatalog(): List<FeatureFlag> {
@@ -20,6 +21,7 @@ class K9FeatureFlagFactory : FeatureFlagFactory {
2021
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = false),
2122
FeatureFlag(MessageListFeatureFlags.UseComposeForMessageListItems, enabled = false),
2223
FeatureFlag(MessageViewFeatureFlags.ActionExportEml, enabled = true),
24+
FeatureFlag(AccountSettingsFeatureFlags.EnableAvatarCustomization, enabled = false),
2325
)
2426
}
2527
}

app-k9mail/src/release/kotlin/app/k9mail/featureflag/K9FeatureFlagFactory.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,11 @@ import net.thunderbird.core.featureflag.FeatureFlag
66
import net.thunderbird.core.featureflag.FeatureFlagFactory
77
import net.thunderbird.core.featureflag.FeatureFlagKey
88
import net.thunderbird.core.featureflag.toFeatureFlagKey
9+
import net.thunderbird.feature.account.settings.AccountSettingsFeatureFlags
910

1011
/**
1112
* Feature flags for K-9 Mail (release)
1213
*/
13-
1414
class K9FeatureFlagFactory : FeatureFlagFactory {
1515
override fun createFeatureCatalog(): List<FeatureFlag> {
1616
return listOf(
@@ -24,6 +24,7 @@ class K9FeatureFlagFactory : FeatureFlagFactory {
2424
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = false),
2525
FeatureFlag(MessageListFeatureFlags.UseComposeForMessageListItems, enabled = false),
2626
FeatureFlag(MessageViewFeatureFlags.ActionExportEml, enabled = false),
27+
FeatureFlag(AccountSettingsFeatureFlags.EnableAvatarCustomization, enabled = false),
2728
)
2829
}
2930
}

app-thunderbird/src/beta/kotlin/net/thunderbird/android/featureflag/TbFeatureFlagFactory.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import net.thunderbird.core.featureflag.FeatureFlag
66
import net.thunderbird.core.featureflag.FeatureFlagFactory
77
import net.thunderbird.core.featureflag.FeatureFlagKey
88
import net.thunderbird.core.featureflag.toFeatureFlagKey
9+
import net.thunderbird.feature.account.settings.AccountSettingsFeatureFlags
910

1011
/**
1112
* Feature flags for Thunderbird Beta
@@ -23,6 +24,7 @@ class TbFeatureFlagFactory : FeatureFlagFactory {
2324
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = false),
2425
FeatureFlag(MessageListFeatureFlags.UseComposeForMessageListItems, enabled = false),
2526
FeatureFlag(MessageViewFeatureFlags.ActionExportEml, enabled = false),
27+
FeatureFlag(AccountSettingsFeatureFlags.EnableAvatarCustomization, enabled = false),
2628
)
2729
}
2830
}

app-thunderbird/src/daily/kotlin/net/thunderbird/android/featureflag/TbFeatureFlagFactory.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import net.thunderbird.core.featureflag.FeatureFlag
66
import net.thunderbird.core.featureflag.FeatureFlagFactory
77
import net.thunderbird.core.featureflag.FeatureFlagKey
88
import net.thunderbird.core.featureflag.toFeatureFlagKey
9+
import net.thunderbird.feature.account.settings.AccountSettingsFeatureFlags
910

1011
/**
1112
* Feature flags for Thunderbird Daily
@@ -23,6 +24,7 @@ class TbFeatureFlagFactory : FeatureFlagFactory {
2324
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = false),
2425
FeatureFlag(MessageListFeatureFlags.UseComposeForMessageListItems, enabled = false),
2526
FeatureFlag(MessageViewFeatureFlags.ActionExportEml, enabled = true),
27+
FeatureFlag(AccountSettingsFeatureFlags.EnableAvatarCustomization, enabled = false),
2628
)
2729
}
2830
}

app-thunderbird/src/debug/kotlin/net/thunderbird/android/featureflag/TbFeatureFlagFactory.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import net.thunderbird.core.featureflag.FeatureFlag
66
import net.thunderbird.core.featureflag.FeatureFlagFactory
77
import net.thunderbird.core.featureflag.FeatureFlagKey
88
import net.thunderbird.core.featureflag.toFeatureFlagKey
9+
import net.thunderbird.feature.account.settings.AccountSettingsFeatureFlags
910

1011
/**
1112
* Feature flags for Thunderbird Debug
@@ -23,6 +24,7 @@ class TbFeatureFlagFactory : FeatureFlagFactory {
2324
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = true),
2425
FeatureFlag(MessageListFeatureFlags.UseComposeForMessageListItems, enabled = false),
2526
FeatureFlag(MessageViewFeatureFlags.ActionExportEml, enabled = true),
27+
FeatureFlag(AccountSettingsFeatureFlags.EnableAvatarCustomization, enabled = false),
2628
)
2729
}
2830
}

app-thunderbird/src/release/kotlin/net/thunderbird/android/featureflag/TbFeatureFlagFactory.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import net.thunderbird.core.featureflag.FeatureFlag
66
import net.thunderbird.core.featureflag.FeatureFlagFactory
77
import net.thunderbird.core.featureflag.FeatureFlagKey
88
import net.thunderbird.core.featureflag.toFeatureFlagKey
9+
import net.thunderbird.feature.account.settings.AccountSettingsFeatureFlags
910

1011
/**
1112
* Feature flags for Thunderbird (release)
@@ -23,6 +24,7 @@ class TbFeatureFlagFactory : FeatureFlagFactory {
2324
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = false),
2425
FeatureFlag(MessageListFeatureFlags.UseComposeForMessageListItems, enabled = false),
2526
FeatureFlag(MessageViewFeatureFlags.ActionExportEml, enabled = false),
27+
FeatureFlag(AccountSettingsFeatureFlags.EnableAvatarCustomization, enabled = false),
2628
)
2729
}
2830
}

core/ui/setting/api/src/commonMain/kotlin/net/thunderbird/core/ui/setting/SettingValue.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -69,23 +69,24 @@ sealed interface SettingValue<T> : Setting {
6969
* @param value The currently selected option.
7070
* @param options The list of available options to choose from.
7171
*/
72-
data class CompactSelectSingleOption(
72+
data class CompactSelectSingleOption<T>(
7373
override val id: String,
7474
val title: () -> String,
7575
val description: () -> String? = { null },
76-
override val value: CompactOption,
77-
val options: ImmutableList<CompactOption>,
78-
) : SettingValue<CompactOption> {
76+
override val value: CompactOption<T>,
77+
val options: ImmutableList<CompactOption<T>>,
78+
) : SettingValue<CompactOption<T>> {
7979
override val requiresEditView: Boolean = false
8080

8181
init {
8282
require(options.size >= 2) { "There must be at least two options." }
8383
require(options.size <= 4) { "There can be at most four options." }
8484
}
8585

86-
data class CompactOption(
86+
data class CompactOption<T>(
8787
val id: String,
8888
val title: () -> String,
89+
val value: T,
8990
)
9091
}
9192

core/ui/setting/impl-dialog/src/debug/kotlin/net/thunderbird/core/ui/setting/dialog/ui/fake/FakeSettingData.kt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ internal object FakeSettingData {
3030
)
3131

3232
private val compactOptions = persistentListOf(
33-
CompactOption("1") { "Choice 1" },
34-
CompactOption("2") { "Choice 2" },
35-
CompactOption("3") { "Choice 3" },
33+
CompactOption(id = "1", title = { "Option 1" }, value = "1"),
34+
CompactOption(id = "2", title = { "Option 2" }, value = "2"),
35+
CompactOption(id = "3", title = { "Option 3" }, value = "3"),
3636
)
3737

3838
val compactSelectSingleOption = SettingValue.CompactSelectSingleOption(
@@ -44,12 +44,12 @@ internal object FakeSettingData {
4444
)
4545

4646
private val options = persistentListOf(
47-
Option("1") { "Compact Choice 1" },
48-
Option("2") { "Compact Choice 2" },
49-
Option("3") { "Compact Choice 3" },
50-
Option("1") { "Compact Choice 4" },
51-
Option("2") { "Compact Choice 5" },
52-
Option("3") { "Compact Choice 6" },
47+
Option("1") { "Option 1" },
48+
Option("2") { "Option 2" },
49+
Option("3") { "Option 3" },
50+
Option("4") { "Option 4" },
51+
Option("5") { "Option 5" },
52+
Option("6") { "Option 6" },
5353
)
5454

5555
val selectSingleOption = SettingValue.SelectSingleOption(

core/ui/setting/impl-dialog/src/main/kotlin/net/thunderbird/core/ui/setting/dialog/ui/components/dialog/SettingDialog.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,6 @@ internal fun SettingDialog(
5252
}
5353

5454
// No dialog needed
55-
is SettingValue.CompactSelectSingleOption, is SettingValue.Switch -> Unit
55+
is SettingValue.CompactSelectSingleOption<*>, is SettingValue.Switch -> Unit
5656
}
5757
}

core/ui/setting/impl-dialog/src/main/kotlin/net/thunderbird/core/ui/setting/dialog/ui/components/list/SettingItem.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ private fun RenderSettingValue(
6363
)
6464
}
6565

66-
is SettingValue.CompactSelectSingleOption -> {
66+
is SettingValue.CompactSelectSingleOption<*> -> {
6767
CompactSelectSingleOptionItem(
6868
setting = setting,
6969
onSettingValueChange = onSettingValueChange,

0 commit comments

Comments
 (0)