Commit Graph

6406 Commits

Author SHA1 Message Date
Nathan Mattes 83e2000090
[WIP] Clean, then build (IOS-280) 2024-06-11 11:44:56 +02:00
Nathan Mattes cf3b74717c [WIP] Make Github Action build again (IOS-280) 2024-06-11 11:32:51 +02:00
Nathan Mattes f120c660c3
Remove card (IOS-178) (#1309)
While I was at it, I also removed the Card-persistence
2024-06-11 09:53:27 +02:00
Nathan Mattes 025b4342ee
Use an existing account for the me-Screen (IOS-255) (#1310)
Technically this is a workaround: Replacing the `ProfileViewModel!` with
a real optional (or no optional at all) most probably requires a rewrite
of the entire Profile-screen, including header etc. as the
`ProfileViewModel!` is used basically everywhere.

So the workaround is to use the existing account (at least until it is
updated and replaced) to not have the app crash when the user taps on
their profile too quickly (without an account, which this PR fixes). For
some reason, we persist the users very own profile, but never used it.
2024-06-10 11:01:21 +02:00
Nathan Mattes fc9366c0ce
Remove Poll Option and Poll Persistence (IOS-182) (#1308)
Removes persistence for Poll Option (and also Polls, while I was at it)
2024-06-10 10:34:44 +02:00
Nathan Mattes 46e4584f05 Use an existing account for the me-Screen (IOS-255)
Technically this is a workaround: Replacing the ProfileViewModel! with a real optional affects the entire Profile-screen including the header etc. as this ProfileViewModel is used everywhere
2024-06-09 14:03:50 +02:00
Nathan Mattes 9691e905c0 Remove card-persistence 2024-06-07 10:05:04 +02:00
Nathan Mattes e668b21da5 Remove PollLegacy from Core Data (IOS-182) 2024-06-07 09:51:55 +02:00
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