Commit Graph

6498 Commits

Author SHA1 Message Date
Nathan Mattes d12624a0f5 Remove Poll-persistence(IOS-181) 2024-06-07 09:46:11 +02:00
Nathan Mattes b5f4bd4eeb Remove enum (IOS-182) 2024-06-06 16:47:19 +02:00
Nathan Mattes 5264f13ef8 Remove poll-option-related persistence (IOS-182) 2024-06-06 15:43:27 +02:00
Nathan Mattes d954d72c7c Remove polloption-persistence (IOS-182) 2024-06-06 15:32:56 +02:00
Nathan Mattes ef8ceb56c9
Improve "Load more"-times when scrolling to the end (IOS-272) (#1303)
This is basically a refactoring of the `ListBatchFetchViewModel`, it
does two things:

1. Remove the "Reload this every 30 seconds", which caused a delay on
several screens
2. When users reach the bottom of the ScrollView, new content is
requested
3. DIY: Use this mechanism everywhere

The previous mechanism worked like this: Check every second, if the user
reached the end of the scrollView. If so: `shouldFetch`. As we increased
"every second" to "30 seconds", this caused a significant delay on all
screens which used this mechanism.

Others brought their own solution to fetch new content when users
reached THE END, like the HomeTimeline or the FollowerList. From now
one, there's a suggested way to deal with this "We must do something
once the user reachs the end!!!!"-issue.

P.S.: I'm not so happy with the `Self.`-approach and if someone has a
better name for `scrollViewDidScrollToEnd`, I'd be also thankful for a
hint. Maybe it's me, but I would have loved to add a new method to the
`UIScrollViewDelegate`-protocol (without Protocol-inheritance). Maybe
someone knows a way to do this? For now we'll leave it like this as the 
alternatives would add more complexity.
2024-05-29 08:35:56 +02:00
Nathan Mattes e2d7cd6cf9 Fix places I forgot to fix 🙈 (IOS-272) 2024-05-28 22:44:33 +02:00
Nathan Mattes cf1d6bbe4d
Update avatar in Sidebar/TabBar on change (IOS-277) (#1304)
When the user uploaded new account information, it got saved, but nobody
informed `MainTabBarController` (on iPhone) (and others), that the
account got updated. The `.userFetched`-notification was never sent. But
to use the updated picture, this notification is required. This PR fixes
that. It also adds the Update-ability to the Sidebar (which is used on
iPad)

In other words: When the user changes their image, the TabBar (or the
Sidebar, on iPad) shows the new image now.
2024-05-28 22:01:22 +02:00
Nathan Mattes 8f642ea021 Also update avatar on iPad (IOS-277) 2024-05-25 19:56:20 +02:00
Nathan Mattes 395a4c0fba Inform everyone that the account got updated (IOS-277) 2024-05-24 21:58:15 +02:00
Nathan Mattes f7973b317b Adopt new reload-when-scrolled-to-bottom to Hometimeline (IOS-272)
Hopefully this didn't break anything #famouslastwords
2024-05-24 21:09:21 +02:00
Nathan Mattes 575b0c08ee Minor refactoring (IOS-272)
Use an extension instead of its own class
2024-05-24 21:02:03 +02:00
Nathan Mattes ef666be391 Remove debug statement (IOS-272) 2024-05-24 20:52:01 +02:00
Nathan Mattes d7ec60cff2 Cleanup (IOS-272) 2024-05-24 16:01:28 +02:00
Nathan Mattes 58fdd39c2b Remove dead code (IOS-272) 2024-05-24 15:46:16 +02:00
Nathan Mattes 622a2fa5c9 Load more entries from user timeline (IOS-272) 2024-05-24 15:46:08 +02:00
Nathan Mattes af650edbb0 Load more entries for "Boosted by"-screen when scrolled to the bottom (IOS-272) 2024-05-24 15:45:49 +02:00
Nathan Mattes 1f0be78ee1 Fix typo 2024-05-24 15:45:26 +02:00
Nathan Mattes ec6312b225 load more posts to report immediately (IOS-272) 2024-05-24 15:30:26 +02:00
Nathan Mattes bd9d19f8b6 Load more notifications (IOS-272) 2024-05-24 15:30:00 +02:00
Nathan Mattes fe8e0dfdcd Remove dead code (IOS-272) 2024-05-24 13:33:37 +02:00
Nathan Mattes 93b4b04ac2 Load more favoritedBy-accounts (IOS-272) 2024-05-24 13:33:27 +02:00
Nathan Mattes b62e259335 Load more search results (IOS-272) 2024-05-24 13:33:03 +02:00
Nathan Mattes f5158ab034 Load more bookmarks (IOS-272) 2024-05-24 12:18:10 +02:00
Nathan Mattes e67ec46b68 Fix reload-condition-calculation (IOS-272) 2024-05-24 12:12:46 +02:00
Nathan Mattes 4a766f5247 Load more favorites right away (IOS-272) 2024-05-23 16:00:46 +02:00
Nathan Mattes 7d446c5fc7 Load more statuses from discover-posts-timeline right away (IOS-272) 2024-05-23 15:57:38 +02:00
Nathan Mattes a86fc70828 Load more discovery news right away (IOS-272) 2024-05-23 15:52:30 +02:00
Nathan Mattes 6b99c9def3 Load more statuses from hashtag-timeline right away (IOS-272) 2024-05-23 15:45:17 +02:00
Nathan Mattes 008691bdf8 [WIP] Implement alternative "Load more"-mechanism for scroll-views (#IOS-272) 2024-05-23 15:23:22 +02:00
Nathan Mattes be85e896da Bump version 2024-05-23 09:03:33 +02:00
Nathan Mattes 55dd3befc5 Update translations 2024-05-22 17:24:46 +02:00
Eugen Rochko 58c22b1292
New Crowdin updates (#1274)
* New translations app.json (Indonesian)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Thai)

* 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 (Icelandic)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Thai)

* New translations app.json (Chinese Traditional)

* New translations app.json (German)

* New translations app.json (Belarusian)

* New translations app.json (Galician)

* New translations app.json (Italian)

* New translations app.json (Vietnamese)

* New translations app.json (Chinese Simplified)

* New translations app.json (Japanese)

* New translations app.json (Chinese Simplified)

* New translations app.json (Vietnamese)

* New translations app.json (Hungarian)

* 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 (Korean)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Portuguese)

* 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 Traditional)

