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.
- 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
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
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.
- 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
* 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
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.
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.