Commit graph

116 commits

Author SHA1 Message Date
Thomas Ricouard
7eb382c052 Status -> StatusKit 2024-01-06 19:27:26 +01:00
Thomas Ricouard
1297331407 Fix more warnings 2024-01-06 11:24:41 +01:00
Thomas Ricouard
b83f7e9a55 Fix notifications reload 2023-12-28 13:48:50 +01:00
Thomas Ricouard
fa4603e77c Fix notifications locked type 2023-12-28 12:03:01 +01:00
Thomas Ricouard
e53a3d0f61 Fix reasons check 2023-12-27 17:12:48 +01:00
Thomas Ricouard
1a3bded101 New default timeline layout 2023-12-27 16:07:16 +01:00
Thomas Ricouard
590299d102 Sync with markers API for notifications 2023-12-26 16:01:02 +01:00
Thomas Ricouard
ede45a9d46 Fix #1769 2023-12-26 13:56:28 +01:00
Thomas Ricouard
5a2478c791
VisionOS native support (#1758)
* Initial support

* UI Adjustments

* WIP icons

* More UI
2023-12-19 09:51:20 +01:00
Thomas Ricouard
8ff3e22d9f SwiftFormat 2023-12-18 08:22:59 +01:00
Thomas Ricouard
fcaf48ce53 foregroundColor -> foregroundStyle 2023-12-04 15:49:44 +01:00
Thai D. V
ea5480ef46
add account popovers for display name and handle (#1687) 2023-11-27 09:00:52 +01:00
Thai D. V
94172cef27
Feature: popover the account overview when hovering on the avatar (#1682)
* fix avatar scale

* refactor avatar  config data

* add `AvatarView_Previews`

* refactor shape and placeholder of avatar

* refactor `AvatarView` and add `AvatarPopup`

* add `hoverEffect` for iPad

* fix auto-dismiss bug

* fix `showPopup` bug

* disable inappropriate avatar popups
2023-11-20 10:59:49 +01:00
Thai D. V
4b74532048
Feature: store selected notification filter (#1627) (#1663)
* store selected notification filter (#1627)

* store one filter for all accounts
2023-11-16 09:53:16 +01:00
Théo Arrouye
4266ac4b42
Improve SoundEffectManager & HapticManager (#1662)
* Remove unnecessary vars and switches

* Improve SoundEffectManager call-site API

* Improve HapticManager call-site API
2023-11-07 11:22:36 +01:00
Bosco Ho
1bf4d9e398
Feature: Tab bar scroll to top (#1598)
* - *WIP* Explore tab: Tap on tab to scroll to top.

* - Explore tab: Tap tab to scroll to top.

* - Explore: Tap tab again to focus on search bar.
- Explore: Set `.defaultMinListRowHeight` so scroll to view doesn't occupy more than 1pt height in grouped style list.
- Explore: Add padding to get Explore list view to look the same.

* - Explore: Minor adjust to padding.

* - Messages: Add tap tab to scroll to top.

* - Notifications: Add tap tab to scroll to top.

* - Profile: Add tap tab to scroll to top.

* Add `ScrollToView` that can be used across all views.

* Move scroll-to-top constants to ScrollToView.

* Format

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-10-05 08:22:45 +02:00
Thomas Ricouard
cc32845134 Revert "Switch to iOS 17 inspector"
This reverts commit 7589ab75f8.
2023-09-22 22:39:35 +02:00
Thomas Ricouard
7589ab75f8 Switch to iOS 17 inspector 2023-09-20 21:19:31 +02:00
Thomas Ricouard
f9c0355f1d Convert Theme to Observable 2023-09-18 21:03:52 +02:00
Thomas Ricouard
8bb102cd67 Fix #1466 2023-09-18 18:55:11 +02:00
Thomas Ricouard
4189a59cf6
iOS 17+ only support + migrating to Observation framework (#1571)
* Initial iOS 17 + Observable migration

* More Observation

* More observation

* Checkpoint

* Checkpoint

* Bump version to 1.8.0

* SwiftFormat

* Fix home timeline switch on login

* Fix sidebar routerPath

* Fixes on detail view

* Remove print changes

* Simply detail view

* More opt

* Migrate DisplaySettingsLocalValues

* Better post detail transition

* Status detail animation finally right

* Cleanup
2023-09-18 07:01:23 +02:00
Thomas Ricouard
8a3c971402 Swiftformat 2023-09-16 14:15:03 +02:00
Thomas Ricouard
8e3584ee79 Upgrade to Swift tools version 5.9 + strict Swift concurrency everywhere 2023-09-15 12:46:15 +02:00
Chris Kolbu
9e347c75b9
Timeline & Timeline detail accessibility uplift (#1323)
* Improve accessibility of StatusPollView

Previously, this view did not provide the proper context to indicate that it represented a poll.

Now, we’ve added
- A container that will stay “Active poll” or “Poll results” when the cursor first hits one of the options;
- A prefix to say “Option X of Y” before each option;
- A Selected trait on the selected option(s), if present
- Consolidating and adding an `.updatesFrequently` trait to the footer view with the countdown.

* Add poll description in StatusRowView combinedAccessibilityLabel

This largely duplicates the logic in `StatusPollView`.

* Improve accessibility of media attachments

Previously, the media attachments without alt text would not show up in the consolidated `StatusRowView`, nor would they be meaningfully explained on the status detail screen.

Now, they are presented with their attachment type.

* Change accessibilityRepresentation of AppAcountsSelectorView

* Change Notifications tab title view accessibility representation to Menu

Previously it would present as a button

* Hide layout `Rectangle`s from accessibility

* Consolidate `StatusRowDetailView` accessibility representation

* Improve readability of Poll accessibility label

* Ensure poll options don’t present as interactive when the poll is finished

* Improve accessibility of StatusRowCardView

Previously, it would present as four separate elements, including an image without a description, all interactive, none with an interactive trait.

Now, it presents as a single element with the `.link` trait

* Improve accessibility of StatusRowHeaderView

Previously, it had no traits and no actions except inherited ones.

Now it presents as a button, triggering its primary action.

It also has custom actions corresponding to its context menu

* Avoid applying the StatusRowView custom actions to every view when contained

* Provide context for the application name

* Add pauses to StatusRowView combinedAccessibilityLabel

* Hide `TimelineView.scrollToTopView` from accessibility

* Set appropriate font style on Notification header

After the change the Text needed a `.headline` style to match the prior appearance.

* Fix bug in accessibilityRepresentation of TimelineView nav bar title

Previously, it would not display the proper label for .remoteLocal filter options.

* Ensure that pop-up button nav bar titles are interactive

* Ensure TextView responds to Environment.sizeCategory

This resolves #1309

* Fix button

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-03-28 18:48:58 +02:00
Chris Kolbu
b2f594f174
Accessibility tweaks + Notifications and Messages tab uplift (#1292)
* Improve StatusRowView accessibility actions

Previously, there was no way to interact with links and hashtags.

Now, these are added to the Actions rotor

* Hide `topPaddingView`s from accessibility

* Fix accessible header rendering in non-filterable TimelineViews

Previously, all navigation title views were assumed to be popup buttons.

Now, we only change the representation for timelines that are filterable.

* Combine tagHeaderView text elements

Previously, these were two separate items

* Prefer shorter Quote action label

* Improve accessibility of StatusEmbeddedView

Previously, this element would be three different ones, and include all the actions on the `StatusRowView` proper. Now, it presents as one element with no actions.

* Add haptics to StatusRowView accessibility actions

* Improve accessibility of ConversationsListRow

This commit adds:
- A combined representation of the component views
- “Unread” as the first part of the label (if this is the case)
- All relevant actions as custom actions
- Reply as magic tap

* Remove StatusRowView accessibilityActions if viewModel.showActions is false

* Hide media attachments from accessibility if the view is not focused

* Combine NotificationRowView accessibility elements; add user actions

Previously, there was no real way to interact with these notifications.

Now, the notifications that show the actions row have the appropriate StatusRowView-derived actions, and new followers notifications have more actions that let you see each user’s profile.

* Prefer @Environment’s `accessibilityEnabled` over `isVoiceOverRunning`

This way we can cater for Voice Control, Full Keyboard Access and Switch Control as well.

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-03-24 07:52:29 +01:00
Thomas Ricouard
6c307aba63 SwiftFormat 2023-03-13 13:38:28 +01:00
David Walter
2ac615b0ba
Fix CustomEmoji Baseline Offset (#1188) 2023-03-06 15:21:26 +01:00
Thomas Ricouard
82179e5f6f Fix notification text color 2023-03-03 09:20:17 +01:00
Thomas Ricouard
a3e2d3f8b3 Add sound effects 2023-02-28 18:55:08 +01:00
Thomas Ricouard
54198c877f Notifications: fix rocket icon 2023-02-28 18:48:22 +01:00
Gareth Simpson
9ebe0b314c
Change arrows icon to rocket for boosts (#1099)
* Change arrows icon to rocket for boosts

* Fixing case (part 1)

* Fixing Case (part 2)

* Clean up after merge

* Fix for disabled boost

* Fixes

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-02-28 14:53:31 +01:00
Thomas Ricouard
2ba2675ae4 Fix DM badge 2023-02-25 19:54:46 +01:00
Thomas Ricouard
d82453c513 Better visibility for DM in notifications list close #1064 2023-02-25 18:12:31 +01:00
Thomas Ricouard
29aaa7c5cb Optimisations: Autoclosure for StatusRowViewModel 2023-02-24 13:25:21 +01:00
David Walter
a0e37273a4
Fix scaling of custom emoji (#1020) 2023-02-22 22:13:46 +01:00
Thomas Ricouard
ca4e80101f Swiftformat 2023-02-18 07:26:48 +01:00
Thomas Ricouard
f09781582f Various optimizations to views & images rendering 2023-02-17 18:17:51 +01:00
Thomas Ricouard
f544d65862 Remove some Env Object from NotificationRowView 2023-02-15 09:04:35 +01:00
Thomas Ricouard
d958d10036 Remove Client and RouterPath from StatusRowView env object 2023-02-15 08:46:14 +01:00
Thomas Ricouard
dbbd33ba88 Reworked social notifications 2023-02-14 12:17:27 +01:00
Thomas Ricouard
86aad4145a Notifications: When multiple follow, open list of users instead of just one user 2023-02-13 07:00:42 +01:00
Thomas Ricouard
eb6050a38f Swiftformat 2023-02-12 16:29:41 +01:00
Thomas Ricouard
013410a80e Faster / Cached ServerDate decoding 2023-02-09 09:12:44 +01:00
Thomas Ricouard
3425b9c9ad Fixed notifications main label being cut 2023-02-07 07:40:43 +01:00
Thomas Ricouard
cf6a2f845f Notifications: Load more newer pages 2023-02-06 20:08:29 +01:00
Jérôme Danthinne
2f5e170983
Follow requests improvements (#679)
* fix: when accepting/rejecting followers, only disable the current request button

* fix: fetch followers request when updating notifications
2023-02-06 17:52:36 +01:00
Thomas Ricouard
09371f77c5 Fix notifications error view 2023-02-04 21:30:50 +01:00
Thomas Ricouard
f4a2d4fcc3 Fix notifications empty screen 2023-02-04 20:43:56 +01:00
Thomas Ricouard
6b285cdbcf Cleanup 2023-02-04 17:17:38 +01:00
Thomas Ricouard
46cc7a6849 Fix a crash in notification stream 2023-02-04 09:02:16 +01:00