UserPreferences.h 2.88 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
/***************************************************************************
 * Copyright (C) 2016 by Savoir-faire Linux                                *
 * Author: Jger Nicolas <nicolas.jager@savoirfairelinux.com>              *
 * Author: Traczyk Andreas <andreas.traczyk@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/>.   *
 **************************************************************************/
#pragma once

21 22
#include "VCardUtils.h"

23 24 25 26
namespace RingClientUWP
{

delegate void SelectIndex(int index);
27
delegate void LoadProfileImage();
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47

namespace Configuration
{

/* delegates */

public ref class UserPreferences sealed
{
public:
    /* singleton */
    static property UserPreferences^ instance
    {
        UserPreferences^ get()
        {
            static UserPreferences^ instance_ = ref new UserPreferences();
            return instance_;
        }
    }

    /* properties */
48
    property int            PREF_ACCOUNT_INDEX;
49
    property String^        PREF_ACCOUNT_ID;
50 51 52
    property uint64_t       PREF_PROFILE_UID;
    property bool           PREF_PROFILE_HASPHOTO;
    property String^        PREF_PROFILE_FN;
53

54 55
    property bool           profileImageLoaded;

56
    /* functions */
57 58 59 60 61 62
    void                    save();
    void                    load();
    String^                 Stringify();
    void                    Destringify(String^ data);
    VCardUtils::VCard^      getVCard();
    void                    saveProfileToVCard();
63

64 65
    void                    raiseSelectIndex(int index);

66
internal:
67
    void                    sendVCard(std::string callID);
68 69

    /* events */
70
    event SelectIndex^      selectIndex;
71
    event LoadProfileImage^ loadProfileImage;
72

73
private:
74
    bool loaded_;
75 76
    VCardUtils::VCard^ vCard_;
    UserPreferences();
77 78
};

79 80
task<Windows::UI::Xaml::Media::Imaging::BitmapImage^> getProfileImageAsync();
//void    getProfileImageAsync();
81 82
}
}