Commit Graph
100 Commits
Author SHA1 Message Date
William Casarin 6f266fc91d columns/profile: rename process -> process_profile_action
lets start clarifying these names for easier searching

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-15 09:28:41 -07:00
William Casarin 443d356cc7 ui/column: remove move/remove column buttons on narrow
It doesn't make sense to move columns in narrow mode

Fixes: https://github.com/damus-io/notedeck/issues/960
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-15 08:35:07 -07:00
William Casarin a714bef690 ui/profile: fix dubious profile editing
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-15 08:28:37 -07:00
William Casarin 4e3fcad709 ui/note: show full link type in unhandled mentions
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-15 08:28:33 -07:00
William Casarin 744483fbc0 ui: don't auto-repaint that often
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-15 08:28:33 -07:00
William Casarin e2295172a2 fix target sdk
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-14 16:15:29 -07:00
William Casarin 45bb00426f andriod: add app icons
Fixes: #958
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-14 16:02:49 -07:00
William Casarin 3a25f3b245 tweak minSdk
24 is lowest vulkan ... so target that

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-14 16:01:48 -07:00
William Casarin c5b6bf2883 gitignore: ds_store
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-14 16:01:39 -07:00
William Casarin c4084c4117 note_follows: remove unneeded derefence
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-14 14:16:05 -07:00
William Casarin e4ca67127e Merge unknown profile improvements by kernel #955
kernelkind (1):
      allow body on unknown profile
2025-07-14 14:10:18 -07:00
William Casarin c402320ad3 ui: fix broken note previews
Also made the options more clear

Fixes: https://github.com/damus-io/notedeck/issues/959
Fixes: b6348b1507 ("note/options: simplify flag logic")
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-14 14:05:41 -07:00
William Casarin 44edffc596 android/input: add copy/paste context to post input
Fixes: https://github.com/damus-io/notedeck/issues/942
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-11 15:36:56 -07:00
William Casarin 6596e89e29 anim: animate on compose button hide
before we were just nuking it

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-11 14:23:50 -07:00
William Casarin ade6f57fd5 anim: animate show/hide of compose button
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-11 14:21:26 -07:00
William Casarin e8444f10b3 Revert "Unify sub for contacts in accounts & timeline"
Since its causing contact timelines to not load

eg: ./target/release/notedeck --datapath new3 -c contacts

This reverts commit 9940537897.
2025-07-11 13:49:47 -07:00
William Casarin 8752a49485 android: fix crash on mobile
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-11 13:39:29 -07:00
William Casarin 14dd7402d0 Merge redundant change 2025-07-11 13:16:45 -07:00
William Casarin 96cb5e26ce Merge follow/unfollow from kernel
Jakub Gladysz (1):
      ui: add follow button

kernelkind (14):
      bump nostrdb
      move polling responsibility to `AccountData`
      `AccountData`: decouple query from constructor
      add constructor for `AccountData`
      add `Contacts`
      use `Contacts` in `AccountData`
      expose `AccountSubs`
      Unify sub for contacts in accounts & timeline
      move `styled_button_toggleable` to notedeck_ui
      construct NoteBuilder from existing note
      send kind 3 event
      add actions for follow/unfollow
      add UI for (un)follow
      send contact list event on account creation
2025-07-11 13:06:24 -07:00
William Casarin df78605051 nostrdb: update for windows and memleak fixes 2025-07-11 12:53:01 -07:00
William Casarin 217c1e5223 columns/decks: add home and notifications for new accounts
This is way more user friendly, and needed on mobile

