Archived
1
0

Added advert cards

This commit is contained in:
Michael Gordeev
2019-12-05 01:50:54 +03:00
parent e2b2a7cc8d
commit 0d3438d82d
5 changed files with 66 additions and 17 deletions
+5
View File
@@ -189,6 +189,11 @@
<Name>Visual C++ 2015 Runtime for Universal Windows Platform Apps</Name>
</SDKReference>
</ItemGroup>
<ItemGroup>
<Reference Include="Microsoft.Advertising">
<HintPath>..\..\..\..\NuGet\microsoft.advertising.xaml\10.1811.22001\SDK\Windows Kits\10\ExtensionSDKs\Microsoft.Advertising.Xaml\10.0\References\CommonConfiguration\neutral\Microsoft.Advertising.winmd</HintPath>
</Reference>
</ItemGroup>
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' &lt; '14.0' ">
<VisualStudioVersion>14.0</VisualStudioVersion>
</PropertyGroup>
+4 -3
View File
@@ -1,7 +1,6 @@
using System;
using System.Net.Http;
using Microsoft.Advertising.WinRT.UI;
using System;
using Windows.ApplicationModel.Core;
using Windows.UI.Notifications;
namespace FoxTube.Core.Helpers
{
@@ -32,5 +31,7 @@ namespace FoxTube.Core.Helpers
Settings.ResetSettings();
RestartApp();
}
public static NativeAdsManagerV2 AdManager => new NativeAdsManagerV2("9ncqqxjtdlfh", "1100044398");
}
}
+14 -9
View File
@@ -11,7 +11,12 @@
d:DesignWidth="400"
HorizontalAlignment="Stretch"
Margin="3"
SizeChanged="UserControl_SizeChanged">
SizeChanged="UserControl_SizeChanged"
Visibility="Collapsed"
Opacity="0">
<UserControl.OpacityTransition>
<ScalarTransition/>
</UserControl.OpacityTransition>
<controls:DropShadowPanel BlurRadius="10" ShadowOpacity=".5"
OffsetX="2" OffsetY="2"
@@ -19,14 +24,14 @@
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch">
<Button Background="{ThemeResource SystemControlBackgroundChromeMediumBrush}" Style="{StaticResource ButtonRevealStyle}" Windows10version1809:CornerRadius="5" Padding="0" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" RowSpacing="5">
<Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" RowSpacing="5" x:Name="grid">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="20"/>
<RowDefinition/>
</Grid.RowDefinitions>
<controls:ImageEx PlaceholderStretch="UniformToFill" CornerRadius="5,5,0,0" PlaceholderSource="/Assets/DefaultVideoThumbnail.png"/>
<controls:ImageEx PlaceholderStretch="UniformToFill" CornerRadius="5,5,0,0" PlaceholderSource="/Assets/DefaultVideoThumbnail.png" Source="{Binding advert.MainImages[0].Url}"/>
<controls:DropShadowPanel VerticalAlignment="Top" HorizontalAlignment="Left" Margin="5" OffsetX="2" OffsetY="2">
<StackPanel Padding="5,2,5,3" Background="Orange" CornerRadius="5">
@@ -34,9 +39,9 @@
</StackPanel>
</controls:DropShadowPanel>
<controls:DropShadowPanel VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="5,10" OffsetX="2" OffsetY="2">
<controls:DropShadowPanel VerticalAlignment="Bottom" HorizontalAlignment="Right" Margin="5,10" OffsetX="2" OffsetY="2" x:Name="cta">
<StackPanel Padding="5,2,5,3" Background="Yellow" CornerRadius="5">
<TextBlock Text="Call to action" Foreground="Black" FontSize="12"/>
<TextBlock Text="{x:Bind advert.CallToActionText}" Foreground="Black" FontSize="12"/>
</StackPanel>
</controls:DropShadowPanel>
@@ -47,12 +52,12 @@
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<controls:ImageEx CornerRadius="999" BorderThickness="3" BorderBrush="{ThemeResource SystemControlBackgroundChromeMediumBrush}" Background="Red"
Width="50" Height="50" VerticalAlignment="Bottom" Margin="0,-30,0,0" PlaceholderSource="/Assets/Icons/Contact.png" PlaceholderStretch="UniformToFill"/>
<TextBlock Text="██████████" Grid.Column="1"/>
<TextBlock Text="██████████" Grid.Column="2"/>
Width="50" Height="50" VerticalAlignment="Bottom" Margin="0,-30,0,0" PlaceholderSource="/Assets/Icons/Contact.png" PlaceholderStretch="UniformToFill" Source="{x:Bind advert.AdIcon}"/>
<TextBlock Text="{x:Bind advert.SponsoredBy}" Grid.Column="1"/>
<TextBlock x:Name="description" Text="" Grid.Column="2"/>
</Grid>
<TextBlock Margin="10,0" Grid.Row="2" MaxLines="2" TextTrimming="CharacterEllipsis" TextWrapping="WrapWholeWords" Text="██████████"/>
<TextBlock Margin="10,0" Grid.Row="2" MaxLines="2" TextTrimming="CharacterEllipsis" TextWrapping="WrapWholeWords" Text="{x:Bind advert.Title}"/>
</Grid>
</Button>
</controls:DropShadowPanel>
+39 -2
View File
@@ -1,13 +1,50 @@
using Windows.UI.Xaml;
using FoxTube.Core.Helpers;
using Microsoft.Advertising.WinRT.UI;
using Microsoft.Toolkit.Uwp.UI.Controls;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace FoxTube.Controls.Cards
{
/// <summary>
/// Advert which is looks similar to video cards
/// </summary>
public sealed partial class AdvertCard : UserControl
{
public AdvertCard() =>
NativeAdsManagerV2 manager = Utils.AdManager;
NativeAdV2 advert;
public AdvertCard()
{
InitializeComponent();
manager.AdReady += AdReady;
manager.ErrorOccurred += ErrorOccurred;
manager.RequestAd();
}
private void ErrorOccurred(object sender, NativeAdErrorEventArgs e)
{
(Parent as StaggeredPanel)?.Children.Remove(this);
Metrics.AddEvent("Error has occured while loading ad",
("Code", e.ErrorCode.ToString()),
("Message", e.ErrorMessage),
("Request ID", e.RequestId));
}
private void AdReady(object sender, NativeAdReadyEventArgs e)
{
advert = e.NativeAd;
if (string.IsNullOrWhiteSpace(advert.CallToActionText))
cta.Visibility = Visibility.Collapsed;
description.Text += $"{advert.Price} {advert.Rating}";
e.NativeAd.RegisterAdContainer(grid);
Metrics.AddEvent("Advert loaded",
("Region", Settings.Region),
("Version", Metrics.CurrentVersion));
}
void UserControl_SizeChanged(object sender, SizeChangedEventArgs e) =>
Height = .75 * ActualWidth;
}
+3 -2
View File
@@ -1,4 +1,5 @@
using FoxTube.Controls.Cards;
using FoxTube.Core.Helpers;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
@@ -16,8 +17,8 @@ namespace FoxTube.Controls
{
empty.Opacity = 0;
//if (!StoreInterop.AdsDisabled && ItemsCount % 5 == 0 && ItemsCount > 0)
// Items.Add(new AdvertCard());
if (!StoreInterop.AdsDisabled && ItemsCount % 5 == 0 && ItemsCount > 0)
Items.Add(new AdvertCard());
Items.Add(item);
}