aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Jackson <daneren2005@gmail.com>2014-02-11 14:56:07 -0800
committerScott Jackson <daneren2005@gmail.com>2014-02-11 14:56:07 -0800
commite4b23a8076f1b420b439744fc05b646f3ce19c1a (patch)
treeb762eef1b56987a7db92720646b73dfe81d0d027
parent48885e5d506a4434b52c7f053e1edf540e573df0 (diff)
parent68cf8918365fa41bc12dfde1b7e39ec5a4279e9e (diff)
downloaddsub-e4b23a8076f1b420b439744fc05b646f3ce19c1a.tar.gz
dsub-e4b23a8076f1b420b439744fc05b646f3ce19c1a.tar.bz2
dsub-e4b23a8076f1b420b439744fc05b646f3ce19c1a.zip
Merge branch 'master' of github.com:daneren2005/Subsonic
-rw-r--r--libs/android-support-v4.jarbin621451 -> 627582 bytes
-rw-r--r--libs/android-support-v7-appcompat.jarbin343731 -> 343731 bytes
-rw-r--r--res/values-es/strings.xml1
-rw-r--r--res/values-fr/strings.xml178
-rw-r--r--res/values-hu/strings.xml1
-rw-r--r--res/values-ru/strings.xml1
-rw-r--r--res/values/strings.xml6
-rw-r--r--res/xml/settings.xml6
-rw-r--r--src/github/daneren2005/dsub/activity/SettingsActivity.java3
-rw-r--r--src/github/daneren2005/dsub/service/DownloadFile.java12
-rw-r--r--src/github/daneren2005/dsub/service/DownloadServiceImpl.java27
-rw-r--r--src/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java33
-rw-r--r--src/github/daneren2005/dsub/util/Constants.java8
-rw-r--r--src/github/daneren2005/dsub/util/Util.java39
14 files changed, 73 insertions, 242 deletions
diff --git a/libs/android-support-v4.jar b/libs/android-support-v4.jar
index 9056828a..96644edb 100644
--- a/libs/android-support-v4.jar
+++ b/libs/android-support-v4.jar
Binary files differ
diff --git a/libs/android-support-v7-appcompat.jar b/libs/android-support-v7-appcompat.jar
index fd1d984d..045c7933 100644
--- a/libs/android-support-v7-appcompat.jar
+++ b/libs/android-support-v7-appcompat.jar
Binary files differ
diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml
index 5dd4cdda..cb245e83 100644
--- a/res/values-es/strings.xml
+++ b/res/values-es/strings.xml
@@ -308,7 +308,6 @@
<string name="settings.screen_lit_summary">Mantener la pantalla encendida durantes las descargas mejora la velocidad de descarga.</string>
<string name="settings.playlist_title">Listas de reproducción</string>
<string name="settings.playlist_random_size_title">Tamaño aleatorio</string>
- <string name="settings.buffer_length">Tamaño del buffer (0 = totalmente en caché)</string>
<string name="settings.sleep_timer_title">Temporizador</string>
<string name="settings.sleep_timer_duration_title">Duración del temporizador</string>
<string name="settings.sleep_timer_off">Encendido</string>
diff --git a/res/values-fr/strings.xml b/res/values-fr/strings.xml
deleted file mode 100644
index 6e7efb9f..00000000
--- a/res/values-fr/strings.xml
+++ /dev/null
@@ -1,178 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
- <string name="common.appname">Subsonic</string>
- <string name="common.ok">OK</string>
- <string name="common.save">Enregistrer</string>
- <string name="common.cancel">Annuler</string>
-
- <string name="main.welcome_title">Bienvenue!</string>
- <string name="main.welcome_text">Bienvenue dans Subsonic! L\'application est configurée pour utiliser le serveur démo de Subsonic.
- Après avoir configuré votre serveur personnel (disponible à partir de <b>subsonic.org</b>), veuillez accéder aux <b>Paramètres</b> et modifier la configuration pour vous y connecter.</string>
- <string name="main.select_server">Sélectionner un serveur</string>
- <string name="main.shuffle">Lecture aléatoire</string>
- <string name="main.offline">Hors-ligne</string>
- <string name="main.settings">Paramètres</string>
- <string name="main.albums_title">Albums</string>
- <string name="main.albums_newest">Plus récents</string>
- <string name="main.albums_random">Aléatoire</string>
- <string name="main.albums_highest">Mieux cotés</string>
- <string name="main.albums_recent">Récemment joués</string>
- <string name="main.albums_frequent">Fréquemment joués</string>
-
- <string name="search.label">Recherche</string>
- <string name="search.title">Recherche</string>
- <string name="search.search">Cliquer pour rechercher</string>
- <string name="search.no_match">Aucun résultat, veuillez essayer à nouveau</string>
- <string name="search.artists">Artistes</string>
- <string name="search.albums">Albums</string>
- <string name="search.songs">Pièces</string>
- <string name="search.more">Afficher plus</string>
-
- <string name="progress.wait">Veuillez patienter...</string>
-
- <string name="music_library.label">Bibliothèque musicale</string>
- <string name="music_library.label_offline">Musique hors-ligne</string>
-
- <string name="select_album.empty">Aucune musique trouvée</string>
- <string name="select_album.select">Tout sélectionner</string>
- <!--<string name="select_album.n_selected">TODO: %d tracks selected.</string>-->
- <!--<string name="select_album.n_unselected">TODO: %d tracks unselected.</string>-->
- <string name="select_album.more">Plus</string>
- <string name="select_album.offline">Hors-ligne</string>
- <string name="select_album.searching">Recherche en cours...</string>
- <string name="select_album.no_sdcard">Erreur: Aucune carte SD disponible.</string>
- <string name="select_album.no_network">Avis: Aucun réseau disponible.</string>
- <string name="select_album.not_licensed">Serveur sans licence. %d jours d\'essai restant.</string>
- <string name="select_album.donate_dialog_message">Obtenez des téléchargements illimités en donnant à Subsonic.</string>
- <string name="select_album.donate_dialog_now">Maintenant</string>
- <string name="select_album.donate_dialog_later">Plus tard</string>
- <string name="select_album.donate_dialog_0_trial_days_left">La période d\'essai est terminée</string>
-
- <string name="download.empty">Playlist vide</string>
- <string name="download.playerstate_downloading">Téléchargement - %s</string>
- <string name="download.playerstate_buffering">Mise en tampon</string>
- <string name="download.playerstate_playing_shuffle">En jeu aléatoire</string>
- <string name="download.menu_show_album">Afficher l\'album</string>
- <string name="download.menu_lyrics">Paroles</string>
- <string name="download.menu_remove">Retirer la pièce</string>
- <string name="download.menu_remove_all">Retirer tout</string>
- <string name="download.menu_shuffle">Mélanger</string>
- <string name="download.menu_save">Enregistrer la playlist</string>
- <string name="download.menu_shuffle_notification">Playlist mélangée</string>
- <string name="download.playlist_title">Enregistrer la playlist</string>
- <string name="download.playlist_name">Saisissez le nom de la playlist:</string>
- <string name="download.playlist_saving">Enregistrement de la playlist \"%s\"...</string>
- <string name="download.playlist_done">Playlist enregistrée avec succès.</string>
- <string name="download.playlist_error">Échec de l\'enregistrement de la playlist, veuillez réessayer plus tard.</string>
-
- <string name="song_details.all">%2$s, %1$s</string>
- <string name="song_details.kbps">%d Kb/s</string>
-
- <string name="lyrics.nomatch">Aucune parole trouvée</string>
-
- <string name="error.label">Erreur</string>
-
- <string name="settings.title">Paramètres de Subsonic</string>
- <string name="settings.test_connection_title">Tester la connexion</string>
- <string name="settings.servers_title">Serveurs</string>
- <string name="settings.server_name">Nom</string>
- <string name="settings.server_address">Adresse du serveur</string>
- <string name="settings.server_username">Nom d\'usager</string>
- <string name="settings.server_password">Mot de passe</string>
- <string name="settings.cache_title">Cache musicale</string>
- <string name="settings.cache_size">Taille de la cache</string>
- <string name="settings.testing_connection">Connexion en cours de test...</string>
- <string name="settings.testing_ok">Connexion correcte</string>
- <string name="settings.testing_unlicensed">Connection correcte. Serveur sans licence.</string>
- <string name="settings.connection_failure">Connection échouée.</string>
- <string name="settings.invalid_url">Veuillez spécifier un URL valide.</string>
- <string name="settings.invalid_username">Veuillez spécifier un nom d\'usager valide (sans espace à la fin).</string>
- <string name="settings.appearance_title">Apparence</string>
- <string name="settings.theme_title">Thème</string>
- <string name="settings.theme_light">Clair</string>
- <string name="settings.theme_dark">Sombre</string>
- <string name="settings.network_title">Réseau</string>
- <string name="settings.max_bitrate_wifi">Débit maximal - Wi-Fi</string>
- <string name="settings.max_bitrate_mobile">Débit maximal - Mobile</string>
- <string name="settings.max_bitrate_32">32 Kb/s</string>
- <string name="settings.max_bitrate_64">64 Kb/s</string>
- <string name="settings.max_bitrate_80">80 Kb/s</string>
- <string name="settings.max_bitrate_96">96 Kb/s</string>
- <string name="settings.max_bitrate_112">112 Kb/s</string>
- <string name="settings.max_bitrate_128">128 Kb/s</string>
- <string name="settings.max_bitrate_160">160 Kb/s</string>
- <string name="settings.max_bitrate_192">192 Kb/s</string>
- <string name="settings.max_bitrate_256">256 Kb/s</string>
- <string name="settings.max_bitrate_320">320 Kb/s</string>
- <string name="settings.max_bitrate_unlimited">Illimité</string>
- <string name="settings.preload_0">0 pièce</string>
- <string name="settings.preload_1">1 pièce</string>
- <string name="settings.preload_2">2 pièces</string>
- <string name="settings.preload_3">3 pièces</string>
- <string name="settings.preload_5">5 pièces</string>
- <string name="settings.preload_10">10 pièces</string>
- <string name="settings.preload_unlimited">Illimité</string>
- <string name="settings.clear_search_history">Effacer l\'historique des recherches</string>
- <string name="settings.search_history_cleared">Historique des recherches effacé</string>
- <string name="settings.other_title">Autres paramètres</string>
- <!--<string name="settings.scrobble_title">TODO: Scrobble to Last.fm</string>-->
- <!--<string name="settings.scrobble_summary">TODO: Remember to set up your Last.fm user and password on the Subsonic server</string>-->
- <string name="settings.hide_media_title">Masquer aux autres</string>
- <string name="settings.hide_media_summary">Masquer les fichiers musicaux et les couvertures d\'album aux autres applis (Gallerie, Musique, etc.)</string>
- <string name="settings.hide_media_toast">Prendra effet la prochaine fois qu\'Android recensera les médias disponibles sur l\'appareil.</string>
- <string name="settings.media_button_title">Boutons média</string>
- <string name="settings.media_button_summary">Répondre au boutons média de l\'appareil, du casque et du Bluetooth</string>
- <!--<string name="settings.screen_lit_title">TODO: Keep screen on</string>-->
- <!--<string name="settings.screen_lit_summary">TODO: Keeping the screen on when downloading may improve download speed</string>-->
-
- <string name="music_service.retry">Une erreur de réseau s\'est produite. Essai %1$d de %2$d.</string>
-
- <string name="background_task.wait">Veuillez patienter...</string>
- <string name="background_task.loading">Chargement.</string>
- <string name="background_task.no_network">Cette application requiert un accès au réseau. Veuillez activer le Wi-Fi ou le réseau mobile.</string>
- <string name="background_task.network_error">Une erreur réseau est survenue. Veuillez vérifier l\'adresse du serveur ou réessayer plus tard.</string>
- <string name="background_task.not_found">Ressource non trouvée. Veuillez vérifier l\'adresse du serveur.</string>
- <string name="background_task.parse_error">Réplique incomprise. Veuillez vérifier l\'adresse du serveur.</string>
-
- <string name="service.connecting">Contact du serveur, veuillez patienter.</string>
-
- <string name="parser.reading">Lecture du serveur.</string>
- <string name="parser.reading_done">Lecture du serveur. Terminé!</string>
- <string name="parser.upgrade_client">Versions incompatible. Veuillez mette à jour l\'application Android Subsonic.</string>
- <string name="parser.upgrade_server">Versions incompatible. Veuillez mette à jour le serveur Subsonic.</string>
- <string name="parser.not_authenticated">Mauvais nom d\'usager ou mot de passe.</string>
- <string name="parser.artist_count">%d artistes récupérés.</string>
-
- <string name="select_artist.refresh">Rafraîchir</string>
- <string name="select_artist.folder">Sélectionner le dossier</string>
- <string name="select_artist.all_folders">Tous les dossiers</string>
-
- <string name="widget.initial_text">Touchez pour sélectionner une pièce</string>
- <string name="widget.sdcard_busy">Carte SD non disponible</string>
- <string name="widget.sdcard_missing">Aucune carte SD</string>
-
- <string name="util.bytes_format.gigabyte">0.00 Go</string>
- <string name="util.bytes_format.megabyte">0.00 Mo</string>
- <string name="util.bytes_format.kilobyte">0 Ko</string>
- <string name="util.bytes_format.byte">0 o</string>
-
- <plurals name="select_album_n_songs">
- <item quantity="zero">Aucune pièce</item>
- <item quantity="one">Une pièce</item>
- <item quantity="other">%d pièces</item>
- </plurals>
- <plurals name="select_album_n_songs_downloading">
- <item quantity="one">Une pièce prévue pour téléchargement.</item>
- <item quantity="other">%d pièces prévues pour téléchargement.</item>
- </plurals>
- <plurals name="select_album_n_songs_added">
- <item quantity="one">Une pièce ajoutée à la file de lecture.</item>
- <item quantity="other">%d pièces ajoutées à la file de lecture.</item>
- </plurals>
- <plurals name="select_album_donate_dialog_n_trial_days_left">
- <item quantity="one">Un jour restant à la période d\'essai</item>
- <item quantity="other">%d jours restant à la période d\'essai</item>
- </plurals>
-
-</resources>
diff --git a/res/values-hu/strings.xml b/res/values-hu/strings.xml
index c4f50fdd..afe5db36 100644
--- a/res/values-hu/strings.xml
+++ b/res/values-hu/strings.xml
@@ -325,7 +325,6 @@
<string name="settings.screen_lit_summary">Képernyő ébrentartása a letöltés alatt, a magasabb letöltési sebesség érdekében.</string>
<string name="settings.playlist_title">Lejátszási listák</string>
<string name="settings.playlist_random_size_title">Véletlenszerű lejátszási lista mérete</string>
- <string name="settings.buffer_length">Pufferméret (0 = teljes gyorsítótárazás)</string>
<string name="settings.sleep_timer_title">Alvás időzítő</string>
<string name="settings.sleep_timer_duration_title">Alvás időzítő időtartam</string>
<string name="settings.sleep_timer_off">Ki</string>
diff --git a/res/values-ru/strings.xml b/res/values-ru/strings.xml
index 2671a8b6..f53a421c 100644
--- a/res/values-ru/strings.xml
+++ b/res/values-ru/strings.xml
@@ -234,7 +234,6 @@
<string name="settings.screen_lit_summary">Оставить экран включенным для повышения скорости при скачивании.</string>
<string name="settings.playlist_title">Списки воспроизведения</string>
<string name="settings.playlist_random_size_title">Размер случайного списка</string>
- <string name="settings.buffer_length">Размер буфера (0 = кешировать полностью)</string>
<string name="settings.sleep_timer_title">Таймер сна</string>
<string name="settings.sleep_timer_duration_title">Продолжительность таймера сна</string>
<string name="settings.sleep_timer_off">Выключен</string>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f1f4a1ca..1d4398f5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -193,6 +193,9 @@
<string name="download.save_bookmark">Bookmark created</string>
<string name="download.downloading_title">Downloading %1$d songs</string>
<string name="download.downloading_summary">Current: %1$s</string>
+ <string name="download.downloading_summary_expanded">Current: %1$s
+ \nEstimated Size: %2$s
+ \nAverage Speed: %3$s kbps</string>
<string name="sync.title">DSub: New media is available</string>
<string name="sync.new_podcasts">New podcasts: %s</string>
@@ -269,7 +272,7 @@
<string name="settings.track_title">Display Track #</string>
<string name="settings.track_summary">Display Track # in front of songs if one exists</string>
<string name="settings.custom_sort">Custom Sort</string>
- <string name="settings.custom_sort_summary">Sort directory listings to properly sort by disc number. Interferes with the servers sort albums by year.</string>
+ <string name="settings.custom_sort_summary">Override default server sorting to sort by disc number and by year.</string>
<string name="settings.network_title">Network</string>
<string name="settings.max_bitrate_wifi">Max Audio bitrate - Wi-Fi</string>
<string name="settings.max_bitrate_mobile">Max Audio bitrate - Mobile</string>
@@ -325,7 +328,6 @@
<string name="settings.screen_lit_summary">Keeping the screen on while downloading improves download speed.</string>
<string name="settings.playlist_title">Play</string>
<string name="settings.playlist_random_size_title">Random Size</string>
- <string name="settings.buffer_length">Buffer Length (0 = when fully cached)</string>
<string name="settings.sleep_timer_title">Sleep Timer</string>
<string name="settings.sleep_timer_duration_title">Sleep Timer Duration</string>
<string name="settings.sleep_timer_off">Off</string>
diff --git a/res/xml/settings.xml b/res/xml/settings.xml
index 30b2e584..573da94b 100644
--- a/res/xml/settings.xml
+++ b/res/xml/settings.xml
@@ -278,12 +278,6 @@
android:title="@string/settings.playback_title">
<EditTextPreference
- android:title="@string/settings.buffer_length"
- android:key="bufferLength"
- android:defaultValue="5"
- android:digits="0123456789"/>
-
- <EditTextPreference
android:title="@string/settings.playlist_random_size_title"
android:key="randomSize"
android:defaultValue="20"
diff --git a/src/github/daneren2005/dsub/activity/SettingsActivity.java b/src/github/daneren2005/dsub/activity/SettingsActivity.java
index 7cebdbdd..40ca5570 100644
--- a/src/github/daneren2005/dsub/activity/SettingsActivity.java
+++ b/src/github/daneren2005/dsub/activity/SettingsActivity.java
@@ -77,7 +77,6 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer
private EditTextPreference randomSize;
private ListPreference tempLoss;
private ListPreference pauseDisconnect;
- private EditTextPreference bufferLength;
private Preference addServerPreference;
private PreferenceCategory serversCategory;
private EditTextPreference chatRefreshRate;
@@ -119,7 +118,6 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer
randomSize = (EditTextPreference) findPreference(Constants.PREFERENCES_KEY_RANDOM_SIZE);
tempLoss = (ListPreference) findPreference(Constants.PREFERENCES_KEY_TEMP_LOSS);
pauseDisconnect = (ListPreference) findPreference(Constants.PREFERENCES_KEY_PAUSE_DISCONNECT);
- bufferLength = (EditTextPreference) findPreference(Constants.PREFERENCES_KEY_BUFFER_LENGTH);
serversCategory = (PreferenceCategory) findPreference(Constants.PREFERENCES_KEY_SERVER_KEY);
addServerPreference = (Preference) findPreference(Constants.PREFERENCES_KEY_SERVER_ADD);
chatRefreshRate = (EditTextPreference) findPreference(Constants.PREFERENCES_KEY_CHAT_REFRESH);
@@ -303,7 +301,6 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer
randomSize.setSummary(randomSize.getText());
tempLoss.setSummary(tempLoss.getEntry());
pauseDisconnect.setSummary(pauseDisconnect.getEntry());
- bufferLength.setSummary(bufferLength.getText() + " seconds");
chatRefreshRate.setSummary(chatRefreshRate.getText());
videoPlayer.setSummary(videoPlayer.getEntry());
syncInterval.setSummary(syncInterval.getEntry());
diff --git a/src/github/daneren2005/dsub/service/DownloadFile.java b/src/github/daneren2005/dsub/service/DownloadFile.java
index cfadced5..9ecfe0ad 100644
--- a/src/github/daneren2005/dsub/service/DownloadFile.java
+++ b/src/github/daneren2005/dsub/service/DownloadFile.java
@@ -63,7 +63,7 @@ public class DownloadFile {
private boolean saveWhenDone = false;
private boolean completeWhenDone = false;
private Integer contentLength = null;
- private int currentSpeed = 0;
+ private long currentSpeed = 0;
public DownloadFile(Context context, MusicDirectory.Entry song, boolean save) {
this.context = context;
@@ -111,7 +111,7 @@ public class DownloadFile {
return contentLength;
}
- public int getCurrentSize() {
+ public long getCurrentSize() {
if(partialFile.exists()) {
return partialFile.length();
} else {
@@ -119,12 +119,12 @@ public class DownloadFile {
if(file.exists()) {
return file.length();
} else {
- return 0;
+ return 0L;
}
}
}
- public int getEstimatedSize() {
+ public long getEstimatedSize() {
if(contentLength != null) {
return contentLength;
}
@@ -135,13 +135,13 @@ public class DownloadFile {
} else if(song.getDuration() == null) {
return 0;
} else {
- int br = getBitrate();
+ int br = (getBitRate() * 1024) / 8;
int duration = song.getDuration();
return br * duration;
}
}
- public int getBytesPerSecond() {
+ public long getBytesPerSecond() {
return currentSpeed;
}
diff --git a/src/github/daneren2005/dsub/service/DownloadServiceImpl.java b/src/github/daneren2005/dsub/service/DownloadServiceImpl.java
index d67d53bf..9f1e5ee9 100644
--- a/src/github/daneren2005/dsub/service/DownloadServiceImpl.java
+++ b/src/github/daneren2005/dsub/service/DownloadServiceImpl.java
@@ -121,6 +121,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
private int cachedPosition = 0;
private long downloadRevision;
private boolean downloadOngoing = false;
+ private DownloadFile lastDownloaded = null;
private static boolean equalizerAvailable;
private static boolean visualizerAvailable;
@@ -1526,13 +1527,26 @@ public class DownloadServiceImpl extends Service implements DownloadService {
}
}
- if(!backgroundDownloadList.isEmpty() && downloadRevision != revision) {
- Util.showDownloadingNotification(this, currentDownloading, backgroundDownloadList.size());
+ if(!backgroundDownloadList.isEmpty()) {
+ DownloadFile speedFile = null;
+ // Updating existing notification
+ if(downloadOngoing) {
+ // Changing download, use speed of last DownloadFile
+ if(revision != downloadRevision && lastDownloaded != null) {
+ speedFile = lastDownloaded;
+ } else {
+ // Updated mid-download
+ speedFile = currentDownloading;
+ }
+ }
+ Util.showDownloadingNotification(this, currentDownloading, backgroundDownloadList.size(), speedFile);
downloadRevision = revision;
+ lastDownloaded = currentDownloading;
downloadOngoing = true;
} else if(backgroundDownloadList.isEmpty() && downloadOngoing) {
Util.hideDownloadingNotification(this);
downloadOngoing = false;
+ lastDownloaded = null;
}
// Delete obsolete .partial and .complete files.
@@ -1608,16 +1622,9 @@ public class DownloadServiceImpl extends Service implements DownloadService {
this.position = position;
partialFile = downloadFile.getPartialFile();
- SharedPreferences prefs = Util.getPreferences(DownloadServiceImpl.this);
- long bufferLength = Integer.parseInt(prefs.getString(Constants.PREFERENCES_KEY_BUFFER_LENGTH, "5"));
- if(bufferLength == 0) {
- // Set to seconds in a day, basically infinity
- bufferLength = 86400L;
- }
-
// Calculate roughly how many bytes BUFFER_LENGTH_SECONDS corresponds to.
int bitRate = downloadFile.getBitRate();
- long byteCount = Math.max(100000, bitRate * 1024L / 8L * bufferLength);
+ long byteCount = Math.max(100000, bitRate * 1024L / 8L * 5L);
// Find out how large the file should grow before resuming playback.
Log.i(TAG, "Buffering from position " + position + " and bitrate " + bitRate);
diff --git a/src/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java b/src/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java
index 65320f84..cd876621 100644
--- a/src/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java
+++ b/src/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java
@@ -92,8 +92,6 @@ public class DownloadServiceLifecycleSupport {
} else if (DownloadServiceImpl.CMD_STOP.equals(action)) {
downloadService.pause();
downloadService.seekTo(0);
- } else if(DownloadServiceImpl.CANCEL_DOWNLOADS.equals(action)) {
- downloadService.clearBackground();
}
}
});
@@ -204,19 +202,26 @@ public class DownloadServiceLifecycleSupport {
}
public void onStart(Intent intent) {
- if (intent != null && intent.getExtras() != null) {
- final KeyEvent event = (KeyEvent) intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
- if (event != null) {
- eventHandler.post(new Runnable() {
- @Override
- public void run() {
- if(!setup.get()) {
- lock.lock();
- lock.unlock();
+ if (intent != null) {
+ if(intent.getExtras() != null) {
+ final KeyEvent event = (KeyEvent) intent.getExtras().get(Intent.EXTRA_KEY_EVENT);
+ if (event != null) {
+ eventHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ if(!setup.get()) {
+ lock.lock();
+ lock.unlock();
+ }
+ handleKeyEvent(event);
}
- handleKeyEvent(event);
- }
- });
+ });
+ }
+ } else {
+ String action = intent.getAction();
+ if(DownloadServiceImpl.CANCEL_DOWNLOADS.equals(action)) {
+ downloadService.clearBackground();
+ }
}
}
}
diff --git a/src/github/daneren2005/dsub/util/Constants.java b/src/github/daneren2005/dsub/util/Constants.java
index c6dd49f2..5d80a961 100644
--- a/src/github/daneren2005/dsub/util/Constants.java
+++ b/src/github/daneren2005/dsub/util/Constants.java
@@ -41,7 +41,6 @@ public final class Constants {
public static final String INTENT_EXTRA_NAME_ARTIST = "subsonic.artist";
public static final String INTENT_EXTRA_NAME_TITLE = "subsonic.title";
public static final String INTENT_EXTRA_NAME_AUTOPLAY = "subsonic.playall";
- public static final String INTENT_EXTRA_NAME_ERROR = "subsonic.error";
public static final String INTENT_EXTRA_NAME_QUERY = "subsonic.query";
public static final String INTENT_EXTRA_NAME_PLAYLIST_ID = "subsonic.playlist.id";
public static final String INTENT_EXTRA_NAME_PLAYLIST_NAME = "subsonic.playlist.name";
@@ -50,7 +49,6 @@ public final class Constants {
public static final String INTENT_EXTRA_NAME_ALBUM_LIST_SIZE = "subsonic.albumlistsize";
public static final String INTENT_EXTRA_NAME_ALBUM_LIST_OFFSET = "subsonic.albumlistoffset";
public static final String INTENT_EXTRA_NAME_SHUFFLE = "subsonic.shuffle";
- public static final String INTENT_EXTRA_NAME_REFRESH = "subsonic.refresh";
public static final String INTENT_EXTRA_REQUEST_SEARCH = "subsonic.requestsearch";
public static final String INTENT_EXTRA_NAME_EXIT = "subsonic.exit" ;
public static final String INTENT_EXTRA_NAME_DOWNLOAD = "subsonic.download";
@@ -65,7 +63,6 @@ public final class Constants {
// Notification IDs.
public static final int NOTIFICATION_ID_PLAYING = 100;
- public static final int NOTIFICATION_ID_ERROR = 101;
public static final int NOTIFICATION_ID_DOWNLOADING = 102;
// Preferences keys.
@@ -104,7 +101,6 @@ public final class Constants {
public static final String PREFERENCES_KEY_REPEAT_MODE = "repeatMode";
public static final String PREFERENCES_KEY_WIFI_REQUIRED_FOR_DOWNLOAD = "wifiRequiredForDownload";
public static final String PREFERENCES_KEY_RANDOM_SIZE = "randomSize";
- public static final String PREFERENCES_KEY_SLEEP_TIMER = "sleepTimer";
public static final String PREFERENCES_KEY_SLEEP_TIMER_DURATION = "sleepTimerDuration";
public static final String PREFERENCES_KEY_OFFLINE = "offline";
public static final String PREFERENCES_KEY_TEMP_LOSS = "tempLoss";
@@ -112,7 +108,6 @@ public final class Constants {
public static final String PREFERENCES_KEY_SHUFFLE_END_YEAR = "endYear";
public static final String PREFERENCES_KEY_SHUFFLE_GENRE = "genre";
public static final String PREFERENCES_KEY_KEEP_SCREEN_ON = "keepScreenOn";
- public static final String PREFERENCES_KEY_BUFFER_LENGTH = "bufferLength";
public static final String PREFERENCES_EQUALIZER_ON = "equalizerOn";
public static final String PREFERENCES_VISUALIZER_ON = "visualizerOn";
public static final String PREFERENCES_EQUALIZER_SETTINGS = "equalizerSettings";
@@ -154,9 +149,6 @@ public final class Constants {
public static final String MAIN_BACK_STACK = "backStackIds";
public static final String MAIN_BACK_STACK_SIZE = "backStackIdsSize";
- public static final String MAIN_BACK_STACK_TABS = "backStackTabs";
- public static final String MAIN_BACK_STACK_POSITION = "backStackPosition";
- public static final String FRAGMENT_ID = "fragmentId";
public static final String FRAGMENT_LIST = "fragmentList";
public static final String FRAGMENT_LIST2 = "fragmentList2";
public static final String FRAGMENT_DOWNLOAD_FLIPPER = "fragmentDownloadFlipper";
diff --git a/src/github/daneren2005/dsub/util/Util.java b/src/github/daneren2005/dsub/util/Util.java
index fe8b6eae..e2f2d02f 100644
--- a/src/github/daneren2005/dsub/util/Util.java
+++ b/src/github/daneren2005/dsub/util/Util.java
@@ -606,14 +606,17 @@ public final class Util {
}
public static boolean recursiveDelete(File dir) {
if (dir != null && dir.exists()) {
- for(File file: dir.listFiles()) {
- if(file.isDirectory()) {
- if(!recursiveDelete(file)) {
- return false;
- }
- } else if(file.exists()) {
- if(!file.delete()) {
- return false;
+ File[] list = dir.listFiles();
+ if(list != null) {
+ for(File file: list) {
+ if(file.isDirectory()) {
+ if(!recursiveDelete(file)) {
+ return false;
+ }
+ } else if(file.exists()) {
+ if(!file.delete()) {
+ return false;
+ }
}
}
}
@@ -1105,12 +1108,24 @@ public final class Util {
DSubWidgetProvider.notifyInstances(context, downloadService, false);
}
- public static void showDownloadingNotification(final Context context, DownloadFile file, int size) {
+ public static void showDownloadingNotification(final Context context, DownloadFile file, int size, DownloadFile speedFile) {
Intent cancelIntent = new Intent(context, DownloadServiceImpl.class);
cancelIntent.setAction(DownloadServiceImpl.CANCEL_DOWNLOADS);
PendingIntent cancelPI = PendingIntent.getService(context, 0, cancelIntent, 0);
- String currentDownloading = (file != null) ? file.getSong().getTitle() : "none";
+ String currentDownloading, currentSize, speed;
+ if(file != null) {
+ currentDownloading = file.getSong().getTitle();
+ currentSize = Util.formatBytes(file.getEstimatedSize());
+ } else {
+ currentDownloading = "none";
+ currentSize = "0";
+ }
+ if(speedFile != null) {
+ speed = Long.toString(speedFile.getBytesPerSecond() / 1024);
+ } else {
+ speed = "0";
+ }
NotificationCompat.Builder builder;
builder = new NotificationCompat.Builder(context)
@@ -1118,11 +1133,11 @@ public final class Util {
.setContentTitle(context.getResources().getString(R.string.download_downloading_title, size))
.setContentText(context.getResources().getString(R.string.download_downloading_summary, currentDownloading))
.setStyle(new NotificationCompat.BigTextStyle()
- .bigText(context.getResources().getString(R.string.download_downloading_summary, currentDownloading)))
+ .bigText(context.getResources().getString(R.string.download_downloading_summary_expanded, currentDownloading, currentSize, speed)))
.setProgress(10, 5, true)
.setOngoing(true)
.addAction(R.drawable.notification_close,
- context.getResources().getString(R.string.common_cancel,
+ context.getResources().getString(R.string.common_cancel),
cancelPI);
Intent notificationIntent = new Intent(context, SubsonicFragmentActivity.class);