From 066a081a92103f6dfb7c1cb70e43dc6757e953b1 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Wed, 4 May 2016 23:23:10 -0700 Subject: Fix theme change after switching launchMode --- .../main/java/github/daneren2005/dsub/activity/SubsonicActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java index 00e80517..06559456 100644 --- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java +++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicActivity.java @@ -883,8 +883,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte restart(true); } protected void restart(boolean resumePosition) { - Intent intent = new Intent(this, ((Object) this).getClass()); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + Intent intent = new Intent(this, this.getClass()); intent.putExtras(getIntent()); if(resumePosition) { intent.putExtra(Constants.FRAGMENT_POSITION, lastSelectedPosition); @@ -893,6 +892,7 @@ public class SubsonicActivity extends AppCompatActivity implements OnItemSelecte intent.putExtra(Constants.INTENT_EXTRA_FRAGMENT_TYPE, fragmentType); intent.putExtra(Constants.FRAGMENT_POSITION, getDrawerItemId(fragmentType)); } + finish(); Util.startActivityWithoutTransition(this, intent); } -- cgit v1.2.3 From 7ee9cd9d8466a5870da3c3a2a1e3002038a22f9f Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Fri, 6 May 2016 16:35:37 -0700 Subject: Fixes #691: Reverse search/shuffle order --- app/src/main/res/menu/select_artist.xml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'app') diff --git a/app/src/main/res/menu/select_artist.xml b/app/src/main/res/menu/select_artist.xml index 66ba37ba..f94cda8b 100644 --- a/app/src/main/res/menu/select_artist.xml +++ b/app/src/main/res/menu/select_artist.xml @@ -1,17 +1,17 @@ + + - - Date: Wed, 11 May 2016 17:01:05 +0200 Subject: Updated french translation. --- app/src/main/res/values-fr/strings.xml | 98 +++++++++++++++++----------------- 1 file changed, 49 insertions(+), 49 deletions(-) (limited to 'app') diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index f435854b..41532874 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -10,7 +10,7 @@ Suivant Précédent Mettre en cache - Mettre en cache Permanent + Mettre en cache permanent Supprimer Favori Supp. favori @@ -19,11 +19,11 @@ Commentaire Publique Jouer Video - Stream Video + Stream Vidéo Confirmer Voulez-vous %1$s %2$s ? cache - Aucune donnée + Aucune données Avertissement Accueil @@ -39,7 +39,7 @@ Bienvenue ! Bienvenue dans DSub ! L\'application est actuellement configurée pour se connecter au serveur de démo Subsonic (demo.subsonic.org). Vous pouvez configurer votre propre serveur dans les paramètres. Choisir Paramètres et mettre à jour la configuration pour vous y connecter. - A propos de DSub + À propos de DSub FAQ Paramètres Albums Ajoutés récemments - Joués récemment + Joués récemments Les plus joués Les mieux notés Favoris @@ -64,7 +64,7 @@ Par décennies @string/main.albums_genres Presser retour à nouveau pour quitter - Completed scan of Server + Analyse du server terminée Recherche Hasard @@ -75,31 +75,31 @@ Paramètres Aide - A propos + À propos Ajouter à la playlist Supprimer de la playlist Supprimer la playlist %s - Echec de la suppression de la playlist %s + Échec de la suppression de la playlist %s Envoyer le journal Ajuster le minuteur Vérifier les nouveaux podcasts Ajouter une chaîne Synchronisation automatique Arrêter la synchro. - Afficher tous les media + Afficher tous les médias Afficher l\'artiste Partager Supprimer du cache Diffuser vers appareil FAQ - Ajouter utilisateur - Relire le server + Ajouter un utilisateur + Relire le serveur Noter Playlists - Mise à jour informations + Mise à jour des informations Informations de la playlist %s mises à jour - Echec de la mise à jour des informations de la playlist %s + Échec de la mise à jour des informations de la playlist %s Remplacer la playlist existante Ajouter à la playlist Créer une nouvelle @@ -119,7 +119,7 @@ Déconnecté Erreur : Aucune carte SD card disponible. Problème : Aucun réseau disponible. - Serveur sans licence valide. %d jours restant. + Serveur sans licence valide. %d jours restants. Téléchargement illimité en supportant Subsonic. Maintenant Plus tard @@ -138,19 +138,19 @@ %d chansons %d albums - Une erreur est survenue avec ce podcast pendant le chargement. Le serveur doit d\'abord le télécharger. - Ce podcast n\'a pas été chargé sur le serveur. Le serveur doit d\'abord le télécharger. - Le chargement du podcast a commencer sur le serveur. Recharger SVP dans quelques instants. + Une erreur est survenue avec ce podcast pendant le chargement. Le serveur doit d\'abord le télécharger. + Ce podcast n\'a pas été chargé sur le serveur. Le serveur doit d\'abord le télécharger. + Le chargement du podcast a commencé sur le serveur. Recharger SVP dans quelques instants. Télécharger sur le serveur Supprimer du serveur Téléchargement %s sur le serveur - Le serveur recherche les mises à jour de podcasts + Le serveur recherche les mises à jour des podcasts Podcast supprimé %s Erreur lors de la suppression du podcast %s URL : Erreur lors de l\'ajout du podcast Podcast invalide : %s - Supprimer podcast + Supprimer le podcast La playlist est vide Chargement en cours liste au hasard... @@ -160,7 +160,7 @@ Afficher l\'album Paroles Enlever tout - Ecran actif + Écran actif Hasard Basculer Enregistrer la playlist @@ -187,8 +187,8 @@ En cours : %1$s En cours : %1$s \nTaille estimée : %2$s - Echec du chargement - Echec de la création du favori + Échec du chargement + Échec de la création du favori Nouveaux podcasts disponibles Nouveaux titres dans les playlists @@ -197,17 +197,17 @@ Noté \"%s\" Dévalués \"%s\" - Echec de la mise à jour \"%s\", Réessayer plus tard. + Échec de la mise à jour \"%s\", réessayer plus tard. - Echec de la récupération des playlists + Échec de la récupération des playlists Titre %1$s ajouté à \"%2$s\" - Echec de la mise à jour \"%s\", réessayer plus tard. + Échec de la mise à jour \"%s\", réessayer plus tard. Titre %1$s retiré de \"%2$s\" Supprimer le favori - Dupprimer le favori pour + Supprimer le favori pour Favori pour \"%s\" supprimé - Echec de la suppression du favori pour \"%s\" + Échec de la suppression du favori pour \"%s\" Détails du favori Titre : %1$s \nPosition : %2$s @@ -217,13 +217,13 @@ Reprendre la lecture ? Reprendre la lecture de \'%1$s\' depuis %2$s Reprendre - Start Over + Relire depuis le début Noter \"%s\" Note attribuée à \"%s\" Echec de l\'attribution de la note à \"%s\" Note supprimée pour \"%s\" - Echec de la suppression de la note pour \"%s\" + Échec de la suppression de la note pour \"%s\" Erreur Ignoré @@ -264,9 +264,9 @@ Saisir un nom d\'utilisateur valide (espaces interdits). Apparence Thème - Light - Dark - Black + Clair + Sombre + Noir Holo Plein écran Cacher autant d\'élément graphique que possible @@ -300,8 +300,8 @@ 3000 Kbps 5000 Kbps Illimité - Streaming en Wifi uniquement - Ne lire les média qu\'avec une connexion Wifi + Streaming en wifi uniquement + Ne lire les média qu\'avec une connexion wifi Délai d\'attente réseau (timeout) 10 secondes 15 secondes @@ -331,7 +331,7 @@ Taille de la liste de lecture aléatoire Temporisateur Durée temporisation - Eteindre + Éteindre Allumer Toujours en fonctionnement Perte temporaire de focus @@ -405,7 +405,7 @@ Administration Afficher ou non l\'accès aux outils d\'administration - Shuffle By + Mélanger par Année début : Année fin : Genre : @@ -414,11 +414,11 @@ Expiration : %s N\'expire jamais Supprimer le partage %s - Echec de la suppression du partage %s + Échec de la suppression du partage %s Pas d\'expiration Expiration : Informations de partage mises à jour pour %s - Echec de la mise à jour des informations de partage pour %s + Échec de la mise à jour des informations de partage pour %s Partager via Supprimer le partage @@ -430,20 +430,20 @@ Saisir un nom d\'utilisateur valide Mettre à jour les autorisations Autorisation mises à jour pour %1$s - Echec lors de lamise à jour des autorisations de %1$s + Échec lors de lamise à jour des autorisations de %1$s Modifier Email Email remplacé pour %1$s - Echec lors du remplacement de l\'Email de %1$s + Échec lors du remplacement de l\'Email de %1$s Nouvel Email : Saisir un Email valide Modifier le mot de passe Mot de passe modifié pour %1$s - Echec du remplacement du mot de passe pour %1$s + Échec du remplacement du mot de passe pour %1$s Nouveau mot de passe : Saisir un mot de passe valide Supprimer l\'utilisateur Suppression effectuée %1$s - Echec de la suppression %1$s + Échec de la suppression %1$s Confirmer le mot de passe Mot de passe saisi erroné @@ -455,7 +455,7 @@ Modifier les pochettes Ajouter des commentaires Gérer les podcasts - Ecouter de la musique + Écouter de la musique Télécommander la lecture (jukebox) Gérer les partages Utiliser Last.FM @@ -469,8 +469,8 @@ Interrogation du serveur, veuillez patienter. - Versions incompatible. Mettre à jour DSub. - Versions incompatibles. Mettre à jour le serveur Subsonic. + Version incompatible. Mettre à jour DSub. + Version incompatible. Mettre à jour le serveur Subsonic. Mauvais nom d\'utilisateur ou mot de passe. Non autorisé. Vérifier les droit de l\'utilisateur sur le serveur Subsonic. %d artistes récupérés. @@ -480,9 +480,9 @@ Sélectionner un dossier Tous les dossier - Equaliseur + Équaliseur Activé - Selectioner un préréglage + Sélectionner un préréglage Bass Booster Voice Booster %d dB @@ -501,8 +501,8 @@ 0 KB 0 B - Change Log - What\'s New + Liste des changements + Nouveautés OK Plus… -- cgit v1.2.3 From 6946b212e47f8fd956c7f49280ae2beaf8919d48 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Thu, 19 May 2016 17:24:25 -0700 Subject: Debounce next/previous so bad devices can't spam it --- .../dsub/service/DownloadServiceLifecycleSupport.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java b/app/src/main/java/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java index ce2c81f2..78b6c78e 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java +++ b/app/src/main/java/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java @@ -56,6 +56,7 @@ import static github.daneren2005.dsub.domain.PlayerState.PREPARING; public class DownloadServiceLifecycleSupport { private static final String TAG = DownloadServiceLifecycleSupport.class.getSimpleName(); public static final String FILENAME_DOWNLOADS_SER = "downloadstate2.ser"; + private static final int DEBOUNCE_TIME = 200; private final DownloadService downloadService; private Looper eventLooper; @@ -413,11 +414,17 @@ public class DownloadServiceLifecycleSupport { break; case RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS: case KeyEvent.KEYCODE_MEDIA_PREVIOUS: - downloadService.previous(); + if(lastPressTime < (System.currentTimeMillis() - DEBOUNCE_TIME)) { + lastPressTime = System.currentTimeMillis(); + downloadService.previous(); + } break; case RemoteControlClient.FLAG_KEY_MEDIA_NEXT: case KeyEvent.KEYCODE_MEDIA_NEXT: - downloadService.next(); + if(lastPressTime < (System.currentTimeMillis() - DEBOUNCE_TIME)) { + lastPressTime = System.currentTimeMillis(); + downloadService.next(); + } break; case KeyEvent.KEYCODE_MEDIA_REWIND: downloadService.rewind(); -- cgit v1.2.3 From 1109f27f3c39670a959338062cf52bfa9521a4e2 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Thu, 19 May 2016 17:25:33 -0700 Subject: Enable double click pause/play button to skip as well --- .../daneren2005/dsub/service/DownloadServiceLifecycleSupport.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java b/app/src/main/java/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java index 78b6c78e..5e9e04fc 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java +++ b/app/src/main/java/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java @@ -401,10 +401,10 @@ public class DownloadServiceLifecycleSupport { } else if(event.getAction() == KeyEvent.ACTION_UP) { switch (event.getKeyCode()) { case RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE: - case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: downloadService.togglePlayPause(); break; case KeyEvent.KEYCODE_HEADSETHOOK: + case KeyEvent.KEYCODE_MEDIA_PLAY_PAUSE: if(lastPressTime < (System.currentTimeMillis() - 500)) { lastPressTime = System.currentTimeMillis(); downloadService.togglePlayPause(); -- cgit v1.2.3 From 3b95f554b3b99f77c99e5962291b1678fa2f1fd9 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Thu, 19 May 2016 17:30:03 -0700 Subject: Don't stop trying when we encounter a bad scrobble --- .../daneren2005/dsub/service/RESTMusicService.java | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'app') 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 7a2edf79..1d9fd4af 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java @@ -1769,13 +1769,13 @@ public class RESTMusicService implements MusicService { int count = offline.getInt(Constants.OFFLINE_SCROBBLE_COUNT, 0); int retry = 0; for(int i = 1; i <= count; i++) { - String id = offline.getString(Constants.OFFLINE_SCROBBLE_ID + i, null); - long time = offline.getLong(Constants.OFFLINE_SCROBBLE_TIME + i, 0); - if(id != null) { - scrobble(id, true, time, context, progressListener); - } else { - String search = offline.getString(Constants.OFFLINE_SCROBBLE_SEARCH + i, ""); - try{ + try { + String id = offline.getString(Constants.OFFLINE_SCROBBLE_ID + i, null); + long time = offline.getLong(Constants.OFFLINE_SCROBBLE_TIME + i, 0); + if(id != null) { + scrobble(id, true, time, context, progressListener); + } else { + String search = offline.getString(Constants.OFFLINE_SCROBBLE_SEARCH + i, ""); SearchCritera critera = new SearchCritera(search, 0, 0, 1); SearchResult result = searchNew(critera, context, progressListener); if(result.getSongs().size() == 1){ @@ -1787,10 +1787,10 @@ public class RESTMusicService implements MusicService { throw new Exception("Song not found on server"); } } - catch(Exception e){ - Log.e(TAG, e.toString()); - retry++; - } + } + catch(Exception e){ + Log.e(TAG, e.toString()); + retry++; } } -- cgit v1.2.3 From 61be7318e654aa25a0607ff56eb98b3a492d9a35 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Thu, 19 May 2016 18:00:21 -0700 Subject: Fixes #694: Stop sticking instance to rest2 if changed --- .../daneren2005/dsub/service/parser/AbstractParser.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/service/parser/AbstractParser.java b/app/src/main/java/github/daneren2005/dsub/service/parser/AbstractParser.java index 4ee37dad..d6e1a002 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/parser/AbstractParser.java +++ b/app/src/main/java/github/daneren2005/dsub/service/parser/AbstractParser.java @@ -133,7 +133,16 @@ public abstract class AbstractParser { } protected int nextParseEvent() throws Exception { - return parser.next(); + try { + return parser.next(); + } catch(Exception e) { + if(ServerInfo.isMadsonic6(context, instance)) { + ServerInfo overrideInfo = new ServerInfo(); + overrideInfo.saveServerInfo(context, instance); + } + + throw e; + } } protected String getElementName() { @@ -162,6 +171,11 @@ public abstract class AbstractParser { protected void validate() throws Exception { if (!rootElementFound) { + if(ServerInfo.isMadsonic6(context, instance)) { + ServerInfo overrideInfo = new ServerInfo(); + overrideInfo.saveServerInfo(context, instance); + } + throw new Exception(context.getResources().getString(R.string.background_task_parse_error)); } } -- cgit v1.2.3 From 2651289aad284b8aef411a6541f3d578898d29b2 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Mon, 23 May 2016 17:56:25 -0700 Subject: Wrap broadcasts in try/catch in case they are causing #696 --- .../java/github/daneren2005/dsub/util/Util.java | 119 +++++++++++---------- 1 file changed, 63 insertions(+), 56 deletions(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/util/Util.java b/app/src/main/java/github/daneren2005/dsub/util/Util.java index 7efb020d..c3f1a086 100644 --- a/app/src/main/java/github/daneren2005/dsub/util/Util.java +++ b/app/src/main/java/github/daneren2005/dsub/util/Util.java @@ -1418,72 +1418,79 @@ public final class Util { *

