Added star to now playing, major resource update

Only request audio focus when actually playing
Added option to disable display of track number
Fixed some bugs in song metadata retrieval
This commit is contained in:
Joshua Bahnsen 2013-04-08 23:01:45 -07:00
parent 09b3229500
commit a91b73e105
75 changed files with 702 additions and 600 deletions

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:a="http://schemas.android.com/apk/res/android"
package="com.thejoshwa.ultrasonic.androidapp"
a:versionCode="2"
a:versionName="1.0.0.26" a:installLocation="auto">
a:versionCode="3"
a:versionName="1.0.0.27" a:installLocation="auto">
<uses-permission a:name="android.permission.INTERNET"/>
<uses-permission a:name="android.permission.READ_PHONE_STATE"/>

View File

@ -59,33 +59,33 @@ public final class R {
public static final int btn_check_buttonless_off=0x7f020007;
public static final int btn_check_buttonless_on=0x7f020008;
public static final int btn_check_custom=0x7f020009;
public static final int btn_collapse_group_normal_holo_dark=0x7f02000a;
public static final int buttonbar_selector=0x7f02000b;
public static final int ic_appwidget_music_next=0x7f02000c;
public static final int ic_appwidget_music_pause=0x7f02000d;
public static final int ic_appwidget_music_play=0x7f02000e;
public static final int ic_appwidget_music_previous=0x7f02000f;
public static final int ic_launcher=0x7f020010;
public static final int ic_menu_browse=0x7f020011;
public static final int ic_menu_exit=0x7f020012;
public static final int ic_menu_help=0x7f020013;
public static final int ic_menu_home=0x7f020014;
public static final int ic_menu_moreoverflow=0x7f020015;
public static final int ic_menu_play_all=0x7f020016;
public static final int ic_menu_playlists=0x7f020017;
public static final int ic_menu_refresh=0x7f020018;
public static final int ic_menu_remove_all=0x7f020019;
public static final int ic_menu_save=0x7f02001a;
public static final int ic_menu_screen_on_off=0x7f02001b;
public static final int ic_menu_search=0x7f02001c;
public static final int ic_menu_select_artist_folder=0x7f02001d;
public static final int ic_menu_settings=0x7f02001e;
public static final int ic_menu_share=0x7f02001f;
public static final int ic_menu_shuffle=0x7f020020;
public static final int ic_stat_downloaded=0x7f020021;
public static final int ic_stat_downloading=0x7f020022;
public static final int ic_stat_play=0x7f020023;
public static final int ic_stat_saved=0x7f020024;
public static final int buttonbar_selector=0x7f02000a;
public static final int ic_appwidget_music_next=0x7f02000b;
public static final int ic_appwidget_music_pause=0x7f02000c;
public static final int ic_appwidget_music_play=0x7f02000d;
public static final int ic_appwidget_music_previous=0x7f02000e;
public static final int ic_launcher=0x7f02000f;
public static final int ic_menu_browse=0x7f020010;
public static final int ic_menu_exit=0x7f020011;
public static final int ic_menu_help=0x7f020012;
public static final int ic_menu_home=0x7f020013;
public static final int ic_menu_moreoverflow=0x7f020014;
public static final int ic_menu_play_all=0x7f020015;
public static final int ic_menu_playlists=0x7f020016;
public static final int ic_menu_refresh=0x7f020017;
public static final int ic_menu_remove_all=0x7f020018;
public static final int ic_menu_save=0x7f020019;
public static final int ic_menu_screen_on_off=0x7f02001a;
public static final int ic_menu_search=0x7f02001b;
public static final int ic_menu_select_artist_folder=0x7f02001c;
public static final int ic_menu_settings=0x7f02001d;
public static final int ic_menu_share=0x7f02001e;
public static final int ic_menu_shuffle=0x7f02001f;
public static final int ic_star_full=0x7f020020;
public static final int ic_star_hollow=0x7f020021;
public static final int ic_stat_downloaded=0x7f020022;
public static final int ic_stat_downloading=0x7f020023;
public static final int ic_stat_play=0x7f020024;
public static final int ic_stat_ultrasonic=0x7f020025;
public static final int list_background=0x7f020026;
public static final int list_focused_holo=0x7f020027;
@ -123,34 +123,26 @@ public final class R {
public static final int select_album_play_all=0x7f020047;
public static final int select_album_play_all_normal=0x7f020048;
public static final int select_album_play_all_pressed=0x7f020049;
public static final int slider_knob=0x7f02004a;
public static final int star=0x7f02004b;
public static final int star_hollow=0x7f02004c;
public static final int status_bg=0x7f02004d;
public static final int status_next=0x7f02004e;
public static final int status_pause=0x7f02004f;
public static final int status_play=0x7f020050;
public static final int status_prev=0x7f020051;
public static final int status_stop=0x7f020052;
public static final int title_bar_shadow=0x7f020053;
public static final int unknown_album=0x7f020054;
public static final int unknown_album_large=0x7f020055;
public static final int status_bg=0x7f02004a;
public static final int title_bar_shadow=0x7f02004b;
public static final int unknown_album=0x7f02004c;
public static final int unknown_album_large=0x7f02004d;
}
public static final class id {
public static final int album=0x7f0d004f;
public static final int album=0x7f0d0050;
public static final int album_artist=0x7f0d0002;
public static final int album_coverart=0x7f0d0000;
public static final int album_menu_pin=0x7f0d0091;
public static final int album_menu_play_last=0x7f0d0090;
public static final int album_menu_play_now=0x7f0d008f;
public static final int album_menu_pin=0x7f0d008d;
public static final int album_menu_play_last=0x7f0d008c;
public static final int album_menu_play_now=0x7f0d008b;
public static final int album_star=0x7f0d0003;
public static final int album_title=0x7f0d0001;
public static final int appwidget_coverart=0x7f0d0004;
public static final int appwidget_top=0x7f0d0006;
public static final int artist=0x7f0d0008;
public static final int artist_menu_pin=0x7f0d0094;
public static final int artist_menu_play_last=0x7f0d0093;
public static final int artist_menu_play_now=0x7f0d0092;
public static final int artist_menu_pin=0x7f0d0090;
public static final int artist_menu_play_last=0x7f0d008f;
public static final int artist_menu_play_now=0x7f0d008e;
public static final int button_bar=0x7f0d000c;
public static final int button_bar_home=0x7f0d000d;
public static final int button_bar_music=0x7f0d000e;
@ -162,134 +154,130 @@ public final class R {
public static final int control_next=0x7f0d000b;
public static final int control_play=0x7f0d000a;
public static final int control_previous=0x7f0d0009;
public static final int control_stop=0x7f0d0050;
public static final int download_album=0x7f0d0027;
public static final int download_album_art_image=0x7f0d0021;
public static final int download_album_art_layout=0x7f0d0020;
public static final int download_artist=0x7f0d0026;
public static final int download_button_bar_flipper=0x7f0d0023;
public static final int control_stop=0x7f0d0051;
public static final int download_album=0x7f0d0028;
public static final int download_album_art_image=0x7f0d0022;
public static final int download_album_art_layout=0x7f0d0021;
public static final int download_artist=0x7f0d0027;
public static final int download_button_bar_flipper=0x7f0d0024;
public static final int download_control_layout=0x7f0d0014;
public static final int download_duration=0x7f0d0025;
public static final int download_empty=0x7f0d0028;
public static final int download_equalizer=0x7f0d0084;
public static final int download_jukebox=0x7f0d0086;
public static final int download_list=0x7f0d0029;
public static final int download_duration=0x7f0d0026;
public static final int download_empty=0x7f0d0029;
public static final int download_equalizer=0x7f0d0080;
public static final int download_jukebox=0x7f0d0082;
public static final int download_list=0x7f0d002a;
public static final int download_next=0x7f0d001a;
public static final int download_pause=0x7f0d0017;
public static final int download_playlist_flipper=0x7f0d001f;
public static final int download_position=0x7f0d0024;
public static final int download_playlist_flipper=0x7f0d0020;
public static final int download_position=0x7f0d0025;
public static final int download_previous=0x7f0d0016;
public static final int download_progress_bar=0x7f0d002a;
public static final int download_progress_bar=0x7f0d002b;
public static final int download_repeat=0x7f0d001b;
public static final int download_shuffle=0x7f0d0015;
public static final int download_song_title=0x7f0d001e;
public static final int download_song_title=0x7f0d001f;
public static final int download_star=0x7f0d001c;
public static final int download_start=0x7f0d0019;
public static final int download_status=0x7f0d001d;
public static final int download_status=0x7f0d001e;
public static final int download_stop=0x7f0d0018;
public static final int download_toggle_list=0x7f0d001c;
public static final int download_visualizer=0x7f0d0085;
public static final int download_visualizer_view_layout=0x7f0d0022;
public static final int equalizer_bar=0x7f0d0030;
public static final int equalizer_frequency=0x7f0d002e;
public static final int equalizer_level=0x7f0d002f;
public static final int equalizer_enabled=0x7f0d002b;
public static final int equalizer_layout=0x7f0d002c;
public static final int equalizer_preset=0x7f0d002d;
public static final int help_back=0x7f0d0032;
public static final int help_buttons=0x7f0d0031;
public static final int help_close=0x7f0d0033;
public static final int help_contents=0x7f0d0034;
public static final int icon=0x7f0d0079;
public static final int jukebox_volume_progress_bar=0x7f0d0036;
public static final int download_toggle_list=0x7f0d001d;
public static final int download_visualizer=0x7f0d0081;
public static final int download_visualizer_view_layout=0x7f0d0023;
public static final int equalizer_bar=0x7f0d0031;
public static final int equalizer_frequency=0x7f0d002f;
public static final int equalizer_level=0x7f0d0030;
public static final int equalizer_enabled=0x7f0d002c;
public static final int equalizer_layout=0x7f0d002d;
public static final int equalizer_preset=0x7f0d002e;
public static final int help_back=0x7f0d0033;
public static final int help_buttons=0x7f0d0032;
public static final int help_close=0x7f0d0034;
public static final int help_contents=0x7f0d0035;
public static final int jukebox_volume_progress_bar=0x7f0d0037;
public static final int linearLayout1=0x7f0d0005;
public static final int lyrics_artist=0x7f0d0038;
public static final int lyrics_scrollview=0x7f0d0037;
public static final int lyrics_text=0x7f0d003a;
public static final int lyrics_title=0x7f0d0039;
public static final int main_select_server_1=0x7f0d003e;
public static final int main_select_server_2=0x7f0d003f;
public static final int main_albums=0x7f0d0042;
public static final int main_albums_alphaByArtist=0x7f0d004a;
public static final int main_albums_alphaByName=0x7f0d0049;
public static final int main_albums_frequent=0x7f0d0045;
public static final int main_albums_highest=0x7f0d0046;
public static final int main_albums_newest=0x7f0d0043;
public static final int main_albums_random=0x7f0d0047;
public static final int main_albums_recent=0x7f0d0044;
public static final int main_albums_starred=0x7f0d0048;
public static final int main_dummy=0x7f0d003c;
public static final int main_list=0x7f0d003b;
public static final int main_select_server=0x7f0d003d;
public static final int main_shuffle=0x7f0d0083;
public static final int main_songs=0x7f0d0040;
public static final int main_songs_starred=0x7f0d0041;
public static final int menu_exit=0x7f0d0082;
public static final int menu_help=0x7f0d0081;
public static final int menu_lyrics=0x7f0d008b;
public static final int menu_refresh=0x7f0d0095;
public static final int menu_remove=0x7f0d008c;
public static final int menu_remove_all=0x7f0d0088;
public static final int menu_save_playlist=0x7f0d0087;
public static final int menu_screen_on_off=0x7f0d0089;
public static final int menu_settings=0x7f0d0080;
public static final int menu_show_album=0x7f0d008a;
public static final int menu_shuffle=0x7f0d008d;
public static final int notification_image=0x7f0d004c;
public static final int play_video_contents=0x7f0d0051;
public static final int progress_message=0x7f0d0052;
public static final int save_playlist_name=0x7f0d0054;
public static final int save_playlist_root=0x7f0d0053;
public static final int search_albums=0x7f0d0058;
public static final int search_artists=0x7f0d0057;
public static final int search_list=0x7f0d0055;
public static final int search_more_albums=0x7f0d005b;
public static final int search_more_artists=0x7f0d005a;
public static final int search_more_songs=0x7f0d005c;
public static final int search_search=0x7f0d0056;
public static final int search_songs=0x7f0d0059;
public static final int select_album_art=0x7f0d0066;
public static final int select_album_artist=0x7f0d0068;
public static final int select_album_delete=0x7f0d0064;
public static final int select_album_duration=0x7f0d006b;
public static final int select_album_empty=0x7f0d005d;
public static final int select_album_entries=0x7f0d005e;
public static final int select_album_genre=0x7f0d0069;
public static final int select_album_more=0x7f0d0065;
public static final int select_album_pin=0x7f0d0062;
public static final int select_album_play_all=0x7f0d008e;
public static final int select_album_play_last=0x7f0d0061;
public static final int select_album_play_now=0x7f0d0060;
public static final int select_album_select=0x7f0d005f;
public static final int select_album_song_count=0x7f0d006a;
public static final int select_album_title=0x7f0d0067;
public static final int select_album_unpin=0x7f0d0063;
public static final int select_artist_folder=0x7f0d006d;
public static final int select_artist_folder_1=0x7f0d006e;
public static final int select_artist_folder_2=0x7f0d006f;
public static final int select_artist_list=0x7f0d006c;
public static final int select_playlist_empty=0x7f0d0070;
public static final int select_playlist_list=0x7f0d0071;
public static final int song_artist=0x7f0d0076;
public static final int song_check=0x7f0d0072;
public static final int song_duration=0x7f0d0077;
public static final int song_menu_play_last=0x7f0d0098;
public static final int song_menu_play_next=0x7f0d0097;
public static final int song_menu_play_now=0x7f0d0096;
public static final int song_star=0x7f0d0078;
public static final int song_status=0x7f0d0075;
public static final int song_title=0x7f0d0074;
public static final int song_track=0x7f0d0073;
public static final int status_icon=0x7f0d004d;
public static final int status_media_collapse=0x7f0d007d;
public static final int status_media_next=0x7f0d007c;
public static final int status_media_play=0x7f0d007b;
public static final int status_media_prev=0x7f0d007a;
public static final int statusbar=0x7f0d004b;
public static final int tab_progress=0x7f0d007e;
public static final int tab_progress_message=0x7f0d007f;
public static final int lyrics_artist=0x7f0d0039;
public static final int lyrics_scrollview=0x7f0d0038;
public static final int lyrics_text=0x7f0d003b;
public static final int lyrics_title=0x7f0d003a;
public static final int main_select_server_1=0x7f0d003f;
public static final int main_select_server_2=0x7f0d0040;
public static final int main_albums=0x7f0d0043;
public static final int main_albums_alphaByArtist=0x7f0d004b;
public static final int main_albums_alphaByName=0x7f0d004a;
public static final int main_albums_frequent=0x7f0d0046;
public static final int main_albums_highest=0x7f0d0047;
public static final int main_albums_newest=0x7f0d0044;
public static final int main_albums_random=0x7f0d0048;
public static final int main_albums_recent=0x7f0d0045;
public static final int main_albums_starred=0x7f0d0049;
public static final int main_dummy=0x7f0d003d;
public static final int main_list=0x7f0d003c;
public static final int main_select_server=0x7f0d003e;
public static final int main_shuffle=0x7f0d007f;
public static final int main_songs=0x7f0d0041;
public static final int main_songs_starred=0x7f0d0042;
public static final int menu_exit=0x7f0d007e;
public static final int menu_help=0x7f0d007d;
public static final int menu_lyrics=0x7f0d0087;
public static final int menu_refresh=0x7f0d0091;
public static final int menu_remove=0x7f0d0088;
public static final int menu_remove_all=0x7f0d0084;
public static final int menu_save_playlist=0x7f0d0083;
public static final int menu_screen_on_off=0x7f0d0085;
public static final int menu_settings=0x7f0d007c;
public static final int menu_show_album=0x7f0d0086;
public static final int menu_shuffle=0x7f0d0089;
public static final int notification_image=0x7f0d004d;
public static final int play_video_contents=0x7f0d0052;
public static final int progress_message=0x7f0d0053;
public static final int save_playlist_name=0x7f0d0055;
public static final int save_playlist_root=0x7f0d0054;
public static final int search_albums=0x7f0d0059;
public static final int search_artists=0x7f0d0058;
public static final int search_list=0x7f0d0056;
public static final int search_more_albums=0x7f0d005c;
public static final int search_more_artists=0x7f0d005b;
public static final int search_more_songs=0x7f0d005d;
public static final int search_search=0x7f0d0057;
public static final int search_songs=0x7f0d005a;
public static final int select_album_art=0x7f0d0067;
public static final int select_album_artist=0x7f0d0069;
public static final int select_album_delete=0x7f0d0065;
public static final int select_album_duration=0x7f0d006c;
public static final int select_album_empty=0x7f0d005e;
public static final int select_album_entries=0x7f0d005f;
public static final int select_album_genre=0x7f0d006a;
public static final int select_album_more=0x7f0d0066;
public static final int select_album_pin=0x7f0d0063;
public static final int select_album_play_all=0x7f0d008a;
public static final int select_album_play_last=0x7f0d0062;
public static final int select_album_play_now=0x7f0d0061;
public static final int select_album_select=0x7f0d0060;
public static final int select_album_song_count=0x7f0d006b;
public static final int select_album_title=0x7f0d0068;
public static final int select_album_unpin=0x7f0d0064;
public static final int select_artist_folder=0x7f0d006e;
public static final int select_artist_folder_1=0x7f0d006f;
public static final int select_artist_folder_2=0x7f0d0070;
public static final int select_artist_list=0x7f0d006d;
public static final int select_playlist_empty=0x7f0d0071;
public static final int select_playlist_list=0x7f0d0072;
public static final int song_artist=0x7f0d0077;
public static final int song_check=0x7f0d0073;
public static final int song_duration=0x7f0d0078;
public static final int song_menu_play_last=0x7f0d0094;
public static final int song_menu_play_next=0x7f0d0093;
public static final int song_menu_play_now=0x7f0d0092;
public static final int song_star=0x7f0d0079;
public static final int song_status=0x7f0d0076;
public static final int song_title=0x7f0d0075;
public static final int song_track=0x7f0d0074;
public static final int status_icon=0x7f0d004e;
public static final int statusbar=0x7f0d004c;
public static final int tab_progress=0x7f0d007a;
public static final int tab_progress_message=0x7f0d007b;
public static final int title=0x7f0d0007;
public static final int toast_layout_root=0x7f0d0035;
public static final int trackname=0x7f0d004e;
public static final int toast_layout_root=0x7f0d0036;
public static final int trackname=0x7f0d004f;
}
public static final class integer {
public static final int config_activityDefaultDur=0x7f080001;
@ -325,8 +313,7 @@ public final class R {
public static final int select_artist_header=0x7f03001a;
public static final int select_playlist=0x7f03001b;
public static final int song_list_item=0x7f03001c;
public static final int statusbar=0x7f03001d;
public static final int tab_progress=0x7f03001e;
public static final int tab_progress=0x7f03001d;
}
public static final class menu {
public static final int common=0x7f0c0000;
@ -346,12 +333,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=0x7f0900ed;
public static final int background_task_network_error=0x7f0900ef;
public static final int background_task_no_network=0x7f0900ee;
public static final int background_task_not_found=0x7f0900f0;
public static final int background_task_parse_error=0x7f0900f1;
public static final int background_task_wait=0x7f0900ec;
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 button_bar_browse=0x7f09000d;
public static final int button_bar_home=0x7f09000c;
public static final int button_bar_now_playing=0x7f090010;
@ -401,9 +388,9 @@ public final class R {
public static final int download_repeat_single=0x7f090061;
public static final int download_visualizer_off=0x7f090063;
public static final int download_visualizer_on=0x7f090062;
public static final int equalizer_enabled=0x7f0900fe;
public static final int equalizer_label=0x7f0900fd;
public static final int equalizer_preset=0x7f0900ff;
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 error_label=0x7f09006d;
public static final int help_back=0x7f090029;
public static final int help_close=0x7f09002a;
@ -435,14 +422,14 @@ public final class R {
public static final int menu_settings=0x7f090023;
public static final int music_library_label=0x7f090038;
public static final int music_library_label_offline=0x7f090039;
public static final int music_service_retry=0x7f0900eb;
public static final int parser_artist_count=0x7f0900f9;
public static final int parser_not_authenticated=0x7f0900f7;
public static final int parser_not_authorized=0x7f0900f8;
public static final int parser_reading=0x7f0900f3;
public static final int parser_reading_done=0x7f0900f4;
public static final int parser_upgrade_client=0x7f0900f5;
public static final int parser_upgrade_server=0x7f0900f6;
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 play_video_loading=0x7f09002d;
public static final int play_video_noplugin=0x7f09002e;
public static final int playlist_label=0x7f090026;
@ -470,49 +457,49 @@ public final class R {
public static final int select_album_play_all=0x7f090041;
public static final int select_album_searching=0x7f090040;
public static final int select_album_select=0x7f09003b;
public static final int select_artist_all_folders=0x7f0900fc;
public static final int select_artist_folder=0x7f0900fb;
public static final int select_artist_refresh=0x7f0900fa;
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_playlist_empty=0x7f090049;
public static final int service_connecting=0x7f0900f2;
public static final int service_connecting=0x7f0900f4;
public static final int settings_appearance_title=0x7f090083;
public static final int settings_buffer_length=0x7f0900bc;
public static final int settings_buffer_length_1=0x7f0900be;
public static final int settings_buffer_length_10=0x7f0900c2;
public static final int settings_buffer_length_12=0x7f0900c3;
public static final int settings_buffer_length_15=0x7f0900c4;
public static final int settings_buffer_length_2=0x7f0900bf;
public static final int settings_buffer_length_20=0x7f0900c5;
public static final int settings_buffer_length_30=0x7f0900c6;
public static final int settings_buffer_length_5=0x7f0900c0;
public static final int settings_buffer_length_8=0x7f0900c1;
public static final int settings_buffer_length=0x7f0900be;
public static final int settings_buffer_length_1=0x7f0900c0;
public static final int settings_buffer_length_10=0x7f0900c4;
public static final int settings_buffer_length_12=0x7f0900c5;
public static final int settings_buffer_length_15=0x7f0900c6;
public static final int settings_buffer_length_2=0x7f0900c1;
public static final int settings_buffer_length_20=0x7f0900c7;
public static final int settings_buffer_length_30=0x7f0900c8;
public static final int settings_buffer_length_5=0x7f0900c2;
public static final int settings_buffer_length_8=0x7f0900c3;
public static final int settings_cache_location=0x7f09007b;
public static final int settings_cache_location_error=0x7f09007c;
public static final int settings_cache_size=0x7f09007a;
public static final int settings_cache_size_100=0x7f0900a3;
public static final int settings_cache_size_1000=0x7f0900a6;
public static final int settings_cache_size_10000=0x7f0900a9;
public static final int settings_cache_size_200=0x7f0900a4;
public static final int settings_cache_size_2000=0x7f0900a7;
public static final int settings_cache_size_20000=0x7f0900aa;
public static final int settings_cache_size_500=0x7f0900a5;
public static final int settings_cache_size_5000=0x7f0900a8;
public static final int settings_cache_size_unlimited=0x7f0900ab;
public static final int settings_cache_size_100=0x7f0900a5;
public static final int settings_cache_size_1000=0x7f0900a8;
public static final int settings_cache_size_10000=0x7f0900ab;
public static final int settings_cache_size_200=0x7f0900a6;
public static final int settings_cache_size_2000=0x7f0900a9;
public static final int settings_cache_size_20000=0x7f0900ac;
public static final int settings_cache_size_500=0x7f0900a7;
public static final int settings_cache_size_5000=0x7f0900aa;
public static final int settings_cache_size_unlimited=0x7f0900ad;
public static final int settings_cache_title=0x7f090078;
public static final int settings_clear_search_history=0x7f0900ac;
public static final int settings_clear_search_history=0x7f0900ae;
public static final int settings_connection_failure=0x7f090080;
public static final int settings_default_albums=0x7f0900e9;
public static final int settings_default_artists=0x7f0900e8;
public static final int settings_default_songs=0x7f0900ea;
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_display_bitrate=0x7f090099;
public static final int settings_display_bitrate_summary=0x7f09009a;
public static final int settings_hide_media_summary=0x7f0900b6;
public static final int settings_hide_media_title=0x7f0900b5;
public static final int settings_hide_media_toast=0x7f0900b7;
public static final int settings_hide_media_summary=0x7f0900b8;
public static final int settings_hide_media_title=0x7f0900b7;
public static final int settings_hide_media_toast=0x7f0900b9;
public static final int settings_invalid_url=0x7f090081;
public static final int settings_invalid_username=0x7f090082;
public static final int settings_max_albums=0x7f0900d7;
public static final int settings_max_artists=0x7f0900e6;
public static final int settings_max_albums=0x7f0900d9;
public static final int settings_max_artists=0x7f0900e8;
public static final int settings_max_bitrate_112=0x7f090090;
public static final int settings_max_bitrate_128=0x7f090091;
public static final int settings_max_bitrate_160=0x7f090092;
@ -526,64 +513,66 @@ public final class R {
public static final int settings_max_bitrate_mobile=0x7f09008b;
public static final int settings_max_bitrate_unlimited=0x7f090096;
public static final int settings_max_bitrate_wifi=0x7f09008a;
public static final int settings_max_songs=0x7f0900e7;
public static final int settings_media_button_summary=0x7f0900b9;
public static final int settings_media_button_title=0x7f0900b8;
public static final int settings_network_timeout=0x7f0900bd;
public static final int settings_network_timeout_105000=0x7f0900cd;
public static final int settings_network_timeout_120000=0x7f0900ce;
public static final int settings_network_timeout_15000=0x7f0900c7;
public static final int settings_network_timeout_30000=0x7f0900c8;
public static final int settings_network_timeout_45000=0x7f0900c9;
public static final int settings_network_timeout_60000=0x7f0900ca;
public static final int settings_network_timeout_75000=0x7f0900cb;
public static final int settings_network_timeout_90000=0x7f0900cc;
public static final int settings_max_songs=0x7f0900e9;
public static final int settings_media_button_summary=0x7f0900bb;
public static final int settings_media_button_title=0x7f0900ba;
public static final int settings_network_timeout=0x7f0900bf;
public static final int settings_network_timeout_105000=0x7f0900cf;
public static final int settings_network_timeout_120000=0x7f0900d0;
public static final int settings_network_timeout_15000=0x7f0900c9;
public static final int settings_network_timeout_30000=0x7f0900ca;
public static final int settings_network_timeout_45000=0x7f0900cb;
public static final int settings_network_timeout_60000=0x7f0900cc;
public static final int settings_network_timeout_75000=0x7f0900cd;
public static final int settings_network_timeout_90000=0x7f0900ce;
public static final int settings_network_title=0x7f090089;
public static final int settings_other_title=0x7f0900ae;
public static final int settings_playback_control_title=0x7f0900b0;
public static final int settings_other_title=0x7f0900b0;
public static final int settings_playback_control_title=0x7f0900b2;
public static final int settings_preload=0x7f090079;
public static final int settings_preload_1=0x7f09009d;
public static final int settings_preload_10=0x7f0900a1;
public static final int settings_preload_2=0x7f09009e;
public static final int settings_preload_3=0x7f09009f;
public static final int settings_preload_5=0x7f0900a0;
public static final int settings_preload_unlimited=0x7f0900a2;
public static final int settings_screen_lit_summary=0x7f0900bb;
public static final int settings_screen_lit_title=0x7f0900ba;
public static final int settings_scrobble_summary=0x7f0900b2;
public static final int settings_scrobble_title=0x7f0900b1;
public static final int settings_search_1=0x7f0900d8;
public static final int settings_search_10=0x7f0900db;
public static final int settings_search_100=0x7f0900e3;
public static final int settings_search_15=0x7f0900dc;
public static final int settings_search_20=0x7f0900dd;
public static final int settings_search_25=0x7f0900de;
public static final int settings_search_250=0x7f0900e4;
public static final int settings_search_3=0x7f0900d9;
public static final int settings_search_30=0x7f0900df;
public static final int settings_search_40=0x7f0900e0;
public static final int settings_search_5=0x7f0900da;
public static final int settings_search_50=0x7f0900e1;
public static final int settings_search_500=0x7f0900e5;
public static final int settings_search_75=0x7f0900e2;
public static final int settings_search_history_cleared=0x7f0900ad;
public static final int settings_search_title=0x7f0900af;
public static final int settings_preload_1=0x7f09009f;
public static final int settings_preload_10=0x7f0900a3;
public static final int settings_preload_2=0x7f0900a0;
public static final int settings_preload_3=0x7f0900a1;
public static final int settings_preload_5=0x7f0900a2;
public static final int settings_preload_unlimited=0x7f0900a4;
public static final int settings_screen_lit_summary=0x7f0900bd;
public static final int settings_screen_lit_title=0x7f0900bc;
public static final int settings_scrobble_summary=0x7f0900b4;
public static final int settings_scrobble_title=0x7f0900b3;
public static final int settings_search_1=0x7f0900da;
public static final int settings_search_10=0x7f0900dd;
public static final int settings_search_100=0x7f0900e5;
public static final int settings_search_15=0x7f0900de;
public static final int settings_search_20=0x7f0900df;
public static final int settings_search_25=0x7f0900e0;
public static final int settings_search_250=0x7f0900e6;
public static final int settings_search_3=0x7f0900db;
public static final int settings_search_30=0x7f0900e1;
public static final int settings_search_40=0x7f0900e2;
public static final int settings_search_5=0x7f0900dc;
public static final int settings_search_50=0x7f0900e3;
public static final int settings_search_500=0x7f0900e7;
public static final int settings_search_75=0x7f0900e4;
public static final int settings_search_history_cleared=0x7f0900af;
public static final int settings_search_title=0x7f0900b1;
public static final int settings_server_address=0x7f090075;
public static final int settings_server_name=0x7f090074;
public static final int settings_server_password=0x7f090077;
public static final int settings_server_scaling_summary=0x7f0900b4;
public static final int settings_server_scaling_title=0x7f0900b3;
public static final int settings_server_scaling_summary=0x7f0900b6;
public static final int settings_server_scaling_title=0x7f0900b5;
public static final int settings_server_unused1=0x7f090071;
public static final int settings_server_unused2=0x7f090072;
public static final int settings_server_unused3=0x7f090073;
public static final int settings_server_username=0x7f090076;
public static final int settings_servers_title=0x7f090070;
public static final int settings_show_lockscreen_controls=0x7f0900d3;
public static final int settings_show_lockscreen_controls_summary=0x7f0900d4;
public static final int settings_show_notification=0x7f0900cf;
public static final int settings_show_notification_always=0x7f0900d1;
public static final int settings_show_notification_always_summary=0x7f0900d2;
public static final int settings_show_notification_summary=0x7f0900d0;
public static final int settings_show_lockscreen_controls=0x7f0900d5;
public static final int settings_show_lockscreen_controls_summary=0x7f0900d6;
public static final int settings_show_notification=0x7f0900d1;
public static final int settings_show_notification_always=0x7f0900d3;
public static final int settings_show_notification_always_summary=0x7f0900d4;
public static final int settings_show_notification_summary=0x7f0900d2;
public static final int settings_show_track_number=0x7f09009d;
public static final int settings_show_track_number_summary=0x7f09009e;
public static final int settings_test_connection_title=0x7f09006f;
public static final int settings_testing_connection=0x7f09007d;
public static final int settings_testing_ok=0x7f09007e;
@ -596,19 +585,19 @@ public final class R {
public static final int settings_title=0x7f09006e;
public static final int settings_use_folder_for_album_artist=0x7f09009b;
public static final int settings_use_folder_for_album_artist_summary=0x7f09009c;
public static final int settings_use_stream_proxy=0x7f0900d5;
public static final int settings_use_stream_proxy_summary=0x7f0900d6;
public static final int settings_use_stream_proxy=0x7f0900d7;
public static final int settings_use_stream_proxy_summary=0x7f0900d8;
public static final int settings_wifi_required_summary=0x7f090098;
public static final int settings_wifi_required_title=0x7f090097;
public static final int song_details_all=0x7f09006a;
public static final int song_details_kbps=0x7f09006b;
public static final int util_bytes_format_byte=0x7f090106;
public static final int util_bytes_format_gigabyte=0x7f090103;
public static final int util_bytes_format_kilobyte=0x7f090105;
public static final int util_bytes_format_megabyte=0x7f090104;
public static final int widget_initial_text=0x7f090100;
public static final int widget_sdcard_busy=0x7f090101;
public static final int widget_sdcard_missing=0x7f090102;
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 class style {
public static final int Dark=0x7f0b0000;

Binary file not shown.

Before

Width:  |  Height:  |  Size: 557 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 463 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 177 B

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 289 B

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 467 B

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 126 B

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 613 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 386 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 941 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 807 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 957 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 338 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 777 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.3 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 562 B

View File

@ -1,106 +1,182 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:orientation="vertical" a:layout_width="fill_parent" a:layout_height="fill_parent">
a:layout_width="fill_parent"
a:layout_height="fill_parent"
a:orientation="vertical" >
<RelativeLayout a:orientation="horizontal"
a:layout_width="fill_parent" a:layout_height="0dip" a:layout_weight="1">
<RelativeLayout
a:layout_width="fill_parent"
a:layout_height="0dip"
a:layout_weight="1"
a:orientation="horizontal" >
<RelativeLayout a:id="@+id/download_control_layout"
a:layout_width="wrap_content" a:layout_height="fill_parent"
a:layout_alignParentRight="true" a:background="@color/mediaControlBackground">
<RelativeLayout
a:id="@+id/download_control_layout"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:layout_alignParentRight="true"
a:background="@color/mediaControlBackground" >
<LinearLayout a:orientation="horizontal" a:layout_width="wrap_content"
a:layout_height="wrap_content" a:layout_alignParentTop="true"
a:layout_alignParentLeft="true">
<LinearLayout
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_alignParentLeft="true"
a:layout_alignParentTop="true"
a:orientation="horizontal"
a:paddingBottom="12dip"
a:paddingTop="12dip" >
<ImageButton a:id="@+id/download_shuffle"
a:layout_width="0dip" a:layout_height="match_parent"
a:layout_gravity="center_vertical" a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark" a:paddingLeft="4dip"
a:src="@drawable/media_shuffle_normal" />
<ImageButton
a:id="@+id/download_shuffle"
a:layout_width="0dip"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:paddingLeft="4dip"
a:src="@drawable/media_shuffle_normal" />
<ImageButton a:id="@+id/download_previous"
a:layout_width="0dp" a:layout_height="match_parent"
a:layout_gravity="center_vertical" a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark" a:padding="0dip"
a:src="@drawable/media_backward_normal" />
<ImageButton
a:id="@+id/download_previous"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_backward_normal" />
<ImageButton a:id="@+id/download_pause" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:padding="0dip" a:src="@drawable/media_pause_normal" />
<ImageButton
a:id="@+id/download_pause"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_pause_normal" />
<ImageButton a:id="@+id/download_stop" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:padding="0dip" a:src="@drawable/media_stop_normal" />
<ImageButton
a:id="@+id/download_stop"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_stop_normal" />
<ImageButton a:id="@+id/download_start" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:padding="0dip" a:src="@drawable/media_start_normal" />
<ImageButton
a:id="@+id/download_start"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_start_normal" />
<ImageButton a:id="@+id/download_next" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:padding="0dip" a:src="@drawable/media_forward_normal" />
<ImageButton
a:id="@+id/download_next"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_forward_normal" />
<ImageButton a:id="@+id/download_repeat" a:layout_width="0dip"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_repeat_off" />
<ImageButton
a:id="@+id/download_repeat"
a:layout_width="0dip"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_repeat_off" />
<ImageButton a:id="@+id/download_toggle_list"
a:layout_width="0dip" a:layout_height="fill_parent"
a:layout_gravity="center_vertical" a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark" a:paddingRight="4dip"
a:src="@drawable/media_toggle_list_normal" a:paddingTop="12dip"
a:paddingBottom="12dip" />
</LinearLayout>
<ImageButton
a:id="@+id/download_star"
a:layout_width="0dip"
a:layout_height="match_parent"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:focusable="false"
a:gravity="center_vertical"
a:src="@drawable/ic_star_hollow" />
<TextView a:id="@+id/download_status" a:layout_width="wrap_content"
a:layout_height="wrap_content" a:layout_alignParentBottom="true"
a:layout_centerHorizontal="true" a:layout_marginBottom="8dip"
a:singleLine="true" a:ellipsize="end" a:textAppearance="?android:attr/textAppearanceSmall"
a:textColor="#c0c0c0" />
<ImageButton
a:id="@+id/download_toggle_list"
a:layout_width="0dip"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:paddingRight="4dip"
a:src="@drawable/media_toggle_list_normal" />
</LinearLayout>
<TextView a:id="@+id/download_song_title" a:layout_width="150dip"
a:layout_height="wrap_content" a:layout_gravity="center_horizontal"
a:layout_above="@+id/download_status" a:layout_centerHorizontal="true"
a:layout_marginLeft="12dip" a:layout_marginRight="12dip"
a:layout_marginTop="12dip" a:maxLines="2" a:ellipsize="end"
a:gravity="center_horizontal" a:textAppearance="?android:attr/textAppearanceMedium"
a:textColor="@color/mediaControlForeground" />
<TextView
a:id="@+id/download_status"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_alignParentBottom="true"
a:layout_centerHorizontal="true"
a:layout_marginBottom="8dip"
a:ellipsize="end"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall"
a:textColor="#c0c0c0" />
</RelativeLayout>
<TextView
a:id="@+id/download_song_title"
a:layout_width="150dip"
a:layout_height="wrap_content"
a:layout_above="@+id/download_status"
a:layout_centerHorizontal="true"
a:layout_gravity="center_horizontal"
a:layout_marginLeft="12dip"
a:layout_marginRight="12dip"
a:layout_marginTop="12dip"
a:ellipsize="end"
a:gravity="center_horizontal"
a:maxLines="2"
a:textAppearance="?android:attr/textAppearanceMedium"
a:textColor="@color/mediaControlForeground" />
</RelativeLayout>
<com.thejoshwa.ultrasonic.androidapp.util.MyViewFlipper
a:id="@+id/download_playlist_flipper" a:layout_width="wrap_content"
a:layout_height="fill_parent" a:layout_alignParentLeft="true"
a:layout_toLeftOf="@+id/download_control_layout">
<com.thejoshwa.ultrasonic.androidapp.util.MyViewFlipper
a:id="@+id/download_playlist_flipper"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:layout_alignParentLeft="true"
a:layout_toLeftOf="@+id/download_control_layout" >
<FrameLayout a:id="@+id/download_album_art_layout"
a:layout_width="fill_parent" a:layout_height="fill_parent"
a:background="@color/black">
<FrameLayout
a:id="@+id/download_album_art_layout"
a:layout_width="fill_parent"
a:layout_height="fill_parent"
a:layout_weight="1"
a:background="@color/black"
a:gravity="left"
a:orientation="horizontal" >
<ImageView a:id="@+id/download_album_art_image"
a:layout_width="wrap_content" a:layout_height="wrap_content"
a:layout_gravity="center" a:layout_marginTop="0dip" a:scaleType="fitCenter" />
<ImageView
a:id="@+id/download_album_art_image"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:scaleType="fitCenter" />
<LinearLayout a:id="@+id/download_visualizer_view_layout"
a:layout_width="fill_parent" a:layout_height="60dip"
a:layout_marginLeft="60dip" a:layout_marginRight="60dip"
a:layout_gravity="bottom|center_horizontal" />
</FrameLayout>
<LinearLayout
a:id="@+id/download_visualizer_view_layout"
a:layout_width="fill_parent"
a:layout_height="60dip"
a:layout_gravity="bottom|center_horizontal"
a:layout_marginLeft="60dip"
a:layout_marginRight="60dip" />
</FrameLayout>
<include layout="@layout/download_playlist" />
<include layout="@layout/download_playlist" />
</com.thejoshwa.ultrasonic.androidapp.util.MyViewFlipper>
</RelativeLayout>
</com.thejoshwa.ultrasonic.androidapp.util.MyViewFlipper>
<include layout="@layout/download_slider" />
</RelativeLayout>
<include layout="@layout/download_button_bar_flipper" />
<include layout="@layout/download_slider" />
<include layout="@layout/download_button_bar_flipper" />
</LinearLayout>
</LinearLayout>

View File

@ -1,95 +1,168 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:orientation="vertical" a:layout_width="fill_parent" a:layout_height="fill_parent">
a:layout_width="fill_parent"
a:layout_height="fill_parent"
a:orientation="vertical" >
<com.thejoshwa.ultrasonic.androidapp.util.MyViewFlipper
a:id="@+id/download_playlist_flipper" a:layout_width="fill_parent"
a:layout_height="0dip" a:layout_weight="1">
<com.thejoshwa.ultrasonic.androidapp.util.MyViewFlipper
a:id="@+id/download_playlist_flipper"
a:layout_width="fill_parent"
a:layout_height="0dip"
a:layout_weight="1" >
<RelativeLayout a:id="@+id/download_album_art_layout"
a:layout_width="fill_parent" a:layout_height="fill_parent"
a:layout_weight="1" a:gravity="left" a:orientation="vertical"
a:background="@color/black">
<RelativeLayout
a:id="@+id/download_album_art_layout"
a:layout_width="fill_parent"
a:layout_height="fill_parent"
a:layout_weight="1"
a:background="@color/black"
a:gravity="left"
a:orientation="vertical" >
<ImageView a:id="@+id/download_album_art_image"
a:layout_width="wrap_content" a:layout_height="wrap_content"
a:layout_centerHorizontal="true" a:layout_alignParentTop="true"
a:layout_marginTop="0dip" a:scaleType="fitCenter" />
<ImageView
a:id="@+id/download_album_art_image"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_alignParentTop="true"
a:layout_centerHorizontal="true"
a:scaleType="fitCenter" />
<TextView a:id="@+id/download_status" a:layout_width="wrap_content"
a:layout_height="wrap_content" a:layout_alignParentBottom="true"
a:layout_centerHorizontal="true" a:singleLine="true" a:ellipsize="end"
a:textAppearance="?android:attr/textAppearanceSmall" a:textColor="#c0c0c0" />
<TextView
a:id="@+id/download_status"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_alignParentBottom="true"
a:layout_centerHorizontal="true"
a:ellipsize="end"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall"
a:textColor="#c0c0c0" />
<TextView a:id="@+id/download_song_title" a:layout_width="wrap_content"
a:layout_height="wrap_content" a:layout_gravity="center_horizontal"
a:layout_above="@+id/download_status" a:layout_centerHorizontal="true"
a:layout_marginLeft="16dip" a:layout_marginRight="16dip"
a:layout_marginTop="16dip" a:singleLine="true"
a:textColor="@color/mediaControlForeground" a:textStyle="bold"
a:textSize="18sp" a:ellipsize="end" />
<TextView
a:id="@+id/download_song_title"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_above="@+id/download_status"
a:layout_centerHorizontal="true"
a:layout_gravity="center_horizontal"
a:layout_marginLeft="16dip"
a:layout_marginRight="16dip"
a:layout_marginTop="16dip"
a:ellipsize="end"
a:singleLine="true"
a:textColor="@color/mediaControlForeground"
a:textSize="18sp"
a:textStyle="bold" />
<LinearLayout a:id="@+id/download_visualizer_view_layout"
a:layout_width="fill_parent" a:layout_height="60dip"
a:layout_marginLeft="80dip" a:layout_marginRight="80dip"
a:layout_gravity="center_horizontal" a:layout_above="@+id/download_song_title" />
<LinearLayout
a:id="@+id/download_visualizer_view_layout"
a:layout_width="fill_parent"
a:layout_height="60dip"
a:layout_above="@+id/download_song_title"
a:layout_gravity="center_horizontal"
a:layout_marginLeft="80dip"
a:layout_marginRight="80dip" />
</RelativeLayout>
</RelativeLayout>
<include layout="@layout/download_playlist" />
</com.thejoshwa.ultrasonic.androidapp.util.MyViewFlipper>
<include layout="@layout/download_playlist" />
<LinearLayout
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:layout_marginTop="0dip"
a:background="@color/mediaControlBackground"
a:orientation="horizontal"
a:paddingBottom="12dip"
a:paddingTop="12dip" >
</com.thejoshwa.ultrasonic.androidapp.util.MyViewFlipper>
<ImageButton
a:id="@+id/download_shuffle"
a:layout_width="0dip"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:paddingLeft="4dip"
a:src="@drawable/media_shuffle_normal" />
<LinearLayout a:layout_width="fill_parent"
a:layout_height="wrap_content" a:layout_marginTop="0dip"
a:background="@color/mediaControlBackground" a:orientation="horizontal"
a:paddingBottom="0dip" a:paddingTop="0dip">
<ImageButton
a:id="@+id/download_previous"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_backward_normal" />
<ImageButton a:id="@+id/download_shuffle" a:layout_width="0dip"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:paddingLeft="4dip" a:src="@drawable/media_shuffle_normal" />
<ImageButton
a:id="@+id/download_pause"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_pause_normal" />
<ImageButton a:id="@+id/download_previous" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:padding="0dip" a:src="@drawable/media_backward_normal" />
<ImageButton
a:id="@+id/download_stop"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_stop_normal" />
<ImageButton a:id="@+id/download_pause" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:padding="0dip" a:src="@drawable/media_pause_normal" />
<ImageButton
a:id="@+id/download_start"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_start_normal" />
<ImageButton a:id="@+id/download_stop" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:padding="0dip" a:src="@drawable/media_stop_normal" />
<ImageButton
a:id="@+id/download_next"
a:layout_width="0dp"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_forward_normal" />
<ImageButton a:id="@+id/download_start" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:padding="0dip" a:src="@drawable/media_start_normal" />
<ImageButton
a:id="@+id/download_repeat"
a:layout_width="0dip"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_repeat_off" />
<ImageButton a:id="@+id/download_next" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:padding="0dip" a:src="@drawable/media_forward_normal" />
<ImageButton
a:id="@+id/download_star"
a:layout_width="0dip"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:focusable="false"
a:src="@drawable/ic_star_hollow" />
<ImageButton a:id="@+id/download_repeat" a:layout_width="0dip"
a:layout_height="match_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/media_repeat_off" />
<ImageButton
a:id="@+id/download_toggle_list"
a:layout_width="0dip"
a:layout_height="match_parent"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:background="@drawable/list_selector_holo_dark"
a:paddingRight="4dip"
a:src="@drawable/media_toggle_list_normal" />
</LinearLayout>
<ImageButton a:id="@+id/download_toggle_list"
a:layout_width="0dip" a:layout_height="fill_parent" a:layout_gravity="center_vertical"
a:layout_weight="1" a:background="@drawable/list_selector_holo_dark"
a:paddingRight="4dip" a:src="@drawable/media_toggle_list_normal"
a:paddingTop="12dip" a:paddingBottom="12dip" />
</LinearLayout>
<include layout="@layout/download_slider" />
<include layout="@layout/download_slider" />
<include layout="@layout/download_button_bar_flipper" />
</LinearLayout>
<include layout="@layout/download_button_bar_flipper" />
</LinearLayout>

View File

@ -11,8 +11,7 @@
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_gravity="left|center_vertical"
a:paddingTop="1dip"
a:paddingBottom="1dip"/>
a:paddingLeft="3dip"/>
<LinearLayout
a:orientation="vertical"
@ -46,7 +45,8 @@
a:layout_height="fill_parent"
a:gravity="center_vertical"
a:background="@android:color/transparent"
a:src="@drawable/star_hollow"
a:focusable="false" />
a:src="@drawable/ic_star_hollow"
a:focusable="false"
a:paddingRight="3dip" />
</LinearLayout>

View File

@ -6,6 +6,6 @@
a:layout_height="wrap_content"
a:textAppearance="?android:attr/textAppearanceMedium"
a:gravity="center_vertical"
a:paddingLeft="2dip"
a:paddingRight="2dip"
a:paddingLeft="3dip"
a:paddingRight="3dip"
a:minHeight="50dip"/>

View File

@ -74,7 +74,7 @@
android:layout_marginTop="2dip"
android:layout_weight="0.0"
android:background="@drawable/btn_bg"
android:src="@drawable/status_prev" />
android:src="@drawable/media_backward_normal" />
<ImageButton
android:id="@+id/control_play"
@ -85,7 +85,7 @@
android:layout_marginTop="2dip"
android:layout_weight="0.0"
android:background="@drawable/btn_bg"
android:src="@drawable/status_pause" />
android:src="@drawable/media_pause_normal" />
<ImageButton
android:id="@+id/control_stop"
@ -96,7 +96,7 @@
android:layout_marginTop="2dip"
android:layout_weight="0.0"
android:background="@drawable/btn_bg"
android:src="@drawable/status_stop" />
android:src="@drawable/media_stop_normal" />
<ImageButton
android:id="@+id/control_next"
@ -107,7 +107,7 @@
android:layout_marginTop="2dip"
android:layout_weight="0.0"
android:background="@drawable/btn_bg"
android:src="@drawable/status_next" />
android:src="@drawable/media_forward_normal" />
</LinearLayout>
</LinearLayout>

View File

@ -11,7 +11,7 @@
a:layout_height="fill_parent"
a:checkMark="@drawable/btn_check_custom"
a:gravity="center_vertical"
a:paddingLeft="0dip" />
a:paddingLeft="1dip" />
<LinearLayout
a:layout_width="0dip"
@ -69,7 +69,8 @@
a:layout_weight="1"
a:ellipsize="middle"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall" />
a:textAppearance="?android:attr/textAppearanceSmall"
a:paddingLeft="4dip" />
<TextView
a:id="@+id/song_duration"
@ -87,9 +88,10 @@
a:id="@+id/song_star"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:paddingRight="3dip"
a:background="@android:color/transparent"
a:focusable="false"
a:gravity="center_vertical"
a:src="@drawable/star_hollow" />
a:src="@drawable/ic_star_hollow" />
</LinearLayout>

View File

@ -1,112 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/statusbar"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/icon"
android:layout_width="64.0dip"
android:layout_height="64.0dip"
android:layout_weight="0.0"
android:gravity="center" />
<ImageView
android:id="@+id/status_icon"
android:layout_width="64.0dip"
android:layout_height="64.0dip"
android:background="@drawable/status_bg"
android:scaleType="center"
android:visibility="gone" />
<LinearLayout
android:layout_width="0.0dp"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_weight="1.0"
android:orientation="vertical"
android:paddingLeft="11.0dip" >
<TextView
android:id="@+id/trackname"
style="@android:style/TextAppearance.StatusBar.EventContent.Title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:ellipsize="marquee"
android:focusable="true"
android:singleLine="true" />
<TextView
android:id="@+id/artist"
style="@android:style/TextAppearance.StatusBar.EventContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:ellipsize="end"
android:scrollHorizontally="true"
android:singleLine="true" />
<TextView
android:id="@+id/album"
style="@android:style/TextAppearance.StatusBar.EventContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:ellipsize="end"
android:scrollHorizontally="true"
android:singleLine="true" />
</LinearLayout>
<ImageButton
android:id="@+id/status_media_prev"
android:layout_width="40dip"
android:layout_height="40dip"
android:layout_gravity="center|right"
android:layout_marginRight="5dip"
android:layout_marginTop="2dip"
android:layout_weight="0.0"
android:background="@drawable/btn_bg"
android:src="@drawable/status_prev" />
<ImageButton
android:id="@+id/status_media_play"
android:layout_width="40dip"
android:layout_height="40dip"
android:layout_gravity="center|right"
android:layout_marginRight="5dip"
android:layout_marginTop="2dip"
android:layout_weight="0.0"
android:background="@drawable/btn_bg"
android:src="@drawable/status_play" />
<ImageButton
android:id="@+id/status_media_next"
android:layout_width="40dip"
android:layout_height="40dip"
android:layout_gravity="center|right"
android:layout_marginRight="5dip"
android:layout_marginTop="2dip"
android:layout_weight="0.0"
android:background="@drawable/btn_bg"
android:src="@drawable/status_next" />
<ImageButton
android:id="@+id/status_media_collapse"
android:layout_width="40dip"
android:layout_height="40dip"
android:layout_gravity="center|right"
android:layout_marginRight="5dip"
android:layout_marginTop="2dip"
android:layout_weight="0.0"
android:background="@drawable/btn_bg"
android:src="@drawable/btn_collapse_group_normal_holo_dark" />
</LinearLayout>
</LinearLayout>

View File

@ -157,6 +157,8 @@
<string name="settings.display_bitrate_summary">Append artist name with bitrate and file suffix</string>
<string name="settings.use_folder_for_album_artist">Use Folders For Artist Name</string>
<string name="settings.use_folder_for_album_artist_summary">Assume top-level folder is the name of the album artist</string>
<string name="settings.show_track_number">Show Track Number</string>
<string name="settings.show_track_number_summary">Include track number when displaying a song</string>
<string name="settings.preload_1">1 song</string>
<string name="settings.preload_2">2 songs</string>
<string name="settings.preload_3">3 songs</string>

View File

@ -84,17 +84,26 @@
a:key="theme"
a:title="@string/settings.theme_title" />
<CheckBoxPreference
a:defaultValue="true"
a:key="serverScaling"
a:summary="@string/settings.server_scaling_summary"
a:title="@string/settings.server_scaling_title" />
<CheckBoxPreference
a:defaultValue="true"
a:key="displayBitrateWithArtist"
a:summary="@string/settings.display_bitrate_summary"
a:title="@string/settings.display_bitrate" />
<CheckBoxPreference
<CheckBoxPreference
a:defaultValue="false"
a:key="useFolderForAlbumArtist"
a:summary="@string/settings.use_folder_for_album_artist_summary"
a:title="@string/settings.use_folder_for_album_artist" />
<CheckBoxPreference
a:defaultValue="true"
a:key="showTrackNumber"
a:summary="@string/settings.show_track_number_summary"
a:title="@string/settings.show_track_number" />
</PreferenceCategory>
<PreferenceCategory a:title="@string/settings.network_title" >
<ListPreference
@ -214,11 +223,6 @@
a:title="@string/settings.use_stream_proxy" />
</PreferenceCategory>
<PreferenceCategory a:title="@string/settings.other_title" >
<CheckBoxPreference
a:defaultValue="true"
a:key="serverScaling"
a:summary="@string/settings.server_scaling_summary"
a:title="@string/settings.server_scaling_title" />
<CheckBoxPreference
a:defaultValue="false"
a:key="scrobble"

View File

@ -33,6 +33,7 @@ import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.os.Handler;
import android.util.Log;
import android.view.ContextMenu;
import android.view.Display;
import android.view.GestureDetector;
@ -58,6 +59,7 @@ import android.widget.TextView;
import android.widget.ViewFlipper;
import com.thejoshwa.ultrasonic.androidapp.R;
import com.thejoshwa.ultrasonic.androidapp.domain.MusicDirectory;
import com.thejoshwa.ultrasonic.androidapp.domain.MusicDirectory.Entry;
import com.thejoshwa.ultrasonic.androidapp.domain.PlayerState;
import com.thejoshwa.ultrasonic.androidapp.domain.RepeatMode;
import com.thejoshwa.ultrasonic.androidapp.service.DownloadFile;
@ -73,7 +75,7 @@ import com.thejoshwa.ultrasonic.androidapp.view.VisualizerView;
import static com.thejoshwa.ultrasonic.androidapp.domain.PlayerState.*;
public class DownloadActivity extends SubsonicTabActivity implements OnGestureListener {
private static final String TAG = DownloadActivity.class.getSimpleName();
private static final int DIALOG_SAVE_PLAYLIST = 100;
private static final int PERCENTAGE_OF_SCREEN_FOR_SWIPE = 5;
@ -96,11 +98,13 @@ public class DownloadActivity extends SubsonicTabActivity implements OnGestureLi
private View startButton;
private View shuffleButton;
private ImageButton repeatButton;
private ImageButton starImageView;
private MenuItem equalizerMenuItem;
private MenuItem visualizerMenuItem;
private View toggleListButton;
private ScheduledExecutorService executorService;
private DownloadFile currentPlaying;
private Entry currentSong;
private long currentRevision;
private EditText playlistNameView;
private GestureDetector gestureScanner;
@ -142,6 +146,7 @@ public class DownloadActivity extends SubsonicTabActivity implements OnGestureLi
startButton = findViewById(R.id.download_start);
shuffleButton = findViewById(R.id.download_shuffle);
repeatButton = (ImageButton) findViewById(R.id.download_repeat);
starImageView = (ImageButton) findViewById(R.id.download_star);
LinearLayout visualizerViewLayout = (LinearLayout) findViewById(R.id.download_visualizer_view_layout);
toggleListButton = findViewById(R.id.download_toggle_list);
@ -285,12 +290,52 @@ public class DownloadActivity extends SubsonicTabActivity implements OnGestureLi
playlistView.setOnTouchListener(gestureListener);
registerForContextMenu(playlistView);
DownloadService downloadService = getDownloadService();
if (downloadService != null && getIntent().getBooleanExtra(Constants.INTENT_EXTRA_NAME_SHUFFLE, false)) {
warnIfNetworkOrStorageUnavailable();
downloadService.setShufflePlayEnabled(true);
}
if (Util.isOffline(this)) {
starImageView.setVisibility(View.GONE);
}
starImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (currentSong == null) {
return;
}
final boolean isStarred = currentSong.getStarred();
final String id = currentSong.getId();
if (!isStarred) {
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_star_full));
currentSong.setStarred(true);
} else {
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_star_hollow));
currentSong.setStarred(false);
}
new Thread(new Runnable() {
public void run() {
MusicService musicService = MusicServiceFactory.getMusicService(getBaseContext());
try {
if (!isStarred) {
musicService.star(id, getBaseContext(), null);
} else {
musicService.unstar(id, getBaseContext(), null);
}
} catch (Exception e) {
Log.e(TAG, e.getMessage(), e);
}
}
}).start();
}
});
visualizerAvailable = downloadService != null && downloadService.getVisualizerController() != null;
equalizerAvailable = downloadService != null && downloadService.getEqualizerController() != null;
@ -669,12 +714,14 @@ public class DownloadActivity extends SubsonicTabActivity implements OnGestureLi
currentPlaying = getDownloadService().getCurrentPlaying();
if (currentPlaying != null) {
MusicDirectory.Entry song = currentPlaying.getSong();
songTitleTextView.setText(song.getTitle());
albumTextView.setText(song.getAlbum());
artistTextView.setText(song.getArtist());
getImageLoader().loadImage(albumArtImageView, song, true, true);
currentSong = currentPlaying.getSong();
starImageView.setImageDrawable(currentSong.getStarred() ? getResources().getDrawable(R.drawable.ic_star_full) : getResources().getDrawable(R.drawable.ic_star_hollow));
songTitleTextView.setText(currentSong.getTitle());
albumTextView.setText(currentSong.getAlbum());
artistTextView.setText(currentSong.getArtist());
getImageLoader().loadImage(albumArtImageView, currentSong, true, true);
} else {
currentSong = null;
songTitleTextView.setText(null);
albumTextView.setText(null);
artistTextView.setText(null);

View File

@ -151,7 +151,7 @@ public class MusicDirectory {
}
public Integer getTrack() {
return track;
return track == null ? 0 : track;
}
public void setTrack(Integer track) {
@ -159,7 +159,7 @@ public class MusicDirectory {
}
public Integer getYear() {
return year;
return year == null ? 0 : year;
}
public void setYear(Integer year) {

View File

@ -108,6 +108,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
private StreamProxy proxy;
private static MusicDirectory.Entry currentSong;
private RemoteControlClient remoteControlClient;
private AudioManager audioManager;
private int secondaryProgress = -1;
static {
@ -145,6 +146,7 @@ public class DownloadServiceImpl extends Service implements DownloadService {
public void onCreate() {
super.onCreate();
audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
mediaPlayer = new MediaPlayer();
mediaPlayer.setWakeMode(this, PowerManager.PARTIAL_WAKE_LOCK);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
@ -204,7 +206,6 @@ public class DownloadServiceImpl extends Service implements DownloadService {
visualizerController.release();
}
AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
audioManager.unregisterRemoteControlClient(remoteControlClient);
notification = null;
instance = null;
@ -588,7 +589,6 @@ public class DownloadServiceImpl extends Service implements DownloadService {
@Override
public synchronized void stop() {
AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
audioManager.abandonAudioFocus(_afChangeListener);
try {
@ -688,6 +688,9 @@ public class DownloadServiceImpl extends Service implements DownloadService {
Util.broadcastPlaybackStatusChange(this, playerState);
this.playerState = playerState;
if (this.playerState == PlayerState.STARTED) {
audioManager.requestAudioFocus(_afChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
}
setRemoteControl();
@ -753,9 +756,6 @@ public class DownloadServiceImpl extends Service implements DownloadService {
private void setRemoteControl() {
if (Util.isLockScreenEnabled(this)) {
AudioManager audioManager = (AudioManager) this.getSystemService(Context.AUDIO_SERVICE);
audioManager.requestAudioFocus(_afChangeListener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN);
if (remoteControlClient == null) {
Intent intent = new Intent(Intent.ACTION_MEDIA_BUTTON);
intent.setComponent(new ComponentName(this.getPackageName(), MediaButtonIntentReceiver.class.getName()));
@ -1102,34 +1102,49 @@ public class DownloadServiceImpl extends Service implements DownloadService {
@Override
public void execute() {
setPlayerState(DOWNLOADING);
if (!getIsCompleteFileAvailable(downloadFile)) {
setPlayerState(DOWNLOADING);
while (!bufferComplete()) {
Util.sleepQuietly(100L);
if (isCancelled()) {
return;
while (!bufferComplete()) {
Util.sleepQuietly(50L);
if (isCancelled()) {
return;
}
}
}
}
doPlay(downloadFile, position, true);
}
private boolean bufferComplete() {
private boolean getIsCompleteFileAvailable(DownloadFile downloadFile) {
boolean completeFileAvailable = downloadFile.isCompleteFileAvailable();
if (completeFileAvailable) {
Log.i(TAG, "Buffering complete: Complete file exists (" + completeFileAvailable + ")");
return true;
}
long size = partialFile.length();
if (size >= expectedFileSize) {
Log.i(TAG, "Buffering complete: " + partialFile + " (" + size + "/" + expectedFileSize + ")");
return true;
}
Log.i(TAG, "Buffering incomplete: " + partialFile + " (" + size + "/" + expectedFileSize + ")");
return false;
}
private boolean bufferComplete() {
if (!getIsCompleteFileAvailable(downloadFile)) {
long size = partialFile.length();
if (size >= expectedFileSize) {
Log.i(TAG, "Buffering complete: " + partialFile + " ("
+ size + "/" + expectedFileSize + ")");
return true;
}
Log.i(TAG, "Buffering incomplete: " + partialFile + " (" + size
+ "/" + expectedFileSize + ")");
return false;
} else {
return true;
}
}
@Override
public String toString() {
return "BufferTask (" + downloadFile + ")";

View File

@ -57,7 +57,7 @@ public class AlbumView extends LinearLayout {
titleView.setText(album.getTitle());
artistView.setText(album.getArtist());
artistView.setVisibility(album.getArtist() == null ? View.GONE : View.VISIBLE);
starImageView.setImageDrawable(album.getStarred() ? getResources().getDrawable(R.drawable.star) : getResources().getDrawable(R.drawable.star_hollow));
starImageView.setImageDrawable(album.getStarred() ? getResources().getDrawable(R.drawable.ic_star_full) : getResources().getDrawable(R.drawable.ic_star_hollow));
imageLoader.loadImage(coverArtView, album, false, true);
if (Util.isOffline(getContext())) {
@ -71,10 +71,10 @@ public class AlbumView extends LinearLayout {
final String id = album.getId();
if (!isStarred) {
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.star));
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_star_full));
album.setStarred(true);
} else {
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.star_hollow));
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_star_hollow));
album.setStarred(false);
}

View File

@ -66,6 +66,7 @@ public final class Constants {
public static final String PREFERENCES_KEY_THEME = "theme";
public static final String PREFERENCES_KEY_DISPLAY_BITRATE_WITH_ARTIST = "displayBitrateWithArtist";
public static final String PREFERENCES_KEY_USE_FOLDER_FOR_ALBUM_ARTIST = "useFolderForAlbumArtist";
public static final String PREFERENCES_KEY_SHOW_TRACK_NUMBER = "showTrackNumber";
public static final String PREFERENCES_KEY_MAX_BITRATE_WIFI = "maxBitrateWifi";
public static final String PREFERENCES_KEY_MAX_BITRATE_MOBILE = "maxBitrateMobile";
public static final String PREFERENCES_KEY_CACHE_SIZE = "cacheSize";

View File

@ -108,7 +108,7 @@ public class SongView extends LinearLayout implements Checkable {
int trackNumber = song.getTrack();
if (trackNumber != 0) {
if (Util.shouldShowTrackNumber(getContext()) && trackNumber != 0) {
trackTextView.setText(String.format("%02d.", trackNumber));
} else {
trackTextView.setVisibility(View.GONE);
@ -117,7 +117,7 @@ public class SongView extends LinearLayout implements Checkable {
titleTextView.setText(song.getTitle());
artistTextView.setText(artist);
durationTextView.setText(Util.formatDuration(song.getDuration()));
starImageView.setImageDrawable(song.getStarred() ? getResources().getDrawable(R.drawable.star) : getResources().getDrawable(R.drawable.star_hollow));
starImageView.setImageDrawable(song.getStarred() ? getResources().getDrawable(R.drawable.ic_star_full) : getResources().getDrawable(R.drawable.ic_star_hollow));
checkedTextView.setVisibility(checkable && !song.isVideo() ? View.VISIBLE : View.GONE);
if (Util.isOffline(getContext())) {
@ -131,10 +131,10 @@ public class SongView extends LinearLayout implements Checkable {
final String id = song.getId();
if (!isStarred) {
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.star));
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_star_full));
song.setStarred(true);
} else {
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.star_hollow));
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_star_hollow));
song.setStarred(false);
}
@ -173,7 +173,7 @@ public class SongView extends LinearLayout implements Checkable {
int rightImage = 0;
if (completeFile.exists()) {
leftImage = downloadFile.isSaved() ? R.drawable.ic_stat_saved : R.drawable.ic_stat_downloaded;
leftImage = downloadFile.isSaved() ? R.drawable.ic_menu_save : R.drawable.ic_stat_downloaded;
}
if (downloadFile.isDownloading() && !downloadFile.isDownloadCancelled() && partialFile.exists()) {
@ -185,9 +185,9 @@ public class SongView extends LinearLayout implements Checkable {
statusTextView.setCompoundDrawablesWithIntrinsicBounds(leftImage, 0, rightImage, 0);
if (!song.getStarred()) {
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.star_hollow));
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_star_hollow));
} else {
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.star));
starImageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_star_full));
}
boolean playing = downloadService.getCurrentPlaying() == downloadFile;

View File

@ -590,6 +590,11 @@ public class Util extends DownloadActivity {
return prefs.getBoolean(Constants.PREFERENCES_KEY_USE_FOLDER_FOR_ALBUM_ARTIST, false);
}
public static boolean shouldShowTrackNumber(Context context) {
SharedPreferences prefs = getPreferences(context);
return prefs.getBoolean(Constants.PREFERENCES_KEY_SHOW_TRACK_NUMBER, false);
}
public static void info(Context context, int titleId, int messageId) {
showDialog(context, android.R.drawable.ic_dialog_info, titleId, messageId);
}