(&self, avd_name: &str)
| 843 | } |
| 844 | |
| 845 | fn resolve_serial(&self, avd_name: &str) -> Result<String, AppError> { |
| 846 | if let Some(serial) = self.running_emulators()?.remove(avd_name) { |
| 847 | return Ok(serial); |
| 848 | } |
| 849 | let serials = self.online_emulator_serials()?; |
| 850 | if serials.len() == 1 && self.known_avd(avd_name)? { |
| 851 | return Ok(serials[0].clone()); |
| 852 | } |
| 853 | Err(AppError::native(format!( |
| 854 | "Android emulator `{avd_name}` is not running." |
| 855 | ))) |
| 856 | } |
| 857 | |
| 858 | fn running_emulators(&self) -> Result<HashMap<String, String>, AppError> { |
| 859 | static CACHE: OnceLock<Mutex<TimedMap<String>>> = OnceLock::new(); |
no test coverage detected