diff --git a/app/src/androidTest/java/dev/threadline/LauncherIconTest.kt b/app/src/androidTest/java/dev/threadline/LauncherIconTest.kt new file mode 100644 index 0000000..60e9956 --- /dev/null +++ b/app/src/androidTest/java/dev/threadline/LauncherIconTest.kt @@ -0,0 +1,20 @@ +package dev.threadline + +import androidx.test.ext.junit.runners.AndroidJUnit4 +import androidx.test.platform.app.InstrumentationRegistry +import org.junit.Assert.assertEquals +import org.junit.Assert.assertNotNull +import org.junit.Test +import org.junit.runner.RunWith + +@RunWith(AndroidJUnit4::class) +class LauncherIconTest { + @Test + fun manifestUsesTemporaryLauncherArtwork() { + val context = InstrumentationRegistry.getInstrumentation().targetContext + val applicationInfo = context.packageManager.getApplicationInfo(context.packageName, 0) + + assertEquals(R.mipmap.ic_launcher, applicationInfo.icon) + assertNotNull(context.getDrawable(applicationInfo.icon)) + } +} diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 1fdc613..196a76a 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -11,8 +11,9 @@ android:allowBackup="false" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" - android:icon="@drawable/ic_terminal" + android:icon="@mipmap/ic_launcher" android:label="@string/app_name" + android:roundIcon="@mipmap/ic_launcher" android:supportsRtl="true" android:theme="@style/Theme.Threadline" android:usesCleartextTraffic="false"> diff --git a/app/src/main/res/drawable-nodpi/ic_launcher_artwork.webp b/app/src/main/res/drawable-nodpi/ic_launcher_artwork.webp new file mode 100644 index 0000000..9753888 Binary files /dev/null and b/app/src/main/res/drawable-nodpi/ic_launcher_artwork.webp differ diff --git a/app/src/main/res/drawable/ic_launcher_adaptive_background.xml b/app/src/main/res/drawable/ic_launcher_adaptive_background.xml new file mode 100644 index 0000000..46c2a1a --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_adaptive_background.xml @@ -0,0 +1,5 @@ + + diff --git a/app/src/main/res/drawable/ic_launcher_adaptive_foreground.xml b/app/src/main/res/drawable/ic_launcher_adaptive_foreground.xml new file mode 100644 index 0000000..133140b --- /dev/null +++ b/app/src/main/res/drawable/ic_launcher_adaptive_foreground.xml @@ -0,0 +1,5 @@ + + + + diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..7132519 --- /dev/null +++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.webp b/app/src/main/res/mipmap-hdpi/ic_launcher.webp new file mode 100644 index 0000000..e11abc8 Binary files /dev/null and b/app/src/main/res/mipmap-hdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.webp b/app/src/main/res/mipmap-mdpi/ic_launcher.webp new file mode 100644 index 0000000..1bac509 Binary files /dev/null and b/app/src/main/res/mipmap-mdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp new file mode 100644 index 0000000..32a0110 Binary files /dev/null and b/app/src/main/res/mipmap-xhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp new file mode 100644 index 0000000..29d53c3 Binary files /dev/null and b/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp differ diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp new file mode 100644 index 0000000..1d95463 Binary files /dev/null and b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp differ diff --git a/docs/STATUS.md b/docs/STATUS.md index b143bab..b5b99dd 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -216,6 +216,13 @@ pass with gesture and three-button navigation. The three-button inset keeps More clear of the side navigation bar. This work does not require a dedicated signed alpha; Galaxy owner-device acceptance remains for the next shared candidate. +The issue #38 source replaces the blank-looking white launcher glyph with the +owner-supplied dark-and-green temporary artwork. Density-specific legacy icons +and an adaptive icon keep the launcher and app-switcher identity recognizable; +final brand design remains out of scope. This also does not require a dedicated +signed alpha. In-place update and owner-device launcher-mask acceptance remain +for the next shared candidate. + ## Remaining Phase 5 boundaries - Technical-alpha use sufficient to evaluate the Phase 5 exit criterion.