Shadowfacts
804636dcbb
Don't show warning when loading draft on top of for empty statuses
...
Closes #87
2020-02-28 19:50:04 -05:00
Shadowfacts
5bed38f661
Show gallery instead of large image when previewing status attachments
...
Fixes crash when attempting to preview audio/video attachments
2020-02-28 19:47:38 -05:00
Shadowfacts
56de0ab359
Update profile header to always reflect most recently cached data
2020-02-28 19:47:31 -05:00
Shadowfacts
387623a309
Remove old code
2020-02-28 19:24:14 -05:00
Shadowfacts
d9bae42f81
Prevent empty drafts from being saved
2020-02-22 15:43:17 -05:00
Shadowfacts
a814ee37cc
Update SheetController
...
Fixes image picker losing velocity during dismiss animation
2020-02-22 15:29:42 -05:00
Shadowfacts
1a8e84f5fa
Reorganize behavior preferences
2020-02-22 13:19:31 -05:00
Shadowfacts
1f56823a17
Add preference to disable gif animation in timelines
2020-02-22 13:12:28 -05:00
Shadowfacts
65d57df949
Add interacting pushing to navigation controllers
...
Allows people to move forward in the navigation stack after popping
(making popping a non-destructive action).
2020-02-19 22:07:12 -05:00
Shadowfacts
8be7480755
Change bundle identifier and signing account
2020-02-08 17:54:04 -05:00
Shadowfacts
d7953470e3
Add rudimentary support for audio attachments
...
Closes #7
2020-01-26 18:50:45 -05:00
Shadowfacts
8c7bebcce8
Fix large image controls being positioned incorrectly on notched-devices
...
when opening via a context menu preview.
The constraints for the top controls were being set only once, but when
showing a large image in the contxt menu preview window, the top inset
safe area is 0 and didn't become 44 (the value for notched devices)
until the preview was expanded.
Fixes #86
2020-01-26 18:28:46 -05:00
Shadowfacts
20c602f911
Disable row insertion animations
2020-01-26 18:23:18 -05:00
Shadowfacts
f2e08e96f3
Improve large image/gallery animation handling when images aren't loaded
2020-01-25 22:29:12 -05:00
Shadowfacts
d1913d7e69
Change white background when loading attachment to black
2020-01-25 22:09:00 -05:00
Shadowfacts
f9a62ec3f3
Fix crash when tapping unloaded image attachment
2020-01-25 22:03:21 -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
7c207efa07
Tweak More swipe action to be in-line with system appearance
2020-01-25 10:44:12 -05:00
Shadowfacts
81256b7a96
Only show local posts on public instance timelines
2020-01-25 10:37:22 -05:00
Shadowfacts
5a6c12c5a7
Fix missing context menu actions on follow notifications for only one person
2020-01-25 10:30:04 -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
62408fc4bd
Merge branch 'master' into multiple-accounts
2020-01-22 22:30:30 -05:00
Shadowfacts
1d169bec67
Fix statuses showing incorrect timestamps when switching accounts
2020-01-22 22:30:05 -05:00
Shadowfacts
4abda02b76
Only show drafts from current account
2020-01-22 22:27:58 -05:00
Shadowfacts
e9db3fa0ac
Collapse whitespace according to CSS spec after converting HTML to
...
attributed string
Fixes #27
2020-01-21 21:28:14 -05:00
Shadowfacts
59277ec64f
Change drafts to store which accounts was used to create them
...
When loading a draft:
If the draft was created from a different account than the current one:
If the draft was in reply to a status, don't allow it to be loaded.
If the draft was not in reply to a status, prompt the user whether
or not to load the draft.
If the draft was in reply to a different status than the current one:
Prompt the user whether or not to load the draft.
Otherwise, load the draft.
Draft replies created from other accounts can't be loaded from different
accounts because the status for inReplyToID of the draft will have a
different instance-local ID if the two accounts are on different
instances.
See #16
2020-01-20 15:26:25 -05:00
Shadowfacts
08086f1b18
Fix compose reply view missing MastodonController instance
2020-01-20 15:25:23 -05:00
Shadowfacts
12b6623113
Merge branch 'master' into multiple-accounts
2020-01-20 12:16:11 -05:00
Shadowfacts
79f44c9b58
Change recommended instance selector to store categories as strings
...
instead of enum
Additional categories can be added, which would cause a crash when
decoding.
As the category isn't used for anything, storing it as an enum value is
not necessary.
2020-01-20 11:56:43 -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
f7421d83ef
Add preference to mention reblogger when replying to a reblogged status
2020-01-19 23:48:36 -05:00
Shadowfacts
7934bc15ac
Split Composing prefs into Composing and Replying
2020-01-19 23:23:31 -05:00
Shadowfacts
3aa5aa1bc0
Fix weird crashes when switching accounts
2020-01-19 23:16:36 -05:00
Shadowfacts
ee252c02e9
Fix retain cycle in timeline cell cache observers
...
The use an unowned reference to self because when the cell is deinit'd,
the Combine observers will be cancelled.
2020-01-19 23:14:51 -05:00
Shadowfacts
2f630f2f8f
Fix retain cycle between MastodonController/MastodonCache
...
The cache should only store a weak reference to the controller, so that
when the controller is deinit'd the cache is as well.
2020-01-19 23:14:13 -05:00
Shadowfacts
8eb6f6f573
Fix retain cycle in timestamp updating code
...
The timestamp update work item shouldn't retain a reference to the cell.
It can be unowned because when the cell is deinit'd, the work item will
be cancelled.
2020-01-19 23:10:52 -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
c45dd99088
Clean up account switching code
2020-01-19 11:52:06 -05:00
Shadowfacts
863867c522
Add logging in to additional accounts and switching accounts via Preferences
...
See #16
2020-01-18 22:45:06 -05:00
Shadowfacts
08c84688cf
Change recommended instance selector to store categories as strings
...
instead of enum
Additional categories can be added, which would cause a crash when
decoding.
As the category isn't used for anything, storing it as an enum value is
not necessary.
2020-01-18 22:42:20 -05:00
Shadowfacts
66fe861442
Merge branch 'master' into multiple-accounts
2020-01-18 19:33:01 -05:00
Shadowfacts
11f9642cba
Actually fix link interaction
2020-01-18 19:32:39 -05:00
Shadowfacts
6421d4dc12
Merge branch 'master' into multiple-accounts
2020-01-18 18:56:36 -05:00
Shadowfacts
38085eee37
Fix not being able to collapse/expand statuses
...
Instead of simply returning the content text view from hitTest(_:with:),
we need to call the super method so that the system still performs its
own checks.
2020-01-18 18:38:00 -05:00
Shadowfacts
e19364abdf
Fix content text view text color in dark mode
2020-01-18 18:21:01 -05:00
Shadowfacts
fa358a3e97
Remove xtra padding from content text view
2020-01-18 16:27:18 -05:00
Shadowfacts
5d86b35672
Enable text selection in conversation main status
2020-01-18 16:18:32 -05:00
Shadowfacts
784c71342d
Fix preformatted text not being displayed correctly
2020-01-18 16:05:44 -05:00
Shadowfacts
b5a41badcc
Replace content labels with text views
...
UITextView uses TextKit internally, unlike UILabel, so no additional
code is needed to keep the TextKit and view representations of the text
in sync since they are one and the same. This means that detecting which
character was tapped in a content text view is much more accurate, which
means link handling is substantially imrpoved.
Fixes #20
2020-01-18 16:05:00 -05:00
Shadowfacts
23de131290
Add preference to require attachment descriptions before posting
...
Closes #76
2020-01-17 21:55:21 -05:00
Shadowfacts
8178a1f339
Fix crash when tapping more actions buttons on iPad
...
Fixes #78
2020-01-17 21:29:53 -05:00
Shadowfacts
53702a8324
Add pinned status refreshing
...
Closes #82
2020-01-17 21:13:17 -05:00
Shadowfacts
bb86e1aafd
Allow rotaion in the attachment gallery
...
Closes #77
2020-01-07 22:19:38 -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
8dba15ca17
Switch to scene-based lifecycle events
...
See #16
2020-01-07 18:39:19 -05:00
Shadowfacts
ec2062ad42
Fix not being able to sign into Mastodon instances not in the
...
recommended list
2020-01-06 22:14:17 -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
ad09e36907
Show follow requsts in notifications w/ accept/reject buttons
...
Closes #64
2020-01-04 23:13:23 -05:00
Shadowfacts
c31916d67e
Remove references to old images
2020-01-04 23:04:45 -05:00
Shadowfacts
05cc3fd6d9
Add pinning/unpinning statuses
...
Closes #69
2020-01-04 19:31:35 -05:00
Shadowfacts
b70256c525
Remove old icons
2020-01-04 19:22:16 -05:00
Shadowfacts
3ecbb1895c
Replace GMImagePicker with custom asset picker based on SheetController
...
Fixes #23
Closes #50
2020-01-04 16:25:15 -05:00
Shadowfacts
b2956b6118
Convert HEIC images to JPEG before upload
...
Fixes #60
2019-12-31 16:41:56 -05:00
Shadowfacts
6ef643e374
Fix custom instances not showing up when typed into the instance
...
selector search field
With Combine Cancellables are automatically cancelled on deinit, so the
instance selector needs to hold on to a reference to pipeline
cancellable for its lifetime, otherwise it's cancelled immediately after
creation.
Closes #59
2019-12-31 11:45:34 -05:00
Shadowfacts
18c3c3c434
More UI testing setup and API mocks
2019-12-31 11:40:56 -05:00
Shadowfacts
b9e359ba83
Fix custom instance domains not being parsed correctly
2019-12-31 00:13:09 -05:00
Shadowfacts
edb86fc503
Add theme toggle separate from system appearance
...
Closes #67
2019-12-31 00:12:18 -05:00
Shadowfacts
49f58cf955
Initial UI testing setup
2019-12-30 16:00:14 -05:00
Shadowfacts
377b5f5c85
Add ability to save and view instance public timelines
2019-12-19 22:55:41 -05:00
Shadowfacts
f92a2acc97
Show list edit screen immediately upon creation
2019-12-19 21:37:47 -05:00
Shadowfacts
ae6a0513e4
Add local saved hashtags
...
Closes #66
2019-12-19 21:20:29 -05:00
Shadowfacts
afc2bfcf6b
Add list editing
2019-12-17 22:56:53 -05:00
Shadowfacts
76a7c5bdf8
Add list deletion
2019-12-17 21:40:08 -05:00
Shadowfacts
19f15d8fa9
Add list creation
2019-12-17 21:18:32 -05:00
Shadowfacts
270cbc2a6c
Add lists to Explore tab
...
Closes #63
2019-12-17 21:10:30 -05:00
Shadowfacts
036791bd39
Replace Search tab with Explore tab
...
- Search controller (functionally the same, presents results on top of
explore menu)
- Add bookmarks screen
See #63
2019-12-17 00:22:25 -05:00
Shadowfacts
382decd7da
Fix search section titles
2019-12-16 22:23:12 -05:00
Shadowfacts
05d79d5d03
Use same nav delegate more options for context menu share sheet
2019-12-14 13:36:05 -05:00
Shadowfacts
4c0607af79
Add (un)bookmarking to status more options
2019-12-14 12:40:50 -05:00
Shadowfacts
eb6cfba9aa
Fix tablel view cells being re-selected on aborted nav swipe back
2019-12-14 11:59:31 -05:00
Shadowfacts
c26657bafa
Use synchronized MastodonCache to prevent race condition crashes
2019-12-14 11:31:14 -05:00
Shadowfacts
0c78af7d4f
Store in reply to status in drafts
2019-12-14 11:30:35 -05:00
Shadowfacts
681cdb8bb5
Fix automatically created drafts not being deleted after successful post
...
The newly created draft needs to be set to the compose VC's currentDraft
so that it gets removed after the status is successfully created.
Also, save the drafts to disk after saving a draft so that crashes don't
cause draft loss.
2019-11-28 22:26:37 -05:00
Shadowfacts
06442b5629
Fix controls in large image/gallery not hiding/showing on zoom
...
Closes #58
2019-11-28 21:51:24 -05:00
Shadowfacts
d5232c0b03
Fix content warning label always showing in conversation main status
...
When the conversation was opened, the status state of the main status
would already be known, so the CW label wasn't getting updated or
hidden/shown.
2019-11-28 21:22:13 -05:00
Shadowfacts
7140590ccf
Fix covnerstaion expand/collapse button not working on all statuses
2019-11-28 18:58:47 -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
8fb3b211b6
Add button to conversation table view to collapse/expand all posts
...
This needs a refactor once StatusTableViewCell and
ConversationMainStatusTableViewCell are merged. See #54
2019-11-18 22:28:47 -05:00
Shadowfacts
da6ff67a51
Add notification dismissal context menu actions
...
Closes #49
This is a workaround for UIKit's built-in suggested context menu actions
not working as expected, and should be replaced with the system thing if
it becomes possible.
2019-11-17 18:49:48 -05:00
Shadowfacts
a92d9ddc6f
Automatically collapse long (> 500 chars) statuses
...
Closes #12
2019-11-17 18:36:19 -05:00
Shadowfacts
eb8afdaab8
Change how pin icon is displayed on statuses
2019-11-17 15:28:58 -05:00
Shadowfacts
d4fa2f36e3
Remove send message from profile share menu
2019-11-17 15:19:20 -05:00