Skip to content


Subversion checkout URL

You can clone with
Download ZIP


Pulling in my first batch of changes. #2

wants to merge 190 commits into from

2 participants


Per the e-mail, this pulls in:

  • All the work that kaaholst did.

  • Some UI tweaks to the "now playing" activity.

  • "Scrubbing" through a track with the seekbar

  • Use the hardware volume control buttons to control the player's volume.

  • Scrobbling support

kaaholst and others added some commits
@kaaholst kaaholst Initial library and playlist support
* Framework querying, displaying and selecting SqueezeServer items
* Album list, artist list and current playlist activities
* SqueezePlay menu activities
* Select player moved to separate activity and added player icons
* Danish translations
@kaaholst kaaholst More library and playlist support
* Genre list and year list activities
* Artwork for album list and current playlist
* Filtering and ordering support for album list activity
* Filtering support for artist list activity
* Support for large libraries and slow devices by introducing a default maximum list size.
* Navigation from list activities through options menu
* Randomplay support if enabled in Squeezebox Server
* Artwork for radios (artwork_url)
* Fixed a few TODOs
@kaaholst kaaholst Search library and lazy load images in lists
* search CLI command implemented
* List are optimized to enable smooth scrolling and flinging. Most importantly they lazy load images.
@kaaholst kaaholst Context options for item in squeezer lists
* Context menus for items in music library
* New song list activity
* Added labels in filter dialog
* Fixed some TODO's
* Fixed issue 7 - incorrect album/content image
@kaaholst kaaholst Playlists maintenance 975ffdd
@kaaholst kaaholst Reverted to API level 7 to support Android 2.1 devices 2127f23
@kaaholst kaaholst * Functionality when you touch current artist, album or track
* Default action for song in lists is now to insert after the currently playing song
* Fixed issue 3 show active player in ongoing notification
@kaaholst kaaholst * Lazy load SqueezeServer items 3681c83
@kaaholst kaaholst * Lazy load SqueezeServer items 266ec10
@kaaholst kaaholst * Do not load data when scrolling or flinging 8a715d4
@kaaholst kaaholst Merge remote branch 'origin' 6b1562a
@nikclayton nikclayton Re-order the display so it's track name / album / artist. Different
to the built in music player, but makes more sense.
@nikclayton nikclayton Set the seekbar layout_height to wrap_content so it's the normal
height, instead of hard-coding to a fixed pixel height.
@nikclayton nikclayton A first cut at a landscape-optimised layout. 08e85b1
@nikclayton nikclayton Support scrubbing through the currently playing track with the

If the current track ends then the scrubbing is ignored.
@nikclayton nikclayton Added, from

No copyright statement on the code as they provide it, have e-mailed for clarification.
@nikclayton nikclayton Intercept the volume control keys, use them to set the volume on
the connected player.
@nikclayton nikclayton Simplify so that it just makes the background translucent.
Leave a note for what still needs to be done.
@nikclayton nikclayton Remove a superfluous View element. 8882e52
@nikclayton nikclayton Re-work the portrait layout. Remove volume buttons Views, make the
album artwork larger, and push track information, home, and playlist
buttons to the top of the screen.

Remove the volume buttons Views from the landscape layout.

Remove code for handling the volume Views.
@nikclayton nikclayton Display a toast similar to the system one when the volume is changed.
The images are pulled from the SDK and included directly, because
they're marked private and can't otherwise be referenced.

