diff --git a/.github/workflows/spotube-release-binary.yml b/.github/workflows/spotube-release-binary.yml index 4b5196ced..ca10dc92c 100644 --- a/.github/workflows/spotube-release-binary.yml +++ b/.github/workflows/spotube-release-binary.yml @@ -235,10 +235,8 @@ jobs: - name: Build Apk run: | - flutter build apk - flutter build appbundle - 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 + flutter build apk --flavor ${{ inputs.channel }} + mv build/app/outputs/flutter-apk/app-${{ inputs.channel }}-release.apk build/Spotube-android-all-arch.apk - name: Build Playstore AppBundle run: | @@ -247,8 +245,8 @@ jobs: export MANIFEST=android/app/src/main/AndroidManifest.xml xmlstarlet ed -d '//meta-data[@android:name="com.google.android.gms.car.application"]' $MANIFEST > $MANIFEST.tmp mv $MANIFEST.tmp $MANIFEST - flutter build appbundle - mv build/app/outputs/bundle/release/app-release.aab build/Spotube-playstore-all-arch.aab + flutter build appbundle --flavor ${{ inputs.channel }} + 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 if: ${{ failure() && inputs.debug && inputs.channel == 'nightly' }} diff --git a/.vscode/launch.json b/.vscode/launch.json index 3c8209ffe..0cb15ab82 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -5,7 +5,11 @@ "name": "spotube", "type": "dart", "request": "launch", - "program": "lib/main.dart" + "program": "lib/main.dart", + "args": [ + "--flavor", + "nightly" + ] }, { "name": "spotube (profile)", diff --git a/.vscode/settings.json b/.vscode/settings.json index c12c492a2..32bb8520f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,7 +13,7 @@ "editor.formatOnSave": true, "explorer.fileNesting.enabled": true, "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", } } \ No newline at end of file diff --git a/android/app/build.gradle b/android/app/build.gradle index d05a90a1b..97a3190d9 100644 --- a/android/app/build.gradle +++ b/android/app/build.gradle @@ -72,6 +72,22 @@ android { 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 { @@ -92,4 +108,4 @@ dependencies { // other deps so just ignore implementation 'com.android.support:multidex:2.0.1' -} +} \ No newline at end of file diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 7891310de..bfb512269 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -18,7 +18,7 @@ + + + + + + + + + + + diff --git a/android/app/src/nightly/res/drawable-xhdpi-v31/android12branding.png b/android/app/src/nightly/res/drawable-xhdpi-v31/android12branding.png new file mode 100644 index 000000000..0bcf138d3 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xhdpi-v31/android12branding.png differ diff --git a/android/app/src/nightly/res/drawable-xhdpi/android12splash.png b/android/app/src/nightly/res/drawable-xhdpi/android12splash.png new file mode 100644 index 000000000..ad3f39d05 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xhdpi/android12splash.png differ diff --git a/android/app/src/nightly/res/drawable-xhdpi/branding.png b/android/app/src/nightly/res/drawable-xhdpi/branding.png new file mode 100644 index 000000000..0bcf138d3 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xhdpi/branding.png differ diff --git a/android/app/src/nightly/res/drawable-xhdpi/ic_launcher_foreground.png b/android/app/src/nightly/res/drawable-xhdpi/ic_launcher_foreground.png new file mode 100644 index 000000000..4cf86d250 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/nightly/res/drawable-xhdpi/splash.png b/android/app/src/nightly/res/drawable-xhdpi/splash.png new file mode 100644 index 000000000..dbb0ea02e Binary files /dev/null and b/android/app/src/nightly/res/drawable-xhdpi/splash.png differ diff --git a/android/app/src/nightly/res/drawable-xxhdpi-v31/android12branding.png b/android/app/src/nightly/res/drawable-xxhdpi-v31/android12branding.png new file mode 100644 index 000000000..c7d017768 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxhdpi-v31/android12branding.png differ diff --git a/android/app/src/nightly/res/drawable-xxhdpi/android12splash.png b/android/app/src/nightly/res/drawable-xxhdpi/android12splash.png new file mode 100644 index 000000000..133fb6477 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxhdpi/android12splash.png differ diff --git a/android/app/src/nightly/res/drawable-xxhdpi/branding.png b/android/app/src/nightly/res/drawable-xxhdpi/branding.png new file mode 100644 index 000000000..c7d017768 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxhdpi/branding.png differ diff --git a/android/app/src/nightly/res/drawable-xxhdpi/ic_launcher_foreground.png b/android/app/src/nightly/res/drawable-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 000000000..95fa3443e Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/nightly/res/drawable-xxhdpi/splash.png b/android/app/src/nightly/res/drawable-xxhdpi/splash.png new file mode 100644 index 000000000..12eb55311 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxhdpi/splash.png differ diff --git a/android/app/src/nightly/res/drawable-xxxhdpi-v31/android12branding.png b/android/app/src/nightly/res/drawable-xxxhdpi-v31/android12branding.png new file mode 100644 index 000000000..5477b7994 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxxhdpi-v31/android12branding.png differ diff --git a/android/app/src/nightly/res/drawable-xxxhdpi/android12splash.png b/android/app/src/nightly/res/drawable-xxxhdpi/android12splash.png new file mode 100644 index 000000000..fa5a8c92f Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxxhdpi/android12splash.png differ diff --git a/android/app/src/nightly/res/drawable-xxxhdpi/branding.png b/android/app/src/nightly/res/drawable-xxxhdpi/branding.png new file mode 100644 index 000000000..5477b7994 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxxhdpi/branding.png differ diff --git a/android/app/src/nightly/res/drawable-xxxhdpi/ic_launcher_foreground.png b/android/app/src/nightly/res/drawable-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 000000000..3de8a2ee4 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxxhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/nightly/res/drawable-xxxhdpi/splash.png b/android/app/src/nightly/res/drawable-xxxhdpi/splash.png new file mode 100644 index 000000000..68e806f42 Binary files /dev/null and b/android/app/src/nightly/res/drawable-xxxhdpi/splash.png differ diff --git a/android/app/src/nightly/res/drawable/background.png b/android/app/src/nightly/res/drawable/background.png new file mode 100644 index 000000000..203fc77ac Binary files /dev/null and b/android/app/src/nightly/res/drawable/background.png differ diff --git a/android/app/src/nightly/res/drawable/launch_background.xml b/android/app/src/nightly/res/drawable/launch_background.xml new file mode 100644 index 000000000..52e8749e0 --- /dev/null +++ b/android/app/src/nightly/res/drawable/launch_background.xml @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/android/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher.xml b/android/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 000000000..5f349f7f4 --- /dev/null +++ b/android/app/src/nightly/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/android/app/src/nightly/res/mipmap-hdpi/ic_launcher.png b/android/app/src/nightly/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..a826bb738 Binary files /dev/null and b/android/app/src/nightly/res/mipmap-hdpi/ic_launcher.png differ diff --git a/android/app/src/nightly/res/mipmap-mdpi/ic_launcher.png b/android/app/src/nightly/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..3743861d8 Binary files /dev/null and b/android/app/src/nightly/res/mipmap-mdpi/ic_launcher.png differ diff --git a/android/app/src/nightly/res/mipmap-xhdpi/ic_launcher.png b/android/app/src/nightly/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..1be1daa7a Binary files /dev/null and b/android/app/src/nightly/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.png b/android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..3a8a78322 Binary files /dev/null and b/android/app/src/nightly/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.png b/android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..781c9c1a8 Binary files /dev/null and b/android/app/src/nightly/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/android/app/src/nightly/res/values-night-v31/styles.xml b/android/app/src/nightly/res/values-night-v31/styles.xml new file mode 100644 index 000000000..969808355 --- /dev/null +++ b/android/app/src/nightly/res/values-night-v31/styles.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/android/app/src/nightly/res/values-night/styles.xml b/android/app/src/nightly/res/values-night/styles.xml new file mode 100644 index 000000000..dbc9ea9f1 --- /dev/null +++ b/android/app/src/nightly/res/values-night/styles.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/android/app/src/nightly/res/values-v31/styles.xml b/android/app/src/nightly/res/values-v31/styles.xml new file mode 100644 index 000000000..981a07a95 --- /dev/null +++ b/android/app/src/nightly/res/values-v31/styles.xml @@ -0,0 +1,23 @@ + + + + + + + diff --git a/android/app/src/nightly/res/values/colors.xml b/android/app/src/nightly/res/values/colors.xml new file mode 100644 index 000000000..88247a21e --- /dev/null +++ b/android/app/src/nightly/res/values/colors.xml @@ -0,0 +1,4 @@ + + + #242832 + \ No newline at end of file diff --git a/android/app/src/nightly/res/values/styles.xml b/android/app/src/nightly/res/values/styles.xml new file mode 100644 index 000000000..0d1fa8fce --- /dev/null +++ b/android/app/src/nightly/res/values/styles.xml @@ -0,0 +1,22 @@ + + + + + + + diff --git a/assets/spotube-nightly-logo-foreground.jpg b/assets/spotube-nightly-logo-foreground.jpg new file mode 100644 index 000000000..a0c849b62 Binary files /dev/null and b/assets/spotube-nightly-logo-foreground.jpg differ diff --git a/assets/spotube-nightly-logo.png b/assets/spotube-nightly-logo.png new file mode 100644 index 000000000..ea7a8b20c Binary files /dev/null and b/assets/spotube-nightly-logo.png differ diff --git a/assets/spotube-nightly-logo.svg b/assets/spotube-nightly-logo.svg new file mode 100644 index 000000000..7601108e3 --- /dev/null +++ b/assets/spotube-nightly-logo.svg @@ -0,0 +1,359 @@ + + diff --git a/assets/spotube-nightly-logo_android12.png b/assets/spotube-nightly-logo_android12.png new file mode 100644 index 000000000..1a5bf4f1f Binary files /dev/null and b/assets/spotube-nightly-logo_android12.png differ diff --git a/flutter_launcher_icons-nightly.yaml b/flutter_launcher_icons-nightly.yaml new file mode 100644 index 000000000..e531efd48 --- /dev/null +++ b/flutter_launcher_icons-nightly.yaml @@ -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" diff --git a/flutter_native_splash-nightly.yaml b/flutter_native_splash-nightly.yaml new file mode 100644 index 000000000..37da37d97 --- /dev/null +++ b/flutter_native_splash-nightly.yaml @@ -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" diff --git a/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage.png b/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage.png new file mode 100644 index 000000000..805799834 Binary files /dev/null and b/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage.png differ diff --git a/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage@2x.png b/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage@2x.png new file mode 100644 index 000000000..0bcf138d3 Binary files /dev/null and b/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage@2x.png differ diff --git a/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage@3x.png b/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage@3x.png new file mode 100644 index 000000000..c7d017768 Binary files /dev/null and b/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/BrandingImage@3x.png differ diff --git a/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/Contents.json b/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/Contents.json new file mode 100644 index 000000000..127122756 --- /dev/null +++ b/ios/Runner/Assets.xcassets/BrandingImageNightly.imageset/Contents.json @@ -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 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchBackgroundNightly.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchBackgroundNightly.imageset/Contents.json new file mode 100644 index 000000000..9f447e1b3 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchBackgroundNightly.imageset/Contents.json @@ -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 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchBackgroundNightly.imageset/background.png b/ios/Runner/Assets.xcassets/LaunchBackgroundNightly.imageset/background.png new file mode 100644 index 000000000..203fc77ac Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchBackgroundNightly.imageset/background.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/Contents.json new file mode 100644 index 000000000..00cabce83 --- /dev/null +++ b/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/Contents.json @@ -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 + } +} diff --git a/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage.png new file mode 100644 index 000000000..86d3fe748 Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage@2x.png new file mode 100644 index 000000000..dbb0ea02e Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage@2x.png differ diff --git a/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage@3x.png new file mode 100644 index 000000000..12eb55311 Binary files /dev/null and b/ios/Runner/Assets.xcassets/LaunchImageNightly.imageset/LaunchImage@3x.png differ diff --git a/ios/Runner/Base.lproj/LaunchScreenNightly.storyboard b/ios/Runner/Base.lproj/LaunchScreenNightly.storyboard new file mode 100644 index 000000000..6869214f2 --- /dev/null +++ b/ios/Runner/Base.lproj/LaunchScreenNightly.storyboard @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 1f0a5e62b..d8b46b96c 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -1,64 +1,64 @@ - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleDisplayName - Sptube - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - spotube - CFBundlePackageType - APPL - CFBundleShortVersionString - $(FLUTTER_BUILD_NAME) - CFBundleSignature - ???? - CFBundleVersion - $(FLUTTER_BUILD_NUMBER) - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UIViewControllerBasedStatusBarAppearance - - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - NSAllowsArbitraryLoadsForMedia - - - CADisableMinimumFrameDurationOnPhone - - UIStatusBarHidden - - NSPhotoLibraryUsageDescription - This app require access to the photo library - NSCameraUsageDescription - This app require access to the device camera - NSMicrophoneUsageDescription - This app does not require access to the device microphone - - \ No newline at end of file + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleDisplayName + Sptube + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + spotube + CFBundlePackageType + APPL + CFBundleShortVersionString + $(FLUTTER_BUILD_NAME) + CFBundleSignature + ???? + CFBundleVersion + $(FLUTTER_BUILD_NUMBER) + LSRequiresIPhoneOS + + UILaunchStoryboardName + LaunchScreen + UIMainStoryboardFile + Main + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UIViewControllerBasedStatusBarAppearance + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + NSAllowsArbitraryLoadsForMedia + + + CADisableMinimumFrameDurationOnPhone + + UIStatusBarHidden + + NSPhotoLibraryUsageDescription + This app require access to the photo library + NSCameraUsageDescription + This app require access to the device camera + NSMicrophoneUsageDescription + This app does not require access to the device microphone + + diff --git a/pubspec.yaml b/pubspec.yaml index 7138bcafc..371d345b9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -131,7 +131,7 @@ flutter: - assets/tutorial/ - LICENSE -flutter_icons: +flutter_launcher_icons: android: true image_path: "assets/spotube-logo.png" adaptive_icon_foreground: "assets/spotube-logo-foreground.jpg"