Commit Graph
100 Commits
Author SHA1 Message Date
William Casarin ce0d3e8e88 Merge fix blank thread from notifications by kernel
kernelkind (1):
      fix blank thread from notifications
2025-09-08 15:03:50 -07:00
William Casarin 0b4545d598 filter: reservoir sample the algo feed
so its not the same static 15 pubkeys

Signed-off-by: William Casarin <jb55@jb55.com>
2025-09-08 15:03:02 -07:00
William Casarin c765b031e9 ui/note: fix actionbar note responses
they are not responsive on android?

Signed-off-by: William Casarin <jb55@jb55.com>
2025-09-04 15:34:13 -07:00
William Casarin 024cf3ef91 Merge back nav threshold fix by kernel #1118 2025-09-04 14:25:43 -07:00
William Casarin 73e44d1497 Merge Translations by terry et al #1082
Terry Yiu (2):
      Export strings for translation
      Import translations
2025-09-02 15:10:26 -07:00
William Casarin 43b98fc6ed Merge add keys section to settings by kernel #1096
kernelkind (4):
      add `AnimationHelper::scaled_rect`
      add copy to clipboard img
      make eye button public
      add keys section to settings
2025-09-02 15:09:38 -07:00
William Casarin 95ee275153 Merge custom-zap: dont force keyboard by kernel #1097
kernelkind (1):
      custom-zap: dont force keyboard
2025-09-02 15:08:53 -07:00
William Casarin e9ca793509 macos: fix build script
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-28 07:11:04 +08:00
William Casarin ea65af8d5b v0.7.1
William Casarin (2):
      fix android-activity crash on unhandled app cmds

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-28 06:54:44 +08:00
William Casarin 11aa2142cf fix android-activity crash on unhandled app cmds
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-26 17:46:13 -07:00
William Casarin 31ee64827a v0.7.0
First official Android Release!

- Keyboard visibiliy
- core lightning node ui (experimental)
- Onboarding follow packs
- Reaction notifications!
- Japanese translations

Terry Yiu (3):
      Remove unused strings from translation files
      Import translations
      Add Japanese and Portuguese (Portugal) languages

William Casarin (38):
      battery: disable render every 100ms
      dave: switch to logical time
      force oled with --mobile flag
      gif: disable continuous gif rendering
      ui: add AnimationMode to control GIF rendering behavior
      debug: add repaint causes debug tool
      Merge thread scroll fix by kernel
      chrome: add virtual keyboard ui
      android: fix dark/light mode and folding screen crash
      notedeck app: add clndash
      clndash: initial peer channel listing
      default logs
      clndash: channels ui
      clndash: summary cards
      clndash: include listpeerchannel errors
      clndash: invoice loading
      clndash: zap rendering
      clndash: fix invoice order, return more stuff
      clndash: reorganize
      clndash: configurable host
      clndash: add readme
      clndash: readme
      clndash: tweak readme
      clndash: tweak links in readme
      clndash: specify you need --clndash
      clndash: dont forget CLNDASH_ID
      remove hjkl bindings
      Merge Japanese and Portuguese translations from Terry
      clippy: fix lint errors
      Implement soft keyboard visibility on Android
      chrome: greatly improve soft-keyboard visibility & layout handling
      args: parse hashtag columns from cli
      debug: fix memory debug builds
      Merge remote-tracking branch 'github/pr/1087' into notifications
      Merge remote-tracking branch 'github/pr/1081' into notifications  especially if it merges an updated upstream into a topic branch.
      tweak follow pack design
      chrome: remove dev log
      v0.7.0

