Commit Graph

62 Commits

Author SHA1 Message Date
Bart De Vries 48c1cffd4e [KMediaSession] Put compilation of example player behind switch 2023-01-23 20:55:57 +01:00
Bart De Vries 9e423a5fb7 Update CMakeLists.txt 2023-01-21 12:49:55 +01:00
Bart De Vries 9ead23ff59 Port c++ to qt6 2023-01-20 14:23:30 +00:00
Bart De Vries eb07e67f70 [KMediaSession] Implement dynamic audio backend framework
KMediaSession is an audio player library that has an API which is close
to QMediaPlayer and which allows to use --- and dynamically switch
between --- different audio backends. At this moment there is
implementation for libVLC, gstreamer and QtMultimedia. Only QtMultimedia
is a hard dependency in order to at least have one functional backend on
all platforms; all other dependencies are optional.

KMediaSession has out-of-the-box, built-in MPRIS2 support, sleep inhibit,
and basic metadata support.

BUG: 462358

Closes #35
2023-01-16 15:36:54 +01:00
Bart De Vries fba4822874 Bump KF minimum version to 5.102.0 2023-01-16 15:36:28 +01:00
Bart De Vries cd6ee1c812 Install cloud playback icon to system 2023-01-01 15:22:03 +01:00
Devin Lin c30bfbb5a5 Use pageStack.popHiddenPages
This uses a new property in Kirigami to simplify the code.
2022-12-18 10:24:15 +00:00
Devin Lin 60c99fe31f Add strict Kirigami Addons compile time dependency 2022-11-30 14:34:08 +01:00
Devin Lin 6c8d0fa404 Port settings to MobileForm components 2022-11-30 14:34:08 +01:00
Bhushan Shah bcfcaf3bfd Update version number for 22.11
GIT_SILENT
2022-11-30 13:27:27 +05:30
Bart De Vries db802b6b17 Look for, and link to, Kirigami and QtSvg on all platforms
I don't know why they were historically only included for Android.  But
this fixes qt6 porting.
2022-10-06 19:07:55 +02:00
Bart De Vries cee1bb9dab Add Kirigami as dependency on all platforms
Don't know why this was missed until now.
2022-09-30 21:52:13 +02:00
Bhushan Shah 30de73132a GIT_SILENT: bump version to 22.09 2022-09-27 20:24:02 +05:30
Bart De Vries 1043f4a63e Add app icons for windows build
Closes #26
2022-06-30 20:23:34 +00:00
Bhushan Shah 2411829546 GIT_SILENT: bump version to 22.06 2022-06-23 21:11:20 +05:30
Bart De Vries 633f4fd0f0 Use multithreading for feed updates (using ThreadWeaver)
This contains the following changes:
- Use separate db connections for feed updates (required for
  multithreading.
- Add ThreadWeaver dependency.
- Port update job from KJob to ThreadWeaver::Job
- This should also solve the bug where the update process would hang
  on the "processEvents" call, which was intended to keep the UI
  responsive during updates.

BUG: 452585
2022-05-29 15:22:23 +02:00
Nicolas Fella 4369127934 Adapt build system to Qt6 2022-05-02 10:24:12 +00:00
Bhushan Shah 38f4f154af GIT_SILENT: bump version to 22.04 2022-04-23 17:04:12 +05:30
Tobias Fella 7887ff2cc9 Add ki18n_install 2022-04-07 17:00:44 +02:00
Devin Lin 36d9a84bff Port to Kirigami.Dialog
This should simplify logic, and also handles scrolling nicely.
Appearance and UX-wise, everything should be the same as before with OverlaySheet.
2022-03-04 09:11:22 +00:00
Bhushan Shah bea2ab7992 GIT_SILENT: Update version and appstream data for 22.02 2022-02-08 18:23:50 +05:30
Bhushan Shah e09b6f614b GIT_SILENT Update version number for 21.12 2021-12-05 10:16:24 +05:30
Tobias Fella 226176f48c Add build.gradle
This gives us more control over the files that are added to the apk
2021-11-20 20:42:19 +00:00
Bart De Vries 19d7a2c12b Bump KF5_MIN_VERSION to 5.87.0
This is required for NavigationTabBar

BUG 445423
2021-11-13 18:11:53 +01:00
Tobias Fella 02d78b2f32 Don't try to use clang-format on android at all 2021-11-04 19:51:06 +01:00
Bart De Vries f861f4e802 Add podcast subscription and episode play state synchronization
This implements the gpodder API from scratch.  It turned out that
libmygpo-qt has several critical bugs, and there's no response to pull
requests upstream.  So using that library was not an option.

The implementation into kasts consists of the following:
- Can sync with gpodder.net or with a nextcloud server that has the
  nextcloud-gpodder app installed.  (This app is mostly API compatible
  with gpodder.)
- Passwords are stored using qtkeychain.  If the keychain is
  unavailable it will fallback to file.
- It syncs podcast subscriptions and episode play positions, including
  marking episodes as played. Episodes that have a non-zero play
  position will be added to the queue automatically.
- It will check for a metered connection before syncing.  This is
  coupled to the allowMeteredFeedUpdates setting.
- Full synchronization can be performed either manually (from the
  settings page) or through automatic triggers: on startup and/or on
  feed refresh.
- There is an additional possibility to trigger quick upload-only syncs
  to make sure that the local changes are immediately uploaded to the
  server (if the connection allows).  This will trigger when
  subscriptions are added or removed, when the pause/play button is
  toggled or an episode is marked as played.
- This implements a few safeguards to avoid having multiple feed URLS
  pointing to the same underlying feed (e.g. http vs https).  This
  solves part of #17

Solves #13
2021-10-29 18:47:55 +02:00
Tobias Fella 6ad1818734 Create better Settings
Use the settings components from Kirigami
2021-10-29 17:04:07 +02:00
Tobias Fella 6d164e019b Remove debug print 2021-10-13 20:10:24 +02:00
Tobias Fella fc6969e018 Implement network status checking on android
Replaces the whole thing with the solidextras implementation found in
itinerary
2021-10-09 19:32:28 +00:00
Bart De Vries 0afdb0d50c Add ZLIB optional dependency for Android CI 2021-10-07 11:42:56 +02:00
Tobias Fella f6a8f40d9a Try fixing CI 2021-10-07 11:42:56 +02:00
Tobias Fella 044dbf5f23 Implement loading chapters from mpeg files 2021-10-06 21:08:12 +02:00
Tobias Fella 67d10d32bf Link against sqlite on android
Tricks androiddeployqt into including the libraries
2021-10-04 19:12:31 +00:00
Bhushan Shah ac68c16087 GIT_SILENT: Update cmake version for 21.08 2021-08-31 15:13:22 +05:30
Bhushan Shah 29a74c8552 GIT_SILENT Update version number for 21.06 2021-07-19 10:01:27 +05:30
Bart De Vries 719879072e Workaround for kde_configure_git_pre_commit_hook not working on android CI 2021-06-19 17:05:04 +02:00
Bart De Vries 70024b0865 Add clang-format git hook 2021-06-19 13:39:49 +02:00
Bart De Vries 60432619f1 Bump minimum cmake version
FindKF5.cmake requires cmake minimum version 3.16
2021-06-19 00:26:24 +02:00
Bhushan Shah 8671ec8aa4 GIT_SILENT Update version number for 21.06 2021-06-09 20:11:18 +05:30
Bart De Vries 3983e09634 Use qCDebug in AudioManager 2021-05-28 22:55:18 +02:00
Bart De Vries e4cda46a34 Add PROJECT_VERSION to CMakeLists.txt 2021-05-27 23:19:21 +02:00
Tobias Fella 9cbfde6d7c Add more license information 2021-05-12 13:43:49 +02:00
Bart De Vries 1c44e717ae Renaming alligator to kasts everywhere 2021-05-03 22:31:45 +02:00
Bart De Vries 0846dd9d9b Disable DBus as dependency for Android 2021-05-03 12:59:06 +02:00
Bart De Vries 76c30dff87 Fix issues identified in review by Tobias Fella 2021-04-27 09:43:58 +02:00
Bart De Vries 0bf3540dbd Also add DBus as dependency for android 2021-04-21 14:53:02 +02:00
Bart De Vries 7d94792872 Add audiomanager and powermanagementinterface
Both classes are based on classes taken from Elisa.

The audiomanager class will be adapted to add functionality like saving
and restoring play positions and interfacing with MPRIS2.
2021-04-21 14:53:02 +02:00
Tobias Fella e5837425d3
Support podcasts 2021-03-22 23:33:44 +01:00
Nicolas Fella 76c61c60bb CMake stuff 2020-10-22 14:41:30 +02:00
Tobias Fella b8ee516162 Change file names 2020-06-06 18:23:04 +02:00