* add helper for shared preference to organize code more
* requested changes to pull request #901
-add the usual copyright / license boilerplate to SharedPrefHelper.
-edit the comment on method getSettings in SharedPrefHelper
* requested changes to pull request #901
-add the usual copyright / license boilerplate to SharedPrefHelper.
-edit the comment on method getSettings in SharedPrefHelper
We are now fully switched to activity-based plugin
start system, so we don't need to start service or
wake activity anymore. Delete relevant part.
If the additiona; information is needed about the
plugin we can dig it out from its broadcast receiver.
Also, add quick "Plugins" button to the full playback
activity so there are only 2 clicks away from any plugin.
* Add a Jump to Time dialog
This implements #827 by adding a context menu entry to open a dialog
that allows the user to input a time/position to seek to for the current
song.
* Use callback interface for JumpToTimeDialog position submission
* Automatically show soft keyboard for JumpToTimeDialog
* Automatically move to next EditText in JumpToTimeDialog
* Crash if JumpToTimeDialog is started by wrong activity
Make library scans more agressive, even if we not scan the full filesystem.
This is only invoked by background scheduler scans OR user triggered actions.
The quickscan will still only check the library diff.
* Add context menu for song/track details dialog
This addresses #506
* Add GPL 3 boilerplate to files
* Refactor track and disc number string for song details
If the playback service is stopped before the main activity gets killed, this would have caused the old class to still get updates.
Sending preference updates to such an orphaned PlaybackService would trigger crashes in some cases (especially when MediaLibrary detects suspicious unregisters).
The change adds interactive check to see if smooth scroll is actually
needed. If user doesn't see the library screen there's no point in
doing smooth scroll.
Besides, for old Android versions (like 4.x)
View.getFirstVisiblePosition, View.getLastVisiblePosition calls are
working only if view is currently visible.