Commit graph

187 commits

Author SHA1 Message Date
Thomas Ricouard
07bfd8cd0e Initial macOS Catalyst support 2023-10-23 19:12:25 +02: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
Paul Schuetz
0b5e764556
Automatically remove spaces in server names (#1600)
* Automatically remove spaces in server names

If a server name includes a space (which can happen if the string is pasted /
autocompleted), this space is removed, which results in the app not crashing.
Fixes #1599

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

* Format

---------

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-10-01 09:37:09 +02:00
Thomas Ricouard
4adbff1342 Fix avatar shape and position settings not being saved 2023-09-20 21:19:45 +02:00
Thomas Ricouard
90337bd3ea Bump version to 1.8.2 2023-09-20 08:20:01 +02:00
Thomas Ricouard
46df3bb7f9 Fix #1579 2023-09-20 07:28:04 +02:00
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
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
1bbb0dc82d Fix sound effects + upgrade swift concurrency settings 2023-09-14 11:04:14 +02:00
Thomas Ricouard
e921f2cdd4
Fix dark secondary color (#1565) 2023-08-30 09:10:22 +02:00
Thomas Ricouard
9cffb7eda2 Add Starfield inspired themes 2023-08-30 08:02:38 +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
Thomas Ricouard
92e15fdcc9 Settings: Add line spacing option which apply to only posts content for now 2023-03-26 18:51:15 +02:00
Thomas Ricouard
356b58bf67 Use the new iOS 16.4 sheet background for app selection sheet (You'll need to use Xcode 14.3 going forward) 2023-03-24 13:53:42 +01:00
Chris Kolbu
eab69ce9fa
Timeline tab accessibility uplift (#1277)
* Refine Profile tab VoiceOver order to prioritise user information

Previously, VoiceOver user would have to traverse through header image, “follows you”, and the profile image before getting to the display name of the user.

Now, this element is the first element after the navigation bar.

* Add accessibility label to Timeline Compose post button

Previously, this button was using the SF symbol fallback label.

Now, it has a localized equivalent in addition to two other options: “New”, and “Create”

* Change accessible representation of Timeline nav bar menu

Previously, this would present as a static text.

Now, it has the header trait. In addition, by changing the representation, VoiceOver will read it out as “Home, Pop-up button, Header”, indicating that it opens a menu.

* Add accessibilityHint to Timeline tab Accounts selector

* Add accessibilityLabel and hint to PendingStatusesObserver

Previously, this button would have a label equal to the count of unread posts. Now, it states “X new posts” with the hint “Scrolls the timeline”
2023-03-20 06:33:42 +01:00
Thomas Ricouard
6c307aba63 SwiftFormat 2023-03-13 13:38:28 +01:00
Keita Watanabe
968792ad68
Fix build error for design system package (#1220) 2023-03-11 07:21:16 +01:00
Thomas Ricouard
b9793057e0 Bigger font for focused status 2023-03-09 20:27:03 +01:00
Thomas Ricouard
15b704c97a All new accounts selector 2023-03-08 19:02:31 +01:00
David Walter
2ac615b0ba
Fix CustomEmoji Baseline Offset (#1188) 2023-03-06 15:21:26 +01:00
Thomas Ricouard
37ed178c3f Various fixes + fix Explore navigation 2023-03-02 20:15:07 +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
Jim Dovey
d1209e6704
Updated to resolve all possible Sendability warnings from Swift 6 compatibility mode. (#1072)
Co-authored-by: Jim Dovey <jimdovey@apple.com>
2023-02-27 06:39:07 +01:00
Peter-Josef Meisch
3a144b7792
collapse long posts (#1037) close #914
* collapse long posts

* initialize user pref setting in init(), remove onAppear and onChange(pref) from view

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-02-26 17:32:09 +01:00
Thomas Ricouard
83e4e74329 Swiftformat 2023-02-26 06:45:57 +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
4576507225 Added a new Medium media style 2023-02-22 07:26:32 +01:00
Alex Grebenyuk
37a69650ef
Remove capture mode for images (#996)
* Remove capture mode for images

* Simplify how processor is created in StatusRowMediaPreviewView

* Optimize StatusViewId further
2023-02-22 07:09:56 +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
Thomas Ricouard
061791f632 Optimize custom font 2023-02-21 07:37:16 +01:00
Thomas Ricouard
b259b6739e Swiftformat 2023-02-21 07:23:42 +01:00
Gareth Simpson
53f364b232
Font picker consistency (#960)
* Put SF Rounded into the popup menu with Hyperlegible & Dislexia

* Remove SF Rounded Toggle
2023-02-21 07:08:32 +01:00
Yusuke Arakawa
25f699a321
Tweak the theme selector view (#975)
Co-authored-by: Yusuke Arakawa <nekolaboratory@users.noreply.github.com>
2023-02-21 07:04:02 +01:00
Thomas Ricouard
e7fffa07d4 Fix theme not being applied live on status row close #961 2023-02-20 13:00:50 +01:00
Thomas Ricouard
0d6eff391b Reworked post header view + add option to hide server name from username 2023-02-19 19:16:39 +01:00
Alex Grebenyuk
da289dbc1f
Optimize avatar view (#950)
* Reduce AvatarPlaceholderView body calls

* Resize avatars
2023-02-19 18:34:16 +01:00
Thomas Durand
369c36811d
Updated EmojiText to 2.x (#944)
Interface used by IceCubeApp has not changed from 1.x to 2.x
Looking at the library diff shows new features like SFSymbol powered emojis. Not like we're going to make use of that
https://github.com/divadretlaw/EmojiText/compare/v1.2.0...2.0.2
2023-02-19 16:28:37 +01:00
Thomas Ricouard
ccc504fc6f Share post as image close #885 2023-02-19 15:29:07 +01:00
Alex Grebenyuk
03d60d2236
Update Nuke (#940) 2023-02-19 07:25:57 +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
Thomas Ricouard
f09781582f Various optimizations to views & images rendering 2023-02-17 18:17:51 +01:00
Thomas Ricouard
40ca3940f6 Reworked account management / selection UI 2023-02-16 07:19:20 +01:00
Thomas Ricouard
6c6d25fc63 Add a setting to use SF Rounded font close #890 2023-02-15 20:03:31 +01:00
Thomas Ricouard
eb6050a38f Swiftformat 2023-02-12 16:29:41 +01:00
Yusuke Arakawa
6219f4c446
Clarify the difference between screen name and username (#769)
Co-authored-by: Yusuke Arakawa <nekolaboratory@users.noreply.github.com>
2023-02-10 18:30:59 +01:00
Thomas Ricouard
dedc7af49c Close #758 2023-02-10 07:59:14 +01:00
Paul Schuetz
368b2b2c5e
Update to the newest version of nuke (#759)
Static gifs as avatars are now rendered correctly.
2023-02-10 06:39:23 +01:00
Thomas Ricouard
abff7091cb Add avatar in account selector menu 2023-02-09 07:36:23 +01:00
Thomas Ricouard
ff570e214c Properly support OpenDyslexic and HyperLegible Fix #677 2023-02-06 18:15:08 +01:00
Sean Goldin
90ec3d419c
Clean up HapticManager (#678)
* Check for haptic capabilities

* Make manager do most of work

* ABC enum

* Fix spelling 😊

* Small tweak
2023-02-06 17:53:27 +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
2bd5c26c6f Add inline account badge for status context favorites / boosts 2023-02-05 10:07:45 +01:00
Thomas Ricouard
65ed2d871c Add settings for haptic feedbacks 2023-02-04 17:38:48 +01:00
Gareth Simpson
624d4766fa
Newer, better, faster HTML to Markdown converter (#610)
* This is a more correct html to markdown implementation.

It removes all the hacks and just uses the SwiftSoup parser correctly

It will fix issue #576 and also an unlogged issue with the old implementation that could corrupt urls with underscores in them.

* Better <br> / linefeed handling

* Cleanup

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-02-04 08:16:19 +01:00
Thomas Ricouard
bb6910cd83 Centralize haptic feedbacks 2023-02-02 16:56:42 +01:00
Thomas Ricouard
22af2db36c Enable font scaling on iOS 2023-01-31 12:16:11 +01:00
Thomas Ricouard
d9b166339d Fixes for iPad layout 2023-01-31 08:16:36 +01:00
Thomas Ricouard
16636b12a9 Swift format 2023-01-30 07:27:06 +01:00
Paul
392b1bd01a
Add the ability to set a custom font (#519)
* Add the ability to set a custom font

* Small fixes

* Indent

* Add missing localization

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-01-30 07:25:55 +01:00
Thomas Ricouard
497c2a1fe1 Add secondary column when screen is wide enough 2023-01-29 16:45:58 +01:00
David Walter
329e21f43c
Fix Theme not overriding UserInterfaceStyle when not following system theme (#508) 2023-01-29 13:24:51 +01:00
Thomas Ricouard
6ea2d9cb78 Make max width more consistent on iPad fix #236 2023-01-29 08:14:08 +01:00
Thomas Ricouard
6c22fc9383 Fix upgrade path for custom colors 2023-01-28 19:49:08 +01:00
Thomas Ricouard
dc5d15a455 Adjust neon dark secondary color 2023-01-28 18:51:25 +01:00
David Walter
3ce5b95171
Fix: background color transparency isn't saving (#468) close #441 2023-01-28 18:41:27 +01:00
Thomas Ricouard
a52f0f9fbe StatusRow: Reuse context menu + disable avatar image processor for smoother scrolling 2023-01-28 07:05:26 +01:00
Thomas Ricouard
42160b08c0 Remove some shimmering to make the scrolling performances better 2023-01-27 16:51:45 +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
fbf1c30b7c Add haptic feedback on more buttons fix #315 2023-01-24 09:19:53 +01:00
Thomas Ricouard
f718755120 Refactor iPad / macOS layout for medias in order to make the timeline smoother fix #282 2023-01-23 18:43:48 +01:00
orenro
a37d059026
Display statuses with appropriate alignment for right-to-left languages (#256) 2023-01-22 11:17:27 +01:00
Thomas Ricouard
a79c5691e0 Run SwiftFormat 2023-01-22 06:38:30 +01:00
Thomas Ricouard
a0ad701f52 Add Neon (OLED) Dark and Light themes 2023-01-21 18:40:35 +01:00
Sean Goldin
50bd01e8b4
Poll results UI update (#233)
* Update constant to use CGFloat extension

* Fill full width when 100%

* Remove space
2023-01-21 16:50:38 +01:00
Thomas Ricouard
691b3f2667 Theme: Refresh theme on launch if following color scheme 2023-01-21 15:54:15 +01:00
Thomas Ricouard
5321b2b8d8 Add a follow system colors option close #128 2023-01-20 21:58:57 +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
47004d00c1 Add Medium Light & Dark theme 2023-01-19 11:58:38 +01:00
Thomas Ricouard
02aa91f432 Composer: Scale input font on macOS 2023-01-18 08:04:52 +01:00
Thomas Ricouard
c7a832e110 Added a font scale slider on macOS 2023-01-17 21:08:05 +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
Romain Vincens
bb72327f52
Fixed typos & misspells (#88)
* Fixed typos and misspells

* Other typos
2023-01-17 15:14:50 +01:00
Thomas Ricouard
899ccd8ad7 macOS / iPad app fixes + support drop in the editor + global new post button 2023-01-17 13:02:05 +01:00
Thomas Ricouard
7f6419ebae Swiftformat 2023-01-17 11:36:01 +01:00
Thomas Ricouard
dd6483dd37 Fix EnvironmentObject related crash on macOS + iPad 2023-01-17 07:39:13 +01:00
Thomas Ricouard
7d053592c9 Scrolling optimizations with the new emojis 2023-01-12 21:12:47 +01:00
David Walter
3acd5aced4
Support Custom Emojis (#61)
* Support Custom Emojis

* Update EmojiText

* Update EmojiText

* Use EmojiText in StatusEditorAutoCompleteView

* Update EmojiText

* Display Account displayName without emojis in navigation title

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-01-12 06:58:04 +01:00
Thomas Ricouard
d59ba03ba3 Handle badge for push notifications 2023-01-09 18:52:53 +01:00
David Walter
c304b3eefe
Design system improvements (#45)
* Improve DesignSystem

Apply Theme to all connected windows

* Only use UIKit when available
2023-01-08 19:49:49 +01:00
David Walter
6ccd27b2e5
Minor improvements (#46) 2023-01-08 19:45:11 +01:00
Thomas Ricouard
039f786c16 Error state UI 2023-01-07 18:01:06 +01:00
Thomas Ricouard
12fc8cd475 Add a compact style for status 2023-01-07 17:44:25 +01:00
Thomas Ricouard
7f5330f284 Redesigned settings tab 2023-01-06 17:14:34 +01:00
Thomas Ricouard
f922ba344d Search & Pin remote local timeline + general polish 2023-01-06 12:14:05 +01:00