feat: add launcher name and launcher icon
|
@ -17,7 +17,7 @@
|
|||
<uses-feature android:name="android.hardware.bluetooth_le" android:required="true" />
|
||||
|
||||
<application
|
||||
android:label="sense_the_rhythm"
|
||||
android:label="Sense the Rhythm"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
<activity
|
||||
|
|
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 3.5 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 6.2 KiB |
After Width: | Height: | Size: 8 KiB |
After Width: | Height: | Size: 8 KiB |
14
android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
Normal file
|
@ -0,0 +1,14 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground>
|
||||
<inset
|
||||
android:drawable="@drawable/ic_launcher_foreground"
|
||||
android:inset="16%" />
|
||||
</foreground>
|
||||
<monochrome>
|
||||
<inset
|
||||
android:drawable="@drawable/ic_launcher_monochrome"
|
||||
android:inset="16%" />
|
||||
</monochrome>
|
||||
</adaptive-icon>
|
Before Width: | Height: | Size: 544 B After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 442 B After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 721 B After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 1 KiB After Width: | Height: | Size: 3.2 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 4 KiB |
4
android/app/src/main/res/values/colors.xml
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_background">#ffffff</color>
|
||||
</resources>
|
BIN
assets/icon/icon.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
184
assets/icon/icon.svg
Normal file
|
@ -0,0 +1,184 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
width="512"
|
||||
height="512"
|
||||
viewBox="0 0 512 512"
|
||||
version="1.1"
|
||||
id="svg11"
|
||||
sodipodi:docname="icon.svg"
|
||||
xml:space="preserve"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
inkscape:export-filename="icon.png"
|
||||
inkscape:export-xdpi="96"
|
||||
inkscape:export-ydpi="96"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"><style
|
||||
id="style1"><![CDATA[
|
||||
#keylines circle, #keylines rect {
|
||||
vector-effect: non-scaling-stroke;
|
||||
fill: none;
|
||||
stroke: #0000FF;
|
||||
}
|
||||
#mask path, #mask rect, #mask circle, #hatching path {
|
||||
vector-effect: non-scaling-stroke;
|
||||
fill: none;
|
||||
stroke: #FF0000;
|
||||
}
|
||||
#keylines, #mask {
|
||||
opacity: 0.5;
|
||||
}
|
||||
]]></style><inkscape:_templateinfo><inkscape:_name>Android O icon template</inkscape:_name><inkscape:author>Venceslas DUET</inkscape:author><inkscape:_shortdesc>A collection of keylines and guides used to make adaptive icons for android O</inkscape:_shortdesc><inkscape:date>2021-02-14</inkscape:date><inkscape:_keywords>Android Icon Adaptive Keylines</inkscape:_keywords></inkscape:_templateinfo><defs
|
||||
id="defs1"><clipPath
|
||||
clipPathUnits="userSpaceOnUse"
|
||||
id="clipHatching"><rect
|
||||
width="8"
|
||||
height="8"
|
||||
x="0"
|
||||
y="0"
|
||||
id="rect1" /></clipPath><pattern
|
||||
patternUnits="userSpaceOnUse"
|
||||
width="8"
|
||||
height="8"
|
||||
id="hatching"><path
|
||||
d="M 1,-1 -1,1 M 9,7 7,9 M 9,-1 -1,9"
|
||||
clip-path="url(#clipHatching)"
|
||||
id="path1" /></pattern></defs><sodipodi:namedview
|
||||
id="base"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="true"
|
||||
units="px"
|
||||
showguides="true"
|
||||
inkscape:guide-bbox="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:cx="248.01061"
|
||||
inkscape:cy="240.34483"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#999999"
|
||||
borderopacity="1"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:zoom="1.1088235"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="768"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="0"><inkscape:grid
|
||||
type="xygrid"
|
||||
empspacing="8"
|
||||
id="grid1"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingy="1"
|
||||
spacingx="1"
|
||||
units="px" /><sodipodi:guide
|
||||
position="256,256"
|
||||
orientation="0,1"
|
||||
inkscape:locked="false"
|
||||
id="guide1" /><sodipodi:guide
|
||||
position="256,200"
|
||||
orientation="0,1"
|
||||
inkscape:locked="false"
|
||||
id="guide2" /><sodipodi:guide
|
||||
position="256,312"
|
||||
orientation="0,1"
|
||||
inkscape:locked="false"
|
||||
id="guide3" /><sodipodi:guide
|
||||
position="256,256"
|
||||
orientation="1,0"
|
||||
inkscape:locked="false"
|
||||
id="guide4" /><sodipodi:guide
|
||||
position="200,256"
|
||||
orientation="1,0"
|
||||
inkscape:locked="false"
|
||||
id="guide5" /><sodipodi:guide
|
||||
position="312,256"
|
||||
orientation="1,0"
|
||||
inkscape:locked="false"
|
||||
id="guide6" /><sodipodi:guide
|
||||
position="256,256"
|
||||
orientation="1,1"
|
||||
inkscape:locked="false"
|
||||
id="guide7" /><sodipodi:guide
|
||||
position="256,256"
|
||||
orientation="1,-1"
|
||||
inkscape:locked="false"
|
||||
id="guide8" /></sodipodi:namedview><g
|
||||
inkscape:label="Calque 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"><g
|
||||
id="g11"
|
||||
transform="matrix(14.708333,0,0,14.708333,45.912504,63.000008)"><rect
|
||||
fill="none"
|
||||
height="24"
|
||||
width="24"
|
||||
id="rect1-5"
|
||||
style="fill:none;fill-opacity:1"
|
||||
x="0"
|
||||
y="0" /><g
|
||||
id="g4"
|
||||
style="display:none"><path
|
||||
d="M 23,5.5 V 20 c 0,2.2 -1.8,4 -4,4 H 11.7 C 10.62,24 9.6,23.57 8.85,22.81 L 1,14.83 c 0,0 1.26,-1.23 1.3,-1.25 0.22,-0.19 0.49,-0.29 0.79,-0.29 0.22,0 0.42,0.06 0.6,0.16 C 3.73,13.46 8,15.91 8,15.91 V 4 C 8,3.17 8.67,2.5 9.5,2.5 10.33,2.5 11,3.17 11,4 v 7 h 9 V 5.5 C 20,4.67 20.67,4 21.5,4 22.33,4 23,4.67 23,5.5 Z"
|
||||
id="path1-3"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
sodipodi:nodetypes="sssscccsccsssccsss" /><path
|
||||
id="path1-6-5"
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:1.8402;stroke-dasharray:none;stroke-opacity:1;paint-order:markers stroke fill"
|
||||
d="m 17.632533,10.172572 c -0.83,0 -1.5,0.67 -1.5,1.500001 v 1.267969 2.43164 1.267969 c 0,0.83 0.67,1.5 1.5,1.5 0.83,0 1.5,-0.67 1.5,-1.5 v -1.267969 -2.43164 -1.267969 c 0,-0.830001 -0.67,-1.500001 -1.5,-1.500001 z m -4.219019,10e-7 c -0.83,0 -1.5,0.67 -1.5,1.5 v 1.267969 2.43164 1.267969 c 0,0.83 0.67,1.5 1.5,1.5 0.83,0 1.5,-0.67 1.5,-1.5 v -1.267969 -2.43164 -1.267969 c 0,-0.83 -0.67,-1.5 -1.5,-1.5 z" /></g><g
|
||||
id="g4-3"><path
|
||||
id="path1-6"
|
||||
style="fill:#000000;fill-opacity:1"
|
||||
d="m 9.5003906,2.4996094 c -0.83,0 -1.5,0.67 -1.5,1.5 V 15.910547 c 0,0 -4.2701562,-2.450938 -4.3101562,-2.460938 -0.18,-0.1 -0.38,-0.159375 -0.6,-0.159375 -0.3,0 -0.5698438,0.09945 -0.7898438,0.289453 -0.04,0.02 -1.30078123,1.250391 -1.30078123,1.250391 L 8.85,22.810547 C 9.6,23.570547 10.62,24 11.7,24 h 7.299609 c 2.2,0 4.000782,-1.799609 4.000782,-3.999609 V 5.4996094 c 0,-0.83 -0.67,-1.5 -1.5,-1.5 -0.83,0 -1.5,0.67 -1.5,1.5 v 5.5007816 h -0.04453 C 19.660922,9.9965218 18.725724,9.2519531 17.633203,9.2519531 c -0.900046,0 -1.693894,0.5053002 -2.110547,1.2445309 -0.416731,-0.73895 -1.208366,-1.2445309 -2.108203,-1.2445309 -1.092521,0 -2.028891,0.744569 -2.323828,1.7484379 h -0.09023 V 3.9996094 c 0,-0.83 -0.67,-1.5 -1.5000004,-1.5 z m 3.9128904,7.6734376 c 0.83,0 1.5,0.67 1.5,1.5 v 1.267969 2.43164 1.267969 c 0,0.83 -0.67,1.5 -1.5,1.5 -0.83,0 -1.5,-0.67 -1.5,-1.5 v -1.267969 -2.43164 -1.267969 c 0,-0.83 0.67,-1.5 1.5,-1.5 z m 4.21875,0 c 0.83,0 1.5,0.669999 1.5,1.5 v 1.267969 2.43164 1.267969 c 0,0.83 -0.67,1.5 -1.5,1.5 -0.83,0 -1.5,-0.67 -1.5,-1.5 v -1.267969 -2.43164 -1.267969 c 0,-0.830001 0.67,-1.5 1.5,-1.5 z" /></g></g></g><g
|
||||
inkscape:label="Keylines"
|
||||
inkscape:groupmode="layer"
|
||||
id="keylines"
|
||||
sodipodi:insensitive="true"
|
||||
style="display:none"><circle
|
||||
cx="256"
|
||||
cy="256"
|
||||
r="80"
|
||||
id="circle8" /><circle
|
||||
cx="256"
|
||||
cy="256"
|
||||
r="176"
|
||||
id="circle9" /><rect
|
||||
width="256"
|
||||
height="352"
|
||||
x="128"
|
||||
y="80"
|
||||
ry="24"
|
||||
id="rect9" /><rect
|
||||
width="352"
|
||||
height="256"
|
||||
x="80"
|
||||
y="128"
|
||||
ry="24"
|
||||
id="rect10" /><rectn
|
||||
width="304"
|
||||
height="304"
|
||||
x="104"
|
||||
y="104"
|
||||
ry="24" /></g><g
|
||||
inkscape:label="Mask"
|
||||
inkscape:groupmode="layer"
|
||||
id="mask"
|
||||
sodipodi:insensitive="true"
|
||||
style="display:none"><path
|
||||
d="M 0,0 V 512 H 512 V 0 Z M 64,64 H 448 V 448 H 64 Z"
|
||||
style="fill:url(#hatching)"
|
||||
id="path10" /><path
|
||||
d="m 256,512 c 112.1778,0 174.5778,0 215.2889,-40.7111 C 512,430.5778 512,368.1778 512,256 512,143.8222 512,81.4222 471.2889,40.7111 430.5778,0 368.1778,0 256,0 143.8222,0 81.4222,0 40.7111,40.7111 0,81.4222 0,143.8222 0,256 0,368.1778 0,430.5778 40.7111,471.2889 81.4222,512 143.8222,512 256,512 Z"
|
||||
id="path11" /><circle
|
||||
cx="256"
|
||||
cy="256"
|
||||
r="256"
|
||||
id="circle11" /><rect
|
||||
width="512"
|
||||
height="512"
|
||||
x="0"
|
||||
y="0"
|
||||
ry="128"
|
||||
id="rect11" /></g></svg>
|
After Width: | Height: | Size: 7.5 KiB |
32
flutter_launcher_icons.yaml
Normal file
|
@ -0,0 +1,32 @@
|
|||
# flutter pub run flutter_launcher_icons
|
||||
flutter_launcher_icons:
|
||||
image_path: "assets/icon/icon.svg"
|
||||
|
||||
android: true
|
||||
image_path_android: "assets/icon/icon.png"
|
||||
min_sdk_android: 21 # android min sdk min:16, default 21
|
||||
adaptive_icon_background: "#ffffff"
|
||||
adaptive_icon_foreground: "assets/icon/icon.png"
|
||||
adaptive_icon_monochrome: "assets/icon/icon.png"
|
||||
|
||||
ios: true
|
||||
# image_path_ios: "assets/icon/icon.png"
|
||||
remove_alpha_channel_ios: true
|
||||
# image_path_ios_dark_transparent: "assets/icon/icon_dark.png"
|
||||
# image_path_ios_tinted_grayscale: "assets/icon/icon_tinted.png"
|
||||
# desaturate_tinted_to_grayscale_ios: true
|
||||
|
||||
web:
|
||||
generate: false
|
||||
image_path: "path/to/image.png"
|
||||
background_color: "#hexcode"
|
||||
theme_color: "#hexcode"
|
||||
|
||||
windows:
|
||||
generate: false
|
||||
image_path: "path/to/image.png"
|
||||
icon_size: 48 # min:48, max:256, default: 48
|
||||
|
||||
macos:
|
||||
generate: false
|
||||
image_path: "path/to/image.png"
|
|
@ -13,7 +13,7 @@
|
|||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>sense_the_rhythm</string>
|
||||
<string>Sense the Rhythm</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
|
|
88
pubspec.lock
|
@ -1,6 +1,22 @@
|
|||
# Generated by pub
|
||||
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||
packages:
|
||||
archive:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: archive
|
||||
sha256: "6199c74e3db4fbfbd04f66d739e72fe11c8a8957d5f219f1f4482dbde6420b5a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.2"
|
||||
args:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.6.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -81,6 +97,22 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.3.0"
|
||||
checked_yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: checked_yaml
|
||||
sha256: feb6bed21949061731a7a75fc5d2aa727cf160b91af9a3e464c5e3a32e28b5ff
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.3"
|
||||
cli_util:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: cli_util
|
||||
sha256: ff6785f7e9e3c38ac98b2fb035701789de90154024a75b6cb926445e83197d1c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.2"
|
||||
clock:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -175,6 +207,14 @@ packages:
|
|||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_launcher_icons:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: flutter_launcher_icons
|
||||
sha256: "31cd0885738e87c72d6f055564d37fabcdacee743b396b78c7636c169cac64f5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.14.2"
|
||||
flutter_lints:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
|
@ -217,6 +257,22 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.1.1"
|
||||
image:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: image
|
||||
sha256: "8346ad4b5173924b5ddddab782fc7d8a6300178c8b1dc427775405a01701c4a6"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.5.2"
|
||||
json_annotation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: json_annotation
|
||||
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.9.0"
|
||||
leak_tracker:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -377,6 +433,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.1"
|
||||
petitparser:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: petitparser
|
||||
sha256: c15605cd28af66339f8eb6fbe0e541bfe2d1b72d5825efc6598f3e0a31b9ad27
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.2"
|
||||
platform:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -393,6 +457,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.8"
|
||||
posix:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: posix
|
||||
sha256: a0117dc2167805aa9125b82eee515cc891819bac2f538c83646d355b16f58b9a
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.1"
|
||||
shared_preferences:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -574,6 +646,22 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
xml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: xml
|
||||
sha256: b015a8ad1c488f66851d762d3090a21c600e479dc75e68328c52774040cf9226
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.5.0"
|
||||
yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: yaml
|
||||
sha256: b9da305ac7c39faa3f030eccd175340f968459dae4af175130b3fc47e40d76ce
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.3"
|
||||
sdks:
|
||||
dart: ">=3.6.0 <4.0.0"
|
||||
flutter: ">=3.24.0"
|
||||
|
|
|
@ -25,7 +25,11 @@ dev_dependencies:
|
|||
flutter_test:
|
||||
sdk: flutter
|
||||
flutter_lints: ^5.0.0
|
||||
flutter_launcher_icons: ^0.14.2
|
||||
# flutter_app_name: ^0.1.0
|
||||
|
||||
flutter:
|
||||
uses-material-design: true
|
||||
|
||||
flutter_app_name:
|
||||
name: "Sense the Rhythm"
|
||||
|
|