Commit Graph

143 Commits

Author SHA1 Message Date
Shadowfacts 02461ad46c Support local only posts on Hometown
Closes #130
2022-01-23 23:45:46 -05:00
Shadowfacts 072e68e97b Add nodeinfo request and InstanceFeatures 2022-01-23 23:26:49 -05:00
Shadowfacts 51cb7c3edf Store local only post data 2022-01-23 10:57:32 -05:00
Shadowfacts 5a914ea5a3 Don't show Mute action when not applicable to status 2021-11-22 23:23:19 -05:00
Shadowfacts f5e9f71586 Use link replacement length from instance config if available 2021-11-11 13:44:24 -05:00
Shadowfacts 4d52ac4d34
Support new Mastodon instance configuration 2021-09-12 16:32:23 -04:00
Shadowfacts 9026f487ec Convert notifications to use DiffableTimelineLikeTableViewController 2021-08-15 19:25:29 -04:00
Shadowfacts 8386e9d3c6
Fix crash when decoding responses from Mastodon 3.4.0rc1 due to
differing date formats
2021-05-09 21:49:16 -04:00
Shadowfacts 005001b081
Add authoring polls
Closes #48
2021-05-03 23:12:59 -04:00
Shadowfacts 698b045f86
Add poll finished notifications 2021-04-28 21:47:38 -04:00
Shadowfacts 1c36dfcc5f
Add displaying and voting on polls in statuses 2021-04-28 19:00:17 -04:00
Shadowfacts bbb8707cb7 Add Profile Directory 2021-02-07 19:39:22 -05:00
Shadowfacts 75d26e613b
Add account switching animation 2020-11-11 15:28:17 -05:00
Shadowfacts 904ff4eecf
Fix crash when decoding emojis with spaces in URLs 2020-11-11 12:45:13 -05:00
Shadowfacts eb4e6e32f7
Add Grayscale Images preference 2020-11-01 13:59:58 -05:00
Shadowfacts 93828830a9
Fix logging in to PixelFed instances
See #68
2020-10-25 23:07:41 -04:00
Shadowfacts 39b244384b
Show link cards on statuses 2020-10-25 16:05:28 -04:00
Shadowfacts 1a4517c43a
Cache account relationships in CoreData 2020-10-12 18:20:57 -04:00
Shadowfacts 2cfc0cf28a
Add Compose screen mention, hashtag, emoji completion
Closes #10
2020-10-11 22:14:45 -04:00
Shadowfacts 2c1ba7926e
Support JSON request bodies 2020-09-14 23:25:26 -04:00
Shadowfacts 9534f19262
Show BlurHash previews of attachments 2020-09-12 12:01:08 -04:00
Shadowfacts 7c4bbfd730
Improve compose posting error messages 2020-09-09 18:33:59 -04:00
Shadowfacts 4c82b1a341
Rewrite Compose screen in SwiftUI 2020-08-31 19:28:50 -04:00
Shadowfacts f3d01c47c3 Merge branch 'develop-xcode-12' into ios-14 2020-07-04 11:21:00 -04:00
Shadowfacts caab5e357a Fix crash loading audio attachment uploaded on Mastodon
Closes #104
2020-07-03 22:13:49 -04:00
Shadowfacts 6cf6db6a8d Add sidebar on iPadOS 14 2020-06-24 16:40:45 -04:00
Shadowfacts d4bf289716
Fx more actions not workign 2020-05-14 22:43:37 -04:00
Shadowfacts c42a48ee12
Fix header images not displaying 2020-05-12 22:05:57 -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 90bc9b91de
Add AccountProtocol and StatusProtocol
Provides a single interfaces for API and CoreData statuses and accounts
2020-05-06 18:40:12 -04:00
Shadowfacts 49d00bb1b0
Fix swipe actions not showing up 2020-04-27 19:32:16 -04:00
Shadowfacts ee5e049355
Use CoreData for bookmarks and search results 2020-04-27 19:25:41 -04:00
Shadowfacts f53474ac90
Use CoreData for notifications screen 2020-04-27 19:20:09 -04:00
Shadowfacts 030bee1948
Convert conversation VC to use CoreData models 2020-04-13 22:51:15 -04:00
Shadowfacts a0e95d4577
Remove unnecessary attachment decoding code
For some reason, creating a URL from a string decoded from the container
was producing URL objects that could not be round-tripped through
PropertyListEncoder/Decoder. Decoding a URL directly from the container
works correctly.
2020-04-12 12:52:51 -04:00
Shadowfacts 7deb4fc5b4
Add LazilyDecoding for CoreData embedded objects 2020-04-11 15:35:00 -04:00
Shadowfacts e3cc0df283
Remove unnecessary URL escaping 2020-03-15 21:09:11 -04:00
Shadowfacts 1b19a13b05
Decode status cards 2020-03-04 21:14:58 -05:00
Shadowfacts c7746d3084
Add unknown notification fallback
Closes #90
2020-03-02 19:44:10 -05:00
Shadowfacts 387623a309
Remove old code 2020-02-28 19:24:14 -05:00
Shadowfacts 70bca052c4
Tweak notification grouping
Notifications that are of the same type but are separated by a groupable
notification of a different type are now considered groupable. For
example:

favorite 1 (status 1)
reblog 1 (status 1)
favorite 2 (status 1)
reblog 2 (status 1)
mention 1
reblog 3 (status 1)

will be grouped into:

