2
2
mirror of https://github.com/mastodon/mastodon-ios synced 2025-04-11 22:58:02 +02:00

321 Commits

Author SHA1 Message Date
shannon
9ed9c79f25 Begin moving filesystem cache responsibility into PersistenceManager
contributes to iOS-319
2024-11-19 12:08:22 -05:00
shannon
35f1280904 Make view models @MainActor 2024-11-15 14:15:01 -05:00
shannon
c4442fe8a9 Fix crash on launch due to infinite loop
And more honestly about singletons.
2024-11-15 12:25:58 -05:00
shannon
77f3c5a64d Combine AuthenticationService into AuthenticationServiceProvider
Also, AppContext, APIService, and AuthenticationServiceProvider are now more obviously singletons.

And AuthenticationServiceProvider can now be asked for the current active user, instead of every caller assuming the first element of a list of users is the active user.
2024-11-14 16:30:51 -05:00
shannon
04108fd0e4 Remove AuthContext
MastodonAuthenticationBox, which already wraps the MastodonAuthentication, is now used directly.
2024-11-14 09:49:19 -05:00
shannon
583c796a4c Some defense against ProfileViewController.authContext.getter Forced Unwrapping Crash
Make the viewModel of the ProfileViewController optional rather than force unwrapping it. If the necessary information is not available, Profile page should show blank rather than crashing, and hopefully will have the expected info soon or the next time it is opened.

