Commit Graph

5113 Commits

Author SHA1 Message Date
ByteHamster
3fca616e30 Revert "Merge pull request #2954 from orionlee/bugfix_phantom_notification_rework_2716"
This reverts commit 643173de14, reversing
changes made to f2d103736d.
2019-05-17 09:45:22 +02:00
H. Lehmann
b28134e397
Merge pull request #3182 from ByteHamster/illegalstate-fix
Do not deliver result if view is destroyed
2019-05-15 12:07:48 +02:00
ByteHamster
068a4255c1 Do not deliver result if view is destroyed 2019-05-14 22:19:56 +02:00
ByteHamster
b617397397 Bumped version to 1.7.2 2019-05-12 18:25:15 +02:00
ByteHamster
543acfd98e Updated contributors 2019-05-12 18:24:45 +02:00
ByteHamster
d8165126a1 Taking Transifex password from transifexrc 2019-05-12 18:22:51 +02:00
H. Lehmann
627c943a7b
Merge pull request #3179 from ByteHamster/io-main-thread
Do not query database on main thread
2019-05-12 10:17:52 +02:00
ByteHamster
e99ce0a33b Do not query database on main thread 2019-05-12 00:20:30 +02:00
Anderson Mesquita
65abd2bbb4 Prevent actionbar items from moving when searching
Previously, when the user clicked the search button, the context menu
would be hidden and the refresh button would move way too close to the
edge of the screen.

This makes sure that when a user clicks the search button on the
episodes screen, the remaining actionbar items (refresh and context
menu) stay where they are.
2019-05-11 14:20:57 -04:00
Stephen Kitt
0a1a54d28d
Smart shuffle: spread episodes evenly
This reworks the sort algorithm used in smart shuffle so that episodes
are spread out evenly, which avoids episodes bunching up at the bottom
of the queue when one feed has more episodes than others, and avoids
running through feeds with few episodes very quickly.

Signed-off-by: Stephen Kitt <steve@sk2.org>
2019-05-09 18:38:34 +02:00
ByteHamster
c9b17c14f1 Bumped version to 1.7.2-RC5 2019-05-08 19:55:00 +02:00
H. Lehmann
96f582a4d4
Merge pull request #3166 from ByteHamster/fix-some-tests
Fixed some integration tests
2019-05-08 19:30:04 +02:00
ByteHamster
bf6f6376db Do not deadlock
The Android internal media player blocks its `start()` call until the
seek listener completes. The seek listener is called on the main thread
even though `start()` is called on the executor. This makes the main
thread wait for the lock and the executor (which has the lock) wait for the
main thread to finish the call to the listener.
2019-05-08 19:18:44 +02:00
Anderson Mesquita
e9e61776ed Fix cover fragment in small screens
The cover fragment would hide both podcast and episode names in small
screen devices or multi-window mode.

This replaces the deprecated PercentRelativeLayout in favor of a regular
LinearLayout with weights to make sure that each section of the fragment
(podcast title, image, episode name) will have the necessary space in
the screen.

Since PercentRelativeLayout was only being used here, it also removes
the dependencies from the gradle files.

Closes: #3169
2019-05-08 09:48:00 -04:00
ByteHamster
e464569712 Fixed NPE 2019-05-08 15:37:53 +02:00
ByteHamster
df395ea388 Open web links in browser 2019-05-07 17:56:35 +02:00
ByteHamster
c6e81391b2 Updated translations 2019-05-07 15:56:29 +02:00
ByteHamster
7ce4685447 Bumped version to 1.7.2-RC4 2019-05-07 15:54:36 +02:00
H. Lehmann
86129a9686
Merge pull request #3167 from ByteHamster/threading
Fixed threading bugs in Sonic
2019-05-07 15:47:40 +02:00
ByteHamster
dc24f5f163 Updated release notes 2019-05-07 15:44:17 +02:00
ByteHamster
5a99580985 Do not deadlock on seek when using Sonic
Callbacks are called on the thread that created the MediaPlayer.
For Sonic, this is the executor. For ExoPlayer, this is the main thread.
When calling executor.submit, every thread waiting for the runnable to
complete gets blocked.

Because the callback is called in the thread that created the player,
we can simply remove the call to executor.submit and still be sure
that a background thread is used.
2019-05-07 15:32:48 +02:00
ByteHamster
c16bbdfc96 Do not block when using Sonic+Sleep timer 2019-05-07 14:58:34 +02:00
ByteHamster
ae3cef3bd2 Fixed some integration tests 2019-05-06 23:52:02 +02:00
ByteHamster
0dc23a6c99 Removed opml pick action 2019-05-06 23:20:25 +02:00
ByteHamster
cd5224d01b Charging constraint is related to auto download only 2019-05-06 23:08:45 +02:00
ByteHamster
dbda4a9aa8 Using WorkManager for feed updates 2019-05-06 23:04:19 +02:00
H. Lehmann
d7768d33e2
Merge pull request #3161 from andersonvom/2982-fix-icon-padding
Fix padding when count is zero and error happened
2019-05-06 16:33:32 +02:00
Anderson Mesquita
419c10632b Scroll to chapter currently being played
This is especially helpful for episodes that have a large number of
chapters.

