feat: add branded app and web icons
Some checks failed
Android CI / android (push) Failing after 4m20s
Android Release / release (push) Failing after 4m26s
CI / test (push) Failing after 2m22s

Add adaptive and legacy launcher icons for Android.

Replace the default notification icon with a branded monochrome asset.

Add favicon, touch icons, and a web app manifest for the web client.
This commit is contained in:
2026-04-05 15:36:19 +03:00
parent 0f55aef179
commit 29a612dffa
27 changed files with 106 additions and 4 deletions

View File

@@ -13,9 +13,9 @@
android:name=".MessengerApplication"
android:allowBackup="true"
android:enableOnBackInvokedCallback="true"
android:icon="@android:drawable/sym_def_app_icon"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@android:drawable/sym_def_app_icon"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:usesCleartextTraffic="true"
android:theme="@style/Theme.Messenger">

View File

@@ -89,7 +89,7 @@ class NotificationDispatcher @Inject constructor(
state.lines.reversed().forEach { inboxStyle.addLine(it) }
val notification = NotificationCompat.Builder(context, channelId)
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setSmallIcon(R.drawable.ic_notification_small)
.setContentTitle(state.title)
.setContentText(contentText)
.setStyle(inboxStyle)
@@ -154,7 +154,7 @@ class NotificationDispatcher @Inject constructor(
inboxStyle.addLine(line)
}
val summary = NotificationCompat.Builder(context, NotificationChannels.CHANNEL_MESSAGES)
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setSmallIcon(R.drawable.ic_notification_small)
.setContentTitle("Benya Messenger")
.setContentText("$totalUnread new messages in ${snapshot.size} chats")
.setStyle(inboxStyle)

View File

@@ -0,0 +1,24 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<group
android:pivotX="54"
android:pivotY="54"
android:scaleX="0.72"
android:scaleY="0.72">
<path
android:fillColor="@android:color/white"
android:pathData="M31,19C23.268,19 17,25.268 17,33v29c0,7.732 6.268,14 14,14h13.2L40,91l21.5,-15H77c7.732,0 14,-6.268 14,-14V33c0,-7.732 -6.268,-14 -14,-14H31z" />
<path
android:fillColor="#1E6FC1"
android:pathData="M37,38m0,5a5,5 0,1 1,0 -10h34a5,5 0,1 1,0 10H37z" />
<path
android:fillColor="#1E6FC1"
android:pathData="M37,52m0,5a5,5 0,1 1,0 -10h22a5,5 0,1 1,0 10H37z" />
<path
android:fillColor="#1E6FC1"
android:pathData="M37,66m0,5a5,5 0,1 1,0 -10h14a5,5 0,1 1,0 10H37z" />
</group>
</vector>

View File

@@ -0,0 +1,15 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<group
android:pivotX="54"
android:pivotY="54"
android:scaleX="0.72"
android:scaleY="0.72">
<path
android:fillColor="@android:color/white"
android:pathData="M31,19C23.268,19 17,25.268 17,33v29c0,7.732 6.268,14 14,14h13.2L40,91l21.5,-15H77c7.732,0 14,-6.268 14,-14V33c0,-7.732 -6.268,-14 -14,-14H31z" />
</group>
</vector>

View File

@@ -0,0 +1,9 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:fillColor="@android:color/white"
android:pathData="M6,2C4.343,2 3,3.343 3,5v8c0,1.657 1.343,3 3,3h1v4l4,-4h7c1.657,0 3,-1.343 3,-3V5c0,-1.657 -1.343,-3 -3,-3H6z" />
</vector>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>

Binary file not shown.

After

Width:  |  Height:  |  Size: 756 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 883 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 631 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1004 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#3390EC</color>
</resources>