Commit graph

727 commits

Author SHA1 Message Date
ThetaDev
bc2add7828 feat: add track selection to downloader 2023-03-20 21:41:28 +01:00
ThetaDev
079f78a339 feat: add language selector to audio player 2023-03-19 01:15:36 +01:00
ThetaDev
4f15c6f49d feat: add audio language selector 2023-03-17 21:51:40 +01:00
Stypox
f6ef1d14f7 Merge pull request #9728 from mahendranv/channel_card
Larger channel cards in search results
2023-02-26 13:43:09 +01:00
pratyaksh1610
d07978cbe4 fix progress bar scaling in card view 2023-02-09 21:38:02 +05:30
Mahendran
5751979faa Larger channel cards in search results
- Thumbnail larger (100dp) than the usual (92dp) throughout the app
- Description lint count is 8 (normally 3)
2023-02-09 06:15:22 +05:30
Stypox
e10a3aa2e3 Merge pull request #9538 from Jared234/4186_warning_duplicates_in_playlist
Handle duplicate streams in the "Add to playlist" dialog
2023-01-29 10:36:31 +01:00
Stypox
64a7d8a903 Improve playlist duplicate indicator layout 2023-01-29 10:32:44 +01:00
ge78fug
8c5fe2b01c Centered the icon 2023-01-19 23:24:25 +01:00
ge78fug
84610add06 Changed the position 2023-01-19 21:15:09 +01:00
ge78fug
1fa686c437 Chenged the chapter icon 2023-01-16 15:13:34 +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
7ea16cfc96 Merge pull request #9555 from Marius1501/make_the_channel_images_bigger
Made the channel-images in the grid list bigger
2023-01-15 15:16:09 +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
ge78fug
440b3e72d4 Made the channel-images in the grid list bigger
Also improved the handling of additional information (expanded description, video count, subscriber count)
2023-01-15 10:50:20 +01:00
Jared Fantaye
7a3b3452c4 Fixed the functionality, improved performance & general code cleanup 2023-01-14 18:01:47 +01:00
Jared Fantaye
40522dbebf Started working on a way to show that items are already in a playlist 2023-01-14 18:01:47 +01:00
pratyaksh1610
858a7cedee added icon for play all 2022-12-17 17:41:57 +05:30
Stypox
0710757ceb Merge pull request #9173 from Theta-Dev/video-sub-count
Show subscriber count on video details page
2022-12-04 20:50:13 +01:00
Stypox
52b897888a Make subscribers in video detail fragment dimmer 2022-12-04 20:45:10 +01:00
ThetaDev
01a4cfa0c0 show subscriber count on player page 2022-12-04 20:45:09 +01:00
Stypox
cb06490875 Center text in empty views 2022-12-04 19:25:38 +01:00
Stypox
0defd52b0d Show hint about how to import subscriptions when there are none 2022-12-04 19:16:47 +01:00
Stypox
c8d56464d6 Rename list_empty_subtitle string 2022-12-04 18:59:14 +01:00
Stypox
35e8d11346 Make miniplayer close button area larger 2022-11-29 12:07:30 +01:00
Stypox
97d2e5307a Merge pull request #9207 from cern1710/list-view-alt-alt-implementation
undefined
2022-10-27 22:48:03 +02:00
Stypox
e7397e1a8f Make channel groups button sizes larger 2022-10-27 17:35:55 +02:00
YonghaoDeng
22ab44cd7e Add an Open in browser button on error panel (#9180)
* add a open in browser button

* Corrected a few things that needed to be changed

* Remove unneeded changes.

* Remove unneeded changes.

* Add showAndSetOpenInBrowserButtonAction function

* modify some codes
2022-10-27 14:38:08 +02:00
Stypox
366e1be1e4 Fix grid/list toggle implementation of feed 2022-10-26 23:20:32 +02:00
Samuel Wu
edcdcd2e8a Resized add new item button 2022-10-26 21:23:50 +11:00
Yuuu2990
2c600fb3c7 Add Link to FAQ in the app (#9164)
* Link to FAQ in the app #4447

* remove redundant comments produced by me.

* Update app/src/main/res/values/strings.xml

Update FAQ description

Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>

* Format the CodeStyle and readjust the layout.

* Update app/src/main/res/layout/fragment_about.xml

Remove redundant id.

Co-authored-by: Stypox <stypox@pm.me>

* Update app/src/main/res/layout/fragment_about.xml

Remove redundant id.

Co-authored-by: Stypox <stypox@pm.me>

* Update app/src/main/res/values/strings.xml

Keep the uppercase for consistency.

Co-authored-by: Stypox <stypox@pm.me>

* Update app/src/main/res/values/strings.xml

Modify the description of FAQ.

Co-authored-by: Stypox <stypox@pm.me>

Co-authored-by: opusforlife2 <53176348+opusforlife2@users.noreply.github.com>
Co-authored-by: Stypox <stypox@pm.me>
2022-10-26 09:59:51 +02:00
Samuel Wu
c7237ca59c Altered grid view similar to Youtube app layout 2022-10-26 00:06:48 +11:00
Samuel Wu
07a5d6965e Finalized design for vertical card view and removed unneeded variables in SubscriptionFragment.kt 2022-10-25 11:43:25 +11:00
Samuel Wu
ecde2c7a5e Added working binding for a "new" button that works in the list layout. 2022-10-25 02:38:31 +11:00
Samuel Wu
48bc0320aa Button can be toggled but not all strings have been fed 2022-10-24 23:01:02 +11:00
Samuel Wu
d7d5ddfdb0 Created a list view for channel group. 2022-10-24 18:55:08 +11:00
Samuel Wu
af71271530 Created a non-functional button in HeaderWithMenuItem.kt 2022-10-23 23:43:52 +11: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
litetex
1706856f24 Merge pull request #8170 from Stypox/player-refactor
Refactor player and extract UI components
2022-07-15 19:41:23 +02:00
Stypox
a6cc11225d Rename dummy_* and more to placeholder_* 2022-07-14 14:27:33 +02:00
Stypox
0928add36b Remove bottom-sheet-thumbnail placeholder, clear the image instead 2022-07-14 14:14:33 +02:00
krlvm
6e3add060e Rename buddy.xml to dummy_person.xml 2022-07-14 14:14:32 +02:00
krlvm
175459cd4f Improve image placeholders
- Show placeholders until the image is loaded because timeout can be very long and missing profile pictures and video thumbnails make app inconvenient to use

- Adapt profile picture and video thumbnail placeholders to light theme

- Replace profile picture and video thumbnail placeholders with vector graphics
2022-07-14 14:14:32 +02:00
Stypox
5ba14c4b7c Refactor player: separate UIs and more 2022-07-13 23:25:26 +02:00
litetex
9071397ee9 Clean up pre-Lollipop compat attributes 2022-07-13 19:03:45 +02:00
Stypox
39753fa0fb Align playlist thumbnail to left for more visibility 2022-07-04 22:37:27 +02:00
Stypox
49844ddcf0 Make thumbnails' scaleType fitCenter
Otherwise e.g. shorts thumbnails would be cropped too much
2022-07-04 21:43:31 +02:00
Stypox
3f93974020 Improve download_dialog.xml unsupported streams notice 2022-06-18 19:16:36 +02:00
AudricV
f7d2975ad1 Add support of other delivery methods than progressive HTTP (in the player only)
Detailed changes:

- External players:

  - Add a message instruction about stream selection;
  - Add a message when there is no stream available for external players;
  - Return now HLS, DASH and SmoothStreaming URL contents, in addition to progressive HTTP ones.

- Player:

  - Support DASH, HLS and SmoothStreaming streams for videos, whether they are content URLs or the manifests themselves, in addition to progressive HTTP ones;
  - Use a custom HttpDataSource to play YouTube contents, based of ExoPlayer's default one, which allows better spoofing of official clients (custom user-agent and headers (depending of the client used), use of range and rn (set dynamically by the DataSource) parameters);
  - Fetch YouTube progressive contents as DASH streams, like official clients, support fully playback of livestreams which have ended recently and OTF streams;
  - Use ExoPlayer's default retries count for contents on non-fatal errors (instead of Integer.MAX_VALUE for non-live contents and 5 for live contents).

- Download dialog:

  - Add message about support of progressive HTTP streams only for downloading;
  - Remove several duplicated code and update relevant usages;
  - Support downloading of contents with an unknown media format.

- ListHelper:

  - Catch NumberFormatException when trying to compare two video streams between them.

- Tests:

  - Update ListHelperTest and StreamItemAdapterTest to fix breaking changes in the extractor.

- Other places:

  - Fixes deprecation of changes made in the extractor;
  - Improve some code related to the files changed.

- Issues fixed and/or improved with the changes:

  - Seeking of PeerTube HLS streams (the duration shown was the one from the stream duration and not the one parsed, incomplete because HLS streams are fragmented MP4s with multiple sidx boxes, for which seeking is not supported by ExoPlayer) (the app now uses the HLS manifest returned for each quality, in the master playlist (not fetched and computed by the extractor));
  - Crash when loading PeerTube streams with a separated audio;
  - Lack of some streams on some YouTube videos (OTF streams);
  - Loading times of YouTube streams, after a quality change or a playback start;
  - View count of YouTube ended livestreams interpreted as watching count (this type of streams is not interpreted anymore as livestreams);
  - Watchable time of YouTube ended livestreams;
  - Playback of SoundCloud HLS-only tracks (which cannot be downloaded anymore because the workaround which was used is being removed by SoundCloud, so it has been removed from the extractor).
2022-06-17 22:00:22 +02:00
litetex
481152acdd Bonus fix: Made `single_choice_dialog_view` scrollable + use viewbinding 2022-05-28 00:46:28 +02:00