4f48514d1a
Actually only restore existing statuses
2022-12-08 20:15:12 -05:00
57668886b2
Fix crash when scrolling through Local/Federated timeline with VoiceOver
...
It seems that the accessibility scroll mechanism does something like:
1. Find the next IndexPath to focus
2. Scroll to make it visible
3. Focus that cell
But because the timeline description cell is removed during the scroll,
the IndexPath that the accessibility system wants to focus becomes
invalid between steps 2 and 3, causing a crash when trying to focus it.
As a workaround, only remove the timeline description _item_ rather than
the header section so that section indices aren't affected.
Closes #290
2022-12-06 21:46:32 -05:00
40ff8d0a2a
VoiceOver: improve description of gap cell, add actions to specify direction
2022-12-05 18:43:32 -05:00
0dcb7e71c4
Also perform jump to present check when the timeline VC reappears onscreen
2022-12-05 18:27:23 -05:00
3ea7e1057b
Add preference to disable timeline state restoration
2022-12-05 17:24:01 -05:00
fc8fcb76fd
Fix crash when TimelineViewController tries to apply snapshot while not visible
2022-12-05 17:17:34 -05:00
eac2a9b19f
Move VoiceOver Jump to Present action to timeline pages segmented control
2022-12-05 17:13:45 -05:00
0ce57d1308
More fiddling with how Jump to Present works
...
Now, when loading present items, they're inserted into the data source
immediately along with a gap. If the user taps Jump to Present, then a
new snapshot _with only the present items_ will be applied (which allows
infinite scrolling to work properly when they scroll back down) and the
view scrolled-to-top. Tapping Go Back, then, applies the original
snapshot (i.e., the current one from when Jump to Present was tapped)
and restores the scroll position.
2022-12-05 17:09:11 -05:00
b64c748b73
Add Jump to Present VoiceOver action
...
Closes #288
2022-12-04 22:06:04 -05:00
5f3d9da9f8
Only try to restore statuses that exist in the cache
...
This could result in discontinuities in the restored timeline, but I'm
not sure there's anything better we could do.
2022-12-04 17:34:28 -05:00
f1b1732e5c
Fix filter HTML to attributed string conversion optimization not being applied 🤦♂️
2022-12-04 15:36:26 -05:00
e3e55de55b
Fix hide filter action not working on profiles
2022-12-04 12:11:52 -05:00
54857a3bf3
Avoid converting HTML to attributed string twice when displaying a status cell for the first time
...
Now, when Filterer performs the conversion, the status cell can reuse
the attributed string.
2022-12-04 12:08:22 -05:00
6501343f24
Reapply filters on when they change
2022-12-04 10:54:02 -05:00
fabe339215
VoiceOver: Indicate filtered posts, make double tapping expand them
2022-12-03 23:20:19 -05:00
e1886509d3
Filter statuses on profiles
2022-12-03 23:11:09 -05:00
75e9c9f986
Fix home/list filters not applying to lists
2022-12-03 23:11:09 -05:00
a17afe247c
Better filter cell and animation for showing filtered post
2022-12-03 23:11:09 -05:00
81abcfcf7b
Timeline filtering!
2022-12-03 22:16:43 -05:00
cde3109203
Rename StatusState to CollapseState
2022-12-03 18:21:49 -05:00
fcf95ba8c1
Filters view UI tweaks
2022-12-03 15:22:10 -05:00
16a1e4008b
V2 filters API, CoreData, and editing UI
2022-12-03 12:29:11 -05:00
518a8eba0a
Start doing filters UI
2022-12-02 22:03:28 -05:00
f1a39c2faa
Add follow/unfollow hashtag actions
2022-11-29 23:14:36 -05:00
c6da754875
Indicate when a followed hashtag caused a post to appear in the home timeline
2022-11-29 23:14:36 -05:00
80f9800fd6
Completely replace all items when jumping to present
2022-11-29 20:53:00 -05:00
811aac35d7
Fix timeline statuses not getting deselected when entering split nav
...
Closes #275
2022-11-29 10:29:40 -05:00
ea6698a2d8
State restoration for non-home timeline pages
2022-11-28 16:33:19 -05:00
c256fb4cbd
When refreshing timeline, hide activity indicator as soon as loadNewer completes
2022-11-26 17:33:58 -05:00
21299c8eb8
Fix error when refreshing timeline with no items
2022-11-26 17:33:07 -05:00
23f9e200dc
Fix potential crash when trying to save timeline state
2022-11-24 12:14:19 -05:00
366834e2e4
Tweak timeline state restoration to maintain scroll position of center item
2022-11-24 11:05:56 -05:00
40800f964d
Fix jump to present not scrolling all the way to the top
2022-11-23 11:58:52 -05:00
c2cb0a0c5a
Timeline state restoration
2022-11-23 11:35:25 -05:00
47b838a386
Change timeline gap-filling to do a proper job of maintaining the bottom-relative scroll position
2022-11-21 22:47:44 -05:00
11e81acbc1
Fix toasts not adjusting font for Dynamic Type
2022-11-20 14:15:21 -05:00
c8319d8af2
Remove old and debug code
2022-11-19 13:11:29 -05:00
9ff1452c68
Show jump to present toast if necessary when scene re-appears
2022-11-19 13:09:37 -05:00
ce534c4a05
Actual gap cell implementation
2022-11-19 11:15:14 -05:00
0fddf94292
Timeline jump to present
2022-11-18 20:49:15 -05:00
8276e99d27
Timeline gaps and gap filling
2022-11-18 17:29:55 -05:00
319b5458fc
Fix refreshing not loading initial when previous attempt failed
...
Closes #214
2022-11-09 19:15:08 -05:00
ba032412eb
Fix timeline reloading every time VC appears
...
Caused by changes to TimelineLikeController required to let list
timelines reload from scratch
2022-11-02 22:06:07 -04:00
5de0c034f4
Remove old TimelineTableViewController
2022-11-01 21:11:13 -04:00
b1d83f2746
Switch hashtag/instance/list timelines to use new collection view impl
2022-11-01 21:10:41 -04:00
658c08010d
Re-add undo scroll-to-top to timelines/profiles
2022-11-01 20:49:07 -04:00
b755607895
Fix crash when TimelineStatusTableViewCell outlives its containing VC
2022-10-31 17:33:33 -04:00
6bb1f3b7dc
Finish converting profiles to collection views
2022-10-28 21:31:18 -04:00
5f410213e2
Start converting profile statuses to collection view
2022-10-28 19:17:33 -04:00
868df25417
Disable pruning offscreen rows in new timelines
...
I don't think this is actually necessary, the system should kill us
often enough that the amount of items in the data source doesn't become
unmanageable.
Making modifications to the data source in viewDidDisappear was causing
the collection view's contentOffset to change to be scrolled to top
(roughly) when the view became visible again.
Disabling it also fixes several issues caused by updating the data
source even when there were no changes.
Closes #193
Closes #192
Closes #187
Closes #186
2022-10-28 19:05:07 -04:00
8cf217d2ba
Fix crash when trying to prune rows before statuses have loaded
2022-10-10 16:21:08 -04:00
c15a5fc90f
Fix reblog statuses being selected in timeline
2022-10-10 14:23:27 -04:00
a703b7cc0a
Prune offscreen rows on new timeline
2022-10-09 20:11:00 -04:00
412e4a4dc5
Fix public timeline descriptions not working
...
Closes #182
2022-10-09 19:11:34 -04:00
81e10326d3
Add logging to persistent store
2022-10-09 17:09:55 -04:00
1b186725ce
Re-add timeline context menus
2022-10-08 23:47:42 -04:00
bcb3c24027
Fix context menu presentation animation getting clipped in new status cells
2022-10-08 16:53:48 -04:00
ba1300b1b7
Re-add status cell dragging
2022-10-08 15:01:23 -04:00
817ef0c2cc
New timeline key commands
2022-10-08 14:53:21 -04:00
18ee621489
Status cell swipe actions
2022-10-08 14:33:07 -04:00
b688631937
Update status cells on status changes
2022-10-06 22:36:55 -04:00
4d654358d7
Extract a bunch of common stuff to StatusCollectionViewCell protocol
2022-10-05 23:19:30 -04:00
24e90de672
Status cell interaction
2022-10-05 22:28:10 -04:00
780e8b09b7
Status cell UI
2022-10-05 21:39:58 -04:00
7085ac01cb
Timeline status collection view cell collapsing
2022-10-04 00:02:41 -04:00
81671d73c7
Start converting timeline status to UICollectionViewCell
2022-10-04 00:01:16 -04:00
a38c89a17f
Re-add public timeline descriptions
2022-10-01 15:32:06 -04:00
253fb8d27d
Extract more things to TimelineLikeCollectionViewController
2022-10-01 15:08:51 -04:00
a682c8f5cc
Extract a bunch of timeline view controller stuff to separate protocol
2022-09-24 11:39:12 -04:00
426b31d46c
Initial TimelineLikeController + TimelineViewController implementation
2022-09-24 10:49:06 -04:00
5ac76ef9c4
Revert "Maybe fix timeline discontinuities"
...
This reverts commit 43b4976ed7a7e2d94e61cd12147888f304f1fc43.
That commit reintroduced #166
2022-09-18 22:37:18 -04:00
43b4976ed7
Maybe fix timeline discontinuities
...
See #174
2022-09-15 20:54:28 -04:00
bbfb3b0a7a
Add loading indicator to DiffableTimelineLikeTableViewController
2022-09-12 22:05:19 -04:00
a9e0bffe5f
Bump deployment target to iOS 15
2022-06-30 19:04:08 -07:00
10f6a68065
Use new-style self-sizing cells on iOS 16
2022-06-28 17:29:46 -07:00
d3187ce2c4
Move saved instances and hashtags to CoreData
2022-05-10 22:58:30 -04:00
bf8a294676
Split MenuActionProvider from MenuPreviewProvider
2022-05-01 23:05:23 -04:00
d04957ba41
Remove reference counting system
...
Delete statuses/accounts that haven't been fetched in a week
2022-05-01 21:50:16 -04:00
89a9bfba47
Fix crash when refreshing while logged in to a Pixelfed account
...
Closes #142
2022-04-06 21:48:04 -04:00
3d0402c1e0
Fix potential deadlock when infinite scrolling is disabled
...
Fixes crash when used with Pixelfed
2022-04-04 09:59:45 -04:00
1e54235ff5
Hide public timeline description when user begins scrolling rather than
...
after cell moves offscreen
Fixes description getting dismissed prematurely on iOS 14 and hitching
when the cell moves offscreen
2021-08-15 22:29:14 -04:00
9026f487ec
Convert notifications to use DiffableTimelineLikeTableViewController
2021-08-15 19:25:29 -04:00
c0097ba752
Fix potential race condition with DiffableTimelineLikeTableViewController
2021-08-15 18:44:23 -04:00
f109253bba
Show toast when there are no new posts
2021-08-15 18:27:30 -04:00
340d13b1fa
Fix crash when reloading list timelines
2021-08-08 10:19:18 -04:00
b781b56efd
Add public timeline descriptions
2021-08-08 10:09:28 -04:00
60c88ded5e
Require iOS 15 for Disable Infinite Scrolling
2021-06-27 17:17:39 -04:00
1e7a6af0bf
Fix TimelineTableVC item hash including status state
...
Fixes crash when refreshing on iOS 14
2021-06-27 15:52:22 -04:00
b95819cada
Fix crash when switching accounts
2021-06-26 16:42:56 -04:00
dc1ea1bed9
Fix timeline momentum scrolling stopping due to adding footer section
2021-06-26 15:54:10 -04:00
5f9fe505d5
Add pref to disable infinite scrolling on timelines
...
Closes #125
2021-06-25 23:28:43 -04:00
5b8e97287e
Convert TimelineTableViewController to use DiffableTimelineLikeTableViewController
2021-06-20 22:27:38 -04:00
ffe6450b26
Xcode recommendations, use AnyObject instead of class in protocol requirements
2021-05-22 13:44:58 -04:00
edd89450aa
Fail gracefully when fetching statuses in timeline controller
2021-04-04 14:43:51 -04:00
2e88b266d9
Prefetch on a background queue to avoid blocking main queue with
...
CoreData lookups
2021-01-18 14:29:32 -05:00
27b39b79e6
Fix refreshes after no-result refresh not working
...
Fixes #117
2021-01-13 00:16:33 -05:00
30297c2390
Add multi-window drag and drop to all the things
2020-12-14 18:44:48 -05:00
522c9b2b03
Add multi-window support and auxiliary windows
2020-12-13 22:37:37 -05:00
dfad8740eb
Extract common functionality into TimelineLikeTableViewController
2020-11-15 15:48:49 -05:00
9e15a84006
Add refresh key command
2020-11-14 11:22:47 -05:00