Closes: #2853
2019-05-05 08:22:31 -04:00
Anderson Mesquita
fb3bfa9f80 Handle iTunes single-number duration format
Apple says this [1] about the `<itunes:duration>` tag:

    If you specify a single number as a value (without colons), Apple
    Podcasts displays the value as seconds.

This commit makes it also handle this single-number format.

Closes: #3024

[1]: https://help.apple.com/itc/podcasts_connect/#/itcb54353390
2019-05-05 00:04:06 -04:00
Anderson Mesquita
9b41139709 Extract DurationParser
This makes it easier to test the logic of parsing duration strings.

References: #3024
2019-05-05 00:04:06 -04:00
Anderson Mesquita
af31464cd5 Fix padding when count is zero and error happened
When we're not able to get the episode count for a podcast and updating
the feed fails, the error icon shown in the navbar is too close to the
right/end border of the nav drawer.

This fixes this padding.

Closes: #2982
2019-05-04 18:14:28 -04:00
Anderson Mesquita
a4c852dac0 Extract methods in NSITunes
References: #3024
2019-05-04 13:59:05 -04:00
H. Lehmann
0107cf22cc
Merge pull request #3155 from ByteHamster/empty-view-simplification
Simplify empty view handling on recycler views
2019-05-03 12:24:27 +02:00
H. Lehmann
605475d2ed
Merge pull request #3156 from ByteHamster/crash-episodes-long-press
Fixed NPE when selected item is null
2019-05-03 12:23:08 +02:00
H. Lehmann
2f7314eb2e
Merge pull request #3157 from ByteHamster/add-thread-names
Added names for threads
2019-05-03 12:21:13 +02:00
ByteHamster
01616dd502 Added names for threads
So it is easier to identify problems in bug reports
2019-05-03 12:17:05 +02:00
ByteHamster
7f514384fc Fixed NPE when selected item is null
The method is called again with a valid listAdapter automatically
Closes #3154
2019-05-03 11:56:27 +02:00
ByteHamster
06c15fd9e6 Simplify empty view handling on recycler views 2019-05-03 11:06:04 +02:00
ByteHamster
7a921e0024 Fixed about screen readability in amoled theme (Closes #3151) 2019-05-03 10:20:23 +02:00
ByteHamster
d67aa6386e Updated string
Closes #3145
2019-05-01 11:02:29 +02:00
Martin Fietz
954cf87eff
Merge pull request #3147 from ByteHamster/fix-empty-list
Fixed empty list not receiving updates
2019-04-30 20:55:12 +02:00
ByteHamster
9b91a51df8 Fixed empty list not receiving updates 2019-04-30 18:57:09 +02:00
H. Lehmann
717b1cb0ad
Merge pull request #3141 from andersonvom/remove-exceptions
Fix thrown exceptions when adding/removing podcasts
2019-04-30 18:44:21 +02:00
Anderson Mesquita
a2cd8cca73 Return Optional feed when loading feed items
RxJava 2.x no longer accepts `null` values and will yield a
`NullPointerException` immediately or as a signal to downstream [1].

This returns an Optional<Feed> instead to avoid errors.

[1]: https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#nulls
2019-04-30 06:10:41 -04:00
Cédric Cabessa
b2dc208019 force refresh time when playback speed change
This is useful when media is paused
2019-04-28 21:03:18 +02:00
Cédric Cabessa
cf638a4978 use time converter and pref in MediaPlayer and Widget 2019-04-28 21:03:18 +02:00
Cédric Cabessa
6187945e8f add a time conversion class
convert time depending on current playback speed and preferences
2019-04-28 21:03:18 +02:00
Cédric Cabessa
743ec1927c add preference for "Time respects playback speed" 2019-04-28 21:03:18 +02:00
Anderson Mesquita
34d33f796e Close OkHttp request before making new ones
When adding certain podcasts [1], a `LeakedClosableViolation` is thrown
due to the fact that we're reusing the OkHttpClient to make multiple
requests (one to get the iTunes toplist for the user's language, and
another one defaulting to US).

This makes sure that all requests are closed to prevent this exception,
according to OkHttp docs [2].

[1]: https://podcasts.apple.com/us/podcast/stupid-genius-with-emma-chamberlain/id1458568923
[2]: https://github.com/square/okhttp/blob/18f2b5e/okhttp/src/main/java/okhttp3/Call.kt#L32-L40
2019-04-28 09:10:02 -04:00
ByteHamster
a4dc3d9e96 Bumped version to RC3 2019-04-28 14:39:01 +02:00