Skip to content

Commit 9094391

Browse files
committed
Remove flutter_lyric dependency from pubspec.yaml and pubspec.lock
1 parent 5dc5877 commit 9094391

32 files changed

Lines changed: 1520 additions & 1077 deletions

.github/workflows/release.yml

Lines changed: 3 additions & 179 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ on:
1717
jobs:
1818

1919
# ── Shared Flutter + pub setup (Ubuntu) ───────────────────────────────────
20-
# build-android and build-linux both run on ubuntu-latest and share this cache.
20+
# build-android runs on ubuntu-latest and uses this cache.
2121
prepare-ubuntu:
2222
name: Flutter setup (ubuntu)
2323
runs-on: ubuntu-latest
@@ -40,7 +40,7 @@ jobs:
4040
- run: flutter pub get
4141

4242
# ── Shared Flutter + pub setup (macOS) ────────────────────────────────────
43-
# build-ios and build-macos both run on macos-latest and share this cache.
43+
# build-ios runs on macos-latest and uses this cache.
4444
prepare-macos:
4545
name: Flutter setup (macos)
4646
runs-on: macos-latest
@@ -106,107 +106,6 @@ jobs:
106106
build/app/outputs/flutter-apk/app-arm64-v8a-release.apk
107107
build/app/outputs/flutter-apk/app-x86_64-release.apk
108108
109-
# ── Windows ───────────────────────────────────────────────────────────────
110-
# Only one Windows job — no separate prepare step needed; cache inline.
111-
build-windows:
112-
name: Build Windows
113-
runs-on: windows-latest
114-
115-
steps:
116-
- name: Checkout code
117-
uses: actions/checkout@v4
118-
119-
- name: Setup Flutter
120-
uses: subosito/flutter-action@v2
121-
with:
122-
channel: 'stable'
123-
cache: true
124-
125-
- name: Cache pub packages
126-
uses: actions/cache@v4
127-
with:
128-
path: ${{ env.PUB_CACHE }}
129-
key: pub-windows-${{ hashFiles('pubspec.lock') }}
130-
restore-keys: pub-windows-
131-
132-
- name: Get dependencies
133-
run: flutter pub get
134-
135-
- name: Build Windows
136-
run: flutter build windows --release
137-
138-
- name: Get version
139-
id: version
140-
shell: bash
141-
run: |
142-
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
143-
echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
144-
else
145-
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
146-
fi
147-
148-
- name: Install NSIS
149-
run: choco install nsis --yes
150-
151-
- name: Build Windows Installer
152-
run: |
153-
& "C:\Program Files (x86)\NSIS\makensis.exe" /DMUSLY_VERSION=${{ steps.version.outputs.VERSION }} installer.nsi
154-
Get-Item musly-*-setup.exe | Rename-Item -NewName "musly-windows-setup.exe"
155-
156-
- name: Upload Windows artifact
157-
uses: actions/upload-artifact@v4
158-
with:
159-
name: windows-build
160-
path: musly-windows-setup.exe
161-
162-
# ── Linux ─────────────────────────────────────────────────────────────────
163-
build-linux:
164-
name: Build Linux
165-
runs-on: ubuntu-latest
166-
needs: prepare-ubuntu
167-
168-
steps:
169-
- name: Checkout code
170-
uses: actions/checkout@v4
171-
172-
- name: Install system dependencies
173-
run: |
174-
sudo apt-get update
175-
sudo apt-get install -y \
176-
clang cmake ninja-build pkg-config \
177-
libgtk-3-dev liblzma-dev libglib2.0-dev \
178-
libmpv-dev mpv
179-
180-
- name: Setup Flutter
181-
uses: subosito/flutter-action@v2
182-
with:
183-
channel: 'stable'
184-
cache: true
185-
186-
- name: Restore pub cache
187-
uses: actions/cache/restore@v4
188-
with:
189-
path: ~/.pub-cache
190-
key: pub-ubuntu-${{ hashFiles('pubspec.lock') }}
191-
restore-keys: pub-ubuntu-
192-
193-
- name: Get dependencies
194-
run: flutter pub get
195-
196-
- name: Build Linux
197-
run: flutter build linux --release
198-
199-
- name: Package Linux Build
200-
run: |
201-
cd build/linux/x64/release/bundle
202-
tar -czf ../../../../../musly-linux-x64.tar.gz *
203-
204-
- name: Upload Linux artifact
205-
uses: actions/upload-artifact@v4
206-
with:
207-
name: linux-build
208-
path: musly-linux-x64.tar.gz
209-
210109
# ── iOS ───────────────────────────────────────────────────────────────────
211110
build-ios:
212111
name: Build iOS IPA
@@ -254,72 +153,9 @@ jobs:
254153
name: ios-build
255154
path: musly-ios.ipa
256155

