* 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)
* 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)
* Update texts (IOS-226)
* Remove next-button (IOS-226)
* Tap on row to login (IOS-226)
* Make text use blurple and no disclosure indicator (IOS-226)
* Fix separator lines (IOS-226)
Well. Configurations don't work with custom UI-elements (or I'm just stupid), that's why I had to fall back to good ol UITableViewCell with UIKit-components
* Remove unused code (IOS-254)
* Don't hide pill immediately every single time (IOS-254)
* Check if there's something to scroll to (IOS-254)
As the cause for the crash seems to be clear (scrolling to an indexPath that doesn't exist -> crash) we could check for the indexPath to exist.
* Remove unused code
* Only cache my timeline (IOS-254)
* Copynpaste cell to logout all accounts (IOS-245)
* Show cell (IOS-245)
* Logout of all accounts (IOS-245)
* Use iOS-formsheet to present account-list (IOS-245)
* Remove dead code (IOS-245)
* Don't animate account-switches (IOS-245)
* Remove panModal (IOS-245)
* UI-fixes (IOS-245)
* Add swipe-to-logout-action (IOS-245)
* Localize (IOS-245)
* Add a little bit of margin (IOS-245)
* Fix separator-insets (IOS-245)
* Don't crash on iPad when logging out of all accounts (IOS-245)
* Replace icons with SF Symbols (IOS-232)
* Remove visibility-icon from Status (IOS-232)
* Use relative time formatter and switch position of timestamp/user (IOS-232)
* Set TimelineSelector-Button-Position (IOS-232)
Shouldn't switch now any longer. Also: Refactoring.
* Fix position of the Home-icon in TabBar (IOS-232)
TIL: Don't set an empty string, otherwise the position of the TabBarItem-icon breaks
* Add unlisted as option to post (#250)
* Replace menu-icons with SF Symbols to match other platforms (#250)
* Replace earth with SF-symbol (#250)
* Use SF Symbols for visibility (#250)
- 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) {
```
* Remove custom tab-bar from explore-tab (IOS-237)
* Add scope-bar to SearchBar on discovery-screen and attach scrolling etc. (IOS-237)
* Replace searchbar-scopes with proper segmented control (IOS-237)
The reason for this is that scopes didn't work on iPad in DetailView of the UISplitViewController.
I should blog about this.
* kill some whitespace
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`.