ui/ux: add about page
Change-Id: I8a46ee316e6682b0e860e51e76972dd65430dea8
Tuleap: #790
diff --git a/AboutPage.xaml b/AboutPage.xaml
new file mode 100644
index 0000000..2f40828
--- /dev/null
+++ b/AboutPage.xaml
@@ -0,0 +1,212 @@
+<!-- **********************************************************************
+* 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 *
+* 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/> . *
+*********************************************************************** -->
+<Page x:Class="RingClientUWP.Views.AboutPage"
+ xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
+ xmlns:local="using:RingClientUWP"
+ xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
+ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ NavigationCacheMode="Enabled"
+ mc:Ignorable="d">
+
+ <Grid>
+ <Grid.RowDefinitions>
+ <RowDefinition Height="auto"/>
+ </Grid.RowDefinitions>
+ <StackPanel Grid.Row="0"
+ Margin="24">
+ <StackPanel Orientation="Horizontal"
+ HorizontalAlignment="Center">
+ <Button x:Name="_aboutBasicButton_"
+ Content="About"
+ Margin="0,0,6,0"
+ BorderThickness="0"
+ FontSize="12"
+ Click="_aboutBasicButton__Click"
+ />
+ <Button x:Name="_aboutCreditsButton_"
+ Content="Credits"
+ Margin="0,0,6,0"
+ BorderThickness="0"
+ FontSize="12"
+ Click="_aboutCreditsButton__Click"
+ />
+ <Button x:Name="_aboutCloseButton_"
+ Content="Close"
+ Margin="0,0,6,0"
+ BorderThickness="0"
+ FontSize="12"
+ Click="_aboutCloseButton__Click"
+ />
+ </StackPanel>
+ <Image x:Name="_welcomeImage_"
+
+ Source="Assets\Wide310x150Logo.scale-200.png"
+ Width="310"
+ HorizontalAlignment="Center"
+ Margin="0 10 0 30"
+ Height="150"/>
+ <Grid x:Name="_aboutNavGrid_">
+ <Grid.RowDefinitions>
+ <RowDefinition Height="0"/>
+ <RowDefinition Height="1*"/>
+ </Grid.RowDefinitions>
+ <ScrollViewer x:Name="_aboutScrollViewer_"
+ Grid.Row="1"
+ VerticalScrollBarVisibility="Hidden">
+ <StackPanel MaxWidth="500"
+ Width="310">
+ <TextBlock Text="Ring v2.0.0"
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ Margin="0,0,0,24"
+ FontSize="12"
+ FontWeight="Bold"
+ HorizontalAlignment="Center"/>
+ <TextBlock Text="version:"
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ FontSize="12"
+ HorizontalAlignment="Center"/>
+ <TextBlock Text="Release: Alpha - Gaston Miron"
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ FontSize="12"
+ HorizontalAlignment="Center"/>
+ <TextBlock Text="The Microsoft Windows Runtime client for Ring."
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ FontSize="12"
+ HorizontalAlignment="Center"/>
+ <TextBlock Text="Ring is a secured and distributed communication software."
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ FontSize="12"
+ HorizontalAlignment="Center"/>
+ <HyperlinkButton Content="www.ring.cx"
+ FontSize="10"
+ NavigateUri="http://ring.cx"
+ HorizontalAlignment="Center"/>
+ <TextBlock Text="© 2015-2016 Savoir-faire Linux"
+ Margin="0,24,0,0"
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ FontSize="10"
+ HorizontalAlignment="Center"/>
+ <TextBlock Text="This program comes with absolutely no warranty"
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ FontSize="10"
+ HorizontalAlignment="Center"/>
+ <StackPanel Orientation="Horizontal"
+ HorizontalAlignment="Center">
+ <TextBlock Text="See the "
+ Margin="0,0,4,0"
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ FontSize="10"/>
+ <HyperlinkButton Content="GNU General Public License, version 3 or later"
+ FontSize="10"
+ NavigateUri="https://www.gnu.org/licenses/gpl-3.0.en.html">
+ <HyperlinkButton.RenderTransform>
+ <TranslateTransform Y="-6"/>
+ </HyperlinkButton.RenderTransform>
+ </HyperlinkButton>
+ <TextBlock Text=" for details."
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ FontSize="10"/>
+ </StackPanel>
+ </StackPanel>
+ </ScrollViewer>
+ <ScrollViewer x:Name="_creditsScrollViewer_"
+ Grid.Row="0"
+ VerticalScrollBarVisibility="Visible"
+ Height="auto"
+ MaxHeight="200"
+ Margin="24,0,24,24"
+ BorderBrush="Black"
+ BorderThickness="1">
+ <StackPanel>
+ <TextBlock Text="Created by:"
+ Margin="0,0,0,0"
+ TextWrapping="Wrap"
+ TextAlignment="Center"
+ FontWeight="Bold"
+ FontSize="12"
+ HorizontalAlignment="Center"/>
+ <TextBlock Margin="0,0,0,0"
+ TextWrapping="Wrap"
+ TextAlignment="Center"
+ FontSize="12"
+ HorizontalAlignment="Center">
+ <LineBreak/> Created by:
+ <LineBreak/> Adrien Béraud
+ <LineBreak/> Alexandr Sergheev
+ <LineBreak/> Alexandre Lision
+ <LineBreak/> Alexandre Viau
+ <LineBreak/> Aline Bonnet
+ <LineBreak/> Andreas Traczyk
+ <LineBreak/> Anthony Léonard
+ <LineBreak/> Cyrille Béraud
+ <LineBreak/> Dorina Mosku
+ <LineBreak/> Édric Milaret
+ <LineBreak/> Éloi Bail
+ <LineBreak/> Emmanuel Lepage-Vallée
+ <LineBreak/> Frédéric Guimont
+ <LineBreak/> Guillaume Roguez
+ <LineBreak/> Julien Grossholtz
+ <LineBreak/> Loïc Siret
+ <LineBreak/> Nicolas Jäger
+ <LineBreak/> Nicolas Reynaud
+ <LineBreak/> Olivier Gregoire
+ <LineBreak/> Olivier Soldano
+ <LineBreak/> Patrick Keroulas
+ <LineBreak/> Philippe Gorley
+ <LineBreak/> Romain Bertozzi
+ <LineBreak/> Seva Ivanov
+ <LineBreak/> Simon Désaulniers
+ <LineBreak/> Stepan Salenikovich
+ <LineBreak/> Simon Zeni
+ <LineBreak/> Thibault Wittemberg
+ </TextBlock>
+ <TextBlock Text="Artwork by:"
+ Margin="0,0,0,0"
+ TextWrapping="Wrap"
+ TextAlignment="Center"
+ FontWeight="Bold"
+ FontSize="12"
+ HorizontalAlignment="Center"/>
+ <TextBlock Margin="0,0,0,0"
+ TextWrapping="Wrap"
+ TextAlignment="Center"
+ FontSize="12"
+ HorizontalAlignment="Center">
+ Marianne Forget
+ <LineBreak/>
+ <LineBreak/> Based on the SFLPhone project
+ </TextBlock>
+ </StackPanel>
+ </ScrollViewer>
+ </Grid>
+ </StackPanel>
+ </Grid>
+
+
+</Page>
diff --git a/AboutPage.xaml.cpp b/AboutPage.xaml.cpp
new file mode 100644
index 0000000..32854ab
--- /dev/null
+++ b/AboutPage.xaml.cpp
@@ -0,0 +1,53 @@
+/**************************************************************************
+* 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 *
+* 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 "AboutPage.xaml.h"
+
+using namespace RingClientUWP;
+using namespace RingClientUWP::Views;
+
+using namespace Windows::UI::ViewManagement;
+using namespace Windows::UI::Core;
+using namespace Windows::UI::Xaml::Controls;
+
+AboutPage::AboutPage()
+{
+ InitializeComponent();
+};
+
+void RingClientUWP::Views::AboutPage::_aboutBasicButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
+{
+ _aboutNavGrid_->SetRow(_aboutScrollViewer_, 1);
+ _aboutNavGrid_->SetRow(_creditsScrollViewer_, 0);
+}
+
+
+void RingClientUWP::Views::AboutPage::_aboutCreditsButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
+{
+ _aboutNavGrid_->SetRow(_aboutScrollViewer_, 0);
+ _aboutNavGrid_->SetRow(_creditsScrollViewer_, 1);
+}
+
+
+void RingClientUWP::Views::AboutPage::_aboutCloseButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
+{
+ auto rootFrame = dynamic_cast<Windows::UI::Xaml::Controls::Frame^>(Window::Current->Content);
+ rootFrame->Navigate(Windows::UI::Xaml::Interop::TypeName(MainPage::typeid), true);
+}
diff --git a/AboutPage.xaml.h b/AboutPage.xaml.h
new file mode 100644
index 0000000..b1e9198
--- /dev/null
+++ b/AboutPage.xaml.h
@@ -0,0 +1,37 @@
+/**************************************************************************
+* 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 *
+* 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
+
+#include "AboutPage.g.h"
+
+namespace RingClientUWP
+{
+namespace Views
+{
+public ref class AboutPage sealed
+{
+public:
+ AboutPage();
+private:
+ void _aboutBasicButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
+ void _aboutCreditsButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
+ void _aboutCloseButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
+};
+}
+}
\ No newline at end of file
diff --git a/MainPage.xaml.cpp b/MainPage.xaml.cpp
index db86d42..a91d192 100644
--- a/MainPage.xaml.cpp
+++ b/MainPage.xaml.cpp
@@ -25,6 +25,7 @@
#include "VideoPage.xaml.h"
#include "PreviewPage.xaml.h"
#include "WelcomePage.xaml.h"
+#include "AboutPage.xaml.h"
#include "MainPage.xaml.h"
@@ -74,6 +75,7 @@
smartPanel->summonPreviewPage += ref new RingClientUWP::SummonPreviewPage(this, &RingClientUWP::MainPage::OnsummonPreviewPage);
smartPanel->hidePreviewPage += ref new RingClientUWP::HidePreviewPage(this, &RingClientUWP::MainPage::OnhidePreviewPage);
smartPanel->summonVideoPage += ref new RingClientUWP::SummonVideoPage(this, &RingClientUWP::MainPage::OnsummonVideoPage);
+
auto videoPage = dynamic_cast<VideoPage^>(_videoFrame_->Content);
videoPage->pressHangUpCall += ref new RingClientUWP::PressHangUpCall(this, &RingClientUWP::MainPage::OnpressHangUpCall);
auto messageTextFrame = dynamic_cast<MessageTextPage^>(_messageTextFrame_->Content);
@@ -143,24 +145,11 @@
void
RingClientUWP::MainPage::OnNavigatedTo(NavigationEventArgs ^ e)
{
- auto iter = BackgroundTaskRegistration::AllTasks->First();
- auto hascur = iter->HasCurrent;
- while (hascur)
- {
- auto cur = iter->Current->Value;
- cur->Unregister(true);
- hascur = iter->MoveNext();
+ bool fromAboutPage = (e->Parameter != nullptr) ? safe_cast<bool>(e->Parameter) : false;
+ if (!fromAboutPage) {
+ RingD::instance->init();
+ showLoadingOverlay(true, false);
}
- BackgroundExecutionManager::RequestAccessAsync();
- BackgroundTaskBuilder^ builder = ref new BackgroundTaskBuilder();
- builder->Name = "CallRefusalBackgroundTask";
- //builder->TaskEntryPoint = "RingClientUWP.BackgroundActivity";
- builder->SetTrigger(ref new ToastNotificationActionTrigger());
- BackgroundTaskRegistration^ registration = builder->Register();
-
- RingD::instance->init();
-
- showLoadingOverlay(true, false);
}
void
diff --git a/WelcomePage.xaml b/WelcomePage.xaml
index b23282e..ce28060 100644
--- a/WelcomePage.xaml
+++ b/WelcomePage.xaml
@@ -34,22 +34,30 @@
<RowDefinition Height="1*"/>
</Grid.RowDefinitions>
<StackPanel Grid.Row="1">
- <Image x:Name="_welcomeImage_"
+ <Image x:Name="_welcomeImage_"
- Source="Assets\Wide310x150Logo.scale-200.png"
- Width="310"
- HorizontalAlignment="Center"
- Margin="0 10 0 30"
- Height="150"/>
- <TextBlock Text="Ring is free software for universal communication wich respects the freedoms and privacy of its users."
- Foreground="#707370"
- MaxWidth="500"
+ Source="Assets\Wide310x150Logo.scale-200.png"
Width="310"
- TextWrapping="Wrap"
- TextAlignment="Justify"
- FontSize="12"
- FontWeight="Bold"
- HorizontalAlignment="Center"/>
+ HorizontalAlignment="Center"
+ Margin="0 10 0 30"
+ Height="150"/>
+ <TextBlock Text="Ring is free software for universal communication wich respects the freedoms and privacy of its users."
+ Foreground="#707370"
+ MaxWidth="500"
+ Width="310"
+ TextWrapping="Wrap"
+ TextAlignment="Justify"
+ FontSize="12"
+ FontWeight="Bold"
+ HorizontalAlignment="Center"/>
+ <Button x:Name="_aboutButton_"
+ Margin="0,48,0,0"
+ BorderThickness="0"
+ FontSize="12"
+ HorizontalAlignment="Center"
+ Content="About"
+ Click="_aboutButton__Click"
+ />
</StackPanel>
</Grid>
diff --git a/WelcomePage.xaml.cpp b/WelcomePage.xaml.cpp
index 87c4b3b..1b7d42e 100644
--- a/WelcomePage.xaml.cpp
+++ b/WelcomePage.xaml.cpp
@@ -19,10 +19,15 @@
#include "pch.h"
#include "WelcomePage.xaml.h"
+#include "AboutPage.xaml.h"
using namespace RingClientUWP;
using namespace RingClientUWP::Views;
+using namespace Windows::UI::ViewManagement;
+using namespace Windows::UI::Core;
+using namespace Windows::UI::Xaml::Controls;
+
WelcomePage::WelcomePage()
{
InitializeComponent();
@@ -45,4 +50,35 @@
WelcomePage::OnResize(Platform::Object^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ e)
{
//PositionImage();
-}
\ No newline at end of file
+}
+
+void RingClientUWP::Views::WelcomePage::_aboutButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e)
+{
+ // new window?
+ /*auto currentAV = ApplicationView::GetForCurrentView();
+ auto newAV = CoreApplication::CreateNewView();
+ newAV->Dispatcher->RunAsync(CoreDispatcherPriority::Normal,
+ ref new DispatchedHandler([=]()
+ {
+ auto newWindow = Window::Current;
+ auto newAppView = ApplicationView::GetForCurrentView();
+ newAppView->Title = "About";
+
+ auto frame = ref new Windows::UI::Xaml::Controls::Frame();
+ frame->Navigate(Windows::UI::Xaml::Interop::TypeName(Views::AboutPage::typeid));
+ newWindow->Content = frame;
+ newWindow->Activate();
+
+ ApplicationViewSwitcher::TryShowAsStandaloneAsync(
+ newAppView->Id,
+ ViewSizePreference::UseMinimum,
+ currentAV->Id,
+ ViewSizePreference::UseMinimum);
+
+ RingD::instance->isInAbout = true;
+ newAppView->TryResizeView(Size(200, 200));
+ }));*/
+
+ auto rootFrame = dynamic_cast<Windows::UI::Xaml::Controls::Frame^>(Window::Current->Content);
+ rootFrame->Navigate(Windows::UI::Xaml::Interop::TypeName(Views::AboutPage::typeid));
+}
diff --git a/WelcomePage.xaml.h b/WelcomePage.xaml.h
index 0e0c34f..7cf6e94 100644
--- a/WelcomePage.xaml.h
+++ b/WelcomePage.xaml.h
@@ -22,6 +22,9 @@
namespace RingClientUWP
{
+
+delegate void SummonAboutPage();
+
namespace Views
{
public ref class WelcomePage sealed
@@ -31,6 +34,10 @@
protected:
void PositionImage();
void OnResize(Platform::Object^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ e);
+private:
+ void _aboutButton__Click(Platform::Object^ sender, Windows::UI::Xaml::RoutedEventArgs^ e);
+internal:
+ event SummonAboutPage^ summonAboutPage;
};
}
}
\ No newline at end of file
diff --git a/ring-client-uwp.vcxproj b/ring-client-uwp.vcxproj
index 0cfe56b..1acee46 100644
--- a/ring-client-uwp.vcxproj
+++ b/ring-client-uwp.vcxproj
@@ -168,6 +168,9 @@
</Link>
</ItemDefinitionGroup>
<ItemGroup>
+ <ClInclude Include="AboutPage.xaml.h">
+ <DependentUpon>AboutPage.xaml</DependentUpon>
+ </ClInclude>
<ClInclude Include="Account.h" />
<ClInclude Include="AccountListItem.h" />
<ClInclude Include="AccountListItemsViewModel.h" />
@@ -231,6 +234,7 @@
<ApplicationDefinition Include="App.xaml">
<SubType>Designer</SubType>
</ApplicationDefinition>
+ <Page Include="AboutPage.xaml" />
<Page Include="LoadingPage.xaml" />
<Page Include="MainPage.xaml">
<SubType>Designer</SubType>
@@ -299,6 +303,9 @@
<Image Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
+ <ClCompile Include="AboutPage.xaml.cpp">
+ <DependentUpon>AboutPage.xaml</DependentUpon>
+ </ClCompile>
<ClCompile Include="Account.cpp" />
<ClCompile Include="AccountListItem.cpp" />
<ClCompile Include="AccountListItemsViewModel.cpp" />
diff --git a/ring-client-uwp.vcxproj.filters b/ring-client-uwp.vcxproj.filters
index a40b465..09f2c29 100644
--- a/ring-client-uwp.vcxproj.filters
+++ b/ring-client-uwp.vcxproj.filters
@@ -277,6 +277,9 @@
<Page Include="PreviewPage.xaml">
<Filter>Views</Filter>
</Page>
+ <Page Include="AboutPage.xaml">
+ <Filter>Views</Filter>
+ </Page>
</ItemGroup>
<ItemGroup>
<Filter Include="Assets">