257-
# ── macOS ─────────────────────────────────────────────────────────────────
258-
build-macos:
259-
name: Build macOS
260-
runs-on: macos-latest
261-
needs: prepare-macos
262-
263-
steps:
264-
- name: Checkout code
265-
uses: actions/checkout@v4
266-
267-
- name: Setup Flutter
268-
uses: subosito/flutter-action@v2
269-
with:
270-
channel: 'stable'
271-
cache: true
272-
273-
- name: Restore pub cache
274-
uses: actions/cache/restore@v4
275-
with:
276-
path: ~/.pub-cache
277-
key: pub-macos-${{ hashFiles('pubspec.lock') }}
278-
restore-keys: pub-macos-
279-
280-
- name: Get dependencies
281-
run: flutter pub get
282-
283-
- name: Install CocoaPods dependencies
284-
run: |
285-
cd macos
286-
pod install --repo-update
287-
288-
- name: Build macOS
289-
run: flutter build macos --release
290-
291-
- name: Get version
292-
id: version
293-
run: |
294-
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
295-
echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
296-
else
297-
echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
298-
fi
299-
300-
- name: Package DMG
301-
run: |
302-
brew install create-dmg
303-
create-dmg \
304-
--volname "Musly ${{ steps.version.outputs.VERSION }}" \
305-
--window-pos 200 120 \
306-
--window-size 800 400 \
307-
--icon-size 100 \
308-
--icon "Musly.app" 200 190 \
309-
--hide-extension "Musly.app" \
310-
--app-drop-link 600 185 \
311-
"musly-macos.dmg" \
312-
"build/macos/Build/Products/Release/"
313-
314-
- name: Upload macOS artifact
315-
uses: actions/upload-artifact@v4
316-
with:
317-
name: macos-build
318-
path: musly-macos.dmg
319-
320156
create-release:
321157
name: Create GitHub Release
322-
needs: [build-android, build-windows, build-linux, build-ios, build-macos]
158+
needs: [build-android, build-ios]
323159
runs-on: ubuntu-latest
324160
permissions:
325161
contents: write
@@ -360,15 +196,6 @@ jobs:
360196
**iOS:**
361197
- `musly-ios.ipa` (sideload with AltStore, Sideloadly, or similar — not signed)
362198
363-
**Windows:**
364-
- `musly-windows-setup.exe` (setup installer, run to install Musly)
365-
366-
**macOS:**
367-
- `musly-macos.dmg` (drag Musly.app to Applications — not notarized)
368-
369-
**Linux:**
370-
- `musly-linux-x64.tar.gz` (extract and run musly)
371-
372199
### 📝 Changelog
373200
See [CHANGELOG.md](https://github.com/dddevid/Musly/blob/master/CHANGELOG.md)
374201
@@ -379,8 +206,5 @@ jobs:
379206
files: |
380207
artifacts/android-apk/*.apk
381208
artifacts/ios-build/*.ipa
382-
artifacts/windows-build/*.exe
383-
artifacts/macos-build/*.dmg
384-
artifacts/linux-build/*.tar.gz
385209
env:
386210
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

ios/Runner.xcodeproj/project.pbxproj

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@
1111
331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; };
1212
3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
1313
74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
14-
AA01234501234567890ABCD1 /* iOSSystemPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA01234501234567890ABC01 /* iOSSystemPlugin.swift */; };
15-
AA01234501234567890ABCD2 /* iOSBluetoothPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA01234501234567890ABC02 /* iOSBluetoothPlugin.swift */; };
16-
AA01234501234567890ABCD3 /* CarPlaySceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA01234501234567890ABC03 /* CarPlaySceneDelegate.swift */; };
17-
AA01234501234567890ABCD4 /* AirPlayButtonFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA01234501234567890ABC04 /* AirPlayButtonFactory.swift */; };
1814
7B20921E9CF274364627C150 /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BD54408F5B2D752377936346 /* Pods_RunnerTests.framework */; };
1915
97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
2016
97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
2117
97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
18+
AA01234501234567890ABCD1 /* iOSSystemPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA01234501234567890ABC01 /* iOSSystemPlugin.swift */; };
19+
AA01234501234567890ABCD2 /* iOSBluetoothPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA01234501234567890ABC02 /* iOSBluetoothPlugin.swift */; };
20+
AA01234501234567890ABCD3 /* CarPlaySceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA01234501234567890ABC03 /* CarPlaySceneDelegate.swift */; };
21+
AA01234501234567890ABCD4 /* AirPlayButtonFactory.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA01234501234567890ABC04 /* AirPlayButtonFactory.swift */; };
2222
AE00627F000DA13D3142CF98 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 75ADD0A338CA4765EFDF888C /* Pods_Runner.framework */; };
2323
/* End PBXBuildFile section */
2424

