Podcini

Open source podcast instrument for Android in Kotlin with media3, supporting channels, playlists and single media from YouTube and YT Music.

GPL-3.0 License

Stars
152

Bot releases are hidden (Show)

Podcini -

Published by XilinJia 2 months ago

  • inlined some DB writes of Episodes in some routines
  • enhanced DB writes in download routine, fixed a write error
  • added a couple more Log.d statements in hope for tracking down the mysterious random playing
  • Kotlin upped to 2.0.10
Podcini -

Published by XilinJia 2 months ago

  • upgraded gradle to 8.9 and Android Gradle Plugin to 8.5.2
  • minor dependencies updates
  • corrected the count of total episodes in History view
  • corrected the count of selections in AllEpisodes, History views
  • fixed "add selected to queue" in History, AllEpisodes views
  • known issue: in History and AllEpisodes views, the play button on every episode is not convertible
  • added history count in NavDrawer
  • in adapters, made selectedItems type explicit (rather than of Any), either of Episode or of Feed
  • explicitly revoked DB monitoring in episodes list views at exit
  • fixed issue of IndexOutOfBoundsException when adding to an empty queue
Podcini -

Published by XilinJia 2 months ago

  • upgraded gradle to 8.9 and Android Gradle Plugin to 8.5.2
  • minor dependencies updates
  • corrected the count of total episodes in History view
  • corrected the count of selections in AllEpisodes, History views
  • fixed "add selected to queue" in History, AllEpisodes views
  • known issue: in History and AllEpisodes views, the play button on every episode is not convertible
  • added history count in NavDrawer
  • in adapters, made selectedItems type explicit (rather than of Any), either of Episode or of Feed
  • explicitly revoked DB monitoring in episodes list views at exit
  • fixed issue of IndexOutOfBoundsException when adding to an empty queue
Podcini -

Published by XilinJia 2 months ago

  • added more Log.d statements in hope for tracking down the mysterious random playing
  • FeedSettings view is all in Jetpack Compose, FeedSettingsPreferenceFragment removed
  • in FeedSettings, added "Audo add new to queue" (accissible when associated queue not set to "None")
    • when set, new episodes during refresh will be added to the associated queue, regardless of being downloaded
  • use adaptive date formats (stripped time) in Subscriptions view
Podcini -

Published by XilinJia 3 months ago

  • fixed mis-behavior of setting associated queue to Active in FeedSettings
  • items on dialog for "Auto delete episodes" are changed to checkbox
  • playState Int variables have been put into enum PlayState
  • corrected an error in incomplete reconsile
  • fixed the nasty mis-behavior in Queues view when removing episodes
  • updated feed in FeedInfo view when feed preferences change
  • enhanced feed setting UI, added display of current queue preference
  • added "prefer streaming over download" in feed setting. ruling along the global setting, streaming is preferred when either one is set to true
  • added None in associated queue setting of any feed
    • if set, episodes in the feed are not automatically added to any queue, but are used as a natural queue for getting the next episode to play
    • the next episode is determined in such a way:
      • if the currently playing episode had been (manually) added to the active queue, then it's the next in queue
      • else if "prefer streaming" is set, it's the next unplayed episode in the feed episodes list based on the current sort order
      • else it's the next downloaded unplayed episode
Podcini -

Published by XilinJia 3 months ago

  • fixed crash when setting as Played/Unplayed in EpisodeInfo view
  • various changes in writing to DB in write block
  • Queue view is renamed to Queues view
  • in Queues view, when opening/closing Bin, the queues spinner on ToolBar is toggled with a title
  • added various Log.d statements in seeking to trace down the occasional random playing behavior
Podcini -

Published by XilinJia 3 months ago

  • fixed crash of opening FeedEpisode view when "Use episode cover" is set
  • fixed crash of opening EpisodeInfo view on episode with unknown media size
  • fixed crash when cancelling download in a auto-download enabled feed
  • fixed mis-behavior of "Untagged" filter in combination with other filters in Subscriptions view
  • added "export selected feeds" in multi-select menu in Subscriptions view
