Skip to content

Commit 0ceb3a2

Browse files
authored
Merge pull request #5 from C0ntrolDev/dev
Dev
2 parents 65c883f + 3f32fd4 commit 0ceb3a2

File tree

5 files changed

+23
-37
lines changed

5 files changed

+23
-37
lines changed

android/app/src/main/AndroidManifest.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@
44
android:label="Spotify Downloader"
55
android:icon="@mipmap/ic_launcher"
66
android:roundIcon="@mipmap/ic_launcher_round"
7-
android:requestLegacyExternalStorage="true">
7+
android:requestLegacyExternalStorage="true"
8+
android:largeHeap="true">
89
<activity android:name=".MainActivity"
910
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
1011
android:exported="true"

lib/core/db/local_db_impl.dart

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,19 @@ class LocalDbImpl extends LocalDb {
5252
db.execute("CREATE TABLE downloadTracksCollections ("
5353
"spotifyId TEXT NOT NULL,"
5454
"type INTEGER NOT NULL,"
55-
"downloadTracksCollectionsGroups_directoryPath TEXT NOT NULL,"
56-
"FOREIGN KEY (downloadTracksCollectionsGroups_directoryPath) REFERENCES downloadTracksCollectionsGroups (directoryPath) ON DELETE CASCADE"
55+
"downloadTracksCollectionsGroup_directoryPath TEXT NOT NULL,"
56+
"FOREIGN KEY (downloadTracksCollectionsGroup_directoryPath) REFERENCES downloadTracksCollectionsGroups (directoryPath) ON DELETE CASCADE,"
57+
"PRIMARY KEY (spotifyId, type, downloadTracksCollectionsGroup_directoryPath)"
5758
")");
5859

5960
db.execute("CREATE TABLE downloadTracks ("
6061
"downloadTracksCollection_spotifyId TEXT NOT NULL,"
6162
"downloadTracksCollection_type INTEGER NOT NULL,"
63+
"downloadTracksCollectionGroup_directoryPath TEXT NOT NULL,"
6264
"spotifyId TEXT NOT NULL,"
6365
"youtubeUrl TEXT NOT NULL,"
6466
"savePath TEXT NOT NULL,"
67+
"FOREIGN KEY (downloadTracksCollectionGroup_directoryPath) REFERENCES downloadTracksCollections (downloadTracksCollectionsGroup_directoryPath) ON DELETE CASCADE,"
6568
"FOREIGN KEY (downloadTracksCollection_spotifyId) REFERENCES downloadTracksCollections (spotifyId) ON DELETE CASCADE,"
6669
"FOREIGN KEY (downloadTracksCollection_type) REFERENCES downloadTracksCollections (type) ON DELETE CASCADE,"
6770
"PRIMARY KEY (downloadTracksCollection_spotifyId, downloadTracksCollection_type, spotifyId)"

lib/core/util/util_methods.dart

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,6 @@ Future<Result<Failure, T>> handleSpotifyClientExceptions<T>(Future<Result<Failur
2929
return Result.notSuccessful(NotAuthorizedFailure(message: e));
3030
}
3131

32-
if (e.status == 403) {
33-
return Result.notSuccessful(NotAuthorizedFailure(message: e));
34-
}
35-
3632
return Result.notSuccessful(Failure(message: e));
3733
} on ClientException catch (e) {
3834
return Result.notSuccessful(NetworkFailure(message: e));

lib/features/data/tracks/local_tracks/data_sources/local_tracks_data_source.dart

Lines changed: 15 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -22,42 +22,28 @@ class LocalTracksDataSource {
2222

2323
Future<void> removeLocalTrackFromStorage(LocalTrackDto localTrackDto) async {
2424
final database = _localDb.getDb();
25-
await database.rawDelete('''
26-
DELETE dt
27-
FROM downloadTracks dt
28-
JOIN downloadTracksCollections dtc ON dtc.spotifyId = dt.downloadTracksCollection_spotifyId
29-
AND dtc.type = dt.downloadTracksCollection_type
30-
JOIN downloadTracksCollectionsGroups dtcg ON dtcg.directoryPath = dtc.downloadTracksCollectionsGroups_directoryPath
31-
WHERE dt.spotifyId = ?
32-
AND dtc.spotifyId = ?
33-
AND dtc.type = ?
34-
AND dtcg.directoryPath = ?;
35-
''', [
36-
localTrackDto.spotifyId,
25+
await database.delete('downloadTracks', where: '''downloadTracksCollection_spotifyId = ?
26+
AND downloadTracksCollection_type = ?
27+
AND downloadTracksCollectionGroup_directoryPath = ?
28+
AND spotifyId = ?''', whereArgs: [
3729
localTrackDto.tracksCollection.spotifyId,
3830
localTrackDto.tracksCollection.type.index,
39-
localTrackDto.tracksCollection.group.directoryPath
31+
localTrackDto.tracksCollection.group.directoryPath,
32+
localTrackDto.spotifyId,
4033
]);
4134
}
4235

4336
Future<LocalTrackDto?> getLocalTrackFromStorage(
4437
LocalTracksCollectionDto localTracksCollectionDto, String spotifyId) async {
4538
final database = _localDb.getDb();
46-
final rawLocalTracks = await database.rawQuery('''
47-
SELECT dt.*, dtcg.directoryPath AS group_directoryPath
48-
FROM downloadTracks dt
49-
JOIN downloadTracksCollections dtc ON dtc.spotifyId = dt.downloadTracksCollection_spotifyId
50-
AND dtc.type = dt.downloadTracksCollection_type
51-
JOIN downloadTracksCollectionsGroups dtcg ON dtcg.directoryPath = dtc.downloadTracksCollectionsGroups_directoryPath
52-
WHERE dt.spotifyId = ?
53-
AND dtc.spotifyId = ?
54-
AND dtc.type = ?
55-
AND dtcg.directoryPath = ?
56-
''', [
57-
spotifyId,
39+
final rawLocalTracks = await database.query('downloadTracks', where: '''downloadTracksCollection_spotifyId = ?
40+
AND downloadTracksCollection_type = ?
41+
AND downloadTracksCollectionGroup_directoryPath = ?
42+
AND spotifyId = ?''', whereArgs: [
5843
localTracksCollectionDto.spotifyId,
5944
localTracksCollectionDto.type.index,
60-
localTracksCollectionDto.group.directoryPath
45+
localTracksCollectionDto.group.directoryPath,
46+
spotifyId
6147
]);
6248
return rawLocalTracks.map((rawLocalTrack) => _localTrackDtoFromMap(rawLocalTrack)).firstOrNull;
6349
}
@@ -66,6 +52,7 @@ class LocalTracksDataSource {
6652
return {
6753
'downloadTracksCollection_spotifyId': localTrackDto.tracksCollection.spotifyId,
6854
'downloadTracksCollection_type': localTrackDto.tracksCollection.type.index,
55+
'downloadTracksCollectionGroup_directoryPath': localTrackDto.tracksCollection.group.directoryPath,
6956
'spotifyId': localTrackDto.spotifyId,
7057
'youtubeUrl': localTrackDto.youtubeUrl,
7158
'savePath': localTrackDto.savePath
@@ -76,7 +63,7 @@ class LocalTracksDataSource {
7663
return {
7764
'spotifyId': localTracksCollectionDto.spotifyId,
7865
'type': localTracksCollectionDto.type.index,
79-
'downloadTracksCollectionsGroups_directoryPath': localTracksCollectionDto.group.directoryPath
66+
'downloadTracksCollectionsGroup_directoryPath': localTracksCollectionDto.group.directoryPath
8067
};
8168
}
8269

@@ -90,8 +77,7 @@ class LocalTracksDataSource {
9077
tracksCollection: LocalTracksCollectionDto(
9178
spotifyId: map['downloadTracksCollection_spotifyId'],
9279
type: LocalTracksCollectionDtoType.values[map['downloadTracksCollection_type'] as int],
93-
group: LocalTracksCollectionsGroupDto(
94-
directoryPath: map['group_directoryPath'])),
80+
group: LocalTracksCollectionsGroupDto(directoryPath: map['downloadTracksCollectionGroup_directoryPath'])),
9581
spotifyId: map['spotifyId'],
9682
youtubeUrl: map['youtubeUrl'],
9783
savePath: map['savePath'],

pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: spotify_downloader
22
description: A new Flutter project.
33
publish_to: 'none'
44

5-
version: 1.0.0+1
5+
version: 1.0.2+1
66

77
environment:
88
sdk: '>=3.1.4 <4.0.0'

0 commit comments

Comments
 (0)