No idea how people manage to hit this, but it seems to be a thing on Samsung phones.
Sample stacktrace:
java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=12655, uid=10269 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1620)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
at android.content.ContentResolver.query(ContentResolver.java:502)
at android.content.ContentResolver.query(ContentResolver.java:445)
at ch.blinkenlights.android.vanilla.MediaUtils.getAndroidMediaIds(MediaUtils.java:591)
at ch.blinkenlights.android.vanilla.PlaybackService.scrobbleBroadcast(PlaybackService.java:1108)
at ch.blinkenlights.android.vanilla.PlaybackService.broadcastChange(PlaybackService.java:1064)
at ch.blinkenlights.android.vanilla.PlaybackService.handleMessage(PlaybackService.java:1543)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:148)
at android.os.HandlerThread.run(HandlerThread.java:61)
Note that this happens WHILE we play a song - so claiming to not have READ_EXTERNAL_STORAGE privileges seems to be - strange.
We register ourselfs as a callback receiver BEFORE the adapter has been created.
This crash is unlikely but happens once in a while according to the play store.
* Added new translation strings for file sort dialog
* Implemented sorting for the file system adapter
With new abstract class SortableAdapter as new base class for FileSystemAdapter
and MediaAdapter.
Usable sorting modes are:
- filename
- file size
- file modification time
- file extension
* reversed
Closes#305
* Code improvements for sorted file system adapter
- refactor plugin querying in a way that now any
library activity can utilize it
- Make doc more thorough
- Hopefully fix empty plugin list bug
(flag was added to wrong intent)
These types can not have a Play All in the context menu as the 'jumpSong' in SongTimeline only works if the required information is available in the filled projection (which is not the case for these types)