refactoring: implements per account contacts, trust requests & more

- seperates contacts by account
- implements the trust request API
- introduces localization strings and transifex update mechanism
- adds lodepng to remove windows photobooth png metadata
- changes icons
- adds default colored initial avatars
- changes logo images
- complete overhaul on the ui/ux

Change-Id: I43914ff63a48bb43a6997721773df5029a1650b5
diff --git a/AboutPage.xaml.cpp b/AboutPage.xaml.cpp
index 32854ab..89b957c 100644
--- a/AboutPage.xaml.cpp
+++ b/AboutPage.xaml.cpp
@@ -1,6 +1,5 @@
 /**************************************************************************

 * Copyright (C) 2016 by Savoir-faire Linux                                *

-* Author: Jäger Nicolas <nicolas.jager@savoirfairelinux.com>              *

 * Author: Traczyk Andreas <andreas.traczyk@savoirfairelinux.com>          *

 *                                                                         *

 * This program is free software; you can redistribute it and/or modify    *

@@ -27,9 +26,64 @@
 using namespace Windows::UI::Core;

 using namespace Windows::UI::Xaml::Controls;

 

+#define BUILD_YEAR_CH0 (__DATE__[ 7])

+#define BUILD_YEAR_CH1 (__DATE__[ 8])

+#define BUILD_YEAR_CH2 (__DATE__[ 9])

+#define BUILD_YEAR_CH3 (__DATE__[10])

+

+#define BUILD_MONTH_IS_JAN (__DATE__[0] == 'J' && __DATE__[1] == 'a' && __DATE__[2] == 'n')

+#define BUILD_MONTH_IS_FEB (__DATE__[0] == 'F')

+#define BUILD_MONTH_IS_MAR (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'r')

+#define BUILD_MONTH_IS_APR (__DATE__[0] == 'A' && __DATE__[1] == 'p')

+#define BUILD_MONTH_IS_MAY (__DATE__[0] == 'M' && __DATE__[1] == 'a' && __DATE__[2] == 'y')

+#define BUILD_MONTH_IS_JUN (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'n')

+#define BUILD_MONTH_IS_JUL (__DATE__[0] == 'J' && __DATE__[1] == 'u' && __DATE__[2] == 'l')

+#define BUILD_MONTH_IS_AUG (__DATE__[0] == 'A' && __DATE__[1] == 'u')

+#define BUILD_MONTH_IS_SEP (__DATE__[0] == 'S')

+#define BUILD_MONTH_IS_OCT (__DATE__[0] == 'O')

+#define BUILD_MONTH_IS_NOV (__DATE__[0] == 'N')

+#define BUILD_MONTH_IS_DEC (__DATE__[0] == 'D')

+

+#define BUILD_MONTH_CH0 \

+    ((BUILD_MONTH_IS_OCT || BUILD_MONTH_IS_NOV || BUILD_MONTH_IS_DEC) ? '1' : '0')

+

+#define BUILD_MONTH_CH1 \

+    ( \

+        (BUILD_MONTH_IS_JAN) ? '1' : \

+        (BUILD_MONTH_IS_FEB) ? '2' : \

+        (BUILD_MONTH_IS_MAR) ? '3' : \

+        (BUILD_MONTH_IS_APR) ? '4' : \

+        (BUILD_MONTH_IS_MAY) ? '5' : \

+        (BUILD_MONTH_IS_JUN) ? '6' : \

+        (BUILD_MONTH_IS_JUL) ? '7' : \

+        (BUILD_MONTH_IS_AUG) ? '8' : \

+        (BUILD_MONTH_IS_SEP) ? '9' : \

+        (BUILD_MONTH_IS_OCT) ? '0' : \

+        (BUILD_MONTH_IS_NOV) ? '1' : \

+        (BUILD_MONTH_IS_DEC) ? '2' : \

+        /* error default */    '?' \

+    )

+

+#define BUILD_DAY_CH0 ((__DATE__[4] >= '0') ? (__DATE__[4]) : '0')

+#define BUILD_DAY_CH1 (__DATE__[ 5])

+

 AboutPage::AboutPage()

 {

     InitializeComponent();

+

+    const char completeVersion[] =

+    {

+        BUILD_YEAR_CH0, BUILD_YEAR_CH1, BUILD_YEAR_CH2, BUILD_YEAR_CH3,

+        '/',

+        BUILD_MONTH_CH0, BUILD_MONTH_CH1,

+        '/',

+        BUILD_DAY_CH0, BUILD_DAY_CH1,

+        '\0'

+    };

+    auto buildDate = std::string(reinterpret_cast<const char*>(completeVersion));

+    PackageVersion version = Package::Current->Id->Version;

+    auto buildVersion = version.Major.ToString() + "." + version.Minor.ToString() + "." + version.Build.ToString();

+    _aboutVersionString_->Text = "Ring version: " + Utils::toPlatformString(buildDate) + "  build: " + buildVersion;

 };

 

 void RingClientUWP::Views::AboutPage::_aboutBasicButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)

@@ -50,4 +104,4 @@
 {

     auto rootFrame = dynamic_cast<Windows::UI::Xaml::Controls::Frame^>(Window::Current->Content);

     rootFrame->Navigate(Windows::UI::Xaml::Interop::TypeName(MainPage::typeid), true);

-}

+}
\ No newline at end of file