chore(android): Add hot nightly flavor (#727)
* feat(android): add flavor support * feat(android): add nightly icons & splash screens * chore(vscode): group icon config yml with pubspec * ci: update apk & appbundle path
10
.github/workflows/spotube-release-binary.yml
vendored
@ -235,10 +235,8 @@ jobs:
|
|||||||
|
|
||||||
- name: Build Apk
|
- name: Build Apk
|
||||||
run: |
|
run: |
|
||||||
flutter build apk
|
flutter build apk --flavor ${{ inputs.channel }}
|
||||||
flutter build appbundle
|
mv build/app/outputs/flutter-apk/app-${{ inputs.channel }}-release.apk build/Spotube-android-all-arch.apk
|
||||||
mv build/app/outputs/apk/release/app-release.apk build/Spotube-android-all-arch.apk
|
|
||||||
mv build/app/outputs/bundle/release/app-release.aab build/Spotube-playstore-all-arch.aab
|
|
||||||
|
|
||||||
- name: Build Playstore AppBundle
|
- name: Build Playstore AppBundle
|
||||||
run: |
|
run: |
|
||||||
@ -247,8 +245,8 @@ jobs:
|
|||||||
export MANIFEST=android/app/src/main/AndroidManifest.xml
|
export MANIFEST=android/app/src/main/AndroidManifest.xml
|
||||||
xmlstarlet ed -d '//meta-data[@android:name="com.google.android.gms.car.application"]' $MANIFEST > $MANIFEST.tmp
|
xmlstarlet ed -d '//meta-data[@android:name="com.google.android.gms.car.application"]' $MANIFEST > $MANIFEST.tmp
|
||||||
mv $MANIFEST.tmp $MANIFEST
|
mv $MANIFEST.tmp $MANIFEST
|
||||||
flutter build appbundle
|
flutter build appbundle --flavor ${{ inputs.channel }}
|
||||||
mv build/app/outputs/bundle/release/app-release.aab build/Spotube-playstore-all-arch.aab
|
mv build/app/outputs/bundle/${{ inputs.channel }}Release/app-${{ inputs.channel }}-release.aab build/Spotube-playstore-all-arch.aab
|
||||||
|
|
||||||
- name: Debug With SSH When fails
|
- name: Debug With SSH When fails
|
||||||
if: ${{ failure() && inputs.debug && inputs.channel == 'nightly' }}
|
if: ${{ failure() && inputs.debug && inputs.channel == 'nightly' }}
|
||||||
|
6
.vscode/launch.json
vendored
@ -5,7 +5,11 @@
|
|||||||
"name": "spotube",
|
"name": "spotube",
|
||||||
"type": "dart",
|
"type": "dart",
|
||||||
"request": "launch",
|
"request": "launch",
|
||||||
"program": "lib/main.dart"
|
"program": "lib/main.dart",
|
||||||
|
"args": [
|
||||||
|
"--flavor",
|
||||||
|
"nightly"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "spotube (profile)",
|
"name": "spotube (profile)",
|
||||||
|
2
.vscode/settings.json
vendored
@ -13,7 +13,7 @@
|
|||||||
"editor.formatOnSave": true,
|
"editor.formatOnSave": true,
|
||||||
"explorer.fileNesting.enabled": true,
|
"explorer.fileNesting.enabled": true,
|
||||||
"explorer.fileNesting.patterns": {
|
"explorer.fileNesting.patterns": {
|
||||||
"pubspec.yaml": "pubspec.lock,analysis_options.yaml,.packages,.flutter-plugins,.flutter-plugins-dependencies",
|
"pubspec.yaml": "pubspec.lock,analysis_options.yaml,.packages,.flutter-plugins,.flutter-plugins-dependencies,flutter_launcher_icons*.yaml,flutter_native_splash*.yaml",
|
||||||
"README.md": "LICENSE,CODE_OF_CONDUCT.md,CONTRIBUTING.md,SECURITY.md,CONTRIBUTION.md,CHANGELOG.md,PRIVACY_POLICY.md",
|
"README.md": "LICENSE,CODE_OF_CONDUCT.md,CONTRIBUTING.md,SECURITY.md,CONTRIBUTION.md,CHANGELOG.md,PRIVACY_POLICY.md",
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -72,6 +72,22 @@ android {
|
|||||||
signingConfig signingConfigs.release
|
signingConfig signingConfigs.release
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
flavorDimensions "default"
|
||||||
|
|
||||||
|
productFlavors {
|
||||||
|
nightly {
|
||||||
|
dimension "default"
|
||||||
|
resValue "string", "app_name", "Spotube Nightly"
|
||||||
|
applicationIdSuffix ".nightly"
|
||||||
|
versionNameSuffix "-nightly"
|
||||||
|
}
|
||||||
|
stable {
|
||||||
|
dimension "default"
|
||||||
|
resValue "string", "app_name", "Spotube"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
flutter {
|
flutter {
|
||||||
@ -92,4 +108,4 @@ dependencies {
|
|||||||
|
|
||||||
// other deps so just ignore
|
// other deps so just ignore
|
||||||
implementation 'com.android.support:multidex:2.0.1'
|
implementation 'com.android.support:multidex:2.0.1'
|
||||||
}
|
}
|
@ -18,7 +18,7 @@
|
|||||||
<application
|
<application
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
android:fullBackupContent="false"
|
android:fullBackupContent="false"
|
||||||
android:label="Spotube"
|
android:label="@string/app_name"
|
||||||
android:name="${applicationName}"
|
android:name="${applicationName}"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:usesCleartextTraffic="true"
|
android:usesCleartextTraffic="true"
|
||||||
|
After Width: | Height: | Size: 11 KiB |
BIN
android/app/src/nightly/res/drawable-hdpi/android12splash.png
Normal file
After Width: | Height: | Size: 73 KiB |
BIN
android/app/src/nightly/res/drawable-hdpi/branding.png
Normal file
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 7.7 KiB |
BIN
android/app/src/nightly/res/drawable-hdpi/splash.png
Normal file
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 3.9 KiB |
BIN
android/app/src/nightly/res/drawable-mdpi/android12splash.png
Normal file
After Width: | Height: | Size: 37 KiB |
BIN
android/app/src/nightly/res/drawable-mdpi/branding.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 4.1 KiB |
BIN
android/app/src/nightly/res/drawable-mdpi/splash.png
Normal file
After Width: | Height: | Size: 17 KiB |
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 3.9 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 78 KiB |
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 220 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 213 KiB |
BIN
android/app/src/nightly/res/drawable-v21/background.png
Normal file
After Width: | Height: | Size: 3.1 MiB |
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<bitmap android:gravity="fill" android:src="@drawable/background"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<bitmap android:gravity="center" android:src="@drawable/splash"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<bitmap android:gravity="bottom" android:src="@drawable/branding"/>
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
After Width: | Height: | Size: 12 KiB |
BIN
android/app/src/nightly/res/drawable-xhdpi/android12splash.png
Normal file
After Width: | Height: | Size: 78 KiB |
BIN
android/app/src/nightly/res/drawable-xhdpi/branding.png
Normal file
After Width: | Height: | Size: 12 KiB |
After Width: | Height: | Size: 12 KiB |
BIN
android/app/src/nightly/res/drawable-xhdpi/splash.png
Normal file
After Width: | Height: | Size: 48 KiB |
After Width: | Height: | Size: 32 KiB |
BIN
android/app/src/nightly/res/drawable-xxhdpi/android12splash.png
Normal file
After Width: | Height: | Size: 220 KiB |
BIN
android/app/src/nightly/res/drawable-xxhdpi/branding.png
Normal file
After Width: | Height: | Size: 32 KiB |
After Width: | Height: | Size: 24 KiB |
BIN
android/app/src/nightly/res/drawable-xxhdpi/splash.png
Normal file
After Width: | Height: | Size: 96 KiB |
After Width: | Height: | Size: 20 KiB |
BIN
android/app/src/nightly/res/drawable-xxxhdpi/android12splash.png
Normal file
After Width: | Height: | Size: 213 KiB |
BIN
android/app/src/nightly/res/drawable-xxxhdpi/branding.png
Normal file
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 39 KiB |
BIN
android/app/src/nightly/res/drawable-xxxhdpi/splash.png
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
android/app/src/nightly/res/drawable/background.png
Normal file
After Width: | Height: | Size: 3.1 MiB |
12
android/app/src/nightly/res/drawable/launch_background.xml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||||
|
<item>
|
||||||
|
<bitmap android:gravity="fill" android:src="@drawable/background"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<bitmap android:gravity="center" android:src="@drawable/splash"/>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<bitmap android:gravity="bottom" android:src="@drawable/branding"/>
|
||||||
|
</item>
|
||||||
|
</layer-list>
|
@ -0,0 +1,5 @@
|
|||||||
|
<?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 android:drawable="@drawable/ic_launcher_foreground"/>
|
||||||
|
</adaptive-icon>
|
BIN
android/app/src/nightly/res/mipmap-hdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 7.0 KiB |
BIN
android/app/src/nightly/res/mipmap-mdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
android/app/src/nightly/res/mipmap-xhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.png
Normal file
After Width: | Height: | Size: 29 KiB |
23
android/app/src/nightly/res/values-night-v31/styles.xml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||||
|
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<item name="android:forceDarkAllowed">false</item>
|
||||||
|
<item name="android:windowFullscreen">false</item>
|
||||||
|
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
|
||||||
|
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||||
|
<item name="android:windowSplashScreenBackground">#000000</item>
|
||||||
|
<item name="android:windowSplashScreenBrandingImage">@drawable/android12branding</item>
|
||||||
|
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
|
||||||
|
<item name="android:windowSplashScreenIconBackgroundColor">#000000</item>
|
||||||
|
</style>
|
||||||
|
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||||
|
This theme determines the color of the Android Window while your
|
||||||
|
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||||
|
running.
|
||||||
|
|
||||||
|
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||||
|
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<item name="android:windowBackground">?android:colorBackground</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
22
android/app/src/nightly/res/values-night/styles.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||||
|
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<!-- Show a splash screen on the activity. Automatically removed when
|
||||||
|
the Flutter engine draws its first frame -->
|
||||||
|
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||||
|
<item name="android:forceDarkAllowed">false</item>
|
||||||
|
<item name="android:windowFullscreen">false</item>
|
||||||
|
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
|
||||||
|
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||||
|
</style>
|
||||||
|
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||||
|
This theme determines the color of the Android Window while your
|
||||||
|
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||||
|
running.
|
||||||
|
|
||||||
|
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||||
|
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||||
|
<item name="android:windowBackground">?android:colorBackground</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
23
android/app/src/nightly/res/values-v31/styles.xml
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||||
|
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||||
|
<item name="android:forceDarkAllowed">false</item>
|
||||||
|
<item name="android:windowFullscreen">false</item>
|
||||||
|
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
|
||||||
|
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||||
|
<item name="android:windowSplashScreenBackground">#000000</item>
|
||||||
|
<item name="android:windowSplashScreenBrandingImage">@drawable/android12branding</item>
|
||||||
|
<item name="android:windowSplashScreenAnimatedIcon">@drawable/android12splash</item>
|
||||||
|
<item name="android:windowSplashScreenIconBackgroundColor">#000000</item>
|
||||||
|
</style>
|
||||||
|
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||||
|
This theme determines the color of the Android Window while your
|
||||||
|
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||||
|
running.
|
||||||
|
|
||||||
|
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||||
|
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||||
|
<item name="android:windowBackground">?android:colorBackground</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
4
android/app/src/nightly/res/values/colors.xml
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<color name="ic_launcher_background">#242832</color>
|
||||||
|
</resources>
|
22
android/app/src/nightly/res/values/styles.xml
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<resources>
|
||||||
|
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||||
|
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||||
|
<!-- Show a splash screen on the activity. Automatically removed when
|
||||||
|
the Flutter engine draws its first frame -->
|
||||||
|
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||||
|
<item name="android:forceDarkAllowed">false</item>
|
||||||
|
<item name="android:windowFullscreen">false</item>
|
||||||
|
<item name="android:windowDrawsSystemBarBackgrounds">false</item>
|
||||||
|
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
|
||||||
|
</style>
|
||||||
|
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||||
|
This theme determines the color of the Android Window while your
|
||||||
|
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||||
|
running.
|
||||||
|
|
||||||
|
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||||
|
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||||
|
<item name="android:windowBackground">?android:colorBackground</item>
|
||||||
|
</style>
|
||||||
|
</resources>
|
BIN
assets/spotube-nightly-logo-foreground.jpg
Normal file
After Width: | Height: | Size: 39 KiB |
BIN
assets/spotube-nightly-logo.png
Normal file
After Width: | Height: | Size: 128 KiB |
359
assets/spotube-nightly-logo.svg
Normal file
@ -0,0 +1,359 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
viewBox="0 0 762 762"
|
||||||
|
version="1.1"
|
||||||
|
id="svg270"
|
||||||
|
sodipodi:docname="spotube-nightly-logo.svg"
|
||||||
|
inkscape:version="1.2.2 (b0a8486541, 2022-12-01)"
|
||||||
|
xml:space="preserve"
|
||||||
|
inkscape:export-filename="spotube-logo.png"
|
||||||
|
inkscape:export-xdpi="96"
|
||||||
|
inkscape:export-ydpi="96"
|
||||||
|
width="762"
|
||||||
|
height="762"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:bx="https://boxy-svg.com"><sodipodi:namedview
|
||||||
|
id="namedview272"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#000000"
|
||||||
|
borderopacity="0.25"
|
||||||
|
inkscape:showpageshadow="2"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pagecheckerboard="0"
|
||||||
|
inkscape:deskcolor="#d1d1d1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:zoom="0.26940768"
|
||||||
|
inkscape:cx="-413.87091"
|
||||||
|
inkscape:cy="562.34478"
|
||||||
|
inkscape:window-width="1518"
|
||||||
|
inkscape:window-height="1080"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="0"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
inkscape:current-layer="g236"
|
||||||
|
inkscape:lockguides="false"><inkscape:page
|
||||||
|
x="0"
|
||||||
|
y="0"
|
||||||
|
width="762"
|
||||||
|
height="762"
|
||||||
|
id="page3136" /><inkscape:page
|
||||||
|
x="640.44641"
|
||||||
|
y="132.29141"
|
||||||
|
width="89.999939"
|
||||||
|
height="89.999985"
|
||||||
|
id="page3138" /></sodipodi:namedview><defs
|
||||||
|
id="defs220"><linearGradient
|
||||||
|
id="linearGradient1211"><stop
|
||||||
|
offset="0.113"
|
||||||
|
style="stop-color:#ff4b4b;stop-opacity:1;"
|
||||||
|
id="stop1205" /><stop
|
||||||
|
offset="0.60799998"
|
||||||
|
style="stop-color:#d6a400;stop-opacity:1;"
|
||||||
|
id="stop1207" /><stop
|
||||||
|
offset="0.94400001"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
id="stop1209" /></linearGradient><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient5535"><stop
|
||||||
|
style="stop-color:#3b2100;stop-opacity:1;"
|
||||||
|
offset="0.25885531"
|
||||||
|
id="stop5531" /><stop
|
||||||
|
style="stop-color:#004256;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop5533" /></linearGradient><linearGradient
|
||||||
|
id="linearGradient2809"><stop
|
||||||
|
offset="0.113"
|
||||||
|
style="stop-color:#ff4b4b;stop-opacity:1;"
|
||||||
|
id="stop2803" /><stop
|
||||||
|
offset="0.60799998"
|
||||||
|
style="stop-color:#d6a400;stop-opacity:1;"
|
||||||
|
id="stop2805" /><stop
|
||||||
|
offset="0.94400001"
|
||||||
|
style="stop-color:#ffffff;stop-opacity:1;"
|
||||||
|
id="stop2807" /></linearGradient><linearGradient
|
||||||
|
id="linearGradient938"><stop
|
||||||
|
offset="0.113"
|
||||||
|
style="stop-color:#ff4b4b;stop-opacity:1;"
|
||||||
|
id="stop932" /><stop
|
||||||
|
offset="0.60799998"
|
||||||
|
style="stop-color:#d6a400;stop-opacity:1;"
|
||||||
|
id="stop934" /><stop
|
||||||
|
offset="0.94400001"
|
||||||
|
style="stop-color:#fffcf1;stop-opacity:1;"
|
||||||
|
id="stop936" /></linearGradient><radialGradient
|
||||||
|
id="gradient-2-0"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
cx="251.179"
|
||||||
|
cy="248.821"
|
||||||
|
r="241.45"
|
||||||
|
gradientTransform="translate(-1.768285,0.589104)"
|
||||||
|
xlink:href="#gradient-2" /><linearGradient
|
||||||
|
id="gradient-2"><stop
|
||||||
|
offset="0.841"
|
||||||
|
style="stop-color: rgb(255, 255, 255);"
|
||||||
|
id="stop169" /><stop
|
||||||
|
offset="1"
|
||||||
|
style="stop-color: rgb(201, 201, 201);"
|
||||||
|
id="stop171" /></linearGradient><filter
|
||||||
|
id="drop-shadow-filter-0"
|
||||||
|
x="-0.050892502"
|
||||||
|
y="-0.050892502"
|
||||||
|
width="1.1017849"
|
||||||
|
height="1.1017849"
|
||||||
|
bx:preset="drop-shadow 1 0 0 10 0.42 rgba(201,201,201,1)"><feGaussianBlur
|
||||||
|
in="SourceAlpha"
|
||||||
|
stdDeviation="10"
|
||||||
|
id="feGaussianBlur174" /><feOffset
|
||||||
|
dx="0"
|
||||||
|
dy="0"
|
||||||
|
id="feOffset176" /><feComponentTransfer
|
||||||
|
result="offsetblur"
|
||||||
|
id="feComponentTransfer179"><feFuncA
|
||||||
|
id="spread-ctrl"
|
||||||
|
type="linear"
|
||||||
|
slope="0.84" /></feComponentTransfer><feFlood
|
||||||
|
flood-color="rgba(201,201,201,1)"
|
||||||
|
id="feFlood181" /><feComposite
|
||||||
|
in2="offsetblur"
|
||||||
|
operator="in"
|
||||||
|
id="feComposite183" /><feMerge
|
||||||
|
id="feMerge189"><feMergeNode
|
||||||
|
id="feMergeNode185" /><feMergeNode
|
||||||
|
in="SourceGraphic"
|
||||||
|
id="feMergeNode187" /></feMerge></filter><linearGradient
|
||||||
|
id="gradient-4-3"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="47.146"
|
||||||
|
y1="18.044001"
|
||||||
|
x2="47.146"
|
||||||
|
y2="75.353996"
|
||||||
|
xlink:href="#gradient-4" /><linearGradient
|
||||||
|
id="gradient-4"><stop
|
||||||
|
offset="0.113"
|
||||||
|
style="stop-color: rgb(83, 240, 111);"
|
||||||
|
id="stop193" /><stop
|
||||||
|
offset="0.608"
|
||||||
|
style="stop-color: rgb(0, 177, 86);"
|
||||||
|
id="stop195" /><stop
|
||||||
|
offset="0.944"
|
||||||
|
style="stop-color: rgb(2, 167, 156);"
|
||||||
|
id="stop197" /></linearGradient><filter
|
||||||
|
id="inner-shadow-filter-0"
|
||||||
|
x="-0.064836091"
|
||||||
|
y="-0.071329232"
|
||||||
|
width="1.1296722"
|
||||||
|
height="1.108079"
|
||||||
|
bx:preset="inner-shadow 1 0 0 4 0.5 rgba(0,0,0,0.7)"><feOffset
|
||||||
|
dx="0"
|
||||||
|
dy="0"
|
||||||
|
id="feOffset200" /><feGaussianBlur
|
||||||
|
stdDeviation="4"
|
||||||
|
id="feGaussianBlur202"
|
||||||
|
result="result1" /><feComposite
|
||||||
|
operator="out"
|
||||||
|
in="SourceGraphic"
|
||||||
|
in2="result1"
|
||||||
|
id="feComposite204" /><feComponentTransfer
|
||||||
|
result="choke"
|
||||||
|
id="feComponentTransfer208"><feFuncA
|
||||||
|
type="linear"
|
||||||
|
slope="1"
|
||||||
|
id="feFuncA206" /></feComponentTransfer><feFlood
|
||||||
|
flood-color="rgba(0,0,0,0.7)"
|
||||||
|
result="color"
|
||||||
|
id="feFlood210" /><feComposite
|
||||||
|
operator="in"
|
||||||
|
in="color"
|
||||||
|
in2="choke"
|
||||||
|
result="shadow"
|
||||||
|
id="feComposite212" /><feComposite
|
||||||
|
operator="over"
|
||||||
|
in="shadow"
|
||||||
|
in2="SourceGraphic"
|
||||||
|
id="feComposite214" /></filter><linearGradient
|
||||||
|
id="gradient-4-1"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="82.026001"
|
||||||
|
y1="144.832"
|
||||||
|
x2="82.026001"
|
||||||
|
y2="264.46201"
|
||||||
|
xlink:href="#linearGradient2809"
|
||||||
|
gradientTransform="translate(7.2213312)" /><linearGradient
|
||||||
|
id="gradient-4-2"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="143.69299"
|
||||||
|
y1="22.804001"
|
||||||
|
x2="143.69299"
|
||||||
|
y2="264.582"
|
||||||
|
xlink:href="#linearGradient938" /><linearGradient
|
||||||
|
id="gradient-4-0"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="205.862"
|
||||||
|
y1="146.28"
|
||||||
|
x2="205.862"
|
||||||
|
y2="265.91"
|
||||||
|
xlink:href="#gradient-4"
|
||||||
|
gradientTransform="translate(-7.2213312)" /><filter
|
||||||
|
style="color-interpolation-filters:sRGB"
|
||||||
|
inkscape:label="Drop Shadow"
|
||||||
|
id="filter2000"
|
||||||
|
x="-0.3425389"
|
||||||
|
y="-0.3425389"
|
||||||
|
width="1.6850778"
|
||||||
|
height="1.6850778"><feFlood
|
||||||
|
flood-opacity="1"
|
||||||
|
flood-color="rgb(0,0,0)"
|
||||||
|
result="flood"
|
||||||
|
id="feFlood1990" /><feComposite
|
||||||
|
in="flood"
|
||||||
|
in2="SourceGraphic"
|
||||||
|
operator="out"
|
||||||
|
result="composite1"
|
||||||
|
id="feComposite1992" /><feGaussianBlur
|
||||||
|
in="composite1"
|
||||||
|
stdDeviation="29.980818"
|
||||||
|
result="blur"
|
||||||
|
id="feGaussianBlur1994" /><feOffset
|
||||||
|
dx="0"
|
||||||
|
dy="0"
|
||||||
|
result="offset"
|
||||||
|
id="feOffset1996" /><feComposite
|
||||||
|
in="offset"
|
||||||
|
in2="SourceGraphic"
|
||||||
|
operator="atop"
|
||||||
|
result="fbSourceGraphic"
|
||||||
|
id="feComposite1998" /><feColorMatrix
|
||||||
|
result="fbSourceGraphicAlpha"
|
||||||
|
in="fbSourceGraphic"
|
||||||
|
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||||
|
id="feColorMatrix2062" /><feFlood
|
||||||
|
id="feFlood2064"
|
||||||
|
flood-opacity="1"
|
||||||
|
flood-color="rgb(0,0,0)"
|
||||||
|
result="flood"
|
||||||
|
in="fbSourceGraphic" /><feComposite
|
||||||
|
in2="fbSourceGraphic"
|
||||||
|
id="feComposite2066"
|
||||||
|
in="flood"
|
||||||
|
operator="out"
|
||||||
|
result="composite1" /><feGaussianBlur
|
||||||
|
id="feGaussianBlur2068"
|
||||||
|
in="composite1"
|
||||||
|
stdDeviation="28.6433"
|
||||||
|
result="blur" /><feOffset
|
||||||
|
id="feOffset2070"
|
||||||
|
dx="0"
|
||||||
|
dy="0"
|
||||||
|
result="offset" /><feComposite
|
||||||
|
in2="fbSourceGraphic"
|
||||||
|
id="feComposite2072"
|
||||||
|
in="offset"
|
||||||
|
operator="atop"
|
||||||
|
result="fbSourceGraphic" /><feColorMatrix
|
||||||
|
result="fbSourceGraphicAlpha"
|
||||||
|
in="fbSourceGraphic"
|
||||||
|
values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
|
||||||
|
id="feColorMatrix3393" /><feFlood
|
||||||
|
id="feFlood3395"
|
||||||
|
flood-opacity="0.352941"
|
||||||
|
flood-color="rgb(0,0,0)"
|
||||||
|
result="flood"
|
||||||
|
in="fbSourceGraphic" /><feComposite
|
||||||
|
in2="fbSourceGraphic"
|
||||||
|
id="feComposite3397"
|
||||||
|
in="flood"
|
||||||
|
operator="in"
|
||||||
|
result="composite1" /><feGaussianBlur
|
||||||
|
id="feGaussianBlur3399"
|
||||||
|
in="composite1"
|
||||||
|
stdDeviation="6.59891"
|
||||||
|
result="blur" /><feOffset
|
||||||
|
id="feOffset3401"
|
||||||
|
dx="0"
|
||||||
|
dy="0"
|
||||||
|
result="offset" /><feComposite
|
||||||
|
in2="offset"
|
||||||
|
id="feComposite3403"
|
||||||
|
in="fbSourceGraphic"
|
||||||
|
operator="over"
|
||||||
|
result="composite2" /></filter><linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient1211"
|
||||||
|
id="linearGradient5506"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="translate(117.34662)"
|
||||||
|
x1="82.026001"
|
||||||
|
y1="144.832"
|
||||||
|
x2="82.026001"
|
||||||
|
y2="264.46201" /><radialGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient5535"
|
||||||
|
id="radialGradient5537"
|
||||||
|
cx="143.6935"
|
||||||
|
cy="143.69299"
|
||||||
|
fx="143.6935"
|
||||||
|
fy="143.69299"
|
||||||
|
r="152.72653"
|
||||||
|
gradientTransform="matrix(1,0,0,0.8506841,0,21.45565)"
|
||||||
|
gradientUnits="userSpaceOnUse" /></defs><circle
|
||||||
|
style="opacity:1;fill:#242832;fill-opacity:1;stroke:#000000;stroke-width:10;stroke-dasharray:none;stroke-opacity:0.961795;filter:url(#filter2000)"
|
||||||
|
id="path1157"
|
||||||
|
cx="381.48901"
|
||||||
|
cy="381.48901"
|
||||||
|
inkscape:label="path1157"
|
||||||
|
r="235.79112"
|
||||||
|
sodipodi:insensitive="true" /><g
|
||||||
|
transform="matrix(0.319972,0,0,0.323174,379.08153,437.03375)"
|
||||||
|
id="g228"><g
|
||||||
|
style="opacity:1;fill:none;fill-rule:nonzero;stroke:none;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none"
|
||||||
|
transform="matrix(3.89,0,0,3.89,-175.05,-175.05)"
|
||||||
|
id="g226" /></g><g
|
||||||
|
id="g236"
|
||||||
|
style="fill:none;filter:url(#inner-shadow-filter-0)"
|
||||||
|
transform="matrix(1.107829,0,0,1.106267,221.95533,199.03714)"><path
|
||||||
|
d="m 78.642332,155.437 v 98.42 c 0,5.867 4.741,10.605 10.605,10.605 5.854,0 10.604995,-4.738 10.604995,-10.605 v -98.42 c 0,-5.856 -4.750995,-10.605 -10.604995,-10.605 -5.864,0 -10.605,4.744 -10.605,10.605 z"
|
||||||
|
style="fill:none;fill-opacity:1;stroke:url(#gradient-4-1);stroke-width:9.80924px;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path230" /><path
|
||||||
|
d="m 29.456,264.582 h 23.351 v -116.85 c 0.064,-0.56 0.166,-1.119 0.166,-1.693 0,-50.412 40.69,-91.42 90.698,-91.42 50.002,0 90.692,41.008 90.692,91.42 0,0.771 0.113,1.518 0.228,2.263 v 116.28 h 23.354 c 16.254,0 29.442,-13.64 29.442,-30.469 v -60.936 c 0,-13.878 -8.989,-25.57 -21.261,-29.249 C 264.997,76.957 210.518,22.804 143.676,22.804 76.816,22.804 22.329,76.962 21.211,143.954 8.956,147.638 0,159.32 0,173.187 v 60.926 c 0,16.819 13.187,30.469 29.456,30.469 z"
|
||||||
|
style="fill:url(#radialGradient5537);fill-opacity:1;stroke:url(#gradient-4-2);stroke-width:18.0661;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none"
|
||||||
|
id="path232" /><path
|
||||||
|
d="M 49.735541,279.35822 C 23.7214,267.48486 38.122112,248.62719 80.85964,237.45225 c 14.400662,-3.49216 25.08508,-5.12184 43.66659,-4.88901 11.61348,0.23282 24.62053,3.49216 24.62053,3.49216 0,-42.13877 -0.46471,-121.7601 -0.46471,-160.872338 4.6454,0 7.89719,-0.232827 14.40071,-0.232827 0,2.328107 0,4.190613 0,6.053093 0,2.095305 0,3.259358 0.46471,4.656212 4.6454,14.66709 11.14893,20.48736 43.66659,38.41381 41.34392,23.04827 53.42195,36.78411 53.42195,55.17616 -0.46471,17.22802 -30.65954,54.01213 -37.16306,52.61528 9.29075,-13.03741 22.2978,-27.00606 25.54958,-38.64661 4.18085,-14.20147 -7.43263,-34.2232 -26.01414,-44.69971 -14.86522,-8.8468 -50.17016,-16.52957 -59.92547,-16.52957 0,0 -0.46472,84.74317 -0.46472,116.87109 0,5.35464 -9.7553,14.89989 -15.32977,18.15925 -25.54958,15.36551 -75.25519,22.34984 -97.553043,12.33896 z"
|
||||||
|
id="path3079"
|
||||||
|
style="stroke-width:3.28861" /><path
|
||||||
|
d="m 188.76763,155.437 v 98.42 c 0,5.867 4.741,10.605 10.60501,10.605 5.854,0 10.605,-4.738 10.605,-10.605 v -98.42 c 0,-5.856 -4.751,-10.605 -10.605,-10.605 -5.86401,0 -10.60501,4.744 -10.60501,10.605 z"
|
||||||
|
style="fill:none;stroke:url(#linearGradient5506);stroke-width:9.80924px;stroke-linecap:round;stroke-linejoin:round"
|
||||||
|
id="path5502" /></g><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g240" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g242" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g244" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g246" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g248" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g250" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g252" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g254" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g256" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g258" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g260" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g262" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g264" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g266" /><g
|
||||||
|
transform="matrix(0.972684,0,0,0.972684,193.06382,142.14148)"
|
||||||
|
id="g268" /></svg>
|
After Width: | Height: | Size: 14 KiB |
BIN
assets/spotube-nightly-logo_android12.png
Normal file
After Width: | Height: | Size: 295 KiB |
5
flutter_launcher_icons-nightly.yaml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
flutter_launcher_icons:
|
||||||
|
android: true
|
||||||
|
image_path: "assets/spotube-nightly-logo.png"
|
||||||
|
adaptive_icon_foreground: "assets/spotube-nightly-logo-foreground.jpg"
|
||||||
|
adaptive_icon_background: "#242832"
|
9
flutter_native_splash-nightly.yaml
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
flutter_native_splash:
|
||||||
|
background_image: assets/bengali-patterns-bg.jpg
|
||||||
|
image: assets/spotube-nightly-logo.png
|
||||||
|
branding: assets/branding.png
|
||||||
|
android_12:
|
||||||
|
image: assets/spotube-nightly-logo_android12.png
|
||||||
|
branding: assets/branding.png
|
||||||
|
color: "#000000"
|
||||||
|
icon_background_color: "#000000"
|
BIN
ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage.png
vendored
Normal file
After Width: | Height: | Size: 3.9 KiB |
BIN
ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage@2x.png
vendored
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage@3x.png
vendored
Normal file
After Width: | Height: | Size: 32 KiB |
23
ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "BrandingImage.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "BrandingImage@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "BrandingImage@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
21
ios/Runner/Assets.xcassets/LaunchBackgroundNightly.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "background.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
ios/Runner/Assets.xcassets/LaunchBackgroundNightly.imageset/background.png
vendored
Normal file
After Width: | Height: | Size: 3.1 MiB |
23
ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/Contents.json
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "LaunchImage.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "LaunchImage@2x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"filename" : "LaunchImage@3x.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
BIN
ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage.png
vendored
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage@2x.png
vendored
Normal file
After Width: | Height: | Size: 48 KiB |
BIN
ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage@3x.png
vendored
Normal file
After Width: | Height: | Size: 96 KiB |
48
ios/Runner/Base.lproj/LaunchScreenNightly.storyboard
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="12121" systemVersion="16G29" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
|
||||||
|
<dependencies>
|
||||||
|
<deployment identifier="iOS"/>
|
||||||
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="12089"/>
|
||||||
|
</dependencies>
|
||||||
|
<scenes>
|
||||||
|
<!--View Controller-->
|
||||||
|
<scene sceneID="EHf-IW-A2E">
|
||||||
|
<objects>
|
||||||
|
<viewController id="01J-lp-oVM" sceneMemberID="viewController">
|
||||||
|
<layoutGuides>
|
||||||
|
<viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
|
||||||
|
<viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
|
||||||
|
</layoutGuides>
|
||||||
|
<view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
|
||||||
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
|
<subviews>
|
||||||
|
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" image="LaunchBackgroundNightly" translatesAutoresizingMaskIntoConstraints="NO" id="tWc-Dq-wcI"/>
|
||||||
|
<imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImageNightly" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4"></imageView>
|
||||||
|
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleToFill" image="BrandingImageNightly" translatesAutoresizingMaskIntoConstraints="NO" id="Uyq-Kz-ftE"/>
|
||||||
|
</subviews>
|
||||||
|
<color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
|
<constraints>
|
||||||
|
<constraint firstAttribute="bottom" secondItem="Uyq-Kz-ftE" secondAttribute="bottom" id="8Yb-q4-8bl"/>
|
||||||
|
<constraint firstItem="Uyq-Kz-ftE" firstAttribute="centerX" secondItem="YRO-k0-Ey4" secondAttribute="centerX" id="3kg-TC-cPP"/>
|
||||||
|
<constraint firstItem="YRO-k0-Ey4" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="3T2-ad-Qdv"/>
|
||||||
|
<constraint firstItem="tWc-Dq-wcI" firstAttribute="bottom" secondItem="Ze5-6b-2t3" secondAttribute="bottom" id="RPx-PI-7Xg"/>
|
||||||
|
<constraint firstItem="tWc-Dq-wcI" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="SdS-ul-q2q"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="tWc-Dq-wcI" secondAttribute="trailing" id="Swv-Gf-Rwn"/>
|
||||||
|
<constraint firstAttribute="trailing" secondItem="YRO-k0-Ey4" secondAttribute="trailing" id="TQA-XW-tRk"/>
|
||||||
|
<constraint firstItem="YRO-k0-Ey4" firstAttribute="bottom" secondItem="Ze5-6b-2t3" secondAttribute="bottom" id="duK-uY-Gun"/>
|
||||||
|
<constraint firstItem="tWc-Dq-wcI" firstAttribute="leading" secondItem="Ze5-6b-2t3" secondAttribute="leading" id="kV7-tw-vXt"/>
|
||||||
|
<constraint firstItem="YRO-k0-Ey4" firstAttribute="top" secondItem="Ze5-6b-2t3" secondAttribute="top" id="xPn-NY-SIU"/>
|
||||||
|
</constraints>
|
||||||
|
</view>
|
||||||
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
|
</objects>
|
||||||
|
<point key="canvasLocation" x="53" y="375"/>
|
||||||
|
</scene>
|
||||||
|
</scenes>
|
||||||
|
<resources>
|
||||||
|
<image name="LaunchImageNightly" width="509" height="509"/>
|
||||||
|
<image name="LaunchBackgroundNightly" width="1" height="1"/>
|
||||||
|
<image name="BrandingImageNightly" width="1" height="1"/>
|
||||||
|
</resources>
|
||||||
|
</document>
|
@ -1,64 +1,64 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict>
|
<dict>
|
||||||
<key>CFBundleDevelopmentRegion</key>
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>Sptube</string>
|
<string>Sptube</string>
|
||||||
<key>CFBundleExecutable</key>
|
<key>CFBundleExecutable</key>
|
||||||
<string>$(EXECUTABLE_NAME)</string>
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
<key>CFBundleInfoDictionaryVersion</key>
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
<string>6.0</string>
|
<string>6.0</string>
|
||||||
<key>CFBundleName</key>
|
<key>CFBundleName</key>
|
||||||
<string>spotube</string>
|
<string>spotube</string>
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>$(FLUTTER_BUILD_NAME)</string>
|
<string>$(FLUTTER_BUILD_NAME)</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true />
|
<true/>
|
||||||
<key>UILaunchStoryboardName</key>
|
<key>UILaunchStoryboardName</key>
|
||||||
<string>LaunchScreen</string>
|
<string>LaunchScreen</string>
|
||||||
<key>UIMainStoryboardFile</key>
|
<key>UIMainStoryboardFile</key>
|
||||||
<string>Main</string>
|
<string>Main</string>
|
||||||
<key>UISupportedInterfaceOrientations</key>
|
<key>UISupportedInterfaceOrientations</key>
|
||||||
<array>
|
<array>
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||||
<array>
|
<array>
|
||||||
<string>UIInterfaceOrientationPortrait</string>
|
<string>UIInterfaceOrientationPortrait</string>
|
||||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||||
<true />
|
<true/>
|
||||||
<key>NSAppTransportSecurity</key>
|
<key>NSAppTransportSecurity</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSAllowsArbitraryLoads</key>
|
<key>NSAllowsArbitraryLoads</key>
|
||||||
<true />
|
<true/>
|
||||||
<key>NSAllowsArbitraryLoadsForMedia</key>
|
<key>NSAllowsArbitraryLoadsForMedia</key>
|
||||||
<true />
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||||
<true />
|
<true/>
|
||||||
<key>UIStatusBarHidden</key>
|
<key>UIStatusBarHidden</key>
|
||||||
<false />
|
<false/>
|
||||||
<key>NSPhotoLibraryUsageDescription</key>
|
<key>NSPhotoLibraryUsageDescription</key>
|
||||||
<string>This app require access to the photo library</string>
|
<string>This app require access to the photo library</string>
|
||||||
<key>NSCameraUsageDescription</key>
|
<key>NSCameraUsageDescription</key>
|
||||||
<string>This app require access to the device camera</string>
|
<string>This app require access to the device camera</string>
|
||||||
<key>NSMicrophoneUsageDescription</key>
|
<key>NSMicrophoneUsageDescription</key>
|
||||||
<string>This app does not require access to the device microphone</string>
|
<string>This app does not require access to the device microphone</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
@ -131,7 +131,7 @@ flutter:
|
|||||||
- assets/tutorial/
|
- assets/tutorial/
|
||||||
- LICENSE
|
- LICENSE
|
||||||
|
|
||||||
flutter_icons:
|
flutter_launcher_icons:
|
||||||
android: true
|
android: true
|
||||||
image_path: "assets/spotube-logo.png"
|
image_path: "assets/spotube-logo.png"
|
||||||
adaptive_icon_foreground: "assets/spotube-logo-foreground.jpg"
|
adaptive_icon_foreground: "assets/spotube-logo-foreground.jpg"
|
||||||
|