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

82 Commits

Author SHA1 Message Date
shannon
eac3222e65 Remove import AVKit from files that do not need it 2025-01-23 10:07:00 -05:00
shannon
1512f6e079 clarify private usage 2025-01-06 14:55:20 -05:00
shannon
b438d3db32 rename for clarity
Not all of these cases involve a MastodonStatus. Their actual use is as identifiers for the tableview datasources.
2025-01-06 14:45:29 -05:00
shannon
65bf555d98 Refactor: Remove NeedsDependency
The AppContext is already a singleton. SceneCoordinators are unique to UIWindowScenes, so fetch them that way.

Fixes iOS-324
2024-12-03 13:21:05 -05:00
shannon
d2b4d7b6b4 Refactor: Filter and Content Warning display and management
A large amount of change primarily to the view model layer, to make reasoning about the content reveal/hide state easier.

To prevent terrible scrolling jags while allowing the cells to be shorter when hiding content, the layout changes for content display state now happen before the cell is returned by the datasource provider and the tableview is reloaded when a status’s display mode changes.
2024-11-28 13:08:01 -05:00
shannon
862e1186ce Centralize filter management
Instead of publishing a list of filters, the StatusFilterService now publishes a struct that can apply those filters to any status in any context.

Also, we now use V2 of the filters API, which distinguishes between hide and warn.

Fixes  #1354 [BUG] Mastodon iOS App Ignores "Hide completely" Filter action Setting
2024-11-28 13:07:18 -05:00
shannon
c52e674ece Add filter awareness to feed loading
Filters used to be applied only at the display stage.

There is remaining work here:
- Hide filters still will not hide until we update Filter to use API V2.
- Filter work is now duplicated and should be made more efficient.
- It may be important to hold on to statuses even if they are hidden, so that they can be shown if the filter changes.

Contributes to #1354  [BUG] Mastodon iOS App Ignores "Hide completely" Filter action Setting
2024-11-25 12:36:48 -05:00
shannon
d7f473c892 MainActor for the new PersistenceManager 2024-11-15 14:45:37 -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
04108fd0e4 Remove AuthContext
MastodonAuthenticationBox, which already wraps the MastodonAuthentication, is now used directly.
2024-11-14 09:49:19 -05:00
Marcus Kida
24e573d9e2
Refactor Polls to not use Core Data (#1265) 2024-04-17 16:36:03 +02: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
Marcus Kida
383a75ea48
Improve status updating mechanism (#1210) 2024-01-30 23:02:13 +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
6b6ed28134 Emojis aren't optional (IOS-192)
meet []
2024-01-05 12:30:36 +01:00
Marcus Kida
80df919da1
Remove switch case 2023-12-27 10:42:56 +01:00
Marcus Kida
d759a4b69a
Update posts on timeline and thread if edited (IOS-211) 2023-12-14 10:11:05 +01:00
Marcus Kida
9167260e30
Update datasource on delete statuses in timelines and thread (IOS-212) 2023-12-14 09:56:50 +01:00
Marcus Kida
31796f1680
Implement thread reload after publishing reply (IOS-176) 2023-12-13 15:09:37 +01:00
Marcus Kida
ab689d3c02
Fix status thread CW not shown and interacted status not updated (IOS-208, IOS-210) 2023-12-08 15:45:40 +01:00
Marcus Kida
c30fb73922
Fix status deletion not updating data model (IOS-205) 2023-12-05 12:28:36 +01:00
Marcus Kida
e0671eb324
Reimplement favorite/reblog state (IOS-176) 2023-11-23 11:21:52 +01:00
Marcus Kida
36d4f6ea15
Fix threads not working (IOS-176) 2023-11-22 17:01:59 +01:00
Marcus Kida
b010b6112e
Remove usage of Status (IOS-176) 2023-11-22 12:32:04 +01:00
Nathan Mattes
a2aa9b70d2 Fix some warnings 2023-11-16 10:28:20 +01:00
Marcus Kida
5c834c7e09
IOS-175: Remove CoreData status edit (#1148) 2023-11-10 11:32:02 +01:00
Nathan Mattes
e473084038
Simplify Theme (#1121) 2023-09-27 15:08:12 +02:00
Nathan Mattes
778b44ecf4 Fix warnings 2023-09-22 15:27:46 +02:00
Nathan Mattes
fbde2a5833 More cleanup 2023-09-22 15:27:46 +02:00
Nathan Mattes
075b8a739a Fix some warnings 2023-08-21 11:32:00 +02:00
Jed Fox
4dbf8d35ec
Don’t assertionFailure() when tapping on non-status cells (#963) 2023-03-13 11:34:40 +01:00
Nathan Mattes
0c224f47df
Implement post editing / edit history (#875)
Co-authored-by: Marcus Kida <marcus.kida@bearologics.com>
Co-authored-by: Jed Fox <git@jedfox.com>
2023-03-02 11:06:13 +01:00
jinsu kim
5c82c04232 Use authenticated domain for API calls. Modify URL scheme 2023-01-01 15:55:54 -08:00
jinsu kim
f71c4964f5 UI update should be invoked on the main thread 2023-01-01 01:00:00 -08:00
Nathan Mattes
1d7dc2f266 Bump to iOS 15 deployment target and fix build issues 2022-12-17 20:26:20 +01:00
Jed Fox
0c8c9778b0
Merge remote-tracking branch 'upstream/develop' into status-cards 2022-12-15 07:46:37 -05:00
Marcus Kida
2d9e980215
feat: Implement /api/v2/instance to conditionally show Translation option 2022-12-12 16:41:13 +01:00
Jed Fox
3661b5ce90
Refactor compose intialization
- split ComposeContentViewModel.Kind into Destination (top level/reply) and an initial content string
- replies get the mentions prepended to the initial content string
2022-12-03 13:25:07 -05:00
CMK
2064a318c3 Merge branch 'main' into develop
# Conflicts:
#	Mastodon/Scene/MediaPreview/Video/MediaPreviewVideoViewController.swift
2022-11-21 11:18:36 +08:00
Stefan Painhapp
abe25f2156 Refactor pin to (parent) layout constraints as extension of UIView 2022-11-18 01:45:27 +09:00
CMK
b5d883865d fix: prefer the original mode to top-two-tier tree mode 2022-11-18 00:16:21 +08:00
CMK
1ca3b66e40 chore: code cleanup 2022-11-18 00:00:17 +08:00
Jed Fox
d7739340f2
Merge remote-tracking branch 'upstream/develop' into post-author-a11y 2022-11-01 09:40:01 -04:00
Jed Fox
1c236859ab
Jump to thread table view when view appears
This fixes the issue where people can’t get past the navigation title
2022-10-31 12:52:15 -04:00
CMK
02e3ad9a16 chore: [WIP] restore the replyTo entry for compose 2022-10-10 19:14:52 +08:00
CMK
bb5c999bea chore: [WIP] inject AuthContext into ViewModel 2022-10-09 20:07:57 +08:00
CMK
fa27a28a60 chore: move core logic into package 2022-10-08 13:43:06 +08:00