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