ByteHamster
c6e81391b2
Updated translations
2019-05-07 15:56:29 +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
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
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
a4c852dac0
Extract methods in NSITunes
...
References: #3024
2019-05-04 13:59:05 -04: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
d67aa6386e
Updated string
...
Closes #3145
2019-05-01 11:02:29 +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
ByteHamster
5d124c476a
Fixed sleep timer ANR ( Closes #3139 )
2019-04-27 10:50:13 +02:00
ByteHamster
0925078770
Translation updates
2019-04-24 23:19:52 +02:00
H. Lehmann
017a6ab3bc
Merge pull request #2957 from orionlee/bugfix_app_anr_in_auto_feed_update_2956
...
Prevent app crash during some automatic feed update
2019-04-19 12:02:25 +02:00
Brad Pitcher
a349865af3
use multi-line TextView for "No media playing"
2019-04-18 22:08:49 -07:00
Brad Pitcher
73c39fc3d0
no need to spell out android.view.View
2019-04-18 21:48:33 -07:00
Brad Pitcher
ee6e5ed5d0
space before ( for better style
2019-04-18 21:45:59 -07:00
Brad Pitcher
bf54e0e7c7
avoid "app not responding" errors loading widget image
2019-04-18 21:45:11 -07:00
Brad Pitcher
a60b6efc51
use ic_launcher_foreground for widget when nothing is playing
2019-04-18 21:43:35 -07:00
ByteHamster
2fca491f53
Made sure that there is not an ANR when switching media player
2019-04-17 20:52:13 +02:00
ByteHamster
1fe33fb351
Fixed NetworkOnMainThreadException
2019-04-16 22:50:59 +02:00
ByteHamster
0339ce7bca
Do not set player status before player object is created
2019-04-14 13:56:04 +02:00
ByteHamster
28f424e3c1
No locks are needed if everything is executed on main thread
2019-04-14 13:42:32 +02:00
Brad Pitcher
25915453ba
hide widget text when displaying < 3 columns
2019-04-12 17:56:53 -07:00
ByteHamster
09f4ebf08a
Let PlaybackController handle listening for service start
2019-04-12 11:39:38 +02:00
ByteHamster
7d20baf4f9
Upgraded EventBus to v3
...
Also made sure that register/unregister are called in onStart/onStop
instead of onResume/onPause (prevents possible MultiWindow problems
where updates are not received because activity is not fucused).
2019-04-12 11:32:31 +02:00
H. Lehmann
3f1e6b5d50
Merge pull request #3106 from ByteHamster/subscriptions-columns
...
Set number of subscription columns
2019-04-12 10:56:26 +02:00
ByteHamster
11b085c68b
Fixed attr redeclaration
2019-04-12 10:41:49 +02:00
H. Lehmann
b4f04f6d6d
Merge pull request #3105 from ByteHamster/style-repetition
...
Reduced repetition in styles.xml
2019-04-12 10:36:06 +02:00
Brad Pitcher
64ddf6ec96
use app_icon_size for layout width on widget components
2019-04-11 22:26:01 -07:00
Brad Pitcher
210afaeb3c
fix widget image glider
2019-04-11 22:25:24 -07:00
ByteHamster
cfd0af55c4
Removed nb translation
2019-04-11 21:54:57 +02:00
ByteHamster
777d92d4be
Set number of subscription columns
2019-04-11 21:24:51 +02:00
ByteHamster
6595f49f22
Reduced repetition in styles.xml
2019-04-11 21:02:45 +02:00
H. Lehmann
97d08f3b00
Merge pull request #3097 from ByteHamster/exoplayer-main-thread
...
Executing all ExoPlayer methods on main thread
2019-04-11 20:50:56 +02:00
ByteHamster
5745da75a6
Clarified that it is using caller thread. not main thread
2019-04-11 20:11:40 +02:00
Brad Pitcher
f2af5192e6
Merge branch 'develop' into fix-2359
2019-04-10 08:21:55 -07:00
ByteHamster
0e3cabb86d
Do not hold state in fragments
2019-04-10 01:05:36 +02:00
ByteHamster
156a20734a
Fix Sonic playback
2019-04-07 12:54:12 +02:00
ByteHamster
2c9cb25eda
Merge branch 'develop' into exoplayer-main-thread
2019-04-07 11:52:24 +02:00
ByteHamster
ebe32e795a
Executing all ExoPlayer methods on main thread
2019-04-07 00:19:02 +02:00
orionlee
20f1445c06
fix rebase conflicts - remove the incorrect @NonNull from rxjava
2019-04-06 14:19:16 -07:00
orionlee
1655d234af
#2966 RxJava2 null - case the underlying method may return null, but
...
should never happen in the code path, e.g.,
return the current FeedItem in ItemFragment UI.
Mark underlying method as @Nullable, and let observer's existing
onError() to handle null case
Rx observer : underlying sources marked as @Nullable
ItemFragment.load : .loadInBackground
MediaplayerActivity.checkFavorite : DBReader.getFeedItem
ItemDescriptionFragment.onViewCreated : DBReader.getFeedItem
ItemlistFragment.loadItems : .loadData
2019-04-06 13:43:11 -07:00
orionlee
0472bb9237
#2966 RxJava2 null - explicit mark underlying Rx sources as NonNull
...
to be on the safe side, for cases that the consuming observers checks null
unnecessarily.
Rx observer : underlying sources marked as NonNull
OnlineFeedViewActivity.startFeedDownload : Downloader.getResult
AllEpisodesFragment.loadItems : AllEpisodesFragment.loadData
PlaybackHistoryFragment.loadItems : DBReader.getPlaybackHistory
QueueFragment.loadItems : DBReader.getQueue
SearchFragment.search : .performSearch
2019-04-06 13:43:11 -07:00
orionlee
670fc124eb
#2966 RxJava2 null - explicit mark underlying Rx sources as NonNull
...
to be on the safe side, for cases that the consuming observers
already assumes the result is not null.
Rx observer : underlying sources marked as NonNull
OnlineFeedViewActivity.listener member : DBReader.getFeedList
StatisticsActivity.loadStatistics : DBReader.getStatistics
CustomMRControllerDialog.updateViews : CustomMRControllerDialog.fetchArt
CompletedDownloadsFragment.loadItems : DBReader.getDownloadedItems
DownloadLogFragment.loadItems : DBReader.getDownloadedItems
ItemDescriptionFragment.onViewCreated : .loadData, Timeline.processShownotes
SubscriptionFragment.loadSubscriptions : DBReader.getNavDrawerData
SubscriptionFragment.onContextItemSelected (x2) : DBWriter.markFeedSeen, DBWriter.markFeedRead
PreferenceController.export : ExportWorker.output member
2019-04-06 13:43:11 -07:00
H. Lehmann
5f86af88b1
Merge pull request #3083 from orionlee/bulk_remove_from_queue_1145
...
Bulk remove from queue
2019-04-06 21:45:55 +02:00
orionlee
cb14fd930f
refactor - rename string resource name `remove_episode_lable` , which was ambiguous with typos, to `delete_episode_label`
...
- non-default string resources to be handled by Transifex
2019-04-06 11:27:20 -07:00
orionlee
cc43af110a
tweak - bulk edit UI - show a message after an action is applied.
2019-04-06 11:15:14 -07:00
orionlee
b3fbf0b4aa
refactor - UI - remove the old (and now used) select all / none /intermediate icons
2019-04-04 14:05:51 -07:00
orionlee
d186309066
bulk edit - UI - new select all / none icons, based on
...
standard Material icons.
2019-04-04 13:50:55 -07:00
orionlee
dfe2241b4c
bulk remove episodes from queue - UI - icon for dark themes.
2019-04-04 13:12:09 -07:00
H. Lehmann
643173de14
Merge pull request #2954 from orionlee/bugfix_phantom_notification_rework_2716
...
Fix phantom service notification
2019-04-04 11:59:30 +02:00
orionlee
b683d33bcb
bulk edit - refactor - reorder method parameter for DBWriter.removeQueueItem(Context, FeedItem, boolean) to be consistent with the rest of the API.
2019-04-03 14:21:35 -07:00
orionlee
4322e8646f
bulk edit - UI tweak - rename "Remove Episode" to "Delete Episode", to be consistent with other UIs
2019-04-03 13:27:31 -07:00
ByteHamster
46510c808a
Respect 'keep updated' for new items counter
2019-04-03 18:11:55 +02:00
H. Lehmann
7a98e3c231
Merge pull request #3082 from ByteHamster/mobile-updates
...
Mobile updates: Allow images
2019-04-03 17:43:53 +02:00
H. Lehmann
b6e50c61d6
Merge pull request #3060 from jatinkumarg/issue-3052
...
Added empty views to the PlayBack History, Queue,and Downloads
2019-04-03 17:42:09 +02:00
ByteHamster
788e75515a
Review changes
2019-04-03 17:29:44 +02:00
orionlee
3768dfb0ff
bulk edit - "N selected" UI logic
2019-04-02 17:34:05 -07:00
orionlee
364c9a308d
bulk remove from queue - backend - implement the new API
2019-04-02 15:59:27 -07:00
orionlee
70287a740e
bulk remove from queue - backend - refactor existing logic to support bulk remove
2019-04-02 14:59:12 -07:00
orionlee
7d78b88a1c
bulk remove from queue - frontend logic, with a stub backend.
2019-04-02 14:11:22 -07:00
orionlee
737f7571ab
UI Prototype for Batch Edit Episodes rework (from #1145 )
2019-04-02 11:47:57 -07:00
ByteHamster
6fe171fac9
Use ApOkHttpUrlLoader for all images
...
Probably got broken during my Glide update.
When using append or prepend, Glide uses the next one in the chain if ApOkHttpUrlLoader blocks
2019-04-02 17:41:21 +02:00
ByteHamster
0fda36b9b3
Add preference to allow mobile updates of images
2019-04-02 17:41:15 +02:00
Borjan Tchakaloff
c589bd2022
Validate that the *new* and *not played* are also exclusive
...
The FeedItem state is actually a tri-state, complement the test
coverage by checking that the state changes from *new* to
*not played*.
2019-03-31 21:26:53 +02:00
Borjan Tchakaloff
6ebf1defe7
Validate that the item state is only changed when needed
...
Follow-up to commit 8172d87477
(#3067 )
that adds test coverage for the resolved issue.
Also, fix that commit by making the update condition more explicit:
the FeedItem state is only changed when a state switch is necessary.
In other words, an item marked as *new* that gets downloaded should
lose the *new* mark and gain the *unplayed* mark instead.
2019-03-31 16:28:05 +02:00
Borjan Tchakaloff
cba4059063
Require the Mockito library for unit testing
2019-03-31 16:26:26 +02:00
Borjan Tchakaloff
3c7fd274de
Validate that the *new* and *played* states are exclusive
2019-03-31 16:26:26 +02:00
H. Lehmann
c6344f5bc0
Merge pull request #3073 from deandreamatias/fix-button-shadow-3040
...
Fix #3040 Video playback control button shadow
2019-03-31 00:44:50 +01:00
Matias de Andrea
56456e0001
Delete unused drawable
2019-03-30 21:21:11 +01:00
Martin Fietz
f900046c66
Merge pull request #3068 from bibz/develop
...
Do not reset item "played" flag on media download
2019-03-30 11:12:46 +01:00
Matias de Andrea
7f3f2180cc
Fixes #3040
...
- Delete unused icons
2019-03-29 22:27:26 +01:00
Matias de Andrea
007f92c291
Change the icons in interface #3040
2019-03-29 22:23:52 +01:00
Matias de Andrea
9e21695486
Add new vector icons #3040
2019-03-29 22:21:04 +01:00
Jatin Kumar
209b0b3880
Fixed typos
2019-03-29 14:20:11 -04:00
Matias de Andrea
09087b354d
Fix #3040
...
- Change the size of the button circle background
2019-03-29 12:57:52 +01:00
H. Lehmann
42cbdbd989
Merge pull request #3066 from orionlee/bugfix_statistics_played_duration_inflated_2162
...
bugfix - statistics - inflated actual played duration
2019-03-27 20:51:13 +01:00
Jatin Kumar
bdf7bf6844
Fixes #3052 : Added empty views to the Playback History, Queue, Downloads and Episodes
2019-03-27 04:16:06 -04:00
Borjan Tchakaloff
8172d87477
Do not reset item "played" flag on media download
...
If an item has already been played, downloading its media will not
reset that "played" flag.
Fixes : #3067
2019-03-25 15:41:39 +01:00
orionlee
0a01f6e00b
#2162 bugfix - statistics - inflated actual played duration
2019-03-24 13:00:37 -07:00
Jatin Kumar
6662205167
Added empty views to the PlayBack History, Queue,and Downloads
2019-03-21 03:05:01 -04:00
Matthieu De Beule
e25659a128
Fix #3054 : use UTF-8 to encode password and username for gpodder auth
2019-03-08 17:46:30 +01:00
orionlee
7a905c0570
remove the commented stopService() call (to avoid future confusion)
2019-03-05 15:07:16 -08:00
orionlee
24915785eb
remove the stopService() per review (which might unnecessarily
...
stop the playback when unsupported media buttons are pressed.)
2019-03-05 15:01:48 -08:00
H. Lehmann
c1bfb9183c
Merge pull request #3013 from hannesa2/buildImprovements
...
Build improvements
2019-03-05 23:49:00 +01:00
orionlee
e94e95e844
remove dead codes
2019-03-04 13:46:11 -08:00
orionlee
600e0e561e
coding style fix per review
2019-03-04 13:44:53 -08:00
H. Lehmann
c0f534e825
Merge pull request #3050 from ByteHamster/add-backup-keyword
...
Add backup keyword to search
2019-03-04 18:57:37 +01:00
ByteHamster
579b263a86
Add backup keyword to search
2019-03-04 14:33:39 +01:00
ByteHamster
c50d37fa1b
Moved some implementation tests to unit tests
2019-03-03 23:55:52 +01:00
H. Lehmann
1593a06077
Merge pull request #3032 from shortspider/3031-TimecodeRegex
...
Change Timecode Regex
2019-03-03 23:26:32 +01:00
Nathan Mascitelli
1d0e701525
Another atempt at fixing the regex
2019-03-03 13:36:28 -05:00
Nathan Mascitelli
7e3ccd97da
Fix regex
2019-03-02 12:12:26 -05:00
Nathan Mascitelli
6f69b4b140
Adjust regext to ignore X:Y timecodes
2019-03-02 08:47:52 -05:00
orionlee
a3389490bb
ensure the service continues to run in the event it takes a long time for the service to load the media to play, e.g.,
...
streaming over a slow network.
2019-02-27 14:59:31 -08:00
orionlee
ab78c1d410
bug fix for Android8+: revert context.startService() calls back to
...
ContextCompat.startForegroundService(), to ensure PlaybackService
can be started.
While PlaybackService itself ensures it will be raised to foreground
when appropriate, Android 8+ forbids creating the (background)
services to begin with (and throw IllegalStateException) in some
situation (e.g., BroadcastReceiver).
https://developer.android.com/about/versions/oreo/android-8.0-changes#atap
2019-02-27 14:52:34 -08:00
orionlee
2c5db08e25
minor cleanup of Log codes and comments.
2019-02-27 14:52:34 -08:00
orionlee
221cd4b480
refactor stop PlaybackService setupNotification() - extract common
...
code as private helper.
2019-02-27 14:52:34 -08:00
orionlee
f0f8623937
refactor stop PlaybackService codes - remove legacy dead codes
2019-02-27 14:52:34 -08:00
orionlee
584865ad18
review stop PlaybackService codes (stopSelf, stopForeground, etc.)
2019-02-27 14:52:34 -08:00
orionlee
3f14fac479
remove static PlaybackService.started, in favor of the start state
...
managed by inner ServiceManager.
Also add a generic java8-like Optional class for use with RxJava2 where
null was to be returned (RxJava2 requires non-null).
2019-02-27 14:52:34 -08:00
orionlee
e26a54bdbc
start playbackService code paths reviewed (context.startService() and
...
ContextCompat.startForegroundService())
2019-02-27 14:52:34 -08:00
orionlee
76fbab8e82
more #2716 - fix VideoPlayback upon hitting home button.
2019-02-27 14:52:34 -08:00
orionlee
f3980091a9
#2716 Prototype for the revamped PlaybackService to fix phantom
...
notification. Many rough edges. Notable TODOs are marked with [2716].
2019-02-27 14:52:34 -08:00
ByteHamster
6dafc8b127
Transifex: removed duplicate Italian translation
...
Using it_IT for all italian languages because it's 100% finished
2019-02-21 15:17:59 +01:00
Nathan Mascitelli
e94e4bc3d0
Use a single format for short timecodes
...
It is unlikely that multiple formats for short timecodes would be used
in one document. Therefor we will parse all the short timecodes to see
if they are all less then the duration as HH:MM. If they are we will use
that, otherwise we will parse them as MM:SS.
2019-02-13 21:06:19 -05:00
Nathan Mascitelli
c49e98b546
Handle more then 23 hours
2019-02-12 20:53:17 -05:00
Nathan Mascitelli
39b9df5064
Timecode parsing logic now handles two short formats
...
We now handle both HH:MM and MM:SS when paring timecodes. We will move
in reverse order (assuming that the timecodes will increase over the
course of the document) and parse short codes as HH:MM. When we get a
result that does not fit into the duration we will change to parse as
MM:SS and use that for the rest of the document.
2019-02-12 19:43:57 -05:00
Nathan Mascitelli
d0f617880c
Converter handles HH:MM and MM:SS
2019-02-12 19:43:37 -05:00
Nathan Mascitelli
96b0336b2c
Update Timeline regex
...
Regex now looks for the new types of short and long timestamps.
2019-02-10 18:01:00 -05:00
ByteHamster
abe68ec7bd
Merge remote-tracking branch 'upstream/develop' into auto_download_12_hour_option_2685
2019-02-01 16:25:20 +01:00
Burt Wiley Snyder
7f100b3fa6
Null handling in OnlineFeedViewActivity ( #3004 )
2019-02-01 15:57:19 +01:00
Hannes Achleitner
0663e422a6
unify lint options for all modules
2019-01-27 12:54:56 +01:00
Hannes Achleitner
e9c10cdaa8
simplify build concerning maven repos
2019-01-27 12:45:32 +01:00
Hannes Achleitner
9ca7888d92
remove buildtools specification
2019-01-27 12:42:02 +01:00
pachecosf
a80435a03b
switched implementation to ussing attr
2019-01-18 12:09:24 -08:00
pachecosf
fd83665970
Changed implementation using themeUtils instead
2019-01-17 16:21:34 -08:00
pachecosf
7da762b8ea
Changed implementation using themeUtils instead
2019-01-17 16:18:50 -08:00
pachecosf
ecff66eff6
fixed styles
2019-01-17 12:29:23 -08:00
pachecosf
43642a5e6b
adding highlighting of drawer item functunality
2019-01-16 20:51:54 -08:00
pachecosf
5d3e3687f9
Adding some highlighting of drawer items
2019-01-16 18:26:42 -08:00
ByteHamster
994a73a06f
NonNull annotation
2019-01-15 20:48:15 +01:00
ByteHamster
35f6050194
Only delete from queue if deletion of media succeeds
2019-01-15 11:30:48 +01:00
H. Lehmann
cf477de365
Merge pull request #2921 from qkolj/delete-episodes
...
Add delete option to episode's context menu
2019-01-15 11:23:44 +01:00
ByteHamster
71fdc65c5b
Hiding settings that ExoPlayer does not yet support
2019-01-15 11:18:02 +01:00
H. Lehmann
3cad182e41
Merge pull request #2961 from HaBaLeS/AP2253
...
Remove silence in podcast episodes
2019-01-15 11:08:56 +01:00
H. Lehmann
7265fc55ba
Merge pull request #2969 from ByteHamster/colorDark
...
Expanding toolbar
2019-01-15 10:44:05 +01:00
H. Lehmann
d62aaf1026
Merge pull request #2968 from ByteHamster/translation-update
...
Translation updates
2019-01-15 10:43:04 +01:00
orionlee
9090d697b0
#2947 - fix app crash in some error case with ExoPlayer.
...
(It does not address root problems in #2947 though).
2019-01-11 13:33:25 -08:00
ByteHamster
6c9f15e0bc
Splash status bar color
2019-01-10 13:12:23 +01:00
ByteHamster
84ede1b22d
Expanding toolbar
2019-01-09 22:55:50 +01:00
ByteHamster
0914ac2b4a
Updated strings.xml translations
2019-01-09 21:17:47 +01:00
H. Lehmann
b2e18b8128
Merge pull request #2944 from abendebury/develop
...
Fix bug preventing database import on Android 9.
2019-01-06 00:04:08 +01:00
falko
73c8635354
Add skip silence checkbox to audio control
...
Add new Checkbox to dialog. Enable only if ExoPlayer is selected.
Selection directly changes player behavior
2019-01-05 23:15:02 +01:00
falko
1d8509fd8a
Enable ExoPlayer feature to skip silence
...
SetSpeed was change to SetPlaybackParams which contain speed and a switch to skip silence. For Players that fo not support this the call is ignored or only SetSpeed is used. It is only working if ExoPlayeris used
Default is OFF
2019-01-05 23:14:08 +01:00
falko
33603f8edd
Update ExoPlayer Version to 2.9.3
...
In order to support the feature to skip silence audio ExoPlayer must be
updated. Lateste avaiable Version is 2.9.3
2019-01-05 14:20:26 +01:00
orionlee
eff2f154b5
fix code formatting
2019-01-04 10:33:26 -08:00
orionlee
d1c73dda5b
episode cleanup 12 hour option - use hours internally part 2 (persisted shared preference)
...
requires data migartion: app versionCode increased to 1070196
2019-01-04 10:33:26 -08:00
orionlee
566a682122
episode cleanup 12 hour option - use hours internally part 1 (actual algorithm, no persistence)
2019-01-04 10:33:25 -08:00
orionlee
4ff5690341
episode cleanup 12 hour option: add unit test to prepare for using hours
...
rather than days as data structure
2019-01-04 10:32:14 -08:00
orionlee
1bb0694403
Mark method only used in testing.
2019-01-04 10:32:14 -08:00
orionlee
df6424be60
#2685 : add "12 hours after finishing" option for auto download episodes cleanup
2019-01-04 10:32:14 -08:00
orionlee
33810b203e
Mark method only used in testing.
2019-01-04 10:32:14 -08:00
orionlee
5bc497009a
#2685 : add "12 hours after finishing" option for auto download episodes cleanup
2019-01-04 10:32:14 -08:00
orionlee
949a05c17a
fix #2956 - prevent ANR during some automatic feed update
2019-01-04 10:15:09 -08:00
Petar Kukolj
dfcb16d77b
Include Awaitility in app module and properly fix the added test
2019-01-04 00:13:00 +01:00
Petar Kukolj
ebc0200968
Fix a style issue and fix the test
2019-01-03 22:50:30 +01:00