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

44 Commits

Author SHA1 Message Date
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 🙂 


![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
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