kernelkind (53):
      TMP: use new egui-nav to fix scroll offset issues
      add `scroll_offset` to `NoteAction::Note`
      add `ThreadNote::set_scroll_offset`
      set scroll offset when routing to thread
      appease clippy
      make search icon more customizable
      make compose button animate horiz rather than vert
      add toolbar icons to `notedeck_ui`
      add select_by_route
      add toolbar related logic
      add toolbar defaults
      copy toolbar rendering to `notedeck_ui`
      use toolbar in columns rather than chrome
      clippy: allow collapsible match
      add flags to `ScaledTexture`
      extract a pub `render_media` from image_carousel
      add impl for `ScaledTextureFlags::RESPECT_MAX_DIMS`
      add nip51 set caching structs
      nip 51 set widget
      add onboarding 'manager'
      TMP: temporary author for trusted pks list
      add onboarding view
      add onboarding related state to app
      integrate onboarding
      fix contact list bug
      use the onboarding follow pack curator pubkey
      make `TimelineCache::notes` private
      remove commented out code...
      move `HybridSet` to own file
      ui: add like icon
      appease clippy
      add muted helper
      unknownids: use pk bytes
      replace `HybridSet` with `NoteUnits`
      add reactions kind to notifications filter
      add `TimelineUnits`
      note: account for mutes in the notifications dot
      make since optimize accept Option<&NoteRef> instead of notes
      prop `UnknownIds` for initial timeline
      ui: add rendering for `NoteUnit`s
      upgrade `TimelineOpenResult` to hold new pubkeys too
      use `TimelineUnits` instead of `Vec<NoteRef>`
      ui: remove unnecessary reverse
      introduce failing test for reaction duplication bug
      fix duplicate ReactionUnit for multiple kth indices
      fix reaction target bug
      ui: reactions closer approximation of iOS design
      expose indexmap to notedeck
      use indexmap
      add Nip51SetCache helper methods
      add virtual list to `Onboarding`
      prop `Onboarding` as mut
      render follow pack by index from virtual list

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-26 15:05:12 -07:00
William Casarin f243adc855 chrome: remove dev log
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-26 14:40:14 -07:00
William Casarin 5224a5d8ae tweak follow pack design
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-26 10:26:14 -07:00
William Casarin 2c96dd99a8 Merge remote-tracking branch 'github/pr/1081' into notifications
especially if it merges an updated upstream into a topic branch.
2025-08-26 10:01:09 -07:00
William Casarin e7843bad2f Merge remote-tracking branch 'github/pr/1087' into notifications 2025-08-26 09:58:50 -07:00
William Casarin c2f012ff75 debug: fix memory debug builds
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-26 09:53:37 -07:00
William Casarin 76fd7a9753 args: parse hashtag columns from cli
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-26 09:53:37 -07:00
William Casarin ccc188c0ae chrome: greatly improve soft-keyboard visibility & layout handling
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
This reworks how we detect and respond to the on-screen keyboard so inputs
don’t get buried and the UI doesn’t “jump”.

- Add SoftKeyboardAnim + AnimState FSM for smooth IME open/close animation
- Centralize logic in keyboard_visibility() with clear edge states
- Animate keyboard height via animate_value_with_time instead of layer
  transforms
- Add ChromeOptions::KeyboardVisibility flag when focused input would be
  occluded
- Add SidebarOptions::Compact to collapse sidebar while typing
- Hide mobile toolbar when keyboard is open (columns app)
- Use .stick_to_bottom(true) in reply + profile editors; remove old spacer hack
- Virtual keyboard toggle moved to F1 in Debug builds
- Introduce SoftKeyboardContext::platform(ctx) helper
- Cleanup dead/commented code and wire up soft_kb_anim_state in Chrome

Result: inputs stay visible, open/close is smooth, and UI adjusts gracefully
when typing.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-20 15:28:28 -07:00
William Casarin 77ac91e810 Implement soft keyboard visibility on Android
- Added `SoftKeyboardContext` enum and support for calculating keyboard
  insets from both virtual and platform sources

- Updated `AppContext` to provide `soft_keyboard_rect` for determining
  visible keyboard area

- Adjusted UI rendering to shift content when input boxes intersect with
  the soft keyboard, preventing overlap

- Modified `MainActivity` and Android manifest to use
  `windowSoftInputMode="adjustResize"` and updated window inset handling

- Introduced helper functions (`include_input`, `input_rect`,
  `clear_input_rect`) in `notedeck_ui` for tracking focused input boxes

- Fixed Android JNI keyboard height reporting to clamp negative values

Together, these changes allow the app to correctly detect and respond
to soft keyboard visibility on Android, ensuring input fields remain
accessible when typing.

Fixes: https://github.com/damus-io/notedeck/issues/946
Fixes: https://github.com/damus-io/notedeck/issues/1043
2025-08-19 11:29:45 -07:00
William Casarin 3aa4d00053 clippy: fix lint errors
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-19 09:45:36 -07:00
William Casarin c79d5f1b9e Merge Japanese and Portuguese translations from Terry
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
Terry Yiu (3):
      Remove unused strings from translation files
      Import translations
      Add Japanese and Portuguese (Portugal) languages
2025-08-16 12:33:21 -07:00
William Casarin 507cf113a3 remove hjkl bindings
these interfere with input

