UI/UX: refactor smartlist
Change-Id: Ibfd5154757908ebd85f4b0060da00a7c608a0e56
Reviewed-by: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com>
diff --git a/src/utils.h b/src/utils.h
index e6ba40f..1c971a6 100755
--- a/src/utils.h
+++ b/src/utils.h
@@ -18,6 +18,7 @@
*/
#import <Foundation/Foundation.h>
+#import "NSString+Extensions.h"
#import <api/conversation.h>
#import <api/conversationmodel.h>
#import <api/account.h>
@@ -28,19 +29,39 @@
static inline NSString* bestIDForConversation(const lrc::api::conversation::Info& conv, const lrc::api::ConversationModel& model)
{
auto contact = model.owner.contactModel->getContact(conv.participants[0]);
- if (!contact.registeredName.empty())
- return @(contact.registeredName.c_str());
+ if (!contact.registeredName.empty()) {
+ contact.registeredName.erase(std::remove(contact.registeredName.begin(), contact.registeredName.end(), '\n'), contact.registeredName.end());
+ contact.registeredName.erase(std::remove(contact.registeredName.begin(), contact.registeredName.end(), '\r'), contact.registeredName.end());
+ return [@(contact.registeredName.c_str()) removeEmptyLinesAtBorders];
+ }
else
- return @(contact.profileInfo.uri.c_str());
+ return [@(contact.profileInfo.uri.c_str()) removeEmptyLinesAtBorders];
}
static inline NSString* bestNameForConversation(const lrc::api::conversation::Info& conv, const lrc::api::ConversationModel& model)
{
auto contact = model.owner.contactModel->getContact(conv.participants[0]);
- if (!contact.profileInfo.alias.empty())
- return @(contact.profileInfo.alias.c_str());
- else
+ if (contact.profileInfo.alias.empty()) {
return bestIDForConversation(conv, model);
+ }
+ auto alias = contact.profileInfo.alias;
+ alias.erase(std::remove(alias.begin(), alias.end(), '\n'), alias.end());
+ alias.erase(std::remove(alias.begin(), alias.end(), '\r'), alias.end());
+ if(alias.length() == 0) {
+ return bestIDForConversation(conv, model);
+ }
+ return @(alias.c_str());
+}
+
+static inline lrc::api::profile::Type profileType(const lrc::api::conversation::Info& conv, const lrc::api::ConversationModel& model)
+{
+ @try {
+ auto contact = model.owner.contactModel->getContact(conv.participants[0]);
+ return contact.profileInfo.type;
+ }
+ @catch (NSException *exception) {
+ lrc::api::profile::Type::INVALID;
+ }
}
/**