diff --git a/src/viewmodels/ChatterboxViewModel.ts b/src/viewmodels/ChatterboxViewModel.ts index af2de40fb1827fa761eb0a6f6f492da2289feeac..f225dbcf79987edbde8d15639dc7fbf6a8e799dc 100644 --- a/src/viewmodels/ChatterboxViewModel.ts +++ b/src/viewmodels/ChatterboxViewModel.ts @@ -55,6 +55,7 @@ export class ChatterboxViewModel extends ViewModel { const roomStatusObservable = await this._session.observeRoomStatus(roomBeingCreated.id); await roomStatusObservable.waitFor(status => status === (RoomStatus.BeingCreated | RoomStatus.Replaced)).promise; const roomId = roomBeingCreated.roomId; + await this.platform.settingsStorage.setString("created-room-id", roomId); room = this._session.rooms.get(roomId); return room; } diff --git a/src/viewmodels/RootViewModel.ts b/src/viewmodels/RootViewModel.ts index 43387c833e29da7c05127e5b809e7e2800bf5041..82e515ccbde432136c005c35f9135fc601bb8cae 100644 --- a/src/viewmodels/RootViewModel.ts +++ b/src/viewmodels/RootViewModel.ts @@ -1,4 +1,4 @@ -import { ViewModel, Client, Navigation, createRouter, Platform } from "hydrogen-view-sdk"; +import { ViewModel, Client, Navigation, createRouter, Platform, RoomStatus } from "hydrogen-view-sdk"; import { IChatterboxConfig } from "../types/IChatterboxConfig"; import { ChatterboxViewModel } from "./ChatterboxViewModel"; import "hydrogen-view-sdk/style.css"; @@ -99,8 +99,11 @@ export class RootViewModel extends ViewModel { return false; } - private _watchNotificationCount() { - const [room] = this._client.session.rooms.values(); + private async _watchNotificationCount() { + const roomId = await this.platform.settingsStorage.getString("created-room-id") ?? this._config.auto_join_room; + const observable = await this._client.session.observeRoomStatus(roomId); + await observable.waitFor((status) => status === RoomStatus.Joined).promise; + const room = this._client.session.rooms.get(roomId); let previousCount = room.notificationCount; (window as any).sendNotificationCount(previousCount); const subscription = {