Commit graph

1295 commits

Author SHA1 Message Date
Paul Schuetz
7caf00d07d
Resolve escaped characters in a status (#2071)
* Resolve escaped characters in a status

Escaped characters are now returned to their original form for
HTMLString.asRawText.

* Unescape the markdown version too

The HTMLString.asMarkdown string is now also unescaped, & and
similar are resolved.

* Fix a internal fallback

If one of the unescape(...) commands fails, the original, unescaped
text is used instead of an empty string.
2024-05-13 21:32:38 +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
9c42a3d7cc Add copy button for alt text 2024-05-08 11:03:25 +02:00
Thomas Ricouard
54a16b2c9a Fix unboost icon 2024-05-08 11:00:40 +02:00
Thomas Ricouard
a6f3068728 Add accounts list placeholder 2024-05-08 10:59:31 +02:00
Thomas Ricouard
f04258ec04 Revert "Delete unused functions in TimelineDatasource.swift (#2037)"
This reverts commit e9a2d3e151.
2024-05-08 10:50:22 +02:00
Noah Martin
e9a2d3e151
Delete unused functions in TimelineDatasource.swift (#2037) 2024-05-08 10:38:36 +02:00
Thomas Ricouard
a37316c56f Lint 2024-05-06 08:38:37 +02:00
Thomas Ricouard
24d5ecd119 Shortcuts: Fix image 2024-05-05 21:13:34 +02:00
Thomas Ricouard
1ca4a74ff0 Initial widget support 2024-05-05 13:12:19 +02:00
Thomas Ricouard
c3edabb183 Lint 2024-05-04 13:19:19 +02:00
Thomas Ricouard
66754ecc7c Fix editor progress bar 2024-05-04 11:27:52 +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
Euigyom Kim
6a7df1065d
Fix scrolling issue on emoji picker (#2032)
* Fix scrolling issue in emoji picker

* Fix design on emoji section header
2024-04-22 16:38:31 +02:00
Thomas Ricouard
899b92e390 Revert "Fix StatusRowContentView invade SwipeActions area (#2007)"
This reverts commit 3782300b27.
2024-04-19 06:46:56 -07:00
Thomas Ricouard
361b5f1d84 Fix tests 2024-04-17 11:11:22 -07:00
tkgka
3782300b27
Fix StatusRowContentView invade SwipeActions area (#2007)
* Fix StatusRowContentView invade SwipeActions area

* ./ add padding inside StatusRowMediaPreviewView
2024-04-17 10:54:46 -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
9a7e6b7cb0 Various fixes for Xcode 15.3 2024-03-11 08:59:29 +01:00
Max von Webel
bc2a09891a
Added a "Moved To" Button to accounts that moved to other instances (#2001)
* added moved information to Account model

* Added "Moved To" button to account details for accounts that have moved
2024-03-11 08:57:35 +01:00
Thai D. V
15d7d1dabd
handle edge cases for StatusRowCardView (#1985) 2024-02-26 11:50:10 +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
2d988d48c1 Remove some button from status row 2024-02-14 10:48:17 +01:00
Thomas Ricouard
cca6472a32 Update to Nuke 12.4.0 2024-02-13 18:51:00 +01:00
Thomas Ricouard
c769e80bb6 Add preview for status row 2024-02-13 18:50:51 +01:00
Thomas Ricouard
2986d2b177 Fix env 2024-02-13 17:21:33 +01:00
sh95014
29312d1be2
select a contrasting color for label of "show sensitive content" button (#1965)
* Custom layout for App Store links

* select a contrasting color for label of "show sensitive content" button

fix https://github.com/Dimillian/IceCubesApp/issues/1932

* move contrasting color to Theme and cache computed var
2024-02-13 11:33:59 +01:00
sh95014
d55d6a0371
Use horizontal link preview card for Apple Podcasts as well (#1966)
* Custom layout for App Store links

* generalize the logic to include links known to be associated with square icons

- such as Apple Music and Spotify

* show Apple Podcasts in horizontal link preview
2024-02-12 07:18:18 +01:00
Thomas Ricouard
7423aba92a Fix crash on visionOS in AboutView 2024-02-11 18:59:34 +01:00
Thomas Ricouard
77aa50ef19 Fix #1873 2024-02-11 18:52:58 +01:00
Thomas Ricouard
dfc213a19a Remove spacer 2024-02-11 18:45:38 +01:00
Thomas Ricouard
fcd56ab7a0 Fix #1960 2024-02-11 11:13:03 +01:00
Thomas Ricouard
923927cddd Cleanup 2024-02-11 11:12:34 +01:00
Thomas Ricouard
219703ecc7 Refactor to NextPageView + handle next page loading failure 2024-02-11 10:58:51 +01:00
Thomas Ricouard
0739264005 Fix background 2024-02-10 12:16:32 +01:00
Thomas Ricouard
d8e6e6cfb1 Share Sheet: set cursor before shared content 2024-02-10 11:32:58 +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
a0e022b8de Fix #1948 2024-02-06 17:32:42 +01:00
Thomas Ricouard
b9b3d0e727 Enhance visionOS support 2024-02-06 15:17:20 +01:00
Thomas Ricouard
f14ca6e529 Various visionOS fixes 2024-02-06 09:15:22 +01:00
Thomas Ricouard
75bb4f43dd More fix for #1943 2024-02-05 14:24:29 +01:00
Thomas Ricouard
cfd6eed159 Fix #1943 2024-02-05 08:59:27 +01:00
Thomas Ricouard
b4dbda8722 Migrate EmojiText API 2024-02-05 08:55:24 +01:00
David Walter
827765f251
EmojiText 4.0.0 (#1941) 2024-02-05 08:49:29 +01:00
Thomas Ricouard
70f58aa08d Fix #1939 2024-02-04 12:02:14 +01:00
Thomas Ricouard
cf81054366 Fix isCompact 2024-02-02 18:39:39 +01:00
Thomas Ricouard
f67163e4b0 Cleanup print + use OSLog 2024-02-02 18:26:24 +01:00
Thomas Ricouard
9bd967cddf Fix #1938 2024-02-02 08:53:59 +01:00
Thomas Ricouard
2a6afb4092 Card title limit to two lines instead of one 2024-01-31 07:57:59 +01:00
Thomas Ricouard
b348f37f1a Add block confirmation 2024-01-31 07:56:50 +01:00
Thai D. V
7268b5a38e
Improve StatusPollView (#1929)
* fix `StatusPollView`

* fix text alignment
2024-01-30 09:22:20 +01:00
Thomas Ricouard
6e497fae5b Adjust action buttons size 2024-01-29 08:48:24 +01:00
Thai D. V
586e4f525e
Fix timeline media size (#1928)
* fix layout for post with 1 media item

* fix corner radius

* Fixes

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2024-01-28 17:32:16 +01:00
Thomas Ricouard
9dfd9c27c7 Fix actions button on macOS 2024-01-27 10:31:25 +01:00
Thomas Ricouard
9cf16b2f30 Fix memory leak related to video #1925 2024-01-27 10:20:12 +01:00
Thomas Ricouard
1299202bba Fix #1927 2024-01-27 09:52:27 +01:00
Thomas Ricouard
f16f0d514b Fix Swift strict concurrency warnings 2024-01-26 13:01:23 +01:00
Thomas Ricouard
096996c242 Video: Increase compression when in extension 2024-01-24 16:56:35 +01:00
Thomas Ricouard
c7bd5a1d94 Cache Account display name 2024-01-24 16:22:44 +01:00
Thomas Ricouard
74590542bc Custom emojis, botom sheet only 2024-01-24 09:25:34 +01:00
Thomas Ricouard
3eec5c0eec new top / bottom bar 2024-01-23 08:51:58 +01:00
Thomas Ricouard
016e4d5d57 Refactor CancelToolbarItem 2024-01-23 08:13:45 +01:00
Thomas Ricouard
ba071eb4c8 Fix status menu on Catalyst 2024-01-23 06:55:12 +01:00
Thomas Ricouard
d2014d3aec Fix #1918 2024-01-23 06:32:58 +01:00
Thomas Ricouard
621f0d0864 Play video on a separate window on macOS 2024-01-22 22:04:28 +01:00
Thomas Ricouard
eeff60bf98 Add quick look for videos 2024-01-22 21:54:28 +01:00
Thomas Ricouard
245d35db82 Fix buttons touch zone 2024-01-22 21:20:43 +01:00
Thai D. V
62eeba5334
use default frame for preview images that API returns incorrect (width: 0, height: 0) (#1915) 2024-01-22 13:58:01 +01:00
Thomas Ricouard
46b8fbde29 New status row context menu 2024-01-22 09:14:45 +01:00
Thomas Ricouard
9a8568d3fa Fix notifications layout 2024-01-22 09:05:22 +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
Thai D. V
13af2d7e3f
fix indentation lines (#1914) 2024-01-22 06:27:56 +01:00
Thomas Ricouard
2b446833da Notifications: Full media size + autoplay 2024-01-21 19:46:29 +01:00
Thomas Ricouard
78eee1e855 Fix status embed 2024-01-21 18:49:45 +01:00
Thomas Ricouard
b7937e3580 Fix language sheet 2024-01-21 18:27:55 +01:00
Thomas Ricouard
9320b2f114 Fix local timeline -> home switch 2024-01-21 17:05:05 +01:00
Thomas Ricouard
a79a181d6f Content Filter view: Blurred background 2024-01-21 11:22:07 +01:00
Thomas Ricouard
fb944f9c48 Editor: Cleanup focus state 2024-01-21 11:13:47 +01:00
Thomas Ricouard
3c82af0273 Custom emojis: blurred background 2024-01-21 11:13:38 +01:00
Thomas Ricouard
abff6218a4 Merge branch 'main' of https://github.com/Dimillian/IceCubesApp 2024-01-21 10:49:46 +01:00
Thomas Ricouard
1be9a7b941 Fix custom emojis loading 2024-01-21 10:49:40 +01:00
Thai D. V
92662665b9
fix divide by zero (#1911) 2024-01-21 10:45:00 +01:00
Thomas Ricouard
e00fd49d89 fix movie supported type 2024-01-20 19:41:44 +01:00
Thomas Ricouard
97798b2c35 Refactor NSItemProvider handler 2024-01-20 19:17:59 +01:00
Thomas Ricouard
90a2a19bb1 Fill poll view 2024-01-20 08:55:12 +01:00
Thai D. V
0b7fed2e9a
Fix Preview Image Size of StatusRowCardView. (#1904)
* fix preview image size and text spacing

* Fix bg

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2024-01-19 17:48:52 +01:00
Ghulam Mustafa
328ee2d090
Fix #1885 blank options on profile page on macos (#1906) 2024-01-19 17:48:20 +01:00
Thomas Ricouard
ebdd5b9feb Fix #1905 2024-01-19 12:35:41 +01:00
Thai D. V
f79117eff1
fix StatusRowCardView layout (#1901) 2024-01-19 09:01:40 +01:00
Thomas Ricouard
709dd79e25 Fix for visionOS + Remove shimmer 2024-01-19 08:51:29 +01:00
Thai D. V
bf7cdc3712
add scroll bar in StatusRowMediaPreviewView for macOS version (#1896) 2024-01-18 06:43:40 +01:00
Thai D. V
76a8f45478
hide context indicator for statuses inside StatusDetailView (#1899) 2024-01-18 06:41:40 +01:00