Krolyxon
Commit 698a1df

Branches

Refs →

budctl698a1df

android: a launcher icon

The app's own dot-matrix language: the LED battery ring (24 dots, 17
lit clockwise from the top, the last lit one the red live dot) around a
dot-matrix "b", white on black.

- An adaptive icon (res/mipmap-anydpi): a black background, the ring
  and the "b" as vector dots, all inside the 66-unit circle every
  launcher mask keeps.
- A monochrome layer for themed icons (Android 13+): one color, the
  unlit dots faint.
- docs/icon.svg: the same dots as an SVG, for anything else that needs
  the logo.

Checked on the emulator: App info shows it in the round mask.
Author
krolyxon
Date
2026-11-01 23:21 +0530
Parent
3dfc07c
Commit
698a1df238f368ca6c22f9b8a8429ad96b93e056

+88 −0

6 files changed

  1. M android/app/src/main/AndroidManifest.xml +2 −0
  2. A android/app/src/main/res/drawable/ic_launcher_foreground.xml +17 −0
  3. A android/app/src/main/res/drawable/ic_launcher_monochrome.xml +15 −0
  4. A android/app/src/main/res/mipmap-anydpi/ic_launcher.xml +6 −0
  5. A android/app/src/main/res/values/ic_launcher.xml +5 −0
  6. A docs/icon.svg +43 −0