* New translations app.json (English)

* 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 (Thai)

* 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 (Slovenian)

* New translations app.json (Swedish)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Icelandic)

* New translations app.json (Galician)

* New translations app.json (Hungarian)

* New translations app.json (Hungarian)

* New translations app.json (Japanese)

* New translations app.json (Vietnamese)

* New translations app.json (German)

* New translations app.json (Chinese Traditional)

* New translations app.json (Belarusian)

* New translations app.json (Thai)

* New translations app.json (Italian)

* New translations app.json (Ukrainian)

* New translations app.json (Portuguese, Brazilian)

* New translations app.json (Japanese)

* New translations app.json (Chinese Simplified)

* New translations app.json (Vietnamese)

* New translations app.json (Hungarian)

* 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 (Korean)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Portuguese)

* 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 Traditional)

* New translations app.json (English)

* 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 (Thai)

* 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 (Swedish)

* New translations app.json (Japanese)

* New translations app.json (Vietnamese)

* New translations app.json (Chinese Traditional)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Galician)

* New translations app.json (Belarusian)

* New translations app.json (Thai)

* New translations app.json (Japanese)

* New translations app.json (Chinese Simplified)

* New translations app.json (Vietnamese)

* New translations app.json (Hungarian)

* 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 (Korean)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Portuguese)

* 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 Traditional)

* New translations app.json (English)

* 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 (Thai)

* 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 (Swedish)

* New translations app.json (Italian)

* New translations app.json (Vietnamese)

* New translations app.json (Galician)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Spanish, Argentina)

* New translations app.json (Chinese Traditional)

* New translations app.json (Thai)

* New translations app.json (Icelandic)

* New translations app.json (Japanese)

* New translations app.json (Chinese Simplified)

* New translations app.json (Vietnamese)

* New translations app.json (Hungarian)

* 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 (Korean)

* New translations app.json (Dutch)

* New translations app.json (Polish)

* New translations app.json (Portuguese)

* 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 Traditional)

* New translations app.json (English)

* 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 (Thai)

* 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 (Belarusian)

* New translations app.json (Icelandic)

