Commit Graph

211 Commits

Author SHA1 Message Date
Benoît Clouet d32c5c004c
Added the ability to display the Pending/Unread button at bottom of the screen for bigger displays or smaller hands (#1595) 2023-10-01 09:24:37 +02:00
Thomas Ricouard 4870b202d6 Migrate TagGroup to SwiftData 2023-09-22 19:33:53 +02:00
Thomas Ricouard 527d982dce Migrate LocalTimeline to SwiftData 2023-09-22 12:49:25 +02:00
Thomas Ricouard 60713101a7 Remove some .shared usage 2023-09-22 08:32:13 +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 8bb102cd67 Fix #1466 2023-09-18 18:55:11 +02:00
Thomas Ricouard 7388cc4a86 Add two new icons 2023-09-18 09:14:51 +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 1bbb0dc82d Fix sound effects + upgrade swift concurrency settings 2023-09-14 11:04:14 +02:00
Thomas Ricouard 4280764733 Edit tag groups 2023-08-04 12:40:21 +02:00
Chanhwi Joo 559e1d0c83
Add a new 6-striped icon without white borders (#1526) 2023-08-01 09:53:10 +02:00
Simone Margio a3d497f48e
Add minimal icon app (#1525)
* Minimal icon app

Adding icons to the application on a minimal view

* Changes and add to Italian language

Insertion and modifications of some strings in the Italian language

* Revert "Changes and add to Italian language"

This reverts commit ce3c5a6a13.
2023-08-01 09:21:37 +02:00
Paul Schuetz b8af362b23
Show all symbols when adding a tag group (#1513)
* Show all symbols when adding a tag group

All the SFSymbols are shown when adding a tag group, the list is taken from
SFSafeSymbols. This includes symbols such as "swift" and "apple.logo", as seen
in https://mastodon.social/@alexito4/110742407894134083.

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

* Add credit for SFSafeSymbols

The list of used libraries is updated with SFSafeSymbols.

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

---------

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
2023-07-20 08:01:32 +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 8ace002e4a Add Tag Group symbol in settings 2023-07-19 07:50:19 +02:00
Thomas Ricouard a2fe0511e0 Run swiftformat 2023-07-19 07:46:25 +02:00
Alejandro Martínez 5951bcec38
Tag groups (#1506)
* Implemented tag groups

* Cleanup

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-07-19 07:44:35 +02:00
Thomas Ricouard 39ec8bb389 Add a new icon 2023-07-18 09:45:44 +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
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
Thomas Ricouard ab51d57648 Cleanup debounce 2023-04-03 13:53:41 +02:00
Paul Schuetz 59b16d86a7
Fix the lag of the display setting sliders (#1342) close #1341
* Fix the lag of the display setting sliders

The sliders in the display settings were laggy because changing the value in the
theme class needs comparatively much time. This writing to the class is now
only done when the user lets go of the slider, so sliding it is responsive. I
was unable to make writing to the class more responsive, the example post needs
therefore a short time before it accepts the new values. Furthermore, all
AppStorage keys are now realized with a ThemeKey to clean the class up.
Fixes #1341

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

* Remove unnecessary changes to theme

The changing of theme keys is unnecessary for the fix oft the lag, so it's
removed.

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

* Rework fix to be more similar to other lag fixes

The fix now uses the ...LocalValues class, which published updates only every
half a second.

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

---------

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
2023-03-31 15:34:24 +02:00
Thomas Ricouard efb255eb62 Display settings: keep example post on the top 2023-03-26 19:19:59 +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
Paul Schuetz 731ee4c3ac
Fix icon switching on iPad (#1310)
The switching of icons didn't work on the iPad anymore (See
https://norden.social/@betamax65/110088664994961476). This might be a temporary
fix, depending on what caused the bug (which I couldn't determine). For now,
one icon in the set seemingly must have a complete iPad icon set, which is
achieved with the standard icon. Furthermore, an assert statement helps to
determine the problem with the icons. This statement won't be compiled into
release builds.

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
2023-03-26 14:19:34 +02:00
Paul Schuetz 0874be89f8
Add an edit button to the remote timeline settings (#1304) 2023-03-25 17:16:07 +01:00
Chris Kolbu c5b4a0dd07
Settings screen Accessibility tweaks (#1258)
* Remove `.button` trait from `Link`s on Account Settings screen

SwiftUI currently sets both the `.button` and `.link` traits on these elements, which is a failure for WCAG 2.1 4.12: Name, Role, Value: https://www.w3.org/WAI/WCAG21/Understanding/name-role-value.html

There is a radar for this issue: FB11507660

* Improve accessibility by making `AppAccountView`s a Button

Previously, the component elements of the `fullView` would be rendered as 3-4 individual views that would _all_ be interactive and perform the same action.

Now, as a Button, only one accessibility element is vended.

* Fix account label color

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-03-17 06:38:50 +01:00
Paul Schuetz fa090f5663
Remove an unnecessary icon. (#1256) 2023-03-17 06:06:56 +01:00
Ico Davids 5ef39e7a09
Add navigation title to the Translation Settings view (#1257) 2023-03-17 06:06:09 +01:00
Paul Schuetz baf853f46e
Add the ability to translate using deepl even if the instance offers its own service (#1237)
* Allow forced translation with DeepL

Translation with DeepL can now be forced either per post or on the system level.

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

* Require the use of a private API key

A private API key of the user is now required to allow "always translate via
DeepL".

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

* Persist a stored API key

An API key is stored even if useOnlyDeepL is disabled. If the API key is empty,
the setting is still disabled.

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

* Localize the texts

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

* Save API key while writing

The API key is now saved, even if the app is closed before leaving the
translation settings view.

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

* Fix build

* Fix theme

* Transition to KeychainSwift, clean up

KeychainHelper is replaced with the already-used KeychainSwift package, the
functions are cleaned up so that the process is easier to understand. The
deactivateToggleIfNoKey function doesn't change the behavior of the buttons or
context menus in the timeline, only demonstrates the necessity of an API key to
the user. Consequently, it's only called when the settings view is shown.

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

* Swiftformat + fixes

---------

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-03-14 18:50:19 +01:00
Paul Schuetz ff9bfe9285
Allow reordering of remote timelines (#1240)
The reordering of remote timelines is now available. See #1239

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
2023-03-14 07:22:17 +01:00
Thomas Ricouard 6c307aba63 SwiftFormat 2023-03-13 13:38:28 +01:00
Thomas Ricouard 0989f25bff Rework About Screen 2023-03-12 12:58:00 +01:00
Thomas Ricouard f6b987a18a Display Settings: Close to live colors update, removed the "apply colors" button. 2023-03-08 19:02:00 +01:00
Keita Watanabe 700ace10d9
fix about view preview (#1156) 2023-03-04 09:31:22 +01:00
Keita Watanabe b08e783cb8
add oss licenses for SwiftUI-Introspect and RevenueCat (#1157) 2023-03-04 09:31:04 +01:00
Thomas Ricouard deae0930b1 Add web account settings button 2023-03-03 18:21:52 +01:00
Thomas Ricouard 5766adc965 Cleanup display settings 2023-03-03 08:29:45 +01:00
Thomas Ricouard eea6d93dd5 Add customization of text color close #385 2023-03-03 08:12:01 +01:00
Thomas Ricouard 10eeb39241 Fix laggy color picker close #1082 2023-03-03 07:24:00 +01:00
Gareth Simpson d7f1ef45fe
Add Account: Sanitize the servername to remove http[s]:// and also usernames (#1131)
* Sanitize the servername to remove http[s]:// and also usernames

Fixes: #1120

* Sanitize the input box with sanitizedName, not instance.title
2023-03-02 08:55:35 +01:00
Thomas Ricouard a76d8ef267 oops 2023-03-01 21:14:26 +01:00
Thomas Ricouard d3486bbd7e Fix entitlements check 2023-03-01 20:43:01 +01:00
Thomas Ricouard 81f3db733b Add supporter subscription + supporter badge 2023-03-01 20:07:40 +01:00
Thomas Ricouard b540d6ef5b Icons: Remove wrong username 2023-02-28 21:33:33 +01:00
Thomas Ricouard a3e2d3f8b3 Add sound effects 2023-02-28 18:55:08 +01:00