use crate::menu::MenuCommand;
use ratatui::crossterm::event::KeyEvent;
#[derive(Debug, Clone)]
pub enum Message {
MenuUp,
MenuDown,
EnterChild,
ExitChild,
SectionNext,
SectionPrev,
RefreshDeviceInfo,
NextDevice,
ExecuteCommand(MenuCommand),
CommandStarted,
CommandCompleted(CommandResult),
ScrollUp,
ScrollDown,
ScrollPageUp,
ScrollPageDown,
ScrollToTop,
ScrollToBottom,
OpenLogcat,
LogcatScrollUp,
LogcatScrollDown,
LogcatScrollPageUp,
LogcatScrollPageDown,
LogcatScrollToTop,
LogcatScrollToBottom,
LogcatTogglePause,
LogcatClear,
LogcatCycleLevel,
LogcatToggleSearch,
LogcatToggleTagFilter,
LogcatTogglePackageFilter,
LogcatSearchInput(char),
LogcatSearchBackspace,
LogcatSearchDelete,
LogcatCursorLeft,
LogcatCursorRight,
LogcatExitFilter,
LogcatSave,
LogcatSaveFilteredOnly,
LogcatToggleWordWrap,
LogcatFileSaved(String),
LogcatFileExplorerKey(KeyEvent),
LogcatCancelSave,
LogcatSaveAs,
LogcatToggleRegex,
LogcatToggleExclude,
LogcatToggleCompact,
LogcatToggleDetail,
LogcatBookmarkToggle,
LogcatBookmarkNext,
LogcatBookmarkPrev,
LogcatHScrollLeft,
LogcatHScrollRight,
LogcatHScrollReset,
LogcatCopyLine,
LogcatToggleFold,
LogcatSelectUp,
LogcatSelectDown,
CloseLogcat,
Tick,
Quit,
ReturnToMenu,
SkipStartup,
}
#[derive(Debug, Clone)]
pub enum CommandResult {
Success(String),
Error(String),
}
impl Message {
pub fn is_state_changing(&self) -> bool {
matches!(
self,
Message::ExecuteCommand(_)
| Message::CommandStarted
| Message::CommandCompleted(_)
| Message::Quit
| Message::ReturnToMenu
| Message::EnterChild
| Message::ExitChild
| Message::SkipStartup
| Message::OpenLogcat
| Message::CloseLogcat
| Message::LogcatSave
| Message::LogcatCancelSave
)
}
}