Shadowfacts
658c08010d
Re-add undo scroll-to-top to timelines/profiles
2022-11-01 20:49:07 -04:00
Shadowfacts
b755607895
Fix crash when TimelineStatusTableViewCell outlives its containing VC
2022-10-31 17:33:33 -04:00
Shadowfacts
6bb1f3b7dc
Finish converting profiles to collection views
2022-10-28 21:31:18 -04:00
Shadowfacts
5f410213e2
Start converting profile statuses to collection view
2022-10-28 19:17:33 -04:00
Shadowfacts
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
Shadowfacts
8cf217d2ba
Fix crash when trying to prune rows before statuses have loaded
2022-10-10 16:21:08 -04:00
Shadowfacts
c15a5fc90f
Fix reblog statuses being selected in timeline
2022-10-10 14:23:27 -04:00
Shadowfacts
a703b7cc0a
Prune offscreen rows on new timeline
2022-10-09 20:11:00 -04:00
Shadowfacts
412e4a4dc5
Fix public timeline descriptions not working
...
Closes #182
2022-10-09 19:11:34 -04:00
Shadowfacts
81e10326d3
Add logging to persistent store
2022-10-09 17:09:55 -04:00
Shadowfacts
1b186725ce
Re-add timeline context menus
2022-10-08 23:47:42 -04:00
Shadowfacts
bcb3c24027
Fix context menu presentation animation getting clipped in new status cells
2022-10-08 16:53:48 -04:00
Shadowfacts
ba1300b1b7
Re-add status cell dragging
2022-10-08 15:01:23 -04:00
Shadowfacts
817ef0c2cc
New timeline key commands
2022-10-08 14:53:21 -04:00
Shadowfacts
18ee621489
Status cell swipe actions
2022-10-08 14:33:07 -04:00
Shadowfacts
b688631937
Update status cells on status changes
2022-10-06 22:36:55 -04:00
Shadowfacts
4d654358d7
Extract a bunch of common stuff to StatusCollectionViewCell protocol
2022-10-05 23:19:30 -04:00
Shadowfacts
24e90de672
Status cell interaction
2022-10-05 22:28:10 -04:00
Shadowfacts
780e8b09b7
Status cell UI
2022-10-05 21:39:58 -04:00
Shadowfacts
7085ac01cb
Timeline status collection view cell collapsing
2022-10-04 00:02:41 -04:00
Shadowfacts
81671d73c7
Start converting timeline status to UICollectionViewCell
2022-10-04 00:01:16 -04:00
Shadowfacts
a38c89a17f
Re-add public timeline descriptions
2022-10-01 15:32:06 -04:00
Shadowfacts
253fb8d27d
Extract more things to TimelineLikeCollectionViewController
2022-10-01 15:08:51 -04:00
Shadowfacts
a682c8f5cc
Extract a bunch of timeline view controller stuff to separate protocol
2022-09-24 11:39:12 -04:00
Shadowfacts
426b31d46c
Initial TimelineLikeController + TimelineViewController implementation
2022-09-24 10:49:06 -04:00
Shadowfacts
5ac76ef9c4
Revert "Maybe fix timeline discontinuities"
...
This reverts commit 43b4976ed7
.
That commit reintroduced #166
2022-09-18 22:37:18 -04:00
Shadowfacts
43b4976ed7
Maybe fix timeline discontinuities
...
See #174
2022-09-15 20:54:28 -04:00
Shadowfacts
bbfb3b0a7a
Add loading indicator to DiffableTimelineLikeTableViewController
2022-09-12 22:05:19 -04:00
Shadowfacts
a9e0bffe5f
Bump deployment target to iOS 15
2022-06-30 19:04:08 -07:00
Shadowfacts
10f6a68065
Use new-style self-sizing cells on iOS 16
2022-06-28 17:29:46 -07:00
Shadowfacts
d3187ce2c4
Move saved instances and hashtags to CoreData
2022-05-10 22:58:30 -04:00
Shadowfacts
bf8a294676
Split MenuActionProvider from MenuPreviewProvider
2022-05-01 23:05:23 -04:00
Shadowfacts
d04957ba41
Remove reference counting system
...
Delete statuses/accounts that haven't been fetched in a week
2022-05-01 21:50:16 -04:00
Shadowfacts
89a9bfba47
Fix crash when refreshing while logged in to a Pixelfed account
...
Closes #142
2022-04-06 21:48:04 -04:00
Shadowfacts
3d0402c1e0
Fix potential deadlock when infinite scrolling is disabled
...
Fixes crash when used with Pixelfed
2022-04-04 09:59:45 -04:00
Shadowfacts
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
Shadowfacts
9026f487ec
Convert notifications to use DiffableTimelineLikeTableViewController
2021-08-15 19:25:29 -04:00
Shadowfacts
c0097ba752
Fix potential race condition with DiffableTimelineLikeTableViewController
2021-08-15 18:44:23 -04:00
Shadowfacts
f109253bba
Show toast when there are no new posts
2021-08-15 18:27:30 -04:00
Shadowfacts
340d13b1fa
Fix crash when reloading list timelines
2021-08-08 10:19:18 -04:00
Shadowfacts
b781b56efd
Add public timeline descriptions
2021-08-08 10:09:28 -04:00
Shadowfacts
60c88ded5e
Require iOS 15 for Disable Infinite Scrolling
2021-06-27 17:17:39 -04:00
Shadowfacts
1e7a6af0bf
Fix TimelineTableVC item hash including status state
...
Fixes crash when refreshing on iOS 14
2021-06-27 15:52:22 -04:00
Shadowfacts
b95819cada
Fix crash when switching accounts
2021-06-26 16:42:56 -04:00
Shadowfacts
dc1ea1bed9
Fix timeline momentum scrolling stopping due to adding footer section
2021-06-26 15:54:10 -04:00
Shadowfacts
5f9fe505d5
Add pref to disable infinite scrolling on timelines
...
Closes #125
2021-06-25 23:28:43 -04:00
Shadowfacts
5b8e97287e
Convert TimelineTableViewController to use DiffableTimelineLikeTableViewController
2021-06-20 22:27:38 -04:00
Shadowfacts
ffe6450b26
Xcode recommendations, use AnyObject instead of class in protocol requirements
2021-05-22 13:44:58 -04:00
Shadowfacts
edd89450aa
Fail gracefully when fetching statuses in timeline controller
2021-04-04 14:43:51 -04:00
Shadowfacts
2e88b266d9
Prefetch on a background queue to avoid blocking main queue with
...
CoreData lookups
2021-01-18 14:29:32 -05:00
Shadowfacts
27b39b79e6
Fix refreshes after no-result refresh not working
...
Fixes #117
2021-01-13 00:16:33 -05:00
Shadowfacts
30297c2390
Add multi-window drag and drop to all the things
2020-12-14 18:44:48 -05:00
Shadowfacts
522c9b2b03
Add multi-window support and auxiliary windows
2020-12-13 22:37:37 -05:00
Shadowfacts
dfad8740eb
Extract common functionality into TimelineLikeTableViewController
2020-11-15 15:48:49 -05:00
Shadowfacts
9e15a84006
Add refresh key command
2020-11-14 11:22:47 -05:00
Shadowfacts
59c00b01dc
Fix not being able to compile for Catalyst
2020-11-14 10:45:27 -05:00
Shadowfacts
89b35fab6d
Move pruning of offscreen rows to when the VC disappears, instead of
...
during scrolling
Prevents race when removing and adding cells in the willDisplay table
view delegate method.
2020-10-26 22:55:58 -04:00
Shadowfacts
911e66a159
Allow more browsing of instance public timelines
...
Closes #74
2020-09-13 15:51:08 -04:00
Shadowfacts
9b04b75949
Prevent potential race condition when loading additional statuses
2020-08-16 10:29:31 -04:00
Shadowfacts
79b23127e9
Fix crash on refreshing
2020-08-15 14:15:38 -04:00
Shadowfacts
794594805c
Prevent needlessly prefetching non-image attachments
2020-07-06 00:00:55 -04:00
Shadowfacts
db30471011
Fix not being able to refresh timelines
2020-07-05 16:30:16 -04:00
Shadowfacts
056346cee9
Add reply indicator to statuses in timelines
2020-06-16 23:06:36 -04:00
Shadowfacts
36326e4469
Make network requests in viewWillAppear instead of viewDidLoad
2020-06-15 19:41:51 -04:00
Shadowfacts
35a510e8ed
Add cache reset button to Advanced Preferences
2020-05-13 18:58:11 -04:00
Shadowfacts
cd78287a87
Fix crash when viewing instance public timelines
...
Use a CoreData in-memory store for public timelines.
2020-05-11 17:57:50 -04:00
Shadowfacts
98529ca5af
Remove notifications from the bottom when scrolling up notifications list
2020-05-10 12:56:03 -04:00
Shadowfacts
6d8c5f632c
Fix scroll-to-top sometimes not scrolling all the way to the top
2020-05-10 12:56:01 -04:00
Shadowfacts
ed37b16463
Start adding CoreData-based "reference" counting for statuses
...
Prune old statuses that aren't likely to be shown again when scrolling
in timeline table view
2020-04-12 23:08:33 -04:00
Shadowfacts
2c8ba878b7
Start converting UI to use CoreData backed objects instead of API
...
objects directly
2020-04-12 12:54:27 -04:00
Shadowfacts
20c602f911
Disable row insertion animations
2020-01-26 18:23:18 -05:00
Shadowfacts
26c99a1a35
Improve scroll perform when loading new rows into table views
...
Instead of reloading the whole table view, only insert the rows for
statuses/notifications that were added.
2020-01-25 11:11:48 -05:00
Shadowfacts
6757031dcb
Hide context menus and swipe actions on instance public timelines
2020-01-25 10:44:31 -05:00
Shadowfacts
81256b7a96
Only show local posts on public instance timelines
2020-01-25 10:37:22 -05:00
Shadowfacts
d6ae51c02f
Improve ImageCache loading
...
Keep track of the number of requests and only cancel the underlying
URLSessionTask if there are no concrete requsts remaining.
Closes #81
2020-01-25 10:30:04 -05:00
Shadowfacts
ff97b0f76d
Change saved hashtags/instances to be per-account
...
See #16
2020-01-20 11:48:47 -05:00
Shadowfacts
26f1aafa15
Unify SavedHashtagsManager and SavedInstancesManager
2020-01-20 11:20:39 -05:00
Shadowfacts
c99a724bf3
Fix instance public timelines crashing
...
The instance timeline controller needs to store a strong reference to
the instance-specific MastodonController since the timeline VC only
holds a weak reference, and unlike normal screens, the scene session
doesn't hold onto the MastodonController for other instances.
2020-01-20 11:18:55 -05:00
Shadowfacts
32e89f2c16
Fix retain cycles with TuskerNavigationDelegate
...
TuskerNavigationDelegate is now class-bound and only weak references to
it are stored.
2020-01-19 23:02:07 -05:00
Shadowfacts
6421d4dc12
Merge branch 'master' into multiple-accounts
2020-01-18 18:56:36 -05:00
Shadowfacts
db4312ee34
Fix refreshing multiple times with no new data not working
...
When the requested range has no results, no pagination data is returned,
so the existing `newer` request range is replaced with nil. As there
was no new data, the existing request range is still correct and should
not be replaced.
Fixes #75
2020-01-07 21:54:19 -05:00
Shadowfacts
3928b2e88a
Store an array of logged-in accounts internally, get the active
...
MastodonController from the current UIScene
See #16
2020-01-07 21:29:15 -05:00
Shadowfacts
0255483f97
Make MastodonCache specific to each API controller
...
See #16
2020-01-05 19:54:28 -05:00
Shadowfacts
e3be424f5a
Fix instance public timelines not loading
2020-01-05 19:45:12 -05:00
Shadowfacts
2bdcb9b7f8
Replace global shared MastodonController instance with (mostly)
...
dependency injection
The places still using the .shared property are cases where there is no
view controller from which to (easily) get the appropriate instance,
such as user activity and X-Callback-URL handling. These uses will need
to be revisited once there are multiple MastodonControllers.
See #16
2020-01-05 15:25:07 -05:00
Shadowfacts
a18bcac8b8
Pachyderm: Change Client request methods to be static, like all other
...
models
Tusker: Add run method to MastodonController and no-longer expose API
client object
2020-01-05 14:00:39 -05:00
Shadowfacts
c31916d67e
Remove references to old images
2020-01-04 23:04:45 -05:00
Shadowfacts
377b5f5c85
Add ability to save and view instance public timelines
2019-12-19 22:55:41 -05:00
Shadowfacts
afc2bfcf6b
Add list editing
2019-12-17 22:56:53 -05:00
Shadowfacts
b47b08fa95
Store status collapse state in containing view controller
...
Also, copy the state between screens, so e.g. expanding a status in the
timeline and then opening that conversation already has that status
expanded.
This intentionally doesn't store the sensitive attachment visibility
state, since showing text when not necessary is less dangerous than for
images. (Possibly a preference for this in the future?)
Closes #55
2019-11-28 18:36:58 -05:00
Shadowfacts
24a1e7ceb9
Unify most of TimelineStatus and ConverastionMainStatus cell code
...
Closes #54
2019-11-19 12:08:11 -05:00
Shadowfacts
32d6756762
Add NSUserActivity's for timelines
2019-09-15 21:15:40 -04:00
Shadowfacts
88344c67e8
Merge timeline tabs
...
Closes #46
2019-09-14 15:59:32 -04:00
Shadowfacts
befcc18e4d
Collapse statuses with content warnings
...
Closes #11
2019-09-09 18:40:23 -04:00
Shadowfacts
84cfa923ca
Use Notification for updating view appearance on preferences change
2019-08-02 18:05:47 -06:00
Shadowfacts
199f95c465
Update cells when statuses/accounts change from other sources
2019-08-02 17:40:32 -06:00
Shadowfacts
d9b21a0196
Represent timelines internally as segments
...
Primarily in preparation for timeline position persistence and split
timelines
2019-07-31 17:42:19 -06:00
Shadowfacts
940ba6d6cb
Fix swipe actions on iOS 13
2019-06-13 19:31:36 -07:00
Shadowfacts
9d4782c63c
Add SF Symbols icons
2019-06-11 10:21:22 -07:00
Shadowfacts
a89fb56a60
Add support for iOS 13 previewing and actions
2019-06-04 17:04:37 -04:00
Shadowfacts
b3b9d566b7
iOS 13 Dark Mode Support
2019-06-04 13:31:05 -04:00
Shadowfacts
7f3128c958
Add prefetching for images in table views
2019-02-09 21:15:15 -05:00
Shadowfacts
55ed2f5d26
Get rid of AppRouter
2019-01-19 14:31:31 -05:00
Shadowfacts
fe85e3c1d6
Redo app navigation/tab bar
2019-01-05 12:59:55 -05:00
Shadowfacts
e3d27e0720
Add undo scroll-to-top
2018-11-10 11:48:09 -05:00
Shadowfacts
7e8f22c471
Refactor view controller creation/navigation into AppRouter
2018-10-20 22:07:04 -04:00
Shadowfacts
35de20fe40
Cleanup
2018-10-20 15:38:17 -04:00
Shadowfacts
eb9e1276df
Replace most storyboards with XIBs
2018-10-20 12:13:41 -04:00
Shadowfacts
0b6459a806
Add 3d touch peek/pop navigation
2018-10-11 21:52:41 -04:00
Shadowfacts
225c7e30fc
Remove MastodonController.shared
2018-10-02 19:31:00 -04:00
Shadowfacts
05e747a6f4
Add my account tab
2018-10-02 19:23:50 -04:00
Shadowfacts
adffe41c95
Add tapping hashtags to show tag timeline
2018-09-30 21:28:22 -04:00
Shadowfacts
a10b990073
Cache accounts
2018-09-18 12:59:07 -04:00
Shadowfacts
a6d23d12eb
Add shared status cache
2018-09-17 21:57:46 -04:00
Shadowfacts
a5579ce0e3
Change client requests to match others
2018-09-17 20:58:05 -04:00
Shadowfacts
6ec0ae5489
Refactor swipe actions into TableViewSwipeActionProvider
2018-09-15 13:11:58 -04:00
Shadowfacts
4c9be91162
More swipe actions
2018-09-15 12:39:50 -04:00
Shadowfacts
22dfec0483
Start work on swipe actions
2018-09-15 10:56:27 -04:00
Shadowfacts
1119a861d8
Replace MastodonKit with Pachyderm
2018-09-11 10:52:21 -04:00
Shadowfacts
d4a451fadb
Favorites and reblogs
2018-09-08 21:35:40 -04:00
Shadowfacts
cd5d0c4a95
Change how view controller delegate extensions work
2018-09-03 18:46:20 -04:00
Shadowfacts
bd1f8fa20a
Reorganize sources
2018-09-03 17:10:26 -04:00