Commit graph

2301 commits

Author SHA1 Message Date
Hailey
11061b628e
[Video] Download videos (#4886)
Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-15 11:23:48 -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
db7a744433
Fix Android composer cursor bug by removing setTimeout from native composer onChangeText (#4922) 2024-08-12 08:14:02 -07:00
Roland Crosby
75c19b2dc2
Show handle in recent searches and fix truncation (#4917)
Co-authored-by: Hailey <me@haileyok.com>
2024-08-11 16:12:36 -07:00
Minseo Lee
88f879ffe9
Improve styles (#4916)
Co-authored-by: Hailey <me@haileyok.com>
2024-08-11 14:30:18 -07:00
surfdude29
6f450b4982
Mark string for localization (#4920) 2024-08-11 12:41:33 -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
dan
e782db33dc
Show just-posted replies above OP replies (#4901)
* Unify onPostReply handler

* Show just-posted replies above OP replies

* Only do this for the highlighted post or thread mode

It's confusing to have your post displace OP thread or other people's leaf posts.
2024-08-08 19:19:58 +01:00
Eric Bailey
a0756c53be
Remove show_avi_follow_button (#4900) 2024-08-08 18:14:15 +01:00
Eric Bailey
3ea8eb6013
Remove native_pwi_disabled (#4896)
* Remove native_pwi_disabled

* Remove search button
2024-08-08 18:14:02 +01:00
Samuel Newman
e7a0055a85
Fix overflow on posts (#4899)
* overflow posts, via contentHider

* margin->padding for a bit more leeway

* overflow notifications

* overflow on header

* revert from contenthider, put on text in all places

* fix zalgo text in handle in composer

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-08-08 18:04:40 +01:00
dan
ae25cb3391
Move onPressReply into child component (#4898)
* Move ComposePrompt to post-thread/

* Move onPressReply into child component
2024-08-08 17:58:58 +01:00
Eric Bailey
e1df2b0b16
Remove explore_page_profile_card_social_proof (#4894) 2024-08-08 11:48:32 -05:00
Eric Bailey
f3a9f874d9
Remove ungroup_follow_backs gate (#4893) 2024-08-08 11:48:24 -05:00
dan
4b71950d99
Remove unnecessary state update for reply gate (#4897)
* Move mobile compose prompt to inner component

* Make canReply computed

* Use same clamp we use elsewhere
2024-08-08 17:05:51 +01:00
dan
f1031d100b
Cleanup flags (#4891)
* Remove launched gates

* Remove disabled gates
2024-08-08 15:25:42 +01:00
Eric Bailey
1e3b2d6f42
ALF suggested follows in profile header (#4828)
* Refactor ProfileHeaderSuggestedFollows

* Load fresh data every time

* Oops, missed a file

* Update ProfileCard.Link usage, tweak copy
2024-08-08 09:19:51 -05:00
Minseo Lee
af5262682e
Added trans (#4890) 2024-08-08 13:12:23 +01:00
dan
a864f69849
Keep interstitial fresh on refresh (#4888) 2024-08-08 06:20:24 +01:00
Hailey
b3092413dd
Add logging of selected feed preference when displaying the following feed (#4789) 2024-08-07 17:13:29 -07: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
dan
5845e08eee
Show own replies before follows' replies in threads (#4882) 2024-08-06 17:12:27 +01:00
dan
5bf7f3769d
[Persisted] Fork web and native, make it synchronous on the web (#4872)
* Delete logic for legacy storage

* Delete superfluous tests

At this point these tests aren't testing anything useful, let's just get rid of them.

* Inline store.ts methods into persisted/index.ts

* Fork persisted/index.ts into index.web.ts

* Remove non-essential code and comments from both forks

* Remove async/await from web fork of persisted/index.ts

* Remove unused return

* Enforce that forked types match
2024-08-06 00:30:58 +01:00
dan
74b0318d89
Show replies in context of their threads (#4871)
* Don't reconstruct threads from separate posts

* Remove post-level dedupe for now

* Change repost dedupe condition to look just at length

* Delete unused isThread

* Delete another isThread field

It is now meaningless because there's nothing special about author threads.

* Narrow down slice item shape so it does not need reply

* Consolidate slice validation criteria in one place

* Show replies in context

* Make fallback marker work

* Remove misleading and now-unused property

It was called rootUri but it was actually the leaf URI. Regardless, it's not used anymore.

* Add by-thread dedupe to non-author feeds

* Add post-level dedupe

* Always count from the start

This is easier to think about.

* Only tuner state need to be untouched on dry run

* Account for threads in reply filtering

* Remove repost deduping

This is already being taken care of by item-level deduping. It's also now wrong and removing too much (since it wasn't filtering for reposts directly).

* Calculate rootUri correctly

* Apply Following settings to all lists

* Don't dedupe intentional reposts by thread

* Show reply parent when ambiguous

* Explicitly remove orphaned replies from following/lists

* Fix thread dedupe to work across pages

* Mark grandparent-blocked as orphaned

* Guard tuner state change by dryRun

* Remove dead code

* Don't dedupe feedgen threads

* Revert "Apply Following settings to all lists"

This reverts commit aff86be6d37b60cc5d0ac38f22c31a4808342cf4.

Let's not do this yet and have a bit more discussion. This is a chunky change already.

* Reason belongs to a slice, not item

* Logically feedContext belongs to the slice

* Update comment to reflect latest behavior
2024-08-05 20:51:41 +01:00
Hailey
18b423396b
Add PlatformInfo module (#4877) 2024-08-05 12:21:34 -07:00
Eric Bailey
c3d8beee6d
Respect labels on feeds and lists (#4818)
* Prep

* Pass in optional moderation to FeedCard

* Compute moderation decision, filter contentList contexts, pass into card

* Let's go a different route

* Filter from within search queries

* Use same search query for starter packs

* Filter lists from profile tabs

* Cleanup

* Filter from profile feeds

* Moderate post embeds

* Memoize

* Use ScreenHider on lists

* Hide both list types

* Fix crash on iOS in screen hider, fix lineheight

* Memoize renderItem

* Reuse objects to prevent re-renders
2024-08-02 13:05:33 -05:00
dan
7f292abf51
Always limit Following replies to the people you follow (#4868)
* Limit feed replies to people you follow

* Remove dead code
2024-08-01 22:05:40 +01:00
Hailey
f056cb646e
Fix missing header on Likes/Reposted By, add missing perf optimizations (#4867)
* fix liked by list

* fix lists

* tweaks to style

* change string
2024-08-01 10:32:36 -07:00
Samuel Newman
c78e9e3147
Move theme controls to its own screen (#4866) 2024-08-01 19:14:32 +02:00
dan
388c157c36
Display second-to-last rather than second post in a slice (#4864) 2024-08-01 17:49:43 +01:00
Hailey
70ffd387e3
Only show "followed you back" when appropriate (#4849)
* only show followed back when we should

* try/catch

* log

* Update FeedItem.tsx

* tweak
2024-07-31 11:16:14 -07:00
dan
576cef88b5
[Web] Retrigger onEndReached if needed when content height changes (#4859)
* Extract EdgeVisibility

* Key Visibility by container height instead of item count
2024-07-31 19:10:24 +01:00
Hailey
8ddb28d3c5
[Video] Uploads (#4754)
* state for video uploads

* get upload working

* add a debug log

* add post progress

* progress

* fetch data

* add some progress info, web uploads

* post on finished uploading (wip)

* add a note

* add some todos

* clear video

* merge some stuff

* convert to `createUploadTask`

* patch expo modules core

* working native upload progress

* platform fork

* upload progress for web

* cleanup

* cleanup

* more tweaks

* simplify

* fix type errors

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-07-30 08:25:31 -07:00
Dmitrii Kartashev
4437b9a557
Boolean filter improvement alternative: TS upgrade (#4840)
* upgrade typescript and use new feature

* fix: typing error
2024-07-26 00:31:59 +01:00
Eric Bailey
043e5cea64
Improve a11y on noty feed (#4842) 2024-07-25 18:11:16 -05:00
Eric Bailey
783fd351ba
Add labels to a few missing places (#4838) 2024-07-25 18:07:15 -05:00
Hailey
3914025227
true (#4833) 2024-07-25 21:26:37 +01:00
Samuel Newman
401e92ed42
Replace import hairlineWidth = with const (#4831)
* replace import with const

* just use `StyleSheet.hairlineWidth`

---------

Co-authored-by: Samuel Newman <10959775+mozzius@users.noreply.github.com>
2024-07-25 20:45:15 +01:00