diff --git a/composeApp/src/androidMain/res/drawable-hdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-hdpi/widget_icon_foreground.png new file mode 100644 index 0000000..a18840c Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-hdpi/widget_icon_foreground.png differ diff --git a/composeApp/src/androidMain/res/drawable-mdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-mdpi/widget_icon_foreground.png new file mode 100644 index 0000000..5120b84 Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-mdpi/widget_icon_foreground.png differ diff --git a/composeApp/src/androidMain/res/drawable-xhdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-xhdpi/widget_icon_foreground.png new file mode 100644 index 0000000..f3c8fb0 Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-xhdpi/widget_icon_foreground.png differ diff --git a/composeApp/src/androidMain/res/drawable-xxhdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-xxhdpi/widget_icon_foreground.png new file mode 100644 index 0000000..b0d4d64 Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-xxhdpi/widget_icon_foreground.png differ diff --git a/composeApp/src/androidMain/res/drawable-xxxhdpi/widget_icon_foreground.png b/composeApp/src/androidMain/res/drawable-xxxhdpi/widget_icon_foreground.png new file mode 100644 index 0000000..bf8534c Binary files /dev/null and b/composeApp/src/androidMain/res/drawable-xxxhdpi/widget_icon_foreground.png differ diff --git a/composeApp/src/androidMain/res/drawable/widget_icon_background.xml b/composeApp/src/androidMain/res/drawable/widget_icon_background.xml new file mode 100644 index 0000000..f954a0f --- /dev/null +++ b/composeApp/src/androidMain/res/drawable/widget_icon_background.xml @@ -0,0 +1,9 @@ + + + + + diff --git a/composeApp/src/androidMain/res/mipmap-anydpi-v26/widget_icon.xml b/composeApp/src/androidMain/res/mipmap-anydpi-v26/widget_icon.xml new file mode 100644 index 0000000..cea140e --- /dev/null +++ b/composeApp/src/androidMain/res/mipmap-anydpi-v26/widget_icon.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-hdpi/widget_icon.png new file mode 100644 index 0000000..0fbd4e9 Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-hdpi/widget_icon.png differ diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-mdpi/widget_icon.png new file mode 100644 index 0000000..5e02b79 Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-mdpi/widget_icon.png differ diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-xhdpi/widget_icon.png new file mode 100644 index 0000000..d13771f Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-xhdpi/widget_icon.png differ diff --git a/composeApp/src/androidMain/res/mipmap-xxhdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-xxhdpi/widget_icon.png new file mode 100644 index 0000000..e8c5192 Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-xxhdpi/widget_icon.png differ diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/widget_icon.png b/composeApp/src/androidMain/res/mipmap-xxxhdpi/widget_icon.png new file mode 100644 index 0000000..fb54805 Binary files /dev/null and b/composeApp/src/androidMain/res/mipmap-xxxhdpi/widget_icon.png differ diff --git a/composeApp/src/commonMain/composeResources/drawable/app_icon_mark.png b/composeApp/src/commonMain/composeResources/drawable/app_icon_mark.png new file mode 100644 index 0000000..7b4e2f8 Binary files /dev/null and b/composeApp/src/commonMain/composeResources/drawable/app_icon_mark.png differ diff --git a/composeApp/src/commonMain/composeResources/drawable/honeycomb_texture.xml b/composeApp/src/commonMain/composeResources/drawable/honeycomb_texture.xml new file mode 100644 index 0000000..c48bbcd --- /dev/null +++ b/composeApp/src/commonMain/composeResources/drawable/honeycomb_texture.xml @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + diff --git a/composeApp/src/commonMain/composeResources/drawable/outline.png b/composeApp/src/commonMain/composeResources/drawable/outline.png new file mode 100644 index 0000000..f805d65 Binary files /dev/null and b/composeApp/src/commonMain/composeResources/drawable/outline.png differ diff --git a/composeApp/src/commonMain/composeResources/drawable/tab_view.png b/composeApp/src/commonMain/composeResources/drawable/tab_view.png new file mode 100644 index 0000000..1e4df5c Binary files /dev/null and b/composeApp/src/commonMain/composeResources/drawable/tab_view.png differ diff --git a/composeApp/src/commonMain/composeResources/drawable/widget_icon.png b/composeApp/src/commonMain/composeResources/drawable/widget_icon.png new file mode 100644 index 0000000..7b4e2f8 Binary files /dev/null and b/composeApp/src/commonMain/composeResources/drawable/widget_icon.png differ diff --git a/composeApp/src/commonTest/kotlin/com/tt/honeyDue/resources/AssetInventoryTest.kt b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/resources/AssetInventoryTest.kt new file mode 100644 index 0000000..2cfae49 --- /dev/null +++ b/composeApp/src/commonTest/kotlin/com/tt/honeyDue/resources/AssetInventoryTest.kt @@ -0,0 +1,53 @@ +package com.tt.honeyDue.resources + +import honeydue.composeapp.generated.resources.Res +import honeydue.composeapp.generated.resources.app_icon_mark +import honeydue.composeapp.generated.resources.honeycomb_texture +import honeydue.composeapp.generated.resources.outline +import honeydue.composeapp.generated.resources.tab_view +import honeydue.composeapp.generated.resources.widget_icon +import org.jetbrains.compose.resources.ExperimentalResourceApi +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertNotNull + +/** + * P1 Stream B — Asset port inventory. + * + * Guards iOS → Android brand-asset parity. Each referenced drawable must + * exist in composeResources so the generated `Res.drawable.` accessor + * compiles. Any removal will fail at compile time, not silently at runtime. + * + * Sources documented in docs/ios-parity/source-assets/ (commit-tracked). + */ +@OptIn(ExperimentalResourceApi::class) +class AssetInventoryTest { + + @Test + fun all_ported_assets_exist() { + // Fails to compile if any of these generated symbols don't exist. + val assets = listOf( + Res.drawable.outline, + Res.drawable.tab_view, + Res.drawable.app_icon_mark, + Res.drawable.honeycomb_texture, + Res.drawable.widget_icon + ) + + assertEquals(5, assets.size, "Expected 5 ported brand assets") + assets.forEach { assertNotNull(it) } + } + + @Test + fun assets_are_distinct_resources() { + // Ensures no accidental alias/duplicate definitions. + val assets = setOf( + Res.drawable.outline, + Res.drawable.tab_view, + Res.drawable.app_icon_mark, + Res.drawable.honeycomb_texture, + Res.drawable.widget_icon + ) + assertEquals(5, assets.size, "All ported assets must be distinct DrawableResource instances") + } +} diff --git a/docs/ios-parity/source-assets/app_icon_mark.png b/docs/ios-parity/source-assets/app_icon_mark.png new file mode 100644 index 0000000..02d229d Binary files /dev/null and b/docs/ios-parity/source-assets/app_icon_mark.png differ diff --git a/docs/ios-parity/source-assets/outline.pdf b/docs/ios-parity/source-assets/outline.pdf new file mode 100644 index 0000000..6fe4da0 Binary files /dev/null and b/docs/ios-parity/source-assets/outline.pdf differ diff --git a/docs/ios-parity/source-assets/tab_view_3x.png b/docs/ios-parity/source-assets/tab_view_3x.png new file mode 100644 index 0000000..9452c67 Binary files /dev/null and b/docs/ios-parity/source-assets/tab_view_3x.png differ diff --git a/docs/ios-parity/source-assets/widget_icon_source.png b/docs/ios-parity/source-assets/widget_icon_source.png new file mode 100644 index 0000000..02d229d Binary files /dev/null and b/docs/ios-parity/source-assets/widget_icon_source.png differ