From 8752a49485a3fa18a78e5887f629c2e5510af0d7 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Fri, 11 Jul 2025 13:39:29 -0700 Subject: [PATCH] android: fix crash on mobile Signed-off-by: William Casarin --- crates/notedeck_columns/src/column.rs | 14 ++++++++++---- 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 index 4653617a..5c7eb3bf 100644 --- 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 index b61b4ad1..45c719a4 100644 --- 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