Skip to content

Commit

Permalink
Merge branch 'main' into seedvault
Browse files Browse the repository at this point in the history
  • Loading branch information
mintsoft authored Oct 19, 2024
2 parents ddc6b68 + f33f713 commit f610782
Show file tree
Hide file tree
Showing 733 changed files with 6,977 additions and 4,055 deletions.
420 changes: 365 additions & 55 deletions .github/workflows/shippable_builds.yml

Large diffs are not rendered by default.

7 changes: 4 additions & 3 deletions app-k9mail/badging/release-badging.txt
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ application-label-lv:'K-9 pasts'
application-label-ml:'K-9 Mail'
application-label-nb:'K-9 e-post'
application-label-nl:'K-9 Mail'
application-label-nn:'K-9 e-post'
application-label-pl:'K-9 Mail'
application-label-pt:'K-9 Mail'
application-label-pt-BR:'K-9 Mail'
Expand All @@ -68,8 +69,8 @@ application-label-sv:'K-9 Mail'
application-label-tr:'K-9 Posta'
application-label-uk:'K-9 Mail'
application-label-vi:'Thư K-9'
application-label-zh:'K-9 邮件'
application-label-zh-CN:'K-9 邮件'
application-label-zh:'K-9 Mail'
application-label-zh-CN:'K-9 Mail'
application-label-zh-TW:'K-9 Mail'
application-icon-120:'res/drawable-v26/ic_launcher.xml'
application-icon-160:'res/drawable-v26/ic_launcher.xml'
Expand All @@ -93,6 +94,6 @@ other-receivers
other-services
supports-screens: 'small' 'normal' 'large' 'xlarge'
supports-any-density: 'true'
locales: '--_--' 'ar' 'be' 'bg' 'br' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'gd' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'ml' 'nb' 'nl' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
locales: '--_--' 'ar' 'be' 'bg' 'br' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'gd' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'ml' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
densities: '120' '160' '240' '320' '480' '640' '65534'
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
50 changes: 49 additions & 1 deletion app-k9mail/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
import javax.xml.parsers.DocumentBuilderFactory
import javax.xml.xpath.XPathConstants
import javax.xml.xpath.XPathFactory

