notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

commit 8752a49485a3fa18a78e5887f629c2e5510af0d7
parent 14dd7402d062427b90ccb4f6994d13dc33d574f6
Author: William Casarin <jb55@jb55.com>
Date:   Fri, 11 Jul 2025 13:39:29 -0700

android: fix crash on mobile

Signed-off-by: William Casarin <jb55@jb55.com>

Diffstat:
Mcrates/notedeck_columns/src/column.rs | 14++++++++++----
Mcrates/notedeck_columns/src/decks.rs | 4++--
2 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/crates/notedeck_columns/src/column.rs b/crates/notedeck_columns/src/column.rs @@ -158,13 +158,19 @@ impl Columns { } #[inline] - pub fn selected(&self) -> &Column { - &self.columns[self.selected as usize] + pub fn selected(&self) -> Option<&Column> { + if self.columns.is_empty() { + return None; + } + Some(&self.columns[self.selected as usize]) } #[inline] - pub fn selected_mut(&mut self) -> &mut Column { - &mut self.columns[self.selected as usize] + pub fn selected_mut(&mut self) -> Option<&mut Column> { + if self.columns.is_empty() { + return None; + } + Some(&mut self.columns[self.selected as usize]) } #[inline] diff --git a/crates/notedeck_columns/src/decks.rs b/crates/notedeck_columns/src/decks.rs @@ -33,11 +33,11 @@ impl DecksCache { /// Gets the first column in the currently active user's active deck pub fn selected_column_mut(&mut self, accounts: &notedeck::Accounts) -> Option<&mut Column> { self.active_columns_mut(accounts) - .map(|ad| ad.selected_mut()) + .and_then(|ad| ad.selected_mut()) } pub fn selected_column(&self, accounts: &notedeck::Accounts) -> Option<&Column> { - self.active_columns(accounts).map(|ad| ad.selected()) + self.active_columns(accounts).and_then(|ad| ad.selected()) } /// Gets a mutable reference to the active columns