favorite 1, 2 (status 1)
reblog 1, 2 (status 1)
mention 1
reblog 3 (status 1)
2020-02-28 19:21:39 -05:00
Shadowfacts 81256b7a96
Only show local posts on public instance timelines 2020-01-25 10:37:22 -05:00
Shadowfacts 12b6623113
Merge branch 'master' into multiple-accounts 2020-01-20 12:16:11 -05:00
Shadowfacts cece8825ad
Fix decoding Account.moved on Mastodon 2020-01-20 12:10:10 -05:00
Shadowfacts f9ffb240ef
Fix decoding Hashtag.History on Mastodon 2020-01-20 12:07:30 -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 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 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 787dc9f24f
Fix crash decoding statuses sent from certain applications
If an application provides its URL as an empty string, decoding it would
cause throw an error because Foundation's URL class does not accept
empty strings. Instead, during parsing, consume the invalid URL and
replace it with a `nil` app URL.
2020-01-04 23:13:55 -05:00
Shadowfacts ad09e36907
Show follow requsts in notifications w/ accept/reject buttons
Closes #64
2020-01-04 23:13:23 -05:00
Shadowfacts 377b5f5c85
Add ability to save and view instance public timelines 2019-12-19 22:55:41 -05:00
Shadowfacts ae6a0513e4
Add local saved hashtags
Closes #66
2019-12-19 21:20:29 -05:00
Shadowfacts 6831ab5385
Pachyderm: Fix request bodies form parameters not being percent-escaped
Fixes #65
2019-12-18 21:59:08 -05:00
Shadowfacts afc2bfcf6b
Add list editing 2019-12-17 22:56:53 -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 4c0607af79
Add (un)bookmarking to status more options 2019-12-14 12:40:50 -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 5ebf651f76
Revert "Use correct ISO 8601 date decoder"
This reverts commit 5da357ee9c.
2019-09-26 18:39:48 -04:00
Shadowfacts 5da357ee9c
Use correct ISO 8601 date decoder 2019-09-24 14:53:35 -04:00
Shadowfacts b81e4d0a9e
Tweaks to support decoding Pixelfed instance response 2019-09-22 18:57:33 -04:00
Shadowfacts 9502944e62
Revert "Fix pagination links not being parsed correctly for some URLs"
This reverts commit 60aa6eca36.
2019-09-19 18:57:35 -04:00
Shadowfacts d0c49144c4 Add notification dismissal swipe action
#49
2019-09-16 16:09:13 -04:00
Shadowfacts 32d6756762 Add NSUserActivity's for timelines 2019-09-15 21:15:40 -04:00
Shadowfacts df8e0dedd4
Add instance selector 2019-09-15 15:01:35 -04:00
Shadowfacts fc2aea04c3
Add hashtags to search 2019-09-14 21:24:43 -04:00
Shadowfacts e121dd37b8
Add Search tab
Closes #31
2019-09-14 20:47:08 -04:00
Shadowfacts 60aa6eca36
Fix pagination links not being parsed correctly for some URLs
Fixes an issue where Mentions notifications wouldn't load past the first page.

URLComponents(string:) fails when the string contains some characters, such as [ or ]
URL(string:) and then URLComponents(url:resolvingAgainstBaseURL:) does not fail
See FB7271340
2019-09-14 15:32:20 -04:00
Shadowfacts 8bb6e9403d Add toggle to control whether Notifications tab shows all or just mentions
Closes #45
2019-09-14 12:04:20 -04:00
Shadowfacts d52875cf25 Allow Pleroma instances to exceed Mastodon attachment limits
Closes #35
2019-09-11 16:57:42 -04:00
Shadowfacts 1618313742
Fav/reblog notification grouping
#28
2019-09-05 17:45:45 -04:00
Shadowfacts e53b14c729
Reorganize Pachyderm code 2019-09-05 14:40:35 -04:00
Shadowfacts d3848b356b
Remove old custom Identifiable type 2019-09-05 14:40:06 -04: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 8a45837918
Fix loading attachments from Pleroma
Unlike Mastodon, Pleroma includes a URL query component in attachment URLs.
The URL(lenient:) initializer did not count query parameters (e.g. '?') as valid URL characters
and incorrectly escaped them resulting in image requests that 404'd.
2019-06-13 23:48:21 -07:00
Shadowfacts d94a0050b7
Show fields in profiles
Closes #19
2019-04-01 19:34:50 -04:00
Shadowfacts 37f6a0b4c8
Add custom emojis
Closes #6
2019-02-09 21:15:15 -05:00
Shadowfacts 882f03a94b
Better lenient URL parsing 2019-01-14 13:45:33 -05:00
Shadowfacts 30cd8991e8
Pachyderm: Add StatusContentType 2019-01-13 19:46:51 -05:00
Shadowfacts db68b9dee0
Fix crash when decoding status attachments with non-percent encoded spaces in URLs 2019-01-13 19:45:57 -05:00
Shadowfacts 3da1a7badd
Add character counter 2018-09-29 22:20:17 -04:00
Shadowfacts d1b45ddf7b
Pachyderm: Add CharacterCounter 2018-09-29 21:57:10 -04:00
Shadowfacts 3ff80b238e
Merge branch 'master' of github.com:shadowfacts/Tusker 2018-09-24 08:51:20 -04:00
Shadowfacts d345cd5372
Add following/unfollowing accounts 2018-09-24 08:49:39 -04:00
Shadowfacts 68300f930b
Cleanup silent XCB actions code 2018-09-23 21:10:45 -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 bf09b80a5a
Change Pachyderm models to be immutable 2018-09-17 19:33:44 -04:00
Shadowfacts 22dfec0483
Start work on swipe actions 2018-09-15 10:56:27 -04:00
Shadowfacts d46b61595e
Pachyderm: Fix pagination 2018-09-14 11:35:00 -04:00
Shadowfacts 17d072c5b2
Fix upload media 2018-09-11 13:45:48 -04:00
Shadowfacts 1119a861d8
Replace MastodonKit with Pachyderm 2018-09-11 10:52:21 -04:00