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.
+88 −0
6 files changed
- M android/app/src/main/AndroidManifest.xml +2 −0
- A android/app/src/main/res/drawable/ic_launcher_foreground.xml +17 −0
- A android/app/src/main/res/drawable/ic_launcher_monochrome.xml +15 −0
- A android/app/src/main/res/mipmap-anydpi/ic_launcher.xml +6 −0
- A android/app/src/main/res/values/ic_launcher.xml +5 −0
- A docs/icon.svg +43 −0
| @@ -8,7 +8,9 @@ | |||
| 8 | 8 | ||
| 9 | 9 | <application | |
| 10 | 10 | android:allowBackup="false" | |
| 11 | + | android:icon="@mipmap/ic_launcher" | |
| 11 | 12 | android:label="budctl" | |
| 13 | + | android:roundIcon="@mipmap/ic_launcher" | |
| 12 | 14 | android:theme="@android:style/Theme.Material.NoActionBar"> | |
| 13 | 15 | <activity | |
| 14 | 16 | android:name=".MainActivity" | |
| @@ -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> | |
| @@ -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> | |
| @@ -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> | |
| @@ -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> | |
| @@ -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> | |