refactor: implement new lrc api

- use new lrc models for
 - smartlist
 - conversation view
 - account selector

Change-Id: I0a009d4e9be6f84100f49ba176d853e05364c351
diff --git a/lrcinstance.h b/lrcinstance.h
index 573f7d3..e92dd34 100644
--- a/lrcinstance.h
+++ b/lrcinstance.h
@@ -21,6 +21,8 @@
 #undef ERROR
 #endif
 
+#include <QSettings>
+
 #include "api/lrc.h"
 #include "api/account.h"
 #include "api/newaccountmodel.h"
@@ -31,6 +33,8 @@
 #include "api/contact.h"
 #include "api/datatransfermodel.h"
 
+#include <settingskey.h>
+
 class LRCInstance {
 public:
     static void init() {
@@ -55,15 +59,51 @@
         return instance().lrc_->isConnected();
     };
 
+    static const lrc::api::account::Info&
+    getCurrentAccountInfo() {
+        return accountModel().getAccountInfo(instance().selectedAccountId);
+    };
+
+    static lrc::api::ConversationModel*
+    getCurrentConversationModel() {
+        return getCurrentAccountInfo().conversationModel.get();
+    };
+
+    static lrc::api::NewCallModel*
+    getCurrentCallModel() {
+        return getCurrentAccountInfo().callModel.get();
+    };
+
+    static const std::string& getSelectedAccountId() {
+        return instance().selectedAccountId;
+    };
+
+    static void setSelectedAccountId(const std::string& accountId) {
+        instance().selectedAccountId = accountId;
+        QSettings settings;
+        settings.setValue(SettingsKey::selectedAccount, QString::fromStdString(accountId));
+    };
+
+    static const std::string& getSelectedConvUid() {
+        return instance().selectedConvUid;
+    };
+
+    static void setSelectedConvId(const std::string& convUid) {
+        instance().selectedConvUid = convUid;
+    };
+
 private:
     std::unique_ptr<lrc::api::Lrc> lrc_;
 
     static LRCInstance& instance() {
         static LRCInstance instance_;
         return instance_;
-    }
+    };
 
     LRCInstance() {
         lrc_ = std::make_unique<lrc::api::Lrc>();
     };
+
+    std::string selectedAccountId;
+    std::string selectedConvUid;
 };
\ No newline at end of file