diff --git a/README.md b/README.md index 6b9e2e0..7181bfe 100644 --- a/README.md +++ b/README.md @@ -182,7 +182,7 @@ install.sh install / uninstall into a local prefix bin/meetrec GUI launcher (installed into ~/.local/bin) bin/meetrec-cli CLI launcher (installed into ~/.local/bin) share/applications/meetrec.desktop XDG desktop entry -share/icons/hicolor/ app icon (SVG + PNG fallbacks) +share/icons/hicolor/ app icon (PNGs; source: icon/make_icon_v3.py) android/ native Android app (Kotlin + whisper.cpp JNI) ``` diff --git a/android/app/src/main/res/drawable-nodpi/ic_launcher_bg.png b/android/app/src/main/res/drawable-nodpi/ic_launcher_bg.png new file mode 100644 index 0000000..30fb91e Binary files /dev/null and b/android/app/src/main/res/drawable-nodpi/ic_launcher_bg.png differ diff --git a/android/app/src/main/res/drawable-nodpi/ic_launcher_fg.png b/android/app/src/main/res/drawable-nodpi/ic_launcher_fg.png new file mode 100644 index 0000000..145a07d Binary files /dev/null and b/android/app/src/main/res/drawable-nodpi/ic_launcher_fg.png differ diff --git a/android/app/src/main/res/drawable/ic_launcher_foreground.xml b/android/app/src/main/res/drawable/ic_launcher_foreground.xml deleted file mode 100644 index 2a04521..0000000 --- a/android/app/src/main/res/drawable/ic_launcher_foreground.xml +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml index 2d2852f..524a89f 100644 --- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -1,5 +1,8 @@ - - + + + \ No newline at end of file diff --git a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml index 2d2852f..075e83f 100644 --- a/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +++ b/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml @@ -1,5 +1,5 @@ - - + + \ No newline at end of file diff --git a/android/app/src/main/res/values/colors.xml b/android/app/src/main/res/values/colors.xml deleted file mode 100644 index 1c86d4c..0000000 --- a/android/app/src/main/res/values/colors.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - #C0392B - \ No newline at end of file diff --git a/icon/make_icon_v3.py b/icon/make_icon_v3.py new file mode 100644 index 0000000..89b7bf7 --- /dev/null +++ b/icon/make_icon_v3.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +"""MeetRec icon v3 — mic/transcript glyph inside a big record button. +Gradient tile + soft shadow + large red record circle; the mic whose +capsule is a transcript card sits inside the button. +""" +import numpy as np +from PIL import Image, ImageDraw, ImageFilter + +S = 512 +RADIUS = 116 + +def vgrad(c_top, c_bot): + """Vertical gradient as an RGB ndarray (S, S, 3).""" + c_top = np.array(c_top, dtype=float) + c_bot = np.array(c_bot, dtype=float) + t = (np.arange(S)[:, None, None] / (S - 1)) + arr = c_top[None, None, :] * (1 - t) + c_bot[None, None, :] * t + return np.repeat(arr, S, axis=1).astype(np.uint8) + +# --- Near-black tile background (subtle depth) --- +bg = vgrad((0x18, 0x18, 0x18), (0x00, 0x00, 0x00)) +img = Image.fromarray(np.dstack([bg, np.full((S, S), 255, np.uint8)]), "RGBA") + +# --- Rounded-square mask (app tile) --- +mask = Image.new("L", (S, S), 0) +ImageDraw.Draw(mask).rounded_rectangle([0, 0, S - 1, S - 1], radius=RADIUS, fill=255) +out = Image.new("RGBA", (S, S), (0, 0, 0, 0)) +out.paste(img, (0, 0), mask) + +# --- Big record button (red vertical gradient circle) --- +CX, CY, R = 256, 256, 176 +red = vgrad((0xFF, 0x8A, 0x8A), (0xDD, 0x2B, 0x3A)) +red_img = Image.fromarray(np.dstack([red, np.full((S, S), 255, np.uint8)]), "RGBA") +circ = Image.new("L", (S, S), 0) +ImageDraw.Draw(circ).ellipse([CX - R, CY - R, CX + R, CY + R], fill=255) +out.paste(red_img, (0, 0), circ) + +d = ImageDraw.Draw(out) +WHITE = (255, 255, 255, 255) +REDINK = (0xD9, 0x26, 0x37, 255) # red "text" on the white card + +# --- Button bezel ring --- +d.ellipse([CX - R - 14, CY - R - 14, CX + R + 14, CY + R + 14], + outline=(255, 255, 255, 190), width=6) + +# --- Mic/transcript glyph (v2 design, centered in the button) --- +# Capsule = transcript card +d.rounded_rectangle([192, 117, 320, 277], radius=30, fill=WHITE) +# Text lines + typing cursor +d.rounded_rectangle([214, 149, 298, 161], radius=6, fill=REDINK) +d.rounded_rectangle([214, 181, 298, 193], radius=6, fill=REDINK) +d.rounded_rectangle([214, 213, 274, 225], radius=6, fill=REDINK) +d.rounded_rectangle([214, 245, 254, 257], radius=6, fill=REDINK) +d.rounded_rectangle([266, 242, 273, 260], radius=3, fill=REDINK) +# Cradle, stem, base +d.arc([178, 155, 334, 335], start=0, end=180, fill=WHITE, width=18) +d.line([256, 333, 256, 369], fill=WHITE, width=18) +d.rounded_rectangle([212, 365, 300, 387], radius=11, fill=WHITE) + +# --- Export sizes --- +master = out.resize((1024, 1024), Image.LANCZOS) +for sz in [1024, 512, 256, 128, 64, 32]: + master.resize((sz, sz), Image.LANCZOS).save(f"meetrec-icon-v3-{sz}.png") + +print("done") diff --git a/icon/meetrec-icon-v3-1024.png b/icon/meetrec-icon-v3-1024.png new file mode 100644 index 0000000..098023a Binary files /dev/null and b/icon/meetrec-icon-v3-1024.png differ diff --git a/icon/meetrec-icon-v3-128.png b/icon/meetrec-icon-v3-128.png new file mode 100644 index 0000000..db58d1f Binary files /dev/null and b/icon/meetrec-icon-v3-128.png differ diff --git a/icon/meetrec-icon-v3-256.png b/icon/meetrec-icon-v3-256.png new file mode 100644 index 0000000..3ac33be Binary files /dev/null and b/icon/meetrec-icon-v3-256.png differ diff --git a/icon/meetrec-icon-v3-32.png b/icon/meetrec-icon-v3-32.png new file mode 100644 index 0000000..3c76517 Binary files /dev/null and b/icon/meetrec-icon-v3-32.png differ diff --git a/icon/meetrec-icon-v3-512.png b/icon/meetrec-icon-v3-512.png new file mode 100644 index 0000000..30fb91e Binary files /dev/null and b/icon/meetrec-icon-v3-512.png differ diff --git a/icon/meetrec-icon-v3-64.png b/icon/meetrec-icon-v3-64.png new file mode 100644 index 0000000..4c655ca Binary files /dev/null and b/icon/meetrec-icon-v3-64.png differ diff --git a/share/icons/hicolor/128x128/apps/meetrec.png b/share/icons/hicolor/128x128/apps/meetrec.png index b97e34d..db58d1f 100644 Binary files a/share/icons/hicolor/128x128/apps/meetrec.png and b/share/icons/hicolor/128x128/apps/meetrec.png differ diff --git a/share/icons/hicolor/256x256/apps/meetrec.png b/share/icons/hicolor/256x256/apps/meetrec.png index 9fc962b..3ac33be 100644 Binary files a/share/icons/hicolor/256x256/apps/meetrec.png and b/share/icons/hicolor/256x256/apps/meetrec.png differ diff --git a/share/icons/hicolor/32x32/apps/meetrec.png b/share/icons/hicolor/32x32/apps/meetrec.png new file mode 100644 index 0000000..3c76517 Binary files /dev/null and b/share/icons/hicolor/32x32/apps/meetrec.png differ diff --git a/share/icons/hicolor/48x48/apps/meetrec.png b/share/icons/hicolor/48x48/apps/meetrec.png index 36f3c51..429bff5 100644 Binary files a/share/icons/hicolor/48x48/apps/meetrec.png and b/share/icons/hicolor/48x48/apps/meetrec.png differ diff --git a/share/icons/hicolor/512x512/apps/meetrec.png b/share/icons/hicolor/512x512/apps/meetrec.png new file mode 100644 index 0000000..30fb91e Binary files /dev/null and b/share/icons/hicolor/512x512/apps/meetrec.png differ diff --git a/share/icons/hicolor/64x64/apps/meetrec.png b/share/icons/hicolor/64x64/apps/meetrec.png index d53cc97..4c655ca 100644 Binary files a/share/icons/hicolor/64x64/apps/meetrec.png and b/share/icons/hicolor/64x64/apps/meetrec.png differ diff --git a/share/icons/hicolor/scalable/apps/meetrec.svg b/share/icons/hicolor/scalable/apps/meetrec.svg deleted file mode 100644 index 0911c5b..0000000 --- a/share/icons/hicolor/scalable/apps/meetrec.svg +++ /dev/null @@ -1,26 +0,0 @@ - - - MeetRec - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file