Commit Graph

489 Commits

Author SHA1 Message Date
Thomas Ricouard
017275ec69 Fix status embed 2023-10-16 09:26:49 +02:00
Thomas Ricouard
f08c90f8a0 Fix #1419 2023-10-16 09:16:17 +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
Thomas Ricouard
23a83d69cc Remove legacy migrations 2023-10-01 09:48:27 +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
Paul Schuetz
1f28595d39
Remove "Translate with DeepL"-option (#1593)
The "Translate with DeepL"-option is removed to make the app better understandable for the average user. A person who wants to use DeepL can still insert their own API key to always use DeepL.
Fixes #1583

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
2023-09-26 14:11:00 +02:00
Thomas Ricouard
527d982dce Migrate LocalTimeline to SwiftData 2023-09-22 12:49:25 +02:00
Thomas Ricouard
0c4bde40af Migrate drafts to SwiftData 2023-09-22 09:31:35 +02:00
Thomas Ricouard
15f498037d Fix thread bar in status detail 2023-09-20 21:19:02 +02:00
Thomas Ricouard
3743e6d870 Fix share sheet 2023-09-19 09:25:48 +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
e6455304ac Fix draft label color 2023-09-18 19:07:14 +02:00
Thomas Ricouard
1b0ddf4fd9 Fix #1457 2023-09-18 19:04:54 +02:00
Thomas Ricouard
8bb102cd67 Fix #1466 2023-09-18 18:55:11 +02:00
Thomas Ricouard
27102cbae3 oops 2023-09-18 14:30:36 +02:00
Thomas Ricouard
bd3d2008c2 Fix #1483 2023-09-18 14:30:24 +02:00
Thomas Ricouard
8b445324e0 Fix #1548 2023-09-18 09:29:42 +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
Eslam Nahel
3853eff065
Fix text field bottom padding in EditorView (#1570) 2023-09-17 08:47:15 +02:00
Thomas Ricouard
98035e8530 Better status focused screen transition 2023-09-16 15:04:42 +02:00
Thomas Ricouard
8a3c971402 Swiftformat 2023-09-16 14:15:03 +02:00
Thomas Ricouard
584a0d0432 Composer: Fix nav bar background 2023-09-16 14:02:50 +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 Durand
56b0010d6c
Poll close in … : Fixing missing space in some locales (#1536) 2023-08-10 08:59:08 +02:00
Chanhwi Joo
5fb9ab1c5e
Fix quote button not showing for unlisted posts (#1537) 2023-08-10 08:58:43 +02:00
Thomas Ricouard
04b5804c96 Video Player: Pause video when onDisappear 2023-08-09 13:53:41 +02:00
Paul Schuetz
90b0e91c79
Allow specifying the default reply visibility (#1509)
* Allow specifying the visibility of replies

Replies can now have their own default visibility. This visibility is always at
least as restrictive as the default post visibility. When posting a reply, the
visibility is pre-populated with the more restrictive out of the default and
the visibility of the original post.

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

* Use iOS-specific modifier

If the app is run on iOS 17, the new onChange(...)-modifier is used.

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

* Restrict the extension of the onChange-Modifier

The extension of the view to allow the use of the version-appropriate
onChange-modifier is now only available in the relevant file.

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

* Reset to use Xcode 14 / iOS 16

The iOS 17 specific changes are removed to allow building in the older Xcode 14.

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

* Make the default reply visibility public

The standard default reply visibility is now public, the behavior of the app
isn't changed for a user who just updated.

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

---------

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
2023-07-19 11:49:06 +02:00
Thomas Ricouard
a2fe0511e0 Run swiftformat 2023-07-19 07:46:25 +02:00
Thomas Ricouard
67d1dede04 Don't erase alt text on app switch Fix #1419 2023-07-18 07:20:43 +02:00
Thomas Ricouard
4168c64d20 Add a setting to turn off auto detect language when posting close #1461 2023-07-17 20:39:53 +02:00
Thomas Ricouard
9ed785db0e Properly JSON encode image ALT fix #1492 2023-07-17 19:35:16 +02:00
Thomas Ricouard
c0b34d352b Add overlay / border on media previews 2023-07-17 19:18:19 +02:00
Thomas Ricouard
d41eca867b Embed Media card in Button 2023-07-17 19:13:36 +02:00
Jerry
da54c933f9
Add localization for Error while posting message (#1472)
* Fix Error while posting message not localized

* Update Localizable.strings files

* Update Traditional Chinese localization
2023-07-05 09:03:28 +02:00
Nathan Reed
194e3aea74
Add feature to block or mute user directly from post (#1460)
* Make status context menu button frame tap target larger

This makes it much easier to hit on the first try, and doesn't appear to negatively impact the layout.

* Add feature to block or mute user directly from post

To avoid calling the /accounts/relationships endpoint for every single status displayed, the data is only loaded when the menu is activated.
When the API call comes back, the items are added to the menu (updating the view model appears to cause the menu to update, even while it is displayed)
Borrowed blocking & muting logic/menu items from AccountDetailContextMenu.
2023-07-03 07:40:49 +02:00
nathanwale
abcd63a136
Post length is counted differently from server (see #1439) (#1440)
Mastodon server replaces all URLs with a 23 character string, not just those that are longer than 23 characters
2023-06-26 11:46:04 +02:00
Nathan Reed
ffe9e7a714
Add setting to control share button default behavior (#1421)
* Add setting to control share button default behavior

This adds a setting to control the behavior of the share button on the status row actions view.
Currently, it always shares the link to the post as well as the post text.
In iOS 16.4, Apple added iMessage unfurling for Mastodon URLs.
When sharing posts from Ice Cubes via iMessage, this leads to the recipient seeing two copies of the post: one from the unfurled link and one from Ice Cubes including the post text.
Users will now have the option to exclude the post text from their sharing.
This is easier than tapping the 3-dots button on the post (which is kind of small) and then expanding the Share menu in the context menu, which is the other way to access this functionality at the
moment.

The default value for the new option will be "Link and Text", which is the current behavior - so we won't change the behavior on existing users.

* Add new strings to other language localizations
2023-06-26 11:45:14 +02:00
Chris Kolbu
7391c12644
Accessibility fix for Timeline StatusRowView and Status detail (#1355)
* Add StatusRowView accessibility action to open media attachment viewer

Previously, there would be no way to open QuickLook from the timeline.

Now, we add a custom accessibility action to do this.

* Work around initial accessibility focus bug in StatusDetailView

Previously, (due to identity issues?) the focus would be set on the header view. However, moving to the next element in the focus order. would skip over a random number of elements, depending on the context of the detail view.

Now, we manually set the focus once, allowing the focus order to work as intended.

* Respect filters in Timeline combined accessibility label

* Add explicit action to show filtered warnings from `filterView`

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-04-04 08:12:25 +02:00
Thomas Ricouard
2601764b28 Poll: Support hidden votesCount close #1354 2023-04-04 08:03:33 +02:00
Thomas Ricouard
ab5c6643b3 Fix a crash when deleting an uploading image 2023-04-04 07:51:46 +02:00
Thomas Ricouard
573497ed52 Disable take photo option on macOS 2023-04-04 07:44:29 +02:00
Thomas Ricouard
9ba18a8ca3 Fix camera photo upload 2023-04-03 14:48:32 +02:00
Thomas Ricouard
477dd520b9 Editor: Add Take Photo option close #1339 2023-04-03 13:54:16 +02:00
Chris Kolbu
f728ea652e
Accessibility bug fixes (#1348)
* Fix bug affecting accessibillityRepresentation of type Toggle

Previously, the action on the button would not get executed. This is a SwiftUI bug, as views passed into `accessibilityRepresentation` should not have any behaviour.

Now, we set an equivalent `accessibilityValue` on|off to emulate the same functionality.

* Remove conditional ViewModifier in favour of inlined modifier

Since this view is part of the `StatusRowView` it’s better to err on the side of less branching with ModifiedContent<>

* Avoid combining StatusRowMediaPreviewView accessibility children

By combining the elements, the end result was that the intended action (opening QuickLook) was swallowed in favour of displaying the alt text alert of images.
2023-04-03 11:14:44 +02:00
Thomas Ricouard
d3e71cea74 Fix screenshots sharing on iOS 16.4 2023-03-31 14:52:39 +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
Chanhwi Joo
3d63ea4642
Make "Edit History" navigation title localizable (#1302) 2023-03-25 17:16:22 +01:00