Commit Graph

793 Commits

Author SHA1 Message Date
Bart De Vries
8c8a3a91d6 Fix Overlays not being visible when virtual keyboard pops up simultaneously 2021-11-05 10:25:44 +01:00
Bart De Vries
ff556fd632 Fix pedantic compiler warning 2021-11-05 09:03:07 +01:00
Devin Lin
aa01c04869 Fix flicking not working in mobile footer 2021-11-04 21:18:21 -04: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
214394aae7 Fix kasts icon on android
Also fix a minor compiler warning (mentioned during android build)

BUG: 444892
2021-11-04 15:38:09 +01:00
Bart De Vries
e6e0563498 Fix android craft packaging 2021-11-04 10:41:11 +01:00
Bart De Vries
a27fed1dc5 Fix android build (SolidExtras rename to KastsSolidExtras) 2021-11-03 23:38:28 +01:00
Tobias Fella
53249607db Also rename solidextras library 2021-11-03 20:56:26 +01:00
Bart De Vries
6d3951dcd6 Fix very weird msvc compiler issue 2021-11-03 19:51:38 +01:00
Bart De Vries
d0acc10c2b Fix kasts crashing on Android 2021-11-03 16:52:35 +01:00
Bart De Vries
76b242d150 Fix setting play position when syncing 2021-11-03 09:39:06 +01:00
Yuri Chornoivan
8f5b3c0aa6 Add i18n() 2021-10-30 22:49:32 +03:00
Bart De Vries
5882781a9f Reverse subscriptions and episodes in main menu
This is probably a more useful order.  It's also consistent with the new
mobile bottom toolbar.
2021-10-30 19:46:30 +02:00
Bart De Vries
ad5213176e Fix bottom margin for notifications now that floating buttons are gone 2021-10-30 19:45:53 +02:00
Devin Lin
e16c40d57c Add mobile bottom navbar, use Titles toolbar on mobile, and add blurred image background to mobile player 2021-10-30 17:10:19 +00: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
Bart De Vries
0d37ee9f82 Make Chapter Marks accessible on desktop 2021-10-29 14:45:01 +00:00
Bart De Vries
d4b5103c2b Add copy buttons for feed and episode download URLs
BUG: 443282
2021-10-29 14:42:45 +00:00
Bart De Vries
c28739efeb Fix bug when downloading enclosure on "unknown" metered connection
Trying to download an enclosure on a connection with unknown metered
status would trigger the overlay sheet with actions.
2021-10-28 23:38:15 +02:00
Bart De Vries
5b15f4c7b9 Solve issue with FolderDialog
FolderDialog has issues retrieving the selected folder if that folder
has been selected through xdg-desktop-portal (i.e. flatpaks).  Reverting
to FileDialog from QtQuick.Dialogs.

BUG: 443956
2021-10-28 13:12:04 +02:00
Bart De Vries
2455e543fe Fix fetch-on-startup logic
The fetch-on-startup would only happen if the metered state was
explicitly set to "No".  Hence, when the state is "Unknown" (which will
happen in most cases) no fetching would be done on startup.

