aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--res/menu/nowplaying_context.xml4
-rw-r--r--res/menu/nowplaying_context_offline.xml4
-rw-r--r--src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java11
-rw-r--r--src/github/daneren2005/dsub/fragments/DownloadFragment.java41
4 files changed, 33 insertions, 27 deletions
diff --git a/res/menu/nowplaying_context.xml b/res/menu/nowplaying_context.xml
index 4d0f98e3..fd3d5b6a 100644
--- a/res/menu/nowplaying_context.xml
+++ b/res/menu/nowplaying_context.xml
@@ -7,6 +7,10 @@
/>
<item
+ android:id="@+id/menu_show_artist"
+ android:title="@string/menu.show_artist"/>
+
+ <item
android:id="@+id/menu_show_album"
android:title="@string/download.menu_show_album"/>
diff --git a/res/menu/nowplaying_context_offline.xml b/res/menu/nowplaying_context_offline.xml
index 46611d5c..69c068db 100644
--- a/res/menu/nowplaying_context_offline.xml
+++ b/res/menu/nowplaying_context_offline.xml
@@ -7,6 +7,10 @@
/>
<item
+ android:id="@+id/menu_show_artist"
+ android:title="@string/menu.show_artist"/>
+
+ <item
android:id="@+id/menu_show_album"
android:title="@string/download.menu_show_album"/>
diff --git a/src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java b/src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java
index 5aee380f..406a2a95 100644
--- a/src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java
+++ b/src/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java
@@ -266,17 +266,6 @@ public class SubsonicFragmentActivity extends SubsonicActivity {
};
if(getIntent().hasExtra(Constants.INTENT_EXTRA_VIEW_ALBUM)) {
- if(getIntent().hasExtra(Constants.INTENT_EXTRA_NAME_PARENT_ID)) {
- SelectDirectoryFragment fragment = new SelectDirectoryFragment();
- Bundle args = new Bundle();
- args.putString(Constants.INTENT_EXTRA_NAME_ID, getIntent().getStringExtra(Constants.INTENT_EXTRA_NAME_PARENT_ID));
- args.putString(Constants.INTENT_EXTRA_NAME_NAME, getIntent().getStringExtra(Constants.INTENT_EXTRA_NAME_PARENT_NAME));
- args.putBoolean(Constants.INTENT_EXTRA_NAME_ARTIST, true);
- fragment.setArguments(args);
-
- replaceFragment(fragment, currentFragment.getSupportTag());
- }
-
SubsonicFragment fragment = new SelectDirectoryFragment();
Bundle args = new Bundle();
args.putString(Constants.INTENT_EXTRA_NAME_ID, getIntent().getStringExtra(Constants.INTENT_EXTRA_NAME_ID));
diff --git a/src/github/daneren2005/dsub/fragments/DownloadFragment.java b/src/github/daneren2005/dsub/fragments/DownloadFragment.java
index d9091b55..36a58f66 100644
--- a/src/github/daneren2005/dsub/fragments/DownloadFragment.java
+++ b/src/github/daneren2005/dsub/fragments/DownloadFragment.java
@@ -540,6 +540,9 @@ public class DownloadFragment extends SubsonicFragment implements OnGestureListe
if (downloadFile.getSong().getParent() == null) {
menu.findItem(R.id.menu_show_album).setVisible(false);
}
+ if (downloadFile.getSong().getGrandParent() == null) {
+ menu.findItem(R.id.menu_show_artist).setVisible(false);
+ }
}
}
@@ -556,27 +559,33 @@ public class DownloadFragment extends SubsonicFragment implements OnGestureListe
private boolean menuItemSelected(int menuItemId, final DownloadFile song) {
switch (menuItemId) {
- case R.id.menu_show_album:
+ case R.id.menu_show_album: case R.id.menu_show_artist:
MusicDirectory.Entry entry = song.getSong();
-
+
Intent intent = new Intent(context, SubsonicFragmentActivity.class);
intent.putExtra(Constants.INTENT_EXTRA_VIEW_ALBUM, true);
- if(Util.isTagBrowsing(context)) {
- intent.putExtra(Constants.INTENT_EXTRA_NAME_ID, entry.getAlbumId());
+ String id;
+ String name;
+ if(menuItemId == R.id.menu_show_album) {
+ if(Util.isTagBrowsing(context)) {
+ id = entry.getAlbumId();
+ } else {
+ id = entry.getParent();
+ }
+ name = entry.getAlbum();
} else {
- intent.putExtra(Constants.INTENT_EXTRA_NAME_ID, entry.getParent());
+ if(Util.isTagBrowsing(context)) {
+ id = entry.getArtistId();
+ } else {
+ id = entry.getGrandParent();
+ }
+ name = entry.getArtist();
+ intent.putExtra(Constants.INTENT_EXTRA_NAME_ARTIST, true);
}
- intent.putExtra(Constants.INTENT_EXTRA_NAME_NAME, entry.getAlbum());
+ intent.putExtra(Constants.INTENT_EXTRA_NAME_ID, id);
+ intent.putExtra(Constants.INTENT_EXTRA_NAME_NAME, name);
intent.putExtra(Constants.INTENT_EXTRA_FRAGMENT_TYPE, "Artist");
-
- if(entry.getGrandParent() != null) {
- intent.putExtra(Constants.INTENT_EXTRA_NAME_PARENT_ID, entry.getGrandParent());
- intent.putExtra(Constants.INTENT_EXTRA_NAME_PARENT_NAME, entry.getArtist());
- } else if(Util.isTagBrowsing(context)) {
- intent.putExtra(Constants.INTENT_EXTRA_NAME_PARENT_ID, entry.getArtistId());
- intent.putExtra(Constants.INTENT_EXTRA_NAME_PARENT_NAME, entry.getArtist());
- }
-
+
if(Util.isOffline(context)) {
try {
// This should only be succesful if this is a online song in offline mode
@@ -592,7 +601,7 @@ public class DownloadFragment extends SubsonicFragment implements OnGestureListe
// Do nothing, entry.getParent() is fine
}
}
-
+
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Util.startActivityWithoutTransition(context, intent);
return true;