Commit graph

129 commits

Author SHA1 Message Date
Thomas Ricouard 2e2a9f5f14 Add more lists setttings 2023-11-28 09:18:52 +01:00
Thomas Ricouard 3e3c69c41c format 2023-11-01 18:58:44 +01: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
Yasura Dodo e3f7eb31e4
Fix a crash bug at Client.makeURL (#1601)
The crash will happen when you type something unexpected instance URL.

Example
```swift
let server = "mstdn.jp/"

var components = URLComponents()
components.scheme = "https"
components.host = server
components.path = "/api/v1/instance"
components.url! // 💥 error: Execution was interrupted, reason: EXC_BREAKPOINT (code=1, subcode=0x18c986650).
```
2023-10-02 09:31:59 +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 8e3584ee79 Upgrade to Swift tools version 5.9 + strict Swift concurrency everywhere 2023-09-15 12:46:15 +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 9e43dc3f6f Fix polls endpoint close #1489 2023-07-17 19:37:54 +02:00
Thomas Ricouard 9ed785db0e Properly JSON encode image ALT fix #1492 2023-07-17 19:35:16 +02:00
Thomas Ricouard 831ff08082 Streaming: Send message as UTF8 + token in subprotocols fix #1438 2023-06-23 07:33:10 +02:00
Thomas Ricouard 1870b80f4a Fix AI Prompts 2023-04-18 13:04:05 +02:00
Paul Schuetz da0b92e13d
Allow translation of an account bio/note (#1276)
The bio (note) of an account can now be translated via DeepL. If the user has
put in his own DeepL API key, that is used, otherwise, the standard one is
used. See #1267

Signed-off-by: Paul Schuetz <pa.schuetz@web.de>
2023-03-19 16:18:13 +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
Thomas Ricouard 6c307aba63 SwiftFormat 2023-03-13 13:38:28 +01:00
Thomas Ricouard f1267620be More tweaks to the prompt 2023-03-12 14:53:49 +01:00
Thomas Ricouard 7d0c6671bb Further tweaks to OpenAI hashtags prompts close #1222 2023-03-12 13:24:19 +01:00
Thomas Ricouard f0e9b0ca26 Better OpenAI hashtags prompts 2023-03-12 12:38:05 +01:00
Thomas Ricouard e52712383f Post JSON instead of URL queries for oauth flow 2023-03-12 12:23:44 +01:00
Thomas Ricouard 93d9ded447 Switch to new Chat completion API + Add Tags completion 2023-03-09 13:46:04 +01:00
Peter-Josef Meisch db5d0b9274
Display and edit filter expirations (#1141) 2023-03-03 08:15:34 +01:00
Jim Dovey d1209e6704
Updated to resolve all possible Sendability warnings from Swift 6 compatibility mode. (#1072)
Co-authored-by: Jim Dovey <jimdovey@apple.com>
2023-02-27 06:39:07 +01:00
Thomas Ricouard 83e4e74329 Swiftformat 2023-02-26 06:45:57 +01:00
Thomas Ricouard cc4768b5e7 Profile edit: Allow re order of fields 2023-02-24 09:23:16 +01:00
Thomas Ricouard 096e42b1c2 Profile edit: Add metadata editing 2023-02-24 07:55:24 +01:00
Louis Lac bf49a4558c
Singularize enum type names (#978) 2023-02-21 18:52:30 +01:00
Thomas Ricouard b259b6739e Swiftformat 2023-02-21 07:23:42 +01:00
Thomas Ricouard 65e63c4586 Remove Sendable conformance on Client as it's not needed 2023-02-19 07:51:16 +01:00
Thomas Ricouard 4000dc3650 Switch to targeted Swift concurrency warnings + fix them 2023-02-18 22:51:44 +01:00
Peter-Josef Meisch 7cc1ca44b5
Display and edit notes on profiles (#929)
Closes #165
2023-02-18 18:28:16 +01:00
Thomas Ricouard ca4e80101f Swiftformat 2023-02-18 07:26:48 +01:00
Thomas Ricouard c4b9e74bcd Escape characters when editing close #811 2023-02-15 06:41:28 +01:00
Thomas Ricouard 3d96d6997d Better handling of notifications 2023-02-13 22:30:06 +01:00
Thomas Ricouard 50f6f1b007 Report status 2023-02-13 21:12:18 +01:00
Thomas Ricouard eb6050a38f Swiftformat 2023-02-12 16:29:41 +01:00
Thomas Ricouard 41058919bd Reworked translate: Use Mastodon API when available + always show the action in the post context menu 2023-02-12 13:22:36 +01:00
Joe Barbere fcf20b1675
Allow editing of alt-text for media (#796)
* Allow editing of alt-text for media

* Fix

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-02-11 21:38:33 +01:00
Thomas Ricouard cf6a2f845f Notifications: Load more newer pages 2023-02-06 20:08:29 +01:00
Peter-Josef Meisch c7f22d5022
Add muting duration submenu (#662)
* Add muting duration submenu

* set japanese localizations
2023-02-06 12:25:51 +01:00
Thomas Ricouard 6b285cdbcf Cleanup 2023-02-04 17:17:38 +01:00
Thomas Ricouard 3c0ffdb1ae Prepare disk cache for Timeline 2023-02-04 12:17:16 +01:00
Thomas Ricouard 95aade3795 Fix Client 2023-02-03 19:48:57 +01:00
Thomas Ricouard 4e77669181 Swiftformat 2023-02-01 12:49:59 +01:00
Thomas Ricouard cdf45fa58c Refactor Timeline position management + add thin cache layer + fix crashes 2023-02-01 12:43:11 +01:00
Thomas Ricouard 24504e3bc2 Various optimizations to speed things up 2023-01-30 19:14:43 +01:00
Roman Mirzoyan 5c1a567c04
Fixed parameter (#488)
Co-authored-by: Roman Mirzoyan <h500p1a@s-mxs.net>
2023-01-28 19:29:16 +01:00
David Walter 11d4a84bd8
Fix hasConnection (#470) close #375 2023-01-28 18:41:04 +01:00
Thomas Ricouard b89221a535 Code cleanup / format / lint 2023-01-27 20:36:40 +01:00
Thomas Ricouard 7f7a967d87 Videos: Compress them before upload + error handling close #430 2023-01-27 08:54:41 +01:00