As detailed in https://github.com/xbmc/xbmc/pull/13051, Kodi v18 changes the way album genres are handled, as the genre (by which i mean `genreId`) ceases to be available at the album level, being only available at the songs level.
This impacts Kore because `GetAlbums` and `GetAlbumDetails` won't return the `genreId` tag, from which the local AlbumGenres table was populated.
This PR changes the source of the local AlbumGenres table to be the `genreId` returned at the song level (by `GetSongs`), to make it somewhat more consistent with the way Kodi will handle things from now on.
Whan the background service is launcher, it is launched on the foreground and a notification is always shown.
The service stays on while something is playing. It stops itself on a connection error, quitting Kodi or 5 seconds after stopping
Make the Pause Phone Calls preference dependent on the Show Notification preference, as we always need to show a notification when the service is running
* The slideup panel is only displayed when something is
playing. It starts collapsed showing the media poster
and title of what is currently playing.
* Media controls implemented are volume, progress, shuffle,
repeat and play/pause for all items. Next and previous are only
available when a music item is playing.
* In collapsed mode the panel will display the mute button only
if Kodi is muted. The mute button in expanded mode is always
visible.
* Panel is enabled by default. Users can disable the panel
in Settings
* Implemented listening to Player.OnPropertyChanged notifications
to update shuffle and repeat button states.
* Added JSON datafiles for TV shows and music videos
* Implemented instrumentations tests for MoviesActivity, MusicActivity,
TVShowActivity, and AddonsActivity.
* Moved RestoreSearchQueryViewPagerTest to music package as it uses
the MusicActivity
* Moved RestoreSearchQueryListFragmentTest to movies packages as it
uses the MoviesActivity
* Added scripts to get JSON data for music videos, addons, and TV shows
* Added sequence diagram for BaseMediaActivity to clarify new setup
* Refactored BaseMediaActivity to comply with diagram
* Refactored SyncMusicVideos and SyncTVShows so we can use the same code
for adding test data as we use for adding real data.
* Removed unused StringBuffer and synchronize block in MockTcpServer
* Song lists for artist, album, and overall now shows the artist name for each individual song
* Added display artist column to songs table. This required a DB upgrade and users should
do a refresh for music items to be able to see the display artist in the song lists.
This applies the fix for issue #219 Incomplete libraries for movies and
TV shows.
For music items this was already fixed in PR #236
See commit 7330f85241
Using Kodi's JSON RPC, Kodi may return less items than requested, even
if there are more items available. The old method of determining if
more items are available by checking if the amount of items returned
equals the amount requested does not work in these cases. Therefore,
we now use the returned List.LimitsReturned to determine if there are
more items available. If List.LimitsReturned.end equals
List.LimitesReturned.total we assume we retrieved all items.
Implemented binding to LibrarySyncService to check if there are items currently
syncing or queued to sync. This makes it possible to inform user of background
sync processes.
Created two abstract classes to reduce code duplication and check if
LibrarySyncService has any items queued which are currently being displayed.
Fixed issue with SwipeRefreshLayout from appcompat library, which does not
always show the refresh animation when refresh is set to true.