we'll need to come back to this

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-15 11:55:29 -07:00
William Casarin c5df47dc73 clndash: dont forget CLNDASH_ID
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-11 12:37:28 -07:00
William Casarin ea85799007 clndash: specify you need --clndash
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-11 12:17:13 -07:00
William Casarin 9ba071c5ed clndash: tweak links in readme
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-11 12:15:47 -07:00
William Casarin 81393f8468 clndash: tweak readme
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-11 12:14:24 -07:00
William Casarin 87d9308435 clndash: readme
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-11 12:13:24 -07:00
William Casarin 1f8fd395ed clndash: add readme
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-11 12:09:13 -07:00
William Casarin 2f3a3de7cc clndash: configurable host
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-11 12:03:14 -07:00
William Casarin 35e9354217 clndash: reorganize
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-11 10:36:44 -07:00
William Casarin 08a97c946d clndash: fix invoice order, return more stuff
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-10 21:33:11 -07:00
William Casarin 2fde5addeb clndash: zap rendering
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-10 17:46:09 -07:00
William Casarin f77e7898b6 clndash: invoice loading
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-10 16:28:21 -07:00
William Casarin 8138a0a1ca clndash: include listpeerchannel errors
in response

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-08 20:19:58 -07:00
William Casarin 2444e24fb5 clndash: summary cards
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-08 19:57:43 -07:00
William Casarin fc509b1b26 clndash: channels ui
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-08 18:34:42 -07:00
William Casarin 1fd92e9e00 default logs
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-08 15:32:28 -07:00
William Casarin 382ef772f5 clndash: initial peer channel listing
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-08 15:31:58 -07:00
William Casarin 53b4a8da5c notedeck app: add clndash
a core-lightning dashboard i'm working on

feature-gate it behind --clndash

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-08 13:19:39 -07:00
William Casarin cb72592f4b android: fix dark/light mode and folding screen crash
We have to tell android not to restart the activity when a dark/light
mode is switched or when the phone is folded/unfolded. Otherwise
it will crash.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-07 16:27:29 -07:00
William Casarin c60e1af3eb chrome: add virtual keyboard ui 2025-08-06 19:00:30 -07:00
William Casarin 87cb5ed515 Merge thread scroll fix by kernel
kernelkind (5):
      TMP: use new egui-nav to fix scroll offset issues
      add `scroll_offset` to `NoteAction::Note`
      add `ThreadNote::set_scroll_offset`
      set scroll offset when routing to thread
      appease clippy
2025-08-04 15:08:32 -07:00
William Casarin 9cbba37507 debug: add repaint causes debug tool
enable with --debug, click on fps/frame time counter

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-04 15:04:38 -07:00
William Casarin b94e715539 ui: add AnimationMode to control GIF rendering behavior
Introduces an `AnimationMode` enum with `Reactive`, `Continuous`, and
`NoAnimation` variants to allow fine-grained control over GIF playback
across the UI. This supports performance optimizations and accessibility
features, such as disabling animations when requested.

- Plumbs AnimationMode through image rendering paths
- Replaces hardcoded gif frame logic with reusable `process_gif_frame`
- Supports customizable FPS in Continuous mode
- Enables global animation opt-out via `NoteOptions::NoAnimations`
- Applies mode-specific logic in profile pictures, posts, media carousels, and viewer

Animation behavior by context
-----------------------------

- Profile pictures: Reactive (render only on interaction/activity)
- PostView: NoAnimation if disabled in NoteOptions, else Continuous (uncapped)
- Media carousels: NoAnimation or Continuous (capped at 24fps)
- Viewer/gallery: Always Continuous (full animation)

In the future, we can customize these by power settings.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-04 13:41:24 -07:00
William Casarin 54b86ee5a6 gif: disable continuous gif rendering
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-04 12:19:21 -07:00
William Casarin f6c44bba8a force oled with --mobile flag
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-04 12:06:58 -07:00
William Casarin 3451206f1a dave: switch to logical time
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
this fixes jumpy animations when we stop rendering

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-04 11:35:22 -07:00
William Casarin 0770bab37c battery: disable render every 100ms
our multicast poller was causing this

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-04 11:29:03 -07:00
William Casarin 48a11b9bab v0.6.0
What's new
==========

