use of de.tum.in.tumcampusapp.component.ui.chat.model.ChatRoom in project TumCampusApp by TCA-Team.
the class WizNavExtrasActivity method onLoadInBackground.
@Override
protected ChatMember onLoadInBackground(Void... arg) {
if (!NetUtils.isConnected(this)) {
showNoInternetLayout();
return null;
}
// Get the users lrzId and initialise chat member
ChatMember currentChatMember = new ChatMember(Utils.getSetting(this, Const.LRZ_ID, ""));
currentChatMember.setDisplayName(Utils.getSetting(this, Const.CHAT_ROOM_DISPLAY_NAME, ""));
if (currentChatMember.getLrzId().equals("")) {
return currentChatMember;
}
// Tell the server the new member
ChatMember member;
try {
// After the user has entered their display name, send a request to the server to create the new member
member = TUMCabeClient.getInstance(this).createMember(currentChatMember);
} catch (IOException e) {
Utils.log(e);
Utils.showToastOnUIThread(this, R.string.error_setup_chat_member);
return null;
}
// Catch a possible error, when we didn't get something returned
if (member == null || member.getLrzId() == null) {
Utils.showToastOnUIThread(this, R.string.error_setup_chat_member);
return null;
}
// Generate the private key and upload the public key to the server
AuthenticationManager am = new AuthenticationManager(this);
if (!am.generatePrivateKey(member)) {
// We cannot continue if the upload of the Public Key does not work
Utils.showToastOnUIThread(this, getString(R.string.failure_uploading_public_key));
return null;
}
// Try to restore already joined chat rooms from server
try {
List<ChatRoom> rooms = TUMCabeClient.getInstance(this).getMemberRooms(member.getId(), ChatVerification.Companion.getChatVerification(this, member));
new ChatRoomController(this).replaceIntoRooms(rooms);
// Store that this key was activated
Utils.setSetting(this, Const.PRIVATE_KEY_ACTIVE, true);
return member;
} catch (IOException | NoPrivateKey e) {
Utils.log(e);
}
return null;
}
Aggregations