Resolve merge conflict: keep .NET 9 versions and add AppRating package
This commit is contained in:
commit
8d91ed7eb5
@ -1,4 +1,5 @@
|
|||||||
using CommunityToolkit.Maui;
|
using Plugin.Maui.AppRating;
|
||||||
|
using CommunityToolkit.Maui;
|
||||||
using gehGassi.LocalNotifications;
|
using gehGassi.LocalNotifications;
|
||||||
using gehGassiApp.Constants;
|
using gehGassiApp.Constants;
|
||||||
using gehGassiApp.Core.Data;
|
using gehGassiApp.Core.Data;
|
||||||
@ -484,7 +485,8 @@ public static class MauiProgram
|
|||||||
|
|
||||||
SetHandler();
|
SetHandler();
|
||||||
|
|
||||||
return builder.Build();
|
builder.Services.AddSingleton<IAppRating>(AppRating.Default);
|
||||||
|
return builder.Build();
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Handler
|
#region Handler
|
||||||
|
|||||||
@ -545,7 +545,12 @@ namespace gehGassiApp.ViewModels
|
|||||||
request.Distance = Location.CalculateDistance(CurrentLocation.Lat.Value, CurrentLocation.Lng.Value, request.Lat, request.Lng, DistanceUnits.Kilometers);
|
request.Distance = Location.CalculateDistance(CurrentLocation.Lat.Value, CurrentLocation.Lng.Value, request.Lat, request.Lng, DistanceUnits.Kilometers);
|
||||||
}
|
}
|
||||||
|
|
||||||
Walkers = requests.Value.ToObservableCollection();
|
// Sortierung: Entfernung, dann mit Foto, dann mit Rating
|
||||||
|
Walkers = requests.Value
|
||||||
|
.OrderBy(x => x.Distance)
|
||||||
|
.ThenByDescending(x => !string.IsNullOrWhiteSpace(x.Photo))
|
||||||
|
.ThenByDescending(x => x.AverageRating > 0)
|
||||||
|
.ToObservableCollection();
|
||||||
|
|
||||||
// Set First10Walkers for the home screen display
|
// Set First10Walkers for the home screen display
|
||||||
First10Walkers = requests.Value.Take(10).ToObservableCollection();
|
First10Walkers = requests.Value.Take(10).ToObservableCollection();
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Text.Json;
|
using Plugin.Maui.AppRating;
|
||||||
|
using System.Text.Json;
|
||||||
using CommunityToolkit.Maui.Core;
|
using CommunityToolkit.Maui.Core;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
@ -30,7 +31,8 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
private readonly IDialogService _dialogService;
|
private readonly IDialogService _dialogService;
|
||||||
private readonly ISystemMessageService _systemMessageService;
|
private readonly ISystemMessageService _systemMessageService;
|
||||||
private readonly IDispatcher _dispatcher;
|
private readonly IDispatcher _dispatcher;
|
||||||
private readonly IPushnotificationService _pushnotificationService;
|
private readonly IPushnotificationService _pushnotificationService;
|
||||||
|
private readonly IAppRating _appRating;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Erstellt eine Instanz
|
/// Erstellt eine Instanz
|
||||||
@ -40,8 +42,8 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
/// <param name="systemMessageService">Instanz eines ISystemMessageService</param>
|
/// <param name="systemMessageService">Instanz eines ISystemMessageService</param>
|
||||||
/// <param name="dispatcher">Instanz eines IDispatcher</param>
|
/// <param name="dispatcher">Instanz eines IDispatcher</param>
|
||||||
/// <param name="pushnotificationService">Instanz eines IPushnotificationService</param>
|
/// <param name="pushnotificationService">Instanz eines IPushnotificationService</param>
|
||||||
public MoreViewModel(IAccountService accountService, IDialogService dialogService, ISystemMessageService systemMessageService, IDispatcher dispatcher,
|
public MoreViewModel(IAccountService accountService, IDialogService dialogService, ISystemMessageService systemMessageService, IDispatcher dispatcher,
|
||||||
IPushnotificationService pushnotificationService)
|
IPushnotificationService pushnotificationService, IAppRating appRating)
|
||||||
{
|
{
|
||||||
_accountService = accountService;
|
_accountService = accountService;
|
||||||
_dialogService = dialogService;
|
_dialogService = dialogService;
|
||||||
@ -50,6 +52,43 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
_pushnotificationService = pushnotificationService;
|
_pushnotificationService = pushnotificationService;
|
||||||
Title = Text.View_Title_More;
|
Title = Text.View_Title_More;
|
||||||
SelectedMenu = MenuSelected.More;
|
SelectedMenu = MenuSelected.More;
|
||||||
|
_appRating = appRating;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Command für die Store-Bewertung
|
||||||
|
/// </summary>
|
||||||
|
[RelayCommand]
|
||||||
|
public async Task RateApp()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await _appRating.PerformRatingOnStoreAsync(
|
||||||
|
packageName: "com.gehgassi.gehgassi",
|
||||||
|
applicationId: "id1662116305"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
await TrackErrorAsync(ex, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Command für das Teilen der App
|
||||||
|
/// </summary>
|
||||||
|
[RelayCommand]
|
||||||
|
public async Task ShareApp()
|
||||||
|
{
|
||||||
|
string url = DeviceInfo.Platform == DevicePlatform.iOS
|
||||||
|
? "https://apps.apple.com/us/app/gehgassi/id1662116305"
|
||||||
|
: "https://play.google.com/store/apps/details?id=com.gehgassi.gehgassi";
|
||||||
|
string text = $"Schau dir die gehgassi App an! {url}";
|
||||||
|
await Share.Default.RequestAsync(new ShareTextRequest
|
||||||
|
{
|
||||||
|
Text = text,
|
||||||
|
Title = "App teilen"
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
using System.Text.Json;
|
using Plugin.Maui.AppRating;
|
||||||
|
using System.Text.Json;
|
||||||
using CommunityToolkit.Maui.Core;
|
using CommunityToolkit.Maui.Core;
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using CommunityToolkit.Mvvm.Input;
|
using CommunityToolkit.Mvvm.Input;
|
||||||
@ -30,7 +31,8 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
private readonly IUserService _userService;
|
private readonly IUserService _userService;
|
||||||
private readonly ISystemMessageService _systemMessageService;
|
private readonly ISystemMessageService _systemMessageService;
|
||||||
private readonly IDispatcher _dispatcher;
|
private readonly IDispatcher _dispatcher;
|
||||||
private readonly IPushnotificationService _pushnotificationService;
|
private readonly IPushnotificationService _pushnotificationService;
|
||||||
|
private readonly IAppRating _appRating;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Erstellt eine Instanz
|
/// Erstellt eine Instanz
|
||||||
@ -41,8 +43,8 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
/// <param name="systemMessageService">Instanz eines ISystemMessageService</param>
|
/// <param name="systemMessageService">Instanz eines ISystemMessageService</param>
|
||||||
/// <param name="dispatcher">Instanz eines IDispatcher</param>
|
/// <param name="dispatcher">Instanz eines IDispatcher</param>
|
||||||
/// <param name="pushnotificationService">Instanz eines IPushnotificationService</param>
|
/// <param name="pushnotificationService">Instanz eines IPushnotificationService</param>
|
||||||
public MoreWalkerViewModel(IAccountService accountService, IDialogService dialogService, IUserService userService, ISystemMessageService systemMessageService, IDispatcher dispatcher,
|
public MoreWalkerViewModel(IAccountService accountService, IDialogService dialogService, IUserService userService, ISystemMessageService systemMessageService, IDispatcher dispatcher,
|
||||||
IPushnotificationService pushnotificationService)
|
IPushnotificationService pushnotificationService, IAppRating appRating)
|
||||||
{
|
{
|
||||||
_accountService = accountService;
|
_accountService = accountService;
|
||||||
_dialogService = dialogService;
|
_dialogService = dialogService;
|
||||||
@ -52,8 +54,43 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
_pushnotificationService = pushnotificationService;
|
_pushnotificationService = pushnotificationService;
|
||||||
Title = Text.View_Title_More;
|
Title = Text.View_Title_More;
|
||||||
SelectedMenu = MenuSelected.More;
|
SelectedMenu = MenuSelected.More;
|
||||||
|
_appRating = appRating;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Command für die Store-Bewertung
|
||||||
|
/// </summary>
|
||||||
|
[RelayCommand]
|
||||||
|
public async Task RateApp()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await _appRating.PerformRatingOnStoreAsync(
|
||||||
|
packageName: "com.gehgassi.gehgassi",
|
||||||
|
applicationId: "id1662116305"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
await TrackErrorAsync(ex, true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// Command für das Teilen der App
|
||||||
|
/// </summary>
|
||||||
|
[RelayCommand]
|
||||||
|
public async Task ShareApp()
|
||||||
|
{
|
||||||
|
string url = DeviceInfo.Platform == DevicePlatform.iOS
|
||||||
|
? "https://apps.apple.com/us/app/gehgassi/id1662116305"
|
||||||
|
: "https://play.google.com/store/apps/details?id=com.gehgassi.gehgassi";
|
||||||
|
string text = $"Schau dir die gehgassi App an! {url}";
|
||||||
|
await Share.Default.RequestAsync(new ShareTextRequest
|
||||||
|
{
|
||||||
|
Text = text,
|
||||||
|
Title = "App teilen"
|
||||||
|
});
|
||||||
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gibt an ob Switch verfügbar ist
|
/// Gibt an ob Switch verfügbar ist
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -526,7 +526,7 @@ namespace gehGassiApp.ViewModels.Walks
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Laden der initialen Daten
|
/// Laden der initialen Daten
|
||||||
@ -597,6 +597,8 @@ namespace gehGassiApp.ViewModels.Walks
|
|||||||
CheckSubscription(AppMode.DogOwner);
|
CheckSubscription(AppMode.DogOwner);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
DogSelectionChanged();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@ -615,10 +617,22 @@ namespace gehGassiApp.ViewModels.Walks
|
|||||||
{
|
{
|
||||||
Dogs = dogs.ToObservableCollection();
|
Dogs = dogs.ToObservableCollection();
|
||||||
SelectedDog = Dogs.FirstOrDefault();
|
SelectedDog = Dogs.FirstOrDefault();
|
||||||
|
|
||||||
|
// Ersten Hund automatisch zur Auswahl hinzufügen
|
||||||
|
if (Dogs.Count > 0)
|
||||||
|
{
|
||||||
|
SelectedDogs.Clear();
|
||||||
|
SelectedDogs.Add(Dogs.First());
|
||||||
|
DogsSelected = true;
|
||||||
|
|
||||||
|
// DogSelectionChanged Command manuell auslösen für UI-Update
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Dogs?.Clear();
|
Dogs?.Clear();
|
||||||
|
SelectedDogs?.Clear();
|
||||||
|
DogsSelected = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
HasNoDog = Dogs.Count == 0;
|
HasNoDog = Dogs.Count == 0;
|
||||||
|
|||||||
@ -294,7 +294,7 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.LikesAdults}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_LikesAdults}"
|
Text="{x:Static res:Text.Dog_LikesAdults}"
|
||||||
@ -308,7 +308,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.LikesConspecifics}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_LikesConspecifics}"
|
Text="{x:Static res:Text.Dog_LikesConspecifics}"
|
||||||
@ -322,7 +321,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsTrustful}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsTrustful}"
|
Text="{x:Static res:Text.Dog_IsTrustful}"
|
||||||
@ -336,7 +334,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsLoneGunner}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsLoneGunner}"
|
Text="{x:Static res:Text.Dog_IsLoneGunner}"
|
||||||
@ -350,7 +347,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.HouseTrained}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_HouseTrained}"
|
Text="{x:Static res:Text.Dog_HouseTrained}"
|
||||||
@ -364,7 +360,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="5"
|
Grid.Row="5"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsAggressiv}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsAggressiv}"
|
Text="{x:Static res:Text.Dog_IsAggressiv}"
|
||||||
@ -422,7 +417,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.PullsTheLeash}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_PullsTheLeash}"
|
Text="{x:Static res:Text.Dog_PullsTheLeash}"
|
||||||
@ -436,7 +430,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.BasicCommands}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_BasicCommands}"
|
Text="{x:Static res:Text.Dog_BasicCommands}"
|
||||||
@ -450,7 +443,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.Hunter}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_Hunter}"
|
Text="{x:Static res:Text.Dog_Hunter}"
|
||||||
@ -464,7 +456,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.Eating}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_Eating}"
|
Text="{x:Static res:Text.Dog_Eating}"
|
||||||
@ -478,7 +469,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.Jumper}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_Jumper}"
|
Text="{x:Static res:Text.Dog_Jumper}"
|
||||||
@ -505,7 +495,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.RushesOutside}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_RushesOutside}"
|
Text="{x:Static res:Text.Dog_RushesOutside}"
|
||||||
@ -519,7 +508,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsCalm}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsCalm}"
|
Text="{x:Static res:Text.Dog_IsCalm}"
|
||||||
@ -533,7 +521,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsPeeing}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsPeeing}"
|
Text="{x:Static res:Text.Dog_IsPeeing}"
|
||||||
@ -547,7 +534,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsShy}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsShy}"
|
Text="{x:Static res:Text.Dog_IsShy}"
|
||||||
@ -561,7 +547,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsGuard}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsGuard}"
|
Text="{x:Static res:Text.Dog_IsGuard}"
|
||||||
|
|||||||
@ -292,7 +292,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.LikesAdults}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_LikesAdults}"
|
Text="{x:Static res:Text.Dog_LikesAdults}"
|
||||||
@ -306,7 +305,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.LikesConspecifics}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_LikesConspecifics}"
|
Text="{x:Static res:Text.Dog_LikesConspecifics}"
|
||||||
@ -320,7 +318,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsTrustful}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsTrustful}"
|
Text="{x:Static res:Text.Dog_IsTrustful}"
|
||||||
@ -334,7 +331,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsLoneGunner}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsLoneGunner}"
|
Text="{x:Static res:Text.Dog_IsLoneGunner}"
|
||||||
@ -348,7 +344,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.HouseTrained}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_HouseTrained}"
|
Text="{x:Static res:Text.Dog_HouseTrained}"
|
||||||
@ -362,7 +357,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="5"
|
Grid.Row="5"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsAggressiv}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsAggressiv}"
|
Text="{x:Static res:Text.Dog_IsAggressiv}"
|
||||||
@ -420,7 +414,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.PullsTheLeash}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_PullsTheLeash}"
|
Text="{x:Static res:Text.Dog_PullsTheLeash}"
|
||||||
@ -434,7 +427,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.BasicCommands}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_BasicCommands}"
|
Text="{x:Static res:Text.Dog_BasicCommands}"
|
||||||
@ -448,7 +440,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.Hunter}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_Hunter}"
|
Text="{x:Static res:Text.Dog_Hunter}"
|
||||||
@ -462,7 +453,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.Eating}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_Eating}"
|
Text="{x:Static res:Text.Dog_Eating}"
|
||||||
@ -476,7 +466,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.Jumper}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_Jumper}"
|
Text="{x:Static res:Text.Dog_Jumper}"
|
||||||
@ -503,7 +492,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="0"
|
Grid.Row="0"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.RushesOutside}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_RushesOutside}"
|
Text="{x:Static res:Text.Dog_RushesOutside}"
|
||||||
@ -517,7 +505,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsCalm}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsCalm}"
|
Text="{x:Static res:Text.Dog_IsCalm}"
|
||||||
@ -531,7 +518,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsPeeing}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsPeeing}"
|
Text="{x:Static res:Text.Dog_IsPeeing}"
|
||||||
@ -545,7 +531,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsShy}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsShy}"
|
Text="{x:Static res:Text.Dog_IsShy}"
|
||||||
@ -559,7 +544,6 @@
|
|||||||
<Label
|
<Label
|
||||||
Grid.Row="4"
|
Grid.Row="4"
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
IsEnabled="{Binding Dog.IsGuard}"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Style="{StaticResource BodySMedium_Blue}"
|
Style="{StaticResource BodySMedium_Blue}"
|
||||||
Text="{x:Static res:Text.Dog_IsGuard}"
|
Text="{x:Static res:Text.Dog_IsGuard}"
|
||||||
|
|||||||
@ -398,6 +398,76 @@
|
|||||||
|
|
||||||
<Border Style="{StaticResource Separator}" />
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
|
<Grid
|
||||||
|
ColumnDefinitions="24,*,24"
|
||||||
|
ColumnSpacing="12"
|
||||||
|
HorizontalOptions="FillAndExpand"
|
||||||
|
VerticalOptions="StartAndExpand">
|
||||||
|
<Image Grid.Column="0" HeightRequest="24">
|
||||||
|
<Image.Source>
|
||||||
|
<FontImageSource
|
||||||
|
FontFamily="MaterialIconsRegular"
|
||||||
|
Glyph="thumb_up"
|
||||||
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
|
</Image.Source>
|
||||||
|
</Image>
|
||||||
|
<Label
|
||||||
|
Grid.Column="1"
|
||||||
|
HorizontalOptions="StartAndExpand"
|
||||||
|
LineBreakMode="TailTruncation"
|
||||||
|
Style="{StaticResource H5_Blue}"
|
||||||
|
Text="App bewerten"
|
||||||
|
VerticalOptions="Center" />
|
||||||
|
<Image Grid.Column="2" HeightRequest="24">
|
||||||
|
<Image.Source>
|
||||||
|
<FontImageSource
|
||||||
|
FontFamily="IconMoon"
|
||||||
|
Glyph="{x:Static i:IconsMoon.Icon_Chevron_Right}"
|
||||||
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
|
</Image.Source>
|
||||||
|
</Image>
|
||||||
|
<Grid.GestureRecognizers>
|
||||||
|
<TapGestureRecognizer Command="{Binding RateAppCommand}" />
|
||||||
|
</Grid.GestureRecognizers>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
|
<Grid
|
||||||
|
ColumnDefinitions="24,*,24"
|
||||||
|
ColumnSpacing="12"
|
||||||
|
HorizontalOptions="FillAndExpand"
|
||||||
|
VerticalOptions="StartAndExpand">
|
||||||
|
<Image Grid.Column="0" HeightRequest="24">
|
||||||
|
<Image.Source>
|
||||||
|
<FontImageSource
|
||||||
|
FontFamily="MaterialIconsRegular"
|
||||||
|
Glyph="share"
|
||||||
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
|
</Image.Source>
|
||||||
|
</Image>
|
||||||
|
<Label
|
||||||
|
Grid.Column="1"
|
||||||
|
HorizontalOptions="StartAndExpand"
|
||||||
|
LineBreakMode="TailTruncation"
|
||||||
|
Style="{StaticResource H5_Blue}"
|
||||||
|
Text="App teilen"
|
||||||
|
VerticalOptions="Center" />
|
||||||
|
<Image Grid.Column="2" HeightRequest="24">
|
||||||
|
<Image.Source>
|
||||||
|
<FontImageSource
|
||||||
|
FontFamily="IconMoon"
|
||||||
|
Glyph="{x:Static i:IconsMoon.Icon_Chevron_Right}"
|
||||||
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
|
</Image.Source>
|
||||||
|
</Image>
|
||||||
|
<Grid.GestureRecognizers>
|
||||||
|
<TapGestureRecognizer Command="{Binding ShareAppCommand}" />
|
||||||
|
</Grid.GestureRecognizers>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
<Grid
|
<Grid
|
||||||
ColumnDefinitions="24,*,24"
|
ColumnDefinitions="24,*,24"
|
||||||
ColumnSpacing="12"
|
ColumnSpacing="12"
|
||||||
|
|||||||
@ -221,8 +221,8 @@
|
|||||||
</Grid.GestureRecognizers>
|
</Grid.GestureRecognizers>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Border Style="{StaticResource Separator}" />
|
|
||||||
|
|
||||||
|
<Border Style="{StaticResource Separator}" />
|
||||||
<Grid
|
<Grid
|
||||||
ColumnDefinitions="24,*,24"
|
ColumnDefinitions="24,*,24"
|
||||||
ColumnSpacing="12"
|
ColumnSpacing="12"
|
||||||
@ -256,8 +256,9 @@
|
|||||||
</Grid.GestureRecognizers>
|
</Grid.GestureRecognizers>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Border Style="{StaticResource Separator}" />
|
|
||||||
|
|
||||||
|
|
||||||
|
<Border Style="{StaticResource Separator}" />
|
||||||
<Grid
|
<Grid
|
||||||
ColumnDefinitions="24,*,24"
|
ColumnDefinitions="24,*,24"
|
||||||
ColumnSpacing="12"
|
ColumnSpacing="12"
|
||||||
@ -360,6 +361,74 @@
|
|||||||
<TapGestureRecognizer Command="{Binding FeedbackCommand}" />
|
<TapGestureRecognizer Command="{Binding FeedbackCommand}" />
|
||||||
</Grid.GestureRecognizers>
|
</Grid.GestureRecognizers>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
<Grid
|
||||||
|
ColumnDefinitions="24,*,24"
|
||||||
|
ColumnSpacing="12"
|
||||||
|
HorizontalOptions="FillAndExpand"
|
||||||
|
VerticalOptions="StartAndExpand">
|
||||||
|
<Image Grid.Column="0" HeightRequest="24">
|
||||||
|
<Image.Source>
|
||||||
|
<FontImageSource
|
||||||
|
FontFamily="MaterialIconsRegular"
|
||||||
|
Glyph="thumb_up"
|
||||||
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
|
</Image.Source>
|
||||||
|
</Image>
|
||||||
|
<Label
|
||||||
|
Grid.Column="1"
|
||||||
|
HorizontalOptions="StartAndExpand"
|
||||||
|
LineBreakMode="TailTruncation"
|
||||||
|
Style="{StaticResource H5_Blue}"
|
||||||
|
Text="App bewerten"
|
||||||
|
VerticalOptions="Center" />
|
||||||
|
<Image Grid.Column="2" HeightRequest="24">
|
||||||
|
<Image.Source>
|
||||||
|
<FontImageSource
|
||||||
|
FontFamily="IconMoon"
|
||||||
|
Glyph="{x:Static i:IconsMoon.Icon_Chevron_Right}"
|
||||||
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
|
</Image.Source>
|
||||||
|
</Image>
|
||||||
|
<Grid.GestureRecognizers>
|
||||||
|
<TapGestureRecognizer Command="{Binding RateAppCommand}" />
|
||||||
|
</Grid.GestureRecognizers>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
|
<Grid
|
||||||
|
ColumnDefinitions="24,*,24"
|
||||||
|
ColumnSpacing="12"
|
||||||
|
HorizontalOptions="FillAndExpand"
|
||||||
|
VerticalOptions="StartAndExpand">
|
||||||
|
<Image Grid.Column="0" HeightRequest="24">
|
||||||
|
<Image.Source>
|
||||||
|
<FontImageSource
|
||||||
|
FontFamily="MaterialIconsRegular"
|
||||||
|
Glyph="share"
|
||||||
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
|
</Image.Source>
|
||||||
|
</Image>
|
||||||
|
<Label
|
||||||
|
Grid.Column="1"
|
||||||
|
HorizontalOptions="StartAndExpand"
|
||||||
|
LineBreakMode="TailTruncation"
|
||||||
|
Style="{StaticResource H5_Blue}"
|
||||||
|
Text="App teilen"
|
||||||
|
VerticalOptions="Center" />
|
||||||
|
<Image Grid.Column="2" HeightRequest="24">
|
||||||
|
<Image.Source>
|
||||||
|
<FontImageSource
|
||||||
|
FontFamily="IconMoon"
|
||||||
|
Glyph="{x:Static i:IconsMoon.Icon_Chevron_Right}"
|
||||||
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
|
</Image.Source>
|
||||||
|
</Image>
|
||||||
|
<Grid.GestureRecognizers>
|
||||||
|
<TapGestureRecognizer Command="{Binding ShareAppCommand}" />
|
||||||
|
</Grid.GestureRecognizers>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
<Border Style="{StaticResource Separator}" />
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
|
|||||||
@ -205,6 +205,7 @@
|
|||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.8" />
|
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.8" />
|
||||||
<PackageReference Include="Microsoft.Maui.Graphics.Skia" Version="9.0.90" />
|
<PackageReference Include="Microsoft.Maui.Graphics.Skia" Version="9.0.90" />
|
||||||
<PackageReference Include="Plugin.InAppBilling" Version="9.1.0" />
|
<PackageReference Include="Plugin.InAppBilling" Version="9.1.0" />
|
||||||
|
<PackageReference Include="Plugin.Maui.AppRating" Version="1.2.1" />
|
||||||
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.1.2" />
|
<PackageReference Include="System.IdentityModel.Tokens.Jwt" Version="8.1.2" />
|
||||||
<PackageReference Include="Microsoft.Maui.Controls" Version="9.0.90" />
|
<PackageReference Include="Microsoft.Maui.Controls" Version="9.0.90" />
|
||||||
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="9.0.90" />
|
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="9.0.90" />
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user