Files
ultrasonic/core/domain
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
..
2026-03-10 17:25:42 +00:00