Marcus Kida
a05fc48683
Update wording in code comment (IOS-275)
2024-06-19 13:56:41 +02:00
Marcus Kida
d61b10a8e6
Fix potential excessive Load More at end of timeline (IOS-275)
2024-06-19 13:54:58 +02:00
Marcus Kida
8c751d45a9
Remove limit again (IOS-275)
2024-06-13 11:48:19 +02:00
Marcus Kida
11376c2d09
Improve home timeline item loading (IOS-275)
2024-06-13 10:25:08 +02:00
Marcus Kida
df8275e247
Fix Load More shown if first old record entity is null (IOS-275)
2024-06-12 16:33:21 +02:00
Marcus Kida
677670055e
Fix "Load More" Button on Home/Public Timeline ( #1283 )
...
* Begin fixing of "Load More" on Home Timeline (IOS-266)
* Don't show "Load More" if last status is first existing (IOS-266)
* Insert missing items upon "Load More" (IOS-266)
* Implement sinceID usage when loading latest posts (IOS-266)
* Change updating of items on Load More(IOS-266)
* Do not try to modify datasource directly (IOS-266)
* Improve load more (IOS-266)
* Fix load more using maxID and limit to 20 items (IOS-266)
* Implement loading missing status in public timeline (IOS-266)
* Implement subsequent "Load More" (IOS-266)
* Make loadMore(item:at:) API more Swifty (IOS-266)
* Address PR comments (IOS-266)
2024-05-08 10:02:21 +02:00
Marcus Kida
ddb3211641
Fix array oob crash (IOS-257) ( #1279 )
...
Fix array oob crash
2024-04-25 16:14:08 +02:00
Nathan Mattes
cdced03c27
Fix 💊 -Issues ( #1278 )
...
* Remove pill after scrolling to top (#1275 )
* Don't show pill after switching timelines (#1275 )
2024-04-23 09:39:33 +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 🙂


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
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
Nathan Mattes
8884b326fc
Re-enable offlineness-hint (IOS-234)
2024-04-09 16:12:32 +02:00
Nathan Mattes
527d250024
Show "New Post 💊 " if new posts (IOS-234)
2024-04-07 13:53:13 +02:00
Nathan Mattes
6af94352e2
Remove NavigationBarTitleView and add first draft of TimelineStatusPill (IOS-234)
2024-04-05 14:27:06 +02:00
Nathan Mattes
3fe855273b
Rename a few things here and there (IOS-235)
2024-04-04 13:28:07 +02:00
Nathan Mattes
1583ce0d9a
Add a new loading-state for timeline-switches (IOS-235)
...
Gosh, this took longer than expected. It didn't work for quite some time but the trick is to check for the states in several places, like in HomeTimelineViewModel+Diffable or when the timeline reached the end. Those triggered a reload and we don't want that in case the state is `contextSwitch`.
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
Nathan Mattes
5e1bb2cfaa
Differ between local and following-timeline (IOS-235)
2024-04-04 12:19:44 +02:00
Nathan Mattes
4eed7df729
Remove dead code (IOS-235)
2024-04-04 12:19:44 +02:00
Nathan Mattes
6bcbc0ac07
Remove obsolete code (IOS-192)
2024-02-14 16:52:27 +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
Marcus Kida
383a75ea48
Improve status updating mechanism ( #1210 )
2024-01-30 23:02:13 +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
60aafe6330
Add JSON-based account-persistence (IOS-192)
...
This is per user.
Also: Fetch authenticated accounts regularly
Also: Move Persistence-stuff to MastodonCore because.
2023-12-31 12:57:56 +01:00
Marcus Kida
faac99cd10
Fix duplicate entry after reblog (IOS-176)
2023-11-27 11:54:01 +01:00
Marcus Kida
4cb845e0bd
Fix manual refresh of home timeline not working (IOS-176)
2023-11-27 11:35:57 +01:00
Marcus Kida
b010b6112e
Remove usage of Status (IOS-176)
2023-11-22 12:32:04 +01: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
Marcus Kida
2b805872cc
Fixes #942 - Tapping home button or Pull to Refresh does not reload ( #960 )
2023-03-01 16:41:20 +01:00
Marcus Kida
9a3ba02683
feat(App): Implement Haptic Feedback for Tab switches and Timeline reload
2023-02-07 11:38:07 +01:00
Marcus Kida
3b87916d9a
chore(Feed): Improve Feed performance by fetching statuses in batches ( #914 )
2023-02-07 00:46:35 +01:00
Marcus Kida
65ed6650e8
feat: Implement deletion of records for blocked users
2022-11-26 08:02:29 +01:00
Nathan Mattes
96c3e17531
Fix some warnings
2022-11-17 23:16:21 +01: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
CMK
b76b3a2750
feat: adapt the app to async & await. Update timeline UI
2022-01-27 21:23:39 +08:00
sunxiaojian
326aea36cd
fix: The empty view should not display when the user just sign-in the first time
2021-04-22 15:45:32 +08:00
CMK
43ee11b863
feat: [WIP] add profile scene
2021-04-01 14:39:15 +08:00
CMK
e3fa472f3f
feat: implement post publishing progress bar UI and publish failure retry logic
2021-03-29 17:44:52 +08:00
sunxiaojian
0b046e4673
feature: add navigationBar state
2021-03-15 20:03:48 +08:00
CMK
bab6832da3
feat: add app version and build infos into system app setting panel
2021-02-26 18:36:38 +08:00
sunxiaojian
99f2e4a854
chore: code format and define onceRequestTootMaxCount
2021-02-18 13:09:40 +08:00
sunxiaojian
5f1800b353
feat: HomeTimeline
2021-02-07 16:19:33 +08:00