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:
M | crates/notedeck_columns/src/column.rs | | | 14 | ++++++++++---- |
M | crates/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: ¬edeck::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: ¬edeck::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