diff --git a/app-k9mail/build.gradle.kts b/app-k9mail/build.gradle.kts
index 0b7b1024d7..752ce7fdcb 100644
--- a/app-k9mail/build.gradle.kts
+++ b/app-k9mail/build.gradle.kts
@@ -12,6 +12,7 @@ if (testCoverageEnabled) {
dependencies {
implementation(projects.app.common)
implementation(projects.core.ui.compose.theme2.k9mail)
+ implementation(projects.core.ui.legacy.theme2.k9mail)
implementation(projects.feature.launcher)
implementation(projects.app.core)
diff --git a/app-thunderbird/build.gradle.kts b/app-thunderbird/build.gradle.kts
index 15c818e83d..dee87e83e7 100644
--- a/app-thunderbird/build.gradle.kts
+++ b/app-thunderbird/build.gradle.kts
@@ -12,6 +12,7 @@ if (testCoverageEnabled) {
dependencies {
implementation(projects.app.common)
implementation(projects.core.ui.compose.theme2.thunderbird)
+ implementation(projects.core.ui.legacy.theme2.thunderbird)
implementation(projects.feature.launcher)
implementation(projects.app.core)
diff --git a/app-thunderbird/src/beta/res/drawable/ic_app_logo_monochrome.xml b/app-thunderbird/src/beta/res/drawable/ic_app_logo_monochrome.xml
new file mode 100644
index 0000000000..db571fd6e2
--- /dev/null
+++ b/app-thunderbird/src/beta/res/drawable/ic_app_logo_monochrome.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/app-thunderbird/src/daily/res/drawable/ic_app_logo_monochrome.xml b/app-thunderbird/src/daily/res/drawable/ic_app_logo_monochrome.xml
new file mode 100644
index 0000000000..a2c03a1922
--- /dev/null
+++ b/app-thunderbird/src/daily/res/drawable/ic_app_logo_monochrome.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app-thunderbird/src/debug/res/drawable/ic_app_logo_monochrome.xml b/app-thunderbird/src/debug/res/drawable/ic_app_logo_monochrome.xml
new file mode 100644
index 0000000000..bf8df00b06
--- /dev/null
+++ b/app-thunderbird/src/debug/res/drawable/ic_app_logo_monochrome.xml
@@ -0,0 +1,19 @@
+
+
+
+
+
+
diff --git a/app/common/src/main/AndroidManifest.xml b/app/common/src/main/AndroidManifest.xml
index 1a3e8d2cde..ac917ccf61 100644
--- a/app/common/src/main/AndroidManifest.xml
+++ b/app/common/src/main/AndroidManifest.xml
@@ -30,7 +30,6 @@
android:allowTaskReparenting="false"
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config"
- android:icon="@drawable/ic_launcher"
android:theme="@style/Theme.K9.Startup"
android:resizeableActivity="true"
android:allowBackup="false"
@@ -60,7 +59,7 @@
+ android:theme="@style/Theme.K9.DayNight.Dialog.Translucent" />
+ android:theme="@style/Theme.K9.DayNight.Dialog.Translucent" />
diff --git a/app/ui/legacy/build.gradle.kts b/app/ui/legacy/build.gradle.kts
index 9de46e6659..04ad71f8f0 100644
--- a/app/ui/legacy/build.gradle.kts
+++ b/app/ui/legacy/build.gradle.kts
@@ -6,6 +6,8 @@ plugins {
dependencies {
api(projects.app.ui.base)
api(projects.core.ui.legacy.designsystem)
+ // TODO: Remove once Theme2 is fully migrated
+ api(projects.core.ui.legacy.theme2.k9mail)
implementation(projects.app.core)
implementation(projects.mail.common)
diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/activity/LauncherShortcuts.kt b/app/ui/legacy/src/main/java/com/fsck/k9/activity/LauncherShortcuts.kt
index 1f34508456..65084e293d 100644
--- a/app/ui/legacy/src/main/java/com/fsck/k9/activity/LauncherShortcuts.kt
+++ b/app/ui/legacy/src/main/java/com/fsck/k9/activity/LauncherShortcuts.kt
@@ -1,10 +1,14 @@
package com.fsck.k9.activity
import android.content.Intent
+import android.content.res.Resources.Theme
import android.os.Bundle
+import android.util.TypedValue
+import androidx.annotation.AttrRes
import com.fsck.k9.BaseAccount
import com.fsck.k9.search.SearchAccount
import com.fsck.k9.ui.R
+import app.k9mail.core.ui.legacy.theme2.common.R as CommonR
class LauncherShortcuts : AccountList() {
override fun onCreate(savedInstanceState: Bundle?) {
@@ -25,7 +29,7 @@ class LauncherShortcuts : AccountList() {
}
val displayName = account.name ?: account.email
- val iconResId = R.drawable.ic_launcher
+ val iconResId = theme.resolveDrawableResourceId(CommonR.attr.appLogo)
val iconResource = Intent.ShortcutIconResource.fromContext(this, iconResId)
setResult(
@@ -50,4 +54,10 @@ class LauncherShortcuts : AccountList() {
putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, iconResource)
}
}
+
+ private fun Theme.resolveDrawableResourceId(@AttrRes attr: Int): Int {
+ val typedValue = TypedValue()
+ resolveAttribute(attr, typedValue, true)
+ return typedValue.resourceId
+ }
}
diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/ui/K9ThemeProvider.kt b/app/ui/legacy/src/main/java/com/fsck/k9/ui/K9ThemeProvider.kt
index 1a69cdb30a..c8893e6614 100644
--- a/app/ui/legacy/src/main/java/com/fsck/k9/ui/K9ThemeProvider.kt
+++ b/app/ui/legacy/src/main/java/com/fsck/k9/ui/K9ThemeProvider.kt
@@ -7,6 +7,6 @@ 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_Dialog_DayNight
- override val translucentDialogThemeResourceId = R.style.Theme_K9_Dialog_Translucent_DayNight
+ override val dialogThemeResourceId = R.style.Theme_K9_DayNight_Dialog
+ override val translucentDialogThemeResourceId = R.style.Theme_K9_DayNight_Dialog_Translucent
}
diff --git a/app/ui/legacy/src/main/res/drawable/ic_app_logo.xml b/app/ui/legacy/src/main/res/drawable/ic_app_logo.xml
deleted file mode 100644
index 2977664bf8..0000000000
--- a/app/ui/legacy/src/main/res/drawable/ic_app_logo.xml
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/ui/legacy/src/main/res/layout/choose_account_item.xml b/app/ui/legacy/src/main/res/layout/choose_account_item.xml
index 29d53f75ae..d1a426fef7 100644
--- a/app/ui/legacy/src/main/res/layout/choose_account_item.xml
+++ b/app/ui/legacy/src/main/res/layout/choose_account_item.xml
@@ -5,7 +5,7 @@
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:background="?attr/backgroundColorChooseAccountHeader"
+ android:background="?attr/colorSurfaceContainerHighest"
android:gravity="start|center_vertical">
-
-
-
-
+
+
diff --git a/app/ui/legacy/src/main/res/values-v28/themes.xml b/app/ui/legacy/src/main/res/values-v28/themes.xml
deleted file mode 100644
index 52ff428f0c..0000000000
--- a/app/ui/legacy/src/main/res/values-v28/themes.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/app/ui/legacy/src/main/res/values/attrs.xml b/app/ui/legacy/src/main/res/values/attrs.xml
index 7de5f80756..711497b936 100644
--- a/app/ui/legacy/src/main/res/values/attrs.xml
+++ b/app/ui/legacy/src/main/res/values/attrs.xml
@@ -4,7 +4,6 @@
-
diff --git a/app/ui/legacy/src/main/res/values/themes.xml b/app/ui/legacy/src/main/res/values/themes.xml
index de3d619147..c55db40236 100644
--- a/app/ui/legacy/src/main/res/values/themes.xml
+++ b/app/ui/legacy/src/main/res/values/themes.xml
@@ -5,12 +5,7 @@
- @android:color/black
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
-
+
+
diff --git a/core/ui/legacy/designsystem/build.gradle.kts b/core/ui/legacy/designsystem/build.gradle.kts
index 5e65995111..af0c7dd5a5 100644
--- a/core/ui/legacy/designsystem/build.gradle.kts
+++ b/core/ui/legacy/designsystem/build.gradle.kts
@@ -7,6 +7,5 @@ android {
}
dependencies {
- // TODO Remove this dependency once the legacy theme is available
- api(libs.android.material)
+ api(projects.core.ui.legacy.theme2.common)
}
diff --git a/core/ui/legacy/theme2/README.md b/core/ui/legacy/theme2/README.md
new file mode 100644
index 0000000000..19bbcc3723
--- /dev/null
+++ b/core/ui/legacy/theme2/README.md
@@ -0,0 +1,12 @@
+## Core - UI - Legacy - Theme 2
+
+Legacy Theme 2 represents a Material 3 adaptation of the legacy application theme. It follows the design principles of Material 3, while ensuring compatibility with the existing implementation.
+
+It is available in two variants:
+
+- [K9Mail](./k9mail) - The theme for the K-9 Mail app.
+- [Thunderbird](./thunderbird) - The theme for the Thunderbird app.
+
+It's not suggested to use the contained modules for new features. Use the Composable UI along our [theme 2](../../compose/theme2) and [design system](../../compose/designsystem) instead.
+
+This is only maintained for the purpose of supporting the existing implementation.
diff --git a/core/ui/legacy/theme2/common/build.gradle.kts b/core/ui/legacy/theme2/common/build.gradle.kts
new file mode 100644
index 0000000000..48c44b2847
--- /dev/null
+++ b/core/ui/legacy/theme2/common/build.gradle.kts
@@ -0,0 +1,11 @@
+plugins {
+ id(ThunderbirdPlugins.Library.android)
+}
+
+android {
+ namespace = "app.k9mail.core.ui.legacy.theme2.common"
+}
+
+dependencies {
+ api(libs.android.material)
+}
diff --git a/app/ui/legacy/src/main/res/values-v23/themes.xml b/core/ui/legacy/theme2/common/src/main/res/values-v23/themes.xml
similarity index 79%
rename from app/ui/legacy/src/main/res/values-v23/themes.xml
rename to core/ui/legacy/theme2/common/src/main/res/values-v23/themes.xml
index 0de4be1135..7d52b65569 100644
--- a/app/ui/legacy/src/main/res/values-v23/themes.xml
+++ b/core/ui/legacy/theme2/common/src/main/res/values-v23/themes.xml
@@ -1,14 +1,14 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/core/ui/legacy/theme2/k9mail/build.gradle.kts b/core/ui/legacy/theme2/k9mail/build.gradle.kts
new file mode 100644
index 0000000000..2ffede986a
--- /dev/null
+++ b/core/ui/legacy/theme2/k9mail/build.gradle.kts
@@ -0,0 +1,11 @@
+plugins {
+ id(ThunderbirdPlugins.Library.android)
+}
+
+android {
+ namespace = "app.k9mail.core.ui.legacy.theme2.k9mail"
+}
+
+dependencies {
+ implementation(projects.core.ui.legacy.theme2.common)
+}
diff --git a/app/ui/legacy/src/main/res/drawable-v26/ic_launcher.xml b/core/ui/legacy/theme2/k9mail/src/main/res/drawable-v26/ic_launcher.xml
similarity index 83%
rename from app/ui/legacy/src/main/res/drawable-v26/ic_launcher.xml
rename to core/ui/legacy/theme2/k9mail/src/main/res/drawable-v26/ic_launcher.xml
index 0ffce35477..543054b547 100644
--- a/app/ui/legacy/src/main/res/drawable-v26/ic_launcher.xml
+++ b/core/ui/legacy/theme2/k9mail/src/main/res/drawable-v26/ic_launcher.xml
@@ -4,5 +4,5 @@
-
+
diff --git a/app-k9mail/src/main/res/drawable/ic_app_logo.xml b/core/ui/legacy/theme2/k9mail/src/main/res/drawable/ic_app_logo.xml
similarity index 100%
rename from app-k9mail/src/main/res/drawable/ic_app_logo.xml
rename to core/ui/legacy/theme2/k9mail/src/main/res/drawable/ic_app_logo.xml
diff --git a/app/ui/legacy/src/main/res/drawable/ic_launcher_monochrome.xml b/core/ui/legacy/theme2/k9mail/src/main/res/drawable/ic_app_logo_monochrome.xml
similarity index 100%
rename from app/ui/legacy/src/main/res/drawable/ic_launcher_monochrome.xml
rename to core/ui/legacy/theme2/k9mail/src/main/res/drawable/ic_app_logo_monochrome.xml
diff --git a/app/ui/legacy/src/main/res/values/app_logo_colors.xml b/core/ui/legacy/theme2/k9mail/src/main/res/values/app_logo_colors.xml
similarity index 100%
rename from app/ui/legacy/src/main/res/values/app_logo_colors.xml
rename to core/ui/legacy/theme2/k9mail/src/main/res/values/app_logo_colors.xml
diff --git a/app-k9mail/src/main/res/values/drawables.xml b/core/ui/legacy/theme2/k9mail/src/main/res/values/drawables.xml
similarity index 100%
rename from app-k9mail/src/main/res/values/drawables.xml
rename to core/ui/legacy/theme2/k9mail/src/main/res/values/drawables.xml
diff --git a/core/ui/legacy/theme2/k9mail/src/main/res/values/themes.xml b/core/ui/legacy/theme2/k9mail/src/main/res/values/themes.xml
new file mode 100644
index 0000000000..d47f4904d2
--- /dev/null
+++ b/core/ui/legacy/theme2/k9mail/src/main/res/values/themes.xml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
diff --git a/core/ui/legacy/theme2/k9mail/src/main/res/values/tonal_palette.xml b/core/ui/legacy/theme2/k9mail/src/main/res/values/tonal_palette.xml
new file mode 100644
index 0000000000..539031d450
--- /dev/null
+++ b/core/ui/legacy/theme2/k9mail/src/main/res/values/tonal_palette.xml
@@ -0,0 +1,99 @@
+
+
+
+ #000000
+ #38091B
+ #521F30
+ #6D3546
+ #894C5D
+ #A66476
+ #C37D8F
+ #E196AA
+ #FFB1C5
+ #FFD9E1
+ #FFECEF
+ #FFFBFF
+ #FFFFFF
+
+ #000000
+ #27171B
+ #3D2C30
+ #554246
+ #6E595E
+ #887176
+ #A38B90
+ #BEA5AA
+ #DBC0C5
+ #F8DCE1
+ #FFECEF
+ #FFFBFF
+ #FFFFFF
+
+ #000000
+ #230E48
+ #38255E
+ #4F3C76
+ #685490
+ #816DAB
+ #9B86C6
+ #B6A0E2
+ #D2BBFF
+ #EADDFF
+ #F6EDFF
+ #FFFBFA
+ #FFFFFF
+
+ #000000
+ #410E0B
+ #601410
+ #8C1D18
+ #B3261E
+ #DC362E
+ #E46962
+ #EC928E
+ #F2B8B5
+ #F9DEDC
+ #FCEEEE
+ #FFFBF9
+ #FFFFFF
+
+ #000000
+ #140C0E
+ #191113
+ #22191B
+ #261D1F
+ #31282A
+ #342F30
+ #3C3234
+ #413739
+ #4B4546
+ #635D5E
+ #7C7576
+ #968F90
+ #B1A9AA
+ #CDC4C5
+ #E6D6D8
+ #EFDFE1
+ #F5E4E6
+ #FBEAEC
+ #F8EEEF
+ #FFF0F2
+ #FFF8F8
+ #FFFFFF
+
+ #000000
+ #211A1B
+ #372E30
+ #4E4446
+ #675C5E
+ #807476
+ #9A8E90
+ #B6A8AA
+ #D2C3C5
+ #EEDFE1
+ #FDEDEF
+ #FFFBFF
+ #FFFFFF
+
+
diff --git a/core/ui/legacy/theme2/thunderbird/build.gradle.kts b/core/ui/legacy/theme2/thunderbird/build.gradle.kts
new file mode 100644
index 0000000000..fb9828ef5a
--- /dev/null
+++ b/core/ui/legacy/theme2/thunderbird/build.gradle.kts
@@ -0,0 +1,11 @@
+plugins {
+ id(ThunderbirdPlugins.Library.android)
+}
+
+android {
+ namespace = "app.k9mail.core.ui.legacy.theme2.thunderbird"
+}
+
+dependencies {
+ implementation(projects.core.ui.legacy.theme2.common)
+}
diff --git a/core/ui/legacy/theme2/thunderbird/src/main/res/drawable-v26/ic_launcher.xml b/core/ui/legacy/theme2/thunderbird/src/main/res/drawable-v26/ic_launcher.xml
new file mode 100644
index 0000000000..543054b547
--- /dev/null
+++ b/core/ui/legacy/theme2/thunderbird/src/main/res/drawable-v26/ic_launcher.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
diff --git a/app-thunderbird/src/main/res/drawable/ic_app_logo.xml b/core/ui/legacy/theme2/thunderbird/src/main/res/drawable/ic_app_logo.xml
similarity index 100%
rename from app-thunderbird/src/main/res/drawable/ic_app_logo.xml
rename to core/ui/legacy/theme2/thunderbird/src/main/res/drawable/ic_app_logo.xml
diff --git a/core/ui/legacy/theme2/thunderbird/src/main/res/drawable/ic_app_logo_monochrome.xml b/core/ui/legacy/theme2/thunderbird/src/main/res/drawable/ic_app_logo_monochrome.xml
new file mode 100644
index 0000000000..32ed9dac70
--- /dev/null
+++ b/core/ui/legacy/theme2/thunderbird/src/main/res/drawable/ic_app_logo_monochrome.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/core/ui/legacy/theme2/thunderbird/src/main/res/values/app_logo_colors.xml b/core/ui/legacy/theme2/thunderbird/src/main/res/values/app_logo_colors.xml
new file mode 100644
index 0000000000..e360c88b7d
--- /dev/null
+++ b/core/ui/legacy/theme2/thunderbird/src/main/res/values/app_logo_colors.xml
@@ -0,0 +1,4 @@
+
+
+ #F0F0F0
+
diff --git a/app/ui/legacy/src/main/res/values/drawables.xml b/core/ui/legacy/theme2/thunderbird/src/main/res/values/drawables.xml
similarity index 100%
rename from app/ui/legacy/src/main/res/values/drawables.xml
rename to core/ui/legacy/theme2/thunderbird/src/main/res/values/drawables.xml
diff --git a/core/ui/legacy/theme2/thunderbird/src/main/res/values/themes.xml b/core/ui/legacy/theme2/thunderbird/src/main/res/values/themes.xml
new file mode 100644
index 0000000000..0d2044baeb
--- /dev/null
+++ b/core/ui/legacy/theme2/thunderbird/src/main/res/values/themes.xml
@@ -0,0 +1,108 @@
+
+
+
+
+
+
+
+
diff --git a/core/ui/legacy/theme2/thunderbird/src/main/res/values/tonal_palette.xml b/core/ui/legacy/theme2/thunderbird/src/main/res/values/tonal_palette.xml
new file mode 100644
index 0000000000..b565fe0480
--- /dev/null
+++ b/core/ui/legacy/theme2/thunderbird/src/main/res/values/tonal_palette.xml
@@ -0,0 +1,100 @@
+
+
+
+ #000000
+ #3F001B
+ #5E112F
+ #7B2946
+ #99405D
+ #B75876
+ #D6718F
+ #F68BAA
+ #FFB1C5
+ #FFD9E1
+ #FFECEF
+ #FFFBFF
+ #FFFFFF
+
+ #000000
+ #2B151B
+ #422930
+ #5B3F46
+ #74565E
+ #8F6F76
+ #AA8890
+ #C6A2AA
+ #E3BDC5
+ #FFD9E1
+ #FFECEF
+ #FFFBFF
+ #FFFFFF
+
+ #000000
+ #260059
+ #3C1D70
+ #533688
+ #6B4EA2
+ #8567BD
+ #9F81D9
+ #BA9CF6
+ #D3BBFF
+ #EBDDFF
+ #F7EDFF
+ #FFFBFF
+ #FFFFFF
+
+ #000000
+ #410002
+ #690005
+ #93000A
+ #BA1A1A
+ #DE3730
+ #FF5449
+ #FF897D
+ #FFB4AB
+ #FFDAD6
+ #FFEDEA
+ #FFFBFF
+ #FFFFFF
+
+ #000000
+ #120D0E
+ #171213
+ #201A1B
+ #241E1F
+ #2F282A
+ #352F30
+ #3A3334
+ #3E3739
+ #4C4546
+ #655C5E
+ #7E7576
+ #988E90
+ #B3A9AA
+ #CFC4C5
+ #E3D7D8
+ #ECE0E1
+ #F1E5E6
+ #F7EBEC
+ #FAEEEF
+ #FDF1F2
+ #FFF8F8
+ #FFFBFF
+ #FFFFFF
+
+ #000000
+ #24191B
+ #3A2D30
+ #514346
+ #6A5A5E
+ #847376
+ #9E8C90
+ #BAA7AA
+ #D6C2C5
+ #F3DDE1
+ #FFECEF
+ #FFFBFF
+ #FFFFFF
+
+
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 45d267f7a2..d9870fb33e 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -82,6 +82,9 @@ include(
":core:ui:compose:theme2:thunderbird",
":core:ui:compose:testing",
":core:ui:legacy:designsystem",
+ ":core:ui:legacy:theme2:common",
+ ":core:ui:legacy:theme2:k9mail",
+ ":core:ui:legacy:theme2:thunderbird",
)
include(