@@ -55,10 +55,6 @@
5555
41A5C969FE507EAF829D8CC7 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
5656
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
5757
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
58-
AA01234501234567890ABC01 /* iOSSystemPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = iOSSystemPlugin.swift; sourceTree = "<group>"; };
59-
AA01234501234567890ABC02 /* iOSBluetoothPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = iOSBluetoothPlugin.swift; sourceTree = "<group>"; };
60-
AA01234501234567890ABC03 /* CarPlaySceneDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CarPlaySceneDelegate.swift; sourceTree = "<group>"; };
61-
AA01234501234567890ABC04 /* AirPlayButtonFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AirPlayButtonFactory.swift; sourceTree = "<group>"; };
6258
75ADD0A338CA4765EFDF888C /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
6359
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
6460
970048330B3D21E8F22ED7A9 /* Pods-RunnerTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.release.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.release.xcconfig"; sourceTree = "<group>"; };
@@ -69,6 +65,10 @@
6965
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
7066
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
7167
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
68+
AA01234501234567890ABC01 /* iOSSystemPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = iOSSystemPlugin.swift; sourceTree = "<group>"; };
69+
AA01234501234567890ABC02 /* iOSBluetoothPlugin.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = iOSBluetoothPlugin.swift; sourceTree = "<group>"; };
70+
AA01234501234567890ABC03 /* CarPlaySceneDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CarPlaySceneDelegate.swift; sourceTree = "<group>"; };
71+
AA01234501234567890ABC04 /* AirPlayButtonFactory.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AirPlayButtonFactory.swift; sourceTree = "<group>"; };
7272
BD54408F5B2D752377936346 /* Pods_RunnerTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RunnerTests.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7373
D47342808190297C0A22E655 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
7474
E4097B6D6C9058F7E0E8B719 /* Pods-RunnerTests.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.profile.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.profile.xcconfig"; sourceTree = "<group>"; };
@@ -173,7 +173,6 @@
173173
970048330B3D21E8F22ED7A9 /* Pods-RunnerTests.release.xcconfig */,
174174
E4097B6D6C9058F7E0E8B719 /* Pods-RunnerTests.profile.xcconfig */,
175175
);
176-
name = Pods;
177176
path = Pods;
178177
sourceTree = "<group>";
179178
};
@@ -291,10 +290,14 @@
291290
inputFileListPaths = (
292291
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-input-files.xcfilelist",
293292
);
293+
inputPaths = (
294+
);
294295
name = "[CP] Copy Pods Resources";
295296
outputFileListPaths = (
296297
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources-${CONFIGURATION}-output-files.xcfilelist",
297298
);
299+
outputPaths = (
300+
);
298301
runOnlyForDeploymentPostprocessing = 0;
299302
shellPath = /bin/sh;
300303
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh\"\n";
@@ -368,10 +371,14 @@
368371
inputFileListPaths = (
369372
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-input-files.xcfilelist",
370373
);
374+
inputPaths = (
375+
);
371376
name = "[CP] Embed Pods Frameworks";
372377
outputFileListPaths = (
373378
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks-${CONFIGURATION}-output-files.xcfilelist",
374379
);
380+
outputPaths = (
381+
);
375382
runOnlyForDeploymentPostprocessing = 0;
376383
shellPath = /bin/sh;
377384
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
@@ -505,6 +512,7 @@
505512
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
506513
CLANG_ENABLE_MODULES = YES;
507514
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
515+
DEVELOPMENT_TEAM = Q6HL69GMFF;
508516
ENABLE_BITCODE = NO;
509517
INFOPLIST_FILE = Runner/Info.plist;
510518
LD_RUNPATH_SEARCH_PATHS = (
@@ -688,6 +696,7 @@
688696
CLANG_ENABLE_MODULES = YES;
689697
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
690698
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
699+
DEVELOPMENT_TEAM = Q6HL69GMFF;
691700
ENABLE_BITCODE = NO;
692701
INFOPLIST_FILE = Runner/Info.plist;
693702
LD_RUNPATH_SEARCH_PATHS = (
@@ -711,6 +720,7 @@
711720
CLANG_ENABLE_MODULES = YES;
712721
CODE_SIGN_ENTITLEMENTS = Runner/Runner.entitlements;
713722
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
723+
DEVELOPMENT_TEAM = Q6HL69GMFF;
714724
ENABLE_BITCODE = NO;
715725
INFOPLIST_FILE = Runner/Info.plist;
716726
LD_RUNPATH_SEARCH_PATHS = (

lib/l10n/app_localizations.dart

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2152,6 +2152,18 @@ abstract class AppLocalizations {
21522152
/// **'Artist not found'**
21532153
String get artistDataNotFound;
21542154

2155+
/// Snackbar when user adds artist to queue
2156+
///
2157+
/// In en, this message translates to:
2158+
/// **'Added artist to Queue'**
2159+
String get addedArtistToQueue;
2160+
2161+
/// Error shown in snackbar when adding artist to queue fails
2162+
///
2163+
/// In en, this message translates to:
2164+
/// **'Failed adding artist to Queue'**
2165+
String get addedArtistToQueueError;
2166+
21552167
/// Title shown in the Chromecast control dialog when actively casting
21562168
///
21572169
/// In en, this message translates to:

lib/l10n/app_localizations_bn.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,6 +1109,12 @@ class AppLocalizationsBn extends AppLocalizations {
11091109
@override
11101110
String get artistDataNotFound => 'Artist not found';
11111111

1112+
@override
1113+
String get addedArtistToQueue => 'Added artist to Queue';
1114+
1115+
@override
1116+
String get addedArtistToQueueError => 'Failed adding artist to Queue';
1117+
11121118
@override
11131119
String get casting => 'Casting';
11141120

lib/l10n/app_localizations_da.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,6 +1109,12 @@ class AppLocalizationsDa extends AppLocalizations {
11091109
@override
11101110
String get artistDataNotFound => 'Artist not found';
11111111

1112+
@override
1113+
String get addedArtistToQueue => 'Added artist to Queue';
1114+
1115+
@override
1116+
String get addedArtistToQueueError => 'Failed adding artist to Queue';
1117+
11121118
@override
11131119
String get casting => 'Casting';
11141120

0 commit comments

Comments
 (0)