86 Commits

Author SHA1 Message Date
8a528936b8
Fix crash when tapping My Profile tab too quickly after app launch 2020-10-19 18:41:38 -04:00
5414f2329c
Fix race condition causing My Profile tab bar image to not be set 2020-10-14 19:34:30 -04:00
fd0054addf
Correctly round corners of My Profile tab icon 2020-09-21 18:42:06 -04:00
9d9ea565f1
Fix crash opening Preferences with deleted accounts 2020-09-16 17:52:00 -04:00
911e66a159
Allow more browsing of instance public timelines
Closes #74
2020-09-13 15:51:08 -04:00
ab4bcfa50f
Fix profile screen title not being set 2020-09-13 15:34:45 -04:00
f0582739cc
Re-add Compose button to Profile screen
Add menu with Direct Message option
2020-08-31 21:39:36 -04:00
eef9b96a1a
Fix crash when showing profile for uncached account 2020-08-15 18:00:18 -04:00
794594805c Prevent needlessly prefetching non-image attachments 2020-07-06 00:00:55 -04:00
2825345c7e Add switching between Posts, Posts and Replies, and Media pages of user profiles
Closes #103
2020-07-05 16:17:56 -04:00
b2c7735256 Fix Preferences button not appearing 2020-07-03 18:44:38 -04:00
864fd77ecc Sync active tab and navigation stack between split view/tab bar controllers 2020-06-29 22:21:03 -04:00
0fa87e9177 Prevent crash when displaying accounts with no pinned statuses 2020-06-23 22:21:50 -04:00
393a134648
Don't show Follow activity for user's own account 2020-06-19 23:00:59 -04:00
6e27399e10
Fix loading additional statuses on profiles not working
This was a regression introduced in
d27bddb2caf9e22bb7adad065f356aba13d5e542 which removed the didSet
handlers which called reloadData on the pinnedStatuses/timelineSegments
property without adding the appropriate insertRows calls where they were
modified.
2020-06-18 22:39:04 -04:00
d27bddb2ca Fix profile header image not showing up on first load
The issue occurred because the profile header would kick off a request
upon loading, then the profile table would request the initial set of
statuses shortly thereafter which would result in reloadData being called
which would cancel the request without removing the group, so the request
generated by the newly-reloaded header cell would attach a callback to
the cancelled request, resulting in the header image never displaying.
2020-06-15 22:34:42 -04:00
36326e4469
Make network requests in viewWillAppear instead of viewDidLoad 2020-06-15 19:41:51 -04:00
f2a8b91769
Provide metadata to UIActivityViewController
Closes #56
2020-05-14 22:43:56 -04:00
35a510e8ed
Add cache reset button to Advanced Preferences 2020-05-13 18:58:11 -04:00
82ad3b9fc4
Add reference counting for accounts
Closes #97
2020-05-11 22:03:17 -04:00
1e41c8fa17
Remove MastodonCache usgae from XCBActions 2020-05-06 23:05:15 -04:00
d6c506488b
Replace a bunch of MastodonCache uses with CoreData 2020-05-02 19:52:35 -04:00
fa1daa682f
Convert profile VC to use CoreData objects
Does not yet remove old statuses when scrolling up, like timeline VC
2020-04-13 22:51:21 -04:00
2c8ba878b7
Start converting UI to use CoreData backed objects instead of API
objects directly
2020-04-12 12:54:27 -04:00
2cebb6bd7d
Show custom emojis in display names (where possible) 2020-03-02 19:44:09 -05:00
53707593a6
Show custom emojis in display names (where possible) 2020-03-01 19:40:32 -05:00
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
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
863867c522
Add logging in to additional accounts and switching accounts via Preferences
See #16
2020-01-18 22:45:06 -05:00
6421d4dc12
Merge branch 'master' into multiple-accounts 2020-01-18 18:56:36 -05:00
8178a1f339
Fix crash when tapping more actions buttons on iPad
Fixes #78
2020-01-17 21:29:53 -05:00
53702a8324
Add pinned status refreshing
Closes #82
2020-01-17 21:13:17 -05:00
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
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
0255483f97
Make MastodonCache specific to each API controller
See #16
2020-01-05 19:54:28 -05:00
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
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
18c3c3c434
More UI testing setup and API mocks 2019-12-31 11:40:56 -05:00
05d79d5d03
Use same nav delegate more options for context menu share sheet 2019-12-14 13:36:05 -05:00
eb6cfba9aa
Fix tablel view cells being re-selected on aborted nav swipe back 2019-12-14 11:59:31 -05:00
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
24a1e7ceb9
Unify most of TimelineStatus and ConverastionMainStatus cell code
Closes #54
2019-11-19 12:08:11 -05:00
d4fa2f36e3
Remove send message from profile share menu 2019-11-17 15:19:20 -05:00
150adeb581
Use custom navigation controller for preferences to override
viewWillDisappear method and send preferences changed notification

Workaround for #36
2019-11-17 14:31:07 -05:00
c91a7baaa6
Show pinned posts on profiles
Closes #53
2019-11-17 11:14:33 -05:00
befcc18e4d
Collapse statuses with content warnings
Closes #11
2019-09-09 18:40:23 -04:00
ad0bbe0ab2
Remove old code 2019-09-05 14:04:05 -04:00
b60688f4b8
Show share sheet with custom activities instead of alert controller for account actions 2019-09-05 12:49:17 -04:00
e07bc4e51a
Fix crash when viewing profiles 2019-08-21 23:22:14 -04:00
abd73fbe3b
Use timeline segments for profile view controller 2019-08-02 18:23:45 -06:00