diff options
author | Scott Jackson <daneren2005@gmail.com> | 2014-09-05 14:48:21 -0700 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2014-09-05 14:48:21 -0700 |
commit | 88c8cd776a2757437b6e311d1c5b95957110a805 (patch) | |
tree | 07eb774849dea10130249b5391f2fb0378580e29 | |
parent | c04a78ee89b5d964952a80b5d968a4d7f3d8e063 (diff) | |
download | dsub-88c8cd776a2757437b6e311d1c5b95957110a805.tar.gz dsub-88c8cd776a2757437b6e311d1c5b95957110a805.tar.bz2 dsub-88c8cd776a2757437b6e311d1c5b95957110a805.zip |
Update bookmark immediately, revert if error later + add error toast
-rw-r--r-- | src/github/daneren2005/dsub/fragments/NowPlayingFragment.java | 29 |
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();
}
|