Fixes: https://github.com/damus-io/notedeck/issues/937
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 17:16:30 -07:00
William Casarin 26d027f03e nav: nav to accounts view for actions that require key
Fixes: https://github.com/damus-io/notedeck/issues/936
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 16:17:08 -07:00
William Casarin 605f6f4711 android: hide new post button when navigating
Fixes: https://github.com/damus-io/notedeck/issues/898
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 15:45:33 -07:00
William Casarin 4bdfbc6400 onboarding: restore demo deck
for some reason it was getting overwritten ?

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 14:54:48 -07:00
William Casarin b6348b1507 note/options: simplify flag logic
simpler, less macro magic

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 14:29:56 -07:00
William Casarin c5093a7180 columns/add: move home and notifications to top
more intuitive

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 13:37:23 -07:00
William Casarin f39d554c96 rename Contacts to Home
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 13:34:41 -07:00
William Casarin e0f2e467d2 args: switch to oot_bitset for arg flags
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 13:34:24 -07:00
William Casarin cf1814f250 android: hide chrome sidebar by default
When compiled as android, make sure we hide the chrome sidebar
by default

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 13:33:27 -07:00
William Casarin 6172777b1a android: remove special load arguments
we want to make sure we have the same onboarding path as desktop

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 13:32:52 -07:00
William Casarin 41053dd5a5 ui/carousel: refactor to use indices
This refactors our carousel control a bit, it was getting
messy

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 12:09:30 -07:00
William Casarin e97574fcdc Merge remote-tracking branch 'github/pr/916' 2025-07-10 09:16:17 -07:00
William Casarin 298fab6471 ui/narrow: restore padding
This is a bit too tight

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 09:12:08 -07:00
William Casarin 22cfaaf64a Merge remote-tracking branch 'github/pr/928' 2025-07-10 09:10:28 -07:00
William Casarin e4e8d7fcf3 note/action: add ScrollInfo
I might need this... lets add it just in case

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 09:03:39 -07:00
William Casarin bb0262e09e android: reapply keyboard changes
but gate them so they don't apply on desktop to avoid the
arrow key and backspace issues. This is a massive hack until
I get time to actually implement this properly.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-10 08:30:59 -07:00
William Casarin 13021afa58 Revert "feat(note-actionbar): refine icons"
icons are too blurry, lets fix that

This reverts commit e1bd1d3e8b.
2025-07-09 11:18:04 -07:00
William Casarin f25735f89e debug: add memory debug window
enable with:

$ cargo build --release --features memory

and then click the memory widget on the chrome sidepanel

currently doesn't track C allocations... we should fix that

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-08 13:27:37 -07:00
William Casarin 738b5e71da android: default app to columns
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-08 12:12:03 -07:00
William Casarin 559086bc10 Merge remote-tracking branches 'pr/9{29,30}' into master 2025-07-08 08:41:01 -07:00
William Casarin eb76cbf671 Revert "android: fix remaining keyboard issues"
This reverts commit dbba0e1bb0.

It breaks desktop
2025-07-01 11:20:23 -07:00
William Casarin dbba0e1bb0 android: fix remaining keyboard issues
Fixes: https://github.com/damus-io/notedeck/issues/896
Fixes: https://github.com/damus-io/notedeck/issues/894
Fixes: https://github.com/damus-io/notedeck/issues/895
Fixes: https://github.com/damus-io/notedeck/issues/893
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-30 14:47:57 -07:00
William Casarin 400050f3fb Merge remote-tracking branches 'github/pr/877' and 'github/pr/885'
CI / Rustfmt + Clippy (push) Has been cancelled
CI / Check (android) (push) Has been cancelled
CI / Test (Linux) (push) Has been cancelled
CI / Test (macOS) (push) Has been cancelled
CI / Test (Windows) (push) Has been cancelled
CI / rpm/deb (aarch64) (push) Has been cancelled
CI / rpm/deb (x86_64) (push) Has been cancelled
CI / macOS dmg (aarch64) (push) Has been cancelled
CI / macOS dmg (x86_64) (push) Has been cancelled
CI / Windows Installer (aarch64) (push) Has been cancelled
CI / Windows Installer (x86_64) (push) Has been cancelled
CI / Upload Artifacts to Server (push) Has been cancelled
Fernando López Guevara (2):
      fix(content): handle case where notes are not loaded
      feat(app_images): add module to manage static app image assets
