use rust_droid::{Droid, DroidConfig, Target};
use std::path::PathBuf;
use std::time::Duration;
fn main() -> anyhow::Result<()> {
env_logger::Builder::new()
.filter_level(log::LevelFilter::Trace)
.init();
println!("Connecting to device...");
let config = DroidConfig::default();
let mut droid = Droid::new(config)?;
println!("Connection successful!");
let settings_icon_path =
PathBuf::from(env!("CARGO_MANIFEST_DIR")).join("examples/assets/settings_icon.png");
if !settings_icon_path.exists() {
anyhow::bail!("Asset not found: {:?}", settings_icon_path);
}
let settings_icon = Target::Image(settings_icon_path);
let icon_position = droid.wait_for(settings_icon).execute()?;
println!("Settings icon found at: {:?}", icon_position);
println!("Tapping the settings icon...");
droid.touch(icon_position.into()).execute()?;
println!("Waiting for settings page to load...");
droid.sleep(Duration::from_secs(2));
let snapshot_path = "settings_page.png";
println!("Taking a snapshot and saving to '{}'...", snapshot_path);
droid.snapshot(snapshot_path)?;
println!("Snapshot saved successfully.");
println!("Pressing the back button...");
droid
.keyevent(rust_droid::models::KeyCode::Back)
.execute()?;
println!("Script finished successfully!");
Ok(())
}