Skip to content

Commit 17169ca

Browse files
authored
feat: display source image (#261)
* UI - Article Preview | display the logo of the source if available * UI - Article Page | Add source image or badge as title closes #249
1 parent 11a41a7 commit 17169ca

File tree

5 files changed

+61
-10
lines changed

5 files changed

+61
-10
lines changed

App/Controls/ArticlePreview.xaml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,23 @@
8989
HeightRequest="25"
9090
Padding="4,0"
9191
BackgroundColor="{Binding Article.Source.PrimaryColour, Mode=OneWay, Source={x:Reference preview}}">
92-
<Label FontSize="13"
92+
<Grid>
93+
<Label FontSize="13"
9394
HorizontalOptions="Center"
9495
VerticalOptions="Center"
9596
Text="{Binding Article.Source.Name, Mode=OneWay, Source={x:Reference preview}}"
9697
FontFamily="P-Bold"
98+
IsVisible="{Binding Article.Source.Logo, Converter={StaticResource NullOrEmptyStringConverter}, Source={x:Reference preview}}"
9799
TextColor="{Binding Article.Source.SecondaryColour, Mode=OneWay, Source={x:Reference preview}}"
98-
/>
100+
101+
>
102+
</Label>
103+
<Image HorizontalOptions="Fill"
104+
MaximumWidthRequest="90"
105+
MaximumHeightRequest="25"
106+
Source="{Binding Article.Source.Logo, Source={x:Reference preview}}"/>
107+
108+
</Grid>
99109
</Border>
100110

101111
<!-- Share and save-->
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
using System.Globalization;
2+
3+
namespace GamHubApp.Helpers;
4+
5+
class NullOrEmptyStringConverter : IValueConverter
6+
{
7+
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
8+
{
9+
if (value is string val)
10+
{
11+
return string.IsNullOrEmpty(val);
12+
}
13+
return true;
14+
}
15+
16+
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
17+
{
18+
throw new NotImplementedException();
19+
}
20+
}

App/Models/Source.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ public class Source
2121
public string SecondaryColour { get; set; }
2222
[JsonProperty("domain")]
2323
public string Domain { get; set; }
24+
[JsonProperty("logo")]
25+
public string Logo { get; set; }
2426
[JsonProperty("isActive")]
2527
public bool IsActive { get; set; }
2628
[OneToMany(CascadeOperations = CascadeOperation.All)]

App/Resources/Styles/Styles.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<helpers:ZeroToFalseConverter x:Key="ZeroToFalseConverter"/>
2020
<helpers:ZeroToTrueConverter x:Key="ZeroToTrueConverter"/>
2121
<helpers:NotNullOrEmptyStringConverter x:Key="NotNullOrEmptyStringConverter"/>
22+
<helpers:NullOrEmptyStringConverter x:Key="NullOrEmptyStringConverter"/>
2223

2324
<ResourceDictionary>
2425
<OnPlatform x:Key="TitleRightMargin" x:TypeArguments="x:Double">

App/Views/ArticlePage.xaml

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,32 @@
1616
<Shell.TitleView>
1717
<ContentView Margin="0,0,0,0" >
1818
<Grid ColumnDefinitions="4*,*">
19-
20-
<Label Text="{Binding SelectedArticle.Source.Name}"
21-
VerticalOptions="Center"
22-
HorizontalOptions="Center"
23-
FontSize="20"
24-
TextColor="{StaticResource FontColor}"
25-
FontFamily="P-Bold"
26-
Grid.Column="0" />
19+
20+
<Border Grid.Column="0"
21+
Grid.Row="0"
22+
HorizontalOptions="Center"
23+
VerticalOptions="Center"
24+
StrokeShape="RoundRectangle 8"
25+
HeightRequest="35"
26+
Padding="4,0"
27+
BackgroundColor="{Binding SelectedArticle.Source.PrimaryColour, Mode=OneWay}">
28+
<Grid>
29+
<Label FontSize="13"
30+
HorizontalOptions="Center"
31+
VerticalOptions="Center"
32+
Text="{Binding SelectedArticle.Source.Name, Mode=OneWay}"
33+
FontFamily="P-Bold"
34+
IsVisible="{Binding SelectedArticle.Source.Logo, Converter={StaticResource NullOrEmptyStringConverter}}"
35+
TextColor="{Binding SelectedArticle.Source.SecondaryColour, Mode=OneWay}"
36+
>
37+
</Label>
38+
<Image HorizontalOptions="Fill"
39+
MaximumWidthRequest="120"
40+
MaximumHeightRequest="35"
41+
Source="{Binding SelectedArticle.Source.Logo}"/>
42+
43+
</Grid>
44+
</Border>
2745

2846

2947
<!-- Sub Menu button -->

0 commit comments

Comments
 (0)