android_tools/adb/
adb_shell_dumpsys.rs1use 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}