Similarly, volume_adjust.xml is from the SDK, modified to reference
the panel_background in this project.
@nikclayton nikclayton Add a comment noting comments from Anthony Stevens
( noting that these files are free/open for
public use.
@nikclayton nikclayton Refactor the volume control toast. Move it in to
and provide sufficient scaffolding for it.

SqueezeService is now responsible for sending it notifications when
the volume changes, so remove the last vestiges of that code from
@nikclayton nikclayton Suppress the default handling of volume key keyUp events, to avoid
the system beeping when the key is released.
@nikclayton nikclayton Use the built in text styles for the track, album, and artist
TextViews in portrait mode.
@nikclayton nikclayton Part of the volume refactoring, missed in an earlier commit. d43b464
@nikclayton nikclayton First cut at landscape layout with alpha blended views. 7359515
@nikclayton nikclayton Add basic scrobbling support.
Add a preference for it.

Update to send the necessary intent.  While
investigating, comment out some code that doesn't appear to be
necessary, and add a TODO for future work.
@nikclayton nikclayton Add support for multiple scrobbling APIs, and support
SLS as well as ScrobbleDroid.
@nikclayton nikclayton Remove unused PAGESIZE variable. de50a3a
@nikclayton nikclayton Use the large icon layout. 1c0c429
@nikclayton nikclayton Add a comment for the albums() method. 3bab75a
@nikclayton nikclayton Whitespace fix. db3b536
@nikclayton nikclayton Use 64px icons, and the standard Android text styles. 2cbf7ff
@nikclayton nikclayton Add a TODO for button handling. d9ad543
@kaaholst kaaholst * Internet radio 8d19a86
@kaaholst kaaholst Use device independant pixels 10ceb8d
@nikclayton nikclayton First cut at using a RelativeLayout to get the Home and
List buttons to layout correctly.
@kaaholst kaaholst Fixed crash with unstable wifi 88c8a84
@kaaholst kaaholst Merged nik/master 95076cc
@kaaholst kaaholst Issue 11: Offer to enable WiFi when connecting fails 5ea6266
@kaaholst kaaholst Issue 16: No server config = walk the user through creating one 0087697
@nikclayton nikclayton Merge
from kaaholst.
@nikclayton nikclayton Revert the previous commit -- didn't record the merge source properly,
and some of the changes should be cherry picked in.
@nikclayton nikclayton Merge commit '95076cc' from kaaholst.
Changes include:

- Internet radio support.

- View list of applications on the server.

- Device independent pixels in (some) layouts.

- Fix an NPE when WiFi is unstable.
@nikclayton nikclayton Add for github. 0f0e7ce
@nikclayton nikclayton Update copyright message.
- Include the copyright year.

- Add myself and Kurt as contributors, organised
  alphabetically by surname.
@nikclayton nikclayton Bump version number from 5 to 6. 467c4b6
@nikclayton nikclayton Merge commit '5ea6266', auto-connect on wifi availability.
As well as merging, modify SettingsActivity so that the
state of the preference checkbox matches the default in the
@nikclayton nikclayton Load the settings activity if no server config is found.
Merges commit '0087697'.
@nikclayton nikclayton Remove the auto-connect preferences option.
Until it's hooked up to do something it looks unprofessional.
@nikclayton nikclayton Remove the title bar from SqueezerActivity. 9ee7ec9
@nikclayton nikclayton Add a LICENSE and comments.
Added a LICENSE file to the top of the tree that includes
the Apache 2 license.

Added copyright comments to the top of each file, copyright
going to whoever first created the file.

Updated AndroidManifest.xml, copyright goes back to 2009.

Eclipse has performed some other changes as a result of
saving every file -- some white space has been adjusted,
'final' has been inserted in a few places, and unnecessary
casts have been removed.
@nikclayton nikclayton Enable (optional) crash reporting using ACRA and Bugsense.
ACRA is from, and has been configured
according to their documentation.

Bugsense is
@nikclayton nikclayton Disable Apps and Favourites from the home screen.
Neither of these are usefully implemented yet.
@nikclayton nikclayton Remove the apps and favourite entries. f1b241c
@nikclayton nikclayton Make the background properly transparent. b4e63c9
@nikclayton nikclayton Eclipse preferences for code formatting/style. d787c0d
@nikclayton nikclayton Enable error reporting for exceptions.
Most exceptions are in the "can't happen" category, so turn
on error reporting for them on the off chance that they do
actually happen.
@nikclayton nikclayton Revert the previous commit.
Until ACRA has a fix for
the exception handling isn't honouring the user's preference
for reporting errors.
@nikclayton nikclayton Use the higher-resolution 'no album art' image. aec7ceb
@nikclayton nikclayton Add screenshots for the Android Market. db7ebe8
@nikclayton nikclayton Add NEWS, with an initial set of changes in the 0.6 release. f92e9aa
@nikclayton nikclayton Add a default proguard.cfg. e9833c6
@nikclayton nikclayton Make the UI a little more consistent.
Use textAppearanceMedium in more lists to give a larger click
target, and for consistency.

Use the stock Android search button instead of the SqueezeServer

Update some of the screenshots accordingly.
@nikclayton nikclayton Correct copyright and license information.
Per Brad/Google policy, our work is copyright Google, so
update copyright notices to reflect that.

Include a copy of the license in the "About" dialog, and
re-work the code so that the links in the dialog are
@nikclayton nikclayton Configure ProGuard for ACRA. 4e30d6a
@nikclayton nikclayton Add a TODO about keyboard selection. 4a09ecb
@nikclayton nikclayton Correct ProGuard options.
Keep com.danga.squeezer.** classes unobfuscated. There's no point
in doing it when it's an open source project, it just makes
debugging stacktraces more tedious.

Keep the Signature attribute, so that reflection works.

Strip out calls to Log.v and Log.d.

Don't rename source lines -- again, simplifies working with
stack traces.

White space cleanup.
@nikclayton nikclayton Add a copyright notice to about_textview.xml. 95807c5
@nikclayton nikclayton Fix spinner lists from appearing blank.
Spinner lists and regular lists shared the same code and layout.
The problem is that in the default theme the lists have different
backgrounds, and the spinner background is the same colour as the
list text colour.

Distinguish between the two in the code, and add a new layout
item specifically for spinner list items.
@nikclayton nikclayton Remove references to browsing the music folder. 61cdb1e
@nikclayton nikclayton Collect anonymised usage/preference stats with Google Analytics. c117ff5
@nikclayton nikclayton Re-take browse-music screenshot, to remove music folder navigation
Kurt Aaholst Fixed the TODO to separate spinners from other list views.
By supplying specialized view logics for the spinners.
Kurt Aaholst Fixed default action for tracks in the search activity.
The album for the selected tracks is displayed.

The problem was that the track that was passed to the album list, was not passed to Squeezebox server,
so the list just displayed every album in the music library.
Kurt Aaholst Issue 23: Settings should be visible from all activities
Added the settings menu item to the squeezer base menu.
Added the squeezer base menu to SqueezerItemListActivity instead of SqueezerBaseListActivity to have
Added the android compatibility library to android-squeezer
Moved the squeezer base menu code to a fragment
Included the new fragment in the menu activities, Home, Music and RandomPlay
Refactored the filter and order menu items to be fragments
Kurt Aaholst Refactored dialogs to use the fragment api afa2b48
Kurt Aaholst Issue 20, Hardware volume buttons should work from all activities 6ef31e9
@nikclayton nikclayton Rename from com.danga.squeezer to, so that the
app can be uploaded to the Market.
@nikclayton nikclayton Use the analytics tag for the account. 340d059
@nikclayton nikclayton Merge remote-tracking branch 'kaaholst/master'

Issue 20, Hardware volume buttons should work from all activities

Issue 23: Settings should be visible from all activities

Displays the album for tracks chosen through search (instead of all albums).

In addition, cleans up spinner code, and refactors dialogs to use the
fragment API.

@nikclayton nikclayton Use device independent pixels everywhere.
Remove a useless LinearLayout.
@nikclayton nikclayton Use proper ellipsis and copyright symbol entities. 995db39
@nikclayton nikclayton Fix broken/invalid layout entries, caught by lint. 0c96180
@nikclayton nikclayton Fix additional layout/UI warnings caught by lint. 844dacd
@nikclayton nikclayton Use dpi-dependent images.
Move the PNG images in res/drawable to res/drawable-mdpi, and
add higher-resolution versions of the menu icons to
@nikclayton nikclayton Bring back from inadvertent deletion. 68df1cf
@nikclayton nikclayton Keep all methods unobfuscated, not just public/protected ones.
Disable some warnings from the Honeycomb compatability libraries.
@nikclayton nikclayton Encrypted keys used to sign Squeezer releases. 5f9e192
@nikclayton nikclayton Regenerate with
android update project --path .

to bring up to date with the SDK.
@nikclayton nikclayton Catch an odd SecurityException that occurs when releasing the
wifi lock.

The exception seems harmless, and catching it, rather than
requesting an additional permission, seems a cleaner thing
to do.
@nikclayton nikclayton Update to release 6 of the v4 compatibility package. 05b8fec
@nikclayton nikclayton Commit most of kaaholst/master/d232942ca7 to fix dialog display
issues.  Kurt's notes from that commit:

-Fixed crash on orientation switch when dialog is showing.
 By removing references to outer class SqueezerActivity
-Fixed crash on switch to portrait orientation when not connected.
 The problem was that the activity life cycle methods was called
 twice, because the activity was beeing recreated twice.
 Apparently is is not allowed to call after
 onSaveInstanceState, because of a possible state loss.
 It is perfectly legal for Android to do that, and documented in
 the API, but it wasn't handled very gracefully in the
 I have changed the autoconnect on service connection flow, to be
 more robust.
@nikclayton nikclayton Use the ampersand entity. 00f3acb
@nikclayton nikclayton Use "squeezer" as the project name. 3ccd7df
@nikclayton nikclayton Ignore the file if it exists. f3591d6
@nikclayton nikclayton Prepare for the 0.6.1 release.
Update AndroidManifest.xml with the new version numbers.

Update NEWS with release notes.

Save the ProGuard mapping file.
@nikclayton nikclayton Rename to
Rebuilt the release candidate, so update the ProGuard
mapping file as well.
@nikclayton nikclayton Document the process for cutting a new release. 14c7cc8
@nikclayton nikclayton Go back to targeting API 7, and adjust some ProGuard options
@kaaholst kaaholst Fix crashes uncovered in 0.6.1.
Add default constructors for all fragments, so they can be
instantiated by the system when orientation is changed.

Add null pointer exception protection for list adapter and
itemview in SqueezerBaseListActivity so they can be used
before onCreate is called.
@nikclayton nikclayton Prepare 0.6.2 for release. ad6e82d
@kaaholst kaaholst Fix menu items being duplicated when the activity is recreated,
e.g., on orientation change.

The menu fragments are looked up in the fragment manager, and added
only if they do not already exist.
@kaaholst kaaholst Fix possible crashes when playlist rename/delete dialog is open.
The playlist is saved in the activity's instance state, so it
can be restored when the activity is recreated.
@nikclayton nikclayton Don't enable analytics in debug mode. 4f68831
@nikclayton nikclayton Provide functionality to scan the local network for Squeezeservers.
This is a work in progress.  Chief issue at the moment is that spinner
that lists discovered servers does not react when clicked.
@nikclayton nikclayton Fix bug where the server adapter was non-responsive.
Do this by calling setAdapater() before re-showing the spinner,
which appears to have an undocumented beneficial effect. 

Remove some unnecessary disabling of UI elements.
@nikclayton nikclayton Use onDialogClosed() instead of onClick().
This means that orientation events and using the back button are caught
correctly, and stop the scanning thread.
@nikclayton nikclayton Correct a Spinner comment, remove unnecessary debugging statements. 58b2cac
@nikclayton nikclayton Further polish to get in to a mergeable state.
Replace hardcoded strings with string resources.

Fix a bug where 0 servers being found would show an empty spinner.

Fix a bug where the button to cancel a scan wouldn't work.

Change dialog layout to linear rather than relative, to get the
progress bar to line up properly.

Remove commented references to this functionality not being implemented

Adjust the scan code to scan a whole subnet, rather than just the
addresses I was using for testing.

Add copyright statements.
@nikclayton nikclayton Implement most of the music folder browsing functionality.
Displays the top level folders, descending in to them is work in
progress.  Also needs to confirm that the server supports this
@nikclayton nikclayton Support browsing sub-folders of the music folder.
Add assorted comments that explains what's going on.
@nikclayton nikclayton Show per-type icons for music folder items.
Fetch the music folder item's type, and use this to show an
appropriate icon in the list of items.  Adjust the layout used

Add additional comments after spelunking through the code.
@kaaholst kaaholst Fix NPE when the Connecting is manually dismissed (by the back key). f8ee252
@nikclayton nikclayton Add initial context menu support when browsing music folders.
Doesn't work for anything other than music folders at the moment,
see comments for possible fixes to explore.
@nikclayton nikclayton Merge pull request #3 from kaaholst/bugsense
Fix NPE when the Connecting dialog is manually dismissed (by the back key).
@nikclayton nikclayton Implement per-folder-item type context menus.
Add SqueezerPlaylistItem, items that can be added to a playlist
derive from that.  Adjust the model.* classes to derive from this
as necessary, and implement getPlaylistTag() in each class.

Clean up a couple of comments while I'm here.
@nikclayton nikclayton Rename SqueezerMusicFolder to SqueezerMusicFolderItem. 4e2b400
@nikclayton nikclayton Make browsing the music folder conditional on the server's capability.
Rewrite IconRowAdapter to make it easier to have a list of rows with
disjoint identifiers.  This removes some gyrations in
SqueezerMusicActivity which only gets more complicated as more special
cases are added.
@nikclayton nikclayton Get closer to platform standards for list views.
Adjust the icon sizes and padding in icon_large_row_layout.xml to
be multiples of four, with icons 48dp in size.

Provide drawable-{l,m,h,xh}dpi versions of all icons.  The mdpi icon
images are 48px x 48px, and the others are scaled in the ratio
3:4:6:8 (l:m:h:xh) per

Remove plugin_item_row_layout.xml, it existed to add a right-facing
caret to menu items with submenus, and this is non-standard for Android,
@nikclayton nikclayton < -> <=, to scan the last host on the network.
Move the default port in to a resource, and adjust and
@nikclayton nikclayton Remove unused DEFAULT_PORT constant. ae42328
@nikclayton nikclayton Merge branch 'master' into musicfolder adaee6b
@nikclayton nikclayton Merge branch 'fix-icons'
@nikclayton nikclayton Add a "take screenshots" step. 9f9c022
@nikclayton nikclayton Remove the "Browsing music" TODO item. de15dd1
@nikclayton nikclayton Note support for browsing folders and scanning for servers. f55b8dd
@nikclayton nikclayton Start noting improvements in 0.7. 5531e91
@nikclayton nikclayton Use the theme style for the serverscan progress bar.
This ensures that it picks up the correct look-and-feel for the
current theme.
@nikclayton nikclayton Spell "Wi-Fi" correctly and consistently. suggests a couple of names in common
use, but "Wi-Fi" is the trademark and brand name.
@nikclayton nikclayton Use 0dp layout_{height,width} widgets with a layout_weight.
Per lint, this is more efficient than wrap_content.
@nikclayton nikclayton Remove unused settings_serveraddr_format string. 56ba027
@nikclayton nikclayton Adjust layout to a 4dp grid. d2f4dba
@nikclayton nikclayton Remove unused audio_player_common.xml layout. e53ac19
@nikclayton nikclayton Use 8dp of padding in the About dialog. b58b7ea
@nikclayton nikclayton Use a compound drawable in the search result lists.
Instead of a LinearLayout, an ImageView, and a TextView per heading
entry, using a TextView with a compound drawable.
@kaaholst kaaholst Localise the server scanning strings. 1d58eaf
@nikclayton nikclayton Display cover art for some tracks that were missing it.
It seems as though there's a bug in the server -- I've seen tracks
which come back with a coverart:1 tag, but no artwork_track_id:...

If that happens, use the track's ID as the ID for the cover art.
@nikclayton nikclayton Use the artworkTrackId variable. 6c43f53
@nikclayton nikclayton Whitespace. 9bcc117
@nikclayton nikclayton Add a comment for future work. bf7154a
@nikclayton nikclayton Make touching a playable item in the music folders play it. cfdf175
@nikclayton nikclayton Note some TODOs. b21830c
@nikclayton nikclayton Remove an unnecessary space. 6b02fb9
@nikclayton nikclayton Add some additional comments. 60e1da8
@nikclayton nikclayton Set the title appropriately.
When browsing anything other than the root music folder, set the title
to the title of the thing we're browsing.
@nikclayton nikclayton Prepare 0.7 for release. e23ae78
@nikclayton nikclayton Add support for the Squeezeserver discovery protocol.
This drastically speeds up scanning the network for servers.  As a side
effect, we get the server's name, so we can show that to the user
instead of the IP address.

Adjust the progress bar to use the secondary value to indicate scanning
progress, and the primary value to show how many servers have been
@nikclayton nikclayton Replace magic numbers with documented constants. 2d904c0
@nikclayton nikclayton Note a crash site. a85de9c
@kaaholst kaaholst Translations 1363ed3
@kaaholst kaaholst Favorites added 60f4cf3
@nikclayton nikclayton Refactor the about dialog and create a license dialog.
Have a simpler about dialog, and push the license in to its own dialog
so that we throw a smaller wall of text at the user.
@nikclayton nikclayton Merge branch 'scan-for-servers' ad268a5
@nikclayton nikclayton Fix 2 bugs when the server address changes.
Bug 1: Shared preference listeners that are anonymous inner classes are at
risk of being garbage collected, and never being called.  Fix this by
extending the activity to implement OnSharedPreferenceChangeListener.

Bug 2: The service never did anything when the server address changed.  It
stayed connected to the old server.  Force the service to disconnect, which
will trigger a reconnection if the activity that's active when we return
from the PreferenceActivity needs to connect.
@nikclayton nikclayton Correct an incorrect logging tag. 25670c6
@nikclayton nikclayton Add a Dutch localisation, contributed by Sebastian van Winkel. 2ea9d7b
@nikclayton nikclayton Fix an exception when getActiveNetworkInfo() might return null. bebd617
@kaaholst kaaholst Danish translations of the unknown-* texts 09dc46d
@kaaholst kaaholst Fixed bug when trying to show the enable Wi-Fi dialog c6dfcc1
@nikclayton nikclayton Use Android system strings for OK / Cancel in dialogs. de56964
@nikclayton nikclayton Merge pull request #4 from kaaholst/bugsense
Fix potential crash when enabling the Wi-Fi dialog.

Add Danish translations for the unknown_* strings.
@nikclayton nikclayton Prepare 0.7.1 for release. e94d53d
@kaaholst kaaholst Fixed bug caused by trying to scrobble when song is playing f6cffdc
@kaaholst kaaholst Updated Eclipe/ADT, Android SDK and Android Support Library to version 7 840a5ba
@kaaholst kaaholst Merge branch 'favorites'
* favorites:
  Favorites added
@nikclayton nikclayton Merge commit '60f4cf3fd6159561efb91c0db4f1a08bfdd07dd6' 3f9edad
@nikclayton nikclayton Use -keepclasseswithmembers.
Per the lint error:

Using -keepclasseswithmembernames in a proguard config file is not
correct; it can cause some symbols to be renamed which should not be.

Earlier versions of ADT used to create proguard.cfg files with the
wrong format. Instead of -keepclasseswithmembernames use
-keepclasseswithmembers, since the old flags also implies "allow
shrinking" which means symbols only referred to from XML and not Java
(such as possibly CustomViews) can get deleted.

@nikclayton nikclayton Remove an extraneous '>'. 28a41b9
@nikclayton nikclayton Initial implementation of "Download" functionality.
Add methods to the service to return the URL to download a given song.

Amend the default song view context menu, add a download option.

Add a downloadSong() method to SqueezerAbstractSongListActivity which uses
ACTION_VIEW to request the song's URL, and probably trigger a download.
@nikclayton nikclayton Merge branch 'master' into download d2d9d63
@kaaholst kaaholst New Music entry added to the My music activity a5e2ca6
@kaaholst kaaholst New Music entry added to the My music activity 966ccd4
@kaaholst kaaholst Added Favorites for dutch version eabc591
@kaaholst kaaholst Merge branch 'new-music'
* new-music:
  New Music entry added to the My music activity
  New Music entry added to the My music activity
@nikclayton nikclayton Support downloading songs when viewing playlists.
Re-write how the song context menu works.  The menu is now a resource
(res/menu/songcontextmenu.xml) with @+id/... for each entry.

Playlist-specific entries are maintained in their own group, and are
enabled if browsing songs in a playlist.
@kaaholst kaaholst Initial list selection
- Refactored item views to enable discovery of current index.
- Made playerstate parcelable to be able to use it from activities and avoid using maps for list callbacks.
- Jump to currently playing song in current playlist, and indicate it visually
- Highlight the currently selected player
@kaaholst kaaholst Refactored extended query format response handlers
Moved the interface to a separate file, and created a common base class with
standard funtionality, to make the code more DRY, and to eliminate the errors,
that I noticed.
@kaaholst kaaholst Highlight current items
- Define styles for the text apearancces we use in squezer, and use them in layouts
- Add bold styles and use them for currently playing song and active player
@kaaholst kaaholst Added copyright notice to new files b6b1075
@kaaholst kaaholst Fix reported crash: Receiver not registered 646432a
@nikclayton nikclayton Provide a tip about the use of volume controls.
Implement a very bare-bones tip system.  Check if this is the first
time the user has run this version of the app in SqueezerActivity,
and if it is, show a tip about the use of the volume controls.
@nikclayton nikclayton Prepare 0.8 for release. 4464849
@nikclayton nikclayton Merge branch 'master' into download 0a25d45
@nikclayton nikclayton Use a menu resource for the per-album context menu. 62f0b5e
@nikclayton nikclayton Slightly de-clutter the search UI.
Remove the custom search button that appeared after the EditText control,
and its drawable.

Configure the EditText as a search control, and perform the search when
the user presses the search button on the IME.
@nikclayton nikclayton Use a SparseArray instead of a HashMap of Integers, per lint. 65ca430
@kaaholst kaaholst merged nik/master 4ab07cb
@kaaholst kaaholst Fixed bug in passing serch results e18ccf6
@nikclayton nikclayton closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.