Many offline fixes, modified album header from DSub

Remove star when offline
Use ID3 tags when in offline mode
Album, Artist and Song layout tweaks
Add track number to song view
Added setting to use top-level folder name for album artist when more
than one artist is found
Added setting to remove bitrate and file suffix on artist in song view
This commit is contained in:
Joshua Bahnsen 2013-04-06 19:14:26 -07:00
parent 45fabb54df
commit 09b3229500
17 changed files with 993 additions and 714 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="1"
a:versionName="1.0.0.25" a:installLocation="auto">
a:versionCode="2"
a:versionName="1.0.0.26" a:installLocation="auto">
<uses-permission a:name="android.permission.INTERNET"/>
<uses-permission a:name="android.permission.READ_PHONE_STATE"/>

View File

@ -140,17 +140,17 @@ public final class R {
public static final int album=0x7f0d004f;
public static final int album_artist=0x7f0d0002;
public static final int album_coverart=0x7f0d0000;
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_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_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=0x7f0d0090;
public static final int artist_menu_play_last=0x7f0d008f;
public static final int artist_menu_play_now=0x7f0d008e;
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 button_bar=0x7f0d000c;
public static final int button_bar_home=0x7f0d000d;
public static final int button_bar_music=0x7f0d000e;
@ -171,8 +171,8 @@ public final class R {
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=0x7f0d0081;
public static final int download_jukebox=0x7f0d0083;
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_next=0x7f0d001a;
public static final int download_pause=0x7f0d0017;
@ -187,7 +187,7 @@ public final class R {
public static final int download_status=0x7f0d001d;
public static final int download_stop=0x7f0d0018;
public static final int download_toggle_list=0x7f0d001c;
public static final int download_visualizer=0x7f0d0082;
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;
@ -199,7 +199,7 @@ public final class R {
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=0x7f0d0076;
public static final int icon=0x7f0d0079;
public static final int jukebox_volume_progress_bar=0x7f0d0036;
public static final int linearLayout1=0x7f0d0005;
public static final int lyrics_artist=0x7f0d0038;
@ -220,20 +220,20 @@ public final class R {
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=0x7f0d0080;
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=0x7f0d007f;
public static final int menu_help=0x7f0d007e;
public static final int menu_lyrics=0x7f0d0088;
public static final int menu_refresh=0x7f0d0091;
public static final int menu_remove=0x7f0d0089;
public static final int menu_remove_all=0x7f0d0085;
public static final int menu_save_playlist=0x7f0d0084;
public static final int menu_screen_on_off=0x7f0d0086;
public static final int menu_settings=0x7f0d007d;
public static final int menu_show_album=0x7f0d0087;
public static final int menu_shuffle=0x7f0d008a;
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;
@ -247,42 +247,46 @@ public final class R {
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_cover_art=0x7f0d0066;
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=0x7f0d0069;
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_text1=0x7f0d0067;
public static final int select_album_text2=0x7f0d0068;
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=0x7f0d006b;
public static final int select_artist_folder_1=0x7f0d006c;
public static final int select_artist_folder_2=0x7f0d006d;
public static final int select_artist_list=0x7f0d006a;
public static final int select_playlist_empty=0x7f0d006e;
public static final int select_playlist_list=0x7f0d006f;
public static final int song_artist=0x7f0d0073;
public static final int song_check=0x7f0d0070;
public static final int song_duration=0x7f0d0074;
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=0x7f0d0075;
public static final int song_status=0x7f0d0072;
public static final int song_title=0x7f0d0071;
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=0x7f0d007a;
public static final int status_media_next=0x7f0d0079;
public static final int status_media_play=0x7f0d0078;
public static final int status_media_prev=0x7f0d0077;
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=0x7f0d007b;
public static final int tab_progress_message=0x7f0d007c;
public static final int tab_progress=0x7f0d007e;
public static final int tab_progress_message=0x7f0d007f;
public static final int title=0x7f0d0007;
public static final int toast_layout_root=0x7f0d0035;
public static final int trackname=0x7f0d004e;
@ -342,20 +346,21 @@ 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=0x7f0900e7;
public static final int background_task_network_error=0x7f0900e9;
public static final int background_task_no_network=0x7f0900e8;
public static final int background_task_not_found=0x7f0900ea;
public static final int background_task_parse_error=0x7f0900eb;
public static final int background_task_wait=0x7f0900e6;
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;
public static final int button_bar_playlists=0x7f09000d;
public static final int button_bar_search=0x7f09000c;
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 button_bar_browse=0x7f09000d;
public static final int button_bar_home=0x7f09000c;
public static final int button_bar_now_playing=0x7f090010;
public static final int button_bar_playlists=0x7f09000f;
public static final int button_bar_search=0x7f09000e;
public static final int common_appname=0x7f090000;
public static final int common_cancel=0x7f090003;
public static final int common_delete=0x7f090009;
public static final int common_multiple_genres=0x7f09000b;
public static final int common_ok=0x7f090001;
public static final int common_pin=0x7f090007;
public static final int common_play_last=0x7f090006;
@ -363,242 +368,247 @@ public final class R {
public static final int common_play_now=0x7f090004;
public static final int common_save=0x7f090002;
public static final int common_unpin=0x7f090008;
public static final int download_empty=0x7f090048;
public static final int download_jukebox_not_authorized=0x7f090067;
public static final int download_jukebox_off=0x7f090063;
public static final int download_jukebox_offline=0x7f090066;
public static final int download_jukebox_on=0x7f090062;
public static final int download_jukebox_server_too_old=0x7f090065;
public static final int download_jukebox_volume=0x7f090064;
public static final int download_menu_equalizer=0x7f090054;
public static final int download_menu_jukebox=0x7f090056;
public static final int download_menu_lyrics=0x7f09004d;
public static final int download_menu_remove=0x7f09004e;
public static final int download_menu_remove_all=0x7f09004f;
public static final int download_menu_save=0x7f090053;
public static final int download_menu_screen_off=0x7f090051;
public static final int download_menu_screen_on=0x7f090050;
public static final int download_menu_show_album=0x7f09004c;
public static final int download_menu_shuffle=0x7f090052;
public static final int download_menu_shuffle_notification=0x7f090057;
public static final int download_menu_visualizer=0x7f090055;
public static final int download_playerstate_buffering=0x7f09004a;
public static final int download_playerstate_downloading=0x7f090049;
public static final int download_playerstate_playing_shuffle=0x7f09004b;
public static final int download_playlist_done=0x7f09005b;
public static final int download_playlist_error=0x7f09005c;
public static final int download_playlist_name=0x7f090059;
public static final int download_playlist_saving=0x7f09005a;
public static final int download_playlist_title=0x7f090058;
public static final int download_repeat_all=0x7f09005e;
public static final int download_repeat_off=0x7f09005d;
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=0x7f0900f8;
public static final int equalizer_label=0x7f0900f7;
public static final int equalizer_preset=0x7f0900f9;
public static final int error_label=0x7f09006b;
public static final int help_back=0x7f090027;
public static final int help_close=0x7f090028;
public static final int help_label=0x7f090025;
public static final int help_loading=0x7f09002a;
public static final int help_title=0x7f090026;
public static final int help_url=0x7f090029;
public static final int lyrics_nomatch=0x7f09006a;
public static final int main_albums_alphaByArtist=0x7f09001d;
public static final int main_albums_alphaByName=0x7f09001c;
public static final int main_albums_frequent=0x7f090018;
public static final int main_albums_highest=0x7f090019;
public static final int main_albums_newest=0x7f090016;
public static final int main_albums_random=0x7f09001a;
public static final int main_albums_recent=0x7f090017;
public static final int main_albums_starred=0x7f09001b;
public static final int main_albums_title=0x7f090015;
public static final int main_offline=0x7f090013;
public static final int main_select_server=0x7f090011;
public static final int main_settings=0x7f090014;
public static final int main_shuffle=0x7f090012;
public static final int main_songs_starred=0x7f09001f;
public static final int main_songs_title=0x7f09001e;
public static final int main_welcome_text=0x7f090010;
public static final int main_welcome_title=0x7f09000f;
public static final int menu_exit=0x7f090020;
public static final int menu_help=0x7f090022;
public static final int menu_search=0x7f090023;
public static final int menu_settings=0x7f090021;
public static final int music_library_label=0x7f090036;
public static final int music_library_label_offline=0x7f090037;
public static final int music_service_retry=0x7f0900e5;
public static final int parser_artist_count=0x7f0900f3;
public static final int parser_not_authenticated=0x7f0900f1;
public static final int parser_not_authorized=0x7f0900f2;
public static final int parser_reading=0x7f0900ed;
public static final int parser_reading_done=0x7f0900ee;
public static final int parser_upgrade_client=0x7f0900ef;
public static final int parser_upgrade_server=0x7f0900f0;
public static final int play_video_loading=0x7f09002b;
public static final int play_video_noplugin=0x7f09002c;
public static final int playlist_label=0x7f090024;
public static final int progress_wait=0x7f090035;
public static final int search_albums=0x7f090032;
public static final int search_artists=0x7f090031;
public static final int search_label=0x7f09002d;
public static final int search_more=0x7f090034;
public static final int search_no_match=0x7f090030;
public static final int search_search=0x7f09002f;
public static final int search_songs=0x7f090033;
public static final int search_title=0x7f09002e;
public static final int select_album_donate_dialog_0_trial_days_left=0x7f090046;
public static final int select_album_donate_dialog_later=0x7f090045;
public static final int select_album_donate_dialog_message=0x7f090043;
public static final int select_album_donate_dialog_now=0x7f090044;
public static final int select_album_empty=0x7f090038;
public static final int select_album_more=0x7f09003c;
public static final int select_album_n_selected=0x7f09003a;
public static final int select_album_n_unselected=0x7f09003b;
public static final int select_album_no_network=0x7f090041;
public static final int select_album_no_sdcard=0x7f090040;
public static final int select_album_not_licensed=0x7f090042;
public static final int select_album_offline=0x7f09003d;
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=0x7f0900f6;
public static final int select_artist_folder=0x7f0900f5;
public static final int select_artist_refresh=0x7f0900f4;
public static final int select_playlist_empty=0x7f090047;
public static final int service_connecting=0x7f0900ec;
public static final int settings_appearance_title=0x7f090081;
public static final int settings_buffer_length=0x7f0900b6;
public static final int settings_buffer_length_1=0x7f0900b8;
public static final int settings_buffer_length_10=0x7f0900bc;
public static final int settings_buffer_length_12=0x7f0900bd;
public static final int settings_buffer_length_15=0x7f0900be;
public static final int settings_buffer_length_2=0x7f0900b9;
public static final int settings_buffer_length_20=0x7f0900bf;
public static final int settings_buffer_length_30=0x7f0900c0;
public static final int settings_buffer_length_5=0x7f0900ba;
public static final int settings_buffer_length_8=0x7f0900bb;
public static final int settings_cache_location=0x7f090079;
public static final int settings_cache_location_error=0x7f09007a;
public static final int settings_cache_size=0x7f090078;
public static final int settings_cache_size_100=0x7f09009d;
public static final int settings_cache_size_1000=0x7f0900a0;
public static final int settings_cache_size_10000=0x7f0900a3;
public static final int settings_cache_size_200=0x7f09009e;
public static final int settings_cache_size_2000=0x7f0900a1;
public static final int settings_cache_size_20000=0x7f0900a4;
public static final int settings_cache_size_500=0x7f09009f;
public static final int settings_cache_size_5000=0x7f0900a2;
public static final int settings_cache_size_unlimited=0x7f0900a5;
public static final int settings_cache_title=0x7f090076;
public static final int settings_clear_search_history=0x7f0900a6;
public static final int settings_connection_failure=0x7f09007e;
public static final int settings_default_albums=0x7f0900e3;
public static final int settings_default_artists=0x7f0900e2;
public static final int settings_default_songs=0x7f0900e4;
public static final int settings_hide_media_summary=0x7f0900b0;
public static final int settings_hide_media_title=0x7f0900af;
public static final int settings_hide_media_toast=0x7f0900b1;
public static final int settings_invalid_url=0x7f09007f;
public static final int settings_invalid_username=0x7f090080;
public static final int settings_max_albums=0x7f0900d1;
public static final int settings_max_artists=0x7f0900e0;
public static final int settings_max_bitrate_112=0x7f09008e;
public static final int settings_max_bitrate_128=0x7f09008f;
public static final int settings_max_bitrate_160=0x7f090090;
public static final int settings_max_bitrate_192=0x7f090091;
public static final int settings_max_bitrate_256=0x7f090092;
public static final int settings_max_bitrate_32=0x7f09008a;
public static final int settings_max_bitrate_320=0x7f090093;
public static final int settings_max_bitrate_64=0x7f09008b;
public static final int settings_max_bitrate_80=0x7f09008c;
public static final int settings_max_bitrate_96=0x7f09008d;
public static final int settings_max_bitrate_mobile=0x7f090089;
public static final int settings_max_bitrate_unlimited=0x7f090094;
public static final int settings_max_bitrate_wifi=0x7f090088;
public static final int settings_max_songs=0x7f0900e1;
public static final int settings_media_button_summary=0x7f0900b3;
public static final int settings_media_button_title=0x7f0900b2;
public static final int settings_network_timeout=0x7f0900b7;
public static final int settings_network_timeout_105000=0x7f0900c7;
public static final int settings_network_timeout_120000=0x7f0900c8;
public static final int settings_network_timeout_15000=0x7f0900c1;
public static final int settings_network_timeout_30000=0x7f0900c2;
public static final int settings_network_timeout_45000=0x7f0900c3;
public static final int settings_network_timeout_60000=0x7f0900c4;
public static final int settings_network_timeout_75000=0x7f0900c5;
public static final int settings_network_timeout_90000=0x7f0900c6;
public static final int settings_network_title=0x7f090087;
public static final int settings_other_title=0x7f0900a8;
public static final int settings_playback_control_title=0x7f0900aa;
public static final int settings_preload=0x7f090077;
public static final int settings_preload_1=0x7f090097;
public static final int settings_preload_10=0x7f09009b;
public static final int settings_preload_2=0x7f090098;
public static final int settings_preload_3=0x7f090099;
public static final int settings_preload_5=0x7f09009a;
public static final int settings_preload_unlimited=0x7f09009c;
public static final int settings_screen_lit_summary=0x7f0900b5;
public static final int settings_screen_lit_title=0x7f0900b4;
public static final int settings_scrobble_summary=0x7f0900ac;
public static final int settings_scrobble_title=0x7f0900ab;
public static final int settings_search_1=0x7f0900d2;
public static final int settings_search_10=0x7f0900d5;
public static final int settings_search_100=0x7f0900dd;
public static final int settings_search_15=0x7f0900d6;
public static final int settings_search_20=0x7f0900d7;
public static final int settings_search_25=0x7f0900d8;
public static final int settings_search_250=0x7f0900de;
public static final int settings_search_3=0x7f0900d3;
public static final int settings_search_30=0x7f0900d9;
public static final int settings_search_40=0x7f0900da;
public static final int settings_search_5=0x7f0900d4;
public static final int settings_search_50=0x7f0900db;
public static final int settings_search_500=0x7f0900df;
public static final int settings_search_75=0x7f0900dc;
public static final int settings_search_history_cleared=0x7f0900a7;
public static final int settings_search_title=0x7f0900a9;
public static final int settings_server_address=0x7f090073;
public static final int settings_server_name=0x7f090072;
public static final int settings_server_password=0x7f090075;
public static final int settings_server_scaling_summary=0x7f0900ae;
public static final int settings_server_scaling_title=0x7f0900ad;
public static final int settings_server_unused1=0x7f09006f;
public static final int settings_server_unused2=0x7f090070;
public static final int settings_server_unused3=0x7f090071;
public static final int settings_server_username=0x7f090074;
public static final int settings_servers_title=0x7f09006e;
public static final int settings_show_lockscreen_controls=0x7f0900cd;
public static final int settings_show_lockscreen_controls_summary=0x7f0900ce;
public static final int settings_show_notification=0x7f0900c9;
public static final int settings_show_notification_always=0x7f0900cb;
public static final int settings_show_notification_always_summary=0x7f0900cc;
public static final int settings_show_notification_summary=0x7f0900ca;
public static final int settings_test_connection_title=0x7f09006d;
public static final int settings_testing_connection=0x7f09007b;
public static final int settings_testing_ok=0x7f09007c;
public static final int settings_testing_unlicensed=0x7f09007d;
public static final int settings_theme_dark=0x7f090086;
public static final int settings_theme_fullscreen=0x7f090083;
public static final int settings_theme_fullscreenlight=0x7f090084;
public static final int settings_theme_light=0x7f090085;
public static final int settings_theme_title=0x7f090082;
public static final int settings_title=0x7f09006c;
public static final int settings_use_stream_proxy=0x7f0900cf;
public static final int settings_use_stream_proxy_summary=0x7f0900d0;
public static final int settings_wifi_required_summary=0x7f090096;
public static final int settings_wifi_required_title=0x7f090095;
public static final int song_details_all=0x7f090068;
public static final int song_details_kbps=0x7f090069;
public static final int util_bytes_format_byte=0x7f090100;
public static final int util_bytes_format_gigabyte=0x7f0900fd;
public static final int util_bytes_format_kilobyte=0x7f0900ff;
public static final int util_bytes_format_megabyte=0x7f0900fe;
public static final int widget_initial_text=0x7f0900fa;
public static final int widget_sdcard_busy=0x7f0900fb;
public static final int widget_sdcard_missing=0x7f0900fc;
public static final int common_various_artists=0x7f09000a;
public static final int download_empty=0x7f09004a;
public static final int download_jukebox_not_authorized=0x7f090069;
public static final int download_jukebox_off=0x7f090065;
public static final int download_jukebox_offline=0x7f090068;
public static final int download_jukebox_on=0x7f090064;
public static final int download_jukebox_server_too_old=0x7f090067;
public static final int download_jukebox_volume=0x7f090066;
public static final int download_menu_equalizer=0x7f090056;
public static final int download_menu_jukebox=0x7f090058;
public static final int download_menu_lyrics=0x7f09004f;
public static final int download_menu_remove=0x7f090050;
public static final int download_menu_remove_all=0x7f090051;
public static final int download_menu_save=0x7f090055;
public static final int download_menu_screen_off=0x7f090053;
public static final int download_menu_screen_on=0x7f090052;
public static final int download_menu_show_album=0x7f09004e;
public static final int download_menu_shuffle=0x7f090054;
public static final int download_menu_shuffle_notification=0x7f090059;
public static final int download_menu_visualizer=0x7f090057;
public static final int download_playerstate_buffering=0x7f09004c;
public static final int download_playerstate_downloading=0x7f09004b;
public static final int download_playerstate_playing_shuffle=0x7f09004d;
public static final int download_playlist_done=0x7f09005d;
public static final int download_playlist_error=0x7f09005e;
public static final int download_playlist_name=0x7f09005b;
public static final int download_playlist_saving=0x7f09005c;
public static final int download_playlist_title=0x7f09005a;
public static final int download_repeat_all=0x7f090060;
public static final int download_repeat_off=0x7f09005f;
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 error_label=0x7f09006d;
public static final int help_back=0x7f090029;
public static final int help_close=0x7f09002a;
public static final int help_label=0x7f090027;
public static final int help_loading=0x7f09002c;
public static final int help_title=0x7f090028;
public static final int help_url=0x7f09002b;
public static final int lyrics_nomatch=0x7f09006c;
public static final int main_albums_alphaByArtist=0x7f09001f;
public static final int main_albums_alphaByName=0x7f09001e;
public static final int main_albums_frequent=0x7f09001a;
public static final int main_albums_highest=0x7f09001b;
public static final int main_albums_newest=0x7f090018;
public static final int main_albums_random=0x7f09001c;
public static final int main_albums_recent=0x7f090019;
public static final int main_albums_starred=0x7f09001d;
public static final int main_albums_title=0x7f090017;
public static final int main_offline=0x7f090015;
public static final int main_select_server=0x7f090013;
public static final int main_settings=0x7f090016;
public static final int main_shuffle=0x7f090014;
public static final int main_songs_starred=0x7f090021;
public static final int main_songs_title=0x7f090020;
public static final int main_welcome_text=0x7f090012;
public static final int main_welcome_title=0x7f090011;
public static final int menu_exit=0x7f090022;
public static final int menu_help=0x7f090024;
public static final int menu_search=0x7f090025;
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 play_video_loading=0x7f09002d;
public static final int play_video_noplugin=0x7f09002e;
public static final int playlist_label=0x7f090026;
public static final int progress_wait=0x7f090037;
public static final int search_albums=0x7f090034;
public static final int search_artists=0x7f090033;
public static final int search_label=0x7f09002f;
public static final int search_more=0x7f090036;
public static final int search_no_match=0x7f090032;
public static final int search_search=0x7f090031;
public static final int search_songs=0x7f090035;
public static final int search_title=0x7f090030;
public static final int select_album_donate_dialog_0_trial_days_left=0x7f090048;
public static final int select_album_donate_dialog_later=0x7f090047;
public static final int select_album_donate_dialog_message=0x7f090045;
public static final int select_album_donate_dialog_now=0x7f090046;
public static final int select_album_empty=0x7f09003a;
public static final int select_album_more=0x7f09003e;
public static final int select_album_n_selected=0x7f09003c;
public static final int select_album_n_unselected=0x7f09003d;
public static final int select_album_no_network=0x7f090043;
public static final int select_album_no_sdcard=0x7f090042;
public static final int select_album_not_licensed=0x7f090044;
public static final int select_album_offline=0x7f09003f;
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_playlist_empty=0x7f090049;
public static final int service_connecting=0x7f0900f2;
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_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_title=0x7f090078;
public static final int settings_clear_search_history=0x7f0900ac;
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_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_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_bitrate_112=0x7f090090;
public static final int settings_max_bitrate_128=0x7f090091;
public static final int settings_max_bitrate_160=0x7f090092;
public static final int settings_max_bitrate_192=0x7f090093;
public static final int settings_max_bitrate_256=0x7f090094;
public static final int settings_max_bitrate_32=0x7f09008c;
public static final int settings_max_bitrate_320=0x7f090095;
public static final int settings_max_bitrate_64=0x7f09008d;
public static final int settings_max_bitrate_80=0x7f09008e;
public static final int settings_max_bitrate_96=0x7f09008f;
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_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_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_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_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_test_connection_title=0x7f09006f;
public static final int settings_testing_connection=0x7f09007d;
public static final int settings_testing_ok=0x7f09007e;
public static final int settings_testing_unlicensed=0x7f09007f;
public static final int settings_theme_dark=0x7f090088;
public static final int settings_theme_fullscreen=0x7f090085;
public static final int settings_theme_fullscreenlight=0x7f090086;
public static final int settings_theme_light=0x7f090087;
public static final int settings_theme_title=0x7f090084;
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_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 class style {
public static final int Dark=0x7f0b0000;

View File

@ -1,48 +1,52 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:orientation="horizontal"
a:layout_width="fill_parent"
a:layout_height="?android:attr/listPreferredItemHeight">>
<ImageView
a:id="@+id/album_coverart"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_gravity="left|center_vertical"
a:paddingLeft="6dip"/>
<LinearLayout
a:orientation="vertical"
a:layout_width="0dip"
a:layout_height="wrap_content"
a:layout_weight="1"
a:layout_gravity="left|center_vertical"
a:paddingLeft="6dip"
a:paddingRight="3dip">
<TextView
a:id="@+id/album_title"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:textAppearance="?android:attr/textAppearanceMedium"
a:singleLine="true"
a:ellipsize="marquee"/>
<TextView
a:id="@+id/album_artist"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:textAppearance="?android:attr/textAppearanceSmall"
a:singleLine="true"/>
</LinearLayout>
<ImageView
a:id="@+id/album_star"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:gravity="center_vertical"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/star_hollow" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:orientation="horizontal"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:minHeight="?android:attr/listPreferredItemHeight"
>
<ImageView
a:id="@+id/album_coverart"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_gravity="left|center_vertical"
a:paddingTop="1dip"
a:paddingBottom="1dip"/>
<LinearLayout
a:orientation="vertical"
a:layout_width="0dip"
a:layout_height="wrap_content"
a:layout_weight="1"
a:layout_gravity="left|center_vertical"
a:paddingLeft="6dip"
a:paddingRight="3dip">
<TextView
a:id="@+id/album_title"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:textAppearance="?android:attr/textAppearanceMedium"
a:singleLine="true"
a:ellipsize="marquee"/>
<TextView
a:id="@+id/album_artist"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:textAppearance="?android:attr/textAppearanceSmall"
a:singleLine="true"/>
</LinearLayout>
<ImageView
a:id="@+id/album_star"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:gravity="center_vertical"
a:background="@android:color/transparent"
a:src="@drawable/star_hollow"
a:focusable="false" />
</LinearLayout>

View File

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

View File

@ -1,69 +1,69 @@
<?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">
<View
a:layout_width="fill_parent"
a:layout_height="1dp"
a:background="@color/dividerColor"/>
<include layout="@layout/tab_progress"/>
<TextView
a:id="@+id/select_album_empty"
a:text="@string/select_album.empty"
a:visibility="gone"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:padding="10dip"/>
<ListView a:id="@+id/select_album_entries"
a:textFilterEnabled="true"
a:layout_width="fill_parent"
a:layout_height="0dip"
a:layout_weight="1.0"/>
<LinearLayout a:orientation="horizontal"
a:layout_marginTop="6dp"
a:layout_marginBottom="3dp"
a:layout_width="fill_parent"
a:layout_height="wrap_content">
<Button a:id="@+id/select_album_select"
a:text="@string/select_album.select"
a:textAppearance="?android:attr/textAppearanceSmall"
a:visibility="gone"
a:layout_marginLeft="6dp"
a:layout_marginRight="3dp"
a:layout_weight="1"
a:layout_width="0dp"
a:layout_height="fill_parent"/>
<Button a:id="@+id/select_album_play_now"
a:text="@string/common.play_now"
a:textAppearance="?android:attr/textAppearanceSmall"
a:visibility="gone"
a:layout_marginLeft="3dp"
a:layout_marginRight="3dp"
a:layout_weight="1"
a:layout_width="0dp"
a:layout_height="fill_parent"/>
<Button a:id="@+id/select_album_play_last"
a:text="@string/common.play_last"
a:textAppearance="?android:attr/textAppearanceSmall"
a:visibility="gone"
a:layout_marginLeft="3dp"
a:layout_marginRight="6dp"
a:layout_weight="1"
a:layout_width="0dp"
a:layout_height="fill_parent"/>
</LinearLayout>
<include layout="@layout/button_bar"/>
</LinearLayout>
<?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">
<View
a:layout_width="fill_parent"
a:layout_height="1dp"
a:background="@color/dividerColor"/>
<include layout="@layout/tab_progress"/>
<TextView
a:id="@+id/select_album_empty"
a:text="@string/select_album.empty"
a:visibility="gone"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:padding="10dip"/>
<ListView a:id="@+id/select_album_entries"
a:textFilterEnabled="true"
a:layout_width="fill_parent"
a:layout_height="0dip"
a:layout_weight="1.0"/>
<LinearLayout a:orientation="horizontal"
a:layout_marginTop="6dp"
a:layout_marginBottom="3dp"
a:layout_width="fill_parent"
a:layout_height="wrap_content" >
<Button a:id="@+id/select_album_select"
a:text="@string/select_album.select"
a:textAppearance="?android:attr/textAppearanceSmall"
a:visibility="gone"
a:layout_marginLeft="6dp"
a:layout_marginRight="3dp"
a:layout_weight="1"
a:layout_width="0dp"
a:layout_height="fill_parent"/>
<Button a:id="@+id/select_album_play_now"
a:text="@string/common.play_now"
a:textAppearance="?android:attr/textAppearanceSmall"
a:visibility="gone"
a:layout_marginLeft="3dp"
a:layout_marginRight="3dp"
a:layout_weight="1"
a:layout_width="0dp"
a:layout_height="fill_parent"/>
<Button a:id="@+id/select_album_play_last"
a:text="@string/common.play_last"
a:textAppearance="?android:attr/textAppearanceSmall"
a:visibility="gone"
a:layout_marginLeft="3dp"
a:layout_marginRight="6dp"
a:layout_weight="1"
a:layout_width="0dp"
a:layout_height="fill_parent"/>
</LinearLayout>
<include layout="@layout/button_bar"/>
</LinearLayout>

View File

@ -1,69 +1,73 @@
<?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="wrap_content">
<LinearLayout
a:orientation="horizontal"
a:background="@drawable/menubar_button_normal"
a:paddingTop="6dip"
a:paddingBottom="4dip"
a:paddingLeft="6dp"
a:paddingRight="6dp"
a:layout_weight="1"
a:layout_width="fill_parent"
a:layout_height="0dip">
<ImageView
a:id="@+id/select_album_cover_art"
a:layout_gravity="center_vertical"
a:layout_width="wrap_content"
a:layout_height="wrap_content"/>
<LinearLayout
a:orientation="vertical"
a:layout_weight="1"
a:layout_width="0dip"
a:layout_height="wrap_content">
<TextView
a:id="@+id/select_album_text1"
a:singleLine="true"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_marginLeft="10dip"
a:layout_marginRight="10dip"
a:textColor="@android:color/primary_text_light"
a:textAppearance="?android:attr/textAppearanceMedium"/>
<TextView
a:id="@+id/select_album_text2"
a:singleLine="true"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_marginLeft="10dip"
a:layout_marginRight="10dip"
a:textColor="@android:color/secondary_text_light"
a:textAppearance="?android:attr/textAppearanceSmall"/>
</LinearLayout>
<ImageButton
a:id="@+id/select_album_play_all"
a:src="@drawable/select_album_play_all"
a:background="@android:color/transparent"
a:layout_gravity="center_vertical"
a:layout_width="wrap_content"
a:layout_height="wrap_content"/>
</LinearLayout>
<View
a:layout_width="fill_parent"
a:layout_height="1dp"
a:background="@color/dividerColor"/>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="fill_parent"
a:layout_height="wrap_content" >
<ImageView
a:id="@+id/select_album_art"
a:layout_width="120dip"
a:layout_height="120dip"
a:layout_alignParentLeft="true"
a:layout_alignParentTop="true"
a:layout_marginRight="10dip"
a:contentDescription="@null"
a:scaleType="fitCenter"
a:src="@drawable/unknown_album_large" />
<TextView
a:id="@+id/select_album_title"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_toRightOf="@+id/select_album_art"
a:ellipsize="end"
a:paddingRight="4dip"
a:paddingTop="10dip"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceMedium"
a:textColor="@color/mediaControlForeground" />
<TextView
a:id="@+id/select_album_artist"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_below="@+id/select_album_title"
a:layout_toRightOf="@+id/select_album_art"
a:ellipsize="end"
a:paddingRight="4dip"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
a:id="@+id/select_album_genre"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_below="@+id/select_album_artist"
a:layout_toRightOf="@+id/select_album_art"
a:ellipsize="end"
a:paddingRight="4dip"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
a:id="@+id/select_album_song_count"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_below="@+id/select_album_genre"
a:layout_toRightOf="@+id/select_album_art"
a:ellipsize="none"
a:paddingRight="4dip"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
a:id="@+id/select_album_duration"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_below="@+id/select_album_song_count"
a:layout_toRightOf="@+id/select_album_art"
a:ellipsize="none"
a:paddingRight="4dip"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall" />
</RelativeLayout>

View File

@ -1,84 +1,95 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:orientation="horizontal"
a:layout_width="fill_parent"
a:layout_height="?android:attr/listPreferredItemHeight">
<CheckedTextView
a:id="@+id/song_check"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:gravity="center_vertical"
a:checkMark="@drawable/btn_check_custom"
a:paddingLeft="3dip"/>
<LinearLayout a:orientation="vertical"
a:layout_width="0dip"
a:layout_height="wrap_content"
a:layout_weight="1"
a:layout_gravity="center_vertical">
<LinearLayout a:orientation="horizontal"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:layout_gravity="center_vertical">
<TextView
a:id="@+id/song_title"
a:layout_width="0dip"
a:layout_height="wrap_content"
a:layout_weight="1"
a:layout_gravity="left|center_vertical"
a:textAppearance="?android:attr/textAppearanceMedium"
a:singleLine="true"
a:ellipsize="marquee"
a:drawablePadding="6dip"
a:paddingLeft="6dip"
a:paddingRight="6dip"/>
<TextView
a:id="@+id/song_status"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_gravity="right|center_vertical"
a:drawablePadding="1dip"
a:paddingRight="6dip"/>
</LinearLayout>
<LinearLayout a:orientation="horizontal"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:layout_gravity="center_vertical">
<TextView
a:id="@+id/song_artist"
a:layout_width="0dip"
a:layout_height="wrap_content"
a:layout_weight="1"
a:layout_gravity="left|center_vertical"
a:textAppearance="?android:attr/textAppearanceSmall"
a:singleLine="true"
a:ellipsize="middle"
a:paddingLeft="6dip"/>
<TextView
a:id="@+id/song_duration"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_gravity="right|center_vertical"
a:textAppearance="?android:attr/textAppearanceSmall"
a:singleLine="true"
a:paddingLeft="3dip"
a:paddingRight="9dip"/>
</LinearLayout>
</LinearLayout>
<ImageView
a:id="@+id/song_star"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:gravity="center_vertical"
a:background="@drawable/list_selector_holo_dark"
a:src="@drawable/star_hollow" />
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:minHeight="?android:attr/listPreferredItemHeight"
a:orientation="horizontal" >
<CheckedTextView
a:id="@+id/song_check"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:checkMark="@drawable/btn_check_custom"
a:gravity="center_vertical"
a:paddingLeft="0dip" />
<LinearLayout
a:layout_width="0dip"
a:layout_height="wrap_content"
a:layout_gravity="center_vertical"
a:layout_weight="1"
a:orientation="vertical" >
<LinearLayout
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:layout_gravity="center_vertical"
a:orientation="horizontal" >
<TextView
a:id="@+id/song_track"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_gravity="left|center_vertical"
a:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
a:id="@+id/song_title"
a:layout_width="0dip"
a:layout_height="wrap_content"
a:layout_gravity="left|center_vertical"
a:layout_weight="1"
a:drawablePadding="6dip"
a:ellipsize="marquee"
a:paddingRight="6dip"
a:paddingLeft="4dip"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceMedium" />
<TextView
a:id="@+id/song_status"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_gravity="right|center_vertical"
a:drawablePadding="1dip"
a:paddingRight="6dip" />
</LinearLayout>
<LinearLayout
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:layout_gravity="center_vertical"
a:orientation="horizontal" >
<TextView
a:id="@+id/song_artist"
a:layout_width="0dip"
a:layout_height="wrap_content"
a:layout_gravity="left|center_vertical"
a:layout_weight="1"
a:ellipsize="middle"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
a:id="@+id/song_duration"
a:layout_width="wrap_content"
a:layout_height="wrap_content"
a:layout_gravity="right|center_vertical"
a:paddingLeft="3dip"
a:paddingRight="9dip"
a:singleLine="true"
a:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</LinearLayout>
<ImageView
a:id="@+id/song_star"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:background="@android:color/transparent"
a:focusable="false"
a:gravity="center_vertical"
a:src="@drawable/star_hollow" />
</LinearLayout>

View File

@ -1,113 +1,112 @@
<?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
xmlns:android="http://schemas.android.com/apk/res/android"
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>
<?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

@ -10,6 +10,8 @@
<string name="common.pin">Pin</string>
<string name="common.unpin">Unpin</string>
<string name="common.delete">Delete</string>
<string name="common.various_artists">Various Artists</string>
<string name="common.multiple_genres">Multiple Genres</string>
<string name="button_bar.home">UltraSonic Main</string>
<string name="button_bar.browse">Media Library</string>
<string name="button_bar.search">Search</string>
@ -104,7 +106,7 @@
<string name="download.jukebox_server_too_old">Remote control is not supported. Please upgrade your Subsonic server.</string>
<string name="download.jukebox_offline">Remote control is not available in offline mode.</string>
<string name="download.jukebox_not_authorized">Remote control is not allowed. Please enable jukebox mode in <b>Users &gt; Settings</b> on your Subsonic server.</string>
<string name="song_details.all">%1$s %2$s</string>
<string name="song_details.all">%1$s%2$s</string>
<string name="song_details.kbps">%d kbps</string>
<string name="lyrics.nomatch">No lyrics found</string>
<string name="error.label">Error</string>
@ -151,6 +153,10 @@
<string name="settings.max_bitrate_unlimited">Unlimited</string>
<string name="settings.wifi_required_title">Wi-Fi Streaming Only</string>
<string name="settings.wifi_required_summary">Only stream media if connected to Wi-Fi</string>
<string name="settings.display_bitrate">Display Bitrate And File Suffix</string>
<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.preload_1">1 song</string>
<string name="settings.preload_2">2 songs</string>
<string name="settings.preload_3">3 songs</string>
@ -259,20 +265,20 @@
<string name="util.bytes_format.byte">0 B</string>
<plurals name="select_album_n_songs">
<item quantity="zero">No songs</item>
<item quantity="one">One song</item>
<item quantity="other">%d songs</item>
<item quantity="zero">No Songs</item>
<item quantity="one">1 Song</item>
<item quantity="other">%d Songs</item>
</plurals>
<plurals name="select_album_n_songs_downloading">
<item quantity="one">One song scheduled for download.</item>
<item quantity="other">%d songs scheduled for download.</item>
<item quantity="one">1 song scheduled for download.</item>
<item quantity="other">%d Songs scheduled for download.</item>
</plurals>
<plurals name="select_album_n_songs_added">
<item quantity="one">One song added to play queue.</item>
<item quantity="one">1 song added to play queue.</item>
<item quantity="other">%d songs added to play queue.</item>
</plurals>
<plurals name="select_album_donate_dialog_n_trial_days_left">
<item quantity="one">One day left of trial period</item>
<item quantity="one">1 day left of trial period</item>
<item quantity="other">%d days left of trial period</item>
</plurals>

View File

@ -83,6 +83,18 @@
a:entryValues="@array/themeValues"
a:key="theme"
a:title="@string/settings.theme_title" />
<CheckBoxPreference
a:defaultValue="true"
a:key="displayBitrateWithArtist"
a:summary="@string/settings.display_bitrate_summary"
a:title="@string/settings.display_bitrate" />
<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" />
</PreferenceCategory>
<PreferenceCategory a:title="@string/settings.network_title" >
<ListPreference
@ -190,11 +202,6 @@
a:key="showNotification"
a:summary="@string/settings.show_notification_summary"
a:title="@string/settings.show_notification" />
<CheckBoxPreference
a:defaultValue="true"
a:key="alwaysShowNotification"
a:summary="@string/settings.show_notification_always_summary"
a:title="@string/settings.show_notification_always" />
<CheckBoxPreference
a:defaultValue="true"
a:key="showLockScreen"

View File

@ -18,7 +18,6 @@
*/
package com.thejoshwa.ultrasonic.androidapp.activity;
import android.app.ActionBar;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
@ -34,6 +33,8 @@ import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import com.thejoshwa.ultrasonic.androidapp.R;
import com.thejoshwa.ultrasonic.androidapp.domain.MusicDirectory;
import com.thejoshwa.ultrasonic.androidapp.service.DownloadFile;
@ -46,14 +47,18 @@ import com.thejoshwa.ultrasonic.androidapp.util.TabActivityBackgroundTask;
import com.thejoshwa.ultrasonic.androidapp.util.Util;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
public class SelectAlbumActivity extends SubsonicTabActivity {
private static final String TAG = SelectAlbumActivity.class.getSimpleName();
private ListView entryList;
private View header;
private View footer;
private View emptyView;
private Button selectButton;
@ -66,6 +71,7 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
private boolean licenseValid;
private boolean playAllButtonVisible;
private MenuItem playAllButton;
private boolean showHeader = true;
private Random random = new Random();
/**
@ -78,7 +84,9 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
entryList = (ListView) findViewById(R.id.select_album_entries);
header = LayoutInflater.from(this).inflate(R.layout.select_album_header, entryList, false);
footer = LayoutInflater.from(this).inflate(R.layout.select_album_footer, entryList, false);
entryList.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
entryList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
@ -343,7 +351,8 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
}
private void getAlbumList(final String albumListType, final int size, final int offset) {
showHeader = false;
if ("newest".equals(albumListType)) {
setTitle(R.string.main_albums_newest);
} else if ("random".equals(albumListType)) {
@ -398,6 +407,7 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
}
});
}
super.done(result);
}
}.execute();
@ -599,7 +609,9 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
@Override
protected void done(Pair<MusicDirectory, Boolean> result) {
List<MusicDirectory.Entry> entries = result.getFirst().getChildren();
MusicDirectory musicDirectory = result.getFirst();
List<MusicDirectory.Entry> entries = musicDirectory.getChildren();
String directoryName = musicDirectory.getName();
int songCount = 0;
for (MusicDirectory.Entry entry : entries) {
@ -609,14 +621,10 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
}
if (songCount > 0) {
ActionBar actionBar = getActionBar();
if (actionBar != null) {
// Use random entry selection for artwork in list of tracks
int artworkSelection = random.nextInt(entries.size());
getImageLoader().setActionBarArtwork(selectButton, entries.get(artworkSelection), actionBar);
}
if(showHeader) {
entryList.addHeaderView(createHeader(entries, directoryName, songCount), null, false);
}
entryList.addFooterView(footer);
selectButton.setVisibility(View.VISIBLE);
playNowButton.setVisibility(View.VISIBLE);
@ -640,5 +648,86 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
playAll();
}
}
private View createHeader(List<MusicDirectory.Entry> entries, String name, int songCount) {
View coverArtView = header.findViewById(R.id.select_album_art);
int artworkSelection = random.nextInt(entries.size());
getImageLoader().loadImage(coverArtView, entries.get(artworkSelection), true, true);
TextView titleView = (TextView) header.findViewById(R.id.select_album_title);
titleView.setText(name != null ? name : getTitle());
Set<String> artists = new HashSet<String>();
Set<String> grandParents = new HashSet<String>();
Set<String> genres = new HashSet<String>();
long totalDuration = 0;
for (MusicDirectory.Entry entry : entries) {
if (!entry.isDirectory()) {
if (Util.shouldUseFolderForArtistName(getBaseContext())) {
// Find the top level folder, assume it is the album artist
String path = entry.getPath();
if (path != null) {
int slashIndex = path.indexOf("/");
if (slashIndex != 0) {
grandParents.add(path.substring(0, slashIndex));
}
}
}
if (entry.getArtist() != null) {
totalDuration += entry.getDuration();
artists.add(entry.getArtist());
}
if (entry.getGenre() != null) {
genres.add(entry.getGenre());
}
}
}
TextView artistView = (TextView) header.findViewById(R.id.select_album_artist);
String artist = null;
if (artists.size() == 1) {
artist = artists.iterator().next();
} else if (grandParents.size() == 1) {
artist = grandParents.iterator().next();
} else {
artist = getResources().getString(R.string.common_various_artists);
}
artistView.setText(artist);
TextView genreView = (TextView) header.findViewById(R.id.select_album_genre);
String genre = null;
if (genres.size() == 1) {
genre = genres.iterator().next();
} else {
genre = getResources().getString(R.string.common_multiple_genres);
}
genreView.setText(genre);
TextView songCountView = (TextView) header.findViewById(R.id.select_album_song_count);
String songs = getResources().getQuantityString(R.plurals.select_album_n_songs, songCount, songCount);
songCountView.setText(songs);
long millis = totalDuration * 1000;
String duration = String.format("%02d:%02d:%02d",
TimeUnit.MILLISECONDS.toHours(millis),
TimeUnit.MILLISECONDS.toMinutes(millis) -
TimeUnit.HOURS.toMinutes(TimeUnit.MILLISECONDS.toHours(millis)),
TimeUnit.MILLISECONDS.toSeconds(millis) -
TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millis))
);
TextView durationView = (TextView) header.findViewById(R.id.select_album_duration);
durationView.setText(duration);
return header;
}
}
}

View File

@ -64,7 +64,6 @@ public class MusicDirectory {
/**
*
*/
private static final long serialVersionUID = -3509705707977261992L;
private String id;
private String parent;
private boolean directory;
@ -222,6 +221,10 @@ public class MusicDirectory {
public void setDuration(Integer duration) {
this.duration = duration;
}
public void setDuration(long duration) {
this.duration = (int) duration;
}
public Integer getBitRate() {
return bitRate;

View File

@ -28,10 +28,12 @@ import java.util.LinkedList;
import java.util.List;
import java.util.Random;
import java.util.Set;
import java.util.concurrent.TimeUnit;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.media.MediaMetadataRetriever;
import android.util.Log;
import com.thejoshwa.ultrasonic.androidapp.domain.Artist;
import com.thejoshwa.ultrasonic.androidapp.domain.Indexes;
@ -113,11 +115,120 @@ public class OfflineMusicService extends RESTMusicService {
entry.setSize(file.length());
String root = FileUtil.getMusicDirectory(context).getPath();
entry.setPath(file.getPath().replaceFirst("^" + root + "/" , ""));
if (file.isFile()) {
entry.setArtist(file.getParentFile().getParentFile().getName());
entry.setAlbum(file.getParentFile().getName());
}
entry.setTitle(name);
if (file.isFile()) {
String artist = null;
String album = null;
String title = null;
String track = null;
String disc = null;
String year = null;
String genre = null;
String bitrate = null;
String duration = null;
String hasVideo = null;
try
{
MediaMetadataRetriever mmr = new MediaMetadataRetriever();
mmr.setDataSource(file.getPath());
artist = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST);
album = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM);
title = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE);
track = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER);
disc = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DISC_NUMBER);
year = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR);
genre = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE);
//bitrate = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_BITRATE);
duration = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION);
hasVideo = mmr.extractMetadata(MediaMetadataRetriever.METADATA_KEY_HAS_VIDEO);
mmr.release();
} catch (Exception ex) {
}
entry.setArtist(artist != null ? artist : file.getParentFile().getParentFile().getName());
entry.setAlbum(album != null ? album : file.getParentFile().getName());
if (title != null) {
entry.setTitle(title);
}
entry.setVideo(hasVideo != null);
if (track != null) {
int slashIndex = track.indexOf("/");
if (slashIndex != 0) {
track = track.substring(0, slashIndex);
}
int trackValue = 0;
try {
trackValue = Integer.parseInt(track);
}
catch(NumberFormatException nfe) {
}
entry.setTrack(trackValue);
}
if (disc != null) {
int slashIndex = disc.indexOf("/");
if (slashIndex != 0) {
disc = disc.substring(0, slashIndex);
}
int discValue = 0;
try {
discValue = Integer.parseInt(disc);
}
catch(NumberFormatException nfe) {
}
entry.setDiscNumber(discValue);
}
if (year != null) {
int yearValue = 0;
try {
yearValue = Integer.parseInt(year);
} catch(NumberFormatException nfe) {
}
entry.setYear(yearValue);
}
if (genre != null) {
entry.setGenre(genre);
}
if (bitrate != null) {
int bitRateValue = 0;
try {
bitRateValue = Integer.parseInt(bitrate) / 1000;
} catch(NumberFormatException nfe) {
}
entry.setBitRate(bitRateValue);
}
if (duration != null) {
long durationValue = 0;
try {
durationValue = Long.parseLong(duration);
} catch(NumberFormatException nfe) {
}
durationValue = TimeUnit.MILLISECONDS.toSeconds(durationValue);
entry.setDuration(durationValue);
}
}
entry.setSuffix(FileUtil.getExtension(file.getName().replace(".complete", "")));
File albumArt = FileUtil.getAlbumArtFile(context, entry);

View File

@ -60,6 +60,10 @@ public class AlbumView extends LinearLayout {
starImageView.setImageDrawable(album.getStarred() ? getResources().getDrawable(R.drawable.star) : getResources().getDrawable(R.drawable.star_hollow));
imageLoader.loadImage(coverArtView, album, false, true);
if (Util.isOffline(getContext())) {
starImageView.setVisibility(View.GONE);
}
starImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

View File

@ -64,6 +64,8 @@ public final class Constants {
public static final String PREFERENCES_KEY_PASSWORD = "password";
public static final String PREFERENCES_KEY_INSTALL_TIME = "installTime";
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_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

@ -52,6 +52,8 @@ public class SongView extends LinearLayout implements Checkable {
private CheckedTextView checkedTextView;
private ImageView starImageView;
private TextView trackTextView;
private TextView discTextView;
private TextView titleTextView;
private TextView artistTextView;
private TextView durationTextView;
@ -64,6 +66,7 @@ public class SongView extends LinearLayout implements Checkable {
checkedTextView = (CheckedTextView) findViewById(R.id.song_check);
starImageView = (ImageView) findViewById(R.id.song_star);
trackTextView = (TextView) findViewById(R.id.song_track);
titleTextView = (TextView) findViewById(R.id.song_title);
artistTextView = (TextView) findViewById(R.id.song_artist);
durationTextView = (TextView) findViewById(R.id.song_duration);
@ -81,7 +84,7 @@ public class SongView extends LinearLayout implements Checkable {
public void setSong(final MusicDirectory.Entry song, boolean checkable) {
this.song = song;
StringBuilder artist = new StringBuilder(40);
StringBuilder artist = new StringBuilder(60);
String bitRate = null;
if (song.getBitRate() != null) {
@ -95,9 +98,21 @@ public class SongView extends LinearLayout implements Checkable {
fileFormat = song.getSuffix();
}
artist.append(song.getArtist()).append(" (")
.append(String.format(getContext().getString(R.string.song_details_all), bitRate == null ? "" : bitRate, fileFormat))
.append(")");
if (Util.shouldDisplayBitrateWithArtist(getContext())) {
artist.append(song.getArtist()).append(" (")
.append(String.format(getContext().getString(R.string.song_details_all), bitRate == null ? "" : bitRate + " ", fileFormat))
.append(")");
} else {
artist.append(song.getArtist());
}
int trackNumber = song.getTrack();
if (trackNumber != 0) {
trackTextView.setText(String.format("%02d.", trackNumber));
} else {
trackTextView.setVisibility(View.GONE);
}
titleTextView.setText(song.getTitle());
artistTextView.setText(artist);
@ -105,6 +120,10 @@ public class SongView extends LinearLayout implements Checkable {
starImageView.setImageDrawable(song.getStarred() ? getResources().getDrawable(R.drawable.star) : getResources().getDrawable(R.drawable.star_hollow));
checkedTextView.setVisibility(checkable && !song.isVideo() ? View.VISIBLE : View.GONE);
if (Util.isOffline(getContext())) {
starImageView.setVisibility(View.GONE);
}
starImageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

View File

@ -579,7 +579,17 @@ public class Util extends DownloadActivity {
SharedPreferences prefs = getPreferences(context);
return prefs.getBoolean(Constants.PREFERENCES_KEY_WIFI_REQUIRED_FOR_DOWNLOAD, false);
}
public static boolean shouldDisplayBitrateWithArtist(Context context) {
SharedPreferences prefs = getPreferences(context);
return prefs.getBoolean(Constants.PREFERENCES_KEY_DISPLAY_BITRATE_WITH_ARTIST, true);
}
public static boolean shouldUseFolderForArtistName(Context context) {
SharedPreferences prefs = getPreferences(context);
return prefs.getBoolean(Constants.PREFERENCES_KEY_USE_FOLDER_FOR_ALBUM_ARTIST, false);
}
public static void info(Context context, int titleId, int messageId) {
showDialog(context, android.R.drawable.ic_dialog_info, titleId, messageId);
}