@Override public void onStoreReady(String s) { session.getDataHandler().checkPermanentStorageData(); session.startEventStream(store.getEventStreamToken()); session.getDataHandler().addListener(evLis); }
@Override public void onSuccess(MXEncryptEventContentResult encryptEventContentResult) { // update the event content with the encrypted data event.type = encryptEventContentResult.mEventType; // Add the "m.relates_to" data to the encrypted event here JsonObject encryptedContent = encryptEventContentResult.mEventContent.getAsJsonObject(); if (relatesTo != null) { encryptedContent.add("m.relates_to", relatesTo); } event.updateContent(encryptedContent); mDataHandler.decryptEvent(event, null); // sending in progress mDataHandler.updateEventState(event, Event.SentState.SENDING); mDataHandler.getDataRetriever().getRoomsRestClient().sendEventToRoom(event.eventId, getRoomId(), encryptEventContentResult.mEventType, encryptEventContentResult.mEventContent.getAsJsonObject(), localCB); }
/** * Refresh the push rules from the account data events list * * @param accountDataElement the account data element */ private void managePushRulesUpdate(AccountDataElement accountDataElement) { Gson gson = JsonUtils.getGson(false); // convert the data to PushRulesResponse // because BingRulesManager supports only PushRulesResponse JsonElement element = gson.toJsonTree(accountDataElement.content); getBingRulesManager().buildRules(gson.fromJson(element, PushRulesResponse.class)); // warn the client that the push rules have been updated onBingRulesUpdate(); }
@Override public void onReadReceiptsLoaded(final String roomId) { final List<ReceiptData> receipts = mDataHandler.getStore().getEventReceipts(roomId, null, false, false); final List<String> senders = new ArrayList<>(); for (ReceiptData receipt : receipts) { senders.add(receipt.userId); } mDataHandler.onReceiptEvent(roomId, senders); } });
@Override public void onSuccess(String aDisplayname) { if (mDataHandler.isAlive()) { // local value displayname = aDisplayname; // store metadata mDataHandler.getStore().setDisplayName(aDisplayname, System.currentTimeMillis()); mIsDisplayNameRefreshed = true; // jump to the next items refreshUserInfos(true, null); } }
MXSession bobSession2 = new MXSession.Builder(hs, new MXDataHandler(store, bobCredentials), context) .withLegacyCryptoStore(mCryptoTestHelper.getUSE_LEGACY_CRYPTO_STORE()) .build(); bobSession2.getDataHandler().addListener(eventListener); bobSession2.getDataHandler().getStore().open(); bobSession2.startEventStream(null); Room roomFromBobPOV = bobSession2.getDataHandler().getRoom(aliceRoomId);
final Room roomFromBobPOV = bobSession.getDataHandler().getRoom(aliceRoomId); final Room roomFromAlicePOV = aliceSession.getDataHandler().getRoom(aliceRoomId); bobSession.getDataHandler().addListener(bobEventListener); bobSession.getDataHandler().onToDeviceEvent(toDeviceEvent); bobSession.getDataHandler().decryptEvent(event, null); mCryptoTestHelper.checkEncryptedEvent(event, aliceRoomId, messageFromAlice, aliceSession);
aliceSession.getCrypto().setWarnOnUnknownDevices(false); final Room roomFromBobPOV = bobSession.getDataHandler().getRoom(aliceRoomId); final Room roomFromAlicePOV = aliceSession.getDataHandler().getRoom(aliceRoomId); final Map<String, Object> results = new HashMap<>(); bobSession.getDataHandler().addListener(new MXEventListener() { @Override public void onToDeviceEvent(Event event) {
/** * Cancel any pending pagination requests */ @Override public void cancelPaginationRequests() { mDataHandler.getDataRetriever().cancelHistoryRequests(mRoomId); mIsBackPaginating = false; mIsForwardPaginating = false; }
/** * Get the room object for the corresponding room id. Creates and initializes the object if there is none. * * @param roomId the room id * @return the corresponding room */ public Room getRoom(String roomId) { return getRoom(roomId, true); }
dh = new MXDataHandler(store, hsConfig.getCredentials()); session.getDataHandler().checkPermanentStorageData(); session.startEventStream(store.getEventStreamToken()); session.getDataHandler().addListener(evLis); } else { store.addMXStoreListener(new IMXStoreListener() {
final MXDataHandler dataHandler = room.getDataHandler(); final String timelineId = mEventTimeline.getTimelineId(); final MyUser myUser = dataHandler.getMyUser(); dataHandler.decryptEvent(event, timelineId); dataHandler.getCallsManager().handleCallEvent(store, event); storeLiveRoomEvent(dataHandler, store, event, false); dataHandler.onLiveEvent(event, roomState); if (Event.EVENT_TYPE_STATE_ROOM_MEMBER.equals(event.getType()) && TextUtils.equals(event.getSender(), dataHandler.getUserId())) { EventContent eventContent = JsonUtils.toEventContent(event.getContentAsJsonObject()); EventContent prevEventContent = event.getPrevContent(); dataHandler.onAccountInfoUpdate(myUser); dataHandler.onLiveEvent(event, previousState);
final Room roomFromBobPOV = bobSession.getDataHandler().getRoom(aliceRoomId); final Room roomFromAlicePOV = aliceSession.getDataHandler().getRoom(aliceRoomId); bobSession.getDataHandler().addListener(new MXEventListener() { @Override public void onToDeviceEvent(Event event) { bobSession.getDataHandler().decryptEvent(decryptedEvent, null); mCryptoTestHelper.checkEncryptedEvent(decryptedEvent, aliceRoomId, messageFromAlice, aliceSession);
aliceSession.getCrypto().setWarnOnUnknownDevices(false); final Room roomFromBobPOV = bobSession.getDataHandler().getRoom(aliceRoomId); final Room roomFromAlicePOV = aliceSession.getDataHandler().getRoom(aliceRoomId); bobSession.getDataHandler().addListener(bobEventListener); aliceSession2.getCrypto().setWarnOnUnknownDevices(false); Room roomFromBob2POV = bobSession2.getDataHandler().getRoom(aliceRoomId); Room roomFromAlice2POV = aliceSession2.getDataHandler().getRoom(aliceRoomId); event = bobSession2.getDataHandler().getStore().getLatestEvent(aliceRoomId); Assert.assertNotNull(event); Assert.assertTrue(event.isEncrypted());
/** * This methods init the event stream and check for initial sync * * @param session the session to sync * @param withCrypto true if crypto is enabled and should be checked */ public void syncSession(@Nonnull final MXSession session, final boolean withCrypto) throws InterruptedException { final Map<String, Boolean> params = new HashMap<>(); final int sizeOfLock = withCrypto ? 2 : 1; final CountDownLatch lock2 = new CountDownLatch(sizeOfLock); session.getDataHandler().addListener(new MXEventListener() { @Override public void onInitialSyncComplete(String toToken) { params.put("isInit", true); lock2.countDown(); } @Override public void onCryptoSyncComplete() { params.put("onCryptoSyncComplete", true); lock2.countDown(); } }); session.getDataHandler().getStore().open(); session.startEventStream(null); await(lock2); Assert.assertTrue(params.containsKey("isInit")); if (withCrypto) { Assert.assertTrue(params.containsKey("onCryptoSyncComplete")); } }
/** * Constructor * * @param dataHandler the data handler * @param restClient the group rest client */ public GroupsManager(MXDataHandler dataHandler, GroupsRestClient restClient) { mDataHandler = dataHandler; mStore = mDataHandler.getStore(); mGroupsRestClient = restClient; mUIHandler = new Handler(Looper.getMainLooper()); }
final boolean checkRedactedStateEvent) { boolean shouldBeSaved = false; String myUserId = dataHandler.getCredentials().userId; if (null != dataHandler.getCrypto()) { dataHandler.decryptEvent(indexedEvent, mEventTimeline.getTimelineId()); dataHandler.onNewRoom(event.roomId); final String membership = event.getContentAsJsonObject().getAsJsonPrimitive("membership").getAsString(); if (RoomMember.MEMBERSHIP_JOIN.equals(membership)) { dataHandler.onJoinRoom(event.roomId); } else if (RoomMember.MEMBERSHIP_INVITE.equals(membership)) { dataHandler.onNewRoom(event.roomId);
private void RoomSummary_CheckRoomSummaryIsNullAfterLeavingFromAnotherDevice(boolean withLazyLoading) throws Exception { final LazyLoadingScenarioData data = mLazyLoadingTestHelper.createScenario(withLazyLoading); final CountDownLatch lock = new CountDownLatch(1); data.aliceSession.getDataHandler().getDataRetriever().getRoomsRestClient().leaveRoom(data.roomId, new TestApiCallback<Void>(lock)); mTestHelper.await(lock); mTestHelper.syncSession(data.bobSession, false); final Room bobRoom = data.bobSession.getDataHandler().getRoom(data.roomId); mTestHelper.sendTextMessage(bobRoom, "New bob message", 50); mTestHelper.syncSession(data.aliceSession, false); final RoomSummary roomSummary = data.aliceSession.getDataHandler().getStore().getSummary(data.roomId); Assert.assertNull(roomSummary); mLazyLoadingTestHelper.clearAllSessions(data); }
/** * Set the event listener to send back events to. This is typically the DataHandler for dispatching the events to listeners. * * @param dataHandler should be the main data handler for dispatching back events to registered listeners. */ public void setDataHandler(MXDataHandler dataHandler) { mDataHandler = dataHandler; for (IMXEventListener listener : getPendingListeners()) { mDataHandler.addListener(listener); } }