- New notifications indiciator dot on toolbar
- Fixed mentions/tagging
- Gave dave a new swarm look
- Persist some more settings
- Allow sorting thread replies newest first in options
- Show full created date format on selected notes
- Show client name on selected notes
- Higher quality media
- Increase media viewer transition animation
- Fix some ui glitches when replying
- Fix gpu crash on adrendo devices (some samsung galaxy tablets)

Fernando López Guevara (14):
      feat(note): show full created date format on selected notes
      feat(notedeck): add cross-platform URI opener
      feat(settings): allow sorting thread replies newest first
      feat(settings): persist settings to storage
      feat(settings): show note full date
      fix(media): add spacing
      fix(note-content): avoid empty text blocks
      fix(settings): use localization
      refactor(settings): add settings sections methods
      settings: use timed serializer, handle zoom properly, use custom text style for note body font size, added font size slider, added preview note
      update i18n comments for source client options
      Update crates/notedeck/src/persist/settings_handler.rs

Terry Yiu (2):
      Import Spanish translations
      Fix localization issues and export strings for translation

William Casarin (31):
      add NotedeckOptions and feature flags, add notebook feature
      android: fix build
      chrome: remove duplication in app setup
      columns: clean up flags, refactor content rendering
      columns: fix double reference
      dave: switch to use standard vertex/index buffers
      evolve dave into a swarm
      init notebook
      lint: fix format issue
      make clippy happy
      media: less blurry media
      mediaviewer: decrease transition anim from 500ms to 300ms
      note/ui: fix reply line when replying in narrow mode
      note: small doc fix
      note: turn off full date view for previews
      notebook: draw edges and arrows
      notebook: fix heights of nodes
      notebook: fix node sizes
      notebook: move ui code into its own file
      notebook: remove redundant closure
      perf: a few micro optimizations
      post: set client tag to Damus Android on android
      refactor: collapse client label settings; drop CLI/settings toggles
      remove explicit loop continue
      ui/note: fix extra padding in block renderer
      ui/note: fix indented actionbar in non-wide mode
      ui/note: fix reply description item spacing
      ui/note: fix width instabilities because of spacing_mut
      ui/note: slightly more spacing between blocks
      ui: keep original design on non-narrow

kernelkind (12):
      TMP: update egui for better TextInputState handling
      add `NotesFreshness` to `TimelineTab`
      chrome: method to find whether there are unseen notifications
      extract notifications filter to own method
      fix scroll regression
      insert space after mention selection
      mention-picker: re-add spacing from inner_margin
      mentions: don't lose focus after select mention
      paint unseen indicator
      rename `SearchResultsView` => `MentionPickerView`
      set fresh from `TimelineCache`
      use unseen notification indicator

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-04 08:41:46 -07:00
William Casarin 603de6bbab evolve dave into a swarm
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 23:07:48 -07:00
William Casarin 571bf35109 dave: switch to use standard vertex/index buffers
Fixes: https://github.com/damus-io/notedeck/issues/902
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 20:17:24 -07:00
William Casarin 0dda26791a perf: a few micro optimizations
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 20:17:16 -07:00
William Casarin 7e73ed2760 ui/note: slightly more spacing between blocks
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 20:17:16 -07:00
William Casarin 2fb9470ee6 note/ui: fix reply line when replying in narrow mode
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 16:54:04 -07:00
William Casarin af2c556700 post: set client tag to Damus Android on android
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 16:48:34 -07:00
William Casarin 27df33dc83 ui/note: fix reply description item spacing
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 16:30:37 -07:00
William Casarin 2edc19fbcc ui/note: fix extra padding in block renderer
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 16:26:26 -07:00
William Casarin edf0e2498b note: small doc fix
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 16:18:00 -07:00
William Casarin ad35547582 refactor: collapse client label settings; drop CLI/settings toggles
The "top vs bottom" client label setting was cluttering the UI and
codebase with toggles that added little value. This consolidates client
label handling into one option, removes unused CLI/settings knobs, and
makes NoteView’s API consistent and fluent. Result: fewer knobs, less
branching, and a clearer, more predictable UI.

Now client labels are only shown in one place: selected notes.

- Drop `--show-client` arg in notedeck and `--show-note-client=top|bottom`
  args in notedeck_columns

- Remove `NotedeckOptions::ShowClient` and related CLI parsing

- Delete `ShowSourceClientOption` enum, settings UI, and
  `SettingsAction::SetShowSourceClient`

- Collapse `NoteOptions::{ClientNameTop, ClientNameBottom}` into a single
  `NoteOptions::ClientName`

