Commit Graph

37 Commits

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