Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
[![Android 8+](https://img.shields.io/badge/Android-8.0%2B-3DDC84?logo=android&logoColor=white)](https://developer.android.com/about/versions/oreo)

<p align="center">
<img src="fastlane/metadata/android/en-US/images/icon.png" width="160" alt="Message487 app icon">
<img src="assets/branding/icon-round.svg" width="160" alt="Message487 app icon">
</p>

Message487 connects selected Android notifications and incoming SMS to your n8n workflows.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ internal object UpdateNotifications {
.putExtra("version_key", UpdatePreferences.key(update)), flags)
val source = context.getString(if (update.source == UpdateSource.FDROID) R.string.update_fdroid else R.string.update_github)
val notification = NotificationCompat.Builder(context, UPDATE_NOTIFICATION_CHANNEL)
.setSmallIcon(R.drawable.ic_update)
.setSmallIcon(R.drawable.ic_notification)
.setContentTitle(context.getString(R.string.update_available, update.version))
.setContentText(context.getString(R.string.update_notification_text, source))
.setStyle(NotificationCompat.BigTextStyle().bigText(context.getString(R.string.update_notification_text, source)))
Expand Down
Binary file removed app/src/main/res/drawable-hdpi/ic_notification.png
Binary file not shown.
Binary file removed app/src/main/res/drawable-mdpi/ic_notification.png
Binary file not shown.
Binary file removed app/src/main/res/drawable-xhdpi/ic_notification.png
Binary file not shown.
Binary file removed app/src/main/res/drawable-xxhdpi/ic_notification.png
Binary file not shown.
16 changes: 16 additions & 0 deletions app/src/main/res/drawable/ic_launcher_background.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp" android:height="108dp"
android:viewportWidth="108" android:viewportHeight="108">
<path android:pathData="M0,0H108V108H0Z">
<aapt:attr name="android:fillColor">
<gradient android:type="linear" android:startX="0" android:startY="0"
android:endX="108" android:endY="108">
<item android:offset="0" android:color="#00C9EF" />
<item android:offset="0.35" android:color="#0754F5" />
<item android:offset="0.65" android:color="#6500ED" />
<item android:offset="1" android:color="#FF1AB9" />
</gradient>
</aapt:attr>
</path>
</vector>
25 changes: 14 additions & 11 deletions app/src/main/res/drawable/ic_launcher_foreground.xml
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108"
android:tint="#FFFFFF">
<group android:scaleX="1.815"
android:scaleY="1.815"
android:translateX="32.22"
android:translateY="32.22">
<path android:fillColor="@android:color/white" android:pathData="M23,11.01L18,11c-0.55,0 -1,0.45 -1,1v9c0,0.55 0.45,1 1,1h5c0.55,0 1,-0.45 1,-1v-9c0,-0.55 -0.45,-0.99 -1,-0.99zM23,20h-5v-7h5v7zM20,2L2,2C0.89,2 0,2.89 0,4v12c0,1.1 0.89,2 2,2h7v2L7,20v2h8v-2h-2v-2h2v-2L2,16L2,4h18v5h2L22,4c0,-1.11 -0.9,-2 -2,-2zM11.97,9L11,6l-0.97,3L7,9l2.47,1.76 -0.94,2.91 2.47,-1.8 2.47,1.8 -0.94,-2.91L15,9h-3.03z"/>
</group>
android:width="108dp" android:height="108dp"
android:viewportWidth="1254" android:viewportHeight="1254">
<group android:scaleX="0.73" android:scaleY="0.73"
android:translateX="169.29" android:translateY="169.29">
<path android:fillColor="#FFFFFFFF" android:pathData="M313,298H877Q942,298 942,363V563H878V377Q878,361 862,361H329Q313,361 313,377V711Q313,727 329,727H764V790H313Q248,790 248,725V363Q248,298 313,298Z M544,790H642V857H698Q730,857 730,887Q730,917 698,917H488Q456,917 456,887Q456,857 488,857H544Z" />
<path android:fillColor="#FFFFFFFF" android:fillType="evenOdd"
android:pathData="M819,563H960Q1015,563 1015,618V887Q1015,942 960,942H819Q764,942 764,887V618Q764,563 819,563Z M831,616Q813,616 813,634V870Q813,888 831,888H948Q966,888 966,870V634Q966,616 948,616Z" />
<path android:fillColor="@android:color/transparent" android:strokeColor="#FFFFFFFF"
android:strokeWidth="17" android:strokeLineJoin="round" android:strokeLineCap="round"
android:pathData="M508,522L590,465L672,522V611H508Z M508,522L546,547H634L672,522" />
<path android:fillColor="@android:color/transparent" android:strokeColor="#FFFFFFFF"
android:strokeWidth="11" android:strokeLineJoin="round" android:strokeLineCap="round"
android:pathData="M855,725H923Q929,725 929,731V783Q929,789 923,789H855Q849,789 849,783V731Q849,725 855,725Z M850,731L889,761L928,731" />
</group>
</vector>
4 changes: 4 additions & 0 deletions app/src/main/res/drawable/ic_launcher_monochrome.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<inset xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/ic_notification"
android:insetLeft="24dp" android:insetTop="24dp"
android:insetRight="24dp" android:insetBottom="24dp" />
6 changes: 6 additions & 0 deletions app/src/main/res/drawable/ic_notification.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<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="#FFFFFFFF" android:fillType="evenOdd"
android:pathData="M3,3H19Q21,3 21,5V8H19V5H3V16H14V18H12V20H15V22H6V20H9V18H3Q1,18 1,16V5Q1,3 3,3Z M17,9H21Q23,9 23,11V20Q23,22 21,22H17Q15,22 15,20V11Q15,9 17,9Z M17,11V20H21V11Z" />
</vector>
4 changes: 0 additions & 4 deletions app/src/main/res/drawable/ic_update.xml

This file was deleted.

4 changes: 2 additions & 2 deletions app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/launcher_background" />
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>
4 changes: 2 additions & 2 deletions app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/launcher_background" />
<background android:drawable="@drawable/ic_launcher_background" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>
Binary file modified app/src/main/res/mipmap-hdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/src/main/res/mipmap-mdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/src/main/res/mipmap-xhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 0 additions & 3 deletions app/src/main/res/values/colors.xml

This file was deleted.

67 changes: 47 additions & 20 deletions assets/branding/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,52 @@

| Asset | Use |
| --- | --- |
| [`icon.png`](../../fastlane/metadata/android/en-US/images/icon.png) | Google Play app icon, 512×512 RGBA PNG; also used in README |
| [`featureGraphic.png`](../../fastlane/metadata/android/en-US/images/featureGraphic.png) | Google Play feature graphic, 1024×500 RGB PNG without alpha; shared by both locales |
| `message487-feature-master.png` | Original generated banner, retained for future exports |
| [icon.svg](icon.svg) · [PNG](icon.png) | Canonical square artwork for web and PNG exports |
| [icon-round.svg](icon-round.svg) · [PNG](icon-round.png) | Circular artwork used in the project README and round launcher PNGs |
| [status-icon.svg](status-icon.svg) · [PNG](status-icon.png) | Simplified monochrome monitor/phone mark for small sizes |
| [feature.svg](feature.svg) · [PNG](feature.png) | Canonical store banner artwork, 1024×500 |
| [icon.png](../../fastlane/metadata/android/en-US/images/icon.png) | Store app icon, 512×512 RGB PNG |
| [featureGraphic.png](../../fastlane/metadata/android/en-US/images/featureGraphic.png) | Store feature graphic, 1024×500 opaque RGB PNG; shared by both locales |
| `fastlane/metadata/android/{en-US,ru-RU}/images/phoneScreenshots/` | Actual phone screenshots in English and Russian, 1080×1920 |

Launcher PNGs and the adaptive foreground are copied from
[andre487/sms487](https://github.com/andre487/sms487/tree/d4aca0724c4d8c8cfcfe128c6df6cc93f64625f2/client/app/src/main).
The monitor, star, phone and indigo background preserve the original app identity.
The existing vector foreground also supplies the Android themed-icon mask; round launcher
resources and legacy notification icons are included. The app UI retains its purple Material theme.
The original artwork is distributed under the [sms487 MIT license](sms487-LICENSE).
The selected design shows an open envelope on a monitor and a closed envelope on a phone,
with a cyan/blue/violet/magenta gradient inspired by AndroidMegaProxy. The initial concepts
were created with the built-in `image_gen` tool, then reconstructed as native vectors.
The final design prompt was: “Monitor with a small open envelope and phone with a small closed
envelope on a cyan/blue/violet/magenta gradient; preserve generous margins in a circular crop.”
Each SVG has a matching PNG beside it for sharing where SVG is unsupported.
Sizes: square/round icon 512×512, status icon 24×24, feature graphic 1024×500.
The round and status PNGs retain transparency; the white status mark needs a contrasting background.

The feature illustration was produced with the built-in `image_gen` tool using the old
Play Store icon as its reference, then exported with `sips -z 500 1024` as an opaque PNG.
The generation prompt is recorded in [feature-prompt.txt](feature-prompt.txt).
It extends the icon's device imagery with notification cards and workflow nodes and uses
no localized text or third-party service marks. It is promotional artwork, not an app screenshot.
Android adaptive layers live in `app/src/main/res/drawable/ic_launcher_{background,foreground}.xml`.
The foreground uses scale `0.73` about the center of its 1254-unit viewport; the SVGs use the
same paths, transform and gradient, cropped to Android's central 836×836 viewport.
Keep these sources synchronized when changing the artwork.
The themed launcher and notification small icon share `ic_notification.xml`, the simplified
white monitor/phone silhouette without envelopes or gradient. Update notifications use this
small icon. The app UI retains its purple Material theme and standard Material icons.

Current store assets and localized descriptions have one canonical location under
[`fastlane/metadata/android`](../../fastlane/metadata/android), shared by F-Droid and Google Play.
Export PNGs with the installed `rsvg-convert` utility:

```sh
for name in icon icon-round status-icon feature; do
rsvg-convert "assets/branding/$name.svg" -o "assets/branding/$name.png"
done
rsvg-convert assets/branding/icon.svg -o fastlane/metadata/android/en-US/images/icon.png
rsvg-convert assets/branding/feature.svg -o /tmp/message487-feature.png
magick /tmp/message487-feature.png -background white -alpha remove -alpha off -type TrueColor fastlane/metadata/android/en-US/images/featureGraphic.png
```

For launcher PNGs use `rsvg-convert -w SIZE -h SIZE` with `icon.svg` or `icon-round.svg`.
Sizes by density: mdpi 48, hdpi 72, xhdpi 96, xxhdpi 144, xxxhdpi 192.
SVGs are self-contained: no external images, fonts, scripts or raster embeddings.
The feature graphic is promotional artwork, not an app screenshot.

Earlier artwork originated from
[andre487/sms487](https://github.com/andre487/sms487/tree/d4aca0724c4d8c8cfcfe128c6df6cc93f64625f2/client/app/src/main)
under the [sms487 MIT license](sms487-LICENSE); the original license is retained.
Store graphics and localized descriptions have one canonical location under
[fastlane/metadata/android](../../fastlane/metadata/android), shared by F-Droid and Google Play.

## Google Play store settings

Expand All @@ -34,8 +60,9 @@ These settings are maintained manually in Google Play Console:
| Tags | Home automation (Автоматизация дома), Tools (Инструменты) |
| Phone screenshot order, both locales | `1.png`, `2.png`, `3.png` |

For a Play listing, upload [`icon.png`](../../fastlane/metadata/android/en-US/images/icon.png) as the app icon and [`featureGraphic.png`](../../fastlane/metadata/android/en-US/images/featureGraphic.png)
as the feature graphic. The screenshots were captured from the debug app on the API 35 emulator with synthetic
For a Play listing, upload [icon.png](../../fastlane/metadata/android/en-US/images/icon.png)
and [featureGraphic.png](../../fastlane/metadata/android/en-US/images/featureGraphic.png).
The screenshots were captured from the debug app on the API 35 emulator with synthetic
local data, using Android app locales and a 1080×1920 display. Refresh them from the release
being submitted whenever its UI changes; do not use generated illustrations as screenshots. Follow the current
[Google Play asset requirements](https://support.google.com/googleplay/android-developer/answer/9866151?hl=en).
being submitted whenever its UI changes; do not use generated illustrations as screenshots.
Follow the current [Google Play asset requirements](https://support.google.com/googleplay/android-developer/answer/9866151?hl=en).
4 changes: 0 additions & 4 deletions assets/branding/feature-prompt.txt

This file was deleted.

Binary file added assets/branding/feature.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
28 changes: 28 additions & 0 deletions assets/branding/feature.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/branding/icon-round.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions assets/branding/icon-round.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/branding/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 17 additions & 0 deletions assets/branding/icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed assets/branding/message487-feature-master.png
Binary file not shown.
Binary file added assets/branding/status-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions assets/branding/status-icon.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified fastlane/metadata/android/en-US/images/featureGraphic.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified fastlane/metadata/android/en-US/images/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading