Commit graph

142 commits

Author SHA1 Message Date
Hailey
10cdc436b8
[Video] Ensure loop doesn't stop (#5207) 2024-09-07 11:54:51 -07:00
Hailey
7e4f8cabd3
[Video] Handle push/pop on Android for autoplay (#5194) 2024-09-06 15:01:05 -07:00
Hailey
60182cd874
[Video] Add disable autoplay for native, more tweaking (#5178) 2024-09-06 09:31:01 -07:00
Eric Bailey
b90cd68359
Remove record-with-media side-by-side layout (#5182) 2024-09-06 09:58:27 -05:00
Hailey
6eabedd037
[Video] More adjustments for loading state jank (#5171) 2024-09-05 14:54:09 -07:00
Eric Bailey
2265fedd2a
Constrain image heights in feeds and threads (#5129)
* Limit height of images within posts

* Add some future-proofness

* Comments, improve a11y

* Adjust ALT, add crop icon

* Fix disableCrop in record-with-media posts

* Clean up aspect ratios, handle very tall images

* Handle record-with-media separately, clarify intent using enums

* Adjust spacing

* Adjust rwm embed image size on mobile

* Only do reduced layout if images embed

* Adjust gap in small embed variant

* Clean up grid layout

* Hide badge on small variant with one image

* Remove crop icon from image grid, leave on single image

* Fix sizing in Firefox

* Fix fullBleed variant
2024-09-05 13:45:13 -05:00
Hailey
93c171b403
[Video] Use expo-video from fork (#5159) 2024-09-05 08:27:28 -07:00
Samuel Newman
428607d9a3
[Video] throw HLS errors to be caught by error boundary (#5166)
* throw HLS errors to be caught by error boundary

* wording tweak

* do the same on native

* fix type error
2024-09-05 16:03:00 +01:00
Samuel Newman
60b74f7ab8
[Video] Disable autoplay option (preview + web player) (#5167)
* rename setting

* preview (web)

* preview (native)

* improve autoplay disabled behaviour on web
2024-09-05 15:56:10 +01:00
Hailey
2556698427
[Video] Add loading state to player (#5149) 2024-09-04 16:46:01 -07:00
Hailey
0ef17a464d
Use new player icon for external video embeds (#5147) 2024-09-04 12:20:21 -07:00
Samuel Newman
fcf27f0512
[Video] content fit cover on native (#5140) 2024-09-04 19:56:02 +01:00
Hailey
6382a91fb0
[Video] Use same play button for gifs and videos (#5144) 2024-09-04 10:59:06 -07:00
Hailey
d94ff2695d
[Video] Throw error when playback fails (#5132) 2024-09-04 08:06:58 -07:00
Hailey
dee28f378a
[Video] Only allow one VideoView to be active at a time, regardless of source (#5131) 2024-09-04 08:06:45 -07:00
Hailey
21e48bb2d8
[Video] Tweak playback handling (#5127) 2024-09-04 08:00:53 -07:00
Samuel Newman
5c2e9f09bf
reset playback rate on exit fullscreen (#5116) 2024-09-03 19:46:37 +01:00
Hailey
7f26ad508e
[Video] Toggle controls when entering fullscreen (#5113) 2024-09-03 11:04:46 -07:00
Samuel Newman
bd42f770b8
show video in quote (#5093) 2024-09-03 18:33:16 +01:00
Hailey
dde72b48e1
[Video] Manage foreground/background playback on the native side (#5104) 2024-09-03 08:41:14 -07:00
Samuel Newman
f9d736653c
[Video] Hide mouse when inactive (#5094) 2024-09-03 11:51:16 +01:00
Samuel Newman
eb868a042a
[Video] Misc player style tweaks (#5064)
* use actual black rather than theme black

* adjust time/mute indicators
2024-09-02 09:33:46 +01:00
Samuel Newman
17d82a64a6
[Video] Remove hack from scrubber (#5063)
* remove mouseleave, add pointer cancel

* don't show time indicator if duration is 0
2024-09-02 09:32:51 +01:00
Samuel Newman
c41f372b3c
[Video] Split 'videos' gate in two (#5037) 2024-08-30 12:53:27 -07:00
Samuel Newman
ab260c3599
[Video] Minor player tweaks (#5044) 2024-08-30 12:48:23 -07:00
Samuel Newman
c70ec1ce1a
[Video] Captions and alt text (#5009)
* video settings modal in composer

* show done button on web

* rm download options

* fix logic for showing settings button

* add language picker (wip)

* subtitle list with language select

* send captions & alt text with video when posting

* style "ensure you have selected a language" text

* include aspect ratio with video

* filter out captions where the lang is not set

* rm log

* fix label and add hint

* minor scrubber fix
2024-08-30 18:45:49 +01:00
Samuel Newman
551c4a4f32
[Video] Add uploaded video to post (#4884)
* video uploads!

* use video upload lexicons

* add missing postgate

* remove references to prerelease package

* fix scrubber showing a "0"

* Delete types.ts

* rm logs

* rm upload header

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-29 16:34:41 +01:00
Hailey
d52d29621e
[Video] Add timeRemainingChange event to player in expo-video (#5013) 2024-08-29 08:28:41 -07:00
Samuel Newman
d92731b1eb
[Video] Lexicon implementation (#4881)
* implement AppBskyEmbedVideo lexicon in player

* add alt to native player

* add prerelease package

* update prerelease

* add video embed view manually from record

* fix type error on example video

* black bg + use aspect ratio on web

* add video to feeds

* fix video overflowing aspect ratio

* remove prerelease package

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-29 15:58:22 +01:00
Hailey
5ae0d40a14
[Video] 🫧 Move logic around by platform (#5003) 2024-08-28 08:46:47 -07:00
Samuel Newman
b69c40da33
add indicator of time remaining (#5000) 2024-08-27 22:15:59 +01:00
Samuel Newman
9b534b968d
[Video] add scrubber to the web player (#4943) 2024-08-26 22:28:45 +01:00
Eric Bailey
fc5cc189b5
Use moderatePost_wrapped for post embeds (#4981)
* Use moderatePost_wrapped

* Add lint rule
2024-08-23 13:55:18 -07:00
Eric Bailey
6616a6467e
Detached QPs and hidden replies (#4878)
Co-authored-by: Hailey <me@haileyok.com>
2024-08-21 19:20:45 -07:00
Hailey
723896a45f
Add list hidden screen (#4958)
Co-authored-by: Hailey <me@haileyok.com>
Co-authored-by: Eric Bailey <git@esb.lol>
2024-08-20 15:43:40 -07:00
Samuel Newman
b9975697e2
swap control files (#4936)
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-14 21:08:17 +01:00
Samuel Newman
21e214c235
[Video] set audio category to ambient every time a new player is made (#4934)
* set auto category to ambient every time a new player is made

* mute on foregrounding

* remember previous state

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
2024-08-14 20:21:14 +01:00
Samuel Newman
630ebf523d
[Video] Try/catch video play/pause (#4930)
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-13 14:00:03 -07:00
Hailey
99d1a881f2
[Video] Fix crash when switching tabs (#4925) 2024-08-12 16:49:17 -07:00
Hailey
134fcd35d8
[Video] Invert usage of setAudioActive (#4924) 2024-08-12 14:58:41 -07:00
Hailey
65d6e561d4
[Video] Resume background audio whenever muting video audio (#4915) 2024-08-09 16:52:23 -07:00
Samuel Newman
c2131bb039
[Videos] Add error boundary to native (#4914)
* move error fallback to own component

* use error boundary on native

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-10 00:49:11 +01:00
Samuel Newman
ab0da7c892
[Videos] handle app backgrounding (#4912)
* play when returning from background

* play when unfullscreening

* play when entering fullscreen, just to be sure

* state -> ref

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-09 23:35:21 +01:00
Samuel Newman
0a9782ac19
animate controls + fade out time after a while (#4913)
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-09 23:32:28 +01:00
Hailey
5bfe5aa503
[Video] More tweaks to AVAudioSession options (#4910) 2024-08-09 14:35:26 -07:00
Hailey
dd0d50a6f0
[Video] Prevent pausing of background audio with expo-video on iOS (#4908)
* audio mixing pref

* lint

* patch expo video to add enter/exit fullscreen events

* rm logs

* fix audio problems

* toggle mute when enter/exiting fullscreen

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-09 11:25:54 +01:00
Samuel Newman
a4f0c9c753
[Video] more minor tweaks (#4906)
* update expo-video

* pause when on a different screen

* rm collapsable

* add mute/unmute button

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-09 03:24:38 +01:00
Samuel Newman
4350dbc853
[Video] Bundle of minor tweaks (#4904)
* fix bg color

* unique video urls for debug

* improve controls slightly

* mute until fullscreen

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-09 02:33:42 +01:00
Hailey
1b02f81cb8
[Video] Visibility detection view (#4741)
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-07 14:45:06 -07:00
Samuel Newman
fff2c079c2
[Videos] Video player - PR #2 - better web support (#4732)
* attempt some sort of "usurping" system

* polling-based active video approach

* split into inner component again

* click to steal active video

* disable findAndActivateVideo on native

* new intersectionobserver approach - wip

* fix types

* disable perf optimisation to allow overflow

* make active player indicator subtler, clean up video utils

* partially fix double-playing

* start working on controls

* fullscreen API

* get buttons working somewhat

* rm source from where it shouldn't be

* use video elem as source of truth

* fix keyboard nav + mute state

* new icons, add fullscreen + time + fix play

* unmount when far offscreen + round 2dp

* listen globally to clicks rather than blur event

* move controls to new file

* reduce quality when not active

* add hover state to buttons

* stop propagation of videoplayer click

* move around autoplay effects

* increase background contrast

* add subtitles button

* add stopPropagation to root of video player

* clean up VideoWebControls

* fix chrome

* change quality based on focused state

* use autoLevelCapping instead of nextLevel

* get subtitle track from stream

* always use hlsjs

* rework hls into a ref

* render player earlier, allowing preload

* add error boundary

* clean up component structure and organisation

* rework fullscreen API

* disable fullscreen on iPhone

* don't play when ready on pause

* debounce buffering

* simplify giant list of event listeners

* update pref

* reduce prop drilling

* minimise rerenders in `ActiveViewContext`

* restore prop drilling

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
Co-authored-by: Hailey <me@haileyok.com>
2024-08-07 18:47:51 +01:00