Commit graph

94 commits

Author SHA1 Message Date
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
Thomas Ricouard
d8a5e39606 Merge branch 'main' of https://github.com/Dimillian/IceCubesApp 2023-01-31 19:43:09 +01:00
Thomas Ricouard
2e850e9643 Bump to 1.3.2 + workaround List crash? 2023-01-31 19:43:07 +01:00
Jérôme Danthinne
f3e21a714c
Consolidate new notifications with the latest one (#563) 2023-01-31 17:43:52 +01:00
Thomas Ricouard
24504e3bc2 Various optimizations to speed things up 2023-01-30 19:14:43 +01:00
Thomas Ricouard
16636b12a9 Swift format 2023-01-30 07:27:06 +01:00
Thomas Ricouard
3a3ae87502 Run notifications panel stream in a Task + animations 2023-01-29 18:05:00 +01:00
Thomas Ricouard
d2c520d306 Add code code to the notifications icons 2023-01-29 17:45:46 +01:00
Thomas Ricouard
243cbcbc41 Notifications: Swap container for a List + make mentions more prominent 2023-01-29 16:06:46 +01:00
Jérôme Danthinne
5b310842a4
Fix french plurals (#464)
* Fix french plurals

* Fix english

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-01-28 10:14:07 +01:00
Jérôme Danthinne
ffcb0574cc
Fix: consolidated notifications (#461)
* Fix consolidated notifications pagination

* Only group followers on All notifications screen
2023-01-28 09:04:35 +01:00
Thomas Ricouard
b89221a535 Code cleanup / format / lint 2023-01-27 20:36:40 +01:00
Thomas Ricouard
1dd536c8e7 Keep a shadow copy of notifications so the streamed notifications can be reconsolidated 2023-01-27 17:23:41 +01:00
Jérôme Danthinne
bec9ab8792
Consolidated notifications (#443) close #231
* Group favorite and boost notifications

* Group notifications per page, not globally
2023-01-27 16:58:04 +01:00
Jérôme Danthinne
9b3b3692ee
Support for follow requests (#376) close #321
* Support for follow requests (#321)

* Run SwiftFormat

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-01-25 13:02:28 +01:00
Thomas Ricouard
b1520c549e Various fixes due to recent merges 2023-01-24 07:19:09 +01:00
Steve Kalkwarf
a7c7dfd24e
Make spelling of "favorite" consistent (#327)
"Favorite" was spelled using both UK English and US English variations:
113 favourite
64 favorite

I made them consistent, using the US spelling.
2023-01-24 06:35:43 +01:00
Thomas Ricouard
ce41e6b000 Always display relative date in the timeline 2023-01-22 20:14:05 +01:00
Thomas Ricouard
a79c5691e0 Run SwiftFormat 2023-01-22 06:38:30 +01:00
Thomas Ricouard
2a31fd7ef5 Make notifications more compact 2023-01-21 15:16:52 +01:00
Thomas Ricouard
d1034cd9a3 Do string manipulation at the decode time to keep the UI smooth fix #178 2023-01-20 18:27:00 +01:00
Thomas Ricouard
e05734fe1a Added edit history 2023-01-19 21:19:19 +01:00
Thomas
980b9a5dd6
Implement Localization (#80)
* Implement localization

* Fix some localization keys

* Adapt to recent changes
2023-01-19 18:14:08 +01:00