From c73c8a2cd5feb29335835393addab95a5fdd1337 Mon Sep 17 00:00:00 2001 From: Joshua Bahnsen Date: Thu, 10 Jan 2013 23:33:52 -0700 Subject: [PATCH] Add search settings, fix broken search context menu --- .../sourceforge/subsonic/androidapp/R.java | 169 ++++++++++-------- res/menu/common.xml | 12 +- res/values/arrays.xml | 44 +++++ res/values/strings.xml | 22 ++- res/xml/settings.xml | 47 +++-- .../androidapp/activity/DownloadActivity.java | 2 +- .../androidapp/activity/MainActivity.java | 2 +- .../androidapp/activity/SearchActivity.java | 45 ++++- .../activity/SelectAlbumActivity.java | 5 +- .../activity/SelectArtistActivity.java | 3 +- .../activity/SelectPlaylistActivity.java | 2 +- .../androidapp/activity/SettingsActivity.java | 6 + .../subsonic/androidapp/util/Constants.java | 2 + .../subsonic/androidapp/util/Util.java | 10 ++ 14 files changed, 267 insertions(+), 104 deletions(-) diff --git a/gen/net/sourceforge/subsonic/androidapp/R.java b/gen/net/sourceforge/subsonic/androidapp/R.java index 34711c55..f494f418 100644 --- a/gen/net/sourceforge/subsonic/androidapp/R.java +++ b/gen/net/sourceforge/subsonic/androidapp/R.java @@ -21,8 +21,12 @@ public final class R { public static final int cacheSizeValues=0x7f060004; public static final int maxAlbumsNames=0x7f06000d; public static final int maxAlbumsValues=0x7f06000c; + public static final int maxArtistsNames=0x7f060011; + public static final int maxArtistsValues=0x7f060010; public static final int maxBitrateNames=0x7f060007; public static final int maxBitrateValues=0x7f060006; + public static final int maxSongsNames=0x7f06000f; + public static final int maxSongsValues=0x7f06000e; public static final int networkTimeoutNames=0x7f06000b; public static final int networkTimeoutValues=0x7f06000a; public static final int preloadCountNames=0x7f060003; @@ -218,8 +222,8 @@ public final class R { 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_exit=0x7f0d007b; + public static final int menu_help=0x7f0d007a; public static final int menu_lyrics=0x7f0d0082; public static final int menu_refresh=0x7f0d008b; public static final int menu_remove=0x7f0d0083; @@ -227,7 +231,7 @@ public final class R { public static final int menu_save_playlist=0x7f0d007e; public static final int menu_screen_on_off=0x7f0d0080; public static final int menu_selector=0x7f0d001e; - public static final int menu_settings=0x7f0d007a; + public static final int menu_settings=0x7f0d0079; public static final int menu_show_album=0x7f0d0081; public static final int menu_shuffle=0x7f0d0084; public static final int notification_image=0x7f0d0049; @@ -337,12 +341,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=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 background_task_loading=0x7f0900e0; + public static final int background_task_network_error=0x7f0900e2; + public static final int background_task_no_network=0x7f0900e1; + public static final int background_task_not_found=0x7f0900e3; + public static final int background_task_parse_error=0x7f0900e4; + public static final int background_task_wait=0x7f0900df; 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; @@ -387,9 +391,9 @@ public final class R { 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 equalizer_enabled=0x7f0900f1; + public static final int equalizer_label=0x7f0900f0; + public static final int equalizer_preset=0x7f0900f2; public static final int error_label=0x7f090064; public static final int help_back=0x7f090023; public static final int help_close=0x7f090024; @@ -420,14 +424,14 @@ public final class R { /** TODO: Keep screen on TODO: Keeping the screen on when downloading may improve download speed */ - public static final int music_service_retry=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 music_service_retry=0x7f0900de; + public static final int parser_artist_count=0x7f0900ec; + public static final int parser_not_authenticated=0x7f0900ea; + public static final int parser_not_authorized=0x7f0900eb; + public static final int parser_reading=0x7f0900e6; + public static final int parser_reading_done=0x7f0900e7; + public static final int parser_upgrade_client=0x7f0900e8; + public static final int parser_upgrade_server=0x7f0900e9; public static final int play_video_loading=0x7f090027; public static final int play_video_noplugin=0x7f090028; /** TODO: Exit @@ -462,21 +466,21 @@ public final class R { 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_artist_all_folders=0x7f0900ef; + public static final int select_artist_folder=0x7f0900ee; + public static final int select_artist_refresh=0x7f0900ed; public static final int select_playlist_empty=0x7f090043; - public static final int service_connecting=0x7f0900d0; + public static final int service_connecting=0x7f0900e5; 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_buffer_length=0x7f0900ab; + public static final int settings_buffer_length_10=0x7f0900b0; + public static final int settings_buffer_length_12=0x7f0900b1; + public static final int settings_buffer_length_15=0x7f0900b2; + public static final int settings_buffer_length_2=0x7f0900ad; + public static final int settings_buffer_length_20=0x7f0900b3; + public static final int settings_buffer_length_30=0x7f0900b4; + public static final int settings_buffer_length_5=0x7f0900ae; + public static final int settings_buffer_length_8=0x7f0900af; 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; @@ -492,25 +496,35 @@ public final class R { 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; + public static final int settings_hide_media_summary=0x7f0900a5; /** TODO: Scrobble to Last.fm TODO: Remember to set up your Last.fm user and password on the Subsonic server */ - public static final int settings_hide_media_title=0x7f0900a3; - public static final int settings_hide_media_toast=0x7f0900a5; + public static final int settings_hide_media_title=0x7f0900a4; + public static final int settings_hide_media_toast=0x7f0900a6; 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_albums=0x7f0900bf; + public static final int settings_max_albums_10=0x7f0900c2; + public static final int settings_max_albums_100=0x7f0900c7; + public static final int settings_max_albums_20=0x7f0900c3; + public static final int settings_max_albums_250=0x7f0900c8; + public static final int settings_max_albums_30=0x7f0900c4; + public static final int settings_max_albums_40=0x7f0900c5; + public static final int settings_max_albums_5=0x7f0900c1; + public static final int settings_max_albums_50=0x7f0900c6; + public static final int settings_max_albums_500=0x7f0900c9; + public static final int settings_max_albums_summary=0x7f0900c0; + public static final int settings_max_artists=0x7f0900d4; + public static final int settings_max_artists_10=0x7f0900d7; + public static final int settings_max_artists_100=0x7f0900db; + public static final int settings_max_artists_200=0x7f0900dc; + public static final int settings_max_artists_25=0x7f0900d8; + public static final int settings_max_artists_5=0x7f0900d6; + public static final int settings_max_artists_50=0x7f0900d9; + public static final int settings_max_artists_500=0x7f0900dd; + public static final int settings_max_artists_75=0x7f0900da; + public static final int settings_max_artists_summary=0x7f0900d5; 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; @@ -524,17 +538,27 @@ public final class R { 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_max_songs=0x7f0900ca; + public static final int settings_max_songs_10=0x7f0900cd; + public static final int settings_max_songs_100=0x7f0900d1; + public static final int settings_max_songs_200=0x7f0900d2; + public static final int settings_max_songs_25=0x7f0900ce; + public static final int settings_max_songs_5=0x7f0900cc; + public static final int settings_max_songs_50=0x7f0900cf; + public static final int settings_max_songs_500=0x7f0900d3; + public static final int settings_max_songs_75=0x7f0900d0; + public static final int settings_max_songs_summary=0x7f0900cb; + public static final int settings_media_button_summary=0x7f0900a8; + public static final int settings_media_button_title=0x7f0900a7; + public static final int settings_network_timeout=0x7f0900ac; + public static final int settings_network_timeout_105000=0x7f0900bb; + public static final int settings_network_timeout_120000=0x7f0900bc; + public static final int settings_network_timeout_15000=0x7f0900b5; + public static final int settings_network_timeout_30000=0x7f0900b6; + public static final int settings_network_timeout_45000=0x7f0900b7; + public static final int settings_network_timeout_60000=0x7f0900b8; + public static final int settings_network_timeout_75000=0x7f0900b9; + public static final int settings_network_timeout_90000=0x7f0900ba; public static final int settings_network_title=0x7f09007f; public static final int settings_other_title=0x7f0900a0; public static final int settings_preload=0x7f09006f; @@ -544,11 +568,12 @@ public final class R { 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_screen_lit_summary=0x7f0900aa; + public static final int settings_screen_lit_title=0x7f0900a9; + public static final int settings_scrobble_summary=0x7f0900a3; + public static final int settings_scrobble_title=0x7f0900a2; public static final int settings_search_history_cleared=0x7f09009f; + public static final int settings_search_title=0x7f0900a1; public static final int settings_server_address=0x7f09006b; public static final int settings_server_name=0x7f09006a; public static final int settings_server_password=0x7f09006d; @@ -556,8 +581,8 @@ public final class R { 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_show_notification=0x7f0900bd; + public static final int settings_show_notification_summary=0x7f0900be; 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; @@ -567,19 +592,19 @@ public final class R { 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_theme_wheat=0x7f0900fa; 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 int util_bytes_format_byte=0x7f0900f9; + public static final int util_bytes_format_gigabyte=0x7f0900f6; + public static final int util_bytes_format_kilobyte=0x7f0900f8; + public static final int util_bytes_format_megabyte=0x7f0900f7; + public static final int widget_initial_text=0x7f0900f3; + public static final int widget_sdcard_busy=0x7f0900f4; + public static final int widget_sdcard_missing=0x7f0900f5; } public static final class style { public static final int Dark=0x7f0b0000; diff --git a/res/menu/common.xml b/res/menu/common.xml index f55b1746..52364e25 100644 --- a/res/menu/common.xml +++ b/res/menu/common.xml @@ -1,12 +1,6 @@ - - + + diff --git a/res/values/arrays.xml b/res/values/arrays.xml index 9fe757c3..aac1a758 100644 --- a/res/values/arrays.xml +++ b/res/values/arrays.xml @@ -152,5 +152,49 @@ @string/settings.max_albums_250 @string/settings.max_albums_500 + + + 5 + 10 + 25 + 50 + 75 + 100 + 200 + 500 + + + + @string/settings.max_songs_5 + @string/settings.max_songs_10 + @string/settings.max_songs_25 + @string/settings.max_songs_50 + @string/settings.max_songs_75 + @string/settings.max_songs_100 + @string/settings.max_songs_200 + @string/settings.max_songs_500 + + + + 5 + 10 + 25 + 50 + 75 + 100 + 200 + 500 + + + + @string/settings.max_artists_5 + @string/settings.max_artists_10 + @string/settings.max_artists_25 + @string/settings.max_artists_50 + @string/settings.max_artists_75 + @string/settings.max_artists_100 + @string/settings.max_artists_200 + @string/settings.max_artists_500 + diff --git a/res/values/strings.xml b/res/values/strings.xml index ab78fb65..4fdbfa4d 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -180,6 +180,7 @@ Clear search history Search history cleared Other settings + Search settings Scrobble to Last.fm Remember to set up your Last.fm user and password on the Subsonic server Hide from other @@ -220,8 +221,27 @@ 100 250 500 + Max Songs + Number of songs to return + 5 + 10 + 25 + 50 + 75 + 100 + 200 + 500 + Max Artists + Number of artists to return + 5 + 10 + 25 + 50 + 75 + 100 + 200 + 500 - A network error occurred. Retrying %1$d of %2$d. Please wait… diff --git a/res/xml/settings.xml b/res/xml/settings.xml index 820475a8..89809b87 100644 --- a/res/xml/settings.xml +++ b/res/xml/settings.xml @@ -177,6 +177,40 @@ + + + + + + + + + + + + @@ -209,19 +243,6 @@ a:summary="@string/settings.show_notification_summary" a:key="showNotification" a:defaultValue="true"/> - - - - diff --git a/src/net/sourceforge/subsonic/androidapp/activity/DownloadActivity.java b/src/net/sourceforge/subsonic/androidapp/activity/DownloadActivity.java index e42e9e53..e9e1c997 100644 --- a/src/net/sourceforge/subsonic/androidapp/activity/DownloadActivity.java +++ b/src/net/sourceforge/subsonic/androidapp/activity/DownloadActivity.java @@ -497,9 +497,9 @@ 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); + super.onCreateOptionsMenu(menu); return true; } diff --git a/src/net/sourceforge/subsonic/androidapp/activity/MainActivity.java b/src/net/sourceforge/subsonic/androidapp/activity/MainActivity.java index 3c69a538..647e57b7 100644 --- a/src/net/sourceforge/subsonic/androidapp/activity/MainActivity.java +++ b/src/net/sourceforge/subsonic/androidapp/activity/MainActivity.java @@ -155,9 +155,9 @@ public class MainActivity extends SubsonicTabActivity { @Override public boolean onCreateOptionsMenu(Menu menu) { - super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.main, menu); + super.onCreateOptionsMenu(menu); return true; } diff --git a/src/net/sourceforge/subsonic/androidapp/activity/SearchActivity.java b/src/net/sourceforge/subsonic/androidapp/activity/SearchActivity.java index de4346c5..6201965b 100644 --- a/src/net/sourceforge/subsonic/androidapp/activity/SearchActivity.java +++ b/src/net/sourceforge/subsonic/androidapp/activity/SearchActivity.java @@ -64,9 +64,6 @@ public class SearchActivity extends SubsonicTabActivity { private static final int DEFAULT_ALBUMS = 5; private static final int DEFAULT_SONGS = 10; - private static final int MAX_ARTISTS = 10; - private static final int MAX_ALBUMS = 20; - private static final int MAX_SONGS = 25; private ListView list; private View artistsHeading; @@ -169,7 +166,6 @@ public class SearchActivity extends SubsonicTabActivity { @Override public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, view, menuInfo); - AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; Object selectedItem = list.getItemAtPosition(info.position); @@ -187,11 +183,50 @@ 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) { + final int maxArtists = Util.getMaxArtists(this); + final int maxAlbums = Util.getMaxAlbums(this); + final int maxSongs = Util.getMaxSongs(this); + BackgroundTask task = new TabActivityBackgroundTask(this) { @Override protected SearchResult doInBackground() throws Throwable { - SearchCritera criteria = new SearchCritera(query, MAX_ARTISTS, MAX_ALBUMS, MAX_SONGS); + SearchCritera criteria = new SearchCritera(query, maxArtists, maxAlbums, maxSongs); MusicService service = MusicServiceFactory.getMusicService(SearchActivity.this); return service.search(criteria, SearchActivity.this, this); } diff --git a/src/net/sourceforge/subsonic/androidapp/activity/SelectAlbumActivity.java b/src/net/sourceforge/subsonic/androidapp/activity/SelectAlbumActivity.java index d3dc0812..e0dbd942 100644 --- a/src/net/sourceforge/subsonic/androidapp/activity/SelectAlbumActivity.java +++ b/src/net/sourceforge/subsonic/androidapp/activity/SelectAlbumActivity.java @@ -185,10 +185,10 @@ public class SelectAlbumActivity extends SubsonicTabActivity { @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); + super.onCreateOptionsMenu(menu); return true; } @@ -223,8 +223,7 @@ public class SelectAlbumActivity extends SubsonicTabActivity { @Override public void onCreateContextMenu(ContextMenu menu, View view, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, view, menuInfo); - AdapterView.AdapterContextMenuInfo info = - (AdapterView.AdapterContextMenuInfo) menuInfo; + AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; MusicDirectory.Entry entry = (MusicDirectory.Entry) entryList.getItemAtPosition(info.position); diff --git a/src/net/sourceforge/subsonic/androidapp/activity/SelectArtistActivity.java b/src/net/sourceforge/subsonic/androidapp/activity/SelectArtistActivity.java index 7a5ba011..b68927cb 100644 --- a/src/net/sourceforge/subsonic/androidapp/activity/SelectArtistActivity.java +++ b/src/net/sourceforge/subsonic/androidapp/activity/SelectArtistActivity.java @@ -83,10 +83,10 @@ public class SelectArtistActivity extends SubsonicTabActivity implements Adapter @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); + super.onCreateOptionsMenu(menu); return true; } @@ -178,6 +178,7 @@ public class SelectArtistActivity extends SubsonicTabActivity implements Adapter } } } + menu.setGroupCheckable(MENU_GROUP_MUSIC_FOLDER, true, true); } } diff --git a/src/net/sourceforge/subsonic/androidapp/activity/SelectPlaylistActivity.java b/src/net/sourceforge/subsonic/androidapp/activity/SelectPlaylistActivity.java index 68ff6f4a..1e231cbd 100644 --- a/src/net/sourceforge/subsonic/androidapp/activity/SelectPlaylistActivity.java +++ b/src/net/sourceforge/subsonic/androidapp/activity/SelectPlaylistActivity.java @@ -67,9 +67,9 @@ public class SelectPlaylistActivity extends SubsonicTabActivity implements Adapt @Override public boolean onCreateOptionsMenu(Menu menu) { - super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.select_common, menu); + super.onCreateOptionsMenu(menu); return true; } diff --git a/src/net/sourceforge/subsonic/androidapp/activity/SettingsActivity.java b/src/net/sourceforge/subsonic/androidapp/activity/SettingsActivity.java index 8eb288a1..08ce5ff6 100644 --- a/src/net/sourceforge/subsonic/androidapp/activity/SettingsActivity.java +++ b/src/net/sourceforge/subsonic/androidapp/activity/SettingsActivity.java @@ -58,6 +58,8 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer private ListPreference bufferLength; private ListPreference networkTimeout; private ListPreference maxAlbums; + private ListPreference maxSongs; + private ListPreference maxArtists; @Override public void onCreate(Bundle savedInstanceState) { @@ -73,6 +75,8 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer bufferLength = (ListPreference) findPreference(Constants.PREFERENCES_KEY_BUFFER_LENGTH); networkTimeout = (ListPreference) findPreference(Constants.PREFERENCES_KEY_NETWORK_TIMEOUT); maxAlbums = (ListPreference) findPreference(Constants.PREFERENCES_KEY_MAX_ALBUMS); + maxSongs = (ListPreference) findPreference(Constants.PREFERENCES_KEY_MAX_SONGS); + maxArtists = (ListPreference) findPreference(Constants.PREFERENCES_KEY_MAX_ARTISTS); findPreference("testConnection1").setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { @Override @@ -157,6 +161,8 @@ public class SettingsActivity extends PreferenceActivity implements SharedPrefer bufferLength.setSummary(bufferLength.getEntry()); networkTimeout.setSummary(networkTimeout.getEntry()); maxAlbums.setSummary(maxAlbums.getEntry()); + maxArtists.setSummary(maxArtists.getEntry()); + maxSongs.setSummary(maxSongs.getEntry()); for (ServerSettings ss : serverSettings.values()) { ss.update(); diff --git a/src/net/sourceforge/subsonic/androidapp/util/Constants.java b/src/net/sourceforge/subsonic/androidapp/util/Constants.java index 026c23f8..f8c8964d 100644 --- a/src/net/sourceforge/subsonic/androidapp/util/Constants.java +++ b/src/net/sourceforge/subsonic/androidapp/util/Constants.java @@ -78,6 +78,8 @@ public final class Constants { public static final String PREFERENCES_KEY_NETWORK_TIMEOUT = "networkTimeout"; public static final String PREFERENCES_KEY_SHOW_NOTIFICATION = "showNotification"; public static final String PREFERENCES_KEY_MAX_ALBUMS = "maxAlbums"; + public static final String PREFERENCES_KEY_MAX_SONGS = "maxSongs"; + public static final String PREFERENCES_KEY_MAX_ARTISTS = "maxArtists"; // Name of the preferences file. public static final String PREFERENCES_FILE_NAME = "net.sourceforge.subsonic.androidapp_preferences"; diff --git a/src/net/sourceforge/subsonic/androidapp/util/Util.java b/src/net/sourceforge/subsonic/androidapp/util/Util.java index cffdf59e..62773909 100644 --- a/src/net/sourceforge/subsonic/androidapp/util/Util.java +++ b/src/net/sourceforge/subsonic/androidapp/util/Util.java @@ -820,6 +820,16 @@ public class Util extends DownloadActivity { return Integer.parseInt(prefs.getString(Constants.PREFERENCES_KEY_MAX_ALBUMS, "20")); } + public static int getMaxSongs(Context context) { + SharedPreferences prefs = getPreferences(context); + return Integer.parseInt(prefs.getString(Constants.PREFERENCES_KEY_MAX_SONGS, "25")); + } + + public static int getMaxArtists(Context context) { + SharedPreferences prefs = getPreferences(context); + return Integer.parseInt(prefs.getString(Constants.PREFERENCES_KEY_MAX_ARTISTS, "10")); + } + public static int getBufferLength(Context context) { SharedPreferences prefs = getPreferences(context); return Integer.parseInt(prefs.getString(Constants.PREFERENCES_KEY_BUFFER_LENGTH, "5"));