android_tools/adb/
adb_shell_dumpsys.rs

1use crate::error::*;
2use std::process::Command;
3
4#[derive(Clone, Default)]
5pub struct AdbShellDumpsys {
6    activity: bool,
7    iphonesybinfo: bool,
8    battery_set_level: Option<String>,
9    battery_set_status: Option<String>,
10    battery_reset: bool,
11    battery_set_usb: Option<String>,
12}
13
14impl AdbShellDumpsys {
15    pub fn new() -> Self {
16        Self {
17            ..Default::default()
18        }
19    }
20
21    pub fn activity(&mut self, activity: bool) -> &mut Self {
22        self.activity = activity;
23        self
24    }
25
26    pub fn iphonesybinfo(&mut self, iphonesybinfo: bool) -> &mut Self {
27        self.iphonesybinfo = iphonesybinfo;
28        self
29    }
30
31    pub fn battery_set_level(&mut self, battery_set_level: String) -> &mut Self {
32        self.battery_set_level = Some(battery_set_level);
33        self
34    }
35
36    pub fn battery_set_status(&mut self, battery_set_status: String) -> &mut Self {
37        self.battery_set_status = Some(battery_set_status);
38        self
39    }
40
41    pub fn battery_reset(&mut self, battery_reset: bool) -> &mut Self {
42        self.battery_reset = battery_reset;
43        self
44    }
45
46    pub fn battery_set_usb(&mut self, battery_set_usb: String) -> &mut Self {
47        self.battery_set_usb = Some(battery_set_usb);
48        self
49    }
50
51    pub fn run(&self) -> Result<()> {
52        let mut dumpsys = Command::new("adb");
53        dumpsys.arg("shell");
54        dumpsys.arg("dumpsys");
55        if self.activity {
56            dumpsys.arg("activity");
57        }
58        if self.iphonesybinfo {
59            dumpsys.arg("iphonesybinfo");
60        }
61        if let Some(battery_set_level) = &self.battery_set_level {
62            dumpsys.arg("battery set level").arg(battery_set_level);
63        }
64        if let Some(battery_set_status) = &self.battery_set_status {
65            dumpsys.arg("battery set status").arg(battery_set_status);
66        }
67        if self.battery_reset {
68            dumpsys.arg("battery reset");
69        }
70        if let Some(battery_set_usb) = &self.battery_set_usb {
71            dumpsys.arg("battery set usb").arg(battery_set_usb);
72        }
73        dumpsys.output_err(true)?;
74        Ok(())
75    }
76}