Commit Graph

59 Commits

Author SHA1 Message Date
Thomas Ricouard 6c23569d15 UserPreferences -> Observable 2023-09-19 09:18:20 +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 379d2f36fb Fix #1545 2023-09-18 09:18:48 +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
Thomas Ricouard a2fe0511e0 Run swiftformat 2023-07-19 07:46:25 +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 eea6d93dd5 Add customization of text color close #385 2023-03-03 08:12:01 +01:00
Thomas Ricouard a3e2d3f8b3 Add sound effects 2023-02-28 18:55:08 +01:00
Thomas Ricouard 83e4e74329 Swiftformat 2023-02-26 06:45:57 +01:00
Paul Schuetz 06629cc397
Enhance the context menu for private messages (#1053)
* Enhance the message context menu

A direct message can now directly be bookmarked, the author can be publicly
mentioned and reported.

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>

* Add options to the conversation list context menu

Since the latest message is shown in the conversation list, the user can now
interact with this message via the context menu similar to the messages in the
conversation history.
The "conversation" class had to be modified since
bookmarking and liking a message would have led to a race condition (depending
on the server) when fetching the conversations afterwards, so the only affected
the message is now immediately updated.

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>

* Remove child view models

The child views models are removed, and the list row now only uses the conversation
object managed by the list view model.

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>

* Make unmodified var let

The last state-var of a conversation isn't modified, instead, a new conversation
is created. Therefore, the var is now a let.

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>

---------

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
2023-02-26 06:45:31 +01:00
David Walter a0e37273a4
Fix scaling of custom emoji (#1020) 2023-02-22 22:13:46 +01:00
Thomas Ricouard a4910037b8 Swiftformat . 2023-02-22 19:09:39 +01:00
Thomas Ricouard ed9b2a37a7 Fixes for composer and DM 2023-02-21 19:38:35 +01:00
Thomas Ricouard 7a997ebd8a Make secondary column available on any size + add a toggle + faster macOS window resize 2023-02-21 13:37:31 +01:00
Alex Grebenyuk 425a4eef4f
Update to Nuke 12 (Beta 1) (#924)
* Install Nuke from nuke-12 branch

* Fixes

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-02-18 07:25:10 +01:00
Chanhwi Joo 6cf99613c0
Add a missing string (#834) 2023-02-13 18:12:34 +01:00
Thomas Ricouard eb6050a38f Swiftformat 2023-02-12 16:29:41 +01:00
Peter-Josef Meisch fe1248fec6
Fix refresh of empty conversations (#778) 2023-02-10 22:16:03 +01:00
Peter-Josef Meisch 1c8fabbe59
Fix Conversation.lastStatus nullability issue (#709) close #696
* Fix Conversation.lastStatus nullability issue

* Fix UI

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-02-08 06:27:44 +01:00
Thomas Ricouard d9b166339d Fixes for iPad layout 2023-01-31 08:16:36 +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 6ea2d9cb78 Make max width more consistent on iPad fix #236 2023-01-29 08:14:08 +01:00
Thomas Ricouard b89221a535 Code cleanup / format / lint 2023-01-27 20:36:40 +01:00
Thomas Ricouard 8236029432 DM: Show the full status text 2023-01-26 18:28:08 +01:00
Thomas Ricouard 72fbcff1dd DM: Various UX fixes 2023-01-26 18:27:53 +01:00
Thomas Ricouard 4705500dc4 DM: Add vertical padding between messages 2023-01-25 13:09:43 +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 dd5e6b91c0 oops 2023-01-24 06:56:28 +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 a51e81102e Handle links in direct message 2023-01-23 18:43:57 +01:00
Thomas Ricouard ce41e6b000 Always display relative date in the timeline 2023-01-22 20:14:05 +01:00
Thomas Ricouard 23fd0af2c3 Fix title scaling for DM 2023-01-22 17:53:41 +01:00
Thomas Ricouard 1a8626896a Merge branch 'main' of https://github.com/Dimillian/IceCubesApp 2023-01-22 17:50:32 +01:00
Thomas Ricouard b527fafd37 Few fixes for the field in DM + fix async upload for images 2023-01-22 17:49:47 +01:00
Sean Goldin f4d5195f4c
Localisation for conversation detail (#278) 2023-01-22 17:36:57 +01:00
Thomas Ricouard 8680d2b83a Few keyboard fixes 2023-01-22 17:17:33 +01:00
Thomas Ricouard d6aa99eb57 New direct messages view close #122 2023-01-22 16:55:03 +01:00
Thomas Ricouard a79c5691e0 Run SwiftFormat 2023-01-22 06:38:30 +01:00
Thomas Ricouard d0d969d52c Private messages: Add pagination 2023-01-21 15:31:27 +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 980b9a5dd6
Implement Localization (#80)
* Implement localization

* Fix some localization keys

* Adapt to recent changes
2023-01-19 18:14:08 +01:00
Thomas Ricouard e519e9cdff Use Safari Controller for auth 2023-01-19 11:59:40 +01:00
Thomas Ricouard 4143e82fbc Multi account sidebar + scaled font size on macOS + better iPad / macOS app UX 2023-01-17 19:41:46 +01:00