2025-06-25 10:30:24 -07:00
William Casarin 5010d3662d thread: move comment to the correct place
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-25 10:29:33 -07:00
William Casarin a0ac4b16ad nostrdb: bump to v0.7.0
includes replay fix

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-25 10:29:33 -07:00
William Casarin 48f17f91b8 log: make some routing logs into debug logs
CI / Rustfmt + Clippy (push) Has been cancelled
CI / Check (android) (push) Has been cancelled
CI / Test (Linux) (push) Has been cancelled
CI / Test (macOS) (push) Has been cancelled
CI / Test (Windows) (push) Has been cancelled
CI / rpm/deb (aarch64) (push) Has been cancelled
CI / rpm/deb (x86_64) (push) Has been cancelled
CI / macOS dmg (aarch64) (push) Has been cancelled
CI / macOS dmg (x86_64) (push) Has been cancelled
CI / Windows Installer (aarch64) (push) Has been cancelled
CI / Windows Installer (x86_64) (push) Has been cancelled
CI / Upload Artifacts to Server (push) Has been cancelled
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-24 08:31:25 -07:00
William Casarin ca5ecb3777 Merge multiple hashtags in a column
Fernando López Guevara (1):
      hashtag-column: allow multiple hashtags

William Casarin (2):
      hashtag: improve sanitization function
2025-06-24 08:30:18 -07:00
William Casarin b67a2ddc31 hashtag: improve sanitization function
We don't want punctuation in hashtags

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-24 08:29:37 -07:00
William Casarin 5c31bf16c8 Merge remote-tracking branch 'github/pr/899' 2025-06-23 13:48:21 -07:00
William Casarin 75fd22d8ed thread: selected thread notes should be... selectable
We couldn't select text on thread notes before,
now we can

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-23 13:00:08 -07:00
William Casarin 15b4978d47 deps: switch to damus-io egui-nav
thanks kernel!

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-23 11:27:04 -07:00
William Casarin 7ba81d0761 Merge Threads by kernel
kernelkind (16):
      add `NoteId` hashbrown `Equivalent` impl
      unknowns: use unowned noteid instead of owned
      tmp: upgrade `egui-nav` to use `ReturnType`
      add `ThreadSubs` for managing local & remote subscriptions
      add threads impl
      add overlay conception to `Router`
      add overlay to `RouterAction`
      ui: add `hline_with_width`
      note: refactor to use action composition & reduce nesting
      add pfp bounding box to `NoteResponse`
      add unread note indicator option to `NoteView`
      thread UI
      add preview flag to `NoteAction`
      add `NotesOpenResult`
      integrate new threads conception
      only deserialize first route in each column
2025-06-23 10:52:00 -07:00
William Casarin cc5a888b89 Merge 'Initial android support'
This gets android into a somewhat usable state.

Still news a few follow ups.

William Casarin (9):
      nix: add $ANDROID_JAR helper to shell
      add input context menu helper
      thread: enable selectable text in threads
      universe: add full tabs
      android: fix build
      dave: initial android fixes
      android: arboard clipboard support
      android: add initial ci
      Merge 'Initial android support'
2025-06-17 13:20:06 -07:00
William Casarin 012ff9d53d android: add initial ci
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-17 13:15:40 -07:00
William Casarin c8e861812b android: arboard clipboard support
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-16 16:11:51 -07:00
William Casarin be9406da7b dave: initial android fixes 2025-06-16 16:11:51 -07:00
William Casarin 505083998d android: fix build
wip android keyboard fixes

wip 4.0.0 game-activity

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-16 16:11:51 -07:00
William Casarin 7b558f8f58 universe: add full tabs
so we can monitor replies as well

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-16 16:11:51 -07:00
William Casarin 5e1e45184b thread: enable selectable text in threads
This avoids some of the nested thread loading,
but we can fix that next

