Commit Graph

21 Commits

Author SHA1 Message Date
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
kernelkind
2a439b1f30 nip 51 set widget
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-08-17 15:07:04 -04:00
kernelkind
b750c0a927 use toolbar in columns rather than chrome
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-08-13 19:20:38 -04: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
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
a4c1b38116 introduce HybridFilter
This introduces a new filter construct called HybridFilter. This allows
filters to have different remote filter than local ones. For example,
adding kind0 to the remote for keeping profiles up to date on your
timeline, but only subscribing to kind1 locally.

Only home/contact filters use this feature for now.

Fixes: https://github.com/damus-io/notedeck/issues/995
Signed-off-by: William Casarin <jb55@jb55.com>
2025-07-17 13:54:43 -07:00
Fernando López Guevara
4bf75c95de feat(note-view): show note client 2025-07-16 17:09:59 -03: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
Fernando López Guevara
36667bc024 feat(app_images): add module to manage static app image assets 2025-06-25 09:53:31 -07:00
kernelkind
c3b8823f72 ui: add hline_with_width
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-06-22 16:00:35 -04: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
kernelkind
a4ec0982d2 ImagePulseTint -> PulseAlpha
make it more generic to pulse alpha values, not necessarily image
tints

Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:56:22 -04:00
kernelkind
b9e2daf47a introduce blur
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:54:34 -04:00
kernelkind
badf3070c8 introduce JobsCache
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:54:26 -04:00
kernelkind
e453c742de add trust_media_from_pk2 method
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-05-04 12:53:49 -04:00
William Casarin
8af80d7d10 ui: move note and profile rendering to notedeck_ui
We want to render notes in other apps like dave, so lets move
our note rendering to notedeck_ui. We rework NoteAction so it doesn't
have anything specific to notedeck_columns

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-17 12:34:43 -07:00
kernelkind
45fe192f75 introduce ImagePulseTint
Signed-off-by: kernelkind <kernelkind@gmail.com>
2025-04-16 13:34:55 -04:00
William Casarin
66377351b3 ui: add some margin to chrome sidebar
Looks a bit better
2025-04-15 08:24:04 -07:00
William Casarin
418e08541d notedeck: include frame history
for debugging.

Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:30:22 -07:00
William Casarin
c6a7a50f81 dave: improve design
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:03 -07:00
William Casarin
9c9b4199f5 ui crate and chrome sidebar
Signed-off-by: William Casarin <jb55@jb55.com>
2025-04-14 11:29:01 -07:00