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.
A new class has been added in the util package: NewPipeTextViewHelper.
It shares the selected text of a TextView with ShareUtils#shareText (with the created shareSelectedTextWithShareUtils static method).
Only this static method can be used by other classes, other methods are private.
This TextView class extends the AppCompatTextView class from androidx.
These changes (only in XML ressources) allow us to share the selected text by using ShareUtils.shareText, which opens the Android system chooser instead of the Huawei system chooser on EMUI devices.