Don't download room history in ephemeral mode
This commit is contained in:
parent
68bd6042c5
commit
4956027027
1 changed files with 22 additions and 6 deletions
|
|
@ -74,14 +74,23 @@ impl State {
|
||||||
event_tx: mpsc::UnboundedSender<Event>,
|
event_tx: mpsc::UnboundedSender<Event>,
|
||||||
mut event_rx: mpsc::UnboundedReceiver<Event>,
|
mut event_rx: mpsc::UnboundedReceiver<Event>,
|
||||||
euph_room_event_tx: mpsc::UnboundedSender<EuphRoomEvent>,
|
euph_room_event_tx: mpsc::UnboundedSender<EuphRoomEvent>,
|
||||||
|
ephemeral: bool,
|
||||||
) {
|
) {
|
||||||
let vault = self.vault.clone();
|
let vault = self.vault.clone();
|
||||||
let name = self.name.clone();
|
let name = self.name.clone();
|
||||||
let result = select! {
|
let result = if ephemeral {
|
||||||
_ = canary => Ok(()),
|
select! {
|
||||||
_ = Self::reconnect(&vault, &name, &event_tx) => Ok(()),
|
_ = canary => Ok(()),
|
||||||
_ = Self::regularly_request_logs(&event_tx) => Ok(()),
|
_ = Self::reconnect(&vault, &name, &event_tx) => Ok(()),
|
||||||
e = self.handle_events(&mut event_rx, &euph_room_event_tx) => e,
|
e = self.handle_events(&mut event_rx, &euph_room_event_tx) => e,
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
select! {
|
||||||
|
_ = canary => Ok(()),
|
||||||
|
_ = Self::reconnect(&vault, &name, &event_tx) => Ok(()),
|
||||||
|
e = self.handle_events(&mut event_rx, &euph_room_event_tx) => e,
|
||||||
|
_ = Self::regularly_request_logs(&event_tx) => Ok(()),
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
if let Err(e) = result {
|
if let Err(e) = result {
|
||||||
|
|
@ -406,6 +415,7 @@ impl Room {
|
||||||
let (canary_tx, canary_rx) = oneshot::channel();
|
let (canary_tx, canary_rx) = oneshot::channel();
|
||||||
let (event_tx, event_rx) = mpsc::unbounded_channel();
|
let (event_tx, event_rx) = mpsc::unbounded_channel();
|
||||||
let (euph_room_event_tx, euph_room_event_rx) = mpsc::unbounded_channel();
|
let (euph_room_event_tx, euph_room_event_rx) = mpsc::unbounded_channel();
|
||||||
|
let ephemeral = vault.vault().ephemeral();
|
||||||
|
|
||||||
let state = State {
|
let state = State {
|
||||||
name: vault.room().to_string(),
|
name: vault.room().to_string(),
|
||||||
|
|
@ -415,7 +425,13 @@ impl Room {
|
||||||
requesting_logs: Arc::new(Mutex::new(false)),
|
requesting_logs: Arc::new(Mutex::new(false)),
|
||||||
};
|
};
|
||||||
|
|
||||||
task::spawn(state.run(canary_rx, event_tx.clone(), event_rx, euph_room_event_tx));
|
task::spawn(state.run(
|
||||||
|
canary_rx,
|
||||||
|
event_tx.clone(),
|
||||||
|
event_rx,
|
||||||
|
euph_room_event_tx,
|
||||||
|
ephemeral,
|
||||||
|
));
|
||||||
|
|
||||||
let new_room = Self {
|
let new_room = Self {
|
||||||
canary: canary_tx,
|
canary: canary_tx,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue