Commit graph

226 commits

Author SHA1 Message Date
Thomas Ricouard
416dc702b2 Merge branch 'main' into iOS-18 2024-07-02 20:22:29 +02:00
Thomas Ricouard
478a788f87 Redesign News + support links attributions 2024-07-02 19:59:21 +02:00
Thomas Ricouard
0032c1dbf5 Migrate to Swift Tests 2024-06-12 07:42:02 +02:00
Thomas Ricouard
1977a4d65f Fix more warnings 2024-06-11 08:24:04 +02:00
Thomas Ricouard
69cb9a20f9 Add native translate for media description edit + profile bio 2024-05-14 19:36:25 +02:00
Paul Schuetz
48faddebea
Implement Apple Translate (#2065)
* Implement a first version of Apple's Translation

The user can now choose between his instance's server, DeepL (with API
key) and Apple's Translation framework. A translation is cleared if
the translation type is changed. The strings aren't yet written, but
the translations settings view's inconsistent background is now fixed.

* Transfer the old "always_use_deepl" setting

The "always_use_deepl"-setting is now deleted, but its content is
transferred to the equivalent value in "preferred_translation_type".

* Show the user if the DeepL-API key is still stored

The user is now shown a prompt if they've switched away from
.useDeepl, but there's still an API key stored. The API key is not
deleted if the user doesn't instruct the app to do so, so this change
makes it more transparent, since a user might not expect the key to
be stored and might not want this to be the case.

* Localize Labels

The labels for the buttons and options are now localized. "DeepL API Key" is written consistently (with uppercase Key)

* Run all the strings through localization

The strings "DeepL" and "Apple Translate" are now also saved in
localizable.strings and addressed through keys. They were taken
directly previously, which was inconsistent.

* Fix storage

The selected value for preferredTranslationType wasn't stored, the
synchronization between UserPreferences and Storage is now in place.

* Hide Apple Translate if not yet on iOS 17.4

The Apple Translate option is hidden if the user hasn't updated their
phone to at least iOS 17.4. If the Apple Translate option is selected
but the user has downgraded to before iOS 17.4, the standard instance
option is selected.

* Consistently show Apple Translate

Apple Translate was previously only shown if the standard translate
button was visible, that is now fixed. It's now attached to the
StatusRowView, which is always present.

* Animate the removal of translations

The reset of a translation when the translation type is changed is now
animated, which is important for iPad users if they've translated a
post in the sidebar.

* Add support for the Mac Catalyst build

The Mac Catalyst Version doesn't allow the import of the api, so
compiler flags now check if the import isn't allowed and then remove
all references to Apple Translate.

* Swift Format

* Revert "Run all the strings through localization"

This reverts commit 86c5099662.

# Conflicts:
#	Packages/Env/Sources/Env/TranslationType.swift

* Remove the DeepL fallback

The DeepL fallback for the instance translation service is removed,
error messages are shown if a translation fails.

* Allow for the use of an User API Key as fallback

The DeepL fallback is reinstated if the user has put in their own API
Key

* Make the localization keys clear strings

* Make Apple and the instance a fallback

