47 Commits
Author SHA1 Message Date
Sam Mingo 5030bd47fa feat(podcasts): show cover art on podcast channel list 2026-10-17 12:05:34 +00:00
birdbird 00ea0460b8 Modernize legacy list fragments to RecyclerView-based MultiListFragment
Migrate PlaylistsFragment, PodcastFragment, SelectGenreFragment, SharesFragment,
ChatFragment and LyricsFragment out of the legacy package:

- Replace ListView + ArrayAdapter screens with MultiListFragment (RecyclerView +
  multi-type binders) backed by new ListModels (PlaylistListModel,
  PodcastListModel, GenreListModel, ShareListModel) with LiveData caching and
  pull-to-refresh via GenericListModel
- Add generic TextRowBinder for single-line entries and ShareRowBinder for share
  rows; remove GenreAdapter and ShareAdapter
- ChatFragment: replace java.util.Timer with a lifecycle-aware
  repeatOnLifecycle(RESUMED) refresh loop and register the chat observer once in
  onViewCreated instead of on every onResume
- Share edit dialog: initialize the expiration picker from the share's current
  expiry (remaining time, rounded up) instead of defaulting to "no expiration",
  which previously wiped the expiry when the dialog was confirmed
- Drop the obsolete podcasts/select_genre/select_playlist/select_share layouts
  and update the navigation graph to the new fragment classes
2026-09-28 11:26:40 +02:00
birdbird 3a97bc79ad Remove legacy Kotlin and multidex config 2026-08-27 21:21:47 +00:00
space woodchuck b7f6c771a7 Update ktlint to 1.8.0 2026-03-10 17:25:42 +00:00
space woodchuck 3f5464f71b Add source/targetCompatibility back to core/domain/build.gradle 2026-01-23 15:53:00 +00:00
space woodchuck 891be2576d Clean up jvm version targeting 2026-01-23 15:02:40 +00:00
Nite 6443881193 Fixed DI to make the widget work 2025-04-11 17:48:08 +00:00
Nite 46e85c27a2 Updated rating to be able to use the 5 star and heart rating together 2025-04-02 19:02:30 +00:00
Renovate Bot 94979aeaab Update dependency org.jlleitschuh.gradle:ktlint-gradle to v12 2023-12-03 19:45:20 +00:00
tzugen ddf8ce7029 Migrate from KAPT to KSP 2023-07-31 14:47:35 +02:00
tzugen ddd9c29d7a Apply suggested Kotlin Gradle updates 2023-05-18 12:22:40 +02:00
Nite f4cb12f00f Fixed podcast titles 2023-01-02 21:33:38 +01:00
Renovate Bot e18abbc856 Update media3 to v1.0.0-beta03 2022-11-28 11:45:34 +00:00
birdbird 6d93a98b22 Rework UI 2022-11-10 09:04:19 +00:00
Renovate Bot d5bb78cec1 Update dependency androidx.core:core-ktx to v1.9.0 2022-09-24 08:08:10 +00:00
tzugen 53a1a5545a Formatting.
Disable line length check in detekt. It's being guarded by KtLint already.
2022-07-06 11:16:52 +02:00
tzugen ad54db5bcb Make Ids composite of Item Id + Server Id 2022-07-06 11:16:52 +02:00
tzugen 8490f7115d Add Offline support for tracks 2022-07-06 11:16:52 +02:00
tzugen 3a3bd10fdb Add AlbumDao, rename getArtist to getAlbumsOfArtist 2022-07-06 11:16:52 +02:00
tzugen 66443ba018 Remove Jacoco 2022-06-16 16:40:59 +02:00
tzugen 1d236aa6e3 RM unused PlayerState.kt 2022-04-21 14:52:11 +02:00
tzugen 922022ab03 Switch to Media3 2022-04-03 23:59:18 +02:00
tzugen 892b441c0d Move Track and Album to their own files 2022-03-27 16:39:35 +02:00
tzugen 2de59b2206 Rename MusicDirectory.Entry to Track to make more clear what it is 2022-03-27 16:39:35 +02:00
Nite 5962cc2add Merge branch 'develop' into dependabot/gradle/versions.kotlin-1.6.10
Added temporary fix for Koin bug
2022-02-08 18:18:58 +01:00
tzugen 10b83805a9 Create a correctly typed list from getMusicDirectory() 2021-12-21 13:31:58 +01:00
tzugen 1eca5a756e Use new toml file for version declaration 2021-12-20 21:59:57 +01:00
tzugen f1e789ea9b Fixed search, put compareTo method into Interface 2021-11-30 21:21:04 +01:00
tzugen bdac092eff Make SearchResults expandable,
finish music folder support,
change Service interface of AlbumList to return listOf(Album)
2021-11-30 00:47:03 +01:00
tzugen aa33d7c882 Cleanup nested functions on OfflineMusicService and make it return the correct MusicDirectory type 2021-11-29 20:14:11 +01:00
tzugen 82d90a6aee Fix context menus.
Also cleanup files, rename layouts
2021-11-28 19:13:25 +01:00
tzugen 4e37a2483c Add an MusicDirectory.Album model to represent the APIAlbum model
It became necessary in order to have different types for Tracks vs Albums,
instead of just differentiating by isDirectory: Boolean.

