feat: radar app icon (launcher + themed + notification)

Radar logo — range rings, crosshair, sweep beam, red contact blip on the dark
screen. Adaptive foreground + a monochrome themed-icon layer + a matching
notification small icon (was the generic system ic_menu_view).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015jgJnzMr2bdNuWcDX2xRUR
This commit is contained in:
KaraZajac
2026-07-15 18:28:54 -04:00
parent c730657605
commit 7eb3f2e1b3
6 changed files with 140 additions and 4 deletions
@@ -403,7 +403,7 @@ class DetectionService : LifecycleService() {
return NotificationCompat.Builder(this, CHANNEL_ID)
.setContentTitle(title)
.setContentText(text)
.setSmallIcon(android.R.drawable.ic_menu_view)
.setSmallIcon(R.drawable.ic_stat_radar)
.setOngoing(true)
.setContentIntent(pi)
.setCategory(NotificationCompat.CATEGORY_SERVICE)
@@ -1,13 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Radar: range rings + crosshair + sweep beam + a red contact blip. Drawn on
top of the @color/bg_dark adaptive background. -->
<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">
<!-- lit screen glow -->
<path android:pathData="M54,54 m-36,0 a36,36 0 1,0 72,0 a36,36 0 1,0 -72,0">
<aapt:attr name="android:fillColor">
<gradient android:type="radial"
android:centerX="54" android:centerY="54" android:gradientRadius="36">
<item android:offset="0.0" android:color="#123A24" />
<item android:offset="1.0" android:color="#000B0E12" />
</gradient>
</aapt:attr>
</path>
<!-- sweep afterglow wedge -->
<path
android:pathData="M54,54 L54,19 A35,35 0 0,1 83.3,35 Z"
android:fillColor="#1FAA59"
android:pathData="M54,30 m-18,0 a18,18 0 1,0 36,0 a18,18 0 1,0 -36,0" />
android:fillAlpha="0.32" />
<!-- range rings -->
<path
android:fillColor="#F4F6FA"
android:pathData="M54,30 m-6,0 a6,6 0 1,0 12,0 a6,6 0 1,0 -12,0" />
android:pathData="M54,54 m-34,0 a34,34 0 1,0 68,0 a34,34 0 1,0 -68,0"
android:strokeColor="#1FAA59"
android:strokeWidth="2" />
<path
android:pathData="M54,54 m-23,0 a23,23 0 1,0 46,0 a23,23 0 1,0 -46,0"
android:strokeColor="#1FAA59"
android:strokeWidth="2"
android:strokeAlpha="0.85" />
<path
android:pathData="M54,54 m-12,0 a12,12 0 1,0 24,0 a12,12 0 1,0 -24,0"
android:strokeColor="#1FAA59"
android:strokeWidth="2"
android:strokeAlpha="0.85" />
<!-- crosshair -->
<path
android:pathData="M20,54 L88,54"
android:strokeColor="#1FAA59"
android:strokeWidth="1.4"
android:strokeAlpha="0.55" />
<path
android:pathData="M54,20 L54,88"
android:strokeColor="#1FAA59"
android:strokeWidth="1.4"
android:strokeAlpha="0.55" />
<!-- leading sweep beam -->
<path
android:pathData="M54,54 L83.3,35"
android:strokeColor="#33E38C"
android:strokeWidth="2.4"
android:strokeLineCap="round" />
<!-- contact blip -->
<path
android:pathData="M72,40 m-7,0 a7,7 0 1,0 14,0 a7,7 0 1,0 -14,0"
android:fillColor="#D7263D"
android:fillAlpha="0.22" />
<path
android:pathData="M72,40 m-3.3,0 a3.3,3.3 0 1,0 6.6,0 a3.3,3.3 0 1,0 -6.6,0"
android:fillColor="#D7263D" />
<!-- hub -->
<path
android:pathData="M54,54 m-2.4,0 a2.4,2.4 0 1,0 4.8,0 a2.4,2.4 0 1,0 -4.8,0"
android:fillColor="#33E38C" />
</vector>
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Single-colour radar silhouette for Android 13+ themed icons (system tints it). -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="108dp"
android:height="108dp"
android:viewportWidth="108"
android:viewportHeight="108">
<path
android:pathData="M54,54 m-34,0 a34,34 0 1,0 68,0 a34,34 0 1,0 -68,0"
android:strokeColor="#FFFFFF"
android:strokeWidth="2.2" />
<path
android:pathData="M54,54 m-23,0 a23,23 0 1,0 46,0 a23,23 0 1,0 -46,0"
android:strokeColor="#FFFFFF"
android:strokeWidth="2.2" />
<path
android:pathData="M54,54 m-12,0 a12,12 0 1,0 24,0 a12,12 0 1,0 -24,0"
android:strokeColor="#FFFFFF"
android:strokeWidth="2.2" />
<path
android:pathData="M20,54 L88,54"
android:strokeColor="#FFFFFF"
android:strokeWidth="1.8" />
<path
android:pathData="M54,20 L54,88"
android:strokeColor="#FFFFFF"
android:strokeWidth="1.8" />
<path
android:pathData="M54,54 L83.3,35"
android:strokeColor="#FFFFFF"
android:strokeWidth="2.6"
android:strokeLineCap="round" />
<path
android:pathData="M72,40 m-3.6,0 a3.6,3.6 0 1,0 7.2,0 a3.6,3.6 0 1,0 -7.2,0"
android:fillColor="#FFFFFF" />
<path
android:pathData="M54,54 m-2.6,0 a2.6,2.6 0 1,0 5.2,0 a2.6,2.6 0 1,0 -5.2,0"
android:fillColor="#FFFFFF" />
</vector>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Status-bar / notification small icon. White silhouette; the system tints it. -->
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24"
android:viewportHeight="24">
<path
android:pathData="M12,12 m-10,0 a10,10 0 1,0 20,0 a10,10 0 1,0 -20,0"
android:strokeColor="#FFFFFF"
android:strokeWidth="1.4" />
<path
android:pathData="M12,12 m-5.2,0 a5.2,5.2 0 1,0 10.4,0 a5.2,5.2 0 1,0 -10.4,0"
android:strokeColor="#FFFFFF"
android:strokeWidth="1.4" />
<path
android:pathData="M2.5,12 L21.5,12"
android:strokeColor="#FFFFFF"
android:strokeWidth="1.1" />
<path
android:pathData="M12,2.5 L12,21.5"
android:strokeColor="#FFFFFF"
android:strokeWidth="1.1" />
<path
android:pathData="M12,12 L20,7.5"
android:strokeColor="#FFFFFF"
android:strokeWidth="1.6"
android:strokeLineCap="round" />
<path
android:pathData="M16.4,8.9 m-1.8,0 a1.8,1.8 0 1,0 3.6,0 a1.8,1.8 0 1,0 -3.6,0"
android:fillColor="#FFFFFF" />
</vector>
@@ -2,4 +2,5 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/bg_dark" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>
@@ -2,4 +2,5 @@
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/bg_dark" />
<foreground android:drawable="@drawable/ic_launcher_foreground" />
<monochrome android:drawable="@drawable/ic_launcher_monochrome" />
</adaptive-icon>