aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2014-09-05 14:48:21 -0700
committerScott Jackson <daneren2005@gmail.com>2014-09-05 14:48:21 -0700
commit88c8cd776a2757437b6e311d1c5b95957110a805 (patch)
tree07eb774849dea10130249b5391f2fb0378580e29 /src
parentc04a78ee89b5d964952a80b5d968a4d7f3d8e063 (diff)
downloaddsub-88c8cd776a2757437b6e311d1c5b95957110a805.tar.gz
dsub-88c8cd776a2757437b6e311d1c5b95957110a805.tar.bz2
dsub-88c8cd776a2757437b6e311d1c5b95957110a805.zip
Update bookmark immediately, revert if error later + add error toast
Diffstat (limited to 'src')
-rw-r--r--src/github/daneren2005/dsub/fragments/NowPlayingFragment.java29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/github/daneren2005/dsub/fragments/NowPlayingFragment.java b/src/github/daneren2005/dsub/fragments/NowPlayingFragment.java
index 6c2ad126..b77f02c9 100644
--- a/src/github/daneren2005/dsub/fragments/NowPlayingFragment.java
+++ b/src/github/daneren2005/dsub/fragments/NowPlayingFragment.java
@@ -1368,14 +1368,20 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis
dialog.show();
}
private void createBookmark(final DownloadFile currentDownload, final String comment) {
+ DownloadService downloadService = getDownloadService();
+ if(downloadService == null) {
+ return;
+ }
+
+ final Entry currentSong = currentDownload.getSong();
+ final int position = downloadService.getPlayerPosition();
+ final Bookmark oldBookmark = currentSong.getBookmark();
+ currentSong.setBookmark(new Bookmark(position));
+
new SilentBackgroundTask<Void>(context) {
@Override
protected Void doInBackground() throws Throwable {
- Entry currentSong = currentDownload.getSong();
MusicService musicService = MusicServiceFactory.getMusicService(context);
- int position = getDownloadService().getPlayerPosition();
-
- currentSong.setBookmark(new Bookmark(position));
musicService.createBookmark(currentSong, position, comment, context, null);
Entry find = UpdateView.findEntry(currentSong);
@@ -1391,6 +1397,21 @@ public class NowPlayingFragment extends SubsonicFragment implements OnGestureLis
Util.toast(context, R.string.download_save_bookmark);
setControlsVisible(true);
}
+
+ @Override
+ protected void error(Throwable error) {
+ Log.w(TAG, "Failed to create bookmark", error);
+ currentSong.setBookmark(oldBookmark);
+
+ String msg;
+ if(error instanceof OfflineException || error instance of ServerTooOldException) {
+ msg = getErrorMessage(error);
+ } else {
+ msg = context.getResources().getString(R.string.download_save_bookmark_failed) + getErrorMessage(error);
+ }
+
+ Util.toast(context, msg, false);
+ }
}.execute();
}