Skip to content

Commit adbf298

Browse files
committed
Change email notifications Default value to On behind feature flag
1 parent 254a003 commit adbf298

File tree

14 files changed

+49
-2
lines changed

14 files changed

+49
-2
lines changed

app-common/build.gradle.kts

+2
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,7 @@ dependencies {
1111

1212
implementation(projects.legacy.account)
1313

14+
implementation(projects.core.featureflags)
15+
1416
implementation(projects.feature.migration.provider)
1517
}
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package net.thunderbird.app.common
22

3+
import app.k9mail.legacy.account.AccountDefaultsProvider
4+
import net.thunderbird.app.common.account.CommonAccountDefaultsProvider
35
import org.koin.core.module.Module
46
import org.koin.dsl.module
57

68
val appCommonModule: Module = module {
7-
// add common dependencies here
9+
single<AccountDefaultsProvider> { CommonAccountDefaultsProvider(featureFlagProvider = get()) }
810
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
package net.thunderbird.app.common.account
2+
3+
import app.k9mail.core.featureflag.FeatureFlagProvider
4+
import app.k9mail.core.featureflag.toFeatureFlagKey
5+
import app.k9mail.legacy.account.Account
6+
import app.k9mail.legacy.account.AccountDefaultsProvider
7+
8+
class CommonAccountDefaultsProvider(
9+
private val featureFlagProvider: FeatureFlagProvider,
10+
) : AccountDefaultsProvider {
11+
12+
override fun applyDefaults(account: Account) {
13+
account.isNotifyNewMail = featureFlagProvider.provide(
14+
"email_notification_default".toFeatureFlagKey(),
15+
).whenEnabledOrNot(
16+
onEnabled = { true },
17+
onDisabledOrUnavailable = { false },
18+
)
19+
20+
account.isNotifySelfNewMail = featureFlagProvider.provide(
21+
"email_notification_default".toFeatureFlagKey(),
22+
).whenEnabledOrNot(
23+
onEnabled = { true },
24+
onDisabledOrUnavailable = { false },
25+
)
26+
}
27+
}

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

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class K9FeatureFlagFactory : FeatureFlagFactory {
1010
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = true),
1111
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = true),
1212
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = true),
13+
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = true),
1314
)
1415
}
1516
}

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

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class K9FeatureFlagFactory : FeatureFlagFactory {
1010
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = false),
1111
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = false),
1212
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = false),
13+
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = false),
1314
)
1415
}
1516
}

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

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class TbFeatureFlagFactory : FeatureFlagFactory {
1313
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = true),
1414
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = false),
1515
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = true),
16+
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = true),
1617
)
1718
}
1819
}

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

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class TbFeatureFlagFactory : FeatureFlagFactory {
1313
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = true),
1414
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = false),
1515
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = true),
16+
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = true),
1617
)
1718
}
1819
}

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

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class TbFeatureFlagFactory : FeatureFlagFactory {
1313
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = true),
1414
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = true),
1515
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = true),
16+
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = true),
1617
)
1718
}
1819
}

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

+1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ class TbFeatureFlagFactory : FeatureFlagFactory {
1313
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = false),
1414
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = false),
1515
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = false),
16+
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = false),
1617
)
1718
}
1819
}

feature/navigation/drawer/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ dependencies {
2020
implementation(projects.legacy.message)
2121
implementation(projects.legacy.search)
2222
implementation(projects.legacy.ui.folder)
23+
implementation(projects.core.featureflags)
2324

2425
testImplementation(projects.core.ui.compose.testing)
2526
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package app.k9mail.legacy.account
2+
3+
fun interface AccountDefaultsProvider {
4+
fun applyDefaults(account: Account)
5+
}

legacy/core/src/main/java/com/fsck/k9/AccountPreferenceSerializer.kt

-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,6 @@ class AccountPreferenceSerializer(
5353
displayCount = K9.DEFAULT_VISIBLE_LIMIT
5454
}
5555
isNotifyNewMail = storage.getBoolean("$accountUuid.notifyNewMail", false)
56-
5756
folderNotifyNewMailMode = getEnumStringPref<FolderMode>(
5857
storage,
5958
"$accountUuid.folderNotifyNewMailMode",

legacy/core/src/main/java/com/fsck/k9/KoinModule.kt

+1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ val mainModule = module {
2121
storagePersister = get(),
2222
localStoreProvider = get(),
2323
accountPreferenceSerializer = get(),
24+
accountDefaultsProvider = get(),
2425
)
2526
}
2627
single { get<Context>().resources }

legacy/core/src/main/java/com/fsck/k9/Preferences.kt

+4
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.fsck.k9
33
import androidx.annotation.GuardedBy
44
import androidx.annotation.RestrictTo
55
import app.k9mail.legacy.account.Account
6+
import app.k9mail.legacy.account.AccountDefaultsProvider
67
import app.k9mail.legacy.account.AccountManager
78
import app.k9mail.legacy.account.AccountRemovedListener
89
import app.k9mail.legacy.account.AccountsChangeListener
@@ -27,11 +28,13 @@ import kotlinx.coroutines.flow.callbackFlow
2728
import kotlinx.coroutines.flow.flowOn
2829
import timber.log.Timber
2930

31+
@Suppress("MaxLineLength")
3032
class Preferences internal constructor(
3133
private val storagePersister: StoragePersister,
3234
private val localStoreProvider: LocalStoreProvider,
3335
private val accountPreferenceSerializer: AccountPreferenceSerializer,
3436
private val backgroundDispatcher: CoroutineDispatcher = Dispatchers.IO,
37+
private val accountDefaultsProvider: AccountDefaultsProvider,
3538
) : AccountManager {
3639
private val accountLock = Any()
3740
private val storageLock = Any()
@@ -87,6 +90,7 @@ class Preferences internal constructor(
8790

8891
accounts[uuid] = account
8992
accountsInOrder.add(account)
93+
accountDefaultsProvider.applyDefaults(account)
9094
}
9195
}
9296

0 commit comments

Comments
 (0)