- 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
not a great solution but we're going to get a new sub manager
soon so it'll probably get replaced anyway
Signed-off-by: kernelkind <kernelkind@gmail.com>
- 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>
- 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>
kernelkind (4):
add `Accounts` to `NoteContext`
remove `MuteFun` prop
make `Contacts::is_following` use bytes instead of `Pubkey`
migrate to check following through `Contacts::is_following`
The code currently mutates the profile state during nav rendering,
which screws up profile state updates. This syncs ProfileStates
in the ui. before it was getting out of sync.
Signed-off-by: William Casarin <jb55@jb55.com>