M android/app/src/main/AndroidManifest.xml View
@@ -8,7 +8,9 @@
88
99 <application
1010 android:allowBackup="false"
11+ android:icon="@mipmap/ic_launcher"
1112 android:label="budctl"
13+ android:roundIcon="@mipmap/ic_launcher"
1214 android:theme="@android:style/Theme.Material.NoActionBar">
1315 <activity
1416 android:name=".MainActivity"
A android/app/src/main/res/drawable/ic_launcher_foreground.xml View
@@ -0,0 +1,17 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<!-- The launcher icon: the battery ring, its live dot, and a dot-matrix b. Made from the same dots as docs/icon.svg. -->
3+<vector xmlns:android="http://schemas.android.com/apk/res/android"
4+ android:width="108dp"
5+ android:height="108dp"
6+ android:viewportWidth="108"
7+ android:viewportHeight="108">
8+ <path
9+ android:fillColor="#FF3A3A3E"
10+ android:pathData="M23.49,61.51a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M22.50,54.00a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M23.49,46.49a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M26.39,39.50a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M30.99,33.49a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M37.00,28.89a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M43.99,25.99a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z" />
11+ <path
12+ android:fillColor="#FFF2F2F2"
13+ android:pathData="M51.50,25.00a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M59.01,25.99a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M66.00,28.89a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M72.01,33.49a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M76.61,39.50a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M79.51,46.49a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M80.50,54.00a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M79.51,61.51a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M76.61,68.50a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M72.01,74.51a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M66.00,79.11a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M59.01,82.01a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M51.50,83.00a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M43.99,82.01a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M37.00,79.11a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M30.99,74.51a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M42.40,39.60a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,44.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,49.20a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,54.00a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M47.20,54.00a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M52.00,54.00a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M56.80,54.00a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,58.80a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M61.60,58.80a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,63.60a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M61.60,63.60a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,68.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M47.20,68.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M52.00,68.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M56.80,68.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z" />
14+ <path
15+ android:fillColor="#FFD71921"
16+ android:pathData="M26.39,68.50a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z" />
17+</vector>
A android/app/src/main/res/drawable/ic_launcher_monochrome.xml View
@@ -0,0 +1,15 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<!-- The themed launcher icon: one color, which the launcher tints. Made from the same dots as docs/icon.svg. -->
3+<vector xmlns:android="http://schemas.android.com/apk/res/android"
4+ android:width="108dp"
5+ android:height="108dp"
6+ android:viewportWidth="108"
7+ android:viewportHeight="108">
8+ <path
9+ android:fillColor="#FF000000"
10+ android:fillAlpha="0.3"
11+ android:pathData="M23.49,61.51a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M22.50,54.00a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M23.49,46.49a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M26.39,39.50a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M30.99,33.49a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M37.00,28.89a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M43.99,25.99a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z" />
12+ <path
13+ android:fillColor="#FF000000"
14+ android:pathData="M51.50,25.00a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M59.01,25.99a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M66.00,28.89a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M72.01,33.49a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M76.61,39.50a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M79.51,46.49a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M80.50,54.00a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M79.51,61.51a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M76.61,68.50a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M72.01,74.51a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M66.00,79.11a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M59.01,82.01a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M51.50,83.00a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M43.99,82.01a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M37.00,79.11a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M30.99,74.51a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z M42.40,39.60a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,44.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,49.20a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,54.00a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M47.20,54.00a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M52.00,54.00a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M56.80,54.00a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,58.80a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M61.60,58.80a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,63.60a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M61.60,63.60a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M42.40,68.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M47.20,68.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M52.00,68.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M56.80,68.40a2.0,2.0 0 1,0 4.0,0a2.0,2.0 0 1,0 -4.0,0z M26.39,68.50a2.5,2.5 0 1,0 5.0,0a2.5,2.5 0 1,0 -5.0,0z" />
15+</vector>
A android/app/src/main/res/mipmap-anydpi/ic_launcher.xml View
@@ -0,0 +1,6 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
3+ <background android:drawable="@color/ic_launcher_background" />
4+ <foreground android:drawable="@drawable/ic_launcher_foreground" />
5+ <monochrome android:drawable="@drawable/ic_launcher_monochrome" />
6+</adaptive-icon>
A android/app/src/main/res/values/ic_launcher.xml View
@@ -0,0 +1,5 @@
1+<?xml version="1.0" encoding="utf-8"?>
2+<resources>
3+ <!-- Behind the launcher icon: the black of the built-in palette. -->
4+ <color name="ic_launcher_background">#FF000000</color>
5+</resources>
A docs/icon.svg View
@@ -0,0 +1,43 @@
1+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 108 108" width="512" height="512">
2+ <!-- budctl: the battery ring (24 LED dots, 17 lit, the last lit one the red live dot) around a dot-matrix b. -->
3+ <rect width="108" height="108" rx="27" fill="#000000"/>
4+ <circle cx="25.99" cy="61.51" r="2.5" fill="#3A3A3E"/>
5+ <circle cx="25.00" cy="54.00" r="2.5" fill="#3A3A3E"/>
6+ <circle cx="25.99" cy="46.49" r="2.5" fill="#3A3A3E"/>
7+ <circle cx="28.89" cy="39.50" r="2.5" fill="#3A3A3E"/>
8+ <circle cx="33.49" cy="33.49" r="2.5" fill="#3A3A3E"/>
9+ <circle cx="39.50" cy="28.89" r="2.5" fill="#3A3A3E"/>
10+ <circle cx="46.49" cy="25.99" r="2.5" fill="#3A3A3E"/>
11+ <circle cx="54.00" cy="25.00" r="2.5" fill="#F2F2F2"/>
12+ <circle cx="61.51" cy="25.99" r="2.5" fill="#F2F2F2"/>
13+ <circle cx="68.50" cy="28.89" r="2.5" fill="#F2F2F2"/>
14+ <circle cx="74.51" cy="33.49" r="2.5" fill="#F2F2F2"/>
15+ <circle cx="79.11" cy="39.50" r="2.5" fill="#F2F2F2"/>
16+ <circle cx="82.01" cy="46.49" r="2.5" fill="#F2F2F2"/>
17+ <circle cx="83.00" cy="54.00" r="2.5" fill="#F2F2F2"/>
18+ <circle cx="82.01" cy="61.51" r="2.5" fill="#F2F2F2"/>
19+ <circle cx="79.11" cy="68.50" r="2.5" fill="#F2F2F2"/>
20+ <circle cx="74.51" cy="74.51" r="2.5" fill="#F2F2F2"/>
21+ <circle cx="68.50" cy="79.11" r="2.5" fill="#F2F2F2"/>
22+ <circle cx="61.51" cy="82.01" r="2.5" fill="#F2F2F2"/>
23+ <circle cx="54.00" cy="83.00" r="2.5" fill="#F2F2F2"/>
24+ <circle cx="46.49" cy="82.01" r="2.5" fill="#F2F2F2"/>
25+ <circle cx="39.50" cy="79.11" r="2.5" fill="#F2F2F2"/>
26+ <circle cx="33.49" cy="74.51" r="2.5" fill="#F2F2F2"/>
27+ <circle cx="44.40" cy="39.60" r="2.0" fill="#F2F2F2"/>
28+ <circle cx="44.40" cy="44.40" r="2.0" fill="#F2F2F2"/>
29+ <circle cx="44.40" cy="49.20" r="2.0" fill="#F2F2F2"/>
30+ <circle cx="44.40" cy="54.00" r="2.0" fill="#F2F2F2"/>
31+ <circle cx="49.20" cy="54.00" r="2.0" fill="#F2F2F2"/>
32+ <circle cx="54.00" cy="54.00" r="2.0" fill="#F2F2F2"/>
33+ <circle cx="58.80" cy="54.00" r="2.0" fill="#F2F2F2"/>
34+ <circle cx="44.40" cy="58.80" r="2.0" fill="#F2F2F2"/>
35+ <circle cx="63.60" cy="58.80" r="2.0" fill="#F2F2F2"/>
36+ <circle cx="44.40" cy="63.60" r="2.0" fill="#F2F2F2"/>
37+ <circle cx="63.60" cy="63.60" r="2.0" fill="#F2F2F2"/>
38+ <circle cx="44.40" cy="68.40" r="2.0" fill="#F2F2F2"/>
39+ <circle cx="49.20" cy="68.40" r="2.0" fill="#F2F2F2"/>
40+ <circle cx="54.00" cy="68.40" r="2.0" fill="#F2F2F2"/>
41+ <circle cx="58.80" cy="68.40" r="2.0" fill="#F2F2F2"/>
42+ <circle cx="28.89" cy="68.50" r="2.5" fill="#D71921"/>
43+</svg>