|
|
@@ -65,12 +65,16 @@ impl PairingManager { |
|
|
|
.or_else(|(bridges, i, err)| { |
|
|
|
match err { |
|
|
|
huey::HueError::LinkButtonNotPressed => { |
|
|
|
let i = if i + 1 < bridges.len() { |
|
|
|
i + 1 |
|
|
|
if i + 1 < bridges.len() { |
|
|
|
run(bridges, i + 1) |
|
|
|
} else { |
|
|
|
0 |
|
|
|
}; |
|
|
|
run(bridges, i) |
|
|
|
Box::new(tokio::timer::Delay::new(std::time::Instant::now() + std::time::Duration::from_millis(400)) |
|
|
|
.or_else(|err| { |
|
|
|
eprintln!("Timer failed: {:?}", err); |
|
|
|
Ok(()) |
|
|
|
}) |
|
|
|
.and_then(|_| run(bridges, 0))) |
|
|
|
} |
|
|
|
}, |
|
|
|
other_err => { |
|
|
|
Box::new(futures::future::err((bridges, i, other_err))) |
|
|
|