- Add `NoteOptions::{Framed, UnreadIndicator}`

- Move “framed” and unread indicator into flags (no more ad‑hoc bools)

- Add new NoteView builder methods: `.client_name()`, `.frame()`,
  `.unread_indicator()`, and `.selected_style()`

- CLI flags for showing client labels have been removed

- `ClientNameTop`/`ClientNameBottom` replaced with `ClientName`

- API using `framed` or `show_unread_indicator` booleans must now use
  the new flag setters

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 16:16:15 -07:00
William Casarin 24f70930eb note: turn off full date view for previews
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 14:53:14 -07:00
William Casarin 5b1bc442d4 Pull spanish translations from terry
Terry Yiu (2):
      Import Spanish translations
      Fix localization issues and export strings for translation
2025-08-03 14:02:43 -07:00
William Casarin 391abe817d columns: clean up flags, refactor content rendering
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 14:02:05 -07:00
William Casarin 30eb2e0258 columns: fix double reference
its not needed

Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 14:00:12 -07:00
William Casarin 21fe3527a8 lint: fix format issue
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 13:58:14 -07:00
William Casarin 249e166a95 remove explicit loop continue
Signed-off-by: William Casarin <jb55@jb55.com>
2025-08-03 10:44:07 -07:00
William Casarin 3f9d030046 Merge remote-tracking branch 'github/pr/1025' 2025-08-03 10:38:38 -07:00
William Casarin 6a08d4b1b2 ui/note: fix width instabilities because of spacing_mut
TODO: get rid of all spacing_mut in the codebase

Fixes: 9ff5753bca ("settings: use timed serializer, handle zoom properly...")
2025-07-31 17:54:53 -07:00
William Casarin d6d7e4c35e android: fix build
Fixes: dac786e60f ("chrome: remove duplication in app setup")
2025-07-31 17:29:06 -07:00
William Casarin c3499729f2 Merge notification dot by kernel
kernelkind (6):
      extract notifications filter to own method
      add `NotesFreshness` to `TimelineTab`
      set fresh from `TimelineCache`
      chrome: method to find whether there are unseen notifications
      paint unseen indicator
      use unseen notification indicator

Changelog-Added: Add notification dot on toolbar
2025-07-31 17:18:20 -07:00
William Casarin dac786e60f chrome: remove duplication in app setup
Also move debug warning to chrome so that headless
notedeck apps don't hit that.
2025-07-31 17:07:51 -07:00
William Casarin 09eeb57bd9 Merge notebook (feature gated)
This merges the experimental notebook app, which can be
enabled with --notebook.

We also switch to bitflags for notedeck options
2025-07-31 16:06:25 -07:00
William Casarin b1a5dd6cab add NotedeckOptions and feature flags, add notebook feature
This switches from bools to flags in our Args struct. We also add
notebook as an optional feature flag (--notebook) since its not ready.
2025-07-31 16:03:13 -07:00
William Casarin d12e5b363c notebook: move ui code into its own file
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-31 15:08:23 -07:00
William Casarin cc8bafddff notebook: remove redundant closure
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-31 15:08:23 -07:00
William Casarin 3766308ce6 notebook: fix node sizes
make sure we always allocate the correct amount of space,
even if we use less.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-31 15:08:23 -07:00
William Casarin 17f72f6127 notebook: draw edges and arrows
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-31 15:08:22 -07:00
William Casarin f592015c0c notebook: fix heights of nodes
some nodes can overflow their contents, so let's use a scroll view to
fix

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-31 15:07:51 -07:00
William Casarin 1ab4eeb48c init notebook
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-31 15:07:50 -07:00
William Casarin a8c6baeacb make clippy happy 2025-07-31 11:55:39 -07:00
William Casarin a896a6ecfa Merge remote-tracking branch 'fernando/feat/persist_settings' 2025-07-31 11:48:57 -07:00
William Casarin ba76b20ad2 Merge tagging fixes from kernel
Fixes the following:
1. space added after mention
2. can scroll the mention picker
3. don't lose focus of textedit after mention selection

kernelkind (6):
      rename `SearchResultsView` => `MentionPickerView`
      fix scroll regression
      mention-picker: re-add spacing from inner_margin
      mentions: don't lose focus after select mention
      TMP: update egui for better TextInputState handling
      insert space after mention selection

