Switch to actual Action Bar instead of compat, force ICS or higer.

This commit is contained in:
Joshua Bahnsen 2013-01-07 00:18:41 -07:00
parent c3e1e824f3
commit 70cb75f4ec
35 changed files with 1187 additions and 1207 deletions

View File

@ -12,11 +12,11 @@
<uses-permission a:name="android.permission.RECORD_AUDIO"/>
<uses-permission a:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-sdk a:minSdkVersion="11" a:targetSdkVersion="16"/>
<uses-sdk a:minSdkVersion="11" a:targetSdkVersion="14"/>
<supports-screens a:anyDensity="true" a:xlargeScreens="true" a:largeScreens="true" a:normalScreens="true" a:smallScreens="true"/>
<application a:label="@string/common.appname" a:icon="@drawable/ic_launcher" a:theme="@style/Dark">
<application a:label="@string/common.appname" a:icon="@drawable/ic_launcher" a:theme="@style/Dark" a:allowBackup="false">
<activity a:name="net.sourceforge.subsonic.androidapp.activity.MainActivity"
a:label="Subsonic"
@ -38,7 +38,8 @@
<activity a:name="net.sourceforge.subsonic.androidapp.activity.SearchActivity"
a:label="@string/search.label"
a:configChanges="orientation|keyboardHidden"
a:launchMode="singleTask"/>
a:launchMode="singleTask"
/>
<activity a:name="net.sourceforge.subsonic.androidapp.activity.SelectPlaylistActivity"
a:label="@string/playlist.label"
@ -47,8 +48,10 @@
<activity a:name="net.sourceforge.subsonic.androidapp.activity.DownloadActivity"
a:configChanges="keyboardHidden"
a:launchMode="singleTask"/>
a:launchMode="singleTask"
a:theme="@android:style/Theme.NoTitleBar.Fullscreen"
/>
<activity a:name="net.sourceforge.subsonic.androidapp.activity.SettingsActivity"
a:configChanges="orientation|keyboardHidden"
a:launchMode="singleTask"/>
@ -65,7 +68,7 @@
a:label="@string/equalizer.label"
a:configChanges="orientation|keyboardHidden"
a:launchMode="singleTask"/>
<activity a:name="net.sourceforge.subsonic.androidapp.activity.VoiceQueryReceiverActivity"
a:launchMode="singleTask">
<intent-filter>
@ -81,6 +84,7 @@
</intent-filter>
<meta-data a:name="android.app.searchable" a:resource="@xml/searchable"/>
</activity>
<service a:name="net.sourceforge.subsonic.androidapp.service.DownloadServiceImpl"
a:label="Subsonic Download Service"/>

View File