plugins {
id(ThunderbirdPlugins.App.androidCompose)
alias(libs.plugins.dependency.guard)
Expand Down Expand Up @@ -25,6 +29,7 @@ dependencies {
implementation(projects.feature.widget.unread)
implementation(projects.feature.telemetry.noop)
implementation(projects.feature.funding.noop)
implementation(projects.feature.onboarding.migration.noop)

implementation(libs.androidx.work.runtime)

Expand All @@ -47,7 +52,8 @@ android {
testApplicationId = "com.fsck.k9.tests"

versionCode = 39004
versionName = "6.905-SNAPSHOT"
versionName = "9.0"
versionNameSuffix = "-SNAPSHOT"

// Keep in sync with the resource string array "supported_languages"
resourceConfigurations.addAll(
Expand Down Expand Up @@ -88,6 +94,7 @@ android {
"ml",
"nb",
"nl",
"nn",
"pl",
"pt_BR",
"pt_PT",
Expand Down Expand Up @@ -152,3 +159,44 @@ android {
dependencyGuard {
configuration("releaseRuntimeClasspath")
}

tasks.create("printVersionInfo") {
val targetBuildType = project.findProperty("buildType") ?: "debug"

doLast {
android.applicationVariants.all { variant ->
if (variant.buildType.name == targetBuildType) {
val flavor = variant.mergedFlavor

var buildTypeSource = android.sourceSets.getByName(targetBuildType).res.srcDirs.first()
var stringsXmlFile = File(buildTypeSource, "values/strings.xml")
if (!stringsXmlFile.exists()) {
buildTypeSource = android.sourceSets.getByName("main").res.srcDirs.first()
stringsXmlFile = File(buildTypeSource, "values/strings.xml")
}

val xmlDocument = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(stringsXmlFile)
val xPath = XPathFactory.newInstance().newXPath()
val expression = "/resources/string[@name='app_name']/text()"
val appName = xPath.evaluate(expression, xmlDocument, XPathConstants.STRING) as String

val output = """
APPLICATION_ID=${variant.applicationId}
APPLICATION_LABEL=$appName
VERSION_CODE=${flavor.versionCode}
VERSION_NAME=${flavor.versionName}
VERSION_NAME_SUFFIX=${flavor.versionNameSuffix ?: ""}
FULL_VERSION_NAME=${flavor.versionName}${flavor.versionNameSuffix ?: ""}
""".trimIndent()

println(output)
val githubOutput = System.getenv("GITHUB_OUTPUT")
if (githubOutput != null) {
val outputFile = File(githubOutput)
outputFile.writeText(output + "\n")
}
}
true
}
}
}
179 changes: 89 additions & 90 deletions app-k9mail/dependencies/releaseRuntimeClasspath.txt
Original file line number Diff line number Diff line change
@@ -1,60 +1,60 @@
androidx.activity:activity-compose:1.9.2
androidx.activity:activity-ktx:1.9.2
androidx.activity:activity:1.9.2
androidx.activity:activity-compose:1.9.3
androidx.activity:activity-ktx:1.9.3
androidx.activity:activity:1.9.3
androidx.annotation:annotation-experimental:1.4.1
androidx.annotation:annotation-jvm:1.8.2
androidx.annotation:annotation:1.8.2
androidx.annotation:annotation-jvm:1.9.0
androidx.annotation:annotation:1.9.0
androidx.appcompat:appcompat-resources:1.7.0
androidx.appcompat:appcompat:1.7.0
androidx.arch.core:core-common:2.2.0
androidx.arch.core:core-runtime:2.2.0
androidx.autofill:autofill:1.0.0
androidx.biometric:biometric:1.1.0
androidx.browser:browser:1.3.0
androidx.camera:camera-camera2:1.3.1
androidx.camera:camera-core:1.3.1
androidx.camera:camera-lifecycle:1.3.1
androidx.camera:camera-video:1.3.1
androidx.camera:camera-view:1.3.1
androidx.camera:camera-camera2:1.3.4
androidx.camera:camera-core:1.3.4
androidx.camera:camera-lifecycle:1.3.4
androidx.camera:camera-video:1.3.4
androidx.camera:camera-view:1.3.4
androidx.cardview:cardview:1.0.0
androidx.collection:collection-jvm:1.4.2
androidx.collection:collection-ktx:1.4.2
androidx.collection:collection:1.4.2
androidx.compose.animation:animation-android:1.7.0
androidx.compose.animation:animation-core-android:1.7.0
androidx.compose.animation:animation-core:1.7.0
androidx.compose.animation:animation:1.7.0
androidx.compose.foundation:foundation-android:1.7.0
androidx.compose.foundation:foundation-layout-android:1.7.0
androidx.compose.foundation:foundation-layout:1.7.0
androidx.compose.foundation:foundation:1.7.0
androidx.collection:collection-jvm:1.4.4
androidx.collection:collection-ktx:1.4.4
androidx.collection:collection:1.4.4
androidx.compose.animation:animation-android:1.7.4
androidx.compose.animation:animation-core-android:1.7.4
androidx.compose.animation:animation-core:1.7.4
androidx.compose.animation:animation:1.7.4
androidx.compose.foundation:foundation-android:1.7.4
androidx.compose.foundation:foundation-layout-android:1.7.4
androidx.compose.foundation:foundation-layout:1.7.4
androidx.compose.foundation:foundation:1.7.4
androidx.compose.material3:material3-android:1.3.0
androidx.compose.material3:material3:1.3.0
androidx.compose.material:material-icons-core-android:1.7.0
androidx.compose.material:material-icons-core:1.7.0
androidx.compose.material:material-icons-extended-android:1.7.0
androidx.compose.material:material-icons-extended:1.7.0
androidx.compose.material:material-ripple-android:1.7.0
androidx.compose.material:material-ripple:1.7.0
androidx.compose.runtime:runtime-android:1.7.0
androidx.compose.runtime:runtime-saveable-android:1.7.0
androidx.compose.runtime:runtime-saveable:1.7.0
androidx.compose.runtime:runtime:1.7.0
androidx.compose.ui:ui-android:1.7.0
androidx.compose.ui:ui-geometry-android:1.7.0
androidx.compose.ui:ui-geometry:1.7.0
androidx.compose.ui:ui-graphics-android:1.7.0
androidx.compose.ui:ui-graphics:1.7.0
androidx.compose.ui:ui-text-android:1.7.0
androidx.compose.ui:ui-text:1.7.0
androidx.compose.ui:ui-tooling-preview-android:1.7.0
androidx.compose.ui:ui-tooling-preview:1.7.0
androidx.compose.ui:ui-unit-android:1.7.0
androidx.compose.ui:ui-unit:1.7.0
androidx.compose.ui:ui-util-android:1.7.0
androidx.compose.ui:ui-util:1.7.0
androidx.compose.ui:ui:1.7.0
androidx.compose:compose-bom:2024.09.00
androidx.compose.material:material-icons-core-android:1.7.4
androidx.compose.material:material-icons-core:1.7.4
androidx.compose.material:material-icons-extended-android:1.7.4
androidx.compose.material:material-icons-extended:1.7.4
androidx.compose.material:material-ripple-android:1.7.4
androidx.compose.material:material-ripple:1.7.4
androidx.compose.runtime:runtime-android:1.7.4
androidx.compose.runtime:runtime-saveable-android:1.7.4
androidx.compose.runtime:runtime-saveable:1.7.4
androidx.compose.runtime:runtime:1.7.4
androidx.compose.ui:ui-android:1.7.4
androidx.compose.ui:ui-geometry-android:1.7.4
androidx.compose.ui:ui-geometry:1.7.4
androidx.compose.ui:ui-graphics-android:1.7.4
androidx.compose.ui:ui-graphics:1.7.4
androidx.compose.ui:ui-text-android:1.7.4
androidx.compose.ui:ui-text:1.7.4
androidx.compose.ui:ui-tooling-preview-android:1.7.4
androidx.compose.ui:ui-tooling-preview:1.7.4
androidx.compose.ui:ui-unit-android:1.7.4
androidx.compose.ui:ui-unit:1.7.4
androidx.compose.ui:ui-util-android:1.7.4
androidx.compose.ui:ui-util:1.7.4
androidx.compose.ui:ui:1.7.4
androidx.compose:compose-bom:2024.10.00
androidx.concurrent:concurrent-futures:1.1.0
androidx.constraintlayout:constraintlayout-core:1.0.4
androidx.constraintlayout:constraintlayout:2.1.4
Expand All @@ -71,42 +71,42 @@ androidx.dynamicanimation:dynamicanimation:1.0.0
androidx.emoji2:emoji2-views-helper:1.3.0
androidx.emoji2:emoji2:1.3.0
androidx.exifinterface:exifinterface:1.3.6
androidx.fragment:fragment-compose:1.8.3
androidx.fragment:fragment-ktx:1.8.3
androidx.fragment:fragment:1.8.3
androidx.fragment:fragment-compose:1.8.4
androidx.fragment:fragment-ktx:1.8.4
androidx.fragment:fragment:1.8.4
androidx.graphics:graphics-path:1.0.1
androidx.interpolator:interpolator:1.0.0
androidx.legacy:legacy-support-core-utils:1.0.0
androidx.lifecycle:lifecycle-common-java8:2.8.5
androidx.lifecycle:lifecycle-common-jvm:2.8.5
androidx.lifecycle:lifecycle-common:2.8.5
androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.5
androidx.lifecycle:lifecycle-livedata-core:2.8.5
androidx.lifecycle:lifecycle-livedata-ktx:2.8.5
androidx.lifecycle:lifecycle-livedata:2.8.5
androidx.lifecycle:lifecycle-process:2.8.5
androidx.lifecycle:lifecycle-runtime-android:2.8.5
androidx.lifecycle:lifecycle-runtime-compose-android:2.8.5
androidx.lifecycle:lifecycle-runtime-compose:2.8.5
androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.5
androidx.lifecycle:lifecycle-runtime-ktx:2.8.5
androidx.lifecycle:lifecycle-runtime:2.8.5
androidx.lifecycle:lifecycle-service:2.8.5
androidx.lifecycle:lifecycle-viewmodel-android:2.8.5
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.5
androidx.lifecycle:lifecycle-viewmodel-compose:2.8.5
androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.5
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.5
androidx.lifecycle:lifecycle-viewmodel:2.8.5
androidx.lifecycle:lifecycle-common-java8:2.8.6
androidx.lifecycle:lifecycle-common-jvm:2.8.6
androidx.lifecycle:lifecycle-common:2.8.6
androidx.lifecycle:lifecycle-livedata-core-ktx:2.8.6
androidx.lifecycle:lifecycle-livedata-core:2.8.6
androidx.lifecycle:lifecycle-livedata-ktx:2.8.6
androidx.lifecycle:lifecycle-livedata:2.8.6
androidx.lifecycle:lifecycle-process:2.8.6
androidx.lifecycle:lifecycle-runtime-android:2.8.6
androidx.lifecycle:lifecycle-runtime-compose-android:2.8.6
androidx.lifecycle:lifecycle-runtime-compose:2.8.6
androidx.lifecycle:lifecycle-runtime-ktx-android:2.8.6
androidx.lifecycle:lifecycle-runtime-ktx:2.8.6
androidx.lifecycle:lifecycle-runtime:2.8.6
androidx.lifecycle:lifecycle-service:2.8.6
androidx.lifecycle:lifecycle-viewmodel-android:2.8.6
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.8.6
androidx.lifecycle:lifecycle-viewmodel-compose:2.8.6
androidx.lifecycle:lifecycle-viewmodel-ktx:2.8.6
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.8.6
androidx.lifecycle:lifecycle-viewmodel:2.8.6
androidx.loader:loader:1.0.0
androidx.localbroadcastmanager:localbroadcastmanager:1.1.0
androidx.navigation:navigation-common-ktx:2.8.0
androidx.navigation:navigation-common:2.8.0
androidx.navigation:navigation-compose:2.8.0
androidx.navigation:navigation-fragment:2.8.0
androidx.navigation:navigation-runtime-ktx:2.8.0
androidx.navigation:navigation-runtime:2.8.0
androidx.navigation:navigation-ui:2.8.0
androidx.navigation:navigation-common-ktx:2.8.3
androidx.navigation:navigation-common:2.8.3
androidx.navigation:navigation-compose:2.8.3
androidx.navigation:navigation-fragment:2.8.3
androidx.navigation:navigation-runtime-ktx:2.8.3
androidx.navigation:navigation-runtime:2.8.3
androidx.navigation:navigation-ui:2.8.3
androidx.preference:preference:1.2.1
androidx.print:print:1.0.0
androidx.profileinstaller:profileinstaller:1.3.1
Expand Down Expand Up @@ -156,7 +156,6 @@ com.mikepenz:fastadapter-extensions-expandable:5.7.0
com.mikepenz:fastadapter-extensions-swipe:5.7.0
com.mikepenz:fastadapter-extensions-utils:5.7.0
com.mikepenz:fastadapter:5.7.0
com.mikepenz:materialdrawer:9.0.2
com.squareup.moshi:moshi:1.15.1
com.squareup.okhttp3:okhttp:4.12.0
com.squareup.okio:okio-jvm:3.9.0
Expand Down Expand Up @@ -188,27 +187,27 @@ org.apache.httpcomponents.core5:httpcore5:5.2.4
org.apache.james:apache-mime4j-core:0.8.9
org.apache.james:apache-mime4j-dom:0.8.9
org.jetbrains.compose.runtime:runtime:1.5.12
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.0.20
org.jetbrains.kotlin:kotlin-bom:2.0.20
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.0.20
org.jetbrains.kotlin:kotlin-stdlib-common:2.0.20
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.20
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.20
org.jetbrains.kotlin:kotlin-stdlib:2.0.20
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.0.21
org.jetbrains.kotlin:kotlin-bom:2.0.21
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-common:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.0.21
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.0.21
org.jetbrains.kotlin:kotlin-stdlib:2.0.21
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.3.8
org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.8
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.9.0
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.9.0
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.9.0
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.9.0
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.6.1
org.jetbrains.kotlinx:kotlinx-datetime:0.6.1
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.7.3
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.7.3
org.jetbrains.kotlinx:kotlinx-serialization-core:1.7.3
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.7.3
org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3
org.jetbrains:annotations:24.1.0
org.jetbrains:annotations:26.0.1
org.jsoup:jsoup:1.17.2
org.minidns:minidns-client:1.0.5
org.minidns:minidns-core:1.0.5
Expand Down
6 changes: 5 additions & 1 deletion app-k9mail/src/main/kotlin/app/k9mail/K9KoinModule.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,13 @@ package app.k9mail
import app.k9mail.auth.K9OAuthConfigurationFactory
import app.k9mail.core.common.oauth.OAuthConfigurationFactory
import app.k9mail.core.common.provider.AppNameProvider
import app.k9mail.core.common.provider.BrandNameProvider
import app.k9mail.core.featureflag.FeatureFlagFactory
import app.k9mail.core.ui.theme.api.FeatureThemeProvider
import app.k9mail.core.ui.theme.api.ThemeProvider
import app.k9mail.dev.developmentModuleAdditions
import app.k9mail.feature.funding.featureFundingModule
import app.k9mail.feature.onboarding.migration.onboardingMigrationModule
import app.k9mail.feature.telemetry.telemetryModule
import app.k9mail.feature.widget.shortcut.LauncherShortcutActivity
import app.k9mail.featureflag.K9FeatureFlagFactory
Expand All @@ -22,18 +24,20 @@ import com.fsck.k9.provider.UnreadWidgetProvider
import com.fsck.k9.widget.list.MessageListWidgetProvider
import org.koin.android.ext.koin.androidContext
import org.koin.core.qualifier.named
import org.koin.dsl.binds
import org.koin.dsl.module

val appModule = module {
includes(appWidgetModule)
includes(telemetryModule)
includes(featureFundingModule)
includes(onboardingMigrationModule)

single(named("ClientInfoAppName")) { BuildConfig.CLIENT_INFO_APP_NAME }
single(named("ClientInfoAppVersion")) { BuildConfig.VERSION_NAME }
single<AppConfig> { appConfig }
single<OAuthConfigurationFactory> { K9OAuthConfigurationFactory() }
single<AppNameProvider> { K9AppNameProvider(androidContext()) }
single { K9AppNameProvider(androidContext()) } binds arrayOf(AppNameProvider::class, BrandNameProvider::class)
single<ThemeProvider> { K9ThemeProvider() }
single<FeatureThemeProvider> { K9FeatureThemeProvider() }
single<FeatureFlagFactory> { K9FeatureFlagFactory() }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,9 @@ package app.k9mail.featureflag

import app.k9mail.core.featureflag.FeatureFlag
import app.k9mail.core.featureflag.FeatureFlagFactory
import app.k9mail.core.featureflag.FeatureFlagKey

class K9FeatureFlagFactory : FeatureFlagFactory {
override fun createFeatureCatalog(): List<FeatureFlag> {
return listOf(
FeatureFlag(FeatureFlagKey("material3_navigation_drawer"), false),
)
return listOf()
}
}
Loading

0 comments on commit f610782

Please sign in to comment.