Skip to content
Snippets Groups Projects
Select Git revision
  • 7fab7afc0d2f661d111f804b13598a6b9b799ac9
  • master default protected
  • release/202005
  • release/202001
  • release/201912
  • release/201911
  • release/releaseWindowsTestOne
  • release/windowsReleaseTest
  • release/releaseTest
  • release/releaseWindowsTest
  • release/201910
  • release/qt/201910
  • release/windows-test/201910
  • release/201908
  • release/201906
  • release/201905
  • release/201904
  • release/201903
  • release/201902
  • release/201901
  • release/201812
  • 4.0.0
  • 2.2.0
  • 2.1.0
  • 2.0.1
  • 2.0.0
  • 1.4.1
  • 1.4.0
  • 1.3.0
  • 1.2.0
  • 1.1.0
31 results

message_engine.cpp

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Contact.cpp 7.26 KiB
    /**************************************************************************
    * Copyright (C) 2016 by Savoir-faire Linux                                *
    * Author: Jger Nicolas <nicolas.jager@savoirfairelinux.com>              *
    * Author: Traczyk Andreas <traczyk.andreas@savoirfairelinux.com>          *
    *                                                                         *
    * This program is free software; you can redistribute it and/or modify    *
    * it under the terms of the GNU General Public License as published by    *
    * the Free Software Foundation; either version 3 of the License, or       *
    * (at your option) any later version.                                     *
    *                                                                         *
    * This program is distributed in the hope that it will be useful,         *
    * but WITHOUT ANY WARRANTY; without even the implied warranty of          *
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
    * GNU General Public License for more details.                            *
    *                                                                         *
    * You should have received a copy of the GNU General Public License       *
    * along with this program.  If not, see <http://www.gnu.org/licenses/>.   *
    **************************************************************************/
    #include "pch.h"
    
    #include "Contact.h"
    
    #include "ObjBase.h" // for CoCreateGuid
    
    using namespace Windows::ApplicationModel::Core;
    using namespace Platform;
    using namespace Windows::Data::Json;
    using namespace Windows::UI::Core;
    
    using namespace RingClientUWP;
    using namespace ViewModel;
    
    Contact::Contact(String^ name,
                     String^ ringID,
                     String^ GUID,
                     unsigned int unreadmessages)
    {
        name_   = name;
        ringID_ = ringID;
        GUID_   = GUID;
    
        if (GUID_ == nullptr)
            GUID_ = Utils::GetNewGUID();
    
        //RingDebug::instance->print(Utils::toString(GUID_).c_str());
    
        // load conversation from disk
        conversation_ = ref new Conversation();
        StorageFolder^ localfolder = ApplicationData::Current->LocalFolder;
        String^ messagesFile = ".messages\\" + GUID_ + ".json";
        Utils::fileExists(ApplicationData::Current->LocalFolder,
                          messagesFile)
        .then([this,messagesFile](bool messages_file_exists)
        {
            if (messages_file_exists) {
                try {
                    create_task(ApplicationData::Current->LocalFolder->GetFileAsync(messagesFile))
                    .then([this](StorageFile^ file)
                    {
                        create_task(FileIO::ReadTextAsync(file))
                        .then([this](String^ fileContents) {
                            if (fileContents != nullptr)
                                DestringifyConversation(fileContents);
                        });
                    });
                }
                catch (Exception^ e) {
                    RingDebug::instance->print("Exception while opening messages file");
                }
            }