* New translations app.json (Italian)
2024-05-22 17:23:00 +02:00
Marcus Kida e2c1cf301a
Fix voted indicator on poll missing (IOS-274) (#1301)
# Rationale

Fixes #1289
2024-05-22 16:31:50 +02:00
Marcus Kida ca52aed93b
Improve CW Overlay / size (IOS-278) (#1300)
# Rationale

Improves the Content Warning's height to not use the full height of the
actual status content.

| Before | After |
|---|---|
| ![RocketSim_Recording_iPhone_15_6 1_2024-05-22_13 02
27](https://github.com/mastodon/mastodon-ios/assets/126418/f37e5a7a-95b5-475c-b1cd-062ea84d3dd7)
| ![RocketSim_Recording_iPhone_15_6 1_2024-05-22_12 59
24](https://github.com/mastodon/mastodon-ios/assets/126418/e25c8ef9-cf2a-4447-8b2a-4e1200b9ecf7)
|
2024-05-22 16:19:31 +02:00
Marcus Kida 478cffa5b8
Fix voted indicator on poll missing (IOS-274) 2024-05-22 13:45:22 +02:00
Marcus Kida 49f773e1a4
Improve CW Overlay / size (IOS-278) 2024-05-22 13:00:41 +02:00
Marcus Kida f1aebc4220
Update Onboarding Privacy Copy (IOS-221) (#1295)
# Rationale

| Screenshot | Description |
|---|---|
| ![Simulator Screenshot - iPhone 15 - 2024-05-18 at 14 13
51](https://github.com/mastodon/mastodon-ios/assets/126418/0822433f-b362-4787-9f42-2f7c37f4ea55)
| This PR modifies the Onboarding Privacy Copy and allows it to render
Markdown. |
2024-05-22 09:26:12 +02:00
Marcus Kida 068da20c58
Don't flicker avatar-image in MainTabBar (IOS-238) (#1299)
Every time, the account gets updated, the `avatarURL` is updated as
well. But not only new image was set. Before setting the image, the
button-image was reset to the placeholder first. After that, the
downloaded image was applied.

Now we don't reset the image to the placeholder, but set the placeholder
once.
Also: Cleanup.
2024-05-22 09:14:38 +02:00
Marcus Kida 5317e8c54b
Update Profile-Menu (IOS-231) (#1297)
Updates the Profile-menu on other profiles. This menu is not visible on
my own profile. For details see IOS-231

![Simulator Screenshot - iPhone 15 Pro - 2024-05-21 at 11 29
07](https://github.com/mastodon/mastodon-ios/assets/2580019/69e0e620-1e02-416b-ba8c-246e5247f1c3)
2024-05-22 09:07:38 +02:00
Nathan Mattes 47bedff5e5 Cleanup (IOS-238) 2024-05-21 18:11:22 +02:00
Nathan Mattes 9e486a82e6 Remove download-placeholder (IOS-238) 2024-05-21 18:01:54 +02:00
Nathan Mattes 298886d3f5 Set placeholder-color for AvatarButton (IOS-238) 2024-05-21 17:43:53 +02:00
Nathan Mattes 16d6c9e823 Set placeholder only if something goes wrong (IOS-238) 2024-05-21 17:14:32 +02:00
Nathan Mattes aeb3717eb2 Update wording for boosts (IOS-231) 2024-05-21 12:02:57 +02:00
Nathan Mattes a7f792c301 Update menu for profiles (IOS-231) 2024-05-21 11:16:58 +02:00
Nathan Mattes 7420563f37
Only show mentions in mentions (IOS-270) (#1296) 2024-05-20 10:34:08 +02:00
Nathan Mattes 8d3cb2beb3
Update Post Menu (IOS-229) (#1292)
* Add missing actions, hack way to inject options into menu (IOS-229)

* Implement new menu structure (IOS-229)

This doesn't work-work yet, as functionality isn't implemented yet. Also: Special options and traits.

* Add preferredElementSize to submenus (IOS-229)

* Copy Link (IOS-229)

* Open In Browser (IOS-229)

* Boost status from menu (IOS-229)

* Favorite status from menu (IOS-229)

* Fix following-status in menu and don't cache menu (IOS-229)

* Add some destruction, add localization and use "Boost" instead of "Reblog" (IOS-229)

* Use struct instead of tuple for those menu-parts (IOS-229)
2024-05-18 14:30:51 +02:00
Marcus Kida 025f2f1493
Fix layout for signup privacy declaration text (IOS-221) 2024-05-18 14:19:04 +02:00
Marcus Kida 2ffa94a102
Implement HeaderTextView in Privacy (IOS-221) 2024-05-17 17:29:59 +02:00
Marcus Kida 41c34d4e82
Update onboarding privacy text to render Markdown 2024-05-16 17:13:55 +02:00