use crate::app::lifecycle::SuspendRequest;
use crate::app::plugin::Plugin;
use crate::app::{App, RendererFactory};
use crate::ecs::World;
use crate::input::event::input::InputEvent;
use crate::surface::Surface;
#[derive(Default)]
pub struct AutoSuspendPlugin;
impl<B, F> Plugin<B, F> for AutoSuspendPlugin
where
B: Surface,
F: RendererFactory<B>,
{
fn build(&mut self, _app: &mut App<B, F>) {}
fn on_event(&mut self, world: &mut World, event: &InputEvent) -> bool {
match event {
InputEvent::AppSuspend => {
world.insert_resource(SuspendRequest::Suspend);
true
}
InputEvent::AppResume => {
world.insert_resource(SuspendRequest::Resume);
true
}
_ => false,
}
}
}