Commit graph

657 commits

Author SHA1 Message Date
Stypox
727de29bd6 Merge pull request #10021 from Isira-Seneviratne/PendingIntentCompat
Switch to AndroidX's PendingIntentCompat.
2023-04-14 14:20:47 +02:00
Isira Seneviratne
c91ffa4863 Use AndroidX's PendingIntentCompat class. 2023-04-13 10:53:46 +05:30
AudricV
bc7758d29f Move media tunneling setting to ExoPlayer settings and make this setting available on release builds
Media tunneling may be not supported by more devices than the ones we
whitelisted before.

As a matter of fact, the list of devices on which media tunneling is disabled
could be not maintainable in the future, especially if the list of devices
grows more and more.

A preferable solution is to allow users to configure this setting themselves,
allowing them to not wait for their device(s) to be whitelisted in a future
NewPipe update.

This solution has been applied in this commit and works on every build type.

The corresponding preference in the debug settings has been of course removed
and the code used to prevent media tunneling activation on specific devices has
been removed.
2023-04-10 17:37:30 +02:00
AudricV
2f3b066b84 Use a system chooser when opening links in browser in the case there is no browser available
This change makes the app using the behavior when there is no default browser
on Android 11 and lower, by opening a system chooser when there is no browser
available (on all Android versions).

Also catch any exception when the system chooser cannot be opened and show the
"No app on your device can open this" toast in this case, as an
`ActivityNotFoundException` could be thrown if no app is available to open a
given web link.
2023-03-26 00:04:38 +01:00
Stypox
529c09e32c Merge pull request #8180 from Trust04zh/fix-4053-8176
Make UI behavior for playback information display more consistent
2023-02-26 13:22:13 +01:00
Stypox
38687fe75f Improve javadocs in ShareUtils 2023-02-25 13:14:31 +01:00
Stypox
ebda768674 Rename videoURL to streamUrl 2023-02-25 13:14:31 +01:00
Stypox
e8e04606f8 Use non-deprecated resolveActivity method on API 33+
But such method is not available before API 33
2023-02-25 13:14:31 +01:00
Stypox
de067fe798 Correctly open urls in browser on Android 11+
- Fix misconfiguration in manifest ('http|https|market' is not valid)
- Split ShareUtils functions taking a boolean parameter into pairs of functions with better names and less runtime checks
- Move all Kore-related functions to KoreUtils
- Remove the toast_no_player string
2023-02-25 09:13:59 +01:00
Stypox
898cac8cf5 Fix opening links on Android 12+ 2023-02-07 22:39:12 +01:00
Trust_04zh
62a906bb73 Make positions in list depend on watch history, remove confusing animations
The following is the list of all commits squashed together:

Regain function for option `Positions in lists`

use option `Resume playback` to control display of progress info in VideoDetailFragment, remove this (extra) function from option `Positions in lists`.
remove extra check for live streams, live streams updates just as non-live streams.

fix #8176 by eliminating exit delay

Regain function for option `Positions in lists`

update code with developer's comments

 apply static import to methods in util class DependentPreferenceHelper

Regain function for option `Positions in lists`

use option `Resume playback` to control display of progress info in VideoDetailFragment, remove this (extra) function from option `Positions in lists`.
remove extra check for live streams, live streams updates just as non-live streams.

fix behavior for displaying progress bar when autoplay off but video resume on

not to retrieve unnecessary states when position in lists disabled

fix mistake in code

simplify conditional logic

update doc comment and remove unused method

Fix not showing duration if position indicators disabled

Positions in lists only depends on watch history
2023-02-07 09:48:18 +01:00
Stypox
f287323be5 Merge pull request #9631 from TeamNewPipe/update-npe
Update NewPipeExtractor and properly linkify comments
2023-01-28 22:40:19 +01:00
Stypox
a1a98b9723 Merge pull request #9671 from Stypox/fix-toast-crash-api33
Fix popup enablement toast crash on API 33
2023-01-15 21:05:05 +01:00
Stypox
c889808a15 Update NewPipeExtractor and properly linkify comments 2023-01-15 19:27:56 +01:00
Mahendran
bf63b3aca2 Thumbnails used in NewPipe are small (list/grid) mode. This PR facilitates full width thumbnails and dubbed as card mode. 2023-01-15 22:32:03 +05:30
Stypox
0470fc2853 Create text subpackage in util 2023-01-15 11:51:07 +01:00
AudricV
6de5a8cf04 Add ability to copy hashtags, URLs and timestamps in descriptions on long-press
This commit adds the ability to copy to clipboard hashtags, URLs and timestamps
when long-pressing them.

Some changes in our TextView class related to text setting have been required
and metadata items are now using a NewPipeTextView instead of a standard
TextView.

Six new classes have been added:

- a custom LinkMovementMethod class;
- a custom ClickableSpan class, LongPressClickableSpan, in order to set a long
  press event;
- a class to avoid code duplication in CommentTextOnTouchListener, TouchUtils;
- three implementations of LongPressClickableSpan used when linkifying text:
  - HashtagLongPressClickableSpan for hashtags;
  - TimestampLongPressClickableSpan for timestamps;
  - UrlLongPressClickableSpan for URLs.
