Merge branch 'release-1.0.1' into develop
Update RELEASE_PROCESS docs for gradle and git branches.
Store the last text sent/received to the server in ACRA custom data.

This should make troubleshooting future crash reports easier.

While I'm here, remove the service's debugLogging variable, and always
log received text and how it's parsed.
Update to Android Studio 0.4.0 (Gradle 0.7+, wrapper 1.9).

See http://tools.android.com/recent/androidstudio040released.
Merge branch 'develop' into custom-acra
Optionally include the user's e-mail address in error reports.

Support the ACRA acra.user.email preference, and prompt the user to
provide an e-mail address.  Include an English string for the preference.
Use the ACRA "DIALOG" alert method, instead of "NOTIFICATION".

Remove the strings crash_notif_ticker_text, crash_notif_title, and
crash_notif_text, which are no longer required.
Action for musicfolder item type 'track' follows setting for song select action

Solves issue #52
Merge remote-tracking branch 'nik/master' into configurable-actions
Call setDefaultValues to ensure preferences are initialised correctly.
Resolve a TODO, DateUtils.formatElapsedTime is not suitable.

DateUtils.formatElapsedTime() adds a leading zero if the number of minutes
is < 10 (i.e., "01:00", instead of "1:00").  Remove the comment that
suggests it could be used, and add documentation that makes this clear.

Since makeTimeString() is very similar to formatElapsedTime it seemed
sensible to give them the same name.
Add a progress indicator to the mini-player.

- Increase the height of the player by 2dp to make room for a small
  ProgressBar.

- Use a custom drawable as the Android drawables for ProgressBars do not scale
  down to 2dp.

- Simplify the mini-player layout by using RelativeLayout instead of
  LinearLayout.
Fix beginBroadcast called while already in a broadcast

for updatePlayerSubscriptionState.

By counting the number of registered callbacks, thus eliminating the need
to call beginBroadcast to get the count.

Also remove the requirement that scrobling turns on second to second
updates, because we already receive (and handle) these events from the
notifications enabled by the listen command.
Fix beginBroadcast called while already in a broadcast

by having the executor run all broadcasts, which ensures sequential
execution.
Update gradle plugin version
Fix beginBroadcast called while already in a broadcast

for updatePlayerSubscriptionState.

By counting the number of registered callbacks, thus eliminating the need
to call beginBroadcast to get the count.

Also remove the requirement that scrobling turns on second to second
updates, because we already receive (and handle) these events from the
notifications enabled by the listen command.
Fix beginBroadcast called while already in a broadcast

by having the executor run all broadcasts, which ensures sequential
execution.
Update gradle plugin version
Implement grid layout for song list.

Preferred layout is selectable from view menu. Default is list layout.
The view dialog shares functionality with the album view menu, so common
code is moved to the new BaseViewDialog.

There was no server string for song display options, so added the translation
for album display options where the word for album is substituted with the word
for song.

Signed-off-by: Kurt Aaholst <kaaholst@gmail.com>
Do not use AIDL for service calls and asynchronous callbacks

As recommended by <http://developer.android.com/guide/components/bound-services.html>
and <http://developer.android.com/guide/components/aidl.html>

This make the code simpler, and the app faster and less memory consuming,
because we do not need to marshall the objects to and from the service.

Note we still use AIDL for RemoteCallbackList (subscriptions), because of the
generic boundary.