The new logic will check for the metered state not being equal to "Yes".
2021-10-27 10:20:44 +02:00
Bart De Vries
3ff1333195 Fix uninitialized member variable m_sizeOnDisk 2021-10-26 23:14:44 +02:00
Bart De Vries
4f83ac8701 Solve memory leak when fetching feeds 2021-10-26 22:32:58 +02:00
Bart De Vries
710f44d2ef Fix parsing chapter marks containing a decimal point 2021-10-25 11:50:40 +02:00
Tobias Fella
3d5a00d2d7 Rename solidextras plugin to prevent name clashes when also using
itinerary
2021-10-24 16:11:47 +02:00
Nicolas Fella
dd5b79faea Fix taglib includes
FindTaglib reports <prefix>/include/taglib/ as include path, so we must
not prefix the headers with taglib/
2021-10-15 00:36:03 +02:00
Bart De Vries
ca595c985c Make parsing of chapter timestamps more robust
Solves #19
2021-10-13 20:42:24 +02:00
Tobias Fella
6d164e019b Remove debug print 2021-10-13 20:10:24 +02:00
Bart De Vries
9f9bcb639e Remove leftover canCheckNetworkStatus calls 2021-10-11 12:26:17 +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
52f90157ca Make sure chapter marks show up in the correct order 2021-10-07 13:28:47 +02:00
Bart De Vries
b77c3b46af Don't make text selectable on mobile since it messes up scrolling 2021-10-07 12:07:14 +02: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
Nicolás Alvarez
880f1d3dc3 Add GitLab CI for Android 2021-10-07 11:42:55 +02:00
Nicolas Fella
e8af438871 Add FreeBSD CI 2021-10-07 01:36:51 +02:00
Bart De Vries
de954f644a Fix issues with cached images being accessed while the download is still running 2021-10-06 19:16:06 +00:00
Tobias Fella
044dbf5f23 Implement loading chapters from mpeg files 2021-10-06 21:08:12 +02:00
Nicolas Fella
4c73f1c71c Remove broken windows header
It's not needed and breaks the build
2021-10-04 22:41:49 +02:00
Tobias Fella
67d10d32bf Link against sqlite on android
Tricks androiddeployqt into including the libraries
2021-10-04 19:12:31 +00:00
Bart De Vries
748c9e3116 Fix compiler warnings 2021-10-03 20:49:42 +02:00
Tobias Fella
e60880603b Add compile_commands.json to .gitignore 2021-10-03 19:08:09 +02:00
Bart De Vries
fdbe348f12 Make Entry and Feed details text selectable 2021-10-02 20:39:15 +02:00
Bart De Vries
157e1219bb Fix 'Allow Once' feed update after it was broken by refactoring 2021-10-02 20:32:36 +02:00
Bart De Vries
c061a01c59 Wrap feed update routine in KJob and make it more efficient
The feed update routine which is now spread over several methods
in Fetcher, is now put into a self-contained KJob.  This will allow
to re-use this job later on in e.g. gpodder sync, where it's
required to update feeds before syncing episode statuses.

This also makes the feed update abortable.

Lastly, but most importantly, the feed update procedure has been
optimized to minimize database transactions, resulting in a dramatic
speed-up.  This is especially true for importing new feeds, which
will now be at least 5x faster on slow hardware.
2021-10-01 22:36:42 +02:00
Bart De Vries
e4ee0f19fd Do not create feed object if it's not in the database
Also clear errors related to a feed that's being removed from the database.
2021-10-01 15:46:17 +02:00
Albert Astals Cid
c0dc8cee6a Add "dummy" contexts to two i18np
gettext complained that there's another string with the same text but
not plural and that is bad, so add a dummy context to make gettext happy

xgettext: warning: msgid 'Remove Podcast' is used without plural and with plural.
             ./qml/FeedListDelegate.qml:279: Here is the occurrence without plural.
             ./qml/FeedListPage.qml:249: Here is the occurrence with plural.
          Workaround: If the msgid is a sentence, change the wording of the sentence; otherwise, use contexts for disambiguation.
xgettext: warning: msgid 'Delete Download' is used without plural and with plural.
             ./qml/GenericEntryDelegate.qml:294: Here is the occurrence without plural.
             ./qml/GenericEntryListView.qml:207: Here is the occurrence with plural.
          Workaround: If the msgid is a sentence, change the wording of the sentence; otherwise, use contexts for disambiguation.
2021-09-30 22:43:49 +02:00
Nicolas Fella
0b272313ed Enable proper Linux CI 2021-09-29 16:05:02 +02:00
Bart De Vries
f0f4da8aa7 Improve contextual actions for the FeedList and EntryLists
This adds "select all", "deselect all" to the page contextual actions
and adds "show podcast info" to the OverlayPage opened by clicking on
the overflow menu button on the cards.
This also adds correct use of plurals for the actions if more than one
item has been selected.
2021-09-29 08:50:00 +02:00