Commit Graph

6530 Commits

Author SHA1 Message Date
Marcus Kida a23b5089d0
Fix duplicate LoC 2024-06-14 11:11:22 +02:00
Marcus Kida c131d76a47
Update Mastodon/Scene/HomeTimeline/HomeTimelineViewModel.swift
Co-authored-by: Nathan Mattes <hallo@bullenscheisse.de>
2024-06-14 11:08:38 +02:00
Nathan Mattes c3db917025
"About profile"-Fixes (#1290) (#1313)
When fixing the broken avatar-upload, we (well, I) broke the fields in
the "About"-section. This PR fixes two things:

1. It fixes #1290 (Now you can edit fields again)
2. Field weren't updated when using Pull to Refresh on the
Profile-screen.
2024-06-14 08:40:03 +02:00
Marcus Kida 8c751d45a9
Remove limit again (IOS-275) 2024-06-13 11:48:19 +02:00
Marcus Kida 11376c2d09
Improve home timeline item loading (IOS-275) 2024-06-13 10:25:08 +02:00
Marcus Kida 326e098aec
Remove limit when fetching more items (IOS-275) 2024-06-12 16:33:21 +02:00
Marcus Kida 8504284bc9
Fix Load More Gap eventually shown due to false positive (IOS-275) 2024-06-12 16:33:21 +02:00
Marcus Kida df8275e247
Fix Load More shown if first old record entity is null (IOS-275) 2024-06-12 16:33:21 +02:00
Marcus Kida dc07c65b9e
IOS-168: Implement Privacy & Safety Settings (#1306)
| Rationale | Demo |
|---|---|
| Implements a settings screen to control your Privacy & Safety settings
from within the App. | ![RocketSim_Recording_iPhone_15_6 1_2024-05-30_11
58
40](https://github.com/mastodon/mastodon-ios/assets/126418/90037659-f0f7-42c5-91ce-e0135f54c91a)
|
2024-06-12 16:32:43 +02:00
Nathan Mattes b89671c78b Update "about profile"-fields (#1290) 2024-06-12 14:49:23 +02:00
Marcus Kida d14a9407ba
Remove unused code (IOS-168) 2024-06-12 13:32:06 +02:00
Marcus Kida 3b72d37758
Apply PR feedback (IOS-168) 2024-06-12 11:25:46 +02:00
Marcus Kida 43227416b8
Fix Account + Source API usage (IOS-168) 2024-06-12 10:55:39 +02:00
Marcus Kida 6701586287
Reformat code (IOS-168) 2024-06-12 10:55:38 +02:00
Marcus Kida 4b89d6eef0
Rename interaction blocking property (IOS-168) 2024-06-12 10:55:38 +02:00
Marcus Kida d77e8d1eac
Implement loading and saving of privacy & safety preferences (IOS-168) 2024-06-12 10:55:38 +02:00
Marcus Kida f31fd74abe
Add `indexable` to update credentials (IOS-168) 2024-06-12 10:55:38 +02:00
Marcus Kida 79d8d8d508
Implement loading spinner when fetching current settings (IOS-168) 2024-06-12 10:55:38 +02:00
Marcus Kida 5b50e24b80
Implement PrivacySafetySettings preset logic (IOS-168) 2024-06-12 10:55:38 +02:00
Marcus Kida cea13cb3de
Begin implementing PrivacySafetyViewController (IOS-168) 2024-06-12 10:55:38 +02:00
Marcus Kida 84f445426a
Add Privacy & Safety Settings Item (IOS-168) 2024-06-12 10:55:37 +02:00
Nathan Mattes e5658cff63 Make fields editable again (#1290) 2024-06-11 17:47:57 +02:00
Nathan Mattes 3737005d88
Make the CI clean and build (instead of just clean) (IOS-280) (#1311) 2024-06-11 12:17:07 +02:00
Nathan Mattes ac1a7420c4
Add destination 2024-06-11 11:57:20 +02:00
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