aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--subsonic-android/res/menu/select_video_context.xml4
-rw-r--r--subsonic-android/res/values/strings.xml2
-rw-r--r--subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java17
3 files changed, 23 insertions, 0 deletions
diff --git a/subsonic-android/res/menu/select_video_context.xml b/subsonic-android/res/menu/select_video_context.xml
index ed04b6ff..c14becad 100644
--- a/subsonic-android/res/menu/select_video_context.xml
+++ b/subsonic-android/res/menu/select_video_context.xml
@@ -3,6 +3,10 @@
<item
android:id="@+id/song_menu_play_external"
android:title="@string/common.play_external"/>
+
+ <item
+ android:id="@+id/song_menu_stream_external"
+ android:title="@string/common.stream_external"/>
<item
android:id="@+id/song_menu_webview"
diff --git a/subsonic-android/res/values/strings.xml b/subsonic-android/res/values/strings.xml
index 6ada14a8..d814651d 100644
--- a/subsonic-android/res/values/strings.xml
+++ b/subsonic-android/res/values/strings.xml
@@ -19,6 +19,7 @@
<string name="common.comment">Comment</string>
<string name="common.webview">Play Web View (Flash)</string>
<string name="common.play_external">Play External Player</string>
+ <string name="common.stream_external">Stream External Player</string>
<string name="button_bar.home">Home</string>
<string name="button_bar.browse">Library</string>
@@ -139,6 +140,7 @@
<string name="download.start_timer">Start Timer</string>
<string name="download.stop_timer">Stop Timer</string>
<string name="download.need_download">Video needs to be downloaded first</string>
+ <string name="download.no_streaming_player">No player can play this stream</string>
<string name="starring_content_starred">Starred \"%s\"</string>
<string name="starring_content_unstarred">Unstarred \"%s\"</string>
diff --git a/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java b/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java
index 891c2edd..a8f2e24c 100644
--- a/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java
+++ b/subsonic-android/src/github/daneren2005/dsub/activity/SelectAlbumActivity.java
@@ -22,6 +22,8 @@ import github.daneren2005.dsub.view.EntryAdapter;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
@@ -311,6 +313,9 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
case R.id.song_menu_play_external:
playExternalPlayer(entry);
break;
+ case R.id.song_menu_stream_external:
+ streamExternalPlayer(entry);
+ break;
case R.id.song_menu_remove_playlist:
String playlistId = getIntent().getStringExtra(Constants.INTENT_EXTRA_NAME_PLAYLIST_ID);
String playlistName = getIntent().getStringExtra(Constants.INTENT_EXTRA_NAME_PLAYLIST_NAME);
@@ -544,6 +549,18 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
startActivity(intent);
}
}
+ private void streamExternalPlayer(MusicDirectory.Entry entry) {
+ Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setDataAndType(Uri.parse(MusicServiceFactory.getMusicService(this).getVideoStreamUrl(this, entry.getId())), "video/*");
+
+ List<ResolveInfo> intents = getPackageManager()
+ .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
+ if(intents != null && intents.size() > 0) {
+ startActivity(intent);
+ } else {
+ Util.toast(this, R.string.download_no_streaming_player);
+ }
+ }
private void checkLicenseAndTrialPeriod(Runnable onValid) {
if (licenseValid) {