Commit graph

230 commits

Author SHA1 Message Date
Thomas Ricouard b75dd65ac4 Timeline only clear cache if previous value was .home 2023-02-27 06:23:03 +01:00
Thomas Ricouard f22671cc66 Fix jump to latest not working on home 2023-02-27 06:21:49 +01:00
Thomas Ricouard 8c4b286751 Timeline: Check for task cancellation before loading next page 2023-02-26 19:09:21 +01:00
Thomas Ricouard 347335f770 Move userMentioned outside of Status 2023-02-26 09:38:26 +01:00
Thomas Ricouard 83e4e74329 Swiftformat 2023-02-26 06:45:57 +01:00
Thomas Ricouard 93ee83c65d Timeline: Cleanup 2023-02-25 19:47:15 +01:00
Thomas Ricouard 151154b335 Timeline: Enable jump to latest + in place refresh for all other timeline types 2023-02-25 19:32:47 +01:00
Thomas Ricouard b036e90ce4 Simplify Timeline refresh 2023-02-25 10:10:27 +01:00
Thomas Durand 482d93a68d
Removed Boutique, using Bogeda directly (#1007)
* Removed Boutique, using Bogeda directly

* Updated about screen
2023-02-22 18:56:37 +01:00
Thomas Ricouard b259b6739e Swiftformat 2023-02-21 07:23:42 +01:00
Thomas Ricouard 1a7ef62fd6 Fix trending refresh 2023-02-19 21:37:22 +01:00
Thomas Ricouard 65e63c4586 Remove Sendable conformance on Client as it's not needed 2023-02-19 07:51:16 +01:00
Alex Grebenyuk a8459638e9
Add image prefetch to the timeline + resize close #931 (#930)
* Add image prefectch to the timeline

* Use preview url for post with multiple attachements

* Add image resize

* Prefetch link cards

---------

Co-authored-by: Thomas Ricouard <ricouard77@gmail.com>
2023-02-18 18:44:43 +01:00
Thomas Ricouard 7112e6515b Timeline: wrap datasource in an actor for safety and perforamances 2023-02-18 18:04:46 +01:00
Thomas Ricouard 9bc65d5563 Enable landscape on iOS 2023-02-18 07:42:35 +01:00
Thomas Ricouard ca4e80101f Swiftformat 2023-02-18 07:26:48 +01:00
Thomas Ricouard 9f894858ae Don't load new pages if the timeline changed 2023-02-16 07:28:52 +01:00
Thomas Ricouard 3843d18f2f Fix trending timeline resetting to first page 2023-02-16 07:22:26 +01:00
Thomas Ricouard d958d10036 Remove Client and RouterPath from StatusRowView env object 2023-02-15 08:46:14 +01:00
Thomas Ricouard eb6050a38f Swiftformat 2023-02-12 16:29:41 +01:00
Yusuke Arakawa dae7b85d3d
Timeline: restore the selected timeline at the next startup (#694)
* Timeline: restore the selected timeline at the next startup

Signed-off-by: Yusuke Arakawa <nekolaboratory@users.noreply.github.com>

* Rename: UserDefaultas label name

Signed-off-by: Yusuke Arakawa <nekolaboratory@users.noreply.github.com>

* Timeline: RawRepresentable of TimelineFilter

Signed-off-by: Yusuke Arakawa <nekolaboratory@users.noreply.github.com>

* Cleanup code

* Supports RemoteTimelineFilter

* Cleanup code

* Safe saves last viewed status

---------

Signed-off-by: Yusuke Arakawa <nekolaboratory@users.noreply.github.com>
Co-authored-by: Yusuke Arakawa <nekolaboratory@users.noreply.github.com>
2023-02-09 12:27:59 +01:00
Thomas Ricouard 013410a80e Faster / Cached ServerDate decoding 2023-02-09 09:12:44 +01:00
Sean Goldin 0c359f2b79
Add direct status highlighting (#720) 2023-02-08 18:47:09 +01:00
Thomas Ricouard eb5733a90b Handle Task Cancelling in the timeline 2023-02-08 18:46:09 +01:00
Thomas Ricouard 970305210b Bump cache to 600 posts 2023-02-08 08:48:18 +01:00
Thomas Ricouard 49791d2c86 Fix timeline cache caching something else than home Fix #710 2023-02-08 06:52:15 +01:00
Sean Goldin 90ec3d419c
Clean up HapticManager (#678)
* Check for haptic capabilities

* Make manager do most of work

* ABC enum

* Fix spelling 😊

* Small tweak
2023-02-06 17:53:27 +01:00
Thomas Ricouard 5f76a8057c Filter remote local timeline 2023-02-06 12:24:48 +01:00
Thomas Ricouard b0630ae9c3 Add more safety to scroll to 2023-02-05 08:13:38 +01:00
Thomas Ricouard f53cfd89fe Ensure all pages are loaded when resuming session 2023-02-05 07:44:05 +01:00
Thomas Ricouard 5afd2dc73c Add Jump to Latest to clear out cache and reload home timeline 2023-02-04 21:21:36 +01:00
Thomas Ricouard e96c1c5da7 Fix next page state 2023-02-04 20:37:22 +01:00
Thomas Ricouard 65ed2d871c Add settings for haptic feedbacks 2023-02-04 17:38:48 +01:00
Thomas Ricouard 6b285cdbcf Cleanup 2023-02-04 17:17:38 +01:00
Thomas Ricouard 427452db30 Don't update the timeline is the tab is not visible 2023-02-04 16:54:03 +01:00
Thomas Ricouard 8c7efb7df5 Add settings to clear the cache 2023-02-04 15:08:54 +01:00
Thomas Ricouard 288a0eac9f Save / Restore latest seen statuses 2023-02-04 14:42:10 +01:00
Thomas Ricouard b57df4a9d7 Scroll to latest pending post on button tap 2023-02-04 14:05:30 +01:00
Thomas Ricouard aae6b12666 Replace memory cache with Boutique SQLite cache 2023-02-04 12:33:28 +01:00
Thomas Ricouard 3c0ffdb1ae Prepare disk cache for Timeline 2023-02-04 12:17:16 +01:00
Thomas Ricouard 4104fdf4f5 Fix the crash once and for all by using Introspect 2023-02-03 16:24:09 +01:00
Thomas Ricouard eb80225bb0 Mitigate #623 2023-02-03 08:06:16 +01:00
Thomas Ricouard fcb7ddcbdb Fix crash when trying to cache an empty timeline 2023-02-02 21:21:07 +01:00
Thomas Ricouard e278eae144 Reset pending statuses when reaching top 2023-02-02 17:47:35 +01:00
Thomas Ricouard bb6910cd83 Centralize haptic feedbacks 2023-02-02 16:56:42 +01:00
Thomas Ricouard 262f7288ad Fix the crash while restoring position? 2023-02-02 16:38:19 +01:00
Sean Goldin 10946fef10
Timeline highlight mentions (#595)
* Introduce fetchPages

* Set up highlighting

* Implement highlighting stage 1

* Implement highlighting stage 2

* Implement highlighting.

* Fix merge

* Add protocol

* Remove debug prints
2023-02-02 06:39:03 +01:00
Gareth Simpson fdb402a065
Boost deduplicating (#524)
* Trying something with caching boosts

* Use an actual cache for caching

* Persist cache to documents folder

* Stray debugging variable

* Unpublish seen variable in the ViewModel

* Settings for deduplicating boosts.

* Changes from review / merge conflicts
2023-02-01 18:56:06 +01:00
Thomas Ricouard 43d975a27b Better caching 2023-02-01 13:41:28 +01:00
Thomas Ricouard ed80895fcd Cache streamed status 2023-02-01 13:28:04 +01:00
Thomas Ricouard 4e77669181 Swiftformat 2023-02-01 12:49:59 +01:00
Thomas Ricouard 383eb84e98 Fix import 2023-02-01 12:49:47 +01:00
Thomas Ricouard cdf45fa58c Refactor Timeline position management + add thin cache layer + fix crashes 2023-02-01 12:43:11 +01:00
Thomas Ricouard 9bf40b262f Various optimizations for the new timeline 2023-02-01 09:22:08 +01:00
Thomas Ricouard 2e850e9643 Bump to 1.3.2 + workaround List crash? 2023-01-31 19:43:07 +01:00
Thomas Ricouard ed0bfb7d94 Even better refresh / timeline position management 2023-01-31 17:43:06 +01:00
Thomas Ricouard dd4ca27a5b Remove bogus flag 2023-01-31 13:43:27 +01:00
Thomas Ricouard 62b26fdbb7 Timeline: Do nothing if no new statuses 2023-01-31 13:19:32 +01:00
Thomas Ricouard 52eff96ab4 Iron out timeline issues with the new behaviour 2023-01-31 12:17:35 +01:00
Thomas Ricouard c88ef750f0 Fix multiple timeline refresh on launch close #555 2023-01-31 12:17:03 +01:00
Thomas Ricouard 0695fd5733 Isolate pending statuses observer for smoother scrolling 2023-01-31 09:01:26 +01:00
Thomas Ricouard 0f98337a13 Remove test value 2023-01-31 08:20:20 +01:00
Thomas Ricouard d9b166339d Fixes for iPad layout 2023-01-31 08:16:36 +01:00
Thomas Ricouard 1a351eaa7c Smoother scrolling up in the Timeline 2023-01-31 08:04:35 +01:00
Thomas Ricouard d64d674389 Make appending new statuses safer 2023-01-30 22:11:55 +01:00
Thomas Ricouard d88d9db1dc Transition Timeline to List + stream post automatically + keep position + new counter UI 2023-01-30 21:41:42 +01:00
Thomas Ricouard fbf1c30b7c Add haptic feedback on more buttons fix #315 2023-01-24 09:19:53 +01:00
Sean Goldin 97f8dfd74d
Add localisation plurals (#239)
* Add localisation plurals

* Add more languages to plurals

* Remove unused localised keys

* Update per #225
2023-01-22 15:47:44 +01:00
Thomas Ricouard a79c5691e0 Run SwiftFormat 2023-01-22 06:38:30 +01:00
Thomas 980b9a5dd6
Implement Localization (#80)
* Implement localization

* Fix some localization keys

* Adapt to recent changes
2023-01-19 18:14:08 +01:00
Thomas Ricouard 1b9d4e0247 Add some macOS menu & shortcuts 2023-01-18 08:27:42 +01:00
Thomas Ricouard 4143e82fbc Multi account sidebar + scaled font size on macOS + better iPad / macOS app UX 2023-01-17 19:41:46 +01:00
Thomas Ricouard 7f6419ebae Swiftformat 2023-01-17 11:36:01 +01:00
Thomas Ricouard c05768c793 The Mac App 2023-01-16 14:40:23 +01:00
Thomas Ricouard e69fcee9fb Various small UI fixes 2023-01-12 19:12:23 +01:00
Jérôme Danthinne d447a8fdd2
add some top padding when new posts button is shown (#55)
Co-authored-by: Jérôme Danthinne <jerome.danthinne@smile.eu>
2023-01-10 14:44:34 +01:00
Thomas Ricouard 75fda4b709 Tip jar + New display name 2023-01-07 13:44:13 +01:00
Thomas Ricouard 7f5330f284 Redesigned settings tab 2023-01-06 17:14:34 +01:00
Thomas Ricouard f922ba344d Search & Pin remote local timeline + general polish 2023-01-06 12:14:05 +01:00
Thomas Ricouard 88b56fe016 Timeline: Dequeue one 2023-01-05 07:07:28 +01:00
Thomas Ricouard 511717e492 Smarter timeline 2023-01-05 06:39:23 +01:00
Thomas Ricouard dcdd8402e9 Timeline: Add filter for followed tags 2023-01-04 18:37:58 +01:00
Thomas Ricouard a1681c3f1b Display pinned statuses on profile 2023-01-03 18:22:08 +01:00
Sean Goldin 41d7f4ca62
Less typing padding constants (#23)
* Change enum of constants to CGFloat extension

* Use CGFloat padding extension
2023-01-03 07:41:29 +01:00
Thomas Ricouard e0253fb439 Added lists support + bunch of bug fixes 2023-01-02 19:23:44 +01:00
Thomas Ricouard 9f009376f5 Add trending as a timeline 2023-01-01 14:28:15 +01:00
Thomas Ricouard b324c87ae1 Timeline tab: Quick accounts switcher + new filter menu 2023-01-01 14:02:11 +01:00
Thomas Ricouard a592341768 Account: Added filter for accounts status 2023-01-01 08:22:39 +01:00
Thomas Ricouard a06386c1da Fixed scroll to top 2022-12-31 15:41:44 +01:00
Thomas Ricouard 315a57b447 Tab timeline tab top scroll to top 2022-12-31 12:28:27 +01:00
Thomas Ricouard 3a076492a1 Multi accounts 2022-12-30 08:36:22 +01:00
Thomas Ricouard d00c3e533e Theme support + default theme 2022-12-29 10:39:34 +01:00
Thomas Ricouard 789adc8b22 Haptic feedback when refreshing timeline 2022-12-29 09:10:59 +01:00
Thomas Ricouard d393c4b90f Fix notifications tab + prepare multi account 2022-12-29 06:55:53 +01:00
Thomas Ricouard 2b733e6b10 Timeline: Fetch up to 10 new pages on pull to refresh 2022-12-28 19:10:13 +01:00
Thomas Ricouard ee39840713 Account: Internal isCurrentUser 2022-12-27 13:49:54 +01:00
Thomas Ricouard 94d4db6214 Various fixes 2022-12-27 09:11:12 +01:00
Thomas Ricouard e5fb3acd07 Quote status + embed status 2022-12-27 07:51:44 +01:00
Thomas Ricouard bda77571b6 Editor: Simple edit 2022-12-26 08:24:55 +01:00
Thomas Ricouard fded30bb76 Refactor live timeline + handle more events 2022-12-26 07:36:54 +01:00
Thomas Ricouard b04ccc18fa Ensure own status is added on top 2022-12-25 19:18:19 +01:00
Thomas Ricouard 827e06b26c More safeguard 2022-12-25 18:48:50 +01:00
Thomas Ricouard 758fa8a6f9 Fix button 2022-12-25 18:46:54 +01:00
Thomas Ricouard 11d4d20873 Timeline scroll to top UX / Flow 2022-12-25 18:43:15 +01:00
Thomas Ricouard 93543cad6b Post / Delete a status and watch main timeline 2022-12-25 12:46:42 +01:00
Thomas Ricouard 8df70043cb Very basic status post 2022-12-25 08:17:16 +01:00
Thomas Ricouard e569bb1d74 Use Nuke where relevant 2022-12-25 07:43:02 +01:00
Thomas Ricouard 70ee6e0d27 Post boosted by / favourited by 2022-12-24 13:41:25 +01:00
Thomas Ricouard 569aedeaeb Prepend new timeline statuses and new notifications 2022-12-24 12:20:42 +01:00
Thomas Ricouard 7068ad90bb Share + Fixed logged out mode 2022-12-23 15:53:02 +01:00
Thomas Ricouard 1a85fa19f8 Quick look support for media preview 2022-12-22 10:53:36 +01:00
Thomas Ricouard 0f2c2df624 Featured tags 2022-12-21 20:26:38 +01:00
Thomas Ricouard 2cd28c13f3 Follow tags + various enhancements 2022-12-21 12:39:29 +01:00
Thomas Ricouard 3d7042832e Open HashTag 2022-12-20 15:37:51 +01:00
Thomas Ricouard cab21c137b Notification tab 2022-12-19 12:28:55 +01:00
Thomas Ricouard e2455a472e Generic Statuses list 2022-12-19 07:17:01 +01:00
Thomas Ricouard 4c3809a95b Account statuses and more packages 2022-12-18 20:30:19 +01:00
Thomas Ricouard 70d28e697c Begin profile + media preview 2022-12-17 13:37:46 +01:00
Thomas Ricouard eb4dc011b6 A bit better timeline UI 2022-12-16 13:16:48 +01:00
Thomas Ricouard df2d383b8a OAuth + Home timeline 2022-12-01 09:05:26 +01:00
Thomas Ricouard 203abbcf0d Account screen WIP 2022-11-29 12:18:06 +01:00
Thomas Ricouard 567cb4cc47 New Routeur 2022-11-29 11:46:02 +01:00
Thomas Ricouard 202bf06dc6 Split Models from Network package 2022-11-29 09:28:17 +01:00
Thomas Ricouard 4742e3112b Remove needless fetchArray 2022-11-25 12:29:42 +01:00
Thomas Ricouard e91a8b4b0a Forward error 2022-11-25 12:01:55 +01:00
Thomas Ricouard ec8de5fb83 Paginated tiemeline and refactoring 2022-11-25 12:00:01 +01:00
Thomas Ricouard 0608996bb8 Render Status as Markdown 2022-11-25 10:03:42 +01:00
Thomas Ricouard 3c1b879d1a Better status header 2022-11-21 14:42:59 +01:00
Thomas Ricouard a694c5d80c Browse and connect to multiple timelines 2022-11-21 13:52:13 +01:00
Thomas Ricouard 864a0b3969 New Timeline architecture 2022-11-21 09:31:32 +01:00