mirror of
https://github.com/oxen-io/session-desktop.git
synced 2023-12-14 02:12:57 +01:00
remove opengroupmanager singlteon
This commit is contained in:
parent
e090b8e8c6
commit
802bd169d7
4 changed files with 21 additions and 55 deletions
|
@ -32,48 +32,18 @@ import { useInterval } from '../../hooks/useInterval';
|
|||
import { clearSearch } from '../../state/ducks/search';
|
||||
import { showLeftPaneSection } from '../../state/ducks/section';
|
||||
|
||||
import {
|
||||
cleanUpOldDecryptedMedias,
|
||||
getDecryptedMediaUrl,
|
||||
} from '../../session/crypto/DecryptedAttachmentsManager';
|
||||
import { OpenGroupManagerV2 } from '../../opengroup/opengroupV2/OpenGroupManagerV2';
|
||||
import { loadDefaultRooms } from '../../opengroup/opengroupV2/ApiUtil';
|
||||
import { cleanUpOldDecryptedMedias } from '../../session/crypto/DecryptedAttachmentsManager';
|
||||
import { getOpenGroupManager } from '../../opengroup/opengroupV2/OpenGroupManagerV2';
|
||||
import { forceRefreshRandomSnodePool } from '../../session/snode_api/snodePool';
|
||||
import { getSwarmPollingInstance } from '../../session/snode_api';
|
||||
import { IMAGE_JPEG } from '../../types/MIME';
|
||||
import { FSv2 } from '../../fileserver';
|
||||
import { debounce } from 'lodash';
|
||||
import { DURATION } from '../../session/constants';
|
||||
import { actions as conversationActions } from '../../state/ducks/conversations';
|
||||
import { ActionPanelOnionStatusLight, OnionPathModal } from '../OnionStatusPathDialog';
|
||||
import { EditProfileDialog } from '../EditProfileDialog';
|
||||
import { SessionConfirm } from './SessionConfirm';
|
||||
import {
|
||||
getAddModeratorsModal,
|
||||
getAdminLeaveClosedGroupDialog,
|
||||
getChangeNickNameDialog,
|
||||
getConfirmModal,
|
||||
getEditProfileDialog,
|
||||
getInviteContactModal,
|
||||
getOnionPathDialog,
|
||||
getRecoveryPhraseDialog,
|
||||
getRemoveModeratorsModal,
|
||||
getUpdateGroupMembersModal,
|
||||
getUpdateGroupNameModal,
|
||||
getUserDetailsModal,
|
||||
} from '../../state/selectors/modal';
|
||||
import { InviteContactsDialog } from '../conversation/InviteContactsDialog';
|
||||
import { AddModeratorsDialog } from '../conversation/ModeratorsAddDialog';
|
||||
import { RemoveModeratorsDialog } from '../conversation/ModeratorsRemoveDialog';
|
||||
import { UpdateGroupNameDialog } from '../conversation/UpdateGroupNameDialog';
|
||||
import { UpdateGroupMembersDialog } from '../conversation/UpdateGroupMembersDialog';
|
||||
import { UserDetailsDialog } from '../UserDetailsDialog';
|
||||
import { SessionNicknameDialog } from './SessionNicknameDialog';
|
||||
import { editProfileModal, onionPathModal } from '../../state/ducks/modalDialog';
|
||||
import { SessionSeedModal } from './SessionSeedModal';
|
||||
import { AdminLeaveClosedGroupDialog } from '../conversation/AdminLeaveClosedGroupDialog';
|
||||
import { uploadOurAvatar } from '../../interactions/conversationInteractions';
|
||||
import { ModalContainer } from './ModalContainer';
|
||||
import { debounce } from 'underscore';
|
||||
import { loadDefaultRooms } from '../../opengroup/opengroupV2/ApiUtil';
|
||||
import { ActionPanelOnionStatusLight } from '../OnionStatusPathDialog';
|
||||
|
||||
// tslint:disable-next-line: no-import-side-effect no-submodule-imports
|
||||
|
||||
|
@ -265,7 +235,7 @@ const doAppStartUp = () => {
|
|||
|
||||
// this generates the key to encrypt attachments locally
|
||||
void generateAttachmentKeyIfEmpty();
|
||||
void OpenGroupManagerV2.getInstance().startPolling();
|
||||
void getOpenGroupManager().startPolling();
|
||||
// trigger a sync message if needed for our other devices
|
||||
|
||||
void triggerSyncIfNeeded();
|
||||
|
|
|
@ -8,7 +8,7 @@ import {
|
|||
prefixify,
|
||||
publicKeyParam,
|
||||
} from '../utils/OpenGroupUtils';
|
||||
import { OpenGroupManagerV2 } from './OpenGroupManagerV2';
|
||||
import { getOpenGroupManager } from './OpenGroupManagerV2';
|
||||
|
||||
// Inputs that should work:
|
||||
// https://sessionopengroup.co/main?public_key=658d29b91892a2389505596b135e76a53db6e11d613a51dbd3d0816adffb231c
|
||||
|
@ -79,11 +79,7 @@ async function joinOpenGroupV2(room: OpenGroupV2Room, fromConfigMessage: boolean
|
|||
// Try to connect to server
|
||||
try {
|
||||
const conversation = await PromiseUtils.timeout(
|
||||
OpenGroupManagerV2.getInstance().attemptConnectionV2OneAtATime(
|
||||
prefixedServer,
|
||||
roomId,
|
||||
publicKey
|
||||
),
|
||||
getOpenGroupManager().attemptConnectionV2OneAtATime(prefixedServer, roomId, publicKey),
|
||||
20000
|
||||
);
|
||||
|
||||
|
|
|
@ -17,11 +17,18 @@ import _ from 'lodash';
|
|||
import { deleteAuthToken, DeleteAuthTokenRequest } from './ApiAuth';
|
||||
import autoBind from 'auto-bind';
|
||||
|
||||
let instance: OpenGroupManagerV2 | undefined;
|
||||
|
||||
export const getOpenGroupManager = () => {
|
||||
if (!instance) {
|
||||
instance = new OpenGroupManagerV2();
|
||||
}
|
||||
return instance;
|
||||
};
|
||||
|
||||
export class OpenGroupManagerV2 {
|
||||
public static readonly useV2OpenGroups = false;
|
||||
|
||||
private static instance: OpenGroupManagerV2;
|
||||
|
||||
/**
|
||||
* The map of opengroup pollers, by serverUrl.
|
||||
* A single poller polls for every room on the specified serverUrl
|
||||
|
@ -29,17 +36,10 @@ export class OpenGroupManagerV2 {
|
|||
private readonly pollers: Map<string, OpenGroupServerPoller> = new Map();
|
||||
private isPolling = false;
|
||||
|
||||
private constructor() {
|
||||
constructor() {
|
||||
autoBind(this);
|
||||
}
|
||||
|
||||
public static getInstance() {
|
||||
if (!OpenGroupManagerV2.instance) {
|
||||
OpenGroupManagerV2.instance = new OpenGroupManagerV2();
|
||||
}
|
||||
return OpenGroupManagerV2.instance;
|
||||
}
|
||||
|
||||
/**
|
||||
* When we get our configuration from the network, we might get a few times the same open group on two different messages.
|
||||
* If we don't do anything, we will join them multiple times.
|
||||
|
@ -138,7 +138,7 @@ export class OpenGroupManagerV2 {
|
|||
}
|
||||
// remove the roomInfos locally for this open group room
|
||||
await removeV2OpenGroupRoom(roomConvoId);
|
||||
OpenGroupManagerV2.getInstance().removeRoomFromPolledRooms(infos);
|
||||
getOpenGroupManager().removeRoomFromPolledRooms(infos);
|
||||
// no need to remove it from the ConversationController, the convo is already not there
|
||||
}
|
||||
} catch (e) {
|
||||
|
|
|
@ -16,7 +16,7 @@ import { PubKey } from '../types';
|
|||
import { actions as conversationActions } from '../../state/ducks/conversations';
|
||||
import { getV2OpenGroupRoom, removeV2OpenGroupRoom } from '../../data/opengroups';
|
||||
import _ from 'lodash';
|
||||
import { OpenGroupManagerV2 } from '../../opengroup/opengroupV2/OpenGroupManagerV2';
|
||||
import { getOpenGroupManager } from '../../opengroup/opengroupV2/OpenGroupManagerV2';
|
||||
import { deleteAuthToken, DeleteAuthTokenRequest } from '../../opengroup/opengroupV2/ApiAuth';
|
||||
import { deleteMessagesByConvoIdNoConfirmation } from '../../interactions/conversationInteractions';
|
||||
|
||||
|
@ -211,7 +211,7 @@ export class ConversationController {
|
|||
_.pick(roomInfos, 'serverUrl', 'roomId', 'token') as DeleteAuthTokenRequest
|
||||
);
|
||||
}
|
||||
OpenGroupManagerV2.getInstance().removeRoomFromPolledRooms(roomInfos);
|
||||
getOpenGroupManager().removeRoomFromPolledRooms(roomInfos);
|
||||
|
||||
// remove the roomInfos locally for this open group room
|
||||
try {
|
||||
|
|
Loading…
Reference in a new issue