Commit Graph

1075 Commits

Author SHA1 Message Date
Nathan Mattes 099411b435 Fix relative date time formatter
Thanks to @renchap
2024-04-17 17:44:06 +02:00
Eugen Rochko 2b204bf9df
New Crowdin updates (#1262)
* New translations app.json (Spanish)

* New translations app.json (Spanish)

* New translations app.json (Italian)

* New translations app.json (Italian)

* New translations app.json (Hungarian)

* New translations ios-infoplist.json (Hungarian)

* New translations localizable.stringsdict (Hungarian)

* New translations intents.strings (Hungarian)

* New translations intents.stringsdict (Hungarian)

* New translations app.json (Hungarian)

* New translations intents.strings (Hungarian)

* New translations app.json (Hungarian)

* New translations app.json (Hungarian)

* New translations intents.strings (Hungarian)

* New translations app.json (Hungarian)

* New translations app.json (Hungarian)

* New translations intents.strings (Hungarian)

* New translations intents.strings (Hungarian)

* New translations app.json (Hungarian)

* New translations app.json (Hungarian)

* New translations intents.strings (Hungarian)

* New translations app.json (Polish)

* New translations app.json (Polish)

* New translations ios-infoplist.json (Polish)

* New translations app.json (Portuguese)

* New translations app.json (Romanian)

* New translations app.json (Danish)

* New translations app.json (Hebrew)

* New translations app.json (Armenian)

* New translations app.json (English)

* New translations app.json (Hindi)

* New translations app.json (English, United States)

* New translations app.json (Sinhala)

* New translations app.json (English)

* New translations app.json (English, United States)

* New translations app.json (Greek)

* New translations app.json (Hungarian)

* New translations app.json (Portuguese)

* New translations app.json (Thai)

* New translations app.json (Romanian)

* New translations app.json (French)

* New translations app.json (Spanish)

* New translations app.json (Arabic)

* New translations app.json (Belarusian)

* New translations app.json (Catalan)

* New translations app.json (Czech)

* New translations app.json (Danish)

* New translations app.json (German)

* New translations app.json (Greek)

* New translations app.json (Basque)

* New translations app.json (Finnish)

* New translations app.json (Hebrew)

* New translations app.json (Armenian)

* New translations app.json (Italian)

* New translations app.json (Japanese)

* New translations app.json (Korean)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Russian)

* New translations app.json (Slovenian)

* New translations app.json (Swedish)

* New translations app.json (Turkish)

* New translations app.json (Ukrainian)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Traditional)

* New translations app.json (English)

* New translations app.json (Vietnamese)

* New translations app.json (Galician)

* New translations app.json (Icelandic)

* New translations app.json (Portuguese, Brazilian)

* New translations app.json (Indonesian)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Latvian)

* New translations app.json (Hindi)

* New translations app.json (English, United States)

* New translations app.json (Burmese)

* New translations app.json (Welsh)

* New translations app.json (Sinhala)

* New translations app.json (Scottish Gaelic)

* New translations app.json (Aragonese)

* New translations app.json (Kurmanji (Kurdish))

* New translations app.json (Sorani (Kurdish))

* New translations app.json (Kabyle)

* New translations app.json (Hungarian)

* New translations app.json (Italian)

* New translations app.json (Vietnamese)

* New translations app.json (Icelandic)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Japanese)

* New translations app.json (Chinese Traditional)

* New translations app.json (Galician)

* New translations app.json (Kurmanji (Kurdish))

* New translations app.json (Thai)

* New translations app.json (Greek)

* New translations app.json (Belarusian)

* New translations app.json (Portuguese)

* New translations app.json (Thai)

* New translations app.json (Romanian)

* New translations app.json (French)

* New translations app.json (Spanish)

* New translations app.json (Arabic)

* New translations app.json (Belarusian)

* New translations app.json (Catalan)

* New translations app.json (Czech)

* New translations app.json (Danish)

* New translations app.json (German)

* New translations app.json (Greek)

* New translations app.json (Basque)

* New translations app.json (Finnish)

* New translations app.json (Hebrew)

* New translations app.json (Armenian)

* New translations app.json (Italian)

* New translations app.json (Japanese)

* New translations app.json (Korean)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Russian)

* New translations app.json (Slovenian)

* New translations app.json (Swedish)

* New translations app.json (Turkish)

* New translations app.json (Ukrainian)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Traditional)

* New translations app.json (English)

* New translations app.json (Vietnamese)

* New translations app.json (Galician)

* New translations app.json (Icelandic)

