Merge branch 'main' into dev

This commit is contained in:
zarzet
2026-03-15 19:42:31 +07:00
3 changed files with 28 additions and 4 deletions
+6 -1
View File
@@ -73,6 +73,11 @@ A: Yes, the app is open source and you can verify the code yourself. Each releas
**Q: Why is download not working in my country?**
A: Some countries have restricted access to certain streaming service APIs. If downloads are failing, try using a VPN to connect through a different region.
**Q: Can I add SpotiFLAC to AltStore or SideStore?**
A: Yes! You can add the official source to receive updates directly within the app. Just copy this link:
https://raw.githubusercontent.com/zarzet/SpotiFLAC-Mobile/refs/heads/main/apps.json
In AltStore/SideStore, go to the Browse tab, tap Sources at the top, then tap the + icon and paste the link.
### Want to support SpotiFLAC-Mobile?
@@ -87,4 +92,4 @@ _If this software is useful and brings you value, consider supporting the projec
> [!TIP]
>
> **Star Us**, You will receive all release notifications from GitHub without any delay ~
> **Star Us**, You will receive all release notifications from GitHub without any delay
+18
View File
@@ -0,0 +1,18 @@
{
"name": "SpotiFLAC Source",
"identifier": "com.zarzet.spotiflac.source",
"subtitle": "FLAC Downloader for iOS",
"apps": [
{
"name": "SpotiFLAC",
"bundleIdentifier": "com.zarzet.spotiflac",
"developerName": "zarzet",
"version": "3.8.0",
"versionDate": "2026-03-14",
"downloadURL": "https://github.com/zarzet/SpotiFLAC-Mobile/releases/download/v3.8.0/SpotiFLAC-v3.8.0-ios-unsigned.ipa",
"localizedDescription": "Mobile version of SpotiFLAC written in Flutter. Download Tracks in true FLAC from Tidal, Qobuz, & Amazon Music.",
"iconURL": "https://raw.githubusercontent.com/zarzet/SpotiFLAC-Mobile/main/assets/images/logo.png",
"size": 33659289
}
]
}
@@ -39,6 +39,7 @@ class _LibraryTracksFolderScreenState
bool _isSelectionMode = false;
final Set<String> _selectedKeys = {};
UserPlaylistCollection? playlist;
@override
void initState() {
@@ -243,7 +244,6 @@ class _LibraryTracksFolderScreenState
final colorScheme = Theme.of(context).colorScheme;
ref.watch(localLibraryProvider.select((s) => s.items));
final localState = ref.read(localLibraryProvider);
final UserPlaylistCollection? playlist;
final List<CollectionTrackEntry> entries;
switch (widget.mode) {
@@ -873,6 +873,7 @@ class _LibraryTracksFolderScreenState
void _downloadAll(List<Track> tracks) {
if (tracks.isEmpty) return;
final settings = ref.read(settingsProvider);
final playlistName = widget.mode == LibraryTracksFolderMode.playlist ? playlist?.name ?? context.l10n.collectionPlaylist : null;
if (settings.askQualityBeforeDownload) {
DownloadServicePicker.show(
context,
@@ -885,7 +886,7 @@ class _LibraryTracksFolderScreenState
onSelect: (quality, service) {
ref
.read(downloadQueueProvider.notifier)
.addMultipleToQueue(tracks, service, qualityOverride: quality);
.addMultipleToQueue(tracks, service, qualityOverride: quality, playlistName: playlistName);
if (!mounted) return;
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
@@ -899,7 +900,7 @@ class _LibraryTracksFolderScreenState
} else {
ref
.read(downloadQueueProvider.notifier)
.addMultipleToQueue(tracks, settings.defaultService);
.addMultipleToQueue(tracks, settings.defaultService, playlistName: playlistName);
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(context.l10n.snackbarAddedTracksToQueue(tracks.length)),