aboutsummaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2015-12-12 15:56:26 -0800
committerScott Jackson <daneren2005@gmail.com>2015-12-12 15:56:26 -0800
commit26873c657849a1351618950a1533fd59b3422ba8 (patch)
tree556fd6d5bca70969db4a0f7693d8057162e5fdbe /app/src
parent5d5b110ca0f8d7d5e599a401a7931a5cd78e9ffc (diff)
downloaddsub-26873c657849a1351618950a1533fd59b3422ba8.tar.gz
dsub-26873c657849a1351618950a1533fd59b3422ba8.tar.bz2
dsub-26873c657849a1351618950a1533fd59b3422ba8.zip
Speed up addSongsImpl enough we can load for playlists as well
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java3
-rw-r--r--app/src/main/java/github/daneren2005/dsub/util/SongDBHandler.java21
2 files changed, 15 insertions, 9 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java
index e188f97f..c0851009 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java
@@ -258,8 +258,7 @@ public class CachedMusicService implements MusicService {
}
if(dir == null) {
dir = musicService.getPlaylist(refresh, id, name, context, progressListener);
- // With large playlists this takes too long
- // updateAllSongs(context, dir);
+ updateAllSongs(context, dir);
FileUtil.serialize(context, dir, getCacheName(context, "playlist", id));
File playlistFile = FileUtil.getPlaylistFile(context, Util.getServerName(context, musicService.getInstance(context)), dir.getName());
diff --git a/app/src/main/java/github/daneren2005/dsub/util/SongDBHandler.java b/app/src/main/java/github/daneren2005/dsub/util/SongDBHandler.java
index eb52de9c..08f6f461 100644
--- a/app/src/main/java/github/daneren2005/dsub/util/SongDBHandler.java
+++ b/app/src/main/java/github/daneren2005/dsub/util/SongDBHandler.java
@@ -113,14 +113,21 @@ public class SongDBHandler extends SQLiteOpenHelper {
addSongsImpl(db, Util.getRestUrlHash(context, instance), entries);
}
protected synchronized void addSongsImpl(SQLiteDatabase db, int serverKey, List<Pair<String, String>> entries) {
- for(Pair<String, String> entry: entries) {
- ContentValues values = new ContentValues();
- values.put(SONGS_SERVER_KEY, serverKey);
- values.put(SONGS_SERVER_ID, entry.getFirst());
- values.put(SONGS_COMPLETE_PATH, entry.getSecond());
+ db.beginTransaction();
+ try {
+ for (Pair<String, String> entry : entries) {
+ ContentValues values = new ContentValues();
+ values.put(SONGS_SERVER_KEY, serverKey);
+ values.put(SONGS_SERVER_ID, entry.getFirst());
+ values.put(SONGS_COMPLETE_PATH, entry.getSecond());
- db.insertWithOnConflict(TABLE_SONGS, null, values, SQLiteDatabase.CONFLICT_IGNORE);
- }
+ db.insertWithOnConflict(TABLE_SONGS, null, values, SQLiteDatabase.CONFLICT_IGNORE);
+ }
+
+ db.setTransactionSuccessful();
+ } catch(Exception e) {}
+
+ db.endTransaction();
}
public synchronized void setSongPlayed(DownloadFile downloadFile, boolean submission) {