From f3c9221d6735198edebf175bb62c778b08a0b13a Mon Sep 17 00:00:00 2001 From: Joshua Bahnsen Date: Sun, 10 Mar 2013 10:38:47 -0700 Subject: [PATCH] Lockscreen improvements, buffer tweaks --- AndroidManifest.xml | 6 +- .../sourceforge/subsonic/androidapp/R.java | 171 +++---- res/values/arrays.xml | 451 +++++++++--------- res/values/strings.xml | 7 +- .../service/DownloadServiceImpl.java | 110 +++-- 5 files changed, 380 insertions(+), 365 deletions(-) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index d1137782..2f8c905e 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,8 +1,8 @@ + a:versionCode="63" + a:versionName="3.9.9.22" a:installLocation="auto"> @@ -97,7 +97,7 @@ - + diff --git a/gen/net/sourceforge/subsonic/androidapp/R.java b/gen/net/sourceforge/subsonic/androidapp/R.java index fd48478c..e94bcc9c 100644 --- a/gen/net/sourceforge/subsonic/androidapp/R.java +++ b/gen/net/sourceforge/subsonic/androidapp/R.java @@ -349,12 +349,12 @@ public final class R { public static final int select_album_n_songs_downloading=0x7f0a0001; } public static final class string { - public static final int background_task_loading=0x7f0900ef; - public static final int background_task_network_error=0x7f0900f1; - public static final int background_task_no_network=0x7f0900f0; - public static final int background_task_not_found=0x7f0900f2; - public static final int background_task_parse_error=0x7f0900f3; - public static final int background_task_wait=0x7f0900ee; + public static final int background_task_loading=0x7f0900f0; + public static final int background_task_network_error=0x7f0900f2; + public static final int background_task_no_network=0x7f0900f1; + public static final int background_task_not_found=0x7f0900f3; + public static final int background_task_parse_error=0x7f0900f4; + public static final int background_task_wait=0x7f0900ef; public static final int button_bar_browse=0x7f09000b; public static final int button_bar_home=0x7f09000a; public static final int button_bar_now_playing=0x7f09000e; @@ -402,9 +402,9 @@ public final class R { public static final int download_repeat_single=0x7f09005f; public static final int download_visualizer_off=0x7f090061; public static final int download_visualizer_on=0x7f090060; - public static final int equalizer_enabled=0x7f090100; - public static final int equalizer_label=0x7f0900ff; - public static final int equalizer_preset=0x7f090101; + public static final int equalizer_enabled=0x7f090101; + public static final int equalizer_label=0x7f090100; + public static final int equalizer_preset=0x7f090102; public static final int error_label=0x7f09006b; public static final int help_back=0x7f090027; public static final int help_close=0x7f090028; @@ -439,14 +439,14 @@ public final class R { /** TODO: Keep screen on TODO: Keeping the screen on when downloading may improve download speed */ - public static final int music_service_retry=0x7f0900ed; - public static final int parser_artist_count=0x7f0900fb; - public static final int parser_not_authenticated=0x7f0900f9; - public static final int parser_not_authorized=0x7f0900fa; - public static final int parser_reading=0x7f0900f5; - public static final int parser_reading_done=0x7f0900f6; - public static final int parser_upgrade_client=0x7f0900f7; - public static final int parser_upgrade_server=0x7f0900f8; + public static final int music_service_retry=0x7f0900ee; + public static final int parser_artist_count=0x7f0900fc; + public static final int parser_not_authenticated=0x7f0900fa; + public static final int parser_not_authorized=0x7f0900fb; + public static final int parser_reading=0x7f0900f6; + public static final int parser_reading_done=0x7f0900f7; + public static final int parser_upgrade_client=0x7f0900f8; + public static final int parser_upgrade_server=0x7f0900f9; public static final int play_video_loading=0x7f09002b; public static final int play_video_noplugin=0x7f09002c; /** TODO: Exit @@ -481,21 +481,22 @@ public final class R { public static final int select_album_play_all=0x7f09003f; public static final int select_album_searching=0x7f09003e; public static final int select_album_select=0x7f090039; - public static final int select_artist_all_folders=0x7f0900fe; - public static final int select_artist_folder=0x7f0900fd; - public static final int select_artist_refresh=0x7f0900fc; + public static final int select_artist_all_folders=0x7f0900ff; + public static final int select_artist_folder=0x7f0900fe; + public static final int select_artist_refresh=0x7f0900fd; public static final int select_playlist_empty=0x7f090047; - public static final int service_connecting=0x7f0900f4; + public static final int service_connecting=0x7f0900f5; public static final int settings_appearance_title=0x7f090080; public static final int settings_buffer_length=0x7f0900b3; - public static final int settings_buffer_length_10=0x7f0900b8; - public static final int settings_buffer_length_12=0x7f0900b9; - public static final int settings_buffer_length_15=0x7f0900ba; - public static final int settings_buffer_length_2=0x7f0900b5; - public static final int settings_buffer_length_20=0x7f0900bb; - public static final int settings_buffer_length_30=0x7f0900bc; - public static final int settings_buffer_length_5=0x7f0900b6; - public static final int settings_buffer_length_8=0x7f0900b7; + public static final int settings_buffer_length_1=0x7f0900b5; + public static final int settings_buffer_length_10=0x7f0900b9; + public static final int settings_buffer_length_12=0x7f0900ba; + public static final int settings_buffer_length_15=0x7f0900bb; + public static final int settings_buffer_length_2=0x7f0900b6; + public static final int settings_buffer_length_20=0x7f0900bc; + public static final int settings_buffer_length_30=0x7f0900bd; + public static final int settings_buffer_length_5=0x7f0900b7; + public static final int settings_buffer_length_8=0x7f0900b8; public static final int settings_cache_location=0x7f090078; public static final int settings_cache_location_error=0x7f090079; public static final int settings_cache_size=0x7f090077; @@ -511,9 +512,9 @@ public final class R { public static final int settings_cache_title=0x7f090075; public static final int settings_clear_search_history=0x7f0900a5; public static final int settings_connection_failure=0x7f09007d; - public static final int settings_default_albums=0x7f0900eb; - public static final int settings_default_artists=0x7f0900ea; - public static final int settings_default_songs=0x7f0900ec; + public static final int settings_default_albums=0x7f0900ec; + public static final int settings_default_artists=0x7f0900eb; + public static final int settings_default_songs=0x7f0900ed; public static final int settings_hide_media_summary=0x7f0900ad; /** TODO: Scrobble to Last.fm TODO: Remember to set up your Last.fm user and password on the Subsonic server @@ -522,26 +523,26 @@ public final class R { public static final int settings_hide_media_toast=0x7f0900ae; public static final int settings_invalid_url=0x7f09007e; public static final int settings_invalid_username=0x7f09007f; - public static final int settings_max_albums=0x7f0900cd; - public static final int settings_max_albums_10=0x7f0900cf; - public static final int settings_max_albums_100=0x7f0900d4; - public static final int settings_max_albums_20=0x7f0900d0; - public static final int settings_max_albums_250=0x7f0900d5; - public static final int settings_max_albums_30=0x7f0900d1; - public static final int settings_max_albums_40=0x7f0900d2; - public static final int settings_max_albums_5=0x7f0900ce; - public static final int settings_max_albums_50=0x7f0900d3; - public static final int settings_max_albums_500=0x7f0900d6; - public static final int settings_max_artists=0x7f0900e0; - public static final int settings_max_artists_10=0x7f0900e3; - public static final int settings_max_artists_100=0x7f0900e7; - public static final int settings_max_artists_200=0x7f0900e8; - public static final int settings_max_artists_25=0x7f0900e4; - public static final int settings_max_artists_3=0x7f0900e1; - public static final int settings_max_artists_5=0x7f0900e2; - public static final int settings_max_artists_50=0x7f0900e5; - public static final int settings_max_artists_500=0x7f0900e9; - public static final int settings_max_artists_75=0x7f0900e6; + public static final int settings_max_albums=0x7f0900ce; + public static final int settings_max_albums_10=0x7f0900d0; + public static final int settings_max_albums_100=0x7f0900d5; + public static final int settings_max_albums_20=0x7f0900d1; + public static final int settings_max_albums_250=0x7f0900d6; + public static final int settings_max_albums_30=0x7f0900d2; + public static final int settings_max_albums_40=0x7f0900d3; + public static final int settings_max_albums_5=0x7f0900cf; + public static final int settings_max_albums_50=0x7f0900d4; + public static final int settings_max_albums_500=0x7f0900d7; + public static final int settings_max_artists=0x7f0900e1; + public static final int settings_max_artists_10=0x7f0900e4; + public static final int settings_max_artists_100=0x7f0900e8; + public static final int settings_max_artists_25=0x7f0900e5; + public static final int settings_max_artists_250=0x7f0900e9; + public static final int settings_max_artists_3=0x7f0900e2; + public static final int settings_max_artists_5=0x7f0900e3; + public static final int settings_max_artists_50=0x7f0900e6; + public static final int settings_max_artists_500=0x7f0900ea; + public static final int settings_max_artists_75=0x7f0900e7; public static final int settings_max_bitrate_112=0x7f09008d; public static final int settings_max_bitrate_128=0x7f09008e; public static final int settings_max_bitrate_160=0x7f09008f; @@ -555,26 +556,26 @@ public final class R { public static final int settings_max_bitrate_mobile=0x7f090088; public static final int settings_max_bitrate_unlimited=0x7f090093; public static final int settings_max_bitrate_wifi=0x7f090087; - public static final int settings_max_songs=0x7f0900d7; - public static final int settings_max_songs_10=0x7f0900d9; - public static final int settings_max_songs_100=0x7f0900dd; - public static final int settings_max_songs_200=0x7f0900de; - public static final int settings_max_songs_25=0x7f0900da; - public static final int settings_max_songs_5=0x7f0900d8; - public static final int settings_max_songs_50=0x7f0900db; - public static final int settings_max_songs_500=0x7f0900df; - public static final int settings_max_songs_75=0x7f0900dc; + public static final int settings_max_songs=0x7f0900d8; + public static final int settings_max_songs_10=0x7f0900da; + public static final int settings_max_songs_100=0x7f0900de; + public static final int settings_max_songs_25=0x7f0900db; + public static final int settings_max_songs_250=0x7f0900df; + public static final int settings_max_songs_5=0x7f0900d9; + public static final int settings_max_songs_50=0x7f0900dc; + public static final int settings_max_songs_500=0x7f0900e0; + public static final int settings_max_songs_75=0x7f0900dd; public static final int settings_media_button_summary=0x7f0900b0; public static final int settings_media_button_title=0x7f0900af; public static final int settings_network_timeout=0x7f0900b4; - public static final int settings_network_timeout_105000=0x7f0900c3; - public static final int settings_network_timeout_120000=0x7f0900c4; - public static final int settings_network_timeout_15000=0x7f0900bd; - public static final int settings_network_timeout_30000=0x7f0900be; - public static final int settings_network_timeout_45000=0x7f0900bf; - public static final int settings_network_timeout_60000=0x7f0900c0; - public static final int settings_network_timeout_75000=0x7f0900c1; - public static final int settings_network_timeout_90000=0x7f0900c2; + public static final int settings_network_timeout_105000=0x7f0900c4; + public static final int settings_network_timeout_120000=0x7f0900c5; + public static final int settings_network_timeout_15000=0x7f0900be; + public static final int settings_network_timeout_30000=0x7f0900bf; + public static final int settings_network_timeout_45000=0x7f0900c0; + public static final int settings_network_timeout_60000=0x7f0900c1; + public static final int settings_network_timeout_75000=0x7f0900c2; + public static final int settings_network_timeout_90000=0x7f0900c3; public static final int settings_network_title=0x7f090086; public static final int settings_other_title=0x7f0900a7; public static final int settings_playback_control_title=0x7f0900a9; @@ -598,12 +599,12 @@ public final class R { public static final int settings_server_unused2=0x7f090070; public static final int settings_server_username=0x7f090073; public static final int settings_servers_title=0x7f09006e; - public static final int settings_show_lockscreen_controls=0x7f0900c9; - public static final int settings_show_lockscreen_controls_summary=0x7f0900ca; - public static final int settings_show_notification=0x7f0900c5; - public static final int settings_show_notification_always=0x7f0900c7; - public static final int settings_show_notification_always_summary=0x7f0900c8; - public static final int settings_show_notification_summary=0x7f0900c6; + public static final int settings_show_lockscreen_controls=0x7f0900ca; + public static final int settings_show_lockscreen_controls_summary=0x7f0900cb; + public static final int settings_show_notification=0x7f0900c6; + public static final int settings_show_notification_always=0x7f0900c8; + public static final int settings_show_notification_always_summary=0x7f0900c9; + public static final int settings_show_notification_summary=0x7f0900c7; public static final int settings_test_connection_title=0x7f09006d; public static final int settings_testing_connection=0x7f09007a; public static final int settings_testing_ok=0x7f09007b; @@ -613,21 +614,21 @@ public final class R { public static final int settings_theme_fullscreenlight=0x7f090083; public static final int settings_theme_light=0x7f090084; public static final int settings_theme_title=0x7f090081; - public static final int settings_theme_wheat=0x7f090109; + public static final int settings_theme_wheat=0x7f09010a; public static final int settings_title=0x7f09006c; - public static final int settings_use_stream_proxy=0x7f0900cb; - public static final int settings_use_stream_proxy_summary=0x7f0900cc; + public static final int settings_use_stream_proxy=0x7f0900cc; + public static final int settings_use_stream_proxy_summary=0x7f0900cd; public static final int settings_wifi_required_summary=0x7f090095; public static final int settings_wifi_required_title=0x7f090094; public static final int song_details_all=0x7f090068; public static final int song_details_kbps=0x7f090069; - public static final int util_bytes_format_byte=0x7f090108; - public static final int util_bytes_format_gigabyte=0x7f090105; - public static final int util_bytes_format_kilobyte=0x7f090107; - public static final int util_bytes_format_megabyte=0x7f090106; - public static final int widget_initial_text=0x7f090102; - public static final int widget_sdcard_busy=0x7f090103; - public static final int widget_sdcard_missing=0x7f090104; + public static final int util_bytes_format_byte=0x7f090109; + public static final int util_bytes_format_gigabyte=0x7f090106; + public static final int util_bytes_format_kilobyte=0x7f090108; + public static final int util_bytes_format_megabyte=0x7f090107; + public static final int widget_initial_text=0x7f090103; + public static final int widget_sdcard_busy=0x7f090104; + public static final int widget_sdcard_missing=0x7f090105; } public static final class style { public static final int Dark=0x7f0b0000; diff --git a/res/values/arrays.xml b/res/values/arrays.xml index fdc6878d..fb178a96 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -1,224 +1,227 @@ - - - - - light - dark - fullscreen - fullscreenlight - - - - @string/settings.theme_light - @string/settings.theme_dark - @string/settings.theme_fullscreen - @string/settings.theme_fullscreenlight - - - - 1 - 2 - 3 - 5 - 10 - -1 - - - - @string/settings.preload_1 - @string/settings.preload_2 - @string/settings.preload_3 - @string/settings.preload_5 - @string/settings.preload_10 - @string/settings.preload_unlimited - - - - 100 - 200 - 500 - 1000 - 2000 - 5000 - 10000 - 20000 - -1 - - - - @string/settings.cache_size_100 - @string/settings.cache_size_200 - @string/settings.cache_size_500 - @string/settings.cache_size_1000 - @string/settings.cache_size_2000 - @string/settings.cache_size_5000 - @string/settings.cache_size_10000 - @string/settings.cache_size_20000 - @string/settings.cache_size_unlimited - - - - 32 - 64 - 80 - 96 - 112 - 128 - 160 - 192 - 256 - 320 - 0 - - - - @string/settings.max_bitrate_32 - @string/settings.max_bitrate_64 - @string/settings.max_bitrate_80 - @string/settings.max_bitrate_96 - @string/settings.max_bitrate_112 - @string/settings.max_bitrate_128 - @string/settings.max_bitrate_160 - @string/settings.max_bitrate_192 - @string/settings.max_bitrate_256 - @string/settings.max_bitrate_320 - @string/settings.max_bitrate_unlimited - - - - 2 - 5 - 8 - 10 - 12 - 15 - 20 - 30 - - - - @string/settings.buffer_length_2 - @string/settings.buffer_length_5 - @string/settings.buffer_length_8 - @string/settings.buffer_length_10 - @string/settings.buffer_length_12 - @string/settings.buffer_length_15 - @string/settings.buffer_length_20 - @string/settings.buffer_length_30 - - - - 15000 - 30000 - 45000 - 60000 - 75000 - 90000 - 105000 - 120000 - - - - @string/settings.network_timeout_15000 - @string/settings.network_timeout_30000 - @string/settings.network_timeout_45000 - @string/settings.network_timeout_60000 - @string/settings.network_timeout_75000 - @string/settings.network_timeout_90000 - @string/settings.network_timeout_105000 - @string/settings.network_timeout_120000 - - - - 5 - 10 - 20 - 30 - 40 - 50 - 100 - 250 - 500 - - - - @string/settings.max_albums_5 - @string/settings.max_albums_10 - @string/settings.max_albums_20 - @string/settings.max_albums_30 - @string/settings.max_albums_40 - @string/settings.max_albums_50 - @string/settings.max_albums_100 - @string/settings.max_albums_250 - @string/settings.max_albums_500 - - - - 5 - 10 - 25 - 50 - 75 - 100 - 200 - 500 - - - - @string/settings.max_songs_5 - @string/settings.max_songs_10 - @string/settings.max_songs_25 - @string/settings.max_songs_50 - @string/settings.max_songs_75 - @string/settings.max_songs_100 - @string/settings.max_songs_200 - @string/settings.max_songs_500 - - - - 5 - 10 - 25 - 50 - 75 - 100 - 200 - 500 - - - - @string/settings.max_artists_5 - @string/settings.max_artists_10 - @string/settings.max_artists_25 - @string/settings.max_artists_50 - @string/settings.max_artists_75 - @string/settings.max_artists_100 - @string/settings.max_artists_200 - @string/settings.max_artists_500 - - - - 3 - 5 - 10 - 25 - 50 - 75 - 100 - 200 - 500 - - - - @string/settings.max_artists_3 - @string/settings.max_artists_5 - @string/settings.max_artists_10 - @string/settings.max_artists_25 - @string/settings.max_artists_50 - @string/settings.max_artists_75 - @string/settings.max_artists_100 - @string/settings.max_artists_200 - @string/settings.max_artists_500 - - - + + + + + light + dark + fullscreen + fullscreenlight + + + + @string/settings.theme_light + @string/settings.theme_dark + @string/settings.theme_fullscreen + @string/settings.theme_fullscreenlight + + + + 1 + 2 + 3 + 5 + 10 + -1 + + + + @string/settings.preload_1 + @string/settings.preload_2 + @string/settings.preload_3 + @string/settings.preload_5 + @string/settings.preload_10 + @string/settings.preload_unlimited + + + + 100 + 200 + 500 + 1000 + 2000 + 5000 + 10000 + 20000 + -1 + + + + @string/settings.cache_size_100 + @string/settings.cache_size_200 + @string/settings.cache_size_500 + @string/settings.cache_size_1000 + @string/settings.cache_size_2000 + @string/settings.cache_size_5000 + @string/settings.cache_size_10000 + @string/settings.cache_size_20000 + @string/settings.cache_size_unlimited + + + + 32 + 64 + 80 + 96 + 112 + 128 + 160 + 192 + 256 + 320 + 0 + + + + @string/settings.max_bitrate_32 + @string/settings.max_bitrate_64 + @string/settings.max_bitrate_80 + @string/settings.max_bitrate_96 + @string/settings.max_bitrate_112 + @string/settings.max_bitrate_128 + @string/settings.max_bitrate_160 + @string/settings.max_bitrate_192 + @string/settings.max_bitrate_256 + @string/settings.max_bitrate_320 + @string/settings.max_bitrate_unlimited + + + + 1 + 2 + 5 + 8 + 10 + 12 + 15 + 20 + 30 + + + + @string/settings.buffer_length_1 + @string/settings.buffer_length_2 + @string/settings.buffer_length_2 + @string/settings.buffer_length_5 + @string/settings.buffer_length_8 + @string/settings.buffer_length_10 + @string/settings.buffer_length_12 + @string/settings.buffer_length_15 + @string/settings.buffer_length_20 + @string/settings.buffer_length_30 + + + + 15000 + 30000 + 45000 + 60000 + 75000 + 90000 + 105000 + 120000 + + + + @string/settings.network_timeout_15000 + @string/settings.network_timeout_30000 + @string/settings.network_timeout_45000 + @string/settings.network_timeout_60000 + @string/settings.network_timeout_75000 + @string/settings.network_timeout_90000 + @string/settings.network_timeout_105000 + @string/settings.network_timeout_120000 + + + + 5 + 10 + 20 + 30 + 40 + 50 + 100 + 250 + 500 + + + + @string/settings.max_albums_5 + @string/settings.max_albums_10 + @string/settings.max_albums_20 + @string/settings.max_albums_30 + @string/settings.max_albums_40 + @string/settings.max_albums_50 + @string/settings.max_albums_100 + @string/settings.max_albums_250 + @string/settings.max_albums_500 + + + + 5 + 10 + 25 + 50 + 75 + 100 + 250 + 500 + + + + @string/settings.max_songs_5 + @string/settings.max_songs_10 + @string/settings.max_songs_25 + @string/settings.max_songs_50 + @string/settings.max_songs_75 + @string/settings.max_songs_100 + @string/settings.max_songs_250 + @string/settings.max_songs_500 + + + + 5 + 10 + 25 + 50 + 75 + 100 + 250 + 500 + + + + @string/settings.max_artists_5 + @string/settings.max_artists_10 + @string/settings.max_artists_25 + @string/settings.max_artists_50 + @string/settings.max_artists_75 + @string/settings.max_artists_100 + @string/settings.max_artists_250 + @string/settings.max_artists_500 + + + + 3 + 5 + 10 + 25 + 50 + 75 + 100 + 250 + 500 + + + + @string/settings.max_artists_3 + @string/settings.max_artists_5 + @string/settings.max_artists_10 + @string/settings.max_artists_25 + @string/settings.max_artists_50 + @string/settings.max_artists_75 + @string/settings.max_artists_100 + @string/settings.max_artists_250 + @string/settings.max_artists_500 + + + diff --git a/res/values/strings.xml b/res/values/strings.xml index aac80897..e552beaa 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -199,7 +199,8 @@ Keep Screen On Keeping the screen on while downloading improves download speed. Buffer Length - Network Timeout + Network Timeout + 1 second 2 seconds 5 seconds 8 seconds @@ -241,7 +242,7 @@ 50 75 100 - 200 + 250 500 Max Artists 3 @@ -251,7 +252,7 @@ 50 75 100 - 200 + 250 500 Default Artists Default Albums diff --git a/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java b/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java index f1aa3aaf..195de7fc 100644 --- a/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java +++ b/src/net/sourceforge/subsonic/androidapp/service/DownloadServiceImpl.java @@ -146,7 +146,7 @@ public class DownloadServiceImpl extends Service implements DownloadService { mediaPlayer = new MediaPlayer(); mediaPlayer.setWakeMode(this, PowerManager.PARTIAL_WAKE_LOCK); - + mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener() { @Override public boolean onError(MediaPlayer mediaPlayer, int what, int more) { @@ -759,17 +759,18 @@ public class DownloadServiceImpl extends Service implements DownloadService { Intent intent = new Intent(Intent.ACTION_MEDIA_BUTTON); intent.setComponent(new ComponentName(this.getPackageName(), MediaButtonIntentReceiver.class.getName())); remoteControlClient = new RemoteControlClient(PendingIntent.getBroadcast(this, 0, intent, 0)); - audioManager.registerRemoteControlClient(remoteControlClient); - - remoteControlClient.setTransportControlFlags( - RemoteControlClient.FLAG_KEY_MEDIA_PLAY | - RemoteControlClient.FLAG_KEY_MEDIA_PAUSE | - RemoteControlClient.FLAG_KEY_MEDIA_NEXT | - RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS | - RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE | - RemoteControlClient.FLAG_KEY_MEDIA_STOP); } - + + audioManager.registerRemoteControlClient(remoteControlClient); + + remoteControlClient.setTransportControlFlags( + RemoteControlClient.FLAG_KEY_MEDIA_PLAY | + RemoteControlClient.FLAG_KEY_MEDIA_PAUSE | + RemoteControlClient.FLAG_KEY_MEDIA_NEXT | + RemoteControlClient.FLAG_KEY_MEDIA_PREVIOUS | + RemoteControlClient.FLAG_KEY_MEDIA_PLAY_PAUSE | + RemoteControlClient.FLAG_KEY_MEDIA_STOP); + switch (playerState) { case STARTED: @@ -785,32 +786,32 @@ public class DownloadServiceImpl extends Service implements DownloadService { } try { - if (currentPlaying != null) { - if (currentSong != currentPlaying.getSong()) { - currentSong = currentPlaying.getSong(); - - String artist = currentSong.getArtist(); - String album = currentSong.getAlbum(); - String title = artist + " - " + currentSong.getTitle(); - Integer duration = currentSong.getDuration(); + if (currentPlaying != null) { + if (currentSong != currentPlaying.getSong()) { + currentSong = currentPlaying.getSong(); + } - MusicService musicService = MusicServiceFactory.getMusicService(this); - DisplayMetrics metrics = this.getResources().getDisplayMetrics(); - int size = Math.min(metrics.widthPixels, metrics.heightPixels); - Bitmap bitmap = musicService.getCoverArt(this, currentSong, size, true, null); + String artist = currentSong.getArtist(); + String album = currentSong.getAlbum(); + String title = artist + " - " + currentSong.getTitle(); + Integer duration = currentSong.getDuration(); - // Update the remote controls - remoteControlClient - .editMetadata(true) - .putString(MediaMetadataRetriever.METADATA_KEY_TITLE, title) - .putString(MediaMetadataRetriever.METADATA_KEY_ARTIST, artist) - .putString(MediaMetadataRetriever.METADATA_KEY_ALBUM, album) - .putLong(MediaMetadataRetriever.METADATA_KEY_DURATION, duration) - .putBitmap(RemoteControlClient.MetadataEditor.BITMAP_KEY_ARTWORK, bitmap) - .apply(); - } - } - } + MusicService musicService = MusicServiceFactory.getMusicService(this); + DisplayMetrics metrics = this.getResources().getDisplayMetrics(); + int size = Math.min(metrics.widthPixels, metrics.heightPixels); + Bitmap bitmap = musicService.getCoverArt(this, currentSong, size, true, null); + + // Update the remote controls + remoteControlClient + .editMetadata(true) + .putString(MediaMetadataRetriever.METADATA_KEY_TITLE, title) + .putString(MediaMetadataRetriever.METADATA_KEY_ARTIST, artist) + .putString(MediaMetadataRetriever.METADATA_KEY_ALBUM, album) + .putLong(MediaMetadataRetriever.METADATA_KEY_DURATION, duration) + .putBitmap(RemoteControlClient.MetadataEditor.BITMAP_KEY_ARTWORK, bitmap) + .apply(); + } + } catch (Exception e) { Log.e(TAG, "Exception in setRemoteControl", e); } @@ -828,6 +829,7 @@ public class DownloadServiceImpl extends Service implements DownloadService { try { final File file = downloadFile.isCompleteFileAvailable() ? downloadFile.getCompleteFile() : downloadFile.getPartialFile(); downloadFile.updateModificationDate(); + mediaPlayer.setOnCompletionListener(null); mediaPlayer.setOnBufferingUpdateListener(null); mediaPlayer.reset(); @@ -847,8 +849,6 @@ public class DownloadServiceImpl extends Service implements DownloadService { } }); - mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); - String url = file.getPath(); String playUrl = url; @@ -1071,17 +1071,18 @@ public class DownloadServiceImpl extends Service implements DownloadService { this.downloadFile = downloadFile; this.position = position; partialFile = downloadFile.getPartialFile(); + int bufferLength = downloadFile.getBufferLength(); - // Calculate roughly how many bytes buffer length corresponds to. - int bitRate = downloadFile.getBitRate(); - long byteCount = Math.max(100000, bitRate * 1024 / 8 * downloadFile.getBufferLength()); + // Calculate roughly how many bytes buffer length corresponds to. + int bitRate = downloadFile.getBitRate(); + long byteCount = Math.max(100000, bitRate * 1024 / 8 * bufferLength); - // Find out how large the file should grow before resuming playback. - if (position == 0) { - expectedFileSize = byteCount; - } else { - expectedFileSize = partialFile.length() + byteCount; - } + // Find out how large the file should grow before resuming playback. + if (position == 0) { + expectedFileSize = byteCount; + } else { + expectedFileSize = partialFile.length() + byteCount; + } } @Override @@ -1089,7 +1090,7 @@ public class DownloadServiceImpl extends Service implements DownloadService { setPlayerState(DOWNLOADING); while (!bufferComplete()) { - Util.sleepQuietly(1000L); + Util.sleepQuietly(100L); if (isCancelled()) { return; } @@ -1099,10 +1100,19 @@ public class DownloadServiceImpl extends Service implements DownloadService { private boolean bufferComplete() { boolean completeFileAvailable = downloadFile.isCompleteFileAvailable(); + if (completeFileAvailable) { + Log.i(TAG, "Buffering complete: Complete file exists (" + completeFileAvailable + ")"); + return true; + } + long size = partialFile.length(); - - Log.i(TAG, "Buffering " + partialFile + " (" + size + "/" + expectedFileSize + ", " + completeFileAvailable + ")"); - return completeFileAvailable || size >= expectedFileSize; + if (size >= expectedFileSize) { + Log.i(TAG, "Buffering complete: " + partialFile + " (" + size + "/" + expectedFileSize + ")"); + return true; + } + + Log.i(TAG, "Buffering incomplete: " + partialFile + " (" + size + "/" + expectedFileSize + ")"); + return false; } @Override