@ -138,198 +138,197 @@ public final class R {
public static final int unknown_album_large=0x7f020056;
}
public static final class id {
public static final int action_button_1=0x7f0d0004;
public static final int action_button_2=0x7f0d0005;
public static final int action_button_3=0x7f0d0002;
public static final int action_button_4=0x7f0d0003;
public static final int actionbar_home_icon=0x7f0d0000;
public static final int actionbar_title_text=0x7f0d0001;
public static final int album=0x7f0d0051;
public static final int album_artist=0x7f0d0008;
public static final int album_coverart=0x7f0d0006;
public static final int album_menu_pin=0x7f0d008b;
public static final int album_menu_play_last=0x7f0d008a;
public static final int album_menu_play_now=0x7f0d0089;
public static final int album_title=0x7f0d0007;
public static final int appwidget_coverart=0x7f0d0009;
public static final int appwidget_top=0x7f0d000b;
public static final int artist=0x7f0d000d;
public static final int artist_menu_pin=0x7f0d008e;
public static final int artist_menu_play_last=0x7f0d008d;
public static final int artist_menu_play_now=0x7f0d008c;
public static final int button_bar=0x7f0d0011;
public static final int button_bar_home=0x7f0d0012;
public static final int button_bar_music=0x7f0d0013;
public static final int button_bar_now_playing=0x7f0d0016;
public static final int button_bar_playlists=0x7f0d0015;
public static final int button_bar_search=0x7f0d0014;
public static final int control_next=0x7f0d0010;
public static final int control_play=0x7f0d000f;
public static final int control_previous=0x7f0d000e;
public static final int control_stop=0x7f0d0052;
public static final int download_album=0x7f0d002d;
public static final int download_album_art_image=0x7f0d0027;
public static final int download_album_art_layout=0x7f0d0026;
public static final int download_artist=0x7f0d002c;
public static final int download_button_bar_flipper=0x7f0d0029;
public static final int download_control_layout=0x7f0d0017;
public static final int download_duration=0x7f0d002b;
public static final int download_empty=0x7f0d002e;
public static final int download_equalizer=0x7f0d0022;
public static final int download_jukebox=0x7f0d0023;
public static final int download_list=0x7f0d002f;
public static final int download_next=0x7f0d001c;
public static final int download_pause=0x7f0d0019;
public static final int download_playlist_flipper=0x7f0d0025;
public static final int download_position=0x7f0d002a;
public static final int download_previous=0x7f0d0018;
public static final int download_progress_bar=0x7f0d0030;
public static final int download_repeat=0x7f0d0020;
public static final int download_shuffle=0x7f0d001f;
public static final int download_song_title=0x7f0d001e;
public static final int download_start=0x7f0d001b;
public static final int download_status=0x7f0d001d;
public static final int download_stop=0x7f0d001a;
public static final int download_toggle_list=0x7f0d0021;
public static final int download_visualizer=0x7f0d0024;
public static final int download_visualizer_view_layout=0x7f0d0028;
public static final int equalizer_bar=0x7f0d0036;
public static final int equalizer_frequency=0x7f0d0034;
public static final int equalizer_level=0x7f0d0035;
public static final int equalizer_enabled=0x7f0d0031;
public static final int equalizer_layout=0x7f0d0032;
public static final int equalizer_preset=0x7f0d0033;
public static final int help_back=0x7f0d0038;
public static final int help_buttons=0x7f0d0037;
public static final int help_close=0x7f0d0039;
public static final int help_contents=0x7f0d003a;
public static final int ic_menu_shuffle=0x7f0d0081;
public static final int icon=0x7f0d0077;
public static final int jukebox_volume_progress_bar=0x7f0d003c;
public static final int linearLayout1=0x7f0d000a;
public static final int lyrics_artist=0x7f0d003e;
public static final int lyrics_scrollview=0x7f0d003d;
public static final int lyrics_text=0x7f0d0040;
public static final int lyrics_title=0x7f0d003f;
public static final int main_select_server_1=0x7f0d0044;
public static final int main_select_server_2=0x7f0d0045;
public static final int main_albums=0x7f0d0046;
public static final int main_albums_frequent=0x7f0d0049;
public static final int main_albums_highest=0x7f0d004a;
public static final int main_albums_newest=0x7f0d0047;
public static final int main_albums_random=0x7f0d004c;
public static final int main_albums_recent=0x7f0d0048;
public static final int main_albums_starred=0x7f0d004b;
public static final int main_dummy=0x7f0d0042;
public static final int main_list=0x7f0d0041;
public static final int main_select_server=0x7f0d0043;
public static final int menu_exit=0x7f0d007e;
public static final int menu_help=0x7f0d0080;
public static final int menu_lyrics=0x7f0d0086;
public static final int menu_remove=0x7f0d0087;
public static final int menu_remove_all=0x7f0d0083;
public static final int menu_save_playlist=0x7f0d0082;
public static final int menu_screen_on_off=0x7f0d0084;
public static final int menu_settings=0x7f0d007f;
public static final int menu_show_album=0x7f0d0085;
public static final int menu_shuffle=0x7f0d0088;
public static final int notification_image=0x7f0d004e;
public static final int play_video_contents=0x7f0d0053;
public static final int progress_message=0x7f0d0054;
public static final int save_playlist_name=0x7f0d0056;
public static final int save_playlist_root=0x7f0d0055;
public static final int search_albums=0x7f0d005a;
public static final int search_artists=0x7f0d0059;
public static final int search_list=0x7f0d0057;
public static final int search_more_albums=0x7f0d005d;
public static final int search_more_artists=0x7f0d005c;
public static final int search_more_songs=0x7f0d005e;
public static final int search_search=0x7f0d0058;
public static final int search_songs=0x7f0d005b;
public static final int select_album_cover_art=0x7f0d0068;
public static final int select_album_delete=0x7f0d0066;
public static final int select_album_empty=0x7f0d005f;
public static final int select_album_entries=0x7f0d0060;
public static final int select_album_more=0x7f0d0067;
public static final int select_album_pin=0x7f0d0064;
public static final int select_album_play_all=0x7f0d006b;
public static final int select_album_play_last=0x7f0d0063;
public static final int select_album_play_now=0x7f0d0062;
public static final int select_album_select=0x7f0d0061;
public static final int select_album_text1=0x7f0d0069;
public static final int select_album_text2=0x7f0d006a;
public static final int select_album_unpin=0x7f0d0065;
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=0x7f0d0075;
public static final int song_check=0x7f0d0072;
public static final int song_duration=0x7f0d0076;
public static final int song_menu_play_last=0x7f0d0091;
public static final int song_menu_play_next=0x7f0d0090;
public static final int song_menu_play_now=0x7f0d008f;
public static final int song_status=0x7f0d0074;
public static final int song_title=0x7f0d0073;
public static final int status_icon=0x7f0d004f;
public static final int status_media_collapse=0x7f0d007b;
public static final int status_media_next=0x7f0d007a;
public static final int status_media_play=0x7f0d0079;
public static final int status_media_prev=0x7f0d0078;
public static final int statusbar=0x7f0d004d;
public static final int tab_progress=0x7f0d007c;
public static final int tab_progress_message=0x7f0d007d;
public static final int title=0x7f0d000c;
public static final int toast_layout_root=0x7f0d003b;
public static final int trackname=0x7f0d0050;
public static final int action_button_3=0x7f0d001e;
public static final int album=0x7f0d004c;
public static final int album_artist=0x7f0d0002;
public static final int album_coverart=0x7f0d0000;
public static final int album_menu_pin=0x7f0d0087;
public static final int album_menu_play_last=0x7f0d0086;
public static final int album_menu_play_now=0x7f0d0085;
public static final int album_title=0x7f0d0001;
public static final int appwidget_coverart=0x7f0d0003;
public static final int appwidget_top=0x7f0d0005;
public static final int artist=0x7f0d0007;
public static final int artist_menu_pin=0x7f0d008a;
public static final int artist_menu_play_last=0x7f0d0089;
public static final int artist_menu_play_now=0x7f0d0088;
public static final int button_bar=0x7f0d000b;
public static final int button_bar_home=0x7f0d000c;
public static final int button_bar_music=0x7f0d000d;
public static final int button_bar_now_playing=0x7f0d0010;
public static final int button_bar_playlists=0x7f0d000f;
public static final int button_bar_search=0x7f0d000e;
public static final int control_next=0x7f0d000a;
public static final int control_play=0x7f0d0009;
public static final int control_previous=0x7f0d0008;
public static final int control_stop=0x7f0d004d;
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=0x7f0d0011;
public static final int download_duration=0x7f0d0026;
public static final int download_empty=0x7f0d0029;
public static final int download_equalizer=0x7f0d001c;
public static final int download_jukebox=0x7f0d001d;
public static final int download_list=0x7f0d002a;
public static final int download_next=0x7f0d0016;
public static final int download_pause=0x7f0d0013;
public static final int download_playlist_flipper=0x7f0d0020;
public static final int download_position=0x7f0d0025;
public static final int download_previous=0x7f0d0012;
public static final int download_progress_bar=0x7f0d002b;
public static final int download_repeat=0x7f0d001a;
public static final int download_shuffle=0x7f0d0019;
public static final int download_song_title=0x7f0d0018;
public static final int download_start=0x7f0d0015;
public static final int download_status=0x7f0d0017;
public static final int download_stop=0x7f0d0014;
public static final int download_toggle_list=0x7f0d001b;
public static final int download_visualizer=0x7f0d001f;
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 ic_menu_shuffle=0x7f0d007d;
public static final int icon=0x7f0d0072;
public static final int jukebox_volume_progress_bar=0x7f0d0037;
public static final int linearLayout1=0x7f0d0004;
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=0x7f0d0041;
public static final int main_albums_frequent=0x7f0d0044;
public static final int main_albums_highest=0x7f0d0045;
public static final int main_albums_newest=0x7f0d0042;
public static final int main_albums_random=0x7f0d0047;
public static final int main_albums_recent=0x7f0d0043;
public static final int main_albums_starred=0x7f0d0046;
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=0x7f0d007c;
public static final int menu_exit=0x7f0d0079;
public static final int menu_help=0x7f0d007b;
public static final int menu_lyrics=0x7f0d0082;
public static final int menu_refresh=0x7f0d008b;
public static final int menu_remove=0x7f0d0083;
public static final int menu_remove_all=0x7f0d007f;
public static final int menu_save_playlist=0x7f0d007e;
public static final int menu_screen_on_off=0x7f0d0080;
public static final int menu_settings=0x7f0d007a;
public static final int menu_show_album=0x7f0d0081;
public static final int menu_shuffle=0x7f0d0084;
public static final int notification_image=0x7f0d0049;
public static final int play_video_contents=0x7f0d004e;
public static final int progress_message=0x7f0d004f;
public static final int save_playlist_name=0x7f0d0051;
public static final int save_playlist_root=0x7f0d0050;
public static final int search_albums=0x7f0d0055;
public static final int search_artists=0x7f0d0054;
public static final int search_list=0x7f0d0052;
public static final int search_more_albums=0x7f0d0058;
public static final int search_more_artists=0x7f0d0057;
public static final int search_more_songs=0x7f0d0059;
public static final int search_search=0x7f0d0053;
public static final int search_songs=0x7f0d0056;
public static final int select_album_cover_art=0x7f0d0063;
public static final int select_album_delete=0x7f0d0061;
public static final int select_album_empty=0x7f0d005a;
public static final int select_album_entries=0x7f0d005b;
public static final int select_album_more=0x7f0d0062;
public static final int select_album_pin=0x7f0d005f;
public static final int select_album_play_all=0x7f0d0066;
public static final int select_album_play_last=0x7f0d005e;
public static final int select_album_play_now=0x7f0d005d;
public static final int select_album_select=0x7f0d005c;
public static final int select_album_text1=0x7f0d0064;
public static final int select_album_text2=0x7f0d0065;
public static final int select_album_unpin=0x7f0d0060;
public static final int select_artist_folder=0x7f0d0068;
public static final int select_artist_folder_1=0x7f0d0069;
public static final int select_artist_folder_2=0x7f0d006a;
public static final int select_artist_list=0x7f0d0067;
public static final int select_playlist_empty=0x7f0d006b;
public static final int select_playlist_list=0x7f0d006c;
public static final int song_artist=0x7f0d0070;
public static final int song_check=0x7f0d006d;
public static final int song_duration=0x7f0d0071;
public static final int song_menu_play_last=0x7f0d008e;
public static final int song_menu_play_next=0x7f0d008d;
public static final int song_menu_play_now=0x7f0d008c;
public static final int song_status=0x7f0d006f;
public static final int song_title=0x7f0d006e;
public static final int status_icon=0x7f0d004a;
public static final int status_media_collapse=0x7f0d0076;
public static final int status_media_next=0x7f0d0075;
public static final int status_media_play=0x7f0d0074;
public static final int status_media_prev=0x7f0d0073;
public static final int statusbar=0x7f0d0048;
public static final int tab_progress=0x7f0d0077;
public static final int tab_progress_message=0x7f0d0078;
public static final int title=0x7f0d0006;
public static final int toast_layout_root=0x7f0d0036;
public static final int trackname=0x7f0d004b;
}
public static final class integer {
public static final int config_activityDefaultDur=0x7f080001;
public static final int config_activityShortDur=0x7f080000;
}
public static final class layout {
public static final int action_bar=0x7f030000;
public static final int album_list_item=0x7f030001;
public static final int appwidget4x1=0x7f030002;
public static final int artist_list_item=0x7f030003;
public static final int button_bar=0x7f030004;
public static final int download=0x7f030005;
public static final int download_button_bar_flipper=0x7f030006;
public static final int download_playlist=0x7f030007;
public static final int download_slider=0x7f030008;
public static final int equalizer=0x7f030009;
public static final int equalizer_bar=0x7f03000a;
public static final int help=0x7f03000b;
public static final int jukebox_volume=0x7f03000c;
public static final int lyrics=0x7f03000d;
public static final int main=0x7f03000e;
public static final int main_buttons=0x7f03000f;
public static final int notification=0x7f030010;
public static final int play_video=0x7f030011;
public static final int playlist_list_item=0x7f030012;
public static final int progress=0x7f030013;
public static final int save_playlist=0x7f030014;
public static final int search=0x7f030015;
public static final int search_buttons=0x7f030016;
public static final int select_album=0x7f030017;
public static final int select_album_footer=0x7f030018;
public static final int select_album_header=0x7f030019;
public static final int select_artist=0x7f03001a;
public static final int select_artist_header=0x7f03001b;
public static final int select_playlist=0x7f03001c;
public static final int song_list_item=0x7f03001d;
public static final int statusbar=0x7f03001e;
public static final int tab_progress=0x7f03001f;
public static final int album_list_item=0x7f030000;
public static final int appwidget4x1=0x7f030001;
public static final int artist_list_item=0x7f030002;
public static final int button_bar=0x7f030003;
public static final int download=0x7f030004;
public static final int download_button_bar_flipper=0x7f030005;
public static final int download_playlist=0x7f030006;
public static final int download_slider=0x7f030007;
public static final int equalizer=0x7f030008;
public static final int equalizer_bar=0x7f030009;
public static final int help=0x7f03000a;
public static final int jukebox_volume=0x7f03000b;
public static final int lyrics=0x7f03000c;
public static final int main=0x7f03000d;
public static final int main_buttons=0x7f03000e;
public static final int notification=0x7f03000f;
public static final int play_video=0x7f030010;
public static final int playlist_list_item=0x7f030011;
public static final int progress=0x7f030012;
public static final int save_playlist=0x7f030013;
public static final int search=0x7f030014;
public static final int search_buttons=0x7f030015;
public static final int select_album=0x7f030016;
public static final int select_album_footer=0x7f030017;
public static final int select_album_header=0x7f030018;
public static final int select_artist=0x7f030019;
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 class menu {
public static final int main=0x7f0c0000;
public static final int nowplaying=0x7f0c0001;
public static final int nowplaying_context=0x7f0c0002;
public static final int select_album_context=0x7f0c0003;
public static final int select_artist_context=0x7f0c0004;
public static final int select_song_context=0x7f0c0005;
public static final int common=0x7f0c0000;
public static final int main=0x7f0c0001;
public static final int nowplaying=0x7f0c0002;
public static final int nowplaying_context=0x7f0c0003;
public static final int select_album=0x7f0c0004;
public static final int select_album_context=0x7f0c0005;
public static final int select_artist_context=0x7f0c0006;
public static final int select_common=0x7f0c0007;
public static final int select_song_context=0x7f0c0008;
}
public static final class plurals {
public static final int select_album_donate_dialog_n_trial_days_left=0x7f0a0003;
@ -338,12 +337,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=0x7f0900c9;
public static final int background_task_network_error=0x7f0900cb;
public static final int background_task_no_network=0x7f0900ca;
public static final int background_task_not_found=0x7f0900cc;
public static final int background_task_parse_error=0x7f0900cd;
public static final int background_task_wait=0x7f0900c8;
public static final int background_task_loading=0x7f0900cb;
public static final int background_task_network_error=0x7f0900cd;
public static final int background_task_no_network=0x7f0900cc;
public static final int background_task_not_found=0x7f0900ce;
public static final int background_task_parse_error=0x7f0900cf;
public static final int background_task_wait=0x7f0900ca;
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;
@ -359,46 +358,46 @@ 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=0x7f090042;
public static final int download_jukebox_not_authorized=0x7f09005e;
public static final int download_jukebox_off=0x7f09005a;
public static final int download_jukebox_offline=0x7f09005d;
public static final int download_jukebox_on=0x7f090059;
public static final int download_jukebox_server_too_old=0x7f09005c;
public static final int download_jukebox_volume=0x7f09005b;
public static final int download_menu_lyrics=0x7f090047;
public static final int download_menu_remove=0x7f090048;
public static final int download_menu_remove_all=0x7f090049;
public static final int download_menu_save=0x7f09004d;
public static final int download_menu_screen_off=0x7f09004b;
public static final int download_menu_screen_on=0x7f09004a;
public static final int download_menu_show_album=0x7f090046;
public static final int download_menu_shuffle=0x7f09004c;
public static final int download_menu_shuffle_notification=0x7f09004e;
public static final int download_playerstate_buffering=0x7f090044;
public static final int download_playerstate_downloading=0x7f090043;
public static final int download_playerstate_playing_shuffle=0x7f090045;
public static final int download_playlist_done=0x7f090052;
public static final int download_playlist_error=0x7f090053;
public static final int download_playlist_name=0x7f090050;
public static final int download_playlist_saving=0x7f090051;
public static final int download_playlist_title=0x7f09004f;
public static final int download_repeat_all=0x7f090055;
public static final int download_repeat_off=0x7f090054;
public static final int download_repeat_single=0x7f090056;
public static final int download_visualizer_off=0x7f090058;
public static final int download_visualizer_on=0x7f090057;
public static final int equalizer_enabled=0x7f0900da;
public static final int equalizer_label=0x7f0900d9;
public static final int equalizer_preset=0x7f0900db;
public static final int error_label=0x7f090062;
public static final int help_back=0x7f090022;
public static final int help_close=0x7f090023;
public static final int help_label=0x7f090020;
public static final int help_loading=0x7f090025;
public static final int help_title=0x7f090021;
public static final int help_url=0x7f090024;
public static final int lyrics_nomatch=0x7f090061;
public static final int download_empty=0x7f090044;
public static final int download_jukebox_not_authorized=0x7f090060;
public static final int download_jukebox_off=0x7f09005c;
public static final int download_jukebox_offline=0x7f09005f;
public static final int download_jukebox_on=0x7f09005b;
public static final int download_jukebox_server_too_old=0x7f09005e;
public static final int download_jukebox_volume=0x7f09005d;
public static final int download_menu_lyrics=0x7f090049;
public static final int download_menu_remove=0x7f09004a;
public static final int download_menu_remove_all=0x7f09004b;
public static final int download_menu_save=0x7f09004f;
public static final int download_menu_screen_off=0x7f09004d;
public static final int download_menu_screen_on=0x7f09004c;
public static final int download_menu_show_album=0x7f090048;
public static final int download_menu_shuffle=0x7f09004e;
public static final int download_menu_shuffle_notification=0x7f090050;
public static final int download_playerstate_buffering=0x7f090046;
public static final int download_playerstate_downloading=0x7f090045;
public static final int download_playerstate_playing_shuffle=0x7f090047;
public static final int download_playlist_done=0x7f090054;
public static final int download_playlist_error=0x7f090055;
public static final int download_playlist_name=0x7f090052;
public static final int download_playlist_saving=0x7f090053;
public static final int download_playlist_title=0x7f090051;
public static final int download_repeat_all=0x7f090057;
public static final int download_repeat_off=0x7f090056;
public static final int download_repeat_single=0x7f090058;
public static final int download_visualizer_off=0x7f09005a;
public static final int download_visualizer_on=0x7f090059;
public static final int equalizer_enabled=0x7f0900dc;
public static final int equalizer_label=0x7f0900db;
public static final int equalizer_preset=0x7f0900dd;
public static final int error_label=0x7f090064;
public static final int help_back=0x7f090023;
public static final int help_close=0x7f090024;
public static final int help_label=0x7f090021;
public static final int help_loading=0x7f090026;
public static final int help_title=0x7f090022;
public static final int help_url=0x7f090025;
public static final int lyrics_nomatch=0x7f090063;
public static final int main_albums_frequent=0x7f090018;
public static final int main_albums_highest=0x7f090019;
public static final int main_albums_newest=0x7f090016;
@ -414,171 +413,173 @@ public final class R {
public static final int main_welcome_title=0x7f09000f;
public static final int menu_exit=0x7f09001c;
public static final int menu_help=0x7f09001e;
public static final int menu_search=0x7f09001f;
public static final int menu_settings=0x7f09001d;
public static final int music_library_label=0x7f090031;
public static final int music_library_label_offline=0x7f090032;
public static final int music_library_label=0x7f090032;
public static final int music_library_label_offline=0x7f090033;
/** <string name="settings.screen_lit_title">TODO: Keep screen on</string>
<string name="settings.screen_lit_summary">TODO: Keeping the screen on when downloading may improve download speed</string>
*/
public static final int music_service_retry=0x7f0900c7;
public static final int parser_artist_count=0x7f0900d5;
public static final int parser_not_authenticated=0x7f0900d3;
public static final int parser_not_authorized=0x7f0900d4;
public static final int parser_reading=0x7f0900cf;
public static final int parser_reading_done=0x7f0900d0;
public static final int parser_upgrade_client=0x7f0900d1;
public static final int parser_upgrade_server=0x7f0900d2;
public static final int play_video_loading=0x7f090026;
public static final int play_video_noplugin=0x7f090027;
public static final int music_service_retry=0x7f0900c9;
public static final int parser_artist_count=0x7f0900d7;
public static final int parser_not_authenticated=0x7f0900d5;
public static final int parser_not_authorized=0x7f0900d6;
public static final int parser_reading=0x7f0900d1;
public static final int parser_reading_done=0x7f0900d2;
public static final int parser_upgrade_client=0x7f0900d3;
public static final int parser_upgrade_server=0x7f0900d4;
public static final int play_video_loading=0x7f090027;
public static final int play_video_noplugin=0x7f090028;
/** <string name="menu.exit">TODO: Exit</string>
<string name="menu.settings">TODO: Settings</string>
<string name="menu.help">TODO: Help</string>
*/
public static final int playlist_label=0x7f09001f;
public static final int progress_wait=0x7f090030;
public static final int search_albums=0x7f09002d;
public static final int search_artists=0x7f09002c;
public static final int search_label=0x7f090028;
public static final int search_more=0x7f09002f;
public static final int search_no_match=0x7f09002b;
public static final int search_search=0x7f09002a;
public static final int search_songs=0x7f09002e;
public static final int search_title=0x7f090029;
public static final int select_album_donate_dialog_0_trial_days_left=0x7f090040;
public static final int select_album_donate_dialog_later=0x7f09003f;
public static final int select_album_donate_dialog_message=0x7f09003d;
public static final int select_album_donate_dialog_now=0x7f09003e;
public static final int select_album_empty=0x7f090033;
public static final int playlist_label=0x7f090020;
public static final int progress_wait=0x7f090031;
public static final int search_albums=0x7f09002e;
public static final int search_artists=0x7f09002d;
public static final int search_label=0x7f090029;
public static final int search_more=0x7f090030;
public static final int search_no_match=0x7f09002c;
public static final int search_search=0x7f09002b;
public static final int search_songs=0x7f09002f;
public static final int search_title=0x7f09002a;
public static final int select_album_donate_dialog_0_trial_days_left=0x7f090042;
public static final int select_album_donate_dialog_later=0x7f090041;
public static final int select_album_donate_dialog_message=0x7f09003f;
public static final int select_album_donate_dialog_now=0x7f090040;
public static final int select_album_empty=0x7f090034;
/** <string name="select_album.n_selected">TODO: %d tracks selected.</string>
<string name="select_album.n_unselected">TODO: %d tracks unselected.</string>
*/
public static final int select_album_more=0x7f090037;
public static final int select_album_n_selected=0x7f090035;
public static final int select_album_n_unselected=0x7f090036;
public static final int select_album_no_network=0x7f09003b;
public static final int select_album_no_sdcard=0x7f09003a;
public static final int select_album_not_licensed=0x7f09003c;
public static final int select_album_offline=0x7f090038;
public static final int select_album_searching=0x7f090039;
public static final int select_album_select=0x7f090034;
public static final int select_artist_all_folders=0x7f0900d8;
public static final int select_artist_folder=0x7f0900d7;
public static final int select_artist_refresh=0x7f0900d6;
public static final int select_playlist_empty=0x7f090041;
public static final int service_connecting=0x7f0900ce;
public static final int settings_appearance_title=0x7f090077;
public static final int settings_buffer_length=0x7f0900a8;
public static final int settings_buffer_length_10=0x7f0900ad;
public static final int settings_buffer_length_12=0x7f0900ae;
public static final int settings_buffer_length_15=0x7f0900af;
public static final int settings_buffer_length_2=0x7f0900aa;
public static final int settings_buffer_length_20=0x7f0900b0;
public static final int settings_buffer_length_30=0x7f0900b1;
public static final int settings_buffer_length_5=0x7f0900ab;
public static final int settings_buffer_length_8=0x7f0900ac;
public static final int settings_cache_location=0x7f09006f;
public static final int settings_cache_location_error=0x7f090070;
public static final int settings_cache_size=0x7f09006e;
public static final int settings_cache_size_100=0x7f090093;
public static final int settings_cache_size_1000=0x7f090096;
public static final int settings_cache_size_10000=0x7f090099;
public static final int settings_cache_size_200=0x7f090094;
public static final int settings_cache_size_2000=0x7f090097;
public static final int settings_cache_size_20000=0x7f09009a;
public static final int settings_cache_size_500=0x7f090095;
public static final int settings_cache_size_5000=0x7f090098;
public static final int settings_cache_size_unlimited=0x7f09009b;
public static final int settings_cache_title=0x7f09006c;
public static final int settings_clear_search_history=0x7f09009c;
public static final int settings_connection_failure=0x7f090074;
public static final int settings_hide_media_summary=0x7f0900a2;
public static final int select_album_more=0x7f090038;
public static final int select_album_n_selected=0x7f090036;
public static final int select_album_n_unselected=0x7f090037;
public static final int select_album_no_network=0x7f09003d;
public static final int select_album_no_sdcard=0x7f09003c;
public static final int select_album_not_licensed=0x7f09003e;
public static final int select_album_offline=0x7f090039;
public static final int select_album_play_all=0x7f09003b;
public static final int select_album_searching=0x7f09003a;
public static final int select_album_select=0x7f090035;
public static final int select_artist_all_folders=0x7f0900da;
public static final int select_artist_folder=0x7f0900d9;
public static final int select_artist_refresh=0x7f0900d8;
public static final int select_playlist_empty=0x7f090043;
public static final int service_connecting=0x7f0900d0;
public static final int settings_appearance_title=0x7f090079;
public static final int settings_buffer_length=0x7f0900aa;
public static final int settings_buffer_length_10=0x7f0900af;
public static final int settings_buffer_length_12=0x7f0900b0;
public static final int settings_buffer_length_15=0x7f0900b1;
public static final int settings_buffer_length_2=0x7f0900ac;
public static final int settings_buffer_length_20=0x7f0900b2;
public static final int settings_buffer_length_30=0x7f0900b3;
public static final int settings_buffer_length_5=0x7f0900ad;
public static final int settings_buffer_length_8=0x7f0900ae;
public static final int settings_cache_location=0x7f090071;
public static final int settings_cache_location_error=0x7f090072;
public static final int settings_cache_size=0x7f090070;
public static final int settings_cache_size_100=0x7f090095;
public static final int settings_cache_size_1000=0x7f090098;
public static final int settings_cache_size_10000=0x7f09009b;
public static final int settings_cache_size_200=0x7f090096;
public static final int settings_cache_size_2000=0x7f090099;
public static final int settings_cache_size_20000=0x7f09009c;
public static final int settings_cache_size_500=0x7f090097;
public static final int settings_cache_size_5000=0x7f09009a;
public static final int settings_cache_size_unlimited=0x7f09009d;
public static final int settings_cache_title=0x7f09006e;
public static final int settings_clear_search_history=0x7f09009e;
public static final int settings_connection_failure=0x7f090076;
public static final int settings_hide_media_summary=0x7f0900a4;
/** <string name="settings.scrobble_title">TODO: Scrobble to Last.fm</string>
<string name="settings.scrobble_summary">TODO: Remember to set up your Last.fm user and password on the Subsonic server</string>
*/
public static final int settings_hide_media_title=0x7f0900a1;
public static final int settings_hide_media_toast=0x7f0900a3;
public static final int settings_invalid_url=0x7f090075;
public static final int settings_invalid_username=0x7f090076;
public static final int settings_max_albums=0x7f0900bc;
public static final int settings_max_albums_10=0x7f0900bf;
public static final int settings_max_albums_100=0x7f0900c4;
public static final int settings_max_albums_20=0x7f0900c0;
public static final int settings_max_albums_250=0x7f0900c5;
public static final int settings_max_albums_30=0x7f0900c1;
public static final int settings_max_albums_40=0x7f0900c2;
public static final int settings_max_albums_5=0x7f0900be;
public static final int settings_max_albums_50=0x7f0900c3;
public static final int settings_max_albums_500=0x7f0900c6;
public static final int settings_max_albums_summary=0x7f0900bd;
public static final int settings_max_bitrate_112=0x7f090084;
public static final int settings_max_bitrate_128=0x7f090085;
public static final int settings_max_bitrate_160=0x7f090086;
public static final int settings_max_bitrate_192=0x7f090087;
public static final int settings_max_bitrate_256=0x7f090088;
public static final int settings_max_bitrate_32=0x7f090080;
public static final int settings_max_bitrate_320=0x7f090089;
public static final int settings_max_bitrate_64=0x7f090081;
public static final int settings_max_bitrate_80=0x7f090082;
public static final int settings_max_bitrate_96=0x7f090083;
public static final int settings_max_bitrate_mobile=0x7f09007f;
public static final int settings_max_bitrate_unlimited=0x7f09008a;
public static final int settings_max_bitrate_wifi=0x7f09007e;
public static final int settings_media_button_summary=0x7f0900a5;
public static final int settings_media_button_title=0x7f0900a4;
public static final int settings_network_timeout=0x7f0900a9;
public static final int settings_network_timeout_105000=0x7f0900b8;
public static final int settings_network_timeout_120000=0x7f0900b9;
public static final int settings_network_timeout_15000=0x7f0900b2;
public static final int settings_network_timeout_30000=0x7f0900b3;
public static final int settings_network_timeout_45000=0x7f0900b4;
public static final int settings_network_timeout_60000=0x7f0900b5;
public static final int settings_network_timeout_75000=0x7f0900b6;
public static final int settings_network_timeout_90000=0x7f0900b7;
public static final int settings_network_title=0x7f09007d;
public static final int settings_other_title=0x7f09009e;
public static final int settings_preload=0x7f09006d;
public static final int settings_preload_1=0x7f09008d;
public static final int settings_preload_10=0x7f090091;
public static final int settings_preload_2=0x7f09008e;
public static final int settings_preload_3=0x7f09008f;
public static final int settings_preload_5=0x7f090090;
public static final int settings_preload_unlimited=0x7f090092;
public static final int settings_screen_lit_summary=0x7f0900a7;
public static final int settings_screen_lit_title=0x7f0900a6;
public static final int settings_scrobble_summary=0x7f0900a0;
public static final int settings_scrobble_title=0x7f09009f;
public static final int settings_search_history_cleared=0x7f09009d;
public static final int settings_server_address=0x7f090069;
public static final int settings_server_name=0x7f090068;
public static final int settings_server_password=0x7f09006b;
public static final int settings_server_unused1=0x7f090066;
public static final int settings_server_unused2=0x7f090067;
public static final int settings_server_username=0x7f09006a;
public static final int settings_servers_title=0x7f090065;
public static final int settings_show_notification=0x7f0900ba;
public static final int settings_show_notification_summary=0x7f0900bb;
public static final int settings_test_connection_title=0x7f090064;
public static final int settings_testing_connection=0x7f090071;
public static final int settings_testing_ok=0x7f090072;
public static final int settings_testing_unlicensed=0x7f090073;
public static final int settings_theme_dark=0x7f09007c;
public static final int settings_theme_fullscreen=0x7f090079;
public static final int settings_theme_fullscreenlight=0x7f09007a;
public static final int settings_theme_light=0x7f09007b;
public static final int settings_theme_title=0x7f090078;
public static final int settings_theme_wheat=0x7f0900e3;
public static final int settings_title=0x7f090063;
public static final int settings_wifi_required_summary=0x7f09008c;
public static final int settings_wifi_required_title=0x7f09008b;
public static final int song_details_all=0x7f09005f;
public static final int song_details_kbps=0x7f090060;
public static final int util_bytes_format_byte=0x7f0900e2;
public static final int util_bytes_format_gigabyte=0x7f0900df;
public static final int util_bytes_format_kilobyte=0x7f0900e1;
public static final int util_bytes_format_megabyte=0x7f0900e0;
public static final int widget_initial_text=0x7f0900dc;
public static final int widget_sdcard_busy=0x7f0900dd;
public static final int widget_sdcard_missing=0x7f0900de;
public static final int settings_hide_media_title=0x7f0900a3;
public static final int settings_hide_media_toast=0x7f0900a5;
public static final int settings_invalid_url=0x7f090077;
public static final int settings_invalid_username=0x7f090078;
public static final int settings_max_albums=0x7f0900be;
public static final int settings_max_albums_10=0x7f0900c1;
public static final int settings_max_albums_100=0x7f0900c6;
public static final int settings_max_albums_20=0x7f0900c2;
public static final int settings_max_albums_250=0x7f0900c7;
public static final int settings_max_albums_30=0x7f0900c3;
public static final int settings_max_albums_40=0x7f0900c4;
public static final int settings_max_albums_5=0x7f0900c0;
public static final int settings_max_albums_50=0x7f0900c5;
public static final int settings_max_albums_500=0x7f0900c8;
public static final int settings_max_albums_summary=0x7f0900bf;
public static final int settings_max_bitrate_112=0x7f090086;
public static final int settings_max_bitrate_128=0x7f090087;
public static final int settings_max_bitrate_160=0x7f090088;
public static final int settings_max_bitrate_192=0x7f090089;
public static final int settings_max_bitrate_256=0x7f09008a;
public static final int settings_max_bitrate_32=0x7f090082;
public static final int settings_max_bitrate_320=0x7f09008b;
public static final int settings_max_bitrate_64=0x7f090083;
public static final int settings_max_bitrate_80=0x7f090084;
public static final int settings_max_bitrate_96=0x7f090085;
public static final int settings_max_bitrate_mobile=0x7f090081;
public static final int settings_max_bitrate_unlimited=0x7f09008c;
public static final int settings_max_bitrate_wifi=0x7f090080;
public static final int settings_media_button_summary=0x7f0900a7;
public static final int settings_media_button_title=0x7f0900a6;
public static final int settings_network_timeout=0x7f0900ab;
public static final int settings_network_timeout_105000=0x7f0900ba;
public static final int settings_network_timeout_120000=0x7f0900bb;
public static final int settings_network_timeout_15000=0x7f0900b4;
public static final int settings_network_timeout_30000=0x7f0900b5;
public static final int settings_network_timeout_45000=0x7f0900b6;
public static final int settings_network_timeout_60000=0x7f0900b7;
public static final int settings_network_timeout_75000=0x7f0900b8;
public static final int settings_network_timeout_90000=0x7f0900b9;
public static final int settings_network_title=0x7f09007f;
public static final int settings_other_title=0x7f0900a0;
public static final int settings_preload=0x7f09006f;
public static final int settings_preload_1=0x7f09008f;
public static final int settings_preload_10=0x7f090093;
public static final int settings_preload_2=0x7f090090;
public static final int settings_preload_3=0x7f090091;
public static final int settings_preload_5=0x7f090092;
public static final int settings_preload_unlimited=0x7f090094;
public static final int settings_screen_lit_summary=0x7f0900a9;
public static final int settings_screen_lit_title=0x7f0900a8;
public static final int settings_scrobble_summary=0x7f0900a2;
public static final int settings_scrobble_title=0x7f0900a1;
public static final int settings_search_history_cleared=0x7f09009f;
public static final int settings_server_address=0x7f09006b;
public static final int settings_server_name=0x7f09006a;
public static final int settings_server_password=0x7f09006d;
public static final int settings_server_unused1=0x7f090068;
public static final int settings_server_unused2=0x7f090069;
public static final int settings_server_username=0x7f09006c;
public static final int settings_servers_title=0x7f090067;
public static final int settings_show_notification=0x7f0900bc;
public static final int settings_show_notification_summary=0x7f0900bd;
public static final int settings_test_connection_title=0x7f090066;
public static final int settings_testing_connection=0x7f090073;
public static final int settings_testing_ok=0x7f090074;
public static final int settings_testing_unlicensed=0x7f090075;
public static final int settings_theme_dark=0x7f09007e;
public static final int settings_theme_fullscreen=0x7f09007b;
public static final int settings_theme_fullscreenlight=0x7f09007c;
public static final int settings_theme_light=0x7f09007d;
public static final int settings_theme_title=0x7f09007a;
public static final int settings_theme_wheat=0x7f0900e5;
public static final int settings_title=0x7f090065;
public static final int settings_wifi_required_summary=0x7f09008e;
public static final int settings_wifi_required_title=0x7f09008d;
public static final int song_details_all=0x7f090061;
public static final int song_details_kbps=0x7f090062;
public static final int util_bytes_format_byte=0x7f0900e4;
public static final int util_bytes_format_gigabyte=0x7f0900e1;
public static final int util_bytes_format_kilobyte=0x7f0900e3;
public static final int util_bytes_format_megabyte=0x7f0900e2;
public static final int widget_initial_text=0x7f0900de;
public static final int widget_sdcard_busy=0x7f0900df;
public static final int widget_sdcard_missing=0x7f0900e0;
}
public static final class style {
public static final int Dark=0x7f0b0000;

View File

@ -1,46 +0,0 @@
<?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="48dp" a:background="@drawable/action_bar_bg"
a:gravity="center">
<ImageView a:id="@+id/actionbar_home_icon" a:layout_width="wrap_content"
a:layout_height="wrap_content" a:layout_alignParentBottom="true"
a:layout_alignParentLeft="true" a:layout_alignParentTop="true"
a:layout_gravity="center_vertical" a:paddingBottom="2dip"
a:paddingLeft="4dip" a:paddingRight="4dip" a:paddingTop="2dip"
a:scaleType="centerInside" a:src="@drawable/main_header_icon" />
/>
<TextView a:id="@+id/actionbar_title_text" a:layout_width="wrap_content"
a:layout_height="wrap_content" a:layout_alignParentBottom="true"
a:layout_alignParentTop="true" a:layout_toRightOf="@id/actionbar_home_icon"
a:ellipsize="middle" a:gravity="center_vertical" a:inputType="none"
a:lineSpacingMultiplier="0.85" a:shadowColor="#000000" a:shadowDx="1"
a:shadowDy="1" a:shadowRadius="1" a:text="Subsonic" a:textColor="#FFFFFF"
a:textSize="18sp" a:textStyle="bold" />
<ImageButton a:id="@+id/action_button_3" a:layout_width="wrap_content"
a:layout_height="match_parent" a:layout_alignParentTop="true"
a:layout_toLeftOf="@+id/action_button_4" a:background="@drawable/list_selector_holo_dark"
a:padding="5dp" a:scaleType="center" a:showAsAction="ifRoom|withText"
a:src="@drawable/ic_menu_help" />
<ImageButton a:id="@+id/action_button_4" a:layout_width="wrap_content"
a:layout_height="match_parent" a:layout_alignParentBottom="true"
a:layout_alignParentRight="true" a:background="@drawable/list_selector_holo_dark"
a:padding="5dp" a:scaleType="center" a:showAsAction="ifRoom|withText"
a:src="@drawable/ic_menu_exit" />
<ImageButton a:id="@+id/action_button_1" a:layout_width="wrap_content"
a:layout_height="match_parent" a:layout_alignParentTop="true"
a:layout_toLeftOf="@+id/action_button_2" a:background="@drawable/list_selector_holo_dark"
a:padding="5dp" a:scaleType="center" a:showAsAction="ifRoom|withText"
a:src="@drawable/ic_menu_shuffle" />
<ImageButton a:id="@+id/action_button_2" a:layout_width="wrap_content"
a:layout_height="match_parent" a:layout_alignParentTop="true"
a:layout_toLeftOf="@+id/action_button_3" a:background="@drawable/list_selector_holo_dark"
a:padding="5dp" a:scaleType="center" a:showAsAction="ifRoom|withText"
a:src="@drawable/ic_menu_settings" />
</RelativeLayout>

View File

@ -5,13 +5,13 @@
a:background="@drawable/menubar_button_normal">
<LinearLayout a:orientation="horizontal" a:layout_width="fill_parent"
a:layout_height="48dp" a:gravity="center_horizontal">
a:layout_height="48dp" a:gravity="center_horizontal" a:background="@drawable/menubar_button_normal">
<ImageButton a:id="@+id/button_bar_home" a:layout_width="0dp"
a:layout_height="match_parent" a:layout_weight="1"
a:background="@drawable/buttonbar_selector" a:contentDescription="@string/button_bar.home"
a:src="@drawable/ic_menu_home" />
<View a:layout_width="1px" a:layout_height="fill_parent"
<View a:layout_width="1dp" a:layout_height="fill_parent"
a:layout_marginBottom="5dp" a:layout_marginTop="8dp" a:layout_weight="0.01"
a:background="@drawable/bg_separator" />
@ -19,7 +19,7 @@
a:layout_height="match_parent" a:layout_weight="1"
a:background="@drawable/buttonbar_selector" a:contentDescription="@string/button_bar.browse"
a:src="@drawable/ic_menu_browse" />
<View a:layout_width="1px" a:layout_height="fill_parent"
<View a:layout_width="1dp" a:layout_height="fill_parent"
a:layout_marginBottom="5dp" a:layout_marginTop="8dp" a:layout_weight="0.01"
a:background="@drawable/bg_separator" />
@ -27,7 +27,7 @@
a:layout_height="match_parent" a:layout_weight="1"
a:background="@drawable/buttonbar_selector" a:contentDescription="@string/button_bar.search"
a:src="@drawable/ic_menu_search" />
<View a:layout_width="1px" a:layout_height="fill_parent"
<View a:layout_width="1dp" a:layout_height="fill_parent"
a:layout_marginBottom="5dp" a:layout_marginTop="8dp" a:layout_weight="0.01"
a:background="@drawable/bg_separator" />
@ -35,7 +35,7 @@
a:layout_width="0dp" a:layout_height="match_parent" a:layout_weight="1"
a:background="@drawable/buttonbar_selector" a:contentDescription="@string/button_bar.playlists"
a:src="@drawable/ic_menu_playlists" />
<View a:layout_width="1px" a:layout_height="fill_parent"
<View a:layout_width="1dp" a:layout_height="fill_parent"
a:layout_marginBottom="5dp" a:layout_marginTop="8dp" a:layout_weight="0.01"
a:background="@drawable/bg_separator" />

View File

@ -17,7 +17,7 @@
<ListView
a:id="@+id/download_list"
a:layout_width="fill_parent"
a:layout_height="fill_parent"
a:layout_height="0dip"
a:layout_weight="1"
a:cacheColorHint="#00000000"/>

View File

@ -1,42 +1,40 @@
<?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="fill_parent">
<LinearLayout a:id="@+id/help_buttons"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:layout_weight="0"
a:layout_alignParentBottom="true"
a:padding="4dip"
a:gravity="center_horizontal"
a:background="#ffcccccc">
<Button a:id="@+id/help_back"
a:text="@string/help.back"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:layout_marginRight="5dip"
a:paddingLeft="25dip"
a:paddingRight="25dip"/>
<Button a:id="@+id/help_close"
a:text="@string/help.close"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:layout_marginLeft="5dip"
a:paddingLeft="25dip"
a:paddingRight="25dip"/>
</LinearLayout>
<WebView
a:id="@+id/help_contents"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:layout_above="@id/help_buttons"
a:layout_weight="1"
a:fadingEdge="vertical"
a:fadingEdgeLength="12dip"/>
</RelativeLayout>
<?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="fill_parent">
<LinearLayout a:id="@+id/help_buttons"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:layout_alignParentBottom="true"
a:padding="4dip"
a:gravity="center_horizontal"
a:background="@drawable/menubar_button_normal">
<Button a:id="@+id/help_back"
a:text="@string/help.back"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:layout_marginRight="5dip"
a:paddingLeft="25dip"
a:paddingRight="25dip"/>
<Button a:id="@+id/help_close"
a:text="@string/help.close"
a:layout_width="wrap_content"
a:layout_height="fill_parent"
a:layout_marginLeft="5dip"
a:paddingLeft="25dip"
a:paddingRight="25dip"/>
</LinearLayout>
<WebView
a:id="@+id/help_contents"
a:layout_width="fill_parent"
a:layout_height="wrap_content"
a:layout_above="@id/help_buttons"
a:fadingEdge="vertical"
a:fadingEdgeLength="12dip"/>
</RelativeLayout>

View File

@ -4,19 +4,15 @@
a:layout_width="fill_parent"
a:layout_height="fill_parent">
<include
layout="@layout/action_bar"
a:layout_width="fill_parent"/>
<ListView
a:id="@+id/main_list"
a:layout_width="fill_parent"
a:layout_height="0px"
a:layout_height="0dp"
a:layout_weight="1"/>
<View a:id="@+id/main_dummy"
a:layout_width="0px"
a:layout_height="0px"/>
a:layout_width="0dp"
a:layout_height="0dp"/>
<include
layout="@layout/button_bar"

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:a="http://schemas.android.com/apk/res/android"
<?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:id="@+id/main_select_server"
@ -7,8 +8,7 @@
a:minHeight="?android:attr/listPreferredItemHeight">
<ImageView a:layout_width="wrap_content" a:layout_height="wrap_content"
a:layout_gravity="center_vertical" a:src="@drawable/ic_menu_select_artist_folder"
a:contentDescription="TODO" />
a:layout_gravity="center_vertical" a:src="@drawable/ic_menu_select_artist_folder" />
<LinearLayout a:orientation="vertical" a:layout_width="wrap_content"
a:layout_height="wrap_content">
@ -35,7 +35,6 @@
a:layout_width="fill_parent" a:layout_height="wrap_content"
a:textAppearance="?android:attr/textAppearanceMedium" a:gravity="center_vertical"
a:paddingLeft="6dip" a:paddingRight="6dip" a:minHeight="40dip" />
<!-- a:drawableRight="@drawable/list_item_more" a:drawablePadding="6dip" -->
<TextView a:id="@+id/main_albums_recent" a:text="@string/main.albums_recent"
a:layout_width="fill_parent" a:layout_height="wrap_content"

View File

@ -7,6 +7,4 @@
a:gravity="center_vertical"
a:paddingLeft="6dip"
a:paddingRight="6dip"
a:minHeight="50dip"/>
<!-- a:drawableRight="@drawable/list_item_more" a:drawablePadding="6dip"-->
a:minHeight="50dip"/>

View File

@ -4,8 +4,6 @@
a:layout_width="fill_parent"
a:layout_height="fill_parent">
<include layout="@layout/action_bar"/>
<include layout="@layout/tab_progress"/>
<ListView

View File

@ -4,11 +4,9 @@
a:layout_width="fill_parent"
a:layout_height="fill_parent">
<include layout="@layout/action_bar"/>
<View
a:layout_width="fill_parent"
a:layout_height="1px"
a:layout_height="1dp"
a:background="@color/dividerColor"/>
<include layout="@layout/tab_progress"/>

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="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="1px"
a:background="@color/dividerColor"/>
</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="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>

View File

@ -4,8 +4,6 @@
a:layout_width="fill_parent"
a:layout_height="fill_parent">
<include layout="@layout/action_bar"/>
<include layout="@layout/tab_progress"/>
<ListView a:id="@+id/select_artist_list"

View File

@ -4,8 +4,6 @@
a:layout_width="fill_parent"
a:layout_height="fill_parent">
<include layout="@layout/action_bar"/>
<include layout="@layout/tab_progress"/>
<TextView

24
res/menu/common.xml Normal file
View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/menu_exit"
a:icon="@drawable/ic_menu_exit"
a:title="@string/menu.exit"
/>
<item
a:id="@+id/menu_settings"
a:icon="@drawable/ic_menu_settings"
a:title="@string/menu.settings"
/>
<item
a:id="@+id/menu_help"
a:icon="@drawable/ic_menu_help"
a:title="@string/menu.help"
/>
</menu>

View File

@ -1,22 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/menu_exit"
a:icon="@drawable/ic_menu_exit"
a:title="@string/menu.exit"
/>
<item
a:id="@+id/menu_settings"
a:icon="@drawable/ic_menu_settings"
a:title="@string/menu.settings"
/>
<item
a:id="@+id/menu_help"
a:icon="@drawable/ic_menu_help"
a:title="@string/menu.help"
/>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/main_shuffle"
a:showAsAction="ifRoom|withText"
a:icon="@drawable/ic_menu_shuffle"
a:title="@string/main.shuffle"
/>
</menu>

14
res/menu/select_album.xml Normal file
View File

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/select_album_play_all"
a:showAsAction="ifRoom|withText"
a:icon="@drawable/ic_menu_play_all"
a:title="@string/select_album.play_all"
/>
</menu>

View File

@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/album_menu_play_now"
a:title="@string/common.play_now"
/>
<item
a:id="@+id/album_menu_play_last"
a:title="@string/common.play_last"
/>
<item
a:id="@+id/album_menu_pin"
a:title="@string/common.pin"
/>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/album_menu_play_now"
a:title="@string/common.play_now"
/>
<item
a:id="@+id/album_menu_play_last"
a:title="@string/common.play_last"
/>
<item
a:id="@+id/album_menu_pin"
a:title="@string/common.pin"
/>
</menu>

View File

@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/artist_menu_play_now"
a:title="@string/common.play_now"
/>
<item
a:id="@+id/artist_menu_play_last"
a:title="@string/common.play_last"
/>
<item
a:id="@+id/artist_menu_pin"
a:title="@string/common.pin"
/>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/artist_menu_play_now"
a:title="@string/common.play_now"
/>
<item
a:id="@+id/artist_menu_play_last"
a:title="@string/common.play_last"
/>
<item
a:id="@+id/artist_menu_pin"
a:title="@string/common.pin"
/>
</menu>

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android" >
<item
a:id="@+id/menu_refresh"
a:icon="@drawable/ic_menu_refresh"
a:showAsAction="ifRoom|withText"
a:title="@string/select_artist.refresh"/>
</menu>

View File

@ -1,19 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/song_menu_play_now"
a:title="@string/common.play_now"
/>
<item
a:id="@+id/song_menu_play_next"
a:title="@string/common.play_next"
/>
<item
a:id="@+id/song_menu_play_last"
a:title="@string/common.play_last"
/>
</menu>
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:a="http://schemas.android.com/apk/res/android">
<item
a:id="@+id/song_menu_play_now"
a:title="@string/common.play_now"
/>
<item
a:id="@+id/song_menu_play_next"
a:title="@string/common.play_next"
/>
<item
a:id="@+id/song_menu_play_last"
a:title="@string/common.play_last"
/>
</menu>

View File

@ -36,6 +36,7 @@
<string name="menu.exit">Exit</string>
<string name="menu.settings">Settings</string>
<string name="menu.help">Help</string>
<string name="menu.search">Search</string>
<string name="playlist.label">Playlists</string>
@ -44,9 +45,9 @@
<string name="help.back">Back</string>
<string name="help.close">Close</string>
<string name="help.url">file:///android_asset/html/en/index.html</string>
<string name="help.loading">Loading...</string>
<string name="help.loading">Loading&#8230;</string>
<string name="play_video.loading">Loading video...</string>
<string name="play_video.loading">Loading video&#8230;</string>
<string name="play_video.noplugin">Please install Adobe Flash Player from Android Market.</string>
<string name="search.label">Search</string>
@ -58,7 +59,7 @@
<string name="search.songs">Songs</string>
<string name="search.more">Show more</string>
<string name="progress.wait">Please wait...</string>
<string name="progress.wait">Please wait&#8230;</string>
<string name="music_library.label">Media library</string>
<string name="music_library.label_offline">Offline media</string>
@ -69,7 +70,8 @@
<string name="select_album.n_unselected">%d tracks unselected.</string>
<string name="select_album.more">More</string>
<string name="select_album.offline">Offline</string>
<string name="select_album.searching">Searching...</string>
<string name="select_album.searching">Searching&#8230;</string>
<string name="select_album.play_all">Play all</string>
<string name="select_album.no_sdcard">Error: No SD card available.</string>
<string name="select_album.no_network">Warning: No network available.</string>
<string name="select_album.not_licensed">Server not licensed. %d trial days left.</string>
@ -77,6 +79,7 @@
<string name="select_album.donate_dialog_now">Now</string>
<string name="select_album.donate_dialog_later">Later</string>
<string name="select_album.donate_dialog_0_trial_days_left">Trial period is over</string>
<string name="select_playlist.empty">No saved playlists on server</string>
@ -95,7 +98,7 @@
<string name="download.menu_shuffle_notification">Playlist was shuffled</string>
<string name="download.playlist_title">Save playlist</string>
<string name="download.playlist_name">Enter the playlist name:</string>
<string name="download.playlist_saving">Saving playlist \"%s\"...</string>
<string name="download.playlist_saving">Saving playlist \"%s\"&#8230;</string>
<string name="download.playlist_done">Playlist was successfully saved.</string>
<string name="download.playlist_error">Failed to save playlist, please try later.</string>
<string name="download.repeat_off">Repeat off</string>
@ -131,7 +134,7 @@
<string name="settings.cache_size">Cache size</string>
<string name="settings.cache_location">Cache location</string>
<string name="settings.cache_location_error">Invalid cache location. Using default.</string>
<string name="settings.testing_connection">Testing connection...</string>
<string name="settings.testing_connection">Testing connection&#8230;</string>
<string name="settings.testing_ok">Connection is OK</string>
<string name="settings.testing_unlicensed">Connection is OK. Server unlicensed.</string>
<string name="settings.connection_failure">Connection failure.</string>
@ -221,7 +224,7 @@
<string name="music_service.retry">A network error occurred. Retrying %1$d of %2$d.</string>
<string name="background_task.wait">Please wait...</string>
<string name="background_task.wait">Please wait&#8230;</string>
<string name="background_task.loading">Loading.</string>
<string name="background_task.no_network">This program requires network access. Please turn on Wi-Fi or mobile network.</string>
<string name="background_task.network_error">A network error occurred. Please check the server address or try again later.</string>

View File

@ -1,41 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Dark" parent="@android:style/Theme">
<item name="android:listViewStyle">@style/listselect</item>
<item name="android:progressBarStyleHorizontal">@style/customprogress</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:textColorSecondary">@color/cyan</item>
</style>
<style name="Light" parent="@android:style/Theme.Light">
<item name="android:listViewStyle">@style/listselectlight</item>
<item name="android:progressBarStyleHorizontal">@style/customprogress</item>
<item name="android:textColorSecondary">@color/cyan</item>
</style>
<style name="Fullscreen" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<item name="android:listViewStyle">@style/listselect</item>
<item name="android:progressBarStyleHorizontal">@style/customprogress</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:textColorSecondary">@color/cyan</item>
</style>
<style name="Fullscreenlight" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen">
<item name="android:listViewStyle">@style/listselectlight</item>
<item name="android:progressBarStyleHorizontal">@style/customprogress</item>
<item name="android:textColorSecondary">@color/cyan</item>
</style>
<style name="listselect" parent="android:style/Widget.ListView">
<item name="android:listSelector">@drawable/list_selector_holo_dark</item>
</style>
<style name="listselectlight" parent="android:style/Widget.ListView.White">
<item name="android:listSelector">@drawable/list_selector_holo_light</item>
</style>
<style name="customprogress" parent="android:style/Widget.ProgressBar.Horizontal">
<item name="android:progressDrawable">@drawable/progress_horizontal_holo_dark</item>
</style>
</resources>
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Dark" parent="@android:style/Theme">
<item name="android:listViewStyle">@style/listselect</item>
<item name="android:progressBarStyleHorizontal">@style/customprogress</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:textColorSecondary">@color/cyan</item>
</style>
<style name="Light" parent="@android:style/Theme.Light">
<item name="android:listViewStyle">@style/listselectlight</item>
<item name="android:progressBarStyleHorizontal">@style/customprogress</item>
<item name="android:textColorSecondary">@color/cyan</item>
</style>
<style name="Fullscreen" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<item name="android:listViewStyle">@style/listselect</item>
<item name="android:progressBarStyleHorizontal">@style/customprogress</item>
<item name="android:textColorPrimary">@color/white</item>
<item name="android:textColorSecondary">@color/cyan</item>
</style>
<style name="Fullscreenlight" parent="@android:style/Theme.Light.NoTitleBar.Fullscreen">
<item name="android:listViewStyle">@style/listselectlight</item>
<item name="android:progressBarStyleHorizontal">@style/customprogress</item>
<item name="android:textColorSecondary">@color/cyan</item>
</style>
<style name="listselect" parent="android:style/Widget.ListView">
<item name="android:listSelector">@drawable/list_selector_holo_dark</item>
</style>
<style name="listselectlight" parent="android:style/Widget.ListView.White">
<item name="android:listSelector">@drawable/list_selector_holo_light</item>
</style>
<style name="customprogress" parent="android:style/Widget.ProgressBar.Horizontal">
<item name="android:progressDrawable">@drawable/progress_horizontal_holo_dark</item>
</style>
</resources>

View File

@ -46,6 +46,7 @@ import android.view.MenuItem;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
@ -120,8 +121,11 @@ public class DownloadActivity extends SubsonicTabActivity implements OnGestureLi
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().requestFeature(Window.FEATURE_ACTION_BAR_OVERLAY);
setContentView(R.layout.download);
getActionBar().hide();
WindowManager w = getWindowManager();
Display d = w.getDefaultDisplay();
swipeDistance = (d.getWidth() + d.getHeight()) * PERCENTAGE_OF_SCREEN_FOR_SWIPE / 100;
@ -497,6 +501,7 @@ public class DownloadActivity extends SubsonicTabActivity implements OnGestureLi
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.nowplaying, menu);
return true;

View File

@ -21,8 +21,6 @@ package net.sourceforge.subsonic.androidapp.activity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RelativeLayout;
import android.widget.TextView;
import net.sourceforge.subsonic.androidapp.R;
import net.sourceforge.subsonic.androidapp.domain.Lyrics;

View File

@ -22,26 +22,27 @@ package net.sourceforge.subsonic.androidapp.activity;
import java.util.Arrays;
import net.sourceforge.subsonic.androidapp.R;
import net.sourceforge.subsonic.androidapp.domain.Version;
import net.sourceforge.subsonic.androidapp.service.DownloadFile;
import net.sourceforge.subsonic.androidapp.service.DownloadService;
import net.sourceforge.subsonic.androidapp.service.DownloadServiceImpl;
import net.sourceforge.subsonic.androidapp.service.MusicService;
import net.sourceforge.subsonic.androidapp.service.MusicServiceFactory;
import net.sourceforge.subsonic.androidapp.util.Constants;
import net.sourceforge.subsonic.androidapp.util.MergeAdapter;
import net.sourceforge.subsonic.androidapp.util.Util;
import net.sourceforge.subsonic.androidapp.util.FileUtil;
import android.app.ActionBar;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.view.WindowManager;
import android.widget.AdapterView;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
@ -69,7 +70,7 @@ public class MainActivity extends SubsonicTabActivity {
setContentView(R.layout.main);
loadSettings();
View buttons = LayoutInflater.from(this).inflate(R.layout.main_buttons, null);
final View serverButton = buttons.findViewById(R.id.main_select_server);
@ -126,48 +127,6 @@ public class MainActivity extends SubsonicTabActivity {
// Title: Subsonic
setTitle(R.string.common_appname);
// Button 1: shuffle
ImageButton actionShuffleButton = (ImageButton)findViewById(R.id.action_button_1);
actionShuffleButton.setImageResource(R.drawable.ic_menu_shuffle);
actionShuffleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(MainActivity.this, DownloadActivity.class);
intent.putExtra(Constants.INTENT_EXTRA_NAME_SHUFFLE, true);
Util.startActivityWithoutTransition(MainActivity.this, intent);
}
});
// Button 2: settings
ImageButton actionSettingsButton = (ImageButton)findViewById(R.id.action_button_2);
actionSettingsButton.setImageResource(R.drawable.ic_menu_settings);
actionSettingsButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this, SettingsActivity.class));
}
});
// Button 3: help
ImageButton actionHelpButton = (ImageButton)findViewById(R.id.action_button_3);
actionHelpButton.setImageResource(R.drawable.ic_menu_help);
actionHelpButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(MainActivity.this, HelpActivity.class));
}
});
// Button 4: exit
ImageButton actionSearchButton = (ImageButton)findViewById(R.id.action_button_4);
actionSearchButton.setImageResource(R.drawable.ic_menu_exit);
actionSearchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
exit();
}
});
// Remember the current theme.
theme = Util.getTheme(this);
@ -193,6 +152,15 @@ public class MainActivity extends SubsonicTabActivity {
restart();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
@Override
public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) {
@ -220,7 +188,7 @@ public class MainActivity extends SubsonicTabActivity {
break;
}
}
@Override
public boolean onContextItemSelected(MenuItem menuItem) {
switch (menuItem.getItemId()) {
@ -244,7 +212,36 @@ public class MainActivity extends SubsonicTabActivity {
restart();
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.main_shuffle:
Intent intent1 = new Intent(this, DownloadActivity.class);
intent1.putExtra(Constants.INTENT_EXTRA_NAME_SHUFFLE, true);
Util.startActivityWithoutTransition(this, intent1);
return true;
case R.id.menu_exit:
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra(Constants.INTENT_EXTRA_NAME_EXIT, true);
Util.startActivityWithoutTransition(this, intent);
return true;
case R.id.menu_settings:
startActivity(new Intent(this, SettingsActivity.class));
return true;
case R.id.menu_help:
startActivity(new Intent(this, HelpActivity.class));
return true;
}
return false;
}
private void setActiveServer(int instance) {
if (Util.getActiveServer(this) != instance) {
DownloadService service = getDownloadService();

View File

@ -27,6 +27,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.MenuItem;
@ -137,27 +138,15 @@ public class SearchActivity extends SubsonicTabActivity {
registerForContextMenu(list);
// Button 1: gone
findViewById(R.id.action_button_1).setVisibility(View.GONE);
// Button 2: gone
findViewById(R.id.action_button_2).setVisibility(View.GONE);
// Button 3: gone
findViewById(R.id.action_button_3).setVisibility(View.GONE);
// Button 4: search
final ImageButton actionSearchButton = (ImageButton)findViewById(R.id.action_button_4);
actionSearchButton.setImageResource(R.drawable.ic_menu_search);
actionSearchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onSearchRequested();
}
});
onNewIntent(getIntent());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
return true;
}
@Override
protected void onNewIntent(Intent intent) {
@ -198,41 +187,6 @@ public class SearchActivity extends SubsonicTabActivity {
}
}
@Override
public boolean onContextItemSelected(MenuItem menuItem) {
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuItem.getMenuInfo();
Object selectedItem = list.getItemAtPosition(info.position);
Artist artist = selectedItem instanceof Artist ? (Artist) selectedItem : null;
MusicDirectory.Entry entry = selectedItem instanceof MusicDirectory.Entry ? (MusicDirectory.Entry) selectedItem : null;
String id = artist != null ? artist.getId() : entry.getId();
switch (menuItem.getItemId()) {
case R.id.album_menu_play_now:
downloadRecursively(id, false, false, true);
break;
case R.id.album_menu_play_last:
downloadRecursively(id, false, true, false);
break;
case R.id.album_menu_pin:
downloadRecursively(id, true, true, false);
break;
case R.id.song_menu_play_now:
onSongSelected(entry, false, false, true, false);
break;
case R.id.song_menu_play_next:
onSongSelected(entry, false, true, false, true);
break;
case R.id.song_menu_play_last:
onSongSelected(entry, false, true, false, false);
break;
default:
return super.onContextItemSelected(menuItem);
}
return true;
}
private void search(final String query, final boolean autoplay) {
BackgroundTask<SearchResult> task = new TabActivityBackgroundTask<SearchResult>(this) {
@Override

View File

@ -26,9 +26,11 @@ import android.os.Bundle;
import android.util.Log;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ImageButton;
@ -62,9 +64,10 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
private Button unpinButton;
private Button deleteButton;
private Button moreButton;
private ImageView coverArtView;
//private ImageView coverArtView;
private boolean licenseValid;
private ImageButton playAllButton;
private boolean playAllButtonVisible;
private MenuItem playAllButton;
/**
* Called when the activity is first created.
@ -98,7 +101,7 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
});
entryList.setOnTouchListener(gestureListener);
coverArtView = (ImageView) findViewById(R.id.actionbar_home_icon);
//coverArtView = (ImageView) findViewById(R.id.actionbar_home_icon);
selectButton = (Button) findViewById(R.id.select_album_select);
playNowButton = (Button) findViewById(R.id.select_album_play_now);
playLastButton = (Button) findViewById(R.id.select_album_play_last);
@ -169,33 +172,25 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
} else {
getMusicDirectory(id, name);
}
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
playAllButton = menu.findItem(R.id.select_album_play_all);
playAllButton.setVisible(playAllButtonVisible);
// Button 1: gone
findViewById(R.id.action_button_1).setVisibility(View.GONE);
// Button 2: gone
findViewById(R.id.action_button_2).setVisibility(View.GONE);
// Button 3: play all
playAllButton = (ImageButton) findViewById(R.id.action_button_3);
playAllButton.setImageResource(R.drawable.ic_menu_play_all);
playAllButton.setVisibility(View.GONE);
playAllButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
playAll();
}
});
// Button 4: refresh
ImageButton refreshButton = (ImageButton) findViewById(R.id.action_button_4);
refreshButton.setImageResource(R.drawable.ic_menu_refresh);
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
refresh();
}
});
return true;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.select_album, menu);
inflater.inflate(R.menu.select_common, menu);
return true;
}
private void playAll() {
@ -267,11 +262,51 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
case R.id.song_menu_play_last:
getDownloadService().download(songs, false, false, false);
break;
case R.id.select_album_play_all:
playAll();
break;
default:
return super.onContextItemSelected(menuItem);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.main_shuffle:
Intent intent1 = new Intent(this, DownloadActivity.class);
intent1.putExtra(Constants.INTENT_EXTRA_NAME_SHUFFLE, true);
Util.startActivityWithoutTransition(this, intent1);
return true;
case R.id.menu_refresh:
refresh();
return true;
case R.id.select_album_play_all:
playAll();
return true;
case R.id.menu_exit:
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra(Constants.INTENT_EXTRA_NAME_EXIT, true);
Util.startActivityWithoutTransition(this, intent);
return true;
case R.id.menu_settings:
startActivity(new Intent(this, SettingsActivity.class));
return true;
case R.id.menu_help:
startActivity(new Intent(this, HelpActivity.class));
return true;
}
return false;
}
private void getMusicDirectory(final String id, String name) {
setTitle(name);
@ -560,7 +595,7 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
}
if (songCount > 0) {
getImageLoader().loadImage(coverArtView, entries.get(0), false, true);
//getImageLoader().loadImage(coverArtView, entries.get(0), false, true);
entryList.addFooterView(footer);
selectButton.setVisibility(View.VISIBLE);
playNowButton.setVisibility(View.VISIBLE);
@ -568,9 +603,14 @@ public class SelectAlbumActivity extends SubsonicTabActivity {
}
boolean isAlbumList = getIntent().hasExtra(Constants.INTENT_EXTRA_NAME_ALBUM_LIST_TYPE);
playAllButtonVisible = !(isAlbumList || entries.isEmpty());
emptyView.setVisibility(entries.isEmpty() ? View.VISIBLE : View.GONE);
playAllButton.setVisibility(isAlbumList || entries.isEmpty() ? View.GONE : View.VISIBLE);
if (playAllButton != null) {
playAllButton.setVisible(playAllButtonVisible);
}
entryList.setAdapter(new EntryAdapter(SelectAlbumActivity.this, getImageLoader(), entries, true));
licenseValid = result.getSecond();

View File

@ -23,11 +23,11 @@ import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.TextView;
import net.sourceforge.subsonic.androidapp.R;
@ -77,39 +77,19 @@ public class SelectArtistActivity extends SubsonicTabActivity implements Adapter
setTitle(Util.isOffline(this) ? R.string.music_library_label_offline : R.string.music_library_label);
// Button 1: gone
findViewById(R.id.action_button_1).setVisibility(View.GONE);
// Button 2: gone
findViewById(R.id.action_button_2).setVisibility(View.GONE);
// Button 3: shuffle
ImageButton shuffleButton = (ImageButton) findViewById(R.id.action_button_3);
shuffleButton.setImageResource(R.drawable.ic_menu_shuffle);
shuffleButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(SelectArtistActivity.this, DownloadActivity.class);
intent.putExtra(Constants.INTENT_EXTRA_NAME_SHUFFLE, true);
Util.startActivityWithoutTransition(SelectArtistActivity.this, intent);
}
});
// Button 4: refresh
ImageButton refreshButton = (ImageButton) findViewById(R.id.action_button_4);
refreshButton.setImageResource(R.drawable.ic_menu_refresh);
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
refresh();
}
});
musicFolders = null;
load();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
inflater.inflate(R.menu.select_common, menu);
return true;
}
private void refresh() {
finish();
@ -234,4 +214,37 @@ public class SelectArtistActivity extends SubsonicTabActivity implements Adapter
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_refresh:
refresh();
return true;
case R.id.main_shuffle:
Intent intent = new Intent(this, DownloadActivity.class);
intent.putExtra(Constants.INTENT_EXTRA_NAME_SHUFFLE, true);
Util.startActivityWithoutTransition(this, intent);
return true;
case R.id.menu_exit:
Intent intent1 = new Intent(this, MainActivity.class);
intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent1.putExtra(Constants.INTENT_EXTRA_NAME_EXIT, true);
Util.startActivityWithoutTransition(this, intent1);
return true;
case R.id.menu_settings:
startActivity(new Intent(this, SettingsActivity.class));
return true;
case R.id.menu_help:
startActivity(new Intent(this, HelpActivity.class));
return true;
}
return false;
}
}

View File

@ -23,6 +23,7 @@ import android.content.Intent;
import android.os.Bundle;
import android.view.ContextMenu;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
@ -61,27 +62,17 @@ public class SelectPlaylistActivity extends SubsonicTabActivity implements Adapt
// Title: Playlists
setTitle(R.string.playlist_label);
// Button 1: gone
findViewById(R.id.action_button_1).setVisibility(View.GONE);
// Button 2: gone
findViewById(R.id.action_button_2).setVisibility(View.GONE);
// Button 3: gone
findViewById(R.id.action_button_3).setVisibility(View.GONE);
// Button 4: refresh
ImageButton refreshButton = (ImageButton) findViewById(R.id.action_button_4);
refreshButton.setImageResource(R.drawable.ic_menu_refresh);
refreshButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
refresh();
}
});
load();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.select_common, menu);
return true;
}
private void refresh() {
finish();
@ -132,6 +123,33 @@ public class SelectPlaylistActivity extends SubsonicTabActivity implements Adapt
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_refresh:
refresh();
return true;
case R.id.menu_exit:
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra(Constants.INTENT_EXTRA_NAME_EXIT, true);
Util.startActivityWithoutTransition(this, intent);
return true;
case R.id.menu_settings:
startActivity(new Intent(this, SettingsActivity.class));
return true;
case R.id.menu_help:
startActivity(new Intent(this, HelpActivity.class));
return true;
}
return false;
}
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

View File

@ -27,7 +27,6 @@ import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageInfo;
import android.graphics.Typeface;
import android.media.AudioManager;
import android.os.Build;
import android.os.Bundle;
@ -43,9 +42,7 @@ import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.view.animation.TranslateAnimation;
import android.widget.TextView;
import android.widget.Toast;
import net.sourceforge.subsonic.androidapp.R;
import net.sourceforge.subsonic.androidapp.domain.MusicDirectory;
import net.sourceforge.subsonic.androidapp.service.DownloadService;
@ -82,13 +79,21 @@ public class SubsonicTabActivity extends Activity implements OnClickListener{
Left,
Right
};
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.common, menu);
return true;
}
@Override
protected void onCreate(Bundle bundle) {
setUncaughtExceptionHandler();
applyTheme();
super.onCreate(bundle);
requestWindowFeature(Window.FEATURE_NO_TITLE);
startService(new Intent(this, DownloadServiceImpl.class));
setVolumeControlStream(AudioManager.STREAM_MUSIC);
@ -174,15 +179,6 @@ public class SubsonicTabActivity extends Activity implements OnClickListener{
Util.registerMediaButtonEventReceiver(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
if (android.os.Build.VERSION.SDK_INT < 11) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
}
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
@ -234,23 +230,6 @@ public class SubsonicTabActivity extends Activity implements OnClickListener{
Util.disablePendingTransition(this);
}
@Override
public void setTitle(CharSequence title) {
super.setTitle(title);
// Set the font of title in the action bar.
TextView text = (TextView) findViewById(R.id.actionbar_title_text);
Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/Roboto-Regular.ttf");
text.setTypeface(typeface);
text.setText(title);
}
@Override
public void setTitle(int titleId) {
setTitle(getString(titleId));
}
private void applyTheme() {
String theme = Util.getTheme(this);
if ("dark".equals(theme)) {

View File

@ -1,90 +1,88 @@
/*
This file is part of Subsonic.
Subsonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Subsonic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2011 (C) Sindre Mehus
*/
package net.sourceforge.subsonic.androidapp.audiofx;
import android.content.Context;
import android.media.MediaPlayer;
import android.media.audiofx.Visualizer;
import android.util.Log;
/**
* Backward-compatible wrapper for {@link Visualizer}, which is API Level 9.
*
* @author Sindre Mehus
* @version $Id$
*/
public class VisualizerController {
private static final String TAG = VisualizerController.class.getSimpleName();
private static final int PREFERRED_CAPTURE_SIZE = 128; // Must be a power of two.
private final Context context;
private Visualizer visualizer;
// Class initialization fails when this throws an exception.
static {
try {
Class.forName("android.media.audiofx.Visualizer");
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
/**
* Throws an exception if the {@link Visualizer} class is not available.
*/
public static void checkAvailable() throws Throwable {
// Calling here forces class initialization.
}
public VisualizerController(Context context, MediaPlayer mediaPlayer) {
this.context = context;
try {
visualizer = new Visualizer(mediaPlayer.getAudioSessionId());
} catch (Throwable x) {
Log.w(TAG, "Failed to create visualizer.", x);
}
if (visualizer != null) {
int[] captureSizeRange = Visualizer.getCaptureSizeRange();
int captureSize = Math.max(PREFERRED_CAPTURE_SIZE, captureSizeRange[0]);
captureSize = Math.min(captureSize, captureSizeRange[1]);
visualizer.setCaptureSize(captureSize);
}
}
public boolean isAvailable() {
return visualizer != null;
}
public boolean isEnabled() {
return isAvailable() && visualizer.getEnabled();
}
public void release() {
if (isAvailable()) {
visualizer.release();
}
}
public Visualizer getVisualizer() {
return visualizer;
}
}
/*
This file is part of Subsonic.
Subsonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Subsonic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2011 (C) Sindre Mehus
*/
package net.sourceforge.subsonic.androidapp.audiofx;
import android.content.Context;
import android.media.MediaPlayer;
import android.media.audiofx.Visualizer;
import android.util.Log;
/**
* Backward-compatible wrapper for {@link Visualizer}, which is API Level 9.
*
* @author Sindre Mehus
* @version $Id$
*/
public class VisualizerController {
private static final String TAG = VisualizerController.class.getSimpleName();
private static final int PREFERRED_CAPTURE_SIZE = 128; // Must be a power of two.
private Visualizer visualizer;
// Class initialization fails when this throws an exception.
static {
try {
Class.forName("android.media.audiofx.Visualizer");
} catch (Exception ex) {
throw new RuntimeException(ex);
}
}
/**
* Throws an exception if the {@link Visualizer} class is not available.
*/
public static void checkAvailable() throws Throwable {
// Calling here forces class initialization.
}
public VisualizerController(Context context, MediaPlayer mediaPlayer) {
try {
visualizer = new Visualizer(mediaPlayer.getAudioSessionId());
} catch (Throwable x) {
Log.w(TAG, "Failed to create visualizer.", x);
}
if (visualizer != null) {
int[] captureSizeRange = Visualizer.getCaptureSizeRange();
int captureSize = Math.max(PREFERRED_CAPTURE_SIZE, captureSizeRange[0]);
captureSize = Math.min(captureSize, captureSizeRange[1]);
visualizer.setCaptureSize(captureSize);
}
}
public boolean isAvailable() {
return visualizer != null;
}
public boolean isEnabled() {
return isAvailable() && visualizer.getEnabled();
}
public void release() {
if (isAvailable()) {
visualizer.release();
}
}
public Visualizer getVisualizer() {
return visualizer;
}
}

View File

@ -1,69 +1,68 @@
/*
This file is part of Subsonic.
Subsonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Subsonic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2009 (C) Sindre Mehus
*/
package net.sourceforge.subsonic.androidapp.service.parser;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.content.Context;
import net.sourceforge.subsonic.androidapp.R;
import net.sourceforge.subsonic.androidapp.domain.MusicFolder;
import net.sourceforge.subsonic.androidapp.domain.Playlist;
import net.sourceforge.subsonic.androidapp.util.ProgressListener;
/**
* @author Sindre Mehus
*/
public class MusicFoldersParser extends AbstractParser {
public MusicFoldersParser(Context context) {
super(context);
}
public List<MusicFolder> parse(Reader reader, ProgressListener progressListener) throws Exception {
updateProgress(progressListener, R.string.parser_reading);
init(reader);
List<MusicFolder> result = new ArrayList<MusicFolder>();
int eventType;
do {
eventType = nextParseEvent();
if (eventType == XmlPullParser.START_TAG) {
String tag = getElementName();
if ("musicFolder".equals(tag)) {
String id = get("id");
String name = get("name");
result.add(new MusicFolder(id, name));
} else if ("error".equals(tag)) {
handleError();
}
}
} while (eventType != XmlPullParser.END_DOCUMENT);
validate();
updateProgress(progressListener, R.string.parser_reading_done);
return result;
}
/*
This file is part of Subsonic.
Subsonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Subsonic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2009 (C) Sindre Mehus
*/
package net.sourceforge.subsonic.androidapp.service.parser;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlPullParser;
import android.content.Context;
import net.sourceforge.subsonic.androidapp.R;
import net.sourceforge.subsonic.androidapp.domain.MusicFolder;
import net.sourceforge.subsonic.androidapp.util.ProgressListener;
/**
* @author Sindre Mehus
*/
public class MusicFoldersParser extends AbstractParser {
public MusicFoldersParser(Context context) {
super(context);
}
public List<MusicFolder> parse(Reader reader, ProgressListener progressListener) throws Exception {
updateProgress(progressListener, R.string.parser_reading);
init(reader);
List<MusicFolder> result = new ArrayList<MusicFolder>();
int eventType;
do {
eventType = nextParseEvent();
if (eventType == XmlPullParser.START_TAG) {
String tag = getElementName();
if ("musicFolder".equals(tag)) {
String id = get("id");
String name = get("name");
result.add(new MusicFolder(id, name));
} else if ("error".equals(tag)) {
handleError();
}
}
} while (eventType != XmlPullParser.END_DOCUMENT);
validate();
updateProgress(progressListener, R.string.parser_reading_done);
return result;
}
}

View File

@ -18,14 +18,12 @@
*/
package net.sourceforge.subsonic.androidapp.util;
import static net.sourceforge.subsonic.androidapp.domain.PlayerState.PAUSED;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.app.Service;
import android.appwidget.AppWidgetProvider;
import android.content.ComponentName;
import android.content.Context;
import android.content.DialogInterface;

View File

@ -1,132 +1,131 @@
/*
This file is part of Subsonic.
Subsonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Subsonic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2011 (C) Sindre Mehus
*/
package net.sourceforge.subsonic.androidapp.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.media.audiofx.Visualizer;
import android.util.AttributeSet;
import android.view.View;
import net.sourceforge.subsonic.androidapp.audiofx.VisualizerController;
import net.sourceforge.subsonic.androidapp.domain.PlayerState;
import net.sourceforge.subsonic.androidapp.service.DownloadService;
import net.sourceforge.subsonic.androidapp.service.DownloadServiceImpl;
/**
* A simple class that draws waveform data received from a
* {@link Visualizer.OnDataCaptureListener#onWaveFormDataCapture}
*
* @author Sindre Mehus
* @version $Id$
*/
public class VisualizerView extends View {
private static final int PREFERRED_CAPTURE_RATE_MILLIHERTZ = 20000;
private final Paint paint = new Paint();
private byte[] data;
private float[] points;
private boolean active;
public VisualizerView(Context context) {
super(context);
paint.setStrokeWidth(2f);
paint.setAntiAlias(true);
paint.setColor(Color.rgb(0, 153, 204));
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
Visualizer visualizer = getVizualiser();
if (visualizer == null) {
return;
}
int captureRate = Math.min(PREFERRED_CAPTURE_RATE_MILLIHERTZ, Visualizer.getMaxCaptureRate());
if (active) {
visualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
@Override
public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
updateVisualizer(waveform);
}
@Override
public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {
}
}, captureRate, true, false);
} else {
visualizer.setDataCaptureListener(null, captureRate, false, false);
}
visualizer.setEnabled(active);
invalidate();
}
private Visualizer getVizualiser() {
DownloadService downloadService = DownloadServiceImpl.getInstance();
VisualizerController visualizerController = downloadService == null ? null : downloadService.getVisualizerController();
return visualizerController == null ? null : visualizerController.getVisualizer();
}
private void updateVisualizer(byte[] waveform) {
this.data = waveform;
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (!active) {
return;
}
DownloadService downloadService = DownloadServiceImpl.getInstance();
if (downloadService != null && downloadService.getPlayerState() != PlayerState.STARTED) {
return;
}
if (data == null) {
return;
}
if (points == null || points.length < data.length * 4) {
points = new float[data.length * 4];
}
int w = getWidth();
int h = getHeight();
for (int i = 0; i < data.length - 1; i++) {
points[i * 4] = w * i / (data.length - 1);
points[i * 4 + 1] = h / 2 + ((byte) (data[i] + 128)) * (h / 2) / 128;
points[i * 4 + 2] = w * (i + 1) / (data.length - 1);
points[i * 4 + 3] = h / 2 + ((byte) (data[i + 1] + 128)) * (h / 2) / 128;
}
canvas.drawLines(points, paint);
}
}
/*
This file is part of Subsonic.
Subsonic is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Subsonic is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with Subsonic. If not, see <http://www.gnu.org/licenses/>.
Copyright 2011 (C) Sindre Mehus
*/
package net.sourceforge.subsonic.androidapp.view;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.media.audiofx.Visualizer;
import android.view.View;
import net.sourceforge.subsonic.androidapp.audiofx.VisualizerController;
import net.sourceforge.subsonic.androidapp.domain.PlayerState;
import net.sourceforge.subsonic.androidapp.service.DownloadService;
import net.sourceforge.subsonic.androidapp.service.DownloadServiceImpl;
/**
* A simple class that draws waveform data received from a
* {@link Visualizer.OnDataCaptureListener#onWaveFormDataCapture}
*
* @author Sindre Mehus
* @version $Id$
*/
public class VisualizerView extends View {
private static final int PREFERRED_CAPTURE_RATE_MILLIHERTZ = 20000;
private final Paint paint = new Paint();
private byte[] data;
private float[] points;
private boolean active;
public VisualizerView(Context context) {
super(context);
paint.setStrokeWidth(2f);
paint.setAntiAlias(true);
paint.setColor(Color.rgb(0, 153, 204));
}
public boolean isActive() {
return active;
}
public void setActive(boolean active) {
this.active = active;
Visualizer visualizer = getVizualiser();
if (visualizer == null) {
return;
}
int captureRate = Math.min(PREFERRED_CAPTURE_RATE_MILLIHERTZ, Visualizer.getMaxCaptureRate());
if (active) {
visualizer.setDataCaptureListener(new Visualizer.OnDataCaptureListener() {
@Override
public void onWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate) {
updateVisualizer(waveform);
}
@Override
public void onFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate) {
}
}, captureRate, true, false);
} else {
visualizer.setDataCaptureListener(null, captureRate, false, false);
}
visualizer.setEnabled(active);
invalidate();
}
private Visualizer getVizualiser() {
DownloadService downloadService = DownloadServiceImpl.getInstance();
VisualizerController visualizerController = downloadService == null ? null : downloadService.getVisualizerController();
return visualizerController == null ? null : visualizerController.getVisualizer();
}
private void updateVisualizer(byte[] waveform) {
this.data = waveform;
invalidate();
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (!active) {
return;
}
DownloadService downloadService = DownloadServiceImpl.getInstance();
if (downloadService != null && downloadService.getPlayerState() != PlayerState.STARTED) {
return;
}
if (data == null) {
return;
}
if (points == null || points.length < data.length * 4) {
points = new float[data.length * 4];
}
int w = getWidth();
int h = getHeight();
for (int i = 0; i < data.length - 1; i++) {
points[i * 4] = w * i / (data.length - 1);
points[i * 4 + 1] = h / 2 + ((byte) (data[i] + 128)) * (h / 2) / 128;
points[i * 4 + 2] = w * (i + 1) / (data.length - 1);
points[i * 4 + 3] = h / 2 + ((byte) (data[i + 1] + 128)) * (h / 2) / 128;
}
canvas.drawLines(points, paint);
}
}