Fixes: https://github.com/damus-io/notedeck/issues/985
Fixes: https://github.com/damus-io/notedeck/issues/728
Fixes: https://github.com/damus-io/notedeck/issues/986

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-30 16:23:12 -07:00
William Casarin 0fc8e70180 ui/note: fix indented actionbar in non-wide mode
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-07-29 13:58:17 -07:00
William Casarin 2de6851fbd mediaviewer: decrease transition anim from 500ms to 300ms
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 13:45:22 -07:00
William Casarin f57d582307 ui: keep original design on non-narrow
Changed my mind

This reverts commit 6e81b98d2f.
This reverts commit 217f1e45da.
2025-07-29 13:25:19 -07:00
William Casarin 09e608ca75 media: less blurry media
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 13:17:52 -07:00
William Casarin 2bd636ce0a v0.5.9 - Better Media!
- Persist settings to storage
- New fullscreen media viewer with panning and zoom
- Changed note rendering to use the full screen width
- Fixed more wrapping issues
- Fixed crash on large images
- Fix nwc copy/paste
- Portugese translations
- Show locale language names instead of identifier

Fernando López Guevara (5):
      feat(settings): persist settings to storage
      fix(columns): render wide notes on narrow screen
      fix(media): edge-to-edge image display on narrow screen
      fix(media): use ScaledTexture
      fix(note_actionbar): add invisible label to stabilize section width ¯\_(ツ)_/¯

Terry Yiu (5):
      Add human-readable names to locales in settings
      Add Portuguese (Brazil) language and translations
      Export strings for translation
      Import translations
      Internationalize ShowNoteClientOptions labels

William Casarin (19):
      Fullscreen MediaViewer refactor
      images: always resize large images
      media: change is_narrow logic to is_scaled
      media/viewer: click anywhere to close
      media/viewer: fix broken culling
      media/viewer: fix flicker on escape-close
      media/viewer: fullscreen transition animations
      media/viewer: handle click-to-close interactions
      media/viewer: provide image-click provenance
      media/viewer: slower animation
      note/options: made wide the default
      threads: disable wide in threads
      ui/note: fix another reply_desc wrapping issue
      ui/note: simplify weird hack and make note of it
      ui/settings: fix small double clone nit
      ui/wallet: small refactor to use return instead of break
      wallet: fix nwc copy/paste

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 12:24:17 -07:00
William Casarin 79bf6cf126 media/viewer: fix flicker on escape-close
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 12:22:04 -07:00
William Casarin 5280028a82 media/viewer: fix broken culling
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 11:03:42 -07:00
William Casarin f4a6e8f9bb media: change is_narrow logic to is_scaled
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 10:59:27 -07:00
William Casarin 83fd6de076 Merge remote-tracking branch 'github/pr/1032' 2025-07-29 10:46:55 -07:00
William Casarin b80a0ab0f1 ui/settings: fix small double clone nit
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 10:32:39 -07:00
William Casarin e437a0db1c Merge Portuguese translations by terry #1036
Terry Yiu (5):
      Export strings for translation
      Add human-readable names to locales in settings
      Internationalize ShowNoteClientOptions labels
      Import translations
      Add Portuguese (Brazil) language and translations
2025-07-29 10:26:21 -07:00
William Casarin 6e81b98d2f note/options: made wide the default
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 10:24:38 -07:00
William Casarin 217f1e45da Revert "fix(columns): render wide notes on narrow screen"
We're just gonna make it default

This reverts commit 0f00dcf7a7.
2025-07-29 10:22:57 -07:00
William Casarin 96e0366787 threads: disable wide in threads
Since it breaks the reply line rendering

Fixes: 0f00dcf7a7 ("fix(columns): render wide notes on narrow screen")
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 10:18:20 -07:00
William Casarin 2a85ee562c ui/note: simplify weird hack and make note of it
Fixes: https://github.com/damus-io/notedeck/issues/842
Fixes: f2e01f0e40 ("fix(note_actionbar): add invisible label to stabilize section width ¯\_(ツ)_/¯")
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-29 10:13:43 -07:00
William Casarin 1fabd347ca Merge remote-tracking branch 'github/pr/1031' 2025-07-29 10:08:43 -07:00
William Casarin 0087fe7dff media/viewer: slower animation
so you can actually see whats going on

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-28 16:37:53 -07:00
William Casarin 51f7744149 media/viewer: fullscreen transition animations
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-28 16:12:29 -07:00
William Casarin 6d393c9c37 media/viewer: provide image-click provenance
We will be using this for transitions

Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-28 14:19:03 -07:00