2023-01-15 11:40:27 +01:00
Stypox
48d181d9ae Merge pull request #9619 from Redirion/avoidreflectionifpossible
Check availability of Samsung DeX only on Samsung devices
2023-01-12 12:06:19 +01:00
Stypox
2def965f65 Fix toast crash on API 33
You shouldn't call getView() on toasts.
Also simplified some duplicate code.
2023-01-12 11:39:25 +01:00
petlyh
c45279d38a Ask for permission when enqueuing in a popup 2023-01-10 14:16:19 +01:00
Robin
f601e09592 Samsung DeX should only be checked on Samsung devices
Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
2023-01-03 15:12:02 +01:00
Stypox
7a57485107 Merge pull request #9306 from Stypox/target-api-33
Set compileSdk and targetSdk to 33 (Android 13)
2022-12-31 14:49:30 +01:00
Stypox
97892f04d3 Merge pull request #8895 from Isira-Seneviratne/SparseArrayCompat
Use SparseArrayCompat.
2022-12-28 20:37:05 +01:00
Isira Seneviratne
846f59c73b Use BitmapCompat.createScaledBitmap(). 2022-11-29 15:56:19 +01:00
Stypox
cce863f9fe Request permission to send notifications 2022-11-28 18:49:11 +01:00
AudricV
5bdf145505 Merge pull request #8961 from dhruvpatidar359/Toast-Popup
Remove the redundant/overlapping toast "Copied to clipboard" for Android 13+
2022-11-26 21:33:12 +01:00
Isira Seneviratne
3add1e2af3 Use SparseArrayCompat instead of SparseArray in StreamItemAdapter.
Make additional small improvements as well.
2022-11-22 18:31:58 +05:30
Isira Seneviratne
37182c7b84 Merge pull request #8870 from Isira-Seneviratne/Locale_forLanguageTag
Use Locale.forLanguageTag().
2022-11-10 19:56:34 +05:30
AudricV
97837d4295 Improve code of DeviceUtils.isDesktopMode
- Avoid NullPointerException crashes if there is no UiModeManager or desktop
system service mode
- Use final for every exception
- Suppress missing fields warnings
- Add missing NonNull annotation
2022-11-09 16:22:49 +01:00
cybersphinx
a085e6ee04 Remove now obsolete API check. 2022-11-09 15:50:09 +01:00
cybersphinx
7bb41180e1 Remove errant return. 2022-11-09 15:50:09 +01:00
cybersphinx
277ef2c450 Add check for input devices with cursor. 2022-11-09 15:50:06 +01:00
Hanif Shersy
0666eeb4cf Add JSDoc comment and a performance note for isDesktopMode 2022-11-09 15:48:50 +01:00
Hanif Shersy
4d40192b50 Address review comments 2022-11-09 15:44:36 +01:00
Hanif Shersy
329e3c371a Fix DeX mode check 2022-11-09 15:44:36 +01:00
Hanif Shersy
7847fca6c4 Fix persistent hover overlay when mouse connected 2022-11-09 15:44:27 +01:00
Isira Seneviratne
0ac9d3a3e0 Group private Localization methods together. 2022-11-09 08:54:47 +05:30
Isira Seneviratne
28d0cc6932 Use Locale.forLanguageTag(). 2022-11-09 08:51:12 +05:30
dhruvpatidar359
434f161b3e Remove the redundant/overlapping toast "Copied to clipboard" for Android 13+
Signed-off-by: dhruv <dhruvpatidar35@gmail.com>

Co-authored-by: Tobi <TobiGr@users.noreply.github.com>
Co-authored-by: AudricV <74829229+AudricV@users.noreply.github.com>
2022-11-08 20:47:50 +01:00
Isira Seneviratne
0ca88d029e Add helper methods for adding PendingIntent mutability. 2022-11-07 17:12:22 +05:30
Stypox
fd1237698d Merge pull request #8747 from Isira-Seneviratne/Range_limit
Use range-limiting methods in more places.
2022-10-28 10:34:04 +02:00
Stypox
029f02e4f9 Deduplicate isGridLayout calls 2022-10-27 17:25:06 +02:00
HybridAU
dcca274ecc Add play queue button to video details fragment
* Add play queue button to video details fragment

* Use existing ic_list icon

* Still open play queue even when queue is empty

* Change app:srcCompat to android:src
2022-09-14 21:00:44 +08:00
Stypox
ce1b88eeec Keep strong reference to Picasso thumbnail loading target
Before the Target would sometimes be garbage collected before being called with the loaded thumbnail, since Picasso holds weak references to targets
2022-08-25 17:02:52 +02:00
Stypox
9fe370cda1 Fix sometimes seeing outdated thumbnail in notification
Before the thumbnail finishes loading for the new video the player is now playing, the old thumbnail was being used, leading to wrong thumbnails set in the media session and the notification.
2022-08-25 17:02:51 +02:00
Stypox
9bfea8082c Keep strong references to Picasso notification icon loading targets
Before the Target would sometimes be garbage collected before being called with the loaded channel icon, since Picasso holds weak references to targets. This meant that sometimes a new streams notification  would not be shown, because the lambda that should have shown it had already been garbage collected.
2022-08-25 16:41:51 +02:00
Stypox
327ee1bc5a Merge pull request #8666 from TacoTheDank/filepicker
Update FilePicker to our custom fork and disable Jetifier
2022-08-12 09:15:34 +02:00
Isira Seneviratne
2e350c9675 Use range-limiting methods in more places. 2022-08-08 07:10:16 +05:30
Stypox
5bc82ad0f9 Merge pull request #8738 from Isira-Seneviratne/Collectors_joining
Use Collectors.joining().
2022-08-06 22:31:31 +02:00
Stypox
43fd5a75bf Improve comment 2022-08-06 11:56:00 +02:00