summaryrefslogtreecommitdiffhomepage
path: root/talpid-core/src/offline/android.rs
blob: 4947c7f61ebdf08671fa0fa690cc193cbb8de345 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
use crate::connectivity_listener::{ConnectivityListener, Error};
use futures::channel::mpsc::UnboundedSender;
use talpid_types::net::Connectivity;

pub struct MonitorHandle {
    connectivity_listener: ConnectivityListener,
}

impl MonitorHandle {
    fn new(connectivity_listener: ConnectivityListener) -> Self {
        MonitorHandle {
            connectivity_listener,
        }
    }

    #[allow(clippy::unused_async)]
    pub async fn connectivity(&self) -> Connectivity {
        self.connectivity_listener.connectivity()
    }
}

#[allow(clippy::unused_async)]
pub async fn spawn_monitor(
    sender: UnboundedSender<Connectivity>,
    connectivity_listener: ConnectivityListener,
) -> Result<MonitorHandle, Error> {
    let mut monitor_handle = MonitorHandle::new(connectivity_listener);
    monitor_handle
        .connectivity_listener
        .set_connectivity_listener(sender);
    Ok(monitor_handle)
}