Skip to content
Snippets Groups Projects
Select Git revision
  • e72856b765aa80f5cc7ce1a5f40e20a3fa89c8a0
  • master default protected
  • release/201811
  • release/201812
  • release/201901
  • release/201902
  • release/201903
  • release/201904
  • release/201905
  • release/201906
  • release/201908
  • release/201912
  • release/202001
  • release/202005
  • release/windows-test/201910
  • release/201808
  • wip/smartlist_refacto
  • wip/patches_poly_2017/JimmyHamel/MathieuGirouxHuppe
18 results

Contact.h

Blame
  • user avatar
    Nicolas Jager authored
    Change-Id: Ia2781ffcbbf1929b5535cb7fd16e2f36eff5eb33
    Tuleap: #1285
    e72856b7
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Contact.h 3.81 KiB
    #pragma once
    /**************************************************************************
    * Copyright (C) 2016 by Savoir-faire Linux                                *
    * Author: Jäger 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/>.   *
    **************************************************************************/
    using namespace Platform;
    using namespace Windows::Data::Json;
    using namespace Windows::UI::Xaml;
    using namespace Windows::UI::Xaml::Data;
    
    /* strings required by Windows::Data::Json. Defined here on puprose */
    String^ nameKey = "name";
    String^ ringIDKey = "ringid";
    String^ GUIDKey = "guid";
    String^ unreadMessagesKey = "unreadmessages";
    String^ contactKey = "contact";
    String^ contactListKey = "contactlist";
    String^ accountIdAssociatedKey = "accountIdAssociated";
    
    namespace RingClientUWP
    {
    ref class Conversation;
    public ref class Contact sealed : public INotifyPropertyChanged
    {
    public:
        Contact(String^ name, String^ ringID, String^ GUID, unsigned int unreadmessages);
        JsonObject^ ToJsonObject();
    
        virtual event PropertyChangedEventHandler^ PropertyChanged;
    
        property String^ name_;
        property String^ ringID_;
        property String^ GUID_;
    
        property Conversation^ _conversation
        {
            Conversation^ get()
            {
                return conversation_;
            }
        }
        property Visibility notificationNewMessage
        {
            Visibility get()
            {
                return notificationNewMessage_;
            }
            void set(Visibility visibility)
            {
                notificationNewMessage_ = visibility;
                NotifyPropertyChanged("notificationNewMessage");
            }
        }
        property uint32 _unreadMessages
        {
            uint32 get()
            {
                return unreadMessages_;
            }
            void set(uint32 value)
            {
                unreadMessages_ = value;
                NotifyPropertyChanged("_unreadMessages");
            }
        }
        property Windows::UI::Xaml::GridLength _contactBarHeight
        {
            Windows::UI::Xaml::GridLength get()
            {
                return contactBarHeight_;
            }
            void set(Windows::UI::Xaml::GridLength value)
            {
                contactBarHeight_ = value;
                NotifyPropertyChanged("_contactBarHeight");
            }
        }
        property String^ _accountIdAssociated;
    
    internal:
        void        saveConversationToFile();
        String^     StringifyConversation();
        void        DestringifyConversation(String^ data);
        void        deleteConversationFile();
    
    protected:
        void NotifyPropertyChanged(String^ propertyName);
    
    private:
        Conversation^ conversation_;
        Visibility notificationNewMessage_;
        unsigned int unreadMessages_;
        Windows::UI::Xaml::GridLength contactBarHeight_ = 0;
    };
    }