@Override public String toString() { return getMyUserId() + " " + super.toString(); } }
/** * Update the account password * * @param oldPassword the former account password * @param newPassword the new account password * @param callback the callback */ public void updatePassword(String oldPassword, String newPassword, ApiCallback<Void> callback) { mProfileRestClient.updatePassword(getMyUserId(), oldPassword, newPassword, callback); }
/** * Gets a bearer token from the homeserver that the user can * present to a third party in order to prove their ownership * of the Matrix account they are logged into. * * @param callback the asynchronous callback called when finished */ public void openIdToken(final ApiCallback<Map<Object, Object>> callback) { mAccountDataRestClient.openIdToken(getMyUserId(), callback); }
/** * Triggers a request to update the userIds to ignore * * @param userIds the userIds to ignore * @param callback the callback */ private void updateUsers(List<String> userIds, ApiCallback<Void> callback) { Map<String, Object> ignoredUsersDict = new HashMap<>(); for (String userId : userIds) { ignoredUsersDict.put(userId, new HashMap<>()); } Map<String, Object> params = new HashMap<>(); params.put(AccountDataElement.ACCOUNT_DATA_KEY_IGNORED_USERS, ignoredUsersDict); mAccountDataRestClient.setAccountData(getMyUserId(), AccountDataElement.ACCOUNT_DATA_TYPE_IGNORED_USER_LIST, params, callback); }
private void changeDisplayname(String roomId, String displayname) { Map<String, Object> params = new HashMap<>(); params.put("displayname", displayname); params.put("membership", "join"); session.getRoomsApiClient().sendStateEvent(roomId, "m.room.member", session.getMyUserId(), params, new SimpleApiCallback<Void>()); }
final boolean eraseUserData, final ApiCallback<Void> callback) { mProfileRestClient.deactivateAccount(getMyUserId(), userPassword, eraseUserData, new SimpleApiCallback<Void>(callback) {
/** * Helper for the real decryptEvent and for _retryDecryption. If * requestKeysOnFail is true, we'll send an m.room_key_request when we fail * to decrypt the event due to missing megolm keys. * * @param event the event */ private void requestKeysForEvent(Event event) { String sender = event.getSender(); EncryptedEventContent wireContent = JsonUtils.toEncryptedEventContent(event.getWireContent()); List<Map<String, String>> recipients = new ArrayList<>(); Map<String, String> selfMap = new HashMap<>(); selfMap.put("userId", mSession.getMyUserId()); selfMap.put("deviceId", "*"); recipients.add(selfMap); if (!TextUtils.equals(sender, mSession.getMyUserId())) { Map<String, String> senderMap = new HashMap<>(); senderMap.put("userId", sender); senderMap.put("deviceId", wireContent.device_id); recipients.add(senderMap); } Map<String, String> requestBody = new HashMap<>(); requestBody.put("room_id", event.roomId); requestBody.put("algorithm", wireContent.algorithm); requestBody.put("sender_key", wireContent.sender_key); requestBody.put("session_id", wireContent.session_id); mSession.getCrypto().requestRoomKey(requestBody, recipients); }
Log.d(LOG_TAG, "## addUserWidget()"); mAccountDataRestClient.setAccountData(getMyUserId(), AccountDataElement.ACCOUNT_DATA_TYPE_WIDGETS, params, new ApiCallback<Void>() { @Override public void onSuccess(Void info) {
@Override public void onLiveEvent(Event event, RoomState roomState) { if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE) && !TextUtils.equals(event.getSender(), aliceSession.getMyUserId())) { results.put("aliceEcho", event); lock2.countDown(); } } };
@Override public void onLiveEvent(Event event, RoomState roomState) { if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE_ENCRYPTED) && !TextUtils.equals(event.getSender(), bobSession.getMyUserId())) { results.put("bobEcho", event); lock1.countDown(); } } };
@Override public void onLiveEvent(Event event, RoomState roomState) { if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE) && !TextUtils.equals(event.getSender(), bobSession.getMyUserId())) { bobReceivedEvents.add(event); mCryptoTestHelper.checkEncryptedEvent(event, aliceRoomId, mCryptoTestHelper.getMessagesFromAlice().get(nbReceivedMessagesFromAlice[0]), aliceSession); nbReceivedMessagesFromAlice[0]++; list.get(list.size() - 1).countDown(); } } };
@Override public void onLiveEvent(Event event, RoomState roomState) { if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE) && !TextUtils.equals(event.getSender(), bobSession.getMyUserId())) { mCryptoTestHelper.checkEncryptedEvent(event, aliceRoomId, mCryptoTestHelper.getMessagesFromAlice().get(nbReceivedMessagesFromAlice[0]), aliceSession); nbReceivedMessagesFromAlice[0]++; list.get(list.size() - 1).countDown(); } } };
@Override public void onLiveEvent(Event event, RoomState roomState) { if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE) && !TextUtils.equals(event.getSender(), aliceSession.getMyUserId())) { mCryptoTestHelper.checkEncryptedEvent(event, aliceRoomId, mCryptoTestHelper.getMessagesFromBob().get(nbReceivedMessagesFromBob[0]), bobSession); nbReceivedMessagesFromBob[0]++; list.get(list.size() - 1).countDown(); } } };
mCryptoStore.storeUserDevice(userId, device); if (userId.equals(mSession.getMyUserId())) {
@Override public void onLiveEvent(Event event, RoomState roomState) { if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE) && !TextUtils.equals(event.getSender(), aliceSession.getMyUserId())) { aliceReceivedEvents.add(event); try { // "In reply to" format for body String expectedMessage = "> <" + aliceSession.getMyUserId() + "> " + mCryptoTestHelper.getMessagesFromAlice().get(nbReceivedMessagesFromAlice[0] - 1) + "\n\n" + mCryptoTestHelper.getMessagesFromBob().get(nbReceivedMessagesFromBob[0]); mCryptoTestHelper.checkEncryptedEvent(event, aliceRoomId, expectedMessage, bobSession); nbReceivedMessagesFromBob[0]++; list.get(list.size() - 1).countDown(); } catch (Exception e) { } } } };
/** * Convert a filter to a filterId * Either it is already known to the server, or send the filter to the server to get a filterId */ private void convertFilterToFilterId() { // Ensure mCurrentFilter has not been updated in the same time final String wantedJsonFilter = mCurrentFilter.toJSONString(); // Check if the current filter is known by the server, to directly use the filterId String filterId = getDataHandler().getStore().getFilters().get(wantedJsonFilter); if (TextUtils.isEmpty(filterId)) { // enable the filter in JSON representation so do not block sync until the filter response is there mEventsThread.setFilterOrFilterId(wantedJsonFilter); // Send the filter to the server mFilterRestClient.uploadFilter(getMyUserId(), mCurrentFilter, new SimpleApiCallback<FilterResponse>() { @Override public void onSuccess(FilterResponse filter) { // Store the couple filter/filterId getDataHandler().getStore().addFilter(wantedJsonFilter, filter.filterId); // Ensure the filter is still corresponding to the current filter if (TextUtils.equals(wantedJsonFilter, mCurrentFilter.toJSONString())) { // Tell the event thread to use the id now mEventsThread.setFilterOrFilterId(filter.filterId); } } }); } else { // Tell the event thread to use the id now mEventsThread.setFilterOrFilterId(filterId); } }
@Override public void onLiveEvent(Event event, RoomState roomState) { if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE) && !TextUtils.equals(event.getSender(), bobSession.getMyUserId())) { results.put("bobEcho", event); event.setClearData(null); bobSession.getDataHandler().decryptEvent(event, roomFromBobPOV.getTimeline().getTimelineId()); results.put("decrypted", event); lock1.countDown(); } } };
@Override public void onEvent(Event event, EventTimeline.Direction direction, RoomState roomState) { if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE)) { messageCount++; Log.d("TAG", "Receiving message #" + messageCount + ": " + JsonUtils.toMessage(event.getContent()).body); if (messageCount == 1) { // We received the Event from bob Assert.assertEquals(event.sender, data.bobSession.getMyUserId()); // Bob is known Assert.assertNotNull(eventTimeline.getState().getMember(data.bobSession.getMyUserId())); // With LazyLoading, Alice and Sam are not known by Alice yet Assert.assertEquals(withLazyLoading, eventTimeline.getState().getMember(data.aliceSession.getMyUserId()) == null); Assert.assertEquals(withLazyLoading, eventTimeline.getState().getMember(data.samSession.getMyUserId()) == null); } else if (messageCount == 2) { // We received the Event from Alice Assert.assertEquals(event.sender, data.aliceSession.getMyUserId()); // Alice and Bob are known Assert.assertNotNull(eventTimeline.getState().getMember(data.aliceSession.getMyUserId())); Assert.assertNotNull(eventTimeline.getState().getMember(data.bobSession.getMyUserId())); // With LazyLoading, Sam is not known by Alice yet Assert.assertEquals(withLazyLoading, eventTimeline.getState().getMember(data.samSession.getMyUserId()) == null); lock.countDown(); } } else { Log.d("TAG", "Receiving other event: " + event.getType()); } } });
@Override public void onEvent(Event event, EventTimeline.Direction direction, RoomState roomState) { if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE)) { messageCount++; Log.d("TAG", "Receiving message #" + messageCount + ": " + JsonUtils.toMessage(event.getContent()).body); if (messageCount == 1) { // We received the Event from bob Assert.assertEquals(event.sender, data.bobSession.getMyUserId()); // Bob is known Assert.assertNotNull(eventTimeline.getState().getMember(data.bobSession.getMyUserId())); // With LazyLoading, Alice and Sam are not known by Alice yet Assert.assertEquals(withLazyLoading, eventTimeline.getState().getMember(data.aliceSession.getMyUserId()) == null); Assert.assertEquals(withLazyLoading, eventTimeline.getState().getMember(data.samSession.getMyUserId()) == null); } else if (messageCount == 2) { // We received the Event from Alice Assert.assertEquals(event.sender, data.aliceSession.getMyUserId()); // Alice and Bob are known Assert.assertNotNull(eventTimeline.getState().getMember(data.aliceSession.getMyUserId())); Assert.assertNotNull(eventTimeline.getState().getMember(data.bobSession.getMyUserId())); // With LazyLoading, Sam is not known by Alice yet Assert.assertEquals(withLazyLoading, eventTimeline.getState().getMember(data.samSession.getMyUserId()) == null); lock.countDown(); } } else { Log.d("TAG", "Receiving other event: " + event.getType()); } } });
@Override public void onEvent(Event event, EventTimeline.Direction direction, RoomState roomState) { messageCount++; if (TextUtils.equals(event.getType(), Event.EVENT_TYPE_MESSAGE)) { Log.d("TAG", "Receiving message #" + messageCount + ": " + JsonUtils.toMessage(event.getContent()).body); } else { Log.d("TAG", "Receiving event: #" + messageCount + " of type " + event.getType()); } if (messageCount == 10) { Assert.assertNotNull(liveTimeline.getState().getMember(data.aliceSession.getMyUserId())); // With LazyLoading, Bob and Sam are not known by Alice yet Assert.assertEquals(withLazyLoading, liveTimeline.getState().getMember(data.bobSession.getMyUserId()) == null); Assert.assertEquals(withLazyLoading, liveTimeline.getState().getMember(data.samSession.getMyUserId()) == null); Assert.assertEquals(withLazyLoading, roomState.getMember(data.bobSession.getMyUserId()) == null); Assert.assertEquals(withLazyLoading, roomState.getMember(data.samSession.getMyUserId()) == null); } else if (messageCount == 50) { // Bob is known now Assert.assertNotNull(liveTimeline.getState().getMember(data.bobSession.getMyUserId())); // With LazyLoading, Sam is not known by Alice yet Assert.assertEquals(withLazyLoading, liveTimeline.getState().getMember(data.samSession.getMyUserId()) == null); Assert.assertEquals(withLazyLoading, roomState.getMember(data.samSession.getMyUserId()) == null); } else if (messageCount == 105) { // All users are known now Assert.assertNotNull(liveTimeline.getState().getMember(data.aliceSession.getMyUserId())); Assert.assertNotNull(liveTimeline.getState().getMember(data.bobSession.getMyUserId())); Assert.assertNotNull(liveTimeline.getState().getMember(data.samSession.getMyUserId())); lock.countDown(); } } });