Podcini -

Published by XilinJia 3 months ago

  • fixed crash when playing episode with missing media file
  • fixed Queue view not opening the current queue
Podcini -

Published by XilinJia 3 months ago

  • improved handling of playing next in queue when some items have been removed from the queue
  • changed toggle play state logic: New or Unplayed -> Played, Played -> Unplayed
  • episodes list views are more efficient and less error-prone, reduced dependence on events and relying more on DB live updates
  • added episode counts in queues list spinner in Queue view
  • resorted handling of various DB objects to managed type
  • took out the long-useless context menu codes from episodes list views
  • fixed crash when toggling Podcini during downloads
  • calmed some complaints on StrictMode policy UntaggedSocketViolation
  • adjusted some Composable sizes
Podcini -

Published by XilinJia 3 months ago

  • added EpisodeMedia null relationship handling
  • in sleep timer setting, added "to end of episode" option
  • frequency of sleep timer check is reduced to every 10 seconds (from 1 second)
  • in Queue bin view, items' order is changed to descending
  • in Queue bin view, disabled some menu items
  • refined "remove from queue" operation when an episode ended playing
  • eliminated the double starts when playing the next episode in queue
  • re-ensured circular queue
Podcini -

Published by XilinJia 3 months ago

  • likely fixed crash issue in Queue view during download
  • fully disabled down-swipe in Queue, AllEpisodes, History, and Downloads views
Podcini -

Published by XilinJia 3 months ago

  • first foot into Jetpack Compose, various views are in Compose
  • in Queue view, added menu option to change the name of the active queue, with a Compose dialog
    • Default queue can not be changed, only unique names are allowed
  • in Queue view, added menu option to add a new queue, maximum number of queues allowed is 10
  • in Downloads view, revealed the message toaster for Reconsile operation
  • added associated queue setting for feed, with three choices: Default, Active and Custom
    • the default queue for every feed is Default
  • episodes added to queue upon downloading are added to the respective queues associated with the feed
  • fixed crash issue when multi-select actions in Subscriptions
  • added associated queue setting in multi-select actions in Subscriptions
  • playing an episode from an episodes list other than the queue is now a one-off play: no "next episode" to play, unless the episode is on the active queue, in which case, the next episode in the queue will be played
  • corrected the wrong displays in DownloadLog view
  • likely fixed crash issue when Podcini comes back from background during download
  • likely fixed a crash issue when deleting the last playing media in queue
  • updated various dependencies, media3 is up at 1.4.0
Podcini -

Published by XilinJia 3 months ago

  • enabled swipe actions in Queue bin view (same actions as in Queue)
  • both icons of show bin and back to queue are changed to be more intuitive
  • bin items are sorted based on the update time
  • added a reconsile feature in Downloads view that verifies episodes' download status with media files in system and performs cleanup
  • likely fixed syncing with nextcloud and gpoddernet servers.
Podcini -

Published by XilinJia 3 months ago

  • minor adjustments on FeedInfo page, especially for handling long feed title
  • disabled feed updates via menu or down-swipe in Queue, AllEpisodes, History, and Downloads views
  • in multi-select menu, replaced add/remove favorite with "toggle favorites" and mark read/unread with "Toggle played"
  • added a bin for every queue for all removed episodes
  • added Bin view in Queue and action bar item to switch to/from Bin view.
  • in menu of Queue view added "Clean bin" and removed "Switch queue"
  • updated some dependencies
Podcini -

