aboutsummaryrefslogtreecommitdiff
path: root/app/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main')
-rw-r--r--app/src/main/java/github/daneren2005/dsub/fragments/ChatFragment.java1
-rw-r--r--app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java2
-rw-r--r--app/src/main/java/github/daneren2005/dsub/fragments/SubsonicFragment.java18
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/ChromeCastController.java25
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java6
-rw-r--r--app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java16
-rw-r--r--app/src/main/res/menu/select_video_context.xml6
7 files changed, 55 insertions, 19 deletions
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/ChatFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/ChatFragment.java
index 3e48f1a6..febf22de 100644
--- a/app/src/main/java/github/daneren2005/dsub/fragments/ChatFragment.java
+++ b/app/src/main/java/github/daneren2005/dsub/fragments/ChatFragment.java
@@ -81,6 +81,7 @@ public class ChatFragment extends SubsonicFragment {
});
chatListView = (ListView) rootView.findViewById(R.id.chat_entries);
+ chatListView.setStackFromBottom(true);
messageEditText.setImeActionLabel("Send", KeyEvent.KEYCODE_ENTER);
messageEditText.addTextChangedListener(new TextWatcher() {
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
index abd1c6aa..2db10c2e 100644
--- a/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
+++ b/app/src/main/java/github/daneren2005/dsub/fragments/SelectDirectoryFragment.java
@@ -858,7 +858,7 @@ public class SelectDirectoryFragment extends SubsonicFragment implements Section
RecursiveLoader onValid = new RecursiveLoader(context) {
@Override
protected Boolean doInBackground() throws Throwable {
- getSongsRecursively(entries, songs);
+ getSongsRecursively(entries, true);
getDownloadService().downloadBackground(songs, save);
return null;
}
diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SubsonicFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SubsonicFragment.java
index 8a0752be..8672f534 100644
--- a/app/src/main/java/github/daneren2005/dsub/fragments/SubsonicFragment.java
+++ b/app/src/main/java/github/daneren2005/dsub/fragments/SubsonicFragment.java
@@ -1943,7 +1943,7 @@ public class SubsonicFragment extends Fragment implements SwipeRefreshLayout.OnR
new RecursiveLoader(context) {
@Override
protected Boolean doInBackground() throws Throwable {
- getSongsRecursively(entries, songs);
+ getSongsRecursively(entries, true);
getDownloadService().downloadBackground(songs, save);
return null;
}
@@ -2018,14 +2018,24 @@ public class SubsonicFragment extends Fragment implements SwipeRefreshLayout.OnR
}
protected void getSongsRecursively(List<Entry> entry) throws Exception {
- getSongsRecursively(entry, songs);
+ getSongsRecursively(entry, false);
+ }
+ protected void getSongsRecursively(List<Entry> entry, boolean allowVideo) throws Exception {
+ getSongsRecursively(entry, songs, allowVideo);
}
protected void getSongsRecursively(List<Entry> entry, List<Entry> songs) throws Exception {
+ getSongsRecursively(entry, songs, false);
+ }
+ protected void getSongsRecursively(List<Entry> entry, List<Entry> songs, boolean allowVideo) throws Exception {
MusicDirectory dir = new MusicDirectory();
dir.addChildren(entry);
- getSongsRecursively(dir, songs);
+ getSongsRecursively(dir, songs, allowVideo);
}
+
protected void getSongsRecursively(MusicDirectory parent, List<Entry> songs) throws Exception {
+ getSongsRecursively(parent, songs, false);
+ }
+ protected void getSongsRecursively(MusicDirectory parent, List<Entry> songs, boolean allowVideo) throws Exception {
if (songs.size() > MAX_SONGS) {
return;
}
@@ -2045,7 +2055,7 @@ public class SubsonicFragment extends Fragment implements SwipeRefreshLayout.OnR
}
for (Entry song : parent.getChildren(false, true)) {
- if (!song.isVideo() && song.getRating() != 1) {
+ if ((!song.isVideo() || allowVideo) && song.getRating() != 1) {
songs.add(song);
}
}
diff --git a/app/src/main/java/github/daneren2005/dsub/service/ChromeCastController.java b/app/src/main/java/github/daneren2005/dsub/service/ChromeCastController.java
index a729ed4e..6006e280 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/ChromeCastController.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/ChromeCastController.java
@@ -319,21 +319,22 @@ public class ChromeCastController extends RemoteController {
meta.putString(MediaMetadata.KEY_ALBUM_ARTIST, song.getArtist());
meta.putString(MediaMetadata.KEY_ALBUM_TITLE, song.getAlbum());
- String coverArt = "";
- if(proxy == null || proxy instanceof WebProxy) {
- coverArt = musicService.getCoverArtUrl(downloadService, song);
+ if(castDevice.hasCapability(CastDevice.CAPABILITY_VIDEO_IN)) {
+ if (proxy == null || proxy instanceof WebProxy) {
+ String coverArt = musicService.getCoverArtUrl(downloadService, song);
- // If proxy is going, it is a web proxy
- if(proxy != null) {
- coverArt = proxy.getPublicAddress(coverArt);
- }
+ // If proxy is going, it is a web proxy
+ if (proxy != null) {
+ coverArt = proxy.getPublicAddress(coverArt);
+ }
- meta.addImage(new WebImage(Uri.parse(coverArt)));
- } else {
- File coverArtFile = FileUtil.getAlbumArtFile(downloadService, song);
- if(coverArtFile != null && coverArtFile.exists()) {
- coverArt = proxy.getPublicAddress(coverArtFile.getPath());
meta.addImage(new WebImage(Uri.parse(coverArt)));
+ } else {
+ File coverArtFile = FileUtil.getAlbumArtFile(downloadService, song);
+ if (coverArtFile != null && coverArtFile.exists()) {
+ String coverArt = proxy.getPublicAddress(coverArtFile.getPath());
+ meta.addImage(new WebImage(Uri.parse(coverArt)));
+ }
}
}
}
diff --git a/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java
index 2146cd15..17aaf804 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java
@@ -394,8 +394,8 @@ public class OfflineMusicService implements MusicService {
Reader reader = null;
BufferedReader buffer = null;
+ int songCount = 0;
try {
- int songCount = 0;
reader = new FileReader(file);
buffer = new BufferedReader(reader);
@@ -427,7 +427,9 @@ public class OfflineMusicService implements MusicService {
Util.close(reader);
}
- playlists.add(playlist);
+ if(songCount > 0) {
+ playlists.add(playlist);
+ }
}
}
diff --git a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java
index 97899529..88489e10 100644
--- a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java
+++ b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java
@@ -730,6 +730,22 @@ public class RESTMusicService implements MusicService {
values.add(genre);
}
if(startYear != null && !"".equals(startYear)) {
+ // Check to make sure user isn't doing 2015 -> 2010 since Subsonic will return no results
+ if(endYear != null && !"".equals(endYear)) {
+ try {
+ int startYearInt = Integer.parseInt(startYear);
+ int endYearInt = Integer.parseInt(endYear);
+
+ if(startYearInt > endYearInt) {
+ String tmp = startYear;
+ startYear = endYear;
+ endYear = tmp;
+ }
+ } catch(Exception e) {
+ Log.w(TAG, "Failed to convert start/end year into ints", e);
+ }
+ }
+
names.add("fromYear");
values.add(startYear);
}
diff --git a/app/src/main/res/menu/select_video_context.xml b/app/src/main/res/menu/select_video_context.xml
index 41d2b1a6..95576efc 100644
--- a/app/src/main/res/menu/select_video_context.xml
+++ b/app/src/main/res/menu/select_video_context.xml
@@ -19,6 +19,12 @@
android:title="@string/common.download"/>
</group>
+ <group android:id="@+id/hide_pin">
+ <item
+ android:id="@+id/song_menu_pin"
+ android:title="@string/common.pin"/>
+ </group>
+
<group android:id="@+id/hide_delete">
<item
android:id="@+id/song_menu_delete"