Repo created
This commit is contained in:
parent
75dc487a7a
commit
39c29d175b
6317 changed files with 388324 additions and 2 deletions
12
app-k9mail/README.md
Normal file
12
app-k9mail/README.md
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
# K-9 Mail
|
||||
|
||||
This is the source code repository for the K-9 Mail project.
|
||||
|
||||
## Maintenance
|
||||
|
||||
### F-Droid
|
||||
|
||||
K-9 Mail is available on F-Droid. The apps metadata for F-Droid is available within the [metadata](fastlane/metadata)
|
||||
folder. The metadata is setup according to
|
||||
the [All About Descriptions, Graphics, and Screenshots](https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/)
|
||||
and [Build Metadata Reference](https://f-droid.org/en/docs/Build_Metadata_Reference/).
|
||||
99
app-k9mail/badging/fossRelease-badging.txt
Normal file
99
app-k9mail/badging/fossRelease-badging.txt
Normal file
|
|
@ -0,0 +1,99 @@
|
|||
application-icon-120:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-160:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-240:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-320:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-480:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-640:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-65534:'res/drawable-v26/ic_launcher.xml'
|
||||
application-label-ar:'بريد K-9'
|
||||
application-label-be:'Пошта K-9'
|
||||
application-label-bg:'K-9 Поща'
|
||||
application-label-ca:'K-9 Mail'
|
||||
application-label-co:'K-9 Mail'
|
||||
application-label-cs:'K-9 Mail'
|
||||
application-label-cy:'K-9 Mail'
|
||||
application-label-da:'K-9 Mail'
|
||||
application-label-de:'K-9 Mail'
|
||||
application-label-el:'K-9 Mail'
|
||||
application-label-en-GB:'K-9 Mail'
|
||||
application-label-en:'K-9 Mail'
|
||||
application-label-eo:'K-9 Retpoŝtilo'
|
||||
application-label-es:'K-9 Mail'
|
||||
application-label-et:'K-9 Mail'
|
||||
application-label-eu:'K-9 Mail'
|
||||
application-label-fa:'نامهٔ کی۹'
|
||||
application-label-fi:'K-9 Mail'
|
||||
application-label-fr:'Courriel K-9'
|
||||
application-label-fy:'K-9 Mail'
|
||||
application-label-ga:'K-9 Post'
|
||||
application-label-gl:'K-9 Mail'
|
||||
application-label-hr:'K-9 Mail'
|
||||
application-label-hu:'K-9 Mail'
|
||||
application-label-in:'Surel K-9'
|
||||
application-label-is:'K-9 - Póstur'
|
||||
application-label-it:'K-9 Mail'
|
||||
application-label-iw:'K-9 דוא\"ל'
|
||||
application-label-ja:'K-9 Mail'
|
||||
application-label-ko:'K-9 메일'
|
||||
application-label-lt:'K-9 paštas'
|
||||
application-label-lv:'K-9 pasts'
|
||||
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-BR:'K-9 Mail'
|
||||
application-label-pt-PT:'K-9 Mail'
|
||||
application-label-pt:'Email K-9'
|
||||
application-label-ro:'K-9 Mail'
|
||||
application-label-ru:'Почта K-9'
|
||||
application-label-sk:'K-9 Mail'
|
||||
application-label-sl:'Pošta K-9'
|
||||
application-label-sq:'K-9 Mail'
|
||||
application-label-sr:'K-9 Mail'
|
||||
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-CN:'K-9 Mail'
|
||||
application-label-zh-TW:'K-9 Mail'
|
||||
application-label-zh:'K-9 Mail'
|
||||
application-label:'K-9 Mail'
|
||||
application: label='K-9 Mail' icon='res/drawable-v26/ic_launcher.xml'
|
||||
densities: '120' '160' '240' '320' '480' '640' '65534'
|
||||
feature-group: label=''
|
||||
install-location:'auto'
|
||||
launchable-activity: name='com.fsck.k9.activity.MessageList' label='' icon=''
|
||||
locales: '--_--' 'ar' 'be' 'bg' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'ga' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
|
||||
main
|
||||
minSdkVersion:'21'
|
||||
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
|
||||
other-activities
|
||||
other-receivers
|
||||
other-services
|
||||
package: name='com.fsck.k9' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
property: name='android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE' value='This service is used to maintain a continuous connection to an IMAP server to be able to provide instant notifications to the user when a new email arrives. Firebase Cloud Messaging is not suitable for this task, neither are mechanisms like AndroidX WorkManager. Other foreground service types aren't a good fit for this use case.'
|
||||
provides-component:'app-widget'
|
||||
supports-any-density: 'true'
|
||||
supports-screens: 'small' 'normal' 'large' 'xlarge'
|
||||
targetSdkVersion:'35'
|
||||
uses-feature-not-required: name='android.hardware.camera'
|
||||
uses-feature-not-required: name='android.hardware.touchscreen'
|
||||
uses-library-not-required:'androidx.window.extensions'
|
||||
uses-library-not-required:'androidx.window.sidecar'
|
||||
uses-library-not-required:'com.sec.android.app.multiwindow'
|
||||
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
|
||||
uses-permission: name='android.permission.CAMERA'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_DATA_SYNC' maxSdkVersion='33'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_SPECIAL_USE'
|
||||
uses-permission: name='android.permission.INTERNET'
|
||||
uses-permission: name='android.permission.POST_NOTIFICATIONS'
|
||||
uses-permission: name='android.permission.READ_CONTACTS'
|
||||
uses-permission: name='android.permission.READ_SYNC_SETTINGS'
|
||||
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
|
||||
uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM'
|
||||
uses-permission: name='android.permission.USE_BIOMETRIC'
|
||||
uses-permission: name='android.permission.USE_FINGERPRINT'
|
||||
uses-permission: name='android.permission.VIBRATE'
|
||||
uses-permission: name='android.permission.WAKE_LOCK'
|
||||
uses-permission: name='com.fsck.k9.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
|
||||
100
app-k9mail/badging/fullRelease-badging.txt
Normal file
100
app-k9mail/badging/fullRelease-badging.txt
Normal file
|
|
@ -0,0 +1,100 @@
|
|||
application-icon-120:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-160:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-240:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-320:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-480:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-640:'res/drawable-v26/ic_launcher.xml'
|
||||
application-icon-65534:'res/drawable-v26/ic_launcher.xml'
|
||||
application-label-ar:'بريد K-9'
|
||||
application-label-be:'Пошта K-9'
|
||||
application-label-bg:'K-9 Поща'
|
||||
application-label-ca:'K-9 Mail'
|
||||
application-label-co:'K-9 Mail'
|
||||
application-label-cs:'K-9 Mail'
|
||||
application-label-cy:'K-9 Mail'
|
||||
application-label-da:'K-9 Mail'
|
||||
application-label-de:'K-9 Mail'
|
||||
application-label-el:'K-9 Mail'
|
||||
application-label-en-GB:'K-9 Mail'
|
||||
application-label-en:'K-9 Mail'
|
||||
application-label-eo:'K-9 Retpoŝtilo'
|
||||
application-label-es:'K-9 Mail'
|
||||
application-label-et:'K-9 Mail'
|
||||
application-label-eu:'K-9 Mail'
|
||||
application-label-fa:'نامهٔ کی۹'
|
||||
application-label-fi:'K-9 Mail'
|
||||
application-label-fr:'Courriel K-9'
|
||||
application-label-fy:'K-9 Mail'
|
||||
application-label-ga:'K-9 Post'
|
||||
application-label-gl:'K-9 Mail'
|
||||
application-label-hr:'K-9 Mail'
|
||||
application-label-hu:'K-9 Mail'
|
||||
application-label-in:'Surel K-9'
|
||||
application-label-is:'K-9 - Póstur'
|
||||
application-label-it:'K-9 Mail'
|
||||
application-label-iw:'K-9 דוא\"ל'
|
||||
application-label-ja:'K-9 Mail'
|
||||
application-label-ko:'K-9 메일'
|
||||
application-label-lt:'K-9 paštas'
|
||||
application-label-lv:'K-9 pasts'
|
||||
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-BR:'K-9 Mail'
|
||||
application-label-pt-PT:'K-9 Mail'
|
||||
application-label-pt:'Email K-9'
|
||||
application-label-ro:'K-9 Mail'
|
||||
application-label-ru:'Почта K-9'
|
||||
application-label-sk:'K-9 Mail'
|
||||
application-label-sl:'Pošta K-9'
|
||||
application-label-sq:'K-9 Mail'
|
||||
application-label-sr:'K-9 Mail'
|
||||
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-CN:'K-9 Mail'
|
||||
application-label-zh-TW:'K-9 Mail'
|
||||
application-label-zh:'K-9 Mail'
|
||||
application-label:'K-9 Mail'
|
||||
application: label='K-9 Mail' icon='res/drawable-v26/ic_launcher.xml'
|
||||
densities: '120' '160' '240' '320' '480' '640' '65534'
|
||||
feature-group: label=''
|
||||
install-location:'auto'
|
||||
launchable-activity: name='com.fsck.k9.activity.MessageList' label='' icon=''
|
||||
locales: '--_--' 'ar' 'be' 'bg' 'ca' 'co' 'cs' 'cy' 'da' 'de' 'el' 'en' 'en-GB' 'eo' 'es' 'et' 'eu' 'fa' 'fi' 'fr' 'fy' 'ga' 'gl' 'hr' 'hu' 'in' 'is' 'it' 'iw' 'ja' 'ko' 'lt' 'lv' 'nb' 'nl' 'nn' 'pl' 'pt' 'pt-BR' 'pt-PT' 'ro' 'ru' 'sk' 'sl' 'sq' 'sr' 'sv' 'tr' 'uk' 'vi' 'zh' 'zh-CN' 'zh-TW'
|
||||
main
|
||||
minSdkVersion:'21'
|
||||
native-code: 'arm64-v8a' 'armeabi-v7a' 'x86' 'x86_64'
|
||||
other-activities
|
||||
other-receivers
|
||||
other-services
|
||||
package: name='com.fsck.k9' platformBuildVersionName='15' platformBuildVersionCode='35' compileSdkVersion='35' compileSdkVersionCodename='15'
|
||||
property: name='android.app.PROPERTY_SPECIAL_USE_FGS_SUBTYPE' value='This service is used to maintain a continuous connection to an IMAP server to be able to provide instant notifications to the user when a new email arrives. Firebase Cloud Messaging is not suitable for this task, neither are mechanisms like AndroidX WorkManager. Other foreground service types aren't a good fit for this use case.'
|
||||
provides-component:'app-widget'
|
||||
supports-any-density: 'true'
|
||||
supports-screens: 'small' 'normal' 'large' 'xlarge'
|
||||
targetSdkVersion:'35'
|
||||
uses-feature-not-required: name='android.hardware.camera'
|
||||
uses-feature-not-required: name='android.hardware.touchscreen'
|
||||
uses-library-not-required:'androidx.window.extensions'
|
||||
uses-library-not-required:'androidx.window.sidecar'
|
||||
uses-library-not-required:'com.sec.android.app.multiwindow'
|
||||
uses-permission: name='android.permission.ACCESS_NETWORK_STATE'
|
||||
uses-permission: name='android.permission.CAMERA'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_DATA_SYNC' maxSdkVersion='33'
|
||||
uses-permission: name='android.permission.FOREGROUND_SERVICE_SPECIAL_USE'
|
||||
uses-permission: name='android.permission.INTERNET'
|
||||
uses-permission: name='android.permission.POST_NOTIFICATIONS'
|
||||
uses-permission: name='android.permission.READ_CONTACTS'
|
||||
uses-permission: name='android.permission.READ_SYNC_SETTINGS'
|
||||
uses-permission: name='android.permission.RECEIVE_BOOT_COMPLETED'
|
||||
uses-permission: name='android.permission.SCHEDULE_EXACT_ALARM'
|
||||
uses-permission: name='android.permission.USE_BIOMETRIC'
|
||||
uses-permission: name='android.permission.USE_FINGERPRINT'
|
||||
uses-permission: name='android.permission.VIBRATE'
|
||||
uses-permission: name='android.permission.WAKE_LOCK'
|
||||
uses-permission: name='com.android.vending.BILLING'
|
||||
uses-permission: name='com.fsck.k9.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
|
||||
175
app-k9mail/build.gradle.kts
Normal file
175
app-k9mail/build.gradle.kts
Normal file
|
|
@ -0,0 +1,175 @@
|
|||
plugins {
|
||||
id(ThunderbirdPlugins.App.androidCompose)
|
||||
alias(libs.plugins.dependency.guard)
|
||||
id("thunderbird.app.version.info")
|
||||
id("thunderbird.quality.badging")
|
||||
}
|
||||
|
||||
val testCoverageEnabled: Boolean by extra
|
||||
if (testCoverageEnabled) {
|
||||
apply(plugin = "jacoco")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "com.fsck.k9"
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "com.fsck.k9"
|
||||
testApplicationId = "com.fsck.k9.tests"
|
||||
|
||||
versionCode = 39029
|
||||
versionName = "13.0"
|
||||
|
||||
buildConfigField("String", "CLIENT_INFO_APP_NAME", "\"K-9 Mail\"")
|
||||
}
|
||||
|
||||
androidResources {
|
||||
// Keep in sync with the resource string array "supported_languages"
|
||||
localeFilters += listOf(
|
||||
"ar",
|
||||
"be",
|
||||
"bg",
|
||||
"ca",
|
||||
"co",
|
||||
"cs",
|
||||
"cy",
|
||||
"da",
|
||||
"de",
|
||||
"el",
|
||||
"en",
|
||||
"en-rGB",
|
||||
"eo",
|
||||
"es",
|
||||
"et",
|
||||
"eu",
|
||||
"fa",
|
||||
"fi",
|
||||
"fr",
|
||||
"fy",
|
||||
"ga",
|
||||
"gl",
|
||||
"hr",
|
||||
"hu",
|
||||
"in",
|
||||
"is",
|
||||
"it",
|
||||
"iw",
|
||||
"ja",
|
||||
"ko",
|
||||
"lt",
|
||||
"lv",
|
||||
"nb",
|
||||
"nl",
|
||||
"nn",
|
||||
"pl",
|
||||
"pt-rBR",
|
||||
"pt-rPT",
|
||||
"ro",
|
||||
"ru",
|
||||
"sk",
|
||||
"sl",
|
||||
"sq",
|
||||
"sr",
|
||||
"sv",
|
||||
"tr",
|
||||
"uk",
|
||||
"vi",
|
||||
"zh-rCN",
|
||||
"zh-rTW",
|
||||
)
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
createSigningConfig(project, SigningType.K9_RELEASE, isUpload = false)
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
signingConfig = signingConfigs.getByType(SigningType.K9_RELEASE)
|
||||
|
||||
isMinifyEnabled = true
|
||||
proguardFiles(
|
||||
getDefaultProguardFile("proguard-android.txt"),
|
||||
"proguard-rules.pro",
|
||||
)
|
||||
}
|
||||
|
||||
debug {
|
||||
applicationIdSuffix = ".debug"
|
||||
enableUnitTestCoverage = testCoverageEnabled
|
||||
enableAndroidTestCoverage = testCoverageEnabled
|
||||
|
||||
isMinifyEnabled = false
|
||||
}
|
||||
}
|
||||
|
||||
flavorDimensions += listOf("app")
|
||||
productFlavors {
|
||||
create("foss") {
|
||||
dimension = "app"
|
||||
buildConfigField("String", "PRODUCT_FLAVOR_APP", "\"foss\"")
|
||||
}
|
||||
|
||||
create("full") {
|
||||
dimension = "app"
|
||||
buildConfigField("String", "PRODUCT_FLAVOR_APP", "\"full\"")
|
||||
}
|
||||
}
|
||||
|
||||
packaging {
|
||||
jniLibs {
|
||||
excludes += listOf("kotlin/**")
|
||||
}
|
||||
|
||||
resources {
|
||||
excludes += listOf(
|
||||
"META-INF/*.kotlin_module",
|
||||
"META-INF/*.version",
|
||||
"kotlin/**",
|
||||
"DebugProbesKt.bin",
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(projects.appCommon)
|
||||
implementation(projects.core.ui.compose.theme2.k9mail)
|
||||
implementation(projects.core.ui.legacy.theme2.k9mail)
|
||||
implementation(projects.feature.launcher)
|
||||
implementation(projects.feature.mail.message.list)
|
||||
|
||||
implementation(projects.legacy.core)
|
||||
implementation(projects.legacy.ui.legacy)
|
||||
|
||||
implementation(projects.core.featureflag)
|
||||
|
||||
implementation(projects.feature.account.settings.impl)
|
||||
|
||||
"fossImplementation"(projects.feature.funding.noop)
|
||||
"fullImplementation"(projects.feature.funding.googleplay)
|
||||
implementation(projects.feature.migration.launcher.noop)
|
||||
implementation(projects.feature.onboarding.migration.noop)
|
||||
implementation(projects.feature.telemetry.noop)
|
||||
implementation(projects.feature.widget.messageList)
|
||||
implementation(projects.feature.widget.messageListGlance)
|
||||
implementation(projects.feature.widget.shortcut)
|
||||
implementation(projects.feature.widget.unread)
|
||||
|
||||
implementation(libs.androidx.work.runtime)
|
||||
|
||||
implementation(projects.feature.autodiscovery.api)
|
||||
debugImplementation(projects.backend.demo)
|
||||
debugImplementation(projects.feature.autodiscovery.demo)
|
||||
|
||||
// Required for DependencyInjectionTest
|
||||
testImplementation(projects.feature.account.api)
|
||||
testImplementation(projects.feature.account.common)
|
||||
testImplementation(projects.plugins.openpgpApiLib.openpgpApi)
|
||||
testImplementation(libs.appauth)
|
||||
}
|
||||
|
||||
dependencyGuard {
|
||||
configuration("fossReleaseRuntimeClasspath")
|
||||
configuration("fullReleaseRuntimeClasspath")
|
||||
}
|
||||
286
app-k9mail/dependencies/fossReleaseRuntimeClasspath.txt
Normal file
286
app-k9mail/dependencies/fossReleaseRuntimeClasspath.txt
Normal file
|
|
@ -0,0 +1,286 @@
|
|||
androidx.activity:activity-compose:1.10.1
|
||||
androidx.activity:activity-ktx:1.10.1
|
||||
androidx.activity:activity:1.10.1
|
||||
androidx.annotation:annotation-experimental:1.4.1
|
||||
androidx.annotation:annotation-jvm:1.9.1
|
||||
androidx.annotation:annotation:1.9.1
|
||||
androidx.appcompat:appcompat-resources:1.7.1
|
||||
androidx.appcompat:appcompat:1.7.1
|
||||
androidx.arch.core:core-common:2.2.0
|
||||
androidx.arch.core:core-runtime:2.2.0
|
||||
androidx.autofill:autofill:1.3.0
|
||||
androidx.biometric:biometric:1.1.0
|
||||
androidx.browser:browser:1.3.0
|
||||
androidx.cardview:cardview:1.0.0
|
||||
androidx.collection:collection-jvm:1.5.0
|
||||
androidx.collection:collection-ktx:1.5.0
|
||||
androidx.collection:collection:1.5.0
|
||||
androidx.compose.animation:animation-android:1.8.3
|
||||
androidx.compose.animation:animation-core-android:1.8.3
|
||||
androidx.compose.animation:animation-core:1.8.3
|
||||
androidx.compose.animation:animation:1.8.3
|
||||
androidx.compose.foundation:foundation-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout:1.8.3
|
||||
androidx.compose.foundation:foundation:1.8.3
|
||||
androidx.compose.material3.adaptive:adaptive-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive:1.1.0
|
||||
androidx.compose.material3:material3-android:1.3.2
|
||||
androidx.compose.material3:material3:1.3.2
|
||||
androidx.compose.material:material-icons-core-android:1.7.8
|
||||
androidx.compose.material:material-icons-core:1.7.8
|
||||
androidx.compose.material:material-icons-extended-android:1.7.8
|
||||
androidx.compose.material:material-icons-extended:1.7.8
|
||||
androidx.compose.material:material-ripple-android:1.8.3
|
||||
androidx.compose.material:material-ripple:1.8.3
|
||||
androidx.compose.runtime:runtime-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable:1.8.3
|
||||
androidx.compose.runtime:runtime:1.8.3
|
||||
androidx.compose.ui:ui-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry:1.8.3
|
||||
androidx.compose.ui:ui-graphics-android:1.8.3
|
||||
androidx.compose.ui:ui-graphics:1.8.3
|
||||
androidx.compose.ui:ui-text-android:1.8.3
|
||||
androidx.compose.ui:ui-text:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview-android:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview:1.8.3
|
||||
androidx.compose.ui:ui-unit-android:1.8.3
|
||||
androidx.compose.ui:ui-unit:1.8.3
|
||||
androidx.compose.ui:ui-util-android:1.8.3
|
||||
androidx.compose.ui:ui-util:1.8.3
|
||||
androidx.compose.ui:ui:1.8.3
|
||||
androidx.compose:compose-bom:2025.07.00
|
||||
androidx.concurrent:concurrent-futures-ktx:1.1.0
|
||||
androidx.concurrent:concurrent-futures:1.1.0
|
||||
androidx.constraintlayout:constraintlayout-core:1.1.1
|
||||
androidx.constraintlayout:constraintlayout:2.2.1
|
||||
androidx.coordinatorlayout:coordinatorlayout:1.3.0
|
||||
androidx.core:core-ktx:1.16.0
|
||||
androidx.core:core-remoteviews:1.1.0
|
||||
androidx.core:core-splashscreen:1.0.1
|
||||
androidx.core:core-viewtree:1.0.0
|
||||
androidx.core:core:1.16.0
|
||||
androidx.cursoradapter:cursoradapter:1.0.0
|
||||
androidx.customview:customview-poolingcontainer:1.0.0
|
||||
androidx.customview:customview:1.1.0
|
||||
androidx.datastore:datastore-core:1.0.0
|
||||
androidx.datastore:datastore-preferences-core:1.0.0
|
||||
androidx.datastore:datastore-preferences:1.0.0
|
||||
androidx.datastore:datastore:1.0.0
|
||||
androidx.documentfile:documentfile:1.0.0
|
||||
androidx.drawerlayout:drawerlayout:1.1.1
|
||||
androidx.dynamicanimation:dynamicanimation:1.0.0
|
||||
androidx.emoji2:emoji2-views-helper:1.4.0
|
||||
androidx.emoji2:emoji2:1.4.0
|
||||
androidx.exifinterface:exifinterface:1.4.1
|
||||
androidx.fragment:fragment-compose:1.8.8
|
||||
androidx.fragment:fragment-ktx:1.8.8
|
||||
androidx.fragment:fragment:1.8.8
|
||||
androidx.glance:glance-appwidget-external-protobuf:1.1.1
|
||||
androidx.glance:glance-appwidget-proto:1.1.1
|
||||
androidx.glance:glance-appwidget:1.1.1
|
||||
androidx.glance:glance-material3:1.1.1
|
||||
androidx.glance:glance:1.1.1
|
||||
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.9.2
|
||||
androidx.lifecycle:lifecycle-common-jvm:2.9.2
|
||||
androidx.lifecycle:lifecycle-common:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata:2.9.2
|
||||
androidx.lifecycle:lifecycle-process:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime:2.9.2
|
||||
androidx.lifecycle:lifecycle-service:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel:2.9.2
|
||||
androidx.loader:loader:1.0.0
|
||||
androidx.localbroadcastmanager:localbroadcastmanager:1.1.0
|
||||
androidx.navigation:navigation-common-android:2.9.3
|
||||
androidx.navigation:navigation-common:2.9.3
|
||||
androidx.navigation:navigation-compose-android:2.9.3
|
||||
androidx.navigation:navigation-compose:2.9.3
|
||||
androidx.navigation:navigation-fragment:2.9.3
|
||||
androidx.navigation:navigation-runtime-android:2.9.3
|
||||
androidx.navigation:navigation-runtime:2.9.3
|
||||
androidx.navigation:navigation-ui:2.9.3
|
||||
androidx.preference:preference:1.2.1
|
||||
androidx.print:print:1.0.0
|
||||
androidx.profileinstaller:profileinstaller:1.4.1
|
||||
androidx.recyclerview:recyclerview:1.4.0
|
||||
androidx.resourceinspection:resourceinspection-annotation:1.0.1
|
||||
androidx.room:room-common:2.6.1
|
||||
androidx.room:room-ktx:2.6.1
|
||||
androidx.room:room-runtime:2.6.1
|
||||
androidx.savedstate:savedstate-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose:1.3.1
|
||||
androidx.savedstate:savedstate-ktx:1.3.1
|
||||
androidx.savedstate:savedstate:1.3.1
|
||||
androidx.slidingpanelayout:slidingpanelayout:1.2.0
|
||||
androidx.sqlite:sqlite-framework:2.4.0
|
||||
androidx.sqlite:sqlite:2.4.0
|
||||
androidx.startup:startup-runtime:1.1.1
|
||||
androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
|
||||
androidx.tracing:tracing-ktx:1.2.0
|
||||
androidx.tracing:tracing:1.2.0
|
||||
androidx.transition:transition:1.5.0
|
||||
androidx.vectordrawable:vectordrawable-animated:1.2.0
|
||||
androidx.vectordrawable:vectordrawable:1.2.0
|
||||
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||
androidx.viewpager2:viewpager2:1.1.0-beta02
|
||||
androidx.viewpager:viewpager:1.0.0
|
||||
androidx.webkit:webkit:1.14.0
|
||||
androidx.window.extensions.core:core:1.0.0
|
||||
androidx.window:window-core-android:1.3.0
|
||||
androidx.window:window-core:1.3.0
|
||||
androidx.window:window:1.3.0
|
||||
androidx.work:work-runtime-ktx:2.10.3
|
||||
androidx.work:work-runtime:2.10.3
|
||||
co.touchlab:stately-concurrency-jvm:2.1.0
|
||||
co.touchlab:stately-concurrency:2.1.0
|
||||
co.touchlab:stately-concurrent-collections-jvm:2.1.0
|
||||
co.touchlab:stately-concurrent-collections:2.1.0
|
||||
co.touchlab:stately-strict-jvm:2.1.0
|
||||
co.touchlab:stately-strict:2.1.0
|
||||
com.beetstra.jutf7:jutf7:1.0.0
|
||||
com.github.ByteHamster:SearchPreference:2.7.3
|
||||
com.github.bumptech.glide:annotations:4.16.0
|
||||
com.github.bumptech.glide:disklrucache:4.16.0
|
||||
com.github.bumptech.glide:gifdecoder:4.16.0
|
||||
com.github.bumptech.glide:glide:4.16.0
|
||||
com.github.skydoves:landscapist-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3:2.5.1
|
||||
com.github.skydoves:landscapist:2.5.1
|
||||
com.google.android.flexbox:flexbox:3.0.0
|
||||
com.google.android.material:material:1.12.0
|
||||
com.google.errorprone:error_prone_annotations:2.15.0
|
||||
com.google.guava:listenablefuture:1.0
|
||||
com.jakewharton.timber:timber:5.0.1
|
||||
com.jcraft:jzlib:1.0.7
|
||||
com.mikepenz:fastadapter-extensions-drag:5.7.0
|
||||
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.squareup.moshi:moshi:1.15.2
|
||||
com.squareup.okhttp3:okhttp:4.12.0
|
||||
com.squareup.okio:okio-jvm:3.16.0
|
||||
com.squareup.okio:okio:3.16.0
|
||||
com.takisoft.colorpicker:colorpicker:1.0.0
|
||||
com.takisoft.datetimepicker:datetimepicker:1.0.2
|
||||
com.takisoft.preferencex:preferencex-colorpicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex-datetimepicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex:1.1.0
|
||||
commons-io:commons-io:2.20.0
|
||||
de.cketti.library.changelog:ckchangelog-core:2.0.0-beta02
|
||||
de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0
|
||||
de.hdodenhof:circleimageview:3.1.0
|
||||
io.coil-kt.coil3:coil-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core:3.2.0
|
||||
io.coil-kt.coil3:coil-gif:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp-jvm:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp:3.2.0
|
||||
io.coil-kt.coil3:coil-video:3.2.0
|
||||
io.coil-kt.coil3:coil:3.2.0
|
||||
io.insert-koin:koin-android:4.1.0
|
||||
io.insert-koin:koin-androidx-compose:4.1.0
|
||||
io.insert-koin:koin-bom:4.1.0
|
||||
io.insert-koin:koin-compose-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel:4.1.0
|
||||
io.insert-koin:koin-compose:4.1.0
|
||||
io.insert-koin:koin-core-jvm:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel:4.1.0
|
||||
io.insert-koin:koin-core:4.1.0
|
||||
net.jcip:jcip-annotations:1.0
|
||||
net.openid:appauth:0.11.1
|
||||
org.apache.commons:commons-lang3:3.7
|
||||
org.apache.commons:commons-text:1.3
|
||||
org.apache.httpcomponents.client5:httpclient5:5.5
|
||||
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4
|
||||
org.apache.httpcomponents.core5:httpcore5:5.3.4
|
||||
org.apache.james:apache-mime4j-core:0.8.13
|
||||
org.apache.james:apache-mime4j-dom:0.8.13
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-common:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.9.1
|
||||
org.jetbrains.androidx.savedstate:savedstate:1.3.1
|
||||
org.jetbrains.compose.animation:animation-core:1.8.2
|
||||
org.jetbrains.compose.animation:animation:1.8.2
|
||||
org.jetbrains.compose.annotation-internal:annotation:1.8.2
|
||||
org.jetbrains.compose.collection-internal:collection:1.8.2
|
||||
org.jetbrains.compose.components:components-resources-android:1.8.2
|
||||
org.jetbrains.compose.components:components-resources:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation-layout:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime-saveable:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime:1.8.2
|
||||
org.jetbrains.compose.ui:ui-geometry:1.8.2
|
||||
org.jetbrains.compose.ui:ui-graphics:1.8.2
|
||||
org.jetbrains.compose.ui:ui-text:1.8.2
|
||||
org.jetbrains.compose.ui:ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.ui:ui-unit:1.8.2
|
||||
org.jetbrains.compose.ui:ui-util:1.8.2
|
||||
org.jetbrains.compose.ui:ui:1.8.2
|
||||
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0
|
||||
org.jetbrains:annotations:26.0.2
|
||||
org.jsoup:jsoup:1.19.1
|
||||
org.jspecify:jspecify:1.0.0
|
||||
org.minidns:minidns-client:1.1.1
|
||||
org.minidns:minidns-core:1.1.1
|
||||
org.minidns:minidns-dnssec:1.1.1
|
||||
org.minidns:minidns-hla:1.1.1
|
||||
org.minidns:minidns-iterative-resolver:1.1.1
|
||||
org.slf4j:slf4j-api:1.7.36
|
||||
300
app-k9mail/dependencies/fullReleaseRuntimeClasspath.txt
Normal file
300
app-k9mail/dependencies/fullReleaseRuntimeClasspath.txt
Normal file
|
|
@ -0,0 +1,300 @@
|
|||
androidx.activity:activity-compose:1.10.1
|
||||
androidx.activity:activity-ktx:1.10.1
|
||||
androidx.activity:activity:1.10.1
|
||||
androidx.annotation:annotation-experimental:1.4.1
|
||||
androidx.annotation:annotation-jvm:1.9.1
|
||||
androidx.annotation:annotation:1.9.1
|
||||
androidx.appcompat:appcompat-resources:1.7.1
|
||||
androidx.appcompat:appcompat:1.7.1
|
||||
androidx.arch.core:core-common:2.2.0
|
||||
androidx.arch.core:core-runtime:2.2.0
|
||||
androidx.autofill:autofill:1.3.0
|
||||
androidx.biometric:biometric:1.1.0
|
||||
androidx.browser:browser:1.3.0
|
||||
androidx.cardview:cardview:1.0.0
|
||||
androidx.collection:collection-jvm:1.5.0
|
||||
androidx.collection:collection-ktx:1.5.0
|
||||
androidx.collection:collection:1.5.0
|
||||
androidx.compose.animation:animation-android:1.8.3
|
||||
androidx.compose.animation:animation-core-android:1.8.3
|
||||
androidx.compose.animation:animation-core:1.8.3
|
||||
androidx.compose.animation:animation:1.8.3
|
||||
androidx.compose.foundation:foundation-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout-android:1.8.3
|
||||
androidx.compose.foundation:foundation-layout:1.8.3
|
||||
androidx.compose.foundation:foundation:1.8.3
|
||||
androidx.compose.material3.adaptive:adaptive-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-layout:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation-android:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive-navigation:1.1.0
|
||||
androidx.compose.material3.adaptive:adaptive:1.1.0
|
||||
androidx.compose.material3:material3-android:1.3.2
|
||||
androidx.compose.material3:material3:1.3.2
|
||||
androidx.compose.material:material-icons-core-android:1.7.8
|
||||
androidx.compose.material:material-icons-core:1.7.8
|
||||
androidx.compose.material:material-icons-extended-android:1.7.8
|
||||
androidx.compose.material:material-icons-extended:1.7.8
|
||||
androidx.compose.material:material-ripple-android:1.8.3
|
||||
androidx.compose.material:material-ripple:1.8.3
|
||||
androidx.compose.runtime:runtime-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable-android:1.8.3
|
||||
androidx.compose.runtime:runtime-saveable:1.8.3
|
||||
androidx.compose.runtime:runtime:1.8.3
|
||||
androidx.compose.ui:ui-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry-android:1.8.3
|
||||
androidx.compose.ui:ui-geometry:1.8.3
|
||||
androidx.compose.ui:ui-graphics-android:1.8.3
|
||||
androidx.compose.ui:ui-graphics:1.8.3
|
||||
androidx.compose.ui:ui-text-android:1.8.3
|
||||
androidx.compose.ui:ui-text:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview-android:1.8.3
|
||||
androidx.compose.ui:ui-tooling-preview:1.8.3
|
||||
androidx.compose.ui:ui-unit-android:1.8.3
|
||||
androidx.compose.ui:ui-unit:1.8.3
|
||||
androidx.compose.ui:ui-util-android:1.8.3
|
||||
androidx.compose.ui:ui-util:1.8.3
|
||||
androidx.compose.ui:ui:1.8.3
|
||||
androidx.compose:compose-bom:2025.07.00
|
||||
androidx.concurrent:concurrent-futures-ktx:1.1.0
|
||||
androidx.concurrent:concurrent-futures:1.1.0
|
||||
androidx.constraintlayout:constraintlayout-core:1.1.1
|
||||
androidx.constraintlayout:constraintlayout:2.2.1
|
||||
androidx.coordinatorlayout:coordinatorlayout:1.3.0
|
||||
androidx.core:core-ktx:1.16.0
|
||||
androidx.core:core-remoteviews:1.1.0
|
||||
androidx.core:core-splashscreen:1.0.1
|
||||
androidx.core:core-viewtree:1.0.0
|
||||
androidx.core:core:1.16.0
|
||||
androidx.cursoradapter:cursoradapter:1.0.0
|
||||
androidx.customview:customview-poolingcontainer:1.0.0
|
||||
androidx.customview:customview:1.1.0
|
||||
androidx.datastore:datastore-core:1.0.0
|
||||
androidx.datastore:datastore-preferences-core:1.0.0
|
||||
androidx.datastore:datastore-preferences:1.0.0
|
||||
androidx.datastore:datastore:1.0.0
|
||||
androidx.documentfile:documentfile:1.0.0
|
||||
androidx.drawerlayout:drawerlayout:1.1.1
|
||||
androidx.dynamicanimation:dynamicanimation:1.0.0
|
||||
androidx.emoji2:emoji2-views-helper:1.4.0
|
||||
androidx.emoji2:emoji2:1.4.0
|
||||
androidx.exifinterface:exifinterface:1.4.1
|
||||
androidx.fragment:fragment-compose:1.8.8
|
||||
androidx.fragment:fragment-ktx:1.8.8
|
||||
androidx.fragment:fragment:1.8.8
|
||||
androidx.glance:glance-appwidget-external-protobuf:1.1.1
|
||||
androidx.glance:glance-appwidget-proto:1.1.1
|
||||
androidx.glance:glance-appwidget:1.1.1
|
||||
androidx.glance:glance-material3:1.1.1
|
||||
androidx.glance:glance:1.1.1
|
||||
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.9.2
|
||||
androidx.lifecycle:lifecycle-common-jvm:2.9.2
|
||||
androidx.lifecycle:lifecycle-common:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-core:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-livedata:2.9.2
|
||||
androidx.lifecycle:lifecycle-process:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-runtime:2.9.2
|
||||
androidx.lifecycle:lifecycle-service:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-compose:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-ktx:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate-android:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.2
|
||||
androidx.lifecycle:lifecycle-viewmodel:2.9.2
|
||||
androidx.loader:loader:1.0.0
|
||||
androidx.localbroadcastmanager:localbroadcastmanager:1.1.0
|
||||
androidx.navigation:navigation-common-android:2.9.3
|
||||
androidx.navigation:navigation-common:2.9.3
|
||||
androidx.navigation:navigation-compose-android:2.9.3
|
||||
androidx.navigation:navigation-compose:2.9.3
|
||||
androidx.navigation:navigation-fragment:2.9.3
|
||||
androidx.navigation:navigation-runtime-android:2.9.3
|
||||
androidx.navigation:navigation-runtime:2.9.3
|
||||
androidx.navigation:navigation-ui:2.9.3
|
||||
androidx.preference:preference:1.2.1
|
||||
androidx.print:print:1.0.0
|
||||
androidx.profileinstaller:profileinstaller:1.4.1
|
||||
androidx.recyclerview:recyclerview:1.4.0
|
||||
androidx.resourceinspection:resourceinspection-annotation:1.0.1
|
||||
androidx.room:room-common:2.6.1
|
||||
androidx.room:room-ktx:2.6.1
|
||||
androidx.room:room-runtime:2.6.1
|
||||
androidx.savedstate:savedstate-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose-android:1.3.1
|
||||
androidx.savedstate:savedstate-compose:1.3.1
|
||||
androidx.savedstate:savedstate-ktx:1.3.1
|
||||
androidx.savedstate:savedstate:1.3.1
|
||||
androidx.slidingpanelayout:slidingpanelayout:1.2.0
|
||||
androidx.sqlite:sqlite-framework:2.4.0
|
||||
androidx.sqlite:sqlite:2.4.0
|
||||
androidx.startup:startup-runtime:1.1.1
|
||||
androidx.swiperefreshlayout:swiperefreshlayout:1.1.0
|
||||
androidx.tracing:tracing-ktx:1.2.0
|
||||
androidx.tracing:tracing:1.2.0
|
||||
androidx.transition:transition:1.5.0
|
||||
androidx.vectordrawable:vectordrawable-animated:1.2.0
|
||||
androidx.vectordrawable:vectordrawable:1.2.0
|
||||
androidx.versionedparcelable:versionedparcelable:1.1.1
|
||||
androidx.viewpager2:viewpager2:1.1.0-beta02
|
||||
androidx.viewpager:viewpager:1.0.0
|
||||
androidx.webkit:webkit:1.14.0
|
||||
androidx.window.extensions.core:core:1.0.0
|
||||
androidx.window:window-core-android:1.3.0
|
||||
androidx.window:window-core:1.3.0
|
||||
androidx.window:window:1.3.0
|
||||
androidx.work:work-runtime-ktx:2.10.3
|
||||
androidx.work:work-runtime:2.10.3
|
||||
co.touchlab:stately-concurrency-jvm:2.1.0
|
||||
co.touchlab:stately-concurrency:2.1.0
|
||||
co.touchlab:stately-concurrent-collections-jvm:2.1.0
|
||||
co.touchlab:stately-concurrent-collections:2.1.0
|
||||
co.touchlab:stately-strict-jvm:2.1.0
|
||||
co.touchlab:stately-strict:2.1.0
|
||||
com.android.billingclient:billing-ktx:7.1.1
|
||||
com.android.billingclient:billing:7.1.1
|
||||
com.beetstra.jutf7:jutf7:1.0.0
|
||||
com.github.ByteHamster:SearchPreference:2.7.3
|
||||
com.github.bumptech.glide:annotations:4.16.0
|
||||
com.github.bumptech.glide:disklrucache:4.16.0
|
||||
com.github.bumptech.glide:gifdecoder:4.16.0
|
||||
com.github.bumptech.glide:glide:4.16.0
|
||||
com.github.skydoves:landscapist-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3-android:2.5.1
|
||||
com.github.skydoves:landscapist-coil3:2.5.1
|
||||
com.github.skydoves:landscapist:2.5.1
|
||||
com.google.android.datatransport:transport-api:3.0.0
|
||||
com.google.android.datatransport:transport-backend-cct:3.1.8
|
||||
com.google.android.datatransport:transport-runtime:3.1.8
|
||||
com.google.android.flexbox:flexbox:3.0.0
|
||||
com.google.android.gms:play-services-base:18.5.0
|
||||
com.google.android.gms:play-services-basement:18.4.0
|
||||
com.google.android.gms:play-services-location:19.0.0
|
||||
com.google.android.gms:play-services-places-placereport:17.0.0
|
||||
com.google.android.gms:play-services-tasks:18.2.0
|
||||
com.google.android.material:material:1.12.0
|
||||
com.google.errorprone:error_prone_annotations:2.15.0
|
||||
com.google.firebase:firebase-encoders-json:18.0.0
|
||||
com.google.firebase:firebase-encoders-proto:16.0.0
|
||||
com.google.firebase:firebase-encoders:17.0.0
|
||||
com.google.guava:listenablefuture:1.0
|
||||
com.jakewharton.timber:timber:5.0.1
|
||||
com.jcraft:jzlib:1.0.7
|
||||
com.mikepenz:fastadapter-extensions-drag:5.7.0
|
||||
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.squareup.moshi:moshi:1.15.2
|
||||
com.squareup.okhttp3:okhttp:4.12.0
|
||||
com.squareup.okio:okio-jvm:3.16.0
|
||||
com.squareup.okio:okio:3.16.0
|
||||
com.takisoft.colorpicker:colorpicker:1.0.0
|
||||
com.takisoft.datetimepicker:datetimepicker:1.0.2
|
||||
com.takisoft.preferencex:preferencex-colorpicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex-datetimepicker:1.1.0
|
||||
com.takisoft.preferencex:preferencex:1.1.0
|
||||
commons-io:commons-io:2.20.0
|
||||
de.cketti.library.changelog:ckchangelog-core:2.0.0-beta02
|
||||
de.cketti.safecontentresolver:safe-content-resolver-v21:1.0.0
|
||||
de.hdodenhof:circleimageview:3.1.0
|
||||
io.coil-kt.coil3:coil-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-core:3.2.0
|
||||
io.coil-kt.coil3:coil-gif:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core-android:3.2.0
|
||||
io.coil-kt.coil3:coil-network-core:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp-jvm:3.2.0
|
||||
io.coil-kt.coil3:coil-network-okhttp:3.2.0
|
||||
io.coil-kt.coil3:coil-video:3.2.0
|
||||
io.coil-kt.coil3:coil:3.2.0
|
||||
io.insert-koin:koin-android:4.1.0
|
||||
io.insert-koin:koin-androidx-compose:4.1.0
|
||||
io.insert-koin:koin-bom:4.1.0
|
||||
io.insert-koin:koin-compose-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-compose-viewmodel:4.1.0
|
||||
io.insert-koin:koin-compose:4.1.0
|
||||
io.insert-koin:koin-core-jvm:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel-android:4.1.0
|
||||
io.insert-koin:koin-core-viewmodel:4.1.0
|
||||
io.insert-koin:koin-core:4.1.0
|
||||
javax.inject:javax.inject:1
|
||||
net.jcip:jcip-annotations:1.0
|
||||
net.openid:appauth:0.11.1
|
||||
org.apache.commons:commons-lang3:3.7
|
||||
org.apache.commons:commons-text:1.3
|
||||
org.apache.httpcomponents.client5:httpclient5:5.5
|
||||
org.apache.httpcomponents.core5:httpcore5-h2:5.3.4
|
||||
org.apache.httpcomponents.core5:httpcore5:5.3.4
|
||||
org.apache.james:apache-mime4j-core:0.8.13
|
||||
org.apache.james:apache-mime4j-dom:0.8.13
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-common:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-runtime:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-compose:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel-savedstate:2.9.1
|
||||
org.jetbrains.androidx.lifecycle:lifecycle-viewmodel:2.9.1
|
||||
org.jetbrains.androidx.savedstate:savedstate:1.3.1
|
||||
org.jetbrains.compose.animation:animation-core:1.8.2
|
||||
org.jetbrains.compose.animation:animation:1.8.2
|
||||
org.jetbrains.compose.annotation-internal:annotation:1.8.2
|
||||
org.jetbrains.compose.collection-internal:collection:1.8.2
|
||||
org.jetbrains.compose.components:components-resources-android:1.8.2
|
||||
org.jetbrains.compose.components:components-resources:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview-android:1.8.2
|
||||
org.jetbrains.compose.components:components-ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation-layout:1.8.2
|
||||
org.jetbrains.compose.foundation:foundation:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime-saveable:1.8.2
|
||||
org.jetbrains.compose.runtime:runtime:1.8.2
|
||||
org.jetbrains.compose.ui:ui-geometry:1.8.2
|
||||
org.jetbrains.compose.ui:ui-graphics:1.8.2
|
||||
org.jetbrains.compose.ui:ui-text:1.8.2
|
||||
org.jetbrains.compose.ui:ui-tooling-preview:1.8.2
|
||||
org.jetbrains.compose.ui:ui-unit:1.8.2
|
||||
org.jetbrains.compose.ui:ui-util:1.8.2
|
||||
org.jetbrains.compose.ui:ui:1.8.2
|
||||
org.jetbrains.kotlin:kotlin-android-extensions-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-bom:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-parcelize-runtime:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-common:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk7:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0
|
||||
org.jetbrains.kotlin:kotlin-stdlib:2.2.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable-jvm:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-collections-immutable:0.4.0
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2
|
||||
org.jetbrains.kotlinx:kotlinx-datetime-jvm:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-datetime:0.7.1
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-bytestring:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core-jvm:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-io-core:0.8.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-bom:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-core:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json-jvm:1.9.0
|
||||
org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0
|
||||
org.jetbrains:annotations:26.0.2
|
||||
org.jsoup:jsoup:1.19.1
|
||||
org.jspecify:jspecify:1.0.0
|
||||
org.minidns:minidns-client:1.1.1
|
||||
org.minidns:minidns-core:1.1.1
|
||||
org.minidns:minidns-dnssec:1.1.1
|
||||
org.minidns:minidns-hla:1.1.1
|
||||
org.minidns:minidns-iterative-resolver:1.1.1
|
||||
org.slf4j:slf4j-api:1.7.36
|
||||
64
app-k9mail/proguard-rules.pro
vendored
Normal file
64
app-k9mail/proguard-rules.pro
vendored
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
# Add project specific ProGuard rules here.
|
||||
|
||||
-dontobfuscate
|
||||
|
||||
# Preserve the line number information for debugging stack traces.
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# Library specific rules
|
||||
-dontnote android.net.http.*
|
||||
-dontnote org.apache.commons.codec.**
|
||||
-dontnote org.apache.http.**
|
||||
-dontnote com.squareup.moshi.**
|
||||
-dontnote com.github.amlcurran.showcaseview.**
|
||||
-dontnote de.cketti.safecontentresolver.**
|
||||
-dontnote com.tokenautocomplete.**
|
||||
|
||||
-dontwarn okio.**
|
||||
-dontwarn com.squareup.moshi.**
|
||||
|
||||
# Glide
|
||||
-keep public class * extends com.bumptech.glide.module.AppGlideModule
|
||||
-keep public class * extends com.bumptech.glide.module.LibraryGlideModule
|
||||
-keep public enum com.bumptech.glide.load.ImageHeaderParser$** {
|
||||
**[] $VALUES;
|
||||
public *;
|
||||
}
|
||||
|
||||
# Project specific rules
|
||||
-dontnote com.fsck.k9.ui.messageview.**
|
||||
-dontnote com.fsck.k9.view.**
|
||||
|
||||
-assumevalues class * extends android.view.View {
|
||||
boolean isInEditMode() return false;
|
||||
}
|
||||
|
||||
-keep public class org.openintents.openpgp.**
|
||||
|
||||
-keepclassmembers class * extends androidx.appcompat.widget.SearchView {
|
||||
public <init>(android.content.Context);
|
||||
}
|
||||
|
||||
-keep class com.fsck.k9.mail.oauth.XOAuth2Response { *; }
|
||||
|
||||
# okhttp rules
|
||||
# see: https://github.com/square/okhttp/blob/master/okhttp/src/main/resources/META-INF/proguard/okhttp3.pro
|
||||
|
||||
# JSR 305 annotations are for embedding nullability information.
|
||||
-dontwarn javax.annotation.**
|
||||
|
||||
# A resource is loaded with a relative path so the package of this class must be preserved.
|
||||
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
|
||||
|
||||
# Animal Sniffer compileOnly dependency to ensure APIs are compatible with older versions of Java.
|
||||
-dontwarn org.codehaus.mojo.animal_sniffer.*
|
||||
|
||||
# OkHttp platform used only on JVM and when Conscrypt dependency is available.
|
||||
-dontwarn okhttp3.internal.platform.ConscryptPlatform
|
||||
|
||||
-dontwarn kotlinx.serialization.KSerializer
|
||||
-dontwarn kotlinx.serialization.Serializable
|
||||
-dontwarn org.apache.http.client.methods.CloseableHttpResponse
|
||||
-dontwarn org.slf4j.impl.StaticLoggerBinder
|
||||
|
||||
-keep,allowshrinking class com.tokenautocomplete.TokenCompleteTextView
|
||||
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>
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue