This commit includes a complete replacement of the binary content of the image files, significantly updating the visual assets of the application to enhance user experience and align with new design standards. Key changes include: - Resetting session state for the subscription offer popup in `App.xaml.cs`. - Replacing buttons with touch-friendly labels in `Step2ExternalControl.xaml` and `Step3Control.xaml`. - Updating image sources and bindings in `WalkerListControl.xaml` to reflect premium subscription status. - Adding a new converter class `PremiumToChatImageConverter` in `CommonConverters.cs`. - Modifying various view models to manage premium user status and subscription offers. - Enhancing UI layouts across multiple XAML files for improved visibility and functionality. - Updating localized strings in `Text.Designer.cs` and incrementing the app version in `Info.plist`. These changes aim to improve the overall functionality, maintainability, and user experience of the application.
878 lines
43 KiB
XML
878 lines
43 KiB
XML
<?xml version="1.0" encoding="utf-8" ?>
|
|
<ResourceDictionary
|
|
x:Class="gehGassiApp.Resources.Templates.ControlTemplates"
|
|
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
|
xmlns:enum="clr-namespace:gehGassiApp.ViewModels"
|
|
xmlns:i="clr-namespace:gehGassiApp.Constants"
|
|
xmlns:res="clr-namespace:gehGassiApp.Resources">
|
|
|
|
<ControlTemplate x:Key="MenuPageTemplate">
|
|
<Grid
|
|
x:Name="controlTemplateRootGrid"
|
|
Padding="{Binding ., Converter={StaticResource TabBarPaddingConverter}}"
|
|
BackgroundColor="{StaticResource Primary_White}"
|
|
HorizontalOptions="FillAndExpand"
|
|
RowDefinitions="{Binding ., Converter={StaticResource TabBarOuterRowDefinitionConverter}}"
|
|
VerticalOptions="FillAndExpand">
|
|
|
|
<!-- Navigations-Menü wenn statisch am oberen Ende -->
|
|
<Border
|
|
Grid.Row="0"
|
|
Margin="{OnPlatform Android='0,5,0,5',
|
|
iOS='0,0,0,5'}"
|
|
Padding="{OnPlatform Android='0,0,0,0',
|
|
iOS='16,0,16,0'}"
|
|
BackgroundColor="Transparent"
|
|
BindingContext="{TemplateBinding BindingContext}"
|
|
Content="{TemplateBinding TitleView}"
|
|
HorizontalOptions="Fill"
|
|
MinimumHeightRequest="40"
|
|
StrokeThickness="0"
|
|
VerticalOptions="StartAndExpand">
|
|
<Border.IsVisible>
|
|
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
|
<Binding
|
|
Converter="{StaticResource IsNotNullToBooleanConverter}"
|
|
Path="TitleView"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
<Binding
|
|
Converter="{StaticResource InvertedBoolConverter}"
|
|
Path="BindingContext.NavigationHide"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
</MultiBinding>
|
|
</Border.IsVisible>
|
|
</Border>
|
|
|
|
<!--<Border
|
|
x:Name="permissionStatusBorder"
|
|
Grid.Row="1"
|
|
Style="{StaticResource PermissionStatusBorder}">
|
|
<Label Style="{StaticResource PermissionStatusLabel}" Text="{x:Static res:Text.Permission_Location_Error}" />
|
|
<Border.IsVisible>
|
|
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
|
<Binding
|
|
Converter="{StaticResource PermissionsStatusToBoolConverter}"
|
|
Path="BindingContext.LocationPermissionStatus"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
<Binding Path="BindingContext.ShowPermissionStatus" Source="{RelativeSource TemplatedParent}" />
|
|
</MultiBinding>
|
|
</Border.IsVisible>
|
|
<Border.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.ShowPermissionsCommand}" />
|
|
</Border.GestureRecognizers>
|
|
</Border>-->
|
|
|
|
<ContentPresenter
|
|
x:Name="mainContentPresenter"
|
|
Grid.Row="2"
|
|
Margin="0"
|
|
Padding="0,0,0,0"
|
|
BackgroundColor="{StaticResource Primary_White}" />
|
|
|
|
<Grid
|
|
x:Name="snackbarGrid"
|
|
Grid.Row="2"
|
|
Margin="20,75,20,0"
|
|
InputTransparent="True"
|
|
VerticalOptions="StartAndExpand" />
|
|
|
|
<Border
|
|
Grid.Row="3"
|
|
Margin="-1,0,-1,-1"
|
|
Padding="0,5,0,0"
|
|
BackgroundColor="{StaticResource Primary_LightBlue}"
|
|
StrokeShape="RoundRectangle 8,8,0,0"
|
|
StrokeThickness="0">
|
|
<Grid
|
|
ColumnDefinitions="*,*,*,*,*"
|
|
HorizontalOptions="Fill"
|
|
RowDefinitions="*"
|
|
VerticalOptions="StartAndExpand">
|
|
|
|
<VerticalStackLayout
|
|
Grid.Column="0"
|
|
Margin="0,0,0,0"
|
|
HorizontalOptions="Fill"
|
|
VerticalOptions="StartAndExpand">
|
|
<Image HeightRequest="28">
|
|
<Image.Source>
|
|
<FontImageSource
|
|
x:Name="walksImageSource"
|
|
FontFamily="IconMoon"
|
|
Glyph="{x:Static i:IconsMoon.Icon_Paws}"
|
|
Color="{StaticResource Primary_DarkBlue}" />
|
|
</Image.Source>
|
|
<Image.Triggers>
|
|
<DataTrigger
|
|
Binding="{TemplateBinding BindingContext.SelectedMenu}"
|
|
TargetType="Image"
|
|
Value="{x:Static enum:MenuSelected.Walks}">
|
|
<Setter TargetName="walksImageSource" Property="FontImageSource.Color" Value="{StaticResource Primary_White}" />
|
|
</DataTrigger>
|
|
</Image.Triggers>
|
|
</Image>
|
|
<Label
|
|
Margin="0,4,0,0"
|
|
HorizontalOptions="Center"
|
|
Style="{StaticResource FooterLabel}"
|
|
Text="{x:Static res:Text.Button_Walks}" />
|
|
<VerticalStackLayout.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NavigateCommand}" CommandParameter="{x:Static enum:MenuSelected.Walks}" />
|
|
</VerticalStackLayout.GestureRecognizers>
|
|
</VerticalStackLayout>
|
|
<Ellipse
|
|
Grid.Row="0"
|
|
Grid.Column="0"
|
|
Margin="0,5,20,0"
|
|
Fill="{StaticResource Alert_Red}"
|
|
HeightRequest="10"
|
|
HorizontalOptions="End"
|
|
IsVisible="{TemplateBinding BindingContext.HasRequested}"
|
|
VerticalOptions="Start"
|
|
WidthRequest="10" />
|
|
|
|
<VerticalStackLayout
|
|
Grid.Column="1"
|
|
Margin="0,0,0,0"
|
|
HorizontalOptions="Fill"
|
|
VerticalOptions="StartAndExpand">
|
|
<Image HeightRequest="28">
|
|
<Image.Source>
|
|
<FontImageSource
|
|
x:Name="messagesImageSource"
|
|
FontFamily="IconMoon"
|
|
Glyph="{x:Static i:IconsMoon.Icon_Chat_Filled}"
|
|
Color="{StaticResource Primary_DarkBlue}" />
|
|
</Image.Source>
|
|
<Image.Triggers>
|
|
<DataTrigger
|
|
Binding="{TemplateBinding BindingContext.SelectedMenu}"
|
|
TargetType="Image"
|
|
Value="{x:Static enum:MenuSelected.Messages}">
|
|
<Setter TargetName="messagesImageSource" Property="FontImageSource.Color" Value="{StaticResource Primary_White}" />
|
|
</DataTrigger>
|
|
</Image.Triggers>
|
|
</Image>
|
|
<Label
|
|
Margin="0,4,0,0"
|
|
HorizontalOptions="Center"
|
|
Style="{StaticResource FooterLabel}"
|
|
Text="{x:Static res:Text.Button_Messages}" />
|
|
<VerticalStackLayout.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NavigateCommand}" CommandParameter="{x:Static enum:MenuSelected.Messages}" />
|
|
</VerticalStackLayout.GestureRecognizers>
|
|
</VerticalStackLayout>
|
|
<Ellipse
|
|
Grid.Row="0"
|
|
Grid.Column="1"
|
|
Margin="0,5,20,0"
|
|
Fill="{StaticResource Alert_Red}"
|
|
HeightRequest="10"
|
|
HorizontalOptions="End"
|
|
IsVisible="{TemplateBinding BindingContext.HasUnreadMessages}"
|
|
VerticalOptions="Start"
|
|
WidthRequest="10" />
|
|
|
|
<VerticalStackLayout
|
|
Grid.Column="2"
|
|
Margin="0,0,0,0"
|
|
HorizontalOptions="Fill"
|
|
IsVisible="{TemplateBinding BindingContext.IsDogOwnerMode}"
|
|
VerticalOptions="StartAndExpand">
|
|
<Image HeightRequest="28">
|
|
<Image.Source>
|
|
<FontImageSource
|
|
x:Name="homeImageSource"
|
|
FontFamily="IconFont"
|
|
Glyph="home"
|
|
Color="{StaticResource Primary_DarkBlue}" />
|
|
</Image.Source>
|
|
<Image.Triggers>
|
|
<DataTrigger
|
|
Binding="{TemplateBinding BindingContext.SelectedMenu}"
|
|
TargetType="Image"
|
|
Value="{x:Static enum:MenuSelected.Home}">
|
|
<Setter TargetName="homeImageSource" Property="FontImageSource.Color" Value="{StaticResource Primary_White}" />
|
|
</DataTrigger>
|
|
</Image.Triggers>
|
|
</Image>
|
|
<Label
|
|
Margin="0,4,0,0"
|
|
HorizontalOptions="Center"
|
|
Style="{StaticResource FooterLabel}"
|
|
Text="{x:Static res:Text.Button_Search}" />
|
|
<VerticalStackLayout.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NavigateCommand}" CommandParameter="{x:Static enum:MenuSelected.Home}" />
|
|
</VerticalStackLayout.GestureRecognizers>
|
|
</VerticalStackLayout>
|
|
|
|
<VerticalStackLayout
|
|
Grid.Column="2"
|
|
Margin="0,0,0,0"
|
|
HorizontalOptions="Fill"
|
|
IsVisible="{TemplateBinding BindingContext.IsDogWalkerMode}"
|
|
VerticalOptions="StartAndExpand">
|
|
<Image HeightRequest="28">
|
|
<Image.Source>
|
|
<FontImageSource
|
|
x:Name="homeWalkerImageSource"
|
|
FontFamily="IconFont"
|
|
Glyph="home"
|
|
Color="{StaticResource Primary_DarkBlue}" />
|
|
</Image.Source>
|
|
<Image.Triggers>
|
|
<DataTrigger
|
|
Binding="{TemplateBinding BindingContext.SelectedMenu}"
|
|
TargetType="Image"
|
|
Value="{x:Static enum:MenuSelected.HomeWalker}">
|
|
<Setter TargetName="homeWalkerImageSource" Property="FontImageSource.Color" Value="{StaticResource Primary_White}" />
|
|
</DataTrigger>
|
|
</Image.Triggers>
|
|
</Image>
|
|
<Label
|
|
Margin="0,4,0,0"
|
|
HorizontalOptions="Center"
|
|
Style="{StaticResource FooterLabel}"
|
|
Text="{x:Static res:Text.Button_Jobs}" />
|
|
<VerticalStackLayout.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NavigateCommand}" CommandParameter="{x:Static enum:MenuSelected.HomeWalker}" />
|
|
</VerticalStackLayout.GestureRecognizers>
|
|
</VerticalStackLayout>
|
|
|
|
<VerticalStackLayout
|
|
Grid.Column="3"
|
|
Margin="0,0,0,0"
|
|
HorizontalOptions="Fill"
|
|
VerticalOptions="Fill">
|
|
<Image HeightRequest="28">
|
|
<Image.Source>
|
|
<FontImageSource
|
|
x:Name="offersImageSource"
|
|
FontFamily="IconMoon"
|
|
Glyph="{x:Static i:IconsMoon.Icon_Offers_Filled}"
|
|
Color="{StaticResource Primary_DarkBlue}" />
|
|
</Image.Source>
|
|
<Image.Triggers>
|
|
<DataTrigger
|
|
Binding="{TemplateBinding BindingContext.SelectedMenu}"
|
|
TargetType="Image"
|
|
Value="{x:Static enum:MenuSelected.Offers}">
|
|
<Setter TargetName="offersImageSource" Property="FontImageSource.Color" Value="{StaticResource Primary_White}" />
|
|
</DataTrigger>
|
|
</Image.Triggers>
|
|
</Image>
|
|
<Label
|
|
Margin="0,4,0,0"
|
|
HorizontalOptions="Center"
|
|
Style="{StaticResource FooterLabel}"
|
|
Text="{x:Static res:Text.Button_Advertisement}" />
|
|
<VerticalStackLayout.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NavigateCommand}" CommandParameter="{x:Static enum:MenuSelected.Offers}" />
|
|
</VerticalStackLayout.GestureRecognizers>
|
|
</VerticalStackLayout>
|
|
|
|
<VerticalStackLayout
|
|
Grid.Column="4"
|
|
Margin="0,0,0,0"
|
|
HorizontalOptions="Fill"
|
|
VerticalOptions="Fill">
|
|
<Image HeightRequest="28">
|
|
<Image.Source>
|
|
<FontImageSource
|
|
x:Name="moreImageSource"
|
|
FontFamily="IconMoon"
|
|
Glyph="{x:Static i:IconsMoon.Icon_More}"
|
|
Color="{StaticResource Primary_DarkBlue}" />
|
|
</Image.Source>
|
|
<Image.Triggers>
|
|
<DataTrigger
|
|
Binding="{TemplateBinding BindingContext.SelectedMenu}"
|
|
TargetType="Image"
|
|
Value="{x:Static enum:MenuSelected.More}">
|
|
<Setter TargetName="moreImageSource" Property="FontImageSource.Color" Value="{StaticResource Primary_White}" />
|
|
</DataTrigger>
|
|
</Image.Triggers>
|
|
</Image>
|
|
<Label
|
|
Margin="0,4,0,0"
|
|
HorizontalOptions="Center"
|
|
Style="{StaticResource FooterLabel}"
|
|
Text="{x:Static res:Text.Button_More}" />
|
|
<VerticalStackLayout.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NavigateCommand}" CommandParameter="{x:Static enum:MenuSelected.More}" />
|
|
</VerticalStackLayout.GestureRecognizers>
|
|
</VerticalStackLayout>
|
|
<Ellipse
|
|
Grid.Row="0"
|
|
Grid.Column="4"
|
|
Margin="0,5,20,0"
|
|
Fill="{StaticResource Alert_Red}"
|
|
HeightRequest="10"
|
|
HorizontalOptions="End"
|
|
IsVisible="{TemplateBinding BindingContext.HasUnreadSystemMessages}"
|
|
VerticalOptions="Start"
|
|
WidthRequest="10" />
|
|
|
|
</Grid>
|
|
</Border>
|
|
|
|
<Border
|
|
Grid.Row="0"
|
|
Grid.RowSpan="4"
|
|
BackgroundColor="{StaticResource Primary_White}"
|
|
HorizontalOptions="Fill"
|
|
IsVisible="{TemplateBinding BindingContext.IsResuming}"
|
|
Opacity="0.75"
|
|
StrokeThickness="0"
|
|
VerticalOptions="Fill">
|
|
<ActivityIndicator
|
|
HorizontalOptions="Center"
|
|
IsRunning="{TemplateBinding BindingContext.IsResuming}"
|
|
IsVisible="{TemplateBinding BindingContext.IsResuming}"
|
|
Scale="1"
|
|
VerticalOptions="Center" />
|
|
<Border.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NoActionCommand}" />
|
|
</Border.GestureRecognizers>
|
|
</Border>
|
|
|
|
<!-- Navigations-Menü wenn dynamisch transparent am oberen Ende -->
|
|
<Border
|
|
Grid.Row="0"
|
|
Grid.RowSpan="4"
|
|
Margin="{OnPlatform Android='0,5,0,5',
|
|
iOS='0,5,0,0'}"
|
|
Padding="{OnPlatform Android='0,0,0,0',
|
|
iOS='16,0,16,0'}"
|
|
BackgroundColor="Transparent"
|
|
BindingContext="{TemplateBinding BindingContext}"
|
|
Content="{TemplateBinding TitleViewFloating}"
|
|
HorizontalOptions="Fill"
|
|
StrokeThickness="0"
|
|
VerticalOptions="StartAndExpand">
|
|
<Border.IsVisible>
|
|
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
|
<Binding
|
|
Converter="{StaticResource IsNotNullToBooleanConverter}"
|
|
Path="TitleViewFloating"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
<Binding
|
|
Converter="{StaticResource InvertedBoolConverter}"
|
|
Path="BindingContext.NavigationHide"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
</MultiBinding>
|
|
</Border.IsVisible>
|
|
</Border>
|
|
|
|
<Border
|
|
Grid.Row="0"
|
|
Grid.RowSpan="4"
|
|
Margin="20,50,20,0"
|
|
HorizontalOptions="CenterAndExpand"
|
|
Style="{StaticResource ErrorBorder}"
|
|
VerticalOptions="StartAndExpand">
|
|
<Label
|
|
HorizontalOptions="CenterAndExpand"
|
|
HorizontalTextAlignment="Center"
|
|
Style="{StaticResource BodySMedium_White}"
|
|
Text="{TemplateBinding BindingContext.ErrorMessage}"
|
|
VerticalOptions="StartAndExpand" />
|
|
<Border.IsVisible>
|
|
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
|
<Binding Path="BindingContext.HasError" Source="{RelativeSource TemplatedParent}" />
|
|
<Binding
|
|
Converter="{StaticResource IsNotNullOrEmptyToBooleanConverter}"
|
|
Path="BindingContext.ErrorMessage"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
<Binding Path="BindingContext.IsNotLoading" Source="{RelativeSource TemplatedParent}" />
|
|
</MultiBinding>
|
|
</Border.IsVisible>
|
|
</Border>
|
|
|
|
<Border
|
|
x:Name="bottomSheetContainer"
|
|
Grid.Row="0"
|
|
Grid.RowSpan="4"
|
|
BackgroundColor="Transparent"
|
|
BindingContext="{TemplateBinding BindingContext}"
|
|
Content="{TemplateBinding BottomSheet}"
|
|
HorizontalOptions="Fill"
|
|
InputTransparent="True"
|
|
StrokeThickness="0"
|
|
VerticalOptions="Fill">
|
|
<Border.IsVisible>
|
|
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
|
<Binding
|
|
Converter="{StaticResource IsNotNullToBooleanConverter}"
|
|
Path="BottomSheet"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
</MultiBinding>
|
|
</Border.IsVisible>
|
|
</Border>
|
|
|
|
<Border
|
|
x:Name="mandatoryUpdateContainer"
|
|
Grid.Row="0"
|
|
Grid.RowSpan="4"
|
|
BackgroundColor="{StaticResource Primary_Black}"
|
|
HorizontalOptions="Fill"
|
|
InputTransparent="False"
|
|
IsVisible="{TemplateBinding BindingContext.AppVersionMandatory}"
|
|
Opacity="0.75"
|
|
StrokeThickness="0"
|
|
VerticalOptions="Fill">
|
|
|
|
<Border.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NoActionCommand}" />
|
|
</Border.GestureRecognizers>
|
|
</Border>
|
|
|
|
<VerticalStackLayout
|
|
Grid.Row="0"
|
|
Grid.RowSpan="4"
|
|
Padding="20"
|
|
HorizontalOptions="CenterAndExpand"
|
|
IsVisible="{TemplateBinding BindingContext.AppVersionMandatory}"
|
|
Spacing="20"
|
|
VerticalOptions="CenterAndExpand">
|
|
<Label
|
|
Margin="0,24,0,12"
|
|
HorizontalOptions="CenterAndExpand"
|
|
HorizontalTextAlignment="Center"
|
|
Style="{StaticResource BodyCaption_White}"
|
|
Text="{TemplateBinding BindingContext.AppVersionText}" />
|
|
<Button
|
|
Margin="{StaticResource MarginSmall}"
|
|
Command="{TemplateBinding BindingContext.UpdateCommand}"
|
|
HorizontalOptions="CenterAndExpand"
|
|
Style="{StaticResource SecondaryButton}"
|
|
Text="{Static res:Text.Button_Update}" />
|
|
<Label
|
|
Margin="0,0,0,12"
|
|
HorizontalOptions="CenterAndExpand"
|
|
HorizontalTextAlignment="Center"
|
|
Style="{StaticResource BodyCaption_White}"
|
|
Text="{Static res:Text.Common_Update_Info_Mandatory}" />
|
|
</VerticalStackLayout>
|
|
|
|
<Border
|
|
x:Name="subscriptionMissingContainer"
|
|
Grid.Row="0"
|
|
Grid.RowSpan="4"
|
|
Margin="{Binding ., Converter={StaticResource SubscriptionOverlayMarginConverter}}"
|
|
BackgroundColor="{StaticResource Primary_Black}"
|
|
HorizontalOptions="Fill"
|
|
InputTransparent="False"
|
|
IsVisible="{TemplateBinding BindingContext.SubscriptionMissing}"
|
|
Opacity="0.95"
|
|
StrokeThickness="0"
|
|
VerticalOptions="Fill">
|
|
|
|
<Border.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NoActionCommand}" />
|
|
</Border.GestureRecognizers>
|
|
</Border>
|
|
<Border
|
|
Grid.Row="0"
|
|
Grid.RowSpan="4"
|
|
Padding="20"
|
|
BackgroundColor="{StaticResource Primary_LightBlue_Dark}"
|
|
HeightRequest="350"
|
|
HorizontalOptions="CenterAndExpand"
|
|
IsVisible="{TemplateBinding BindingContext.SubscriptionMissing}"
|
|
StrokeShape="RoundRectangle 20"
|
|
StrokeThickness="0"
|
|
WidthRequest="350">
|
|
|
|
<!-- Drop Shadow Effect -->
|
|
<Border.Shadow>
|
|
<Shadow
|
|
Brush="{AppThemeBinding Light={StaticResource Grey_Dark},
|
|
Dark={StaticResource Grey_Dark_Dark}}"
|
|
Opacity="0.3"
|
|
Radius="12"
|
|
Offset="0,6" />
|
|
</Border.Shadow>
|
|
|
|
<Grid RowDefinitions="Auto,*,Auto">
|
|
|
|
<!-- Close Button -->
|
|
|
|
<Button
|
|
Grid.Row="0"
|
|
Margin="-10"
|
|
Background="Transparent"
|
|
Command="{TemplateBinding BindingContext.NavigateBackCommand}"
|
|
FontAttributes="Bold"
|
|
FontFamily="IconFont"
|
|
FontSize="40"
|
|
HorizontalOptions="End"
|
|
Text="close"
|
|
TextColor="White"
|
|
VerticalOptions="Start" />
|
|
|
|
<!-- Content Bereich -->
|
|
<VerticalStackLayout
|
|
Grid.Row="1"
|
|
Margin="0,-30,0,20"
|
|
HorizontalOptions="Center"
|
|
Spacing="4"
|
|
VerticalOptions="Center">
|
|
|
|
<!-- Icon - Gestapelte Napf-Icons -->
|
|
<Image
|
|
Margin="0,0,0,-10"
|
|
HeightRequest="120"
|
|
HorizontalOptions="Center"
|
|
Source="coins.png"
|
|
VerticalOptions="Center"
|
|
WidthRequest="120" />
|
|
|
|
|
|
<!-- Titel -->
|
|
<Label
|
|
FontAttributes="Bold"
|
|
HorizontalTextAlignment="Center"
|
|
Style="{StaticResource H2_Blue}"
|
|
Text="Abo erforderlich"
|
|
TextColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
|
Dark={StaticResource Primary_DarkBlue_Dark}}" />
|
|
|
|
<!-- Untertitel -->
|
|
|
|
<VerticalStackLayout Spacing="4">
|
|
<Label
|
|
HorizontalTextAlignment="Center"
|
|
Style="{StaticResource BodyM}"
|
|
Text="Jetzt Abo abschließen &"
|
|
TextColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
|
Dark={StaticResource Primary_DarkBlue_Dark}}" />
|
|
|
|
<HorizontalStackLayout HorizontalOptions="Center" Spacing="4">
|
|
<Label
|
|
FontAttributes="Bold"
|
|
FontFamily="InterSemiBold"
|
|
Style="{StaticResource BodyM}"
|
|
Text="STRAYZ"
|
|
TextColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
|
Dark={StaticResource Primary_DarkBlue_Dark}}" />
|
|
<Label
|
|
Style="{StaticResource BodyM}"
|
|
Text="Bio-Hundefutter"
|
|
TextColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
|
Dark={StaticResource Primary_DarkBlue_Dark}}" />
|
|
</HorizontalStackLayout>
|
|
|
|
<Label
|
|
FontAttributes="Bold"
|
|
FontFamily="InterSemiBold"
|
|
HorizontalTextAlignment="Center"
|
|
Style="{StaticResource BodyM}"
|
|
Text="gratis sichern!"
|
|
TextColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
|
Dark={StaticResource Primary_DarkBlue_Dark}}" />
|
|
</VerticalStackLayout>
|
|
|
|
</VerticalStackLayout>
|
|
|
|
<!-- Action Button -->
|
|
<Button
|
|
Grid.Row="2"
|
|
Margin="{StaticResource MarginSmall}"
|
|
Command="{TemplateBinding BindingContext.SubscriptionsCommand}"
|
|
Text="Abo holen" />
|
|
|
|
|
|
</Grid>
|
|
</Border>
|
|
<!--<VerticalStackLayout
|
|
Grid.Row="0"
|
|
Grid.RowSpan="4"
|
|
Padding="20"
|
|
HorizontalOptions="CenterAndExpand"
|
|
IsVisible="{TemplateBinding BindingContext.SubscriptionMissing}"
|
|
Spacing="20"
|
|
VerticalOptions="CenterAndExpand">
|
|
<Label
|
|
Margin="0,24,0,12"
|
|
HorizontalOptions="CenterAndExpand"
|
|
HorizontalTextAlignment="Center"
|
|
Style="{StaticResource H1_White}"
|
|
Text="{Static res:Text.Common_Subscription_Title}" />
|
|
<Button
|
|
Margin="{StaticResource MarginSmall}"
|
|
Command="{TemplateBinding BindingContext.SubscriptionsCommand}"
|
|
HorizontalOptions="CenterAndExpand"
|
|
Style="{StaticResource SecondaryButton}"
|
|
Text="{Static res:Text.Button_Subscriptions}" />
|
|
<Label
|
|
Margin="0,0,0,12"
|
|
HorizontalOptions="CenterAndExpand"
|
|
HorizontalTextAlignment="Center"
|
|
Style="{StaticResource BodyCaption_White}"
|
|
Text="{Static res:Text.Common_Subscription_Info}" />
|
|
<Button
|
|
Command="{TemplateBinding BindingContext.NavigateBackCommand}"
|
|
Style="{StaticResource LinkButton}"
|
|
Text="{Static res:Text.Button_Back}"
|
|
TextColor="{StaticResource Primary_White}" />
|
|
</VerticalStackLayout>-->
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="AccountPageTemplate">
|
|
<Grid
|
|
Padding="0"
|
|
BackgroundColor="{StaticResource Primary_White}"
|
|
HorizontalOptions="FillAndExpand"
|
|
RowDefinitions="Auto,Auto,*"
|
|
VerticalOptions="FillAndExpand">
|
|
|
|
<!-- Navigations-Menü wenn statisch am oberen Ende -->
|
|
<Border
|
|
Grid.Row="0"
|
|
Margin="{OnPlatform Android='0,5,0,5',
|
|
iOS='0,0,0,5'}"
|
|
Padding="{OnPlatform Android='0,0,0,0',
|
|
iOS='16,0,16,0'}"
|
|
BackgroundColor="Transparent"
|
|
BindingContext="{TemplateBinding BindingContext}"
|
|
Content="{TemplateBinding TitleView}"
|
|
HorizontalOptions="Fill"
|
|
StrokeThickness="0"
|
|
VerticalOptions="StartAndExpand">
|
|
<Border.IsVisible>
|
|
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
|
<Binding
|
|
Converter="{StaticResource IsNotNullToBooleanConverter}"
|
|
Path="TitleView"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
<Binding
|
|
Converter="{StaticResource InvertedBoolConverter}"
|
|
Path="BindingContext.NavigationHide"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
</MultiBinding>
|
|
</Border.IsVisible>
|
|
</Border>
|
|
|
|
<Border
|
|
Grid.Row="1"
|
|
Margin="20,0,20,0"
|
|
HorizontalOptions="CenterAndExpand"
|
|
IsVisible="{TemplateBinding BindingContext.HasError}"
|
|
Style="{StaticResource ErrorBorder}"
|
|
VerticalOptions="StartAndExpand">
|
|
<Label
|
|
HorizontalOptions="CenterAndExpand"
|
|
HorizontalTextAlignment="Center"
|
|
Style="{StaticResource BodySMedium_White}"
|
|
Text="{TemplateBinding BindingContext.ErrorMessage}"
|
|
VerticalOptions="StartAndExpand" />
|
|
</Border>
|
|
|
|
<ContentPresenter
|
|
x:Name="mainContentPresenter"
|
|
Grid.Row="2"
|
|
Margin="0"
|
|
Padding="0,0,0,0"
|
|
BackgroundColor="{StaticResource Primary_White}" />
|
|
|
|
<Border
|
|
Grid.Row="0"
|
|
Grid.RowSpan="3"
|
|
BackgroundColor="{StaticResource Primary_White}"
|
|
HorizontalOptions="Fill"
|
|
IsVisible="{TemplateBinding BindingContext.IsResuming}"
|
|
Opacity="0.75"
|
|
StrokeThickness="0"
|
|
VerticalOptions="Fill">
|
|
<ActivityIndicator
|
|
HorizontalOptions="Center"
|
|
IsRunning="{TemplateBinding BindingContext.IsResuming}"
|
|
IsVisible="{TemplateBinding BindingContext.IsResuming}"
|
|
Scale="1"
|
|
VerticalOptions="Center" />
|
|
<Border.GestureRecognizers>
|
|
<TapGestureRecognizer Command="{TemplateBinding BindingContext.NoActionCommand}" />
|
|
</Border.GestureRecognizers>
|
|
</Border>
|
|
|
|
<!-- Navigations-Menü wenn dynamisch transparent am oberen Ende -->
|
|
<Border
|
|
Grid.Row="0"
|
|
Grid.RowSpan="3"
|
|
Margin="{OnPlatform Android='0,5,0,5',
|
|
iOS='0,0,0,0'}"
|
|
Padding="{OnPlatform Android='0,0,0,0',
|
|
iOS='16,0,16,0'}"
|
|
BackgroundColor="Transparent"
|
|
BindingContext="{TemplateBinding BindingContext}"
|
|
Content="{TemplateBinding TitleViewFloating}"
|
|
HorizontalOptions="Fill"
|
|
StrokeThickness="0"
|
|
VerticalOptions="StartAndExpand">
|
|
<Border.IsVisible>
|
|
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
|
<Binding
|
|
Converter="{StaticResource IsNotNullToBooleanConverter}"
|
|
Path="TitleViewFloating"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
<Binding
|
|
Converter="{StaticResource InvertedBoolConverter}"
|
|
Path="BindingContext.NavigationHide"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
</MultiBinding>
|
|
</Border.IsVisible>
|
|
</Border>
|
|
|
|
|
|
|
|
<Border
|
|
x:Name="bottomSheetContainer"
|
|
Grid.Row="0"
|
|
Grid.RowSpan="3"
|
|
BackgroundColor="Transparent"
|
|
BindingContext="{TemplateBinding BindingContext}"
|
|
Content="{TemplateBinding BottomSheet}"
|
|
HorizontalOptions="Fill"
|
|
InputTransparent="True"
|
|
StrokeThickness="0"
|
|
VerticalOptions="Fill">
|
|
<Border.IsVisible>
|
|
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
|
<Binding
|
|
Converter="{StaticResource IsNotNullToBooleanConverter}"
|
|
Path="BottomSheet"
|
|
Source="{RelativeSource TemplatedParent}" />
|
|
</MultiBinding>
|
|
</Border.IsVisible>
|
|
</Border>
|
|
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="ButtonGroupTemplate">
|
|
<Grid>
|
|
<Border
|
|
x:Name="border"
|
|
Padding="10,8"
|
|
Style="{StaticResource EntryBorder}">
|
|
<Label
|
|
x:Name="label"
|
|
FontAttributes="{TemplateBinding FontAttributes}"
|
|
FontSize="{TemplateBinding FontSize}"
|
|
HorizontalOptions="CenterAndExpand"
|
|
LineBreakMode="TailTruncation"
|
|
Text="{TemplateBinding Value,
|
|
Converter={StaticResource EnumToTextConverter}}"
|
|
VerticalOptions="CenterAndExpand" />
|
|
</Border>
|
|
<VisualStateManager.VisualStateGroups>
|
|
<VisualStateGroupList>
|
|
<VisualStateGroup x:Name="CheckedStates">
|
|
<VisualState x:Name="Checked">
|
|
<VisualState.Setters>
|
|
<Setter TargetName="label" Property="Label.TextColor" Value="{StaticResource Primary_White}" />
|
|
<Setter TargetName="label" Property="Label.FontSize" Value="{StaticResource FontLabelM}" />
|
|
<Setter TargetName="border" Property="Border.BackgroundColor" Value="{StaticResource Primary_DarkBlue}" />
|
|
<Setter TargetName="border" Property="Border.Stroke" Value="{StaticResource Primary_DarkBlue}" />
|
|
<Setter TargetName="border" Property="Border.StrokeThickness" Value="1" />
|
|
</VisualState.Setters>
|
|
</VisualState>
|
|
|
|
<VisualState x:Name="Unchecked">
|
|
<VisualState.Setters>
|
|
<Setter TargetName="label" Property="Label.TextColor" Value="{StaticResource Primary_DarkBlue}" />
|
|
<Setter TargetName="label" Property="Label.FontSize" Value="{StaticResource FontLabelM}" />
|
|
<Setter TargetName="border" Property="Border.BackgroundColor" Value="{StaticResource Primary_White}" />
|
|
<Setter TargetName="border" Property="Border.Stroke" Value="{StaticResource Grey_System}" />
|
|
<Setter TargetName="border" Property="Border.StrokeThickness" Value="1" />
|
|
</VisualState.Setters>
|
|
</VisualState>
|
|
</VisualStateGroup>
|
|
</VisualStateGroupList>
|
|
</VisualStateManager.VisualStateGroups>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="ButtonGroupSmallTemplate">
|
|
<Grid>
|
|
<Border
|
|
x:Name="border"
|
|
Padding="10,8"
|
|
Style="{StaticResource LightBlueBorder}">
|
|
<Label
|
|
x:Name="label"
|
|
FontSize="{StaticResource FontMenu}"
|
|
HorizontalOptions="CenterAndExpand"
|
|
LineBreakMode="TailTruncation"
|
|
Text="{TemplateBinding Value,
|
|
Converter={StaticResource EnumToTextConverter}}"
|
|
TextColor="{StaticResource Primary_DarkBlue}"
|
|
VerticalOptions="CenterAndExpand" />
|
|
</Border>
|
|
<VisualStateManager.VisualStateGroups>
|
|
<VisualStateGroupList>
|
|
<VisualStateGroup x:Name="CheckedStates">
|
|
<VisualState x:Name="Checked">
|
|
<VisualState.Setters>
|
|
<Setter TargetName="label" Property="Label.TextColor" Value="{StaticResource Primary_White}" />
|
|
<Setter TargetName="label" Property="Label.FontSize" Value="{StaticResource FontMenu}" />
|
|
<Setter TargetName="border" Property="Border.BackgroundColor" Value="{StaticResource Primary_DarkBlue}" />
|
|
<Setter TargetName="border" Property="Border.Stroke" Value="{StaticResource Primary_DarkBlue}" />
|
|
<Setter TargetName="border" Property="Border.StrokeThickness" Value="1" />
|
|
</VisualState.Setters>
|
|
</VisualState>
|
|
|
|
<VisualState x:Name="Unchecked">
|
|
<VisualState.Setters>
|
|
<Setter TargetName="label" Property="Label.TextColor" Value="{StaticResource Grey_Dark}" />
|
|
<Setter TargetName="label" Property="Label.FontSize" Value="{StaticResource FontMenu}" />
|
|
<Setter TargetName="border" Property="Border.BackgroundColor" Value="{StaticResource Primary_White}" />
|
|
<Setter TargetName="border" Property="Border.Stroke" Value="{StaticResource Grey_System}" />
|
|
<Setter TargetName="border" Property="Border.StrokeThickness" Value="1" />
|
|
</VisualState.Setters>
|
|
</VisualState>
|
|
</VisualStateGroup>
|
|
</VisualStateGroupList>
|
|
</VisualStateManager.VisualStateGroups>
|
|
</Grid>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="RoundImageTemplateAndroid">
|
|
<Border
|
|
BackgroundColor="{TemplateBinding BorderBackgroundColor}"
|
|
HeightRequest="{TemplateBinding BorderHeight}"
|
|
Opacity="{TemplateBinding BorderOpacity}"
|
|
Stroke="{TemplateBinding BorderStroke}"
|
|
StrokeShape="{TemplateBinding BorderStrokeShape}"
|
|
StrokeThickness="{TemplateBinding BorderStrokeThickness}"
|
|
WidthRequest="{TemplateBinding BorderWidth}">
|
|
<Image
|
|
Aspect="{TemplateBinding Aspect}"
|
|
HeightRequest="{TemplateBinding ImageHeight}"
|
|
Opacity="{TemplateBinding ImageOpacity}"
|
|
Source="{TemplateBinding ImageSource}"
|
|
WidthRequest="{TemplateBinding ImageWidth}" />
|
|
</Border>
|
|
</ControlTemplate>
|
|
|
|
<ControlTemplate x:Key="RoundImageTemplateIos">
|
|
<Frame
|
|
BackgroundColor="{TemplateBinding BorderBackgroundColor}"
|
|
BorderColor="{TemplateBinding BorderStroke}"
|
|
CornerRadius="{TemplateBinding CornerRadius}"
|
|
HeightRequest="{TemplateBinding BorderHeight}"
|
|
IsClippedToBounds="True"
|
|
WidthRequest="{TemplateBinding BorderWidth}">
|
|
<Image
|
|
Aspect="{TemplateBinding Aspect}"
|
|
HeightRequest="{TemplateBinding ImageHeight}"
|
|
Opacity="{TemplateBinding ImageOpacity}"
|
|
Source="{TemplateBinding ImageSource}"
|
|
WidthRequest="{TemplateBinding ImageWidth}" />
|
|
</Frame>
|
|
</ControlTemplate>
|
|
|
|
</ResourceDictionary> |