Broadcasts the given song info as the new song being played.

*/ public static void broadcastNewTrackInfo(Context context, MusicDirectory.Entry song) { - DownloadService downloadService = (DownloadService)context; - Intent intent = new Intent(EVENT_META_CHANGED); - Intent avrcpIntent = new Intent(AVRCP_METADATA_CHANGED); - - if (song != null) { - intent.putExtra("title", song.getTitle()); - intent.putExtra("artist", song.getArtist()); - intent.putExtra("album", song.getAlbum()); - - File albumArtFile = FileUtil.getAlbumArtFile(context, song); - intent.putExtra("coverart", albumArtFile.getAbsolutePath()); - avrcpIntent.putExtra("playing", true); - } else { - intent.putExtra("title", ""); - intent.putExtra("artist", ""); - intent.putExtra("album", ""); - intent.putExtra("coverart", ""); - avrcpIntent.putExtra("playing", false); - } - addTrackInfo(context, song, avrcpIntent); + try { + Intent intent = new Intent(EVENT_META_CHANGED); + Intent avrcpIntent = new Intent(AVRCP_METADATA_CHANGED); + + if (song != null) { + intent.putExtra("title", song.getTitle()); + intent.putExtra("artist", song.getArtist()); + intent.putExtra("album", song.getAlbum()); - context.sendBroadcast(intent); - context.sendBroadcast(avrcpIntent); + File albumArtFile = FileUtil.getAlbumArtFile(context, song); + intent.putExtra("coverart", albumArtFile.getAbsolutePath()); + avrcpIntent.putExtra("playing", true); + } else { + intent.putExtra("title", ""); + intent.putExtra("artist", ""); + intent.putExtra("album", ""); + intent.putExtra("coverart", ""); + avrcpIntent.putExtra("playing", false); + } + addTrackInfo(context, song, avrcpIntent); + + context.sendBroadcast(intent); + context.sendBroadcast(avrcpIntent); + } catch(Exception e) { + Log.e(TAG, "Failed to broadcastNewTrackInfo", e); + } } /** *

Broadcasts the given player state as the one being set.

*/ public static void broadcastPlaybackStatusChange(Context context, MusicDirectory.Entry song, PlayerState state) { - Intent intent = new Intent(EVENT_PLAYSTATE_CHANGED); - Intent avrcpIntent = new Intent(AVRCP_PLAYSTATE_CHANGED); - - switch (state) { - case STARTED: - intent.putExtra("state", "play"); - avrcpIntent.putExtra("playing", true); - break; - case STOPPED: - intent.putExtra("state", "stop"); - avrcpIntent.putExtra("playing", false); - break; - case PAUSED: - intent.putExtra("state", "pause"); - avrcpIntent.putExtra("playing", false); - break; - case PREPARED: - // Only send quick pause event for samsung devices, causes issues for others - if(Build.MANUFACTURER.toLowerCase().indexOf("samsung") != -1) { + try { + Intent intent = new Intent(EVENT_PLAYSTATE_CHANGED); + Intent avrcpIntent = new Intent(AVRCP_PLAYSTATE_CHANGED); + + switch (state) { + case STARTED: + intent.putExtra("state", "play"); + avrcpIntent.putExtra("playing", true); + break; + case STOPPED: + intent.putExtra("state", "stop"); avrcpIntent.putExtra("playing", false); - } else { - return; // Don't broadcast anything - } - break; - case COMPLETED: - intent.putExtra("state", "complete"); - avrcpIntent.putExtra("playing", false); - break; - default: - return; // No need to broadcast. - } - addTrackInfo(context, song, avrcpIntent); + break; + case PAUSED: + intent.putExtra("state", "pause"); + avrcpIntent.putExtra("playing", false); + break; + case PREPARED: + // Only send quick pause event for samsung devices, causes issues for others + if (Build.MANUFACTURER.toLowerCase().indexOf("samsung") != -1) { + avrcpIntent.putExtra("playing", false); + } else { + return; // Don't broadcast anything + } + break; + case COMPLETED: + intent.putExtra("state", "complete"); + avrcpIntent.putExtra("playing", false); + break; + default: + return; // No need to broadcast. + } + addTrackInfo(context, song, avrcpIntent); - if(state != PlayerState.PREPARED) { - context.sendBroadcast(intent); + if (state != PlayerState.PREPARED) { + context.sendBroadcast(intent); + } + context.sendBroadcast(avrcpIntent); + } catch(Exception e) { + Log.e(TAG, "Failed to broadcastPlaybackStatusChange", e); } - context.sendBroadcast(avrcpIntent); } private static void addTrackInfo(Context context, MusicDirectory.Entry song, Intent intent) { -- cgit v1.2.3 From 31707f8a1ba68da9c73b8540df44b931d4e4e723 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Wed, 25 May 2016 17:41:58 -0700 Subject: Fixes #700: close now playing when viewing artist/album --- .../github/daneren2005/dsub/activity/SubsonicFragmentActivity.java | 3 +++ 1 file changed, 3 insertions(+) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java index 630cdd50..51de1f6c 100644 --- a/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java +++ b/app/src/main/java/github/daneren2005/dsub/activity/SubsonicFragmentActivity.java @@ -417,6 +417,9 @@ public class SubsonicFragmentActivity extends SubsonicActivity implements Downlo openNowPlaying(); } } else { + if(slideUpPanel.getPanelState() == SlidingUpPanelLayout.PanelState.EXPANDED) { + closeNowPlaying(); + } setIntent(intent); } if(drawer != null) { -- cgit v1.2.3 From 6384c5ed2a654cf18948a901f8a35685d17ee248 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sun, 29 May 2016 22:04:19 -0500 Subject: Fixes #703 NPE on refill with no existing executorService --- app/src/main/java/github/daneren2005/dsub/util/ArtistRadioBuffer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/util/ArtistRadioBuffer.java b/app/src/main/java/github/daneren2005/dsub/util/ArtistRadioBuffer.java index b42fa066..bdd961b4 100644 --- a/app/src/main/java/github/daneren2005/dsub/util/ArtistRadioBuffer.java +++ b/app/src/main/java/github/daneren2005/dsub/util/ArtistRadioBuffer.java @@ -107,7 +107,7 @@ public class ArtistRadioBuffer { } private void refill() { - if (buffer != null && (buffer.size() > refillThreshold || (!Util.isNetworkConnected(context) && !Util.isOffline(context)) || lastCount == 0)) { + if (buffer != null && executorService != null && (buffer.size() > refillThreshold || (!Util.isNetworkConnected(context) && !Util.isOffline(context)) || lastCount == 0)) { executorService.shutdown(); return; } -- cgit v1.2.3 From fb6048141ee594dc2d30a96be3150b6a94983852 Mon Sep 17 00:00:00 2001 From: Scott Jackson Date: Sun, 29 May 2016 22:35:57 -0500 Subject: Fix crappy network causing newest podcasts to never load --- .../dsub/fragments/SelectPodcastsFragment.java | 2 +- .../daneren2005/dsub/service/CachedMusicService.java | 17 ++++++++++++----- .../github/daneren2005/dsub/service/MusicService.java | 2 +- .../daneren2005/dsub/service/OfflineMusicService.java | 2 +- .../daneren2005/dsub/service/RESTMusicService.java | 4 ++-- 5 files changed, 17 insertions(+), 10 deletions(-) (limited to 'app') diff --git a/app/src/main/java/github/daneren2005/dsub/fragments/SelectPodcastsFragment.java b/app/src/main/java/github/daneren2005/dsub/fragments/SelectPodcastsFragment.java index 25be47b1..2e2a16b3 100644 --- a/app/src/main/java/github/daneren2005/dsub/fragments/SelectPodcastsFragment.java +++ b/app/src/main/java/github/daneren2005/dsub/fragments/SelectPodcastsFragment.java @@ -175,7 +175,7 @@ public class SelectPodcastsFragment extends SelectRecyclerFragment if(!Util.isOffline(context) && ServerInfo.hasNewestPodcastEpisodes(context)) { try { - newestEpisodes = musicService.getNewestPodcastEpisodes(10, context, listener); + newestEpisodes = musicService.getNewestPodcastEpisodes(refresh, context, listener, 10); for(MusicDirectory.Entry entry: newestEpisodes.getChildren()) { for(PodcastChannel channel: channels) { diff --git a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java index 3be04cff..1a17dfb3 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/CachedMusicService.java @@ -22,8 +22,6 @@ import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; -import java.util.Collections; -import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.ListIterator; @@ -59,7 +57,6 @@ import github.daneren2005.dsub.util.SongDBHandler; import github.daneren2005.dsub.util.SyncUtil; import github.daneren2005.dsub.util.TimeLimitedCache; import github.daneren2005.dsub.util.FileUtil; -import github.daneren2005.dsub.util.UpdateHelper; import github.daneren2005.dsub.util.Util; import static github.daneren2005.dsub.domain.MusicDirectory.Entry; @@ -926,8 +923,18 @@ public class CachedMusicService implements MusicService { } @Override - public MusicDirectory getNewestPodcastEpisodes(int count, Context context, ProgressListener progressListener) throws Exception { - return musicService.getNewestPodcastEpisodes(count, context, progressListener); + public MusicDirectory getNewestPodcastEpisodes(boolean refresh, Context context, ProgressListener progressListener, int count) throws Exception { + MusicDirectory result = null; + + String cacheName = getCacheName(context, "newestPodcastEpisodes"); + try { + result = musicService.getNewestPodcastEpisodes(refresh, context, progressListener, count); + FileUtil.serialize(context, result, cacheName); + } catch(IOException e) { + result = FileUtil.deserialize(context, cacheName, MusicDirectory.class, 24); + } finally { + return result; + } } @Override diff --git a/app/src/main/java/github/daneren2005/dsub/service/MusicService.java b/app/src/main/java/github/daneren2005/dsub/service/MusicService.java index 876b45fd..22f154c4 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/MusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/MusicService.java @@ -149,7 +149,7 @@ public interface MusicService { MusicDirectory getPodcastEpisodes(boolean refresh, String id, Context context, ProgressListener progressListener) throws Exception; - MusicDirectory getNewestPodcastEpisodes(int count, Context context, ProgressListener progressListener) throws Exception; + MusicDirectory getNewestPodcastEpisodes(boolean refresh, Context context, ProgressListener progressListener, int count) throws Exception; void refreshPodcasts(Context context, ProgressListener progressListener) throws Exception; 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 e1929bf8..e004101d 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/OfflineMusicService.java @@ -775,7 +775,7 @@ public class OfflineMusicService implements MusicService { } @Override - public MusicDirectory getNewestPodcastEpisodes(int count, Context context, ProgressListener progressListener) throws Exception { + public MusicDirectory getNewestPodcastEpisodes(boolean refresh, Context context, ProgressListener progressListener, int count) throws Exception { throw new OfflineException(ERRORMSG); } 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 1d9fd4af..4c3a121d 100644 --- a/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java +++ b/app/src/main/java/github/daneren2005/dsub/service/RESTMusicService.java @@ -1336,8 +1336,8 @@ public class RESTMusicService implements MusicService { } @Override - public MusicDirectory getNewestPodcastEpisodes(int count, Context context, ProgressListener progressListener) throws Exception { - Reader reader = getReader(context, progressListener, "getNewestPodcasts", null, Arrays.asList("count"), Arrays.asList(count)); + public MusicDirectory getNewestPodcastEpisodes(boolean refresh, Context context, ProgressListener progressListener, int count) throws Exception { + Reader reader = getReader(context, progressListener, "getNewestPodcasts", null, Arrays.asList("count"), Arrays.asList(count), true); try { return new PodcastEntryParser(context, getInstance(context)).parse(null, reader, progressListener); -- cgit v1.2.3