use of org.matrix.androidsdk.data.RoomAccountData in project matrix-android-sdk by matrix-org.
the class MXFileStore method loadRoomAccountData.
/**
* Load the account Data of a dedicated room.
* @param roomId the room Id
* @return true if the operation succeeds.
*/
private boolean loadRoomAccountData(final String roomId) {
boolean succeeded = true;
RoomAccountData roomAccountData = null;
try {
File accountDataFile = new File(mStoreRoomsAccountDataFolderFile, roomId);
if (accountDataFile.exists()) {
Object accountAsVoid = readObject("loadRoomAccountData " + roomId, accountDataFile);
if (null == accountAsVoid) {
Log.e(LOG_TAG, "loadRoomAccountData failed");
return false;
}
roomAccountData = (RoomAccountData) accountAsVoid;
}
} catch (Exception e) {
succeeded = false;
Log.e(LOG_TAG, "loadRoomAccountData failed : " + e.toString());
}
// succeeds to extract the message list
if (null != roomAccountData) {
Room room = getRoom(roomId);
if (null != room) {
room.setAccountData(roomAccountData);
}
}
return succeeded;
}
use of org.matrix.androidsdk.data.RoomAccountData in project matrix-android-sdk by matrix-org.
the class MXFileStore method saveRoomsAccountData.
/**
* Flush the pending account data.
*/
private void saveRoomsAccountData() {
if ((mRoomsToCommitForAccountData.size() > 0) && (null != mFileStoreHandler)) {
// get the list
final HashSet<String> fRoomsToCommitForAccountData = mRoomsToCommitForAccountData;
mRoomsToCommitForAccountData = new HashSet<>();
Runnable r = new Runnable() {
@Override
public void run() {
mFileStoreHandler.post(new Runnable() {
public void run() {
if (!isKilled()) {
long start = System.currentTimeMillis();
for (String roomId : fRoomsToCommitForAccountData) {
RoomAccountData accountData = mRoomAccountData.get(roomId);
if (null != accountData) {
writeObject("saveRoomsAccountData " + roomId, new File(mStoreRoomsAccountDataFolderFile, roomId), accountData);
} else {
deleteRoomAccountDataFile(roomId);
}
}
Log.d(LOG_TAG, "saveSummaries : " + fRoomsToCommitForAccountData.size() + " account data in " + (System.currentTimeMillis() - start) + " ms");
}
}
});
}
};
Thread t = new Thread(r);
t.start();
}
}
Aggregations