Repo created
This commit is contained in:
parent
75dc487a7a
commit
39c29d175b
6317 changed files with 388324 additions and 2 deletions
27
app-k9mail/src/debug/AndroidManifest.xml
Normal file
27
app-k9mail/src/debug/AndroidManifest.xml
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
>
|
||||
|
||||
<application tools:ignore="MissingApplicationIcon">
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name must be -->
|
||||
<!-- `net.thunderbird.feature.widget.message.list.MessageListWidgetReceiver` and can't be changed. -->
|
||||
<receiver
|
||||
android:name="net.thunderbird.feature.widget.message.list.MessageListWidgetReceiver"
|
||||
android:exported="true"
|
||||
android:label="@string/message_list_glance_widget_label"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/message_list_glance_widget_info"
|
||||
/>
|
||||
</receiver>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
package app.k9mail.auth
|
||||
|
||||
import com.fsck.k9.BuildConfig
|
||||
import net.thunderbird.core.common.oauth.OAuthConfiguration
|
||||
import net.thunderbird.core.common.oauth.OAuthConfigurationFactory
|
||||
|
||||
@Suppress("ktlint:standard:max-line-length")
|
||||
class K9OAuthConfigurationFactory : OAuthConfigurationFactory {
|
||||
override fun createConfigurations(): Map<List<String>, OAuthConfiguration> {
|
||||
return mapOf(
|
||||
createAolConfiguration(),
|
||||
createFastmailConfiguration(),
|
||||
createGmailConfiguration(),
|
||||
createMicrosoftConfiguration(),
|
||||
createYahooConfiguration(),
|
||||
)
|
||||
}
|
||||
|
||||
private fun createAolConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.aol.com",
|
||||
"smtp.aol.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9cHYydkJkTUxHcXlYJmQ9WVdrOWVHZHhVVXN4VVV3bWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PTdm",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.aol.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.aol.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createFastmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.fastmail.com",
|
||||
"smtp.fastmail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "353641ae",
|
||||
scopes = listOf("https://www.fastmail.com/dev/protocol-imap", "https://www.fastmail.com/dev/protocol-smtp"),
|
||||
authorizationEndpoint = "https://api.fastmail.com/oauth/authorize",
|
||||
tokenEndpoint = "https://api.fastmail.com/oauth/refresh",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createGmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.gmail.com",
|
||||
"imap.googlemail.com",
|
||||
"smtp.gmail.com",
|
||||
"smtp.googlemail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "262622259280-5qb3vtj68d5dtudmaif4g9vd3cpar8r3.apps.googleusercontent.com",
|
||||
scopes = listOf("https://mail.google.com/"),
|
||||
authorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth",
|
||||
tokenEndpoint = "https://oauth2.googleapis.com/token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}:/oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createMicrosoftConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"outlook.office365.com",
|
||||
"smtp.office365.com",
|
||||
"smtp-mail.outlook.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "e647013a-ada4-4114-b419-e43d250f99c5",
|
||||
scopes = listOf(
|
||||
"openid",
|
||||
"email",
|
||||
"https://outlook.office.com/IMAP.AccessAsUser.All",
|
||||
"https://outlook.office.com/SMTP.Send",
|
||||
"offline_access",
|
||||
),
|
||||
authorizationEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
|
||||
tokenEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/token",
|
||||
redirectUri = "msauth://com.fsck.k9.debug/VZF2DYuLYAu4TurFd6usQB2JPts%3D",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createYahooConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.mail.yahoo.com",
|
||||
"smtp.mail.yahoo.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9ejRCRU1ybmZjQlVBJmQ9WVdrOVVrZEViak4xYmxZbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PTZj",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.yahoo.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.yahoo.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
}
|
||||
17
app-k9mail/src/debug/kotlin/app/k9mail/dev/DebugConfig.kt
Normal file
17
app-k9mail/src/debug/kotlin/app/k9mail/dev/DebugConfig.kt
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
package app.k9mail.dev
|
||||
|
||||
import app.k9mail.autodiscovery.api.AutoDiscovery
|
||||
import app.k9mail.autodiscovery.demo.DemoAutoDiscovery
|
||||
import com.fsck.k9.backend.BackendFactory
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.core.qualifier.named
|
||||
|
||||
fun Module.developmentModuleAdditions() {
|
||||
single { DemoBackendFactory(backendStorageFactory = get()) }
|
||||
single<Map<String, BackendFactory>>(named("developmentBackends")) {
|
||||
mapOf("demo" to get<DemoBackendFactory>())
|
||||
}
|
||||
single<List<AutoDiscovery>>(named("extraAutoDiscoveries")) {
|
||||
listOf(DemoAutoDiscovery())
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,14 @@
|
|||
package app.k9mail.dev
|
||||
|
||||
import app.k9mail.backend.demo.DemoBackend
|
||||
import com.fsck.k9.backend.BackendFactory
|
||||
import com.fsck.k9.backend.api.Backend
|
||||
import com.fsck.k9.mailstore.K9BackendStorageFactory
|
||||
import net.thunderbird.core.android.account.LegacyAccount
|
||||
|
||||
class DemoBackendFactory(private val backendStorageFactory: K9BackendStorageFactory) : BackendFactory {
|
||||
override fun createBackend(account: LegacyAccount): Backend {
|
||||
val backendStorage = backendStorageFactory.createBackendStorage(account)
|
||||
return DemoBackend(backendStorage)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package app.k9mail.featureflag
|
||||
|
||||
import net.thunderbird.core.featureflag.FeatureFlag
|
||||
import net.thunderbird.core.featureflag.FeatureFlagFactory
|
||||
import net.thunderbird.core.featureflag.FeatureFlagKey
|
||||
import net.thunderbird.core.featureflag.toFeatureFlagKey
|
||||
|
||||
class K9FeatureFlagFactory : FeatureFlagFactory {
|
||||
override fun createFeatureCatalog(): List<FeatureFlag> {
|
||||
return listOf(
|
||||
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("enable_dropdown_drawer".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("enable_dropdown_drawer_ui".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag(FeatureFlagKey.DisplayInAppNotifications, enabled = true),
|
||||
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = true),
|
||||
)
|
||||
}
|
||||
}
|
||||
8
app-k9mail/src/debug/res/values/app_logo_colors.xml
Normal file
8
app-k9mail/src/debug/res/values/app_logo_colors.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="app_logo_main">#5917ff</color>
|
||||
<color name="app_logo_highlight_light">#7a45ff</color>
|
||||
<color name="app_logo_highlight_dark">#531ad8</color>
|
||||
|
||||
<color name="launcher_icon_background">#e3d9ff</color>
|
||||
</resources>
|
||||
82
app-k9mail/src/main/AndroidManifest.xml
Normal file
82
app-k9mail/src/main/AndroidManifest.xml
Normal file
|
|
@ -0,0 +1,82 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:installLocation="auto"
|
||||
>
|
||||
|
||||
<application
|
||||
android:name="app.k9mail.K9App"
|
||||
android:icon="@drawable/ic_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:theme="@style/Theme.K9.Startup"
|
||||
tools:replace="android:theme"
|
||||
>
|
||||
|
||||
<activity
|
||||
android:name="com.fsck.k9.ui.settings.account.OpenPgpAppSelectDialog"
|
||||
android:configChanges="locale"
|
||||
android:theme="@style/Theme.K9.DayNight.Dialog.Translucent"
|
||||
/>
|
||||
|
||||
<activity
|
||||
android:name="com.fsck.k9.ui.notification.DeleteConfirmationActivity"
|
||||
android:excludeFromRecents="true"
|
||||
android:launchMode="singleTop"
|
||||
android:taskAffinity=""
|
||||
android:theme="@style/Theme.K9.DayNight.Dialog.Translucent"
|
||||
/>
|
||||
|
||||
<provider
|
||||
android:name="androidx.startup.InitializationProvider"
|
||||
android:authorities="${applicationId}.androidx-startup"
|
||||
android:exported="false"
|
||||
tools:node="merge"
|
||||
>
|
||||
|
||||
<!-- We're using on-demand initialization for WorkManager -->
|
||||
<meta-data
|
||||
android:name="androidx.work.WorkManagerInitializer"
|
||||
android:value="androidx.startup"
|
||||
tools:node="remove"
|
||||
/>
|
||||
|
||||
</provider>
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name must be `com.fsck.k9.widget.list.MessageListWidgetProvider` and can't be changed. -->
|
||||
<receiver
|
||||
android:name="com.fsck.k9.widget.list.MessageListWidgetProvider"
|
||||
android:icon="@drawable/message_list_widget_preview"
|
||||
android:label="@string/message_list_widget_label"
|
||||
android:enabled="@bool/home_screen_widgets_enabled"
|
||||
android:exported="false"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/message_list_widget_info"
|
||||
/>
|
||||
</receiver>
|
||||
|
||||
<!-- This component is disabled by default (if possible). It will be enabled programmatically if necessary. -->
|
||||
<!-- IMPORTANT: The component name must be `com.fsck.k9.provider.UnreadWidgetProvider` and can't be changed. -->
|
||||
<receiver
|
||||
android:name="com.fsck.k9.provider.UnreadWidgetProvider"
|
||||
android:label="@string/unread_widget_label"
|
||||
android:enabled="@bool/home_screen_widgets_enabled"
|
||||
android:exported="false"
|
||||
>
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/unread_widget_info"
|
||||
/>
|
||||
</receiver>
|
||||
|
||||
</application>
|
||||
</manifest>
|
||||
8
app-k9mail/src/main/kotlin/app/k9mail/K9App.kt
Normal file
8
app-k9mail/src/main/kotlin/app/k9mail/K9App.kt
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
package app.k9mail
|
||||
|
||||
import net.thunderbird.app.common.BaseApplication
|
||||
import org.koin.core.module.Module
|
||||
|
||||
class K9App : BaseApplication() {
|
||||
override fun provideAppModule(): Module = appModule
|
||||
}
|
||||
45
app-k9mail/src/main/kotlin/app/k9mail/K9KoinModule.kt
Normal file
45
app-k9mail/src/main/kotlin/app/k9mail/K9KoinModule.kt
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
package app.k9mail
|
||||
|
||||
import app.k9mail.auth.K9OAuthConfigurationFactory
|
||||
import app.k9mail.dev.developmentModuleAdditions
|
||||
import app.k9mail.feature.featureModule
|
||||
import app.k9mail.feature.widget.shortcut.LauncherShortcutActivity
|
||||
import app.k9mail.featureflag.K9FeatureFlagFactory
|
||||
import app.k9mail.provider.providerModule
|
||||
import app.k9mail.widget.widgetModule
|
||||
import com.fsck.k9.AppConfig
|
||||
import com.fsck.k9.BuildConfig
|
||||
import com.fsck.k9.DefaultAppConfig
|
||||
import com.fsck.k9.activity.MessageCompose
|
||||
import com.fsck.k9.provider.UnreadWidgetProvider
|
||||
import com.fsck.k9.widget.list.MessageListWidgetProvider
|
||||
import net.thunderbird.app.common.appCommonModule
|
||||
import net.thunderbird.core.common.oauth.OAuthConfigurationFactory
|
||||
import net.thunderbird.core.featureflag.FeatureFlagFactory
|
||||
import org.koin.core.qualifier.named
|
||||
import org.koin.dsl.module
|
||||
|
||||
val appModule = module {
|
||||
includes(appCommonModule)
|
||||
|
||||
includes(widgetModule)
|
||||
includes(featureModule)
|
||||
includes(providerModule)
|
||||
|
||||
single(named("ClientInfoAppName")) { BuildConfig.CLIENT_INFO_APP_NAME }
|
||||
single(named("ClientInfoAppVersion")) { BuildConfig.VERSION_NAME }
|
||||
single<AppConfig> { appConfig }
|
||||
single<OAuthConfigurationFactory> { K9OAuthConfigurationFactory() }
|
||||
single<FeatureFlagFactory> { K9FeatureFlagFactory() }
|
||||
|
||||
developmentModuleAdditions()
|
||||
}
|
||||
|
||||
val appConfig = DefaultAppConfig(
|
||||
componentsToDisable = listOf(
|
||||
MessageCompose::class.java,
|
||||
LauncherShortcutActivity::class.java,
|
||||
UnreadWidgetProvider::class.java,
|
||||
MessageListWidgetProvider::class.java,
|
||||
),
|
||||
)
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package app.k9mail.feature
|
||||
|
||||
import app.k9mail.feature.funding.api.FundingSettings
|
||||
import app.k9mail.feature.funding.featureFundingModule
|
||||
import app.k9mail.feature.migration.launcher.featureMigrationModule
|
||||
import app.k9mail.feature.onboarding.migration.onboardingMigrationModule
|
||||
import app.k9mail.feature.telemetry.telemetryModule
|
||||
import net.thunderbird.feature.account.settings.featureAccountSettingsModule
|
||||
import net.thunderbird.feature.mail.message.list.featureMessageListModule
|
||||
import org.koin.dsl.module
|
||||
|
||||
val featureModule = module {
|
||||
includes(featureAccountSettingsModule)
|
||||
includes(telemetryModule)
|
||||
includes(featureFundingModule)
|
||||
includes(onboardingMigrationModule)
|
||||
includes(featureMigrationModule)
|
||||
includes(featureMessageListModule)
|
||||
|
||||
single<FundingSettings> { K9FundingSettings() }
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package app.k9mail.feature
|
||||
|
||||
import app.k9mail.feature.funding.api.FundingSettings
|
||||
import com.fsck.k9.K9
|
||||
|
||||
internal class K9FundingSettings : FundingSettings {
|
||||
override fun getReminderReferenceTimestamp(): Long = K9.fundingReminderReferenceTimestamp
|
||||
|
||||
override fun setReminderReferenceTimestamp(timestamp: Long) {
|
||||
K9.fundingReminderReferenceTimestamp = timestamp
|
||||
K9.saveSettingsAsync()
|
||||
}
|
||||
|
||||
override fun getReminderShownTimestamp() = K9.fundingReminderShownTimestamp
|
||||
|
||||
override fun setReminderShownTimestamp(timestamp: Long) {
|
||||
K9.fundingReminderShownTimestamp = timestamp
|
||||
K9.saveSettingsAsync()
|
||||
}
|
||||
|
||||
override fun getActivityCounterInMillis(): Long = K9.fundingActivityCounterInMillis
|
||||
|
||||
override fun setActivityCounterInMillis(activeTime: Long) {
|
||||
K9.fundingActivityCounterInMillis = activeTime
|
||||
K9.saveSettingsAsync()
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package app.k9mail.provider
|
||||
|
||||
import android.content.Context
|
||||
import com.fsck.k9.R
|
||||
import com.fsck.k9.preferences.FilePrefixProvider
|
||||
import net.thunderbird.core.common.provider.AppNameProvider
|
||||
import net.thunderbird.core.common.provider.BrandNameProvider
|
||||
|
||||
internal class K9AppNameProvider(
|
||||
context: Context,
|
||||
) : AppNameProvider, BrandNameProvider, FilePrefixProvider {
|
||||
override val appName: String by lazy {
|
||||
context.getString(R.string.app_name)
|
||||
}
|
||||
|
||||
override val brandName: String by lazy {
|
||||
context.getString(R.string.app_name)
|
||||
}
|
||||
|
||||
override val filePrefix: String = "k9"
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package app.k9mail.provider
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import app.k9mail.core.ui.compose.theme2.k9mail.K9MailTheme2
|
||||
import net.thunderbird.core.ui.theme.api.FeatureThemeProvider
|
||||
|
||||
internal class K9FeatureThemeProvider : FeatureThemeProvider {
|
||||
@Composable
|
||||
override fun WithTheme(content: @Composable () -> Unit) {
|
||||
K9MailTheme2 {
|
||||
content()
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
override fun WithTheme(darkTheme: Boolean, content: @Composable () -> Unit) {
|
||||
K9MailTheme2(darkTheme = darkTheme) {
|
||||
content()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,12 @@
|
|||
package app.k9mail.provider
|
||||
|
||||
import com.fsck.k9.R
|
||||
import net.thunderbird.core.ui.theme.api.ThemeProvider
|
||||
|
||||
internal class K9ThemeProvider : ThemeProvider {
|
||||
override val appThemeResourceId = R.style.Theme_K9_DayNight
|
||||
override val appLightThemeResourceId = R.style.Theme_K9_Light
|
||||
override val appDarkThemeResourceId = R.style.Theme_K9_Dark
|
||||
override val dialogThemeResourceId = R.style.Theme_K9_DayNight_Dialog
|
||||
override val translucentDialogThemeResourceId = R.style.Theme_K9_DayNight_Dialog_Translucent
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
package app.k9mail.provider
|
||||
|
||||
import com.fsck.k9.preferences.FilePrefixProvider
|
||||
import net.thunderbird.core.common.provider.AppNameProvider
|
||||
import net.thunderbird.core.common.provider.BrandNameProvider
|
||||
import net.thunderbird.core.ui.theme.api.FeatureThemeProvider
|
||||
import net.thunderbird.core.ui.theme.api.ThemeProvider
|
||||
import org.koin.android.ext.koin.androidContext
|
||||
import org.koin.dsl.binds
|
||||
import org.koin.dsl.module
|
||||
|
||||
internal val providerModule = module {
|
||||
single {
|
||||
K9AppNameProvider(androidContext())
|
||||
} binds arrayOf(AppNameProvider::class, BrandNameProvider::class, FilePrefixProvider::class)
|
||||
|
||||
single<ThemeProvider> { K9ThemeProvider() }
|
||||
|
||||
single<FeatureThemeProvider> { K9FeatureThemeProvider() }
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package app.k9mail.widget
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
import com.fsck.k9.widget.list.MessageListWidgetProvider
|
||||
|
||||
class K9MessageListWidgetConfig : MessageListWidgetConfig {
|
||||
override val providerClass = MessageListWidgetProvider::class.java
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
package app.k9mail.widget
|
||||
|
||||
import app.k9mail.feature.widget.unread.UnreadWidgetConfig
|
||||
import com.fsck.k9.provider.UnreadWidgetProvider
|
||||
|
||||
class K9UnreadWidgetConfig : UnreadWidgetConfig {
|
||||
override val providerClass = UnreadWidgetProvider::class.java
|
||||
}
|
||||
13
app-k9mail/src/main/kotlin/app/k9mail/widget/WidgetModule.kt
Normal file
13
app-k9mail/src/main/kotlin/app/k9mail/widget/WidgetModule.kt
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
package app.k9mail.widget
|
||||
|
||||
import app.k9mail.feature.widget.message.list.MessageListWidgetConfig
|
||||
import app.k9mail.feature.widget.unread.UnreadWidgetConfig
|
||||
import net.thunderbird.feature.widget.message.list.featureWidgetMessageListModule
|
||||
import org.koin.dsl.module
|
||||
|
||||
internal val widgetModule = module {
|
||||
includes(featureWidgetMessageListModule)
|
||||
|
||||
single<MessageListWidgetConfig> { K9MessageListWidgetConfig() }
|
||||
single<UnreadWidgetConfig> { K9UnreadWidgetConfig() }
|
||||
}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.fsck.k9.provider
|
||||
|
||||
import app.k9mail.feature.widget.unread.BaseUnreadWidgetProvider
|
||||
|
||||
/**
|
||||
* IMPORTANT: The fully qualified name for this class must be
|
||||
* `com.fsck.k9.provider.UnreadWidgetProvider`.
|
||||
* Otherwise widgets created with older versions of the app using a different name
|
||||
* will stop working or disappear.
|
||||
*/
|
||||
class UnreadWidgetProvider : BaseUnreadWidgetProvider()
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
package com.fsck.k9.widget.list
|
||||
|
||||
import app.k9mail.feature.widget.message.list.BaseMessageListWidgetProvider
|
||||
|
||||
/**
|
||||
* IMPORTANT: The fully qualified name for this class must be
|
||||
* `com.fsck.k9.widget.list.MessageListWidgetProvider`.
|
||||
* Otherwise widgets created with older versions of the app using a different name
|
||||
* will stop working or disappear.
|
||||
*/
|
||||
class MessageListWidgetProvider : BaseMessageListWidgetProvider()
|
||||
1543
app-k9mail/src/main/res/raw/changelog_master.xml
Normal file
1543
app-k9mail/src/main/res/raw/changelog_master.xml
Normal file
File diff suppressed because it is too large
Load diff
2
app-k9mail/src/main/res/values-am/strings.xml
Normal file
2
app-k9mail/src/main/res/values-am/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
4
app-k9mail/src/main/res/values-ar/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ar/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">بريد K-9</string>
|
||||
</resources>
|
||||
2
app-k9mail/src/main/res/values-ast/strings.xml
Normal file
2
app-k9mail/src/main/res/values-ast/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
4
app-k9mail/src/main/res/values-az/strings.xml
Normal file
4
app-k9mail/src/main/res/values-az/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-be/strings.xml
Normal file
4
app-k9mail/src/main/res/values-be/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">Пошта K-9</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-bg/strings.xml
Normal file
4
app-k9mail/src/main/res/values-bg/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Поща</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-bn/strings.xml
Normal file
4
app-k9mail/src/main/res/values-bn/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">K-9 মেইল</string>
|
||||
</resources>
|
||||
3
app-k9mail/src/main/res/values-br/strings.xml
Normal file
3
app-k9mail/src/main/res/values-br/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-bs/strings.xml
Normal file
4
app-k9mail/src/main/res/values-bs/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-ca/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ca/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-co/strings.xml
Normal file
4
app-k9mail/src/main/res/values-co/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-cs/strings.xml
Normal file
4
app-k9mail/src/main/res/values-cs/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-cy/strings.xml
Normal file
4
app-k9mail/src/main/res/values-cy/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-da/strings.xml
Normal file
4
app-k9mail/src/main/res/values-da/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-de/strings.xml
Normal file
4
app-k9mail/src/main/res/values-de/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-el/strings.xml
Normal file
4
app-k9mail/src/main/res/values-el/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-en-rGB/strings.xml
Normal file
4
app-k9mail/src/main/res/values-en-rGB/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
2
app-k9mail/src/main/res/values-enm/strings.xml
Normal file
2
app-k9mail/src/main/res/values-enm/strings.xml
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources></resources>
|
||||
4
app-k9mail/src/main/res/values-eo/strings.xml
Normal file
4
app-k9mail/src/main/res/values-eo/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Retpoŝtilo</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-es/strings.xml
Normal file
4
app-k9mail/src/main/res/values-es/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-et/strings.xml
Normal file
4
app-k9mail/src/main/res/values-et/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-eu/strings.xml
Normal file
4
app-k9mail/src/main/res/values-eu/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-fa/strings.xml
Normal file
4
app-k9mail/src/main/res/values-fa/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">نامهٔ کی۹</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-fi/strings.xml
Normal file
4
app-k9mail/src/main/res/values-fi/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-fr/strings.xml
Normal file
4
app-k9mail/src/main/res/values-fr/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">Courriel K-9</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-fy/strings.xml
Normal file
4
app-k9mail/src/main/res/values-fy/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-ga/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ga/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">K-9 Post</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-gd/strings.xml
Normal file
4
app-k9mail/src/main/res/values-gd/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">Post K-9</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-gl/strings.xml
Normal file
4
app-k9mail/src/main/res/values-gl/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-gu/strings.xml
Normal file
4
app-k9mail/src/main/res/values-gu/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">કે-૯ મેલ</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-hi/strings.xml
Normal file
4
app-k9mail/src/main/res/values-hi/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">के-9 मेल</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-hr/strings.xml
Normal file
4
app-k9mail/src/main/res/values-hr/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-hu/strings.xml
Normal file
4
app-k9mail/src/main/res/values-hu/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-hy/strings.xml
Normal file
4
app-k9mail/src/main/res/values-hy/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Նամակ</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-in/strings.xml
Normal file
4
app-k9mail/src/main/res/values-in/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">Surel K-9</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-is/strings.xml
Normal file
4
app-k9mail/src/main/res/values-is/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 - Póstur</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-it/strings.xml
Normal file
4
app-k9mail/src/main/res/values-it/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-iw/strings.xml
Normal file
4
app-k9mail/src/main/res/values-iw/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 דוא\"ל</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-ja/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ja/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-ka/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ka/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-kab/strings.xml
Normal file
4
app-k9mail/src/main/res/values-kab/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Imayl K-9</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-kk/strings.xml
Normal file
4
app-k9mail/src/main/res/values-kk/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">K-9 Пошта</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-ko/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ko/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 메일</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-lt/strings.xml
Normal file
4
app-k9mail/src/main/res/values-lt/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 paštas</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-lv/strings.xml
Normal file
4
app-k9mail/src/main/res/values-lv/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 pasts</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-ml/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ml/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-nb/strings.xml
Normal file
4
app-k9mail/src/main/res/values-nb/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 E-post</string>
|
||||
</resources>
|
||||
8
app-k9mail/src/main/res/values-night/themes.xml
Normal file
8
app-k9mail/src/main/res/values-night/themes.xml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
|
||||
<style name="Theme.K9.DayNight" parent="Theme.K9.Dark" />
|
||||
<style name="Theme.K9.DayNight.Dialog" parent="Theme.K9.Dark.Dialog" />
|
||||
<style name="Theme.K9.DayNight.Dialog.Translucent" parent="Theme.K9.Dark.Dialog.Translucent" />
|
||||
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-nl/strings.xml
Normal file
4
app-k9mail/src/main/res/values-nl/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-nn/strings.xml
Normal file
4
app-k9mail/src/main/res/values-nn/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 e-post</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-pl/strings.xml
Normal file
4
app-k9mail/src/main/res/values-pl/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-pt-rBR/strings.xml
Normal file
4
app-k9mail/src/main/res/values-pt-rBR/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-pt-rPT/strings.xml
Normal file
4
app-k9mail/src/main/res/values-pt-rPT/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-pt/strings.xml
Normal file
4
app-k9mail/src/main/res/values-pt/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_name">Email K-9</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-ro/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ro/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-ru/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ru/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">Почта K-9</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-sk/strings.xml
Normal file
4
app-k9mail/src/main/res/values-sk/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-sl/strings.xml
Normal file
4
app-k9mail/src/main/res/values-sl/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">Pošta K-9</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-sq/strings.xml
Normal file
4
app-k9mail/src/main/res/values-sq/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-sr/strings.xml
Normal file
4
app-k9mail/src/main/res/values-sr/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-sv/strings.xml
Normal file
4
app-k9mail/src/main/res/values-sv/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
3
app-k9mail/src/main/res/values-sw/strings.xml
Normal file
3
app-k9mail/src/main/res/values-sw/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-ta-rIN/strings.xml
Normal file
4
app-k9mail/src/main/res/values-ta-rIN/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 அஞ்சல்</string>
|
||||
</resources>
|
||||
3
app-k9mail/src/main/res/values-th/strings.xml
Normal file
3
app-k9mail/src/main/res/values-th/strings.xml
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-tr/strings.xml
Normal file
4
app-k9mail/src/main/res/values-tr/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Posta</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-uk/strings.xml
Normal file
4
app-k9mail/src/main/res/values-uk/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-vi/strings.xml
Normal file
4
app-k9mail/src/main/res/values-vi/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">Thư K-9</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-zh-rCN/strings.xml
Normal file
4
app-k9mail/src/main/res/values-zh-rCN/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
4
app-k9mail/src/main/res/values-zh-rTW/strings.xml
Normal file
4
app-k9mail/src/main/res/values-zh-rTW/strings.xml
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
9
app-k9mail/src/main/res/values/constants.xml
Normal file
9
app-k9mail/src/main/res/values/constants.xml
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<string name="app_webpage_url" translatable="false">https://k9mail.app/</string>
|
||||
<string name="user_forum_url" translatable="false">https://forum.k9mail.app/</string>
|
||||
<string name="funding_url" translatable="false">https://www.thunderbird.net/donate/mobile/?form=k9mail&utm_source=%s&utm_medium=android_app&utm_campaign=inapp_appeal_v2</string>
|
||||
<string name="message_header_mua" translatable="false">K-9 Mail for Android</string>
|
||||
<string name="thunderbird_website_domain" translatable="false">www.thunderbird.net</string>
|
||||
<string name="thunderbird_website_url" translatable="false">https://www.thunderbird.net</string>
|
||||
</resources>
|
||||
11
app-k9mail/src/main/res/values/funding_strings.xml
Normal file
11
app-k9mail/src/main/res/values/funding_strings.xml
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- These are the funding feature overwrites that are K-9 specific -->
|
||||
<string name="funding_googleplay_contribution_title">Support K-9 Mail</string>
|
||||
<string name="funding_googleplay_contribution_header_title">Support K-9 Mail</string>
|
||||
<string name="funding_googleplay_contribution_header_description">We never show ads or sell your data. We are entirely funded by individual contributions from users like you. If you’re enjoying K-9 Mail, please help support it. We can’t do this without you!</string>
|
||||
<string name="funding_googleplay_contribution_header_thank_you_message">Your contribution furthers the development of secure, private and open-source email. We are truly grateful to have you with us!</string>
|
||||
<string name="funding_googleplay_contribution_list_empty_message">K-9 Mail is developed by Thunderbird.\nVisit <xliff:g id="link_text">%s</xliff:g> for more ways to support our work.</string>
|
||||
<string name="funding_googleplay_contribution_reminder_title">Support K-9 Mail</string>
|
||||
<string name="funding_googleplay_contribution_reminder_statement">K-9 Mail is free and open source.</string>
|
||||
</resources>
|
||||
5
app-k9mail/src/main/res/values/strings.xml
Normal file
5
app-k9mail/src/main/res/values/strings.xml
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
|
||||
<!-- Please keep the K-9 Mail format and just localize the mail part if possible. -->
|
||||
<string name="app_name">K-9 Mail</string>
|
||||
</resources>
|
||||
114
app-k9mail/src/main/res/values/themes.xml
Normal file
114
app-k9mail/src/main/res/values/themes.xml
Normal file
|
|
@ -0,0 +1,114 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<style name="Theme.K9.Startup" parent="Theme2.Main.Startup" />
|
||||
|
||||
<style name="Theme.K9.Light" parent="Theme2.K9.Light">
|
||||
<item name="actionModeCloseDrawable">@drawable/ic_close</item>
|
||||
<item name="actionBarPopupTheme">@style/Widget.App.ActionMode.PopupMenu</item>
|
||||
<item name="toolbarStyle">@style/Widget.App.Toolbar</item>
|
||||
|
||||
<!-- Legacy styles -->
|
||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
|
||||
|
||||
<item name="iconStarColor">#fbbc04</item>
|
||||
|
||||
<item name="textColorPrimaryRecipientDropdown">@android:color/primary_text_light</item>
|
||||
<item name="textColorSecondaryRecipientDropdown">@android:color/secondary_text_light</item>
|
||||
|
||||
<item name="messageListSwipeSelectColor">@color/material_blue_600</item>
|
||||
<item name="messageListSwipeToggleReadColor">@color/material_blue_600</item>
|
||||
<item name="messageListSwipeToggleStarColor">@color/material_orange_600</item>
|
||||
<item name="messageListSwipeArchiveColor">@color/material_green_600</item>
|
||||
<item name="messageListSwipeDeleteColor">@color/material_red_600</item>
|
||||
<item name="messageListSwipeSpamColor">@color/material_red_700</item>
|
||||
<item name="messageListSwipeMoveColor">@color/material_purple_500</item>
|
||||
|
||||
<item name="contactPictureFallbackDefaultBackgroundColor">#ffababab</item>
|
||||
<item name="contactPictureFallbackBackgroundColors">@array/contact_picture_fallback_background_colors_light</item>
|
||||
<item name="contactTokenBackgroundColor">#ccc</item>
|
||||
<item name="tintColorBulletPointPositive">#77aa22</item>
|
||||
<item name="tintColorBulletPointNegative">#dd2222</item>
|
||||
<item name="tintColorBulletPointNeutral">#888</item>
|
||||
|
||||
<item name="openpgp_black">#000</item>
|
||||
<item name="openpgp_orange">#FF8800</item>
|
||||
<item name="openpgp_red">#CC0000</item>
|
||||
<item name="openpgp_green">#669900</item>
|
||||
<item name="openpgp_blue">#336699</item>
|
||||
<item name="openpgp_grey">#bbb</item>
|
||||
<item name="openpgp_dark_grey">#888</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.K9.Dark" parent="Theme2.K9.Dark">
|
||||
<item name="actionModeCloseDrawable">@drawable/ic_close</item>
|
||||
<item name="actionBarPopupTheme">@style/Widget.App.ActionMode.PopupMenu</item>
|
||||
<item name="toolbarStyle">@style/Widget.App.Toolbar</item>
|
||||
|
||||
<!-- Legacy styles -->
|
||||
<item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
|
||||
|
||||
<item name="iconStarColor">#fdd663</item>
|
||||
|
||||
<item name="textColorPrimaryRecipientDropdown">@android:color/primary_text_dark</item>
|
||||
<item name="textColorSecondaryRecipientDropdown">@android:color/secondary_text_dark</item>
|
||||
|
||||
<item name="messageListSwipeSelectColor">@color/material_blue_700</item>
|
||||
<item name="messageListSwipeToggleReadColor">@color/material_blue_700</item>
|
||||
<item name="messageListSwipeToggleStarColor">@color/material_orange_700</item>
|
||||
<item name="messageListSwipeArchiveColor">@color/material_green_700</item>
|
||||
<item name="messageListSwipeDeleteColor">@color/material_red_700</item>
|
||||
<item name="messageListSwipeSpamColor">@color/material_red_800</item>
|
||||
<item name="messageListSwipeMoveColor">@color/material_purple_600</item>
|
||||
|
||||
<item name="contactTokenBackgroundColor">#313131</item>
|
||||
<item name="contactPictureFallbackDefaultBackgroundColor">#ff606060</item>
|
||||
<item name="contactPictureFallbackBackgroundColors">@array/contact_picture_fallback_background_colors_dark</item>
|
||||
<item name="tintColorBulletPointPositive">#77aa22</item>
|
||||
<item name="tintColorBulletPointNegative">#dd2222</item>
|
||||
<item name="tintColorBulletPointNeutral">#bbb</item>
|
||||
|
||||
<item name="openpgp_black">#fff</item>
|
||||
<item name="openpgp_orange">#ee7700</item>
|
||||
<item name="openpgp_red">#CC0000</item>
|
||||
<item name="openpgp_green">#77aa00</item>
|
||||
<item name="openpgp_blue">#6699cc</item>
|
||||
<item name="openpgp_grey">#888</item>
|
||||
<item name="openpgp_dark_grey">#bbb</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.K9.Light.Dialog.Translucent" parent="Theme.Material3.Light.Dialog">
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
|
||||
|
||||
<item name="tintColorBulletPointPositive">#77aa22</item>
|
||||
<item name="tintColorBulletPointNegative">#dd2222</item>
|
||||
<item name="tintColorBulletPointNeutral">#bbb</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.K9.Light.Dialog" parent="Theme.K9.Light" />
|
||||
<style name="Theme.K9.Dark.Dialog" parent="Theme.K9.Dark" />
|
||||
|
||||
<style name="Theme.K9.Dark.Dialog.Translucent" parent="Theme.Material3.Dark.Dialog">
|
||||
<item name="android:windowBackground">@android:color/transparent</item>
|
||||
<item name="android:colorBackgroundCacheHint">@null</item>
|
||||
<item name="android:windowIsTranslucent">true</item>
|
||||
<item name="android:windowNoTitle">true</item>
|
||||
<item name="windowNoTitle">true</item>
|
||||
<item name="android:windowContentOverlay">@null</item>
|
||||
<item name="android:windowAnimationStyle">@android:style/Animation.Translucent</item>
|
||||
|
||||
<item name="tintColorBulletPointPositive">#77aa22</item>
|
||||
<item name="tintColorBulletPointNegative">#dd2222</item>
|
||||
<item name="tintColorBulletPointNeutral">#bbb</item>
|
||||
</style>
|
||||
|
||||
<style name="Theme.K9.DayNight" parent="Theme.K9.Light" />
|
||||
<style name="Theme.K9.DayNight.Dialog" parent="Theme.K9.Light.Dialog" />
|
||||
<style name="Theme.K9.DayNight.Dialog.Translucent" parent="Theme.K9.Light.Dialog.Translucent" />
|
||||
|
||||
</resources>
|
||||
|
|
@ -0,0 +1,92 @@
|
|||
package app.k9mail.auth
|
||||
|
||||
import com.fsck.k9.BuildConfig
|
||||
import net.thunderbird.core.common.oauth.OAuthConfiguration
|
||||
import net.thunderbird.core.common.oauth.OAuthConfigurationFactory
|
||||
|
||||
@Suppress("ktlint:standard:max-line-length")
|
||||
class K9OAuthConfigurationFactory : OAuthConfigurationFactory {
|
||||
override fun createConfigurations(): Map<List<String>, OAuthConfiguration> {
|
||||
return mapOf(
|
||||
createAolConfiguration(),
|
||||
createFastmailConfiguration(),
|
||||
createGmailConfiguration(),
|
||||
createMicrosoftConfiguration(),
|
||||
createYahooConfiguration(),
|
||||
)
|
||||
}
|
||||
|
||||
private fun createAolConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.aol.com",
|
||||
"smtp.aol.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9dUNqYXZhYWxOYkdRJmQ9WVdrOU1YQnZVRFZoY1ZrbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PWIw",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.aol.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.aol.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createFastmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.fastmail.com",
|
||||
"smtp.fastmail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "353641ae",
|
||||
scopes = listOf("https://www.fastmail.com/dev/protocol-imap", "https://www.fastmail.com/dev/protocol-smtp"),
|
||||
authorizationEndpoint = "https://api.fastmail.com/oauth/authorize",
|
||||
tokenEndpoint = "https://api.fastmail.com/oauth/refresh",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createGmailConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.gmail.com",
|
||||
"imap.googlemail.com",
|
||||
"smtp.gmail.com",
|
||||
"smtp.googlemail.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "262622259280-hhmh92rhklkg2k1tjil69epo0o9a12jm.apps.googleusercontent.com",
|
||||
scopes = listOf("https://mail.google.com/"),
|
||||
authorizationEndpoint = "https://accounts.google.com/o/oauth2/v2/auth",
|
||||
tokenEndpoint = "https://oauth2.googleapis.com/token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}:/oauth2redirect",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createMicrosoftConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"outlook.office365.com",
|
||||
"smtp.office365.com",
|
||||
"smtp-mail.outlook.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "e647013a-ada4-4114-b419-e43d250f99c5",
|
||||
scopes = listOf(
|
||||
"openid",
|
||||
"email",
|
||||
"https://outlook.office.com/IMAP.AccessAsUser.All",
|
||||
"https://outlook.office.com/SMTP.Send",
|
||||
"offline_access",
|
||||
),
|
||||
authorizationEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/authorize",
|
||||
tokenEndpoint = "https://login.microsoftonline.com/common/oauth2/v2.0/token",
|
||||
redirectUri = "msauth://com.fsck.k9/Dx8yUsuhyU3dYYba1aA16Wxu5eM%3D",
|
||||
)
|
||||
}
|
||||
|
||||
private fun createYahooConfiguration(): Pair<List<String>, OAuthConfiguration> {
|
||||
return listOf(
|
||||
"imap.mail.yahoo.com",
|
||||
"smtp.mail.yahoo.com",
|
||||
) to OAuthConfiguration(
|
||||
clientId = "dj0yJmk9aHNUb3d2MW5TQnpRJmQ9WVdrOWVYbHpaRWM0YkdnbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PWIz",
|
||||
scopes = listOf("mail-w"),
|
||||
authorizationEndpoint = "https://api.login.yahoo.com/oauth2/request_auth",
|
||||
tokenEndpoint = "https://api.login.yahoo.com/oauth2/get_token",
|
||||
redirectUri = "${BuildConfig.APPLICATION_ID}://oauth2redirect",
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
package app.k9mail.dev
|
||||
|
||||
import app.k9mail.autodiscovery.api.AutoDiscovery
|
||||
import com.fsck.k9.backend.BackendFactory
|
||||
import org.koin.core.module.Module
|
||||
import org.koin.core.qualifier.named
|
||||
|
||||
fun Module.developmentModuleAdditions() {
|
||||
single<Map<String, BackendFactory>>(named("developmentBackends")) {
|
||||
emptyMap()
|
||||
}
|
||||
single<List<AutoDiscovery>>(named("extraAutoDiscoveries")) {
|
||||
emptyList()
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,21 @@
|
|||
package app.k9mail.featureflag
|
||||
|
||||
import net.thunderbird.core.featureflag.FeatureFlag
|
||||
import net.thunderbird.core.featureflag.FeatureFlagFactory
|
||||
import net.thunderbird.core.featureflag.FeatureFlagKey
|
||||
import net.thunderbird.core.featureflag.toFeatureFlagKey
|
||||
|
||||
class K9FeatureFlagFactory : FeatureFlagFactory {
|
||||
override fun createFeatureCatalog(): List<FeatureFlag> {
|
||||
return listOf(
|
||||
FeatureFlag("archive_marks_as_read".toFeatureFlagKey(), enabled = false),
|
||||
FeatureFlag("new_account_settings".toFeatureFlagKey(), enabled = false),
|
||||
FeatureFlag("disable_font_size_config".toFeatureFlagKey(), enabled = false),
|
||||
FeatureFlag("email_notification_default".toFeatureFlagKey(), enabled = false),
|
||||
FeatureFlag("enable_dropdown_drawer".toFeatureFlagKey(), enabled = true),
|
||||
FeatureFlag("enable_dropdown_drawer_ui".toFeatureFlagKey(), enabled = false),
|
||||
FeatureFlag(FeatureFlagKey.DisplayInAppNotifications, enabled = false),
|
||||
FeatureFlag(FeatureFlagKey.UseNotificationSenderForSystemNotifications, enabled = false),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
package app.k9mail
|
||||
|
||||
import android.app.Application
|
||||
import android.app.NotificationManager
|
||||
import android.content.Context
|
||||
import android.content.res.AssetManager
|
||||
import android.content.res.Configuration
|
||||
import android.content.res.Resources
|
||||
import android.util.DisplayMetrics
|
||||
import androidx.lifecycle.LifecycleOwner
|
||||
import androidx.work.WorkerParameters
|
||||
import app.k9mail.feature.account.common.domain.entity.InteractionMode
|
||||
import com.fsck.k9.account.AccountRemoverWorker
|
||||
import com.fsck.k9.job.MailSyncWorker
|
||||
import com.fsck.k9.job.SyncDebugWorker
|
||||
import com.fsck.k9.mailstore.AttachmentResolver
|
||||
import com.fsck.k9.message.html.DisplayHtml
|
||||
import com.fsck.k9.message.html.HtmlSettings
|
||||
import com.fsck.k9.ui.changelog.ChangeLogMode
|
||||
import com.fsck.k9.ui.changelog.ChangelogViewModel
|
||||
import com.fsck.k9.view.K9WebViewClient
|
||||
import com.fsck.k9.view.MessageWebView
|
||||
import net.openid.appauth.AppAuthConfiguration
|
||||
import net.thunderbird.core.preference.storage.Storage
|
||||
import net.thunderbird.feature.account.AccountId
|
||||
import net.thunderbird.feature.mail.message.list.ui.dialog.SetupArchiveFolderDialogContract
|
||||
import org.junit.Test
|
||||
import org.koin.core.annotation.KoinExperimentalAPI
|
||||
import org.koin.test.verify.definition
|
||||
import org.koin.test.verify.injectedParameters
|
||||
import org.koin.test.verify.verify
|
||||
import org.openintents.openpgp.OpenPgpApiManager
|
||||
|
||||
class DependencyInjectionTest {
|
||||
|
||||
@OptIn(KoinExperimentalAPI::class)
|
||||
@Test
|
||||
fun testDependencyTree() {
|
||||
appModule.verify(
|
||||
extraTypes = listOf(
|
||||
AccountId::class,
|
||||
AppAuthConfiguration::class,
|
||||
Application::class,
|
||||
AssetManager::class,
|
||||
Configuration::class,
|
||||
Context::class,
|
||||
DisplayMetrics::class,
|
||||
InteractionMode::class,
|
||||
NotificationManager::class,
|
||||
Resources::class,
|
||||
Storage::class,
|
||||
),
|
||||
injections = injectedParameters(
|
||||
definition<AccountRemoverWorker>(WorkerParameters::class),
|
||||
definition<ChangelogViewModel>(ChangeLogMode::class),
|
||||
definition<DisplayHtml>(HtmlSettings::class),
|
||||
definition<K9WebViewClient>(AttachmentResolver::class, MessageWebView.OnPageFinishedListener::class),
|
||||
definition<MailSyncWorker>(WorkerParameters::class),
|
||||
definition<SyncDebugWorker>(WorkerParameters::class),
|
||||
definition<OpenPgpApiManager>(LifecycleOwner::class),
|
||||
definition<SetupArchiveFolderDialogContract.ViewModel>(SetupArchiveFolderDialogContract.State::class),
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue