Commit graph

714 commits

Author SHA1 Message Date
ktprograms
0abbbe7b59 Change type of themeWrapper to ContextThemeWrapper 2021-08-25 08:56:26 +08:00
ktprograms
26f80ceaef Show popup menu when long pressing in play queue (Full screen player) 2021-08-25 08:56:26 +08:00
Stypox
2f78a6cacb Merge pull request #6919 from ktprograms/channel-details-all-places
Add Show Channel Details where it's missing
2021-08-24 16:43:21 +02:00
Stypox
12ad678d14 Apply review: move thumbnail loading out of Player 2021-08-24 10:56:25 +02:00
Stypox
5be16c885b Always create new bitmap when resizing thumbnail
This prevents strange crashes on some devices, fixes #4638
2021-08-24 10:56:25 +02:00
Stypox
b39bf7b9d0 Recycle Bitmap in transformation 2021-08-24 10:56:25 +02:00
Stypox
8602beed0b Replace UniversalImageLoader with Picasso 2021-08-24 10:56:25 +02:00
TobiGr
64cf6d94c8 Merge branch 'master' into dev 2021-08-22 22:22:37 +02:00
ktprograms
79d4eaec04 Save uploader url when adding from PlayQueueItem 2021-08-16 08:08:50 +08:00
evermind-zz
27adea1619 name the regions according to the comments (#6854)
if a region is named android studio will show its name in the structure view.
2021-08-10 22:38:23 +00:00
Stypox
b68c82e8b6 Fix play queue theme 2021-08-04 18:41:23 +02:00
Stypox
3c6a72affd Remove equals() method from PlayQueueItem 2021-07-21 18:09:18 +02:00
Isira Seneviratne
63c1d5a7a4 Use WindowInsetsCompat's getInsets() method. 2021-07-19 15:17:44 +05:30
litetex
c6d831cc76 Removed unused import (rebasing/merge problem) 2021-07-17 16:52:24 +02:00
litetex
281bb7bee0 Set minWidth to 10dp so that the popup player works (mostly) correctly 2021-07-17 16:43:03 +02:00
litetex
48e203bcb1 Added seekbarThumbnailPreview 2021-07-17 16:43:00 +02:00
Stypox
8e9a615bc9 Merge pull request #6637 from Isira-Seneviratne/Use_GestureDetectorCompat
Use GestureDetectorCompat.
2021-07-17 12:58:43 +02:00
Tobi
4b30ed9398 Merge pull request #6503 from evermind-zz/fixes-for-upstream
Prevent error msg: 'Unrecoverable player error occurred' while playin…
2021-07-14 09:53:30 +02:00
Tobi
e5545a7dfc Merge pull request #6566 from evermind-zz/various-fixes-for-upstream
Convert PlayerHolder to Singleton; cleanup in VideoDetailFragment; Player/MainPlayer do not call onDestroy() directly
2021-07-14 09:46:04 +02:00
Isira Seneviratne
47c4416778 Use GestureDetectorCompat. 2021-07-10 15:35:11 +05:30
evermind
946b463895 Prevent error msg: 'Unrecoverable player error occurred' while playing video during rotation (#6502)
Playing a video in VideoDetailFragment and rotating the screen to landscape (back and forth more often)
can trigger this error message. Especially if rotation for whatever reason takes long or
playing a high resolution (1080p) video.

The underlying logcat error messages:
05-12 16:38:38.251 24920 26037 E Surface : getSlotFromBufferLocked: unknown buffer: 0x923fc810
05-12 16:38:38.251 24920 26037 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 35 to native window

The problem is that that Exoplayer is trying to write to our -- during rotation -- no longer existant
(VideoDetailFragment) SurfaceView.

Solution:
Implementing SurfaceHolder.Callback and using DummySurface we can now handle the lifecycle of the Surface.

How?: In case we are no longer able to write to the Surface eg. through rotation/putting in
background we can set a DummySurface. Although it only works on API >= 23.
Result: we get a little video interruption (audio is still fine) but we won't get the
'Unrecoverable player error occurred' error message.

This implementation is based on and more background information:
 'ExoPlayer stuck in buffering after re-adding the surface view a few time 2703'

 -> exoplayer fix suggestion link
  https://github.com/google/ExoPlayer/issues/2703#issuecomment-300599981
2021-07-06 12:49:56 +02:00
evermind
61a54d9a64 convert PlayerHolder to Singleton, handle context within, bugfix ServiceConnection leak
- bugfix: have ServiceConnection created only once!

- select the context within the PlayerHolder to start, stop, bind or unbind the service
  -> we have to make sure the Service is started AND stopped within the same context
  -> so let PlayerHolder be the one to select the context

- remove removeListener() and replace the call with setListener(null)
- Compatibility: use ContextCompat.startForegroundService instead of startService()
2021-07-06 12:31:26 +02:00
Robin
109b333511 Fix NPE when connecting via BT 2021-06-25 09:14:15 +02:00
evermind
e8cc3d250c service.onDestroy() should only be called from the system and not manually
instead use service.stopService() which inturn calls stopSelf() and
triggers hopefully onDestroy() to be called. Eventually we have to make
sure that all ServiceConnections are closed to successfully stop the service
now!

Cleanup within stopService() and not only onDestroy()

So we make sure that all listeners can react to onServiceStopped()
and close their ServiceConnections. Afterwards the android framework
is ready to stop the Service.
2021-06-24 10:15:07 +02:00
Tobi
09934df29b Merge pull request #3371 from mauriciocolli/feed-hide-played-items
Add ability to hide played items in a feed
2021-06-18 09:18:48 +02:00
TiA4f8R
a23dff74a3 Move some classes to a new subpackage and adress requested changes
Rename URLHandler and KoreUtil classes to InternalUrlsHandler and KoreUtils.
Move InternalUrlsHandler, KoreUtils, TextLinkfier, ShareUtils classes to external_communication subpackage.
Remove unused param showPreviewText in shareText method of ShareUtils class.
Add initial work to be able to display an image preview of the content shared (not for downloads).
Use a better regular expression to parse timestamps in plain text descriptions.
2021-06-11 12:12:02 +02:00
TiA4f8R
1d615df928 Initial work to add the image of the content in the share sheet
Also do some fixes when sharing a file in downloads and some improvements in JavaDocs of ShareUtils class.
2021-06-11 12:12:00 +02:00
Stypox
f07eaa13d5 Correctly save stream progress at the end of a video 2021-06-09 15:53:51 +02:00
Stypox
b84b34be36 Save playback state even if stream is finished and add isFinished() 2021-06-09 15:53:51 +02:00
Tobi
f733ca325f Merge pull request #6444 from TeamNewPipe/increasebufferafterdepletion
Increase buffer for playback after rebuffer
2021-06-08 17:02:18 +02:00
Stypox
4e44a8915d Use url at current time for long click on player share button 2021-06-08 14:34:51 +02:00
Abanoub Sameh
3a8e7a8020 Long press on player share button to copy url to clipboard 2021-06-08 14:23:33 +02:00
Robin
c96e58374a Increase buffer for playback after rebuffer 2021-06-07 09:25:49 +02:00
Stypox
fb84d8ff36 Use constraint layout for play queue item
Also remove invalid ic_selected attribute
2021-06-07 08:07:27 +02:00
Douile
3d26543e65 Hide queue duration when displaying segment panel
Fixes #6441
2021-06-07 02:10:44 +01:00
TobiGr
d34dab889b Fix playback speed not being updated in PlayQueuAcitvity
Fixes #6419
2021-06-05 12:24:59 +02:00
Zhiheng Xu
acbe0bfc94 Change shuffle() guard to check for size <= 2
After testing the app, I realized that shuffling a queue with size 2
does nothing
2021-05-24 12:20:19 -04:00
Zhiheng Xu
6da5d1585d Remove redundant clearing of list 2021-05-24 12:20:19 -04:00
Zhiheng Xu
e29058412e Refactor shuffle and update documentation
- Add early return for invalid sizes to shuffle

 - Rename variables to be more descriptive

 - Refactor moving list element, removing unnecessary operations

 - Unwrap if clause for adding to history because the condition is
   guaranteed by the guard clause

 - Inline the value 0 for the ReorderEvent

 - Update documentation to reflect new changes
2021-05-24 12:20:19 -04:00
Eric Xu
3a8aa90c72 Rearrange fields
Final fields should be arranged first
2021-05-24 12:20:19 -04:00
Eric Xu
158791043e Resolve TODO in indexOf(...)
PlayQueueItem overrides equals and hashCode, so using indexOf is
perfectly fine.
2021-05-24 12:20:19 -04:00
Eric Xu
784c78c89e Rewrite setIndex(int) to pass unit tests
Original did not cover the case of when streams is empty and
documentation does not specify any input restrictions.

There's an ambiguity with broadcasting an event between the
documentation and the actual code (see TODO).
2021-05-24 12:20:19 -04:00
Eric Xu
55da632641 Refactor assignments to field declaration
Assignments that don't require the constructor can be moved out.
2021-05-24 12:20:19 -04:00
Eric Xu
78ff6485a2 Add hashCode() to match equals(other) 2021-05-24 12:20:19 -04:00
Eric Xu
61e2ab4d80 Refactor streams to initialize with values 2021-05-24 12:20:19 -04:00
Eric Xu
8b2b3f8fe2 Refactor ArrayList fields to List 2021-05-24 12:20:19 -04:00
Eric Xu
b4b6726ec8 Refactor and optimize equals
- Remove multiple casts of obj

 - Simply use object equals on the streams because PlayQueueItem’s
   equals already compares urls
2021-05-24 12:20:19 -04:00
TobiGr
14a6130a44 Add support for PeerTube HLS streams 2021-05-23 11:53:35 +02:00
Robin
6debb784b7 TEST: Downgrade ExoPlayer to 2.12 2021-05-14 14:47:53 +02:00
Robin
c1dc93e2d7 Fixed checkstyle 2021-05-14 12:15:48 +02:00