Published by XilinJia 3 months ago

  • fixed issue of "mark excluded episodes played" checkbox not being reflected from the setting
  • in FeedSetting, fixed issue of auto-download options being enabled even if auto-download is not enabled
  • "Put in queue" changed to "Add to queue..." and added checkbox for removing from other queues
  • refined some handling on events
  • fixed issue of deleted episodes not being correctly handled in some lists
  • fixed issue of current media kept being played when removed or when removed from queue
  • in FeedEpisodes view, fixed (mostly) issue of not being promptly filtered when an episode state changes
  • when screen is turned back on during playback, PlayerUI is promptly updated
Podcini -

Published by XilinJia 3 months ago

  • added feed setting in the header of FeedInfo view
  • in all episodes list views, click on an episode image brings up the FeedInfo view
  • added countingPlayed for auto download in feed setting, when set to false, downloaded episodes that have been played are not counted as downloaded to the limit of auto-download
  • fixed possible mal-function of feed sorting
  • improved feed sorting efficiency
  • improved feed update efficiency
  • in Subscriptions view added sorting info on every feed (List Layout only)
  • "Put to queue" text changed to "Put in queue"
  • in dialogs "Put in queue" and "Switch queue" the spinner is changed to list of radio buttons
  • likely fixed hang when switching queue sometimes
Podcini -

Published by XilinJia 3 months ago

  • fixed crash issue when setting the inclusive or exclusive filters in feed auto-download setting
  • fixed player UI not updating on change of episode
  • changed title of Queues view to a spinner for easily switching queues
  • added "Put to queue" in multi-select menu putting selected episodes to a queue, this would also remove the episodes from any previous queues.
  • added condition checks for preparing enqueuing sync actions
  • in Subscriptions view added feeds filter based on feed preferences, in the same style as episodes filter
Podcini -

Published by XilinJia 3 months ago

  • fixed player UI not updating on change of episode
  • fixed the mal-function of restoring previously backed-up OPML
  • reduced reactions to PlaybackPositionEvent
  • tuned AutoCleanup a bit
  • tuned and fixed some some issues in audo-downloaded
Podcini -

Published by XilinJia 3 months ago

  • in FeedEpisode view fixed filtering after an episode's play state is changed
  • fixed refreshing a feed causes duplicate episodes in FeedEpisodes view
  • fixed the non-functioning of "Set navigation drawer items"
  • fixed crash when changing filter during media playing
  • item selection in list views only updates the selected item (rather than the whole list)
  • fixed episode action button not updated when deleting the media in episode list views
  • skipped concurrent calls for loading data in multiple views
  • toggle "Auto backup of OPML" in Settings will restart Podcini
  • automatically restoring backup of OPML upon new install is disabled. Instead, in AddFeed view, when subscription is empty and OPML backup is available, a dialog is shown to ask about restoring.
  • added audo downloadable to episodes filter
  • added download date to episodes sorting
  • added download date to feed sorting
  • auto download algorithm is changed to individual feed based.
    • When auto download is enabled in the Settings, feeds to be auto-downloaded need to be separately enabled in the feed settings.
    • Each feed also has its own download policy (only new episodes, newest episodes, and oldest episodes. newest episodes meaning most recent episodes new or old)
    • Each feed has its own limit (Episode cache) for number of episodes downloaded, this limit rules in combination of the overall limit for the app.
    • After auto download run, episodes with New status is changed to Unplayed.
    • auto download feed setting dialog is also changed:
      • there are now separate dialogs for inclusive and exclusive filters where filter tokens can be specified independently
      • on exclusive dialog, there are optional check boxes "Exclude episodes shorter than" and "Mark excluded episodes played"
  • set default value of "Include in auto downloads" in feed setting to false
  • remove an episode from queue no longer triggers auto download
  • got rid of many string delegates, in favor of enums
  • some class restructuring
Podcini -

Published by XilinJia 3 months ago

  • removed from preferences "Choose data folder", it's not suitable for newer Androids
  • some class restructuring, especially some functions moved out of Userpreferences
  • fixed issue of early termination when exporting a large set of media files
  • fixed the mal-functioning feeds and episodes search
  • updated realm.kotlin to 2.1.0