Nathan Mattes
a4b175ce9c
Revert "Moderation Warning Notifications (IOS-264) ( #1287 )"
...
This reverts commit 794ffc002f
.
2024-05-14 15:11:23 +02:00
Nathan Mattes
794ffc002f
Moderation Warning Notifications (IOS-264) ( #1287 )
...
* 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)
2024-05-14 15:07:05 +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
9b770d1484
Enable dismissal of keyboard in registration view on overscroll (IOS-222)
2024-05-07 10:47:11 +02:00
Nathan Mattes
8d97b5a51e
"Welcome back" screen cleanup (IOS-226) ( #1282 )
...
* 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
2024-05-03 20:53:20 +02:00
Nathan Mattes
906b13c03d
Scrolling crash content offset (IOS-254) ( #1281 )
...
* 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)
2024-05-02 16:47:37 +02:00
Nathan Mattes
b759c207f6
Make Profile-image upload work again (again) ( #1277 )
...
Only set edit-stuff once (#1276 )
2024-04-30 09:23:51 +02:00
Nathan Mattes
c2d0701062
Improve Multi-User Account Sheet (IOS-245) ( #1273 )
...
* 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)
2024-04-30 09:22:27 +02:00
Marcus Kida
ddb3211641
Fix array oob crash (IOS-257) ( #1279 )
...
Fix array oob crash
2024-04-25 16:14:08 +02:00
Renaud Chaput
ae02dd2994
Fix CI badge ( #1264 )
...
This PR fixes the CI badge in README. It seems that main.yml has been
renamed to build-only.yml.
2024-04-24 10:42:20 +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
235499ec10
Bump version
2024-04-21 20:43:04 +02:00
Nathan Mattes
099411b435
Fix relative date time formatter
...
Thanks to @renchap
2024-04-17 17:44:06 +02:00
Eugen Rochko
2b204bf9df
New Crowdin updates ( #1262 )
...
* New translations app.json (Spanish)
* New translations app.json (Spanish)
* New translations app.json (Italian)
* New translations app.json (Italian)
* New translations app.json (Hungarian)
* New translations ios-infoplist.json (Hungarian)
* New translations localizable.stringsdict (Hungarian)
* New translations intents.strings (Hungarian)
* New translations intents.stringsdict (Hungarian)
* New translations app.json (Hungarian)
* New translations intents.strings (Hungarian)
* New translations app.json (Hungarian)
* New translations app.json (Hungarian)
* New translations intents.strings (Hungarian)
* New translations app.json (Hungarian)
* New translations app.json (Hungarian)
* New translations intents.strings (Hungarian)
* New translations intents.strings (Hungarian)
* New translations app.json (Hungarian)
* New translations app.json (Hungarian)
* New translations intents.strings (Hungarian)
* New translations app.json (Polish)
* New translations app.json (Polish)
* New translations ios-infoplist.json (Polish)
* New translations app.json (Portuguese)
* New translations app.json (Romanian)
* New translations app.json (Danish)
* New translations app.json (Hebrew)
* New translations app.json (Armenian)
* New translations app.json (English)
* New translations app.json (Hindi)
* New translations app.json (English, United States)
* New translations app.json (Sinhala)
* New translations app.json (English)
* New translations app.json (English, United States)
* New translations app.json (Greek)
* New translations app.json (Hungarian)
* New translations app.json (Portuguese)
* New translations app.json (Thai)
* New translations app.json (Romanian)
* New translations app.json (French)
* New translations app.json (Spanish)
* New translations app.json (Arabic)
* New translations app.json (Belarusian)
* New translations app.json (Catalan)
* New translations app.json (Czech)
* New translations app.json (Danish)
* New translations app.json (German)
* New translations app.json (Greek)
* New translations app.json (Basque)
* New translations app.json (Finnish)
* New translations app.json (Hebrew)
* New translations app.json (Armenian)
* New translations app.json (Italian)
* New translations app.json (Japanese)
* New translations app.json (Korean)
* New translations app.json (Dutch)
* New translations app.json (Polish)
* New translations app.json (Russian)
* New translations app.json (Slovenian)
* New translations app.json (Swedish)
* New translations app.json (Turkish)
* New translations app.json (Ukrainian)
* New translations app.json (Chinese Simplified)
* New translations app.json (Chinese Traditional)
* New translations app.json (English)
* New translations app.json (Vietnamese)
* New translations app.json (Galician)
* New translations app.json (Icelandic)
* New translations app.json (Portuguese, Brazilian)
* New translations app.json (Indonesian)
* New translations app.json (Spanish, Argentina)
* New translations app.json (Latvian)
* New translations app.json (Hindi)
* New translations app.json (English, United States)
* New translations app.json (Burmese)
* New translations app.json (Welsh)
* New translations app.json (Sinhala)
* New translations app.json (Scottish Gaelic)
* New translations app.json (Aragonese)
* New translations app.json (Kurmanji (Kurdish))
* New translations app.json (Sorani (Kurdish))
* New translations app.json (Kabyle)
* New translations app.json (Hungarian)
* New translations app.json (Italian)
* New translations app.json (Vietnamese)
* New translations app.json (Icelandic)
* New translations app.json (Spanish, Argentina)
* New translations app.json (Japanese)
* New translations app.json (Chinese Traditional)
* New translations app.json (Galician)
* New translations app.json (Kurmanji (Kurdish))
* New translations app.json (Thai)
* New translations app.json (Greek)
* New translations app.json (Belarusian)
* New translations app.json (Portuguese)
* New translations app.json (Thai)
* New translations app.json (Romanian)
* New translations app.json (French)
* New translations app.json (Spanish)
* New translations app.json (Arabic)
* New translations app.json (Belarusian)
* New translations app.json (Catalan)
* New translations app.json (Czech)
* New translations app.json (Danish)
* New translations app.json (German)
* New translations app.json (Greek)
* New translations app.json (Basque)
* New translations app.json (Finnish)
* New translations app.json (Hebrew)
* New translations app.json (Armenian)
* New translations app.json (Italian)
* New translations app.json (Japanese)
* New translations app.json (Korean)
* New translations app.json (Dutch)
* New translations app.json (Polish)
* New translations app.json (Russian)
* New translations app.json (Slovenian)
* New translations app.json (Swedish)
* New translations app.json (Turkish)
* New translations app.json (Ukrainian)
* New translations app.json (Chinese Simplified)
* New translations app.json (Chinese Traditional)
* New translations app.json (English)
* New translations app.json (Vietnamese)
* New translations app.json (Galician)
* New translations app.json (Icelandic)
* New translations app.json (Portuguese, Brazilian)
* New translations app.json (Indonesian)
* New translations app.json (Spanish, Argentina)
* New translations app.json (Latvian)
* New translations app.json (Hindi)
* New translations app.json (English, United States)
* New translations app.json (Burmese)
* New translations app.json (Welsh)
* New translations app.json (Sinhala)
* New translations app.json (Scottish Gaelic)
* New translations app.json (Aragonese)
* New translations app.json (Kurmanji (Kurdish))
* New translations app.json (Sorani (Kurdish))
* New translations app.json (Kabyle)
* New translations app.json (Hungarian)
* New translations app.json (Swedish)
* New translations app.json (Spanish, Argentina)
* New translations app.json (Hungarian)
* New translations app.json (Italian)
* New translations app.json (Icelandic)
* New translations app.json (Chinese Traditional)
* New translations app.json (Galician)
* New translations app.json (Belarusian)
* New translations app.json (Thai)
* New translations app.json (Vietnamese)
* New translations app.json (Dutch)
* New translations app.json (Hungarian)
* Update translations
---------
Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
2024-04-17 16:45:42 +02:00
Marcus Kida
24e573d9e2
Refactor Polls to not use Core Data ( #1265 )
2024-04-17 16:36:03 +02:00
Nathan Mattes
b120d32efa
Post cell cleanup (IOS-232) and other fixes ( #1272 )
...
* 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
2024-04-16 13:19:49 +02:00
Nathan Mattes
6b32e5e4aa
Re-enable option to post unlisted/"Quiet public" ( #1271 )
...
* 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 )
2024-04-12 10:58:18 +02:00
Nathan Mattes
a9792878e9
Show domain-block not for my instance ( #1269 ) ( #1270 )
...
Show domain-block not for my instance (#1259 )
2024-04-10 18:17:56 +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
Nathan Mattes
0b282c44ad
Go to top when post was sent (IOS-234)
2024-04-10 14:47:48 +02:00
Nathan Mattes
8bb9bca4b9
Sprinkle in localization (IOS-234)
2024-04-10 14:03:13 +02:00
Nathan Mattes
bef0536e72
add a little shadow (IOS-234)
2024-04-09 19:24:15 +02:00
Nathan Mattes
c1c6ef44e9
Add some ✨ styling (IOS-234)
2024-04-09 18:44:42 +02:00
Nathan Mattes
6e61e3ca25
Scale pill when pressing (IOS-234)
2024-04-09 17:23:09 +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
6c0faede75
Show " ✅ Post Sent!"-pill if post was sent successfully (IOS-234)
...
Maybe we could think about an error-message here, too?
2024-04-08 10:40:16 +02:00
Nathan Mattes
527d250024
Show "New Post 💊 " if new posts (IOS-234)
2024-04-07 13:53:13 +02:00
Nathan Mattes
6f58c277c7
Fix initial layout (IOS-234)
2024-04-07 13:04:33 +02:00
Nathan Mattes
985eb68766
Improve animations (IOS-234)
2024-04-05 18:35:51 +02:00
Nathan Mattes
33653911c3
Basic animation to show/hide 💊 (IOS-234)
2024-04-05 17:06:54 +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
eace1ea815
Explore Tab: Use a segmented picker under the search bar (IOS-237) ( #1261 )
...
* 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
2024-04-05 09:55:46 +02:00
Marcus Kida
cc9faf5aea
Improve Number Formatting ( #1266 )
...
* Improves number formatting (IOS-246)
* Implement formatting > 1T (IOS-246)
* Fix typo (IOS-246)
* Update MastodonTests/MetricFormatterTests.swift
Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
* Improve decimal formatting and add tests (IOS-246)
---------
Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
2024-04-04 16:55:19 +02:00
Nathan Mattes
5925436bc5
NavigationBar-Update (IOS-235) ( #1263 )
...
Adds a menu to switch between different timelines. And it looks like
this:
![Simulator Screenshot - iPhone 15 Pro - 2024-04-01 at 20 12
09](https://github.com/mastodon/mastodon-ios/assets/2580019/68fe01d5-2207-42d4-9896-210beff82f78 )
And it works like this:
https://github.com/mastodon/mastodon-ios/assets/2580019/b7468285-4f23-41c2-b814-5612dbf159a0
2024-04-04 13:48:44 +02:00
Nathan Mattes
3fe855273b
Rename a few things here and there (IOS-235)
2024-04-04 13:28:07 +02:00
Nathan Mattes
26f3b5a7ce
Sprinkle in some localization (IOS-235)
2024-04-04 12:19:44 +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
4ae69c9036
Add selection to menu (IOS-235)
...
also refactor it into a function as we need to re-generate it for an updated version
2024-04-04 12:19:44 +02:00
Nathan Mattes
ceca4f6887
Style elements (IOS-235)
2024-04-04 12:19:44 +02:00
Nathan Mattes
67786e1675
Use correct icon for settings (IOS-235)
2024-04-04 12:19:44 +02:00
Nathan Mattes
1d2c08b997
Add basic implementation of timeline-switch (IOS-235)
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
Marcus Kida
344385f5ef
Improve button image
2024-04-04 12:19:44 +02:00
Marcus Kida
66f6ee9bd0
Begin updating NavigationBar Layout
2024-04-04 12:19:44 +02:00
woxtu
6c9ce0de88
Fix CI badge
2024-03-29 19:37:32 +09:00
Nathan Mattes
07cab9b9ad
Bump version
2024-03-27 10:34:35 +01:00
Eugen Rochko
ecf816d15d
New Crowdin updates ( #1242 )
...
* New translations app.json (Portuguese)
* New translations app.json (Thai)
* New translations app.json (Romanian)
* New translations app.json (French)
* New translations app.json (Spanish)
* New translations app.json (Arabic)
* New translations app.json (Belarusian)
* New translations app.json (Catalan)
* New translations app.json (Czech)
* New translations app.json (Danish)
* New translations app.json (German)
* New translations app.json (Greek)
* New translations app.json (Basque)
* New translations app.json (Finnish)
* New translations app.json (Hebrew)
* New translations app.json (Armenian)
* New translations app.json (Italian)
* New translations app.json (Japanese)
* New translations app.json (Korean)
* New translations app.json (Dutch)
* New translations app.json (Polish)
* New translations app.json (Russian)
* New translations app.json (Slovenian)
* New translations app.json (Swedish)
* New translations app.json (Turkish)
* New translations app.json (Ukrainian)
* New translations app.json (Chinese Simplified)
* New translations app.json (Chinese Traditional)
* New translations app.json (English)
* New translations app.json (Vietnamese)
* New translations app.json (Galician)
* New translations app.json (Icelandic)
* New translations app.json (Portuguese, Brazilian)
* New translations app.json (Indonesian)
* New translations app.json (Spanish, Argentina)
* New translations app.json (Latvian)
* New translations app.json (Hindi)
* New translations app.json (English, United States)
* New translations app.json (Burmese)
* New translations app.json (Welsh)
* New translations app.json (Sinhala)
* New translations app.json (Scottish Gaelic)
* New translations app.json (Aragonese)
* New translations app.json (Kurmanji (Kurdish))
* New translations app.json (Sorani (Kurdish))
* New translations app.json (Kabyle)
* New translations app.json (German)
* New translations app.json (Spanish, Argentina)
* New translations app.json (Icelandic)
* New translations app.json (Thai)
* New translations app.json (Swedish)
* New translations app.json (Thai)
* New translations app.json (Dutch)
* New translations app.json (Chinese Traditional)
* New translations app.json (Dutch)
* New translations app.json (Slovenian)
* New translations app.json (Galician)
* New translations app.json (Icelandic)
* New translations app.json (Italian)
* New translations app.json (Vietnamese)
* New translations app.json (Japanese)
* New translations app.json (Japanese)
* New translations app.json (Greek)
* New translations app.json (Kabyle)
* New translations app.json (Kabyle)
* New translations app.json (Kabyle)
* New translations app.json (Kabyle)
* New translations app.json (Scottish Gaelic)
* New translations localizable.stringsdict (French)
* New translations app.json (Chinese Simplified)
* New translations app.json (Chinese Simplified)
* New translations ios-infoplist.json (Chinese Simplified)
* New translations app.json (Belarusian)
* New translations app.json (Chinese Simplified)
* New translations app.json (Dutch)
* New translations app.json (Portuguese)
* New translations app.json (Thai)
* New translations app.json (Romanian)
* New translations app.json (French)
* New translations app.json (Spanish)
* New translations app.json (Arabic)
* New translations app.json (Belarusian)
* New translations app.json (Catalan)
* New translations app.json (Czech)
* New translations app.json (Danish)
* New translations app.json (German)
* New translations app.json (Greek)
* New translations app.json (Basque)
* New translations app.json (Finnish)
* New translations app.json (Hebrew)
* New translations app.json (Armenian)
* New translations app.json (Italian)
* New translations app.json (Japanese)
* New translations app.json (Korean)
* New translations app.json (Dutch)
* New translations app.json (Polish)
* New translations app.json (Russian)
* New translations app.json (Slovenian)
* New translations app.json (Swedish)
* New translations app.json (Turkish)
* New translations app.json (Ukrainian)
* New translations app.json (Chinese Simplified)
* New translations app.json (Chinese Traditional)
* New translations app.json (English)
* New translations app.json (Vietnamese)
* New translations app.json (Galician)
* New translations app.json (Icelandic)
* New translations app.json (Portuguese, Brazilian)
* New translations app.json (Indonesian)
* New translations app.json (Spanish, Argentina)
* New translations app.json (Latvian)
* New translations app.json (Hindi)
* New translations app.json (English, United States)
* New translations app.json (Burmese)
* New translations app.json (Welsh)
* New translations app.json (Sinhala)
* New translations app.json (Scottish Gaelic)
* New translations app.json (Aragonese)
* New translations app.json (Kurmanji (Kurdish))
* New translations app.json (Sorani (Kurdish))
* New translations app.json (Kabyle)
* New translations app.json (German)
* New translations app.json (English)
* New translations app.json (Icelandic)
* New translations ios-infoplist.json (English)
* New translations localizable.stringsdict (English)
* New translations intents.strings (English)
* New translations app.json (Chinese Traditional)
* New translations app.json (Thai)
* New translations app.json (Dutch)
* New translations app.json (Korean)
* New translations app.json (Japanese)
* New translations app.json (Galician)
* New translations app.json (Galician)
* New translations app.json (Spanish, Argentina)
* New translations app.json (Belarusian)
* New translations app.json (Vietnamese)
* New translations app.json (Swedish)
* New translations app.json (English)
* New translations ios-infoplist.json (English)
* New translations localizable.stringsdict (English)
* New translations intents.strings (English)
* Update translations
---------
Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
2024-03-21 17:00:09 +01:00