diff options
author | Scott Jackson <daneren2005@gmail.com> | 2014-02-11 14:56:07 -0800 |
---|---|---|
committer | Scott Jackson <daneren2005@gmail.com> | 2014-02-11 14:56:07 -0800 |
commit | e4b23a8076f1b420b439744fc05b646f3ce19c1a (patch) | |
tree | b762eef1b56987a7db92720646b73dfe81d0d027 | |
parent | 48885e5d506a4434b52c7f053e1edf540e573df0 (diff) | |
parent | 68cf8918365fa41bc12dfde1b7e39ec5a4279e9e (diff) | |
download | dsub-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.jar | bin | 621451 -> 627582 bytes | |||
-rw-r--r-- | libs/android-support-v7-appcompat.jar | bin | 343731 -> 343731 bytes | |||
-rw-r--r-- | res/values-es/strings.xml | 1 | ||||
-rw-r--r-- | res/values-fr/strings.xml | 178 | ||||
-rw-r--r-- | res/values-hu/strings.xml | 1 | ||||
-rw-r--r-- | res/values-ru/strings.xml | 1 | ||||
-rw-r--r-- | res/values/strings.xml | 6 | ||||
-rw-r--r-- | res/xml/settings.xml | 6 | ||||
-rw-r--r-- | src/github/daneren2005/dsub/activity/SettingsActivity.java | 3 | ||||
-rw-r--r-- | src/github/daneren2005/dsub/service/DownloadFile.java | 12 | ||||
-rw-r--r-- | src/github/daneren2005/dsub/service/DownloadServiceImpl.java | 27 | ||||
-rw-r--r-- | src/github/daneren2005/dsub/service/DownloadServiceLifecycleSupport.java | 33 | ||||
-rw-r--r-- | src/github/daneren2005/dsub/util/Constants.java | 8 | ||||
-rw-r--r-- | src/github/daneren2005/dsub/util/Util.java | 39 |
14 files changed, 73 insertions, 242 deletions
diff --git a/libs/android-support-v4.jar b/libs/android-support-v4.jar Binary files differindex 9056828a..96644edb 100644 --- a/libs/android-support-v4.jar +++ b/libs/android-support-v4.jar diff --git a/libs/android-support-v7-appcompat.jar b/libs/android-support-v7-appcompat.jar Binary files differindex fd1d984d..045c7933 100644 --- a/libs/android-support-v7-appcompat.jar +++ b/libs/android-support-v7-appcompat.jar 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); |