* New translations app.json (Portuguese, Brazilian)

* New translations app.json (Indonesian)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Latvian)

* New translations app.json (Hindi)

* New translations app.json (English, United States)

* New translations app.json (Burmese)

* New translations app.json (Welsh)

* New translations app.json (Sinhala)

* New translations app.json (Scottish Gaelic)

* New translations app.json (Aragonese)

* New translations app.json (Kurmanji (Kurdish))

* New translations app.json (Sorani (Kurdish))

* New translations app.json (Kabyle)

* New translations app.json (Hungarian)

* New translations app.json (Swedish)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Hungarian)

* New translations app.json (Italian)

* New translations app.json (Icelandic)

* New translations app.json (Chinese Traditional)

* New translations app.json (Galician)

* New translations app.json (Belarusian)

* New translations app.json (Thai)

* New translations app.json (Vietnamese)

* New translations app.json (Dutch)

* New translations app.json (Hungarian)

* Update translations

---------

Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
2024-04-17 16:45:42 +02:00
Marcus Kida 24e573d9e2
Refactor Polls to not use Core Data (#1265) 2024-04-17 16:36:03 +02:00
Nathan Mattes b120d32efa
Post cell cleanup (IOS-232) and other fixes (#1272)
* Replace icons with SF Symbols (IOS-232)

* Remove visibility-icon from Status (IOS-232)

* Use relative time formatter and switch position of timestamp/user (IOS-232)

* Set TimelineSelector-Button-Position (IOS-232)

Shouldn't switch now any longer. Also: Refactoring.

* Fix position of the Home-icon in TabBar (IOS-232)

TIL: Don't set an empty string, otherwise the position of the TabBarItem-icon breaks
2024-04-16 13:19:49 +02:00
Nathan Mattes 6b32e5e4aa
Re-enable option to post unlisted/"Quiet public" (#1271)
* Add unlisted as option to post (#250)

* Replace menu-icons with SF Symbols to match other platforms (#250)

* Replace earth with SF-symbol (#250)

* Use SF Symbols for visibility (#250)
2024-04-12 10:58:18 +02:00
Nathan Mattes 1a2cf272a6
New 💊 (IOS-234) (#1268)
- Replaces the view previously in the Navigation Bar with the new,
so-called Timeline Status Pill
- We use it to show three states: When a post has been published
(successfully), when new statuses are available or when five (I slightly
increased the limit) requests failed
- The Timeline Status Pill features some fancy animations and a little
shadow
- For further details have a look at IOS-234 🙂 


![ios_234_iphone](https://github.com/mastodon/mastodon-ios/assets/2580019/c77df339-aa72-406f-8be3-572acb244246)

![ios_234_ipad](https://github.com/mastodon/mastodon-ios/assets/2580019/f2fafc4c-ed5a-4afb-86a7-5de69325997b)

To simulate the different reasons I used this snippet. When you press
the Settings-button, you should see the 💊 :

```diff
diff --git a/Mastodon/Scene/HomeTimeline/HomeTimelineViewController.swift b/Mastodon/Scene/HomeTimeline/HomeTimelineViewController.swift
index 8559025d4..0eb27d0e8 100644
--- a/Mastodon/Scene/HomeTimeline/HomeTimelineViewController.swift
+++ b/Mastodon/Scene/HomeTimeline/HomeTimelineViewController.swift
@@ -488,9 +488,14 @@ extension HomeTimelineViewController {
     }
     
     @objc private func settingBarButtonItemPressed(_ sender: UIBarButtonItem) {
-        guard let setting = context.settingService.currentSetting.value else { return }
+        // don't commit
+        timelinePill.update(with: .newPosts)
+        showTimelinePill()
 
-        _ = coordinator.present(scene: .settings(setting: setting), from: self, transition: .none)
+//        guard let setting = context.settingService.currentSetting.value else { return }
+//
+//        _ = coordinator.present(scene: .settings(setting: setting), from: self, transition: .none)
+        // don't commit
     }
 
     @objc private func refreshControlValueChanged(_ sender: RefreshControl) {

```
2024-04-10 15:06:22 +02:00
Nathan Mattes 8bb9bca4b9 Sprinkle in localization (IOS-234) 2024-04-10 14:03:13 +02:00
Marcus Kida 4ea600403b
Move all UI*FeedbackGenerators to FeedbackGenerator and disable them for now (IOS-247) (#1267)
* Move all UI*FeedbackGenerators to FeedbackGenerator and disable them for now (IOS-247)

* Fix copyright header

* Remove empty private constructor
2024-04-09 16:41:47 +02:00
Marcus Kida cc9faf5aea
Improve Number Formatting (#1266)
* Improves number formatting (IOS-246)

* Implement formatting > 1T (IOS-246)

* Fix typo (IOS-246)

* Update MastodonTests/MetricFormatterTests.swift

Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>

* Improve decimal formatting and add tests (IOS-246)

---------

Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
2024-04-04 16:55:19 +02:00
Nathan Mattes 3fe855273b Rename a few things here and there (IOS-235) 2024-04-04 13:28:07 +02:00
Nathan Mattes 26f3b5a7ce Sprinkle in some localization (IOS-235) 2024-04-04 12:19:44 +02:00
Nathan Mattes 86ab9101a3 Fix loading of older posts (IOS-235)
i.e. consider different timelines there as well
2024-04-04 12:19:44 +02:00
Eugen Rochko ecf816d15d
New Crowdin updates (#1242)
* New translations app.json (Portuguese)

* New translations app.json (Thai)

* New translations app.json (Romanian)

* New translations app.json (French)

* New translations app.json (Spanish)

* New translations app.json (Arabic)

* New translations app.json (Belarusian)

* New translations app.json (Catalan)

* New translations app.json (Czech)

* New translations app.json (Danish)

* New translations app.json (German)

* New translations app.json (Greek)

* New translations app.json (Basque)

* New translations app.json (Finnish)

* New translations app.json (Hebrew)

* New translations app.json (Armenian)

* New translations app.json (Italian)

* New translations app.json (Japanese)

* New translations app.json (Korean)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Russian)

* New translations app.json (Slovenian)

* New translations app.json (Swedish)

* New translations app.json (Turkish)

* New translations app.json (Ukrainian)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Traditional)

* New translations app.json (English)

* New translations app.json (Vietnamese)

* New translations app.json (Galician)

* New translations app.json (Icelandic)

* New translations app.json (Portuguese, Brazilian)

* New translations app.json (Indonesian)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Latvian)

* New translations app.json (Hindi)

* New translations app.json (English, United States)

* New translations app.json (Burmese)

* New translations app.json (Welsh)

* New translations app.json (Sinhala)

* New translations app.json (Scottish Gaelic)

* New translations app.json (Aragonese)

* New translations app.json (Kurmanji (Kurdish))

* New translations app.json (Sorani (Kurdish))

* New translations app.json (Kabyle)

* New translations app.json (German)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Icelandic)

* New translations app.json (Thai)

* New translations app.json (Swedish)

* New translations app.json (Thai)

* New translations app.json (Dutch)

* New translations app.json (Chinese Traditional)

* New translations app.json (Dutch)

* New translations app.json (Slovenian)

* New translations app.json (Galician)

* New translations app.json (Icelandic)

* New translations app.json (Italian)

* New translations app.json (Vietnamese)

* New translations app.json (Japanese)

* New translations app.json (Japanese)

* New translations app.json (Greek)

* New translations app.json (Kabyle)

* New translations app.json (Kabyle)

* New translations app.json (Kabyle)

* New translations app.json (Kabyle)

* New translations app.json (Scottish Gaelic)

* New translations localizable.stringsdict (French)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Simplified)

* New translations ios-infoplist.json (Chinese Simplified)

* New translations app.json (Belarusian)

* New translations app.json (Chinese Simplified)

* New translations app.json (Dutch)

* New translations app.json (Portuguese)

* New translations app.json (Thai)

* New translations app.json (Romanian)

* New translations app.json (French)

* New translations app.json (Spanish)

* New translations app.json (Arabic)

* New translations app.json (Belarusian)

* New translations app.json (Catalan)

* New translations app.json (Czech)

* New translations app.json (Danish)

* New translations app.json (German)

* New translations app.json (Greek)

* New translations app.json (Basque)

* New translations app.json (Finnish)

* New translations app.json (Hebrew)

* New translations app.json (Armenian)

* New translations app.json (Italian)

* New translations app.json (Japanese)

* New translations app.json (Korean)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Russian)

* New translations app.json (Slovenian)

* New translations app.json (Swedish)

* New translations app.json (Turkish)

* New translations app.json (Ukrainian)

* New translations app.json (Chinese Simplified)

* New translations app.json (Chinese Traditional)

* New translations app.json (English)

* New translations app.json (Vietnamese)

* New translations app.json (Galician)

* New translations app.json (Icelandic)

* New translations app.json (Portuguese, Brazilian)

* New translations app.json (Indonesian)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Latvian)

* New translations app.json (Hindi)

* New translations app.json (English, United States)

* New translations app.json (Burmese)

* New translations app.json (Welsh)

* New translations app.json (Sinhala)

* New translations app.json (Scottish Gaelic)

* New translations app.json (Aragonese)

* New translations app.json (Kurmanji (Kurdish))

* New translations app.json (Sorani (Kurdish))

* New translations app.json (Kabyle)

* New translations app.json (German)

* New translations app.json (English)

* New translations app.json (Icelandic)

* New translations ios-infoplist.json (English)

* New translations localizable.stringsdict (English)

* New translations intents.strings (English)

* New translations app.json (Chinese Traditional)

* New translations app.json (Thai)

* New translations app.json (Dutch)

* New translations app.json (Korean)

* New translations app.json (Japanese)

* New translations app.json (Galician)

* New translations app.json (Galician)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Belarusian)

* New translations app.json (Vietnamese)

* New translations app.json (Swedish)

* New translations app.json (English)

* New translations ios-infoplist.json (English)

* New translations localizable.stringsdict (English)

* New translations intents.strings (English)

* Update translations

---------

Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
2024-03-21 17:00:09 +01:00
woxtu 27353a3bdb
Change user agent (#1250) 2024-03-19 16:16:42 +01:00
Nathan Mattes 6da37e2156
Use static cursor color (#1253) 2024-03-19 11:59:44 +01:00
Nathan Mattes 13cc2bdbec
Don't add my own handle to a reply (#1254) (#1256)
* Don't add my own handle (#1254)

* Remove CoreData-stuff (#1254(

* Remove MastodonMentionContainer (#1254)

This is a left over from the status-refactoring. The Core Data-persistence-stuff for Status needed that, but as we don't use that any more say byebye
2024-03-19 10:28:16 +01:00
Marcus Kida 484d72fbdd
Adjust Server Rules Screen (IOS-220) (#1251)
* Adjust Server Rules Screen (IOS-220)

* Update Server Rules (IOS-220)

* Use new server rules UI in Server Details (IOS-220)

* Improve disclaimer usage (IOS-220)

* Fix background in server details (IOS-220)
2024-03-19 09:55:42 +01:00
Nathan Mattes 62cc9105a9
Fix Profile Editing (#1245)
* Fix image-editing (#1244)

Probably introduced in 76304e5 and we just missed that :)

* Removed unused property (#1244)

* Don't allow tapping on followers/followees when editing my profile

* Remove obsolete code

relationship-update on viewDidAppear is not needed anylonger as we use update user/relationship using notifications like in the good ol days

* Make relationship optional and use switch-pattern-matching for button-configuration

* Don't change relationship when relationship is updating

* [WIP] don't toggle, but just set booleans.
2024-03-18 16:27:12 +01:00
Marcus Kida 0e207cf65d
Switch Everything and Mentions Tabs order (IOS-240) (#1258)
* Switch Everything and Mentions Tabs order (IOS-240)

* Swap switch category (IOS-240)
2024-03-14 07:19:46 +01:00
Marcus Kida 2e7054cb68
Implement "Default Post Language" and "Ask Before"-Alerts (#1240)
* Implement Settings->General->"Ask Before" and add "Ask Before Posting Without Alt Text" IOS-166

* Implement Alt Missing Alert for Status Edits (IOS-166)

* Fix status edit composes duplicate message

* Show (or don't) the "Really delete post?" Alert based on the User's preference (IOS-166)

* Implement alert for boost/unboost (IOS-166)

* Begin implementing "Default Post Language"-Setting (IOS-166)

* Show "Unfollow @user?" Alert (IOS-166)

* Merge conflict fixes for IOS-166

* Implement default post language setting (IOS-166)

* Fix follow button state not updated correctly (IOS-166)

* Add PR feedback (IOS-166)

* Improve default language cell style (IOS-166)

* Fix language filter broken (IOS-166)
2024-02-28 10:52:04 +01:00
Eugen Rochko 8807002404
New Crowdin updates (#1224)
* New translations app.json (Portuguese)

* New translations app.json (Portuguese)

* New translations app.json (Portuguese)

* New translations app.json (Thai)

* Update localizations

---------

Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
2024-02-26 22:04:38 +01:00
Nathan Mattes f6e630aa66 Cleanup (IOS-192) 2024-02-20 17:41:10 +01:00
Nathan Mattes 22b9e912f6 Remove unused completion (IOS-192) 2024-02-19 12:09:51 +01:00
Nathan Mattes 49af28eeba Use constant (IOS-192) 2024-02-19 12:06:10 +01:00
Nathan Mattes 52f5458364 Fix build 2024-02-19 12:05:48 +01:00
Nathan Mattes 0e46a811b7 Use constant foe UserInfo-key instead of string (IOS-192) 2024-02-19 10:18:12 +01:00
Nathan Mattes ecc4535058 Update screen when relationship changes on another screen (IOS-192) 2024-02-16 09:19:22 +01:00
Nathan Mattes 6bcbc0ac07 Remove obsolete code (IOS-192) 2024-02-14 16:52:27 +01:00
Nathan Mattes cb3a90b5be Remove more users (IOS-192) 2024-02-14 16:51:24 +01:00
Nathan Mattes 7024823cbf Remove persistence for user (IOS-192) 2024-02-14 10:44:32 +01:00
Nathan Mattes dc53fbbe7c Remove more users (IOS-192) 2024-02-09 18:41:12 +01:00
Nathan Mattes 255b6ab0ef Remove obsolete code (IOS-192)
We didn't use that as someone rebuilt this screen in SwiftUI.
2024-02-09 18:18:26 +01:00
Nathan Mattes c523f97d0c Merge branch 'develop' into ios-192-profile-about
# Conflicts:
#	MastodonSDK/Sources/MastodonUI/View/Control/ProfileRelationshipActionButton.swift
2024-02-09 12:43:56 +01:00
Nathan Mattes a90d5ea084
Fix Follow-Button in App-Dark Mode (#1218) (#1222)
* Don't set colors (#1218

* Use UIButton.configuration for ... configuration (#1218)

* Fix activity indicator (#1218)
2024-02-09 11:12:15 +01:00
Nathan Mattes cabdc30be7 Merge branch 'develop' into ios-192-profile-about 2024-01-31 23:41:34 +01:00
Eugen Rochko 5e5b8ffec8
New Crowdin updates (#1223)
* New translations app.json (English)

* Fix english localization

Listen folks: Hungarian isn't english!

---------

Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
2024-01-31 23:40:45 +01:00
Nathan Mattes b2dbcc8095 Merge branch 'develop' into ios-192-profile-about
# Conflicts:
#	Mastodon/Protocol/Provider/DataSourceProvider+NotificationTableViewCellDelegate.swift
#	Mastodon/Scene/Notification/NotificationTimeline/NotificationTimelineViewController+DataSourceProvider.swift
#	MastodonSDK/Sources/MastodonCore/DataController/FeedDataController.swift
#	MastodonSDK/Sources/MastodonUI/View/Content/StatusView+Configuration.swift
2024-01-31 15:36:53 +01:00
Nathan Mattes 35bc04be51
update strings (#1219) 2024-01-31 10:04:22 +01:00
Marcus Kida 383a75ea48
Improve status updating mechanism (#1210) 2024-01-30 23:02:13 +01:00
Nathan Mattes 7dfa56507e Make follow-requests work again (IOS-192)
Aaaaand remove obsolete viewmodel and put relationship to make menu work again (too)
2024-01-30 11:13:39 +01:00
Nathan Mattes 3e200a7703 Minor cleanup (#1138) 2024-01-23 10:42:52 +01:00
Nathan Mattes f9ae531b48 Don't download edit-history (#1138)
It was needed in the past when `editHistory` also persisted the history in CoreData. But as we don't use CoreData anymore...
2024-01-23 10:31:05 +01:00
Nathan Mattes 08a932ddfc Use correct endpoint to add media-attributes for changes (#1138)
Also: Use JSON instead of Multipart
2024-01-23 10:30:15 +01:00
Nathan Mattes 80cd22a356 Update media if caption was changed (#1138)
Doesn't work yet as the `/api/v1/media/:id` returns 404?! wtf?!
2024-01-21 12:10:56 +01:00
Nathan Mattes 89b7df25ea Make caption changable (#1138) 2024-01-21 12:09:47 +01:00
Nathan Mattes 304eb8b7ff Move notification-timestamp away from viewmodel (IOS-192) 2024-01-21 09:30:44 +01:00
Nathan Mattes e720db2a31 Remove unused code (IOS-192) 2024-01-20 20:03:59 +01:00
Nathan Mattes ab2f54307f Group files and use simpler context (IOS-192) 2024-01-20 18:21:02 +01:00
Nathan Mattes 6ffcdb2565 Remove unused property (IOS-192) 2024-01-20 14:05:08 +01:00
Nathan Mattes ca3fd69b62 [WIP] Preparation to get relationship into menu on notification-screen (IOS-192) 2024-01-18 16:59:14 +01:00