Changelog-Changed: Made text in threads selectable
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-16 16:11:51 -07:00
William Casarin 9033383a29 add input context menu helper
We are going to want this in more places

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-16 16:11:15 -07:00
William Casarin c6045279dd nix: add $ANDROID_JAR helper to shell
So we can easily print JNI signatures via javap

javap -classpath "$ANDROID_JAR" -s android.content.ClipboardManager

This can be used to call java code with JNI

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-16 16:09:03 -07:00
William Casarin e8d240df42 toolbar: process actions
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-07 10:19:13 -07:00
William Casarin 0ea1a92ea7 chrome: hook up toolbar actions
We will implement execution of these actions in the
upcoming commits!

stay tuned

Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-07 10:19:13 -07:00
William Casarin 0eec6881fc Initial tab bar 2025-06-07 10:19:13 -07:00
William Casarin bcd9c61d46 chrome: extract more non-methods 2025-06-07 10:19:13 -07:00
William Casarin 65928bcdbb chrome: extract method to function
We don't need anything from Chrome in this function, so we can just
extract it to a top-level function
2025-06-07 10:19:13 -07:00
William Casarin 6812a0e6ae dave: add chrome toggle button
We were missing this, which meant we could get stuck in
dave
2025-06-05 15:39:18 -07:00
William Casarin b139af475e dave: small cleanup 2025-06-05 14:37:03 -07:00
William Casarin e87b6f1905 chrome: collapsible side panel
This implements the initial logic that makes the side panel collapsible.

Since we don't have a proper hamburger control, we do the same thing we
do on iOS for now.
2025-06-05 12:01:55 -07:00
William Casarin 5cb0911d7e log: less verbose unknown id logging 2025-06-05 11:59:51 -07:00
William Casarin b186458fec nix: emulator
This expression was incorrect...
2025-06-05 11:59:51 -07:00
William Casarin f380c24649 fix note response regression
Fixes: 7d916805bc ("note: cleanup wide/standard implementation")
2025-06-03 11:26:18 -07:00
William Casarin 771537a4f6 android: hover post button when narrow
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-03 10:29:38 -07:00
William Casarin 7d916805bc note: cleanup wide/standard implementation
Since this function was getting too big
2025-06-03 10:29:38 -07:00
William Casarin 5ef77efebb scroll: simple fix
Instead of a complicated min scroll distance implementation,
we simply disable drag to scroll on carousel to fix vertical
scrolling on android
2025-06-03 10:29:38 -07:00
William Casarin 81a9ddbebc Merge remote-tracking branches 'github/pr/87{0,1,2}'
Merge a few bug fixes and lint issues

Fernando López Guevara (1):
      fix: skip blurring for user's own images

William Casarin (3):
      clippy: fix large enum.

kernelkind (1):
      bugfix: txn failed
2025-06-02 10:34:45 -07:00
William Casarinandkernelkind 0a675dfff0 clippy: fix large enum.
Signed-off-by: William Casarin <jb55@jb55.com>
2025-06-01 17:56:18 -04:00
William Casarin 1c3b172e21 clippy: fix large enum.
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-31 16:33:18 -07:00
William Casarin d9b1de9d2c Merge remote-tracking branches 'github/pr/869' and 'github/pr/868'
Merge some misc changes from Fernando

Fernando López Guevara (2):
      feat(column): add tooltip on remove column button
      feat(hashtag-column): handle new hashtag on Enter key press
2025-05-31 16:01:02 -07:00
William Casarin fc51ddb438 Merge remote-tracking branches 'github/pr/864' and 'github/pr/866' 2025-05-31 15:53:36 -07:00
William Casarin ee85b754dd Fix text wrapping issues
Mentions were getting wrapped in a horizontal, which breaks the outer
horizontal_wrapped in note contents. When this breaks, it seems to be
breaking subsequent wrapping in notes.

