lrc: adapt to new API
Change-Id: Ie49319e9263a76a28ceaeab4f5aa325e69a256a0
diff --git a/src/ChooseContactVC.mm b/src/ChooseContactVC.mm
index f18a3bc..5340025 100644
--- a/src/ChooseContactVC.mm
+++ b/src/ChooseContactVC.mm
@@ -49,9 +49,9 @@
@implementation ChooseContactVC
lrc::api::ConversationModel* convModel;
-std::string currentConversation;
+QString currentConversation;
-std::map<lrc::api::ConferenceableItem, lrc::api::ConferenceableValue> values;
+QMap<lrc::api::ConferenceableItem, lrc::api::ConferenceableValue> values;
// Tags for views
NSInteger const IMAGE_TAG = 100;
@@ -66,7 +66,7 @@
- (void)controlTextDidChange:(NSNotification *) notification
{
- values = convModel->getConferenceableConversations(currentConversation, [searchField.stringValue UTF8String]);
+ values = convModel->getConferenceableConversations(currentConversation, QString::fromNSString(searchField.stringValue));
[self reloadView];
}
@@ -104,7 +104,7 @@
}
- (void)setConversationModel:(lrc::api::ConversationModel *)conversationModel
- andCurrentConversation:(std::string)conversation
+ andCurrentConversation:(const QString&)conversation
{
convModel = conversationModel;
if (convModel == nil) {
@@ -139,8 +139,15 @@
}
if (row == -1 || convModel == nil)
return;
-
- lrc::api::AccountConversation conversation = table == callsView ? values.find(lrc::api::ConferenceableItem::CALL)->second[row].front() : values.find(lrc::api::ConferenceableItem::CONTACT)->second[row].front();
+ QVector<QVector<lrc::api::AccountConversation>> conversations = table == callsView ? values.value(lrc::api::ConferenceableItem::CALL) : values.value(lrc::api::ConferenceableItem::CONTACT);
+ if (conversations.size() < row) {
+ return;
+ }
+ QVector<lrc::api::AccountConversation> participants = conversations[row];
+ if (participants.isEmpty()) {
+ return;
+ }
+ auto conversation = participants[0];
auto accountID = conversation.accountId;
auto convID = conversation.convId;
auto convMod = convModel->owner.accountModel->getAccountInfo(accountID).conversationModel.get();
@@ -151,7 +158,7 @@
}
if (table == callsView) {
- auto callID = conversationInfo->confId.empty() ? conversationInfo->callId : conversationInfo->confId;
+ auto callID = conversationInfo->confId.isEmpty() ? conversationInfo->callId : conversationInfo->confId;
[self.delegate joinCall: callID];
} else if (table == contactsView) {
auto uid = conversationInfo->participants.front();
@@ -171,12 +178,17 @@
if (convModel == nil)
return nil;
- std::vector<lrc::api::AccountConversation> conversations;
+ QVector<QVector<lrc::api::AccountConversation>> allConversations;
if (tableView == callsView && convModel != nullptr) {
- conversations = values.find(lrc::api::ConferenceableItem::CALL)->second[row];
+ allConversations = values.value(lrc::api::ConferenceableItem::CALL);
} else if (tableView == contactsView && convModel != nullptr) {
- conversations = values.find(lrc::api::ConferenceableItem::CONTACT)->second[row];
+ allConversations = values.value(lrc::api::ConferenceableItem::CONTACT);
}
+ if (allConversations.size() < row) {
+ return nil;
+ }
+
+ QVector<lrc::api::AccountConversation> conversations = allConversations[row];
if (conversations.size() < 1) {
return nil;
}
@@ -277,9 +289,9 @@
return 0;
}
if (tableView == contactsView) {
- return values.count(lrc::api::ConferenceableItem::CONTACT) ? values.find(lrc::api::ConferenceableItem::CONTACT)->second.size() : 0;
+ return values.count(lrc::api::ConferenceableItem::CONTACT) ? values.value(lrc::api::ConferenceableItem::CONTACT).size() : 0;
} else if (tableView == callsView) {
- return values.count(lrc::api::ConferenceableItem::CALL) ? values.find(lrc::api::ConferenceableItem::CALL)->second.size() : 0;
+ return values.count(lrc::api::ConferenceableItem::CALL) ? values.value(lrc::api::ConferenceableItem::CALL).size() : 0;
}
return 0;
}