Commit graph

235 commits

Author SHA1 Message Date
Thomas Ricouard
122e57d8ac Restore ScrollToTop on timeline tab 2024-09-14 08:09:51 +02:00
Thomas Ricouard
594fb3ea07 New iOS 18 Icon 2024-09-13 15:21:14 +02:00
Thomas Ricouard
0a15f7ff1c fix visionOS build 2024-09-10 11:44:14 +02:00
Thomas Ricouard
6297a428a3
Full Xcode 16 supports + iOS 18 support (#2100)
* Compile on iOS 18

* Fix more warnings

* Tweak build settings

* Migrate to Swift Tests

* better tests

* Fix

* Fix tests

* More TabView cleanup

Bump to iOS 18 only + remove custom sidebar

* Revert "More TabView cleanup"

This reverts commit e051437fcb.

* Tabbar fix + bump to iOS 18

* Remove popToRoot

* Cleanup scrollToTop

* Support both TapBar

* Better TabView support

* Better TabView support

* Cleanup

* Disable TabView animations

* Remove id in ForEach

* Remove external init for StatusRowView

* Cleanup

* More Swift 6 concurrency

* Swift 6 mode

* Fixes

* Full Swift 6 packages support

* For now compile env in Swift 5 mode

* Fix archive

* More fix to Archive

* Address `dispatch_assert_queue_fail` (#2161)

See https://twitter.com/dimillian/status/1823089444397724003?s=61&t=SC3rvyJQWn1NQqAgMVrT0Q

* Bump Env to Swift 6

* Fix push notification

* Remove unecessary workaround

* Cleanup

* Move to @Entry

* Fix TabView on Catalyst

* Fix build

* Fix build 2

* fix warning

* Fix icons for iOS 18

---------

Co-authored-by: NachoSoto <NachoSoto@users.noreply.github.com>
2024-09-10 06:53:19 +02:00
Thomas Ricouard
904cd3dbd7 Fix Catalyst build 2024-09-06 07:53:01 +02:00
Thomas Ricouard
8c6d2bee7f Add Wishlist Kit 2024-08-15 09:23:07 +02:00
Thomas Ricouard
1ad4a245f3
Add support for sub.club support (#2162)
* Account tipping

* Tryout full flow

* Add link params

* WIP

* Progress flow

* Fixes

* More progress

* Refresh user profile on notification

* Tweaks

* Fix follow button not refreshing

* Refactor proxy url

* Code cleanup

* Subscribe to a premium account from a standard linked account

* Premium posts tab on linked standard account

* Fix flow

* New domain

* Fix flow

* More fixes to follow flow

* Update so to sub.club

* Add colorScheme in URL

* rollback domain

* Back to sub.club

* Use SubClub API for Subscription info

* Fix

* Merge

* Merge branch 'iOS-18' + fixes
2024-08-14 20:07:43 +02:00
Thomas Ricouard
9d11814e49 Add TelemetryDeck 2024-08-14 17:23:10 +02:00
Thomas Ricouard
113c4f1c84 Display push notification while in the app 2024-08-14 08:45:20 +02:00
Thomas Ricouard
a72f290038 Lint 2024-08-01 08:58:54 +02:00
Thomas Ricouard
9fa19aa132 Add media grid on user profile 2024-07-31 18:44:29 +02:00
Thomas Ricouard
123f05538a Paginate search results fix #2143 2024-07-31 11:19:43 +02:00
Thomas Ricouard
478a788f87 Redesign News + support links attributions 2024-07-02 19:59:21 +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