There is still a crash danger inherent in the use of TabBarPager, which requires a non-optional for several protocol methods were we can’t guarantee to have one to return. This dependency should be removed in the future.
2024-10-23 10:29:50 -04:00
Nathan Mattes
bac8c23d2c Adress feedback (IOS-241) 2024-07-26 11:08:28 +02:00
Nathan Mattes
9da5b99b28 Show modal on ipad (IOS-241) 2024-07-24 16:01:25 +02:00
Nathan Mattes
f3c035ce92 Add accept/dismiss-menu (IOS-241) 2024-07-24 12:35:08 +02:00
Nathan Mattes
67e1e5e3b4 Minor cleanup (IOS-241) 2024-07-24 12:35:08 +02:00
Nathan Mattes
fb3dfb5a6a Show notifications from one account (IOS-241) 2024-07-24 12:35:07 +02:00
Nathan Mattes
0d5dd513dd [WIP] Prepare enum-cases to show notifications from one account (IOS-241) 2024-07-24 12:35:07 +02:00
Nathan Mattes
4cf75d307d Show account for request (IOS-241) 2024-07-24 12:35:07 +02:00
Nathan Mattes
5473e7f3f9 Add viewController for notification-requests (IOS-241) 2024-07-24 12:35:07 +02:00
Nathan Mattes
4843348034 Add and show filter-banner in "everything"-notifications (if there are any) (IOS-241) 2024-07-24 12:35:07 +02:00
Nathan Mattes
2876bcced6 Coordinate to Profile if there's an account (IOS-284) 2024-06-30 12:41:39 +02:00
Marcus Kida
ad8d5e6e69
Fix reblog taken into account when translating status on home timeline (IOS-271) 2024-06-25 11:36:18 +02:00
Marcus Kida
b47ce98ef2
Hide spinner in case translation fails (IOS-271) 2024-06-25 10:45:37 +02:00
Marcus Kida
d4132640c5
Throw error in case translation returns empty content (IOS-271) 2024-06-21 12:09:18 +02:00
Nathan Mattes
a7f792c301 Update menu for profiles (IOS-231) 2024-05-21 11:16:58 +02:00
Nathan Mattes
8d3cb2beb3
Update Post Menu (IOS-229) (#1292)
* Add missing actions, hack way to inject options into menu (IOS-229)

* Implement new menu structure (IOS-229)

This doesn't work-work yet, as functionality isn't implemented yet. Also: Special options and traits.

* Add preferredElementSize to submenus (IOS-229)

* Copy Link (IOS-229)

* Open In Browser (IOS-229)

* Boost status from menu (IOS-229)

* Favorite status from menu (IOS-229)

* Fix following-status in menu and don't cache menu (IOS-229)

* Add some destruction, add localization and use "Boost" instead of "Reblog" (IOS-229)

* Use struct instead of tuple for those menu-parts (IOS-229)
2024-05-18 14:30:51 +02:00
Nathan Mattes
2d97d67657 Open strike in browser (IOS-264) 2024-05-14 15:11:56 +02:00
Nathan Mattes
5371ad54bf Show some content for a warning (IOS-264) 2024-05-14 15:11:56 +02:00
Nathan Mattes
a4b175ce9c Revert "Moderation Warning Notifications (IOS-264) (#1287)"
This reverts commit 794ffc002f384bb95b91d4369ddf5de93d3aba8c.
2024-05-14 15:11:23 +02:00
Nathan Mattes
794ffc002f
Moderation Warning Notifications (IOS-264) (#1287)
* Add moderation-warning-notification-type (IOS-264)

* Add entity for new AccountWarning (IOS-264)

Details see https://github.com/mastodon/mastodon/pull/30065 for now, as there's no documentation (yet)

* re-add file header (IOS-264)

* Add authorization to instance-calls (IOS-264)

This will improve using the app with `LIMITED_FEDERATION_INSTANCES`

* Add basic cell for account-warnings (IOS-264)

* Show some content for a warning (IOS-264)

* Open strike in browser (IOS-264)

* Add localization (IOS-264)

* Add missing localization (IOS-264)

* Cleanup (IOS-264)
2024-05-14 15:07:05 +02:00
Marcus Kida
24e573d9e2
Refactor Polls to not use Core Data (#1265) 2024-04-17 16:36:03 +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
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
Nathan Mattes
a170a462ee Remove nested tasks (IOS-192) 2024-02-20 16:47:55 +01:00
Nathan Mattes
8630bd1746 Show loading-indicator (IOS-192) 2024-02-20 16:33:27 +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
91e3b63f1f Rework relationship-notification (IOS-192)
They get sent from the DataSourceFacade now
2024-02-16 12:16:55 +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
23a505b321
Show more metadata for posts (#1200)
* Show first image when sharing (#1199)

* Don't share custom metadata (#1199)

🤦 that was way to easy, thanks docs!

* If we only share an URL, we don't need metadata (#1199)
2024-02-09 11:14:51 +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
5773ceb2ad
Fix build (#1220) 2024-01-31 10:07:31 +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
ca3fd69b62 [WIP] Preparation to get relationship into menu on notification-screen (IOS-192) 2024-01-18 16:59:14 +01:00
Nathan Mattes
35c017986a [WIP] Add relationships/user to notifications (IOS-192) 2024-01-16 17:12:47 +01:00
Nathan Mattes
b8ba69b930 Reduce nested-ness of tasks (IOS-192)
Thank you @kimar
2024-01-11 15:28:18 +01:00
Nathan Mattes
cfa0e9a2bc Fix indention, fix warnings (IOS-192) 2024-01-09 17:58:48 +01:00
Nathan Mattes
e70a67caf0 Move task and async/await to call-site (IOS-192) 2024-01-09 17:45:01 +01:00
Nathan Mattes
97d1ab4e5b Fix build (IOS-192) 2024-01-09 17:44:06 +01:00
Nathan Mattes
923ff39b04
Fix indention
Co-authored-by: Marcus Kida <marcus.kida@bearologics.com>
2024-01-09 17:02:55 +01:00
Nathan Mattes
fe5c88254b Fix warnings
I guess that they made their way back into the app due to the merge
2024-01-08 22:48:35 +01:00
Nathan Mattes
febbc6f22a Merge branch 'develop' into ios-192-profile-about
# Conflicts:
#	Mastodon.xcodeproj/project.pbxproj
#	Mastodon/Protocol/Provider/DataSourceFacade+Follow.swift
#	Mastodon/Protocol/Provider/DataSourceFacade+Profile.swift
#	Mastodon/Protocol/Provider/DataSourceFacade+Status.swift
#	Mastodon/Protocol/Provider/DataSourceProvider+NotificationTableViewCellDelegate.swift
#	Mastodon/Protocol/Provider/DataSourceProvider+StatusTableViewCellDelegate.swift
#	Mastodon/Protocol/Provider/DataSourceProvider+UITableViewDelegate.swift
#	Mastodon/Protocol/Provider/DataSourceProvider.swift
#	Mastodon/Scene/Discovery/Community/DiscoveryCommunityViewController+DataSourceProvider.swift
#	Mastodon/Scene/Discovery/Community/DiscoveryCommunityViewModel+State.swift
#	Mastodon/Scene/Discovery/Community/DiscoveryCommunityViewModel.swift
#	Mastodon/Scene/Discovery/Posts/DiscoveryPostsViewController+DataSourceProvider.swift
#	Mastodon/Scene/Discovery/Posts/DiscoveryPostsViewModel+State.swift
#	Mastodon/Scene/Discovery/Posts/DiscoveryPostsViewModel.swift
#	Mastodon/Scene/HashtagTimeline/HashtagTimelineViewController+DataSourceProvider.swift
#	Mastodon/Scene/HashtagTimeline/HashtagTimelineViewModel+State.swift
#	Mastodon/Scene/HashtagTimeline/HashtagTimelineViewModel.swift
#	Mastodon/Scene/HomeTimeline/HomeTimelineViewController+DataSourceProvider.swift
#	Mastodon/Scene/HomeTimeline/HomeTimelineViewModel+LoadLatestState.swift
#	Mastodon/Scene/HomeTimeline/HomeTimelineViewModel.swift
#	Mastodon/Scene/Notification/NotificationTimeline/NotificationTimelineViewController+DataSourceProvider.swift
#	Mastodon/Scene/Notification/NotificationTimeline/NotificationTimelineViewController.swift
#	Mastodon/Scene/Notification/NotificationTimeline/NotificationTimelineViewModel.swift
#	Mastodon/Scene/Profile/Bookmark/BookmarkViewController+DataSourceProvider.swift
#	Mastodon/Scene/Profile/Bookmark/BookmarkViewModel+State.swift
#	Mastodon/Scene/Profile/Bookmark/BookmarkViewModel.swift
#	Mastodon/Scene/Profile/Favorite/FavoriteViewController+DataSourceProvider.swift
#	Mastodon/Scene/Profile/Favorite/FavoriteViewModel+State.swift
#	Mastodon/Scene/Profile/Favorite/FavoriteViewModel.swift
#	Mastodon/Scene/Profile/MeProfileViewModel.swift
#	Mastodon/Scene/Profile/ProfileViewController.swift
#	Mastodon/Scene/Profile/ProfileViewModel.swift
#	Mastodon/Scene/Profile/RemoteProfileViewModel.swift
#	Mastodon/Scene/Profile/Timeline/UserTimelineViewController+DataSourceProvider.swift
#	Mastodon/Scene/Profile/Timeline/UserTimelineViewModel+State.swift
#	Mastodon/Scene/Profile/Timeline/UserTimelineViewModel.swift
#	Mastodon/Scene/Report/Report/ReportViewModel.swift
#	Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel+State.swift
#	Mastodon/Scene/Report/ReportStatus/ReportStatusViewModel.swift
#	Mastodon/Scene/Root/MainTab/MainTabBarController.swift
#	Mastodon/Scene/Search/SearchDetail/SearchResult/SearchResultViewController+DataSourceProvider.swift
#	Mastodon/Scene/Search/SearchDetail/SearchResult/SearchResultViewModel+State.swift
#	Mastodon/Scene/Search/SearchDetail/SearchResult/SearchResultViewModel.swift
#	Mastodon/Scene/Share/View/Content/NotificationView+Configuration.swift
#	Mastodon/Scene/Thread/ThreadViewModel.swift
#	MastodonSDK/Sources/MastodonCore/FetchedResultsController/FeedFetchedResultsController.swift
#	MastodonSDK/Sources/MastodonCore/FetchedResultsController/StatusFetchedResultsController.swift
#	MastodonSDK/Sources/MastodonCore/Persistence/FileManager+SearchHistory.swift
#	MastodonSDK/Sources/MastodonCore/Persistence/FileManager+Timeline.swift
#	MastodonSDK/Sources/MastodonCore/Persistence/Persistence.swift
#	MastodonSDK/Sources/MastodonCore/Service/API/APIService+HomeTimeline.swift
#	MastodonSDK/Sources/MastodonCore/Service/API/APIService+Search.swift
#	MastodonSDK/Sources/MastodonSDK/MastodonStatus.swift
#	MastodonSDK/Sources/MastodonUI/Scene/ComposeContent/ComposeContentViewModel.swift
#	MastodonSDK/Sources/MastodonUI/Scene/ComposeContent/Publisher/MastodonStatusPublisher.swift
#	MastodonSDK/Sources/MastodonUI/View/Content/StatusView+Configuration.swift
2024-01-08 22:32:57 +01:00
Marcus Kida
976f934df9
Remove Status from CoreData (#1167) 2024-01-08 11:17:40 +01:00
Nathan Mattes
0b959f5bca Remove private-note and notification from user (IOS-192) 2024-01-05 16:50:44 +01:00