Remove the horizontal to the remaining text wrapping issues!

Changelog-Fixed: Fix text wrapping glitches
Fixes: https://github.com/damus-io/notedeck/issues/33
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-20 18:09:15 -07:00
William Casarin e75eb5ffd5 clippy: quick lint fix 2025-05-19 15:28:58 -07:00
William Casarin 163abe891a Merge remote-tracking branch 'pr/862' 2025-05-19 15:25:56 -07:00
William Casarin 86d2a9e2e7 clippy: fix lint related to iterator
warning: called `Iterator::last` on a `DoubleEndedIterator`; this will
needlessly iterate the entire iterator
   --> crates/notedeck/src/urls.rs:262:43
    |
262 |             if let Some(file_name) = path.last() {
    |                                           ^^^^^^ help: try: `next_back()`
    |

Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-14 09:56:06 -07:00
William Casarin c469a0ff22 timeline: show media on universe timeline
Now that we have blurred images from people you don't
follow, we can enable this again

Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-14 09:53:55 -07:00
William Casarin 54308c807e Merge blurhash support
kernelkind (22):
      add `trust_media_from_pk2` method
      add hashbrown
      introduce & use `JobPool`
      introduce JobsCache
      add blurhash dependency
      introduce blur
      note: remove unnecessary derive macros from `NoteAction`
      propagate `JobsCache`
      `ImagePulseTint` -> `PulseAlpha`
      images: move fetch to fn
      add `TexturesCache`
      images: make `MediaCache` hold `MediaCacheType`
      images: make promise payload optional to take easily
      post: unnest
      notedeck_ui: move carousel to `note/media.rs`
      note media: only show full screen when loaded
      note media: unnest full screen media
      pass `NoteAction` by value instead of reference
      propagate `Images` to actionbar
      add one shot error message
      make `Widget` impl `ProfilePic` mutably
      implement blurring
2025-05-14 09:27:39 -07:00
William Casarin b48b1e4813 release: changelog
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-05 13:54:33 -07:00
William Casarin b072c93964 Release Notedeck Beta v0.4.0
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-03 14:42:32 -07:00
William Casarin bdd0ef4c5c ui: fix a bunch of missing hover pointers
let's try to keep on top of these

Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 20:50:56 -07:00
William Casarin 8b7914e395 chrome: fix theme persistence
Fixes: #832
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 20:27:08 -07:00
William Casarin a94cbb2dc0 dave: hide media in dave note previews
it bugs out sometimes

Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 20:21:42 -07:00
William Casarin 2539dead1e dave: nudge avatar when you click
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 20:21:30 -07:00
William Casarin 3eb9e30e8f dave: fix sidebar click
Fixes: #837
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 19:54:02 -07:00
William Casarin 514e5748b8 dave: add trial mode
Fixes: #827
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 19:37:45 -07:00
William Casarin 6bbc20471a dave: include anonymous user identifier in api call
- don't include users pubkey

This could be used to associate requests with real users,
rendering the anonymized user_id pointless

TODO: Implement a new tool call that lets dave ask for your pubkey

Fixes: #834
Fixes: #836
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 19:33:33 -07:00
William Casarin 093189b019 ui: make post replies selectable
I wanted to copy a quote from something I was replying to, I couldn't
now I can

Fixes: #835
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 17:28:59 -07:00
William Casarin dbfc2804f1 chrome: switch from ALPHA to BETA
Fixes: #828
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 17:23:14 -07:00
William Casarin 5bae19fe00 mention: show username instead of display_name
Fixes: #833
Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 17:23:08 -07:00
William Casarin 10a2459da2 windows: don't show terminal window
Looks like this got accidentally commented out in an android build

Signed-off-by: William Casarin <jb55@jb55.com>
2025-05-01 12:03:36 -07:00
William Casarin a5f4290acf columns: never truncate notes you're replying to
So you can see everything

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-30 11:00:37 -07:00