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>
- 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>
- 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>
Whats new
=========
- Swipe nav on full screen media
- Made action buttons bigger
- Fix zap button not appearing
- Allow removal of Damoose account
- Profile is now clickable from side bar
- New settings view:
* Resize zoom level
* Clear cache
* Change locale
- Localization support
* German
* Spanish
* French
* Chinese
* Thai
Log
---
Fernando López Guevara (3):
feat(full-screen-media): add swipe navigation
feat(settings): add settings view
fix(columns): prevent crash when switching to account with no columns
Terry Yiu (9):
Add Fluent-based localization manager and add script to export source strings for translations
Add French, German, Simplified Chinese, and Traditional Chinese translations
Add Spanish (Latin America and Spain) translations
Add Thai translations
Add localization documentation to notedeck DEVELOPER.md
Clean up time_ago_since, add tests, and internationalize strings
Fix export_source_strings.py to adjust for tr! and tr_plural! macro signature changes
Internationalize user-facing strings and export them for translations
Update Chinese, French, and German translations
William Casarin (15):
args: add --locale option
debug: add startup query debug log
fix missing zap button
fix one missing home string
gitignore: remove cache
i18n: always have en-XA available
i18n: disable bidi for tests
i18n: disable broken tests for now
i18n: make localization context non-global
media/trust: always show if its yourself
ripgrep: add ignore file for ftl files
settings: fix route to relay
ui/note: make buttons larger
ui/note: small refactor to use returns instead of break
wallet: remove unused flag in note context
kernelkind (14):
add ChromePanelAction::Profile & use for pfp
add new Accounts button to chrome sidebar
allow removal of Damoose account
appease clippy
bugfix: properly sub to new selected acc after removal of selected
bugfix: unsubscribe all decks when log out account
bugfix: unsubscribe from timelines on deck deletion
expose `AccountCache::falback`
fix: sometimes most recent contacts list wasn't used
make `UserAccount` cloneable
move select account logic to own method
use `NwcError` instead of nwc::Error
use saturating sub
name added removed commits
kernelkind <kernelkind@gmail.com> +328 -50 14
Fernando López Guevara <fernando.lguevara@gmail.com> +802 -36 3
William Casarin <jb55@jb55.com> +1603 -1297 15
Terry Yiu <git@tyiu.xyz> +7547 -1024 9
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>
Changelog-Added: Added Fluent-based localization manager and added script to export source strings for translations
Signed-off-by: Terry Yiu <git@tyiu.xyz>
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
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>
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>
- 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: #834Fixes: #836
Signed-off-by: William Casarin <jb55@jb55.com>