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
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
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
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
3d18db8fd2
Fullscreen MediaViewer refactor
...
- Moved media related logic into notedeck instead of the ui crate,
since they pertain to Images/ImageCache based systems
- Made RenderableMedia owned to make it less of a nightmware
to work with and the perf should be negligible
- Added a ImageMetadata cache to Images. This is referenced
whenever we encounter an image so we don't have to
redo the work all of the time
- Relpaced our ad-hoc, hand(vibe?)-coded panning and zoom logic
with the Scene widget, which is explicitly designed for
this use case
- Extracted and detangle fullscreen media rendering from inside of note
rendering. We instead let the application decide what action they
want to perform when note media is clicked on.
- We add an on_view_media action to MediaAction for the application to
handle. The Columns app uses this toggle a FullscreenMedia app
option bits whenever we get a MediaAction::ViewMedis(urls).
Signed-off-by: William Casarin <jb55@jb55.com >
2025-07-28 08:57:57 -07:00
William Casarin
ff0428550b
fix missing zap button
...
Changelog-Fixed: Fix missing zap button
Fixes: 397bfce817 ("add `Accounts` to `NoteContext`")
Fixes: https://github.com/damus-io/notedeck/issues/1021
Signed-off-by: William Casarin <jb55@jb55.com >
2025-07-23 11:49:03 -07:00
William Casarin
ebf31abafa
wallet: remove unused flag in note context
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-07-23 09:36:38 -07:00
William Casarin
3d4db820b4
i18n: make localization context non-global
...
- Simplify Localization{Context,Manager} to just Localization
- Fixed a bunch of lifetime issueo
- Removed all Arcs and Locks
- Removed globals
* widgets now need access to &mut Localization for i18n
Signed-off-by: William Casarin <jb55@jb55.com >
2025-07-22 09:49:32 -07:00
3f5036bd32
Internationalize user-facing strings and export them for translations
...
Changelog-Added: Internationalized user-facing strings and exported them for translations
Signed-off-by: Terry Yiu <git@tyiu.xyz >
2025-07-21 12:45:29 -07:00
William Casarin
8a1398face
clippy fixes
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-07-17 13:54:43 -07:00
William Casarin
461665f599
ui: remove show_pointer
...
This can just be achieved by on_hover_cursor
Didn't realize this.
Signed-off-by: William Casarin <jb55@jb55.com >
2025-07-16 09:17:27 -07:00
kernelkind
397bfce817
add Accounts to NoteContext
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-14 21:34:02 -04: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
kernelkind
8e92a97a57
make selected accounts non optional
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-07-02 11:41:17 -04: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
Fernando López Guevara
36667bc024
feat(app_images): add module to manage static app image assets
2025-06-25 09:53:31 -07:00
Fernando López Guevara
c6dbb0e856
fix(content): handle case where notes are not loaded
2025-06-24 09:15:52 -07:00
William Casarin
be9406da7b
dave: initial android fixes
2025-06-16 16:11:51 -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
kernelkind
54c0fdb563
don't show zap button if no wallet
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-05-17 14:29:43 -04:00
kernelkind
7d2112b472
make Widget impl ProfilePic mutably
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-05-04 12:57:54 -04:00
kernelkind
a29277d263
propagate JobsCache
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-05-04 12:55:53 -04:00
kernelkind
e6212e5d17
note: remove unnecessary derive macros from NoteAction
...
Signed-off-by: kernelkind <kernelkind@gmail.com >
2025-05-04 12:54:38 -04: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
e8a1233174
dave: bubble note actions to chrome
...
This allows chrome to pass note actions to other apps
2025-04-22 18:42:12 -07:00
William Casarin
4cedea9fdb
dave: more flexible env config
...
With this I was able to get openrouter working:
DAVE_API_KEY=$OPENROUTER_API_KEY
DAVE_ENDPOINT=https://openrouter.ai/api/v1
DAVE_MODEL="google/gemini-2.0-flash-001"
RUST_LOG=async_openai=debug,notedeck_dave=debug
./target/release/notedeck
2025-04-22 16:46:38 -07:00
William Casarin
5c0874ab85
dave: give present notes a proper tool response
...
so the ai know we actually did something
2025-04-22 16:20:26 -07:00
William Casarin
56f5151739
dave: return tool errors back to the ai
...
So that it can correct itself
2025-04-22 16:05:54 -07:00
William Casarin
9692b6b9fe
dave: add query rendering, fix author queries
2025-04-22 10:50:58 -07:00
William Casarin
88aa78dc03
dave: ensure system prompt is included when reset
2025-04-21 17:27:38 -07:00
William Casarin
d4681801e8
dave: add new chat button
2025-04-21 17:10:03 -07:00
William Casarin
2fdb36475a
dave: add a few docs
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-21 12:11:21 -07:00
William Casarin
04a11fd45d
dave: cleanly separate ui from logic
...
This is a good demo of how easy it is to build a notedeck app,
so let's detangle the ui from logic to showcase this
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-21 12:05:27 -07:00
William Casarin
5811a5f4e6
dave: improve multi-note display
2025-04-20 09:05:02 -07:00
William Casarin
f496d4b8c4
dave: initial note rendering
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-18 17:03:59 -07:00
William Casarin
d04fc892a7
dave: constrain power for now
...
we will focus on more specific tools instead
2025-04-17 12:53:31 -07:00
William Casarin
7836bde868
dave: fix input box
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-17 00:16:55 -07:00
William Casarin
fbdc2527ca
dave: give up on plaintext formatting
...
its so heavily trained to use markdown, lets just use that
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-17 00:16:30 -07:00
William Casarin
b50bc2e988
dave: refactor a bit
...
pulling tokens isn't really a part of rendering,
so let's pull that out
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-16 22:41:41 -07:00
William Casarin
4a0e2fa347
dave: tweak prompt
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-16 20:35:39 -07:00
William Casarin
e5c3bb4fe9
dave: fix bugs
...
fixed some bugs i introduced during the refactor
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-14 16:13:40 -07:00
William Casarin
956c557851
dave: only search non-replies
...
I think this makes the most sense for most queries
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-14 16:02:33 -07:00
William Casarin
2ed561579f
dave: add a few tool docs
...
So that readers of this code can actually figure out
what these types actually mean.
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-14 12:45:19 -07:00
William Casarin
be47a692f6
dave: remove old file
...
Signed-off-by: William Casarin <jb55@jb55.com >
2025-04-14 12:38:36 -07:00