Apple Translate is now a fallback for both other translation types,
the instance service is a fallback for DeepL.
2024-05-13 13:27:21 +02:00
Thomas Ricouard
e21ec0bd1f Add expanded sidebar layout 2024-05-08 11:51:28 +02:00
Thomas Ricouard
c3edabb183 Lint 2024-05-04 13:19:19 +02:00
Thomas Ricouard
49a5c6a56a Add more shortcuts 2024-05-02 11:37:38 +02:00
Thomas Ricouard
4e4d903c44 Add AppIntent service + post to Mastodon intent 2024-05-02 09:32:19 +02:00
Thomas Ricouard
abcd4cc321 Add muted and blocked accounts list 2024-05-02 08:43:58 +02:00
Thomas Ricouard
361b5f1d84 Fix tests 2024-04-17 11:11:22 -07:00
Nathan Reed
8038e8e6af
Improve deep link handling on cold start (#2026)
Previously, if the app was not already running when the Safari action extension was used to open a post in the app, the post would open in the in-app Safari instead of using the Ice Cubes UI.
The action extension only worked well if Ice Cubes was already running but backgrounded when it was used.
This was because of the `hasConnection(with:)` check used to ensure that the current server has a federation relationship with the server the post is on.
Early in app launch, the list of federated peers has not come back from the API request yet, so `hasConnection(with:)` was always returning `false`.

To fix, issue a request to fetch the peers as part of the URL handling process, before checking `hasConnection(with:)` to make the final navigation decision.
As an optimization, only do this if `hasConnection(with:)` returns `false` initially -- if it returns `true`, we already know a connection exists so no need to check again.
2024-04-02 08:26:58 +02:00
Thomas Ricouard
5c32c24ae5 Add supports for notifications filter API 2024-03-26 15:49:43 +01:00
Thomas Ricouard
058500f91e Swiftformat . 2024-03-11 09:05:52 +01:00
Thomas Ricouard
b56da94a7c Add more sheets to shared + link to filters in timeline top filters 2024-02-21 09:45:29 +01:00
Thomas Ricouard
24ce872849 Add previews + refactor placeholder view 2024-02-14 13:34:06 +01:00
Thomas Ricouard
1f858414d8 format . 2024-02-14 12:48:14 +01:00
Thomas Ricouard
e7bc857231 News trending links experience 2024-02-10 11:26:22 +01:00
Thomas Ricouard
3020d831e4 Various fixes 2024-02-06 19:19:53 +01:00
Thomas Ricouard
f67163e4b0 Cleanup print + use OSLog 2024-02-02 18:26:24 +01:00
Le-Roy Karunaratne
ed9a4a598d
Resolve #359 Optional Missing Alt-Text warning (#1895)
* Resolve #359 Optional Missing Alt-Text warning

Add toggle in settings to require alt text (default off)
If setting is enabled, posting show an error if any attached media is missing alt text

* Re-localized strings
2024-01-22 06:28:03 +01:00
Thomas Ricouard
2b446833da Notifications: Full media size + autoplay 2024-01-21 19:46:29 +01:00
Thomas Ricouard
2f5307bfc7 Add timeline content filter 2024-01-11 18:55:35 +01:00
Thomas Ricouard
af2a69fdb1 Fix image sizing 2024-01-10 16:50:18 +01:00
Thomas Ricouard
0da8228e61 Followed Tags + Lists tab. + sidebar customization 2024-01-10 13:26:55 +01:00
Thomas Ricouard
cd63c9ddff Mute video by default 2024-01-07 18:14:12 +01:00
Thomas Ricouard
2c7ca2ca81 Add new setting to mute video 2024-01-07 17:33:37 +01:00
Thomas Ricouard
34a482f01f More layout rework for the composer 2024-01-07 07:03:39 +01:00
Thomas Ricouard
2eb15b48d4 Don't cache non filterable timeline 2024-01-03 14:59:28 +01:00
Thomas Ricouard
ad4995ad70 Catalyst: Fix mention window 2024-01-03 13:40:53 +01:00
Thomas Ricouard
8ee5da319c Reflect edit / post / delete status better 2024-01-01 16:46:34 +01:00
Thomas Ricouard
b10ee3091c Make edit stickier 2024-01-01 14:13:25 +01:00
Thomas Ricouard
b6317d7324 Add tests for Router 2024-01-01 09:48:53 +01:00
Thomas Ricouard
7222d530dd Fix url router 2024-01-01 09:23:06 +01:00
Thomas Ricouard
a1093c8052 Animate favorite / boost count update 2023-12-28 21:57:41 +01:00
Thomas Ricouard
6850fcd928 Add support / about shortcuts in account selector bottom sheet 2023-12-28 16:03:16 +01:00
Thomas Ricouard
5a2478c791
VisionOS native support (#1758)
* Initial support

* UI Adjustments

* WIP icons

* More UI
2023-12-19 09:51:20 +01:00
Thomas Ricouard
8ff3e22d9f SwiftFormat 2023-12-18 08:22:59 +01:00
sh95014
f9da958047
add a setting to disable the account popover on hover (#1750)
* add a setting to disable the account popover on hover

- not entirely pleased with the AnyView() cast but don't really know of a less invasive change

* Fixes

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-12-17 07:57:20 +01:00
Paul Schuetz
d8a686be51
Allow the user to customize the thread indentation (#1737)
* Allow the user to customize the thread indentation

The user can now select if they want to indent threads/replies, and how much
the replies should be indented.

* Make the wording clearer

The wording is now clearer since "thread" is replaced by "reply".

* Fix localizations

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-12-14 07:17:09 +01:00
Thomas Ricouard
76219f553b Add tag status indicator for home timeline 2023-12-04 09:52:18 +01:00
Thomas Ricouard
b249b37612 Add a fast refresh option 2023-12-01 08:51:19 +01:00
Thomas Ricouard
2e2a9f5f14 Add more lists setttings 2023-11-28 09:18:52 +01:00
Thomas Ricouard
71ab8d558a Fix / simplify account content warning 2023-11-19 08:26:07 +01:00
Paul Schuetz
12d92ab1ec
Add hint if the server post options are overridden (#1679)
If the content settings specify their own post settings and override the
instance settings, a hint (and link to the content settings) is added to the
instance settings (infos) since that setting might introduce confusion (As
happened in #1677).
2023-11-19 08:10:53 +01:00
Paul Schuetz
59e5eba860
Improve the display of replies (#1672)
Threads/replies are now shown more clearly. Each reply has an indentation level
(and therefore the number of vertical lines) one more than its direct parent.
This leads to siblings having the same indentation level. It makes
understanding somewhat complex thread structures way easier. Previously, a
reply was only indented if it came directly after its parent. If a toot had
more than one reply, the structure was nearly indecipherable, as it wasn't
clear which the parent post of the second (or later) toot was. An example is
"https://mastodon.social/@mhoye/110452462852364819" and all of its replies.

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
2023-11-16 09:56:00 +01:00
Thomas Ricouard
f451d7cb8c Bigger media viewer window 2023-11-14 19:48:14 +01:00
Théo Arrouye
4266ac4b42
Improve SoundEffectManager & HapticManager (#1662)
* Remove unnecessary vars and switches

* Improve SoundEffectManager call-site API

* Improve HapticManager call-site API
2023-11-07 11:22:36 +01:00
Thomas Ricouard
0424b62684 Fix build 2023-11-01 19:55:48 +01:00