From c78f40d66b9d17a1d191b54bf1ff78b4b1a93c91 Mon Sep 17 00:00:00 2001 From: owner Date: Sat, 20 Oct 2012 19:09:15 -0700 Subject: Started adding support in album activity for adding to playlist --- .../dsub/activity/SelectAlbumActivity.java | 50 ++++++++++++++++++---- 1 file changed, 42 insertions(+), 8 deletions(-) (limited to 'subsonic-android/src') diff --git a/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java b/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java index 3cd80957..306882a1 100644 --- a/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java +++ b/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java @@ -37,14 +37,14 @@ import github.daneren2005.dsub.R; import github.daneren2005.dsub.domain.MusicDirectory; import github.daneren2005.dsub.service.MusicService; import github.daneren2005.dsub.service.MusicServiceFactory; -import github.daneren2005.dsub.util.Constants; -import github.daneren2005.dsub.util.EntryAdapter; -import github.daneren2005.dsub.util.Pair; -import github.daneren2005.dsub.util.TabActivityBackgroundTask; -import github.daneren2005.dsub.util.Util; +import github.daneren2005.dsub.service.OfflineException; +import github.daneren2005.dsub.service.ServerTooOldException; +import github.daneren2005.dsub.util.*; import java.util.ArrayList; import java.util.List; +import java.util.logging.Level; +import java.util.logging.Logger; public class SelectAlbumActivity extends SubsonicTabActivity { @@ -164,9 +164,9 @@ public class SelectAlbumActivity extends SubsonicTabActivity { delete(); selectAll(false, false); return true; - /*case R.id.menu_add_playlist: - - return true;*/ + case R.id.menu_add_playlist: + addToPlaylist(); + return true; case R.id.menu_exit: intent = new Intent(this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); @@ -467,6 +467,40 @@ public class SelectAlbumActivity extends SubsonicTabActivity { getDownloadService().unpin(getSelectedSongs()); } } + + private void addToPlaylist() { + addToPlaylist("Test"); + } + + private void addToPlaylist(final String playlist) { + final List songs = getSelectedSongs(); + + new SilentBackgroundTask(this) { + @Override + protected Void doInBackground() throws Throwable { + MusicService musicService = MusicServiceFactory.getMusicService(SelectAlbumActivity.this); + musicService.addToPlaylist(playlist, songs, SelectAlbumActivity.this, null); + return null; + } + + @Override + protected void done(Void result) { + Util.toast(SelectAlbumActivity.this, getResources().getString(R.string.updated_playlist, playlist)); + } + + @Override + protected void error(Throwable error) { + String msg; + if (error instanceof OfflineException || error instanceof ServerTooOldException) { + msg = getErrorMessage(error); + } else { + msg = getResources().getString(R.string.updated_playlist_error, playlist) + " " + getErrorMessage(error); + } + + Util.toast(SelectAlbumActivity.this, msg, false); + } + }.execute(); + } private void playVideo(MusicDirectory.Entry entry) { Intent intent = new Intent(Intent.ACTION_VIEW); -- cgit v1.2.3