Also:
* Fix Album display in SearchFragment.kt
* Use same ids in all lists
2021-11-28 19:13:24 +01:00
tzugen f8a87f7c85 BookmarksFragment is now based on TrackCollectionFragment
Also start SearchFragment.kt
2021-11-28 19:13:24 +01:00
tzugen 5f716f5008 Use MultiTypeAdapter as a backend for RecyclerView stuff 2021-11-25 16:53:22 +01:00
Nite 2847a51674 Fixed autoplay
Fixed uncaught exception
Fixed playlist loading from file
2021-10-23 16:09:49 +02:00
tzugen 1d5b335f97 Add Download Fragment which show active downloads 2021-10-23 15:58:32 +02:00
tzugen d83cf0917c Fix compiler warning 2021-08-26 22:58:39 +02:00
tzugen dbdb59bbff Add a Room database for Artists, Indexes and MusicFolders.
* There is one database for each Server
* Index items are saved with a "musicFolderId" prop, which makes it possible to filter the database by musicFolder without necessarily having to query the server for it.
* Databases for new Servers are created on the fly
* If the user removes a server, the respective database is deleted.
2021-06-29 18:01:26 +02:00
tzugen 36dccc845b Use ListAdapter class to calculate Diff off the main thread 2021-06-20 08:31:12 +02:00
tzugen 154662bec5 Make Artist and Entry comparable (thus sortable) 2021-05-27 11:14:23 +02:00
tzugen 3257fb9153 Make Entry always have an id 2021-05-26 23:19:16 +02:00
tzugen 72c03cc500 Introduce new Generic Fragments, ViewModels, and Adapters for the display of API data.
* Splits former SelectAlbumFragment into separate fragments for Albums and general collections of tracks
* Renames and refactors SelectArtist view to extend the new Generic classes
* Adds error handling (Fixes #484)
* Adds EndlessScrolling capabilities to all Album Lists
* Uses RecyclerViews and LiveData for performance and in-memory caching
* Refreshes the UI to be aligned with the ArtistList UI
* Add a new GenericEntry to the domain data classes, and make other types extend it
2021-05-16 17:42:31 +02:00
tzugen 4d27c35cf4 Remove unused versions.kt & semver 2021-05-06 12:09:23 +02:00
Nite de7eaef668 Updated Gradle to 6.5
Tried to satisfy ktlint rules
2020-06-13 19:04:31 +02:00
Nite ab624be93d Implemented five star rating 2020-01-13 21:20:52 +01:00
Yahor Berdnikau 3371b4025d Improve Jacoco setup. 2018-10-07 21:05:48 +02:00
Yahor Berdnikau 01bb519762 Move domain module to core modules. 2018-10-07 20:59:06 +02:00