Compare commits
1 Commits
improvemen
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| bd0c6f3d45 |
15
.vscode/launch.json
vendored
15
.vscode/launch.json
vendored
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
// Use IntelliSense to learn about possible attributes.
|
|
||||||
// Hover to view descriptions of existing attributes.
|
|
||||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"name": ".NET MAUI",
|
|
||||||
"type": "maui",
|
|
||||||
"request": "launch",
|
|
||||||
"preLaunchTask": "maui: Build"
|
|
||||||
}
|
|
||||||
|
|
||||||
]
|
|
||||||
}
|
|
||||||
1
.vscode/settings.json
vendored
1
.vscode/settings.json
vendored
@ -1 +0,0 @@
|
|||||||
{}
|
|
||||||
@ -352,7 +352,7 @@ namespace gehGassiApp.Core.Services
|
|||||||
var json = JsonSerializer.Serialize(registerDto, _jsonOptions);
|
var json = JsonSerializer.Serialize(registerDto, _jsonOptions);
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var serverResult = await _httpClient.PostAsync($"api/v3/Account/Register", stringContent, token).ConfigureAwait(false);
|
var serverResult = await _httpClient.PostAsync($"api/v2/Account/Register", stringContent, token).ConfigureAwait(false);
|
||||||
|
|
||||||
if (serverResult.IsSuccessStatusCode)
|
if (serverResult.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
@ -453,7 +453,7 @@ namespace gehGassiApp.Core.Services
|
|||||||
var json = JsonSerializer.Serialize(registerDto, _jsonOptions);
|
var json = JsonSerializer.Serialize(registerDto, _jsonOptions);
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var serverResult = await _httpClient.PostAsync($"api/v3/Account/RegisterExternal", stringContent, token).ConfigureAwait(false);
|
var serverResult = await _httpClient.PostAsync($"api/v2/Account/RegisterExternal", stringContent, token).ConfigureAwait(false);
|
||||||
|
|
||||||
if (serverResult.IsSuccessStatusCode)
|
if (serverResult.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
@ -5952,7 +5952,7 @@ namespace gehGassiApp.Core.Services
|
|||||||
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var serverResult = await _httpClient.PostAsync($"api/v2/walks/AcceptPublicWalkRequest", stringContent, token).ConfigureAwait(false);
|
var serverResult = await _httpClient.PostAsync($"api/walks/AcceptPublicWalkRequest", stringContent, token).ConfigureAwait(false);
|
||||||
|
|
||||||
if (serverResult.IsSuccessStatusCode)
|
if (serverResult.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
@ -7499,7 +7499,7 @@ namespace gehGassiApp.Core.Services
|
|||||||
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var serverResult = await _httpClient.PostAsync($"api/v2/walks/CancelWalk", stringContent, token).ConfigureAwait(false);
|
var serverResult = await _httpClient.PostAsync($"api/walks/CancelWalk", stringContent, token).ConfigureAwait(false);
|
||||||
|
|
||||||
if (serverResult.IsSuccessStatusCode)
|
if (serverResult.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
@ -7688,7 +7688,7 @@ namespace gehGassiApp.Core.Services
|
|||||||
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var serverResult = await _httpClient.PostAsync($"api/v2/walks/ConfirmWalk", stringContent, token).ConfigureAwait(false);
|
var serverResult = await _httpClient.PostAsync($"api/walks/ConfirmWalk", stringContent, token).ConfigureAwait(false);
|
||||||
|
|
||||||
if (serverResult.IsSuccessStatusCode)
|
if (serverResult.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
@ -7754,7 +7754,7 @@ namespace gehGassiApp.Core.Services
|
|||||||
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var serverResult = await _httpClient.PostAsync($"api/v2/walks/ConfirmWalkWithRating", stringContent, token).ConfigureAwait(false);
|
var serverResult = await _httpClient.PostAsync($"api/walks/ConfirmWalkWithRating", stringContent, token).ConfigureAwait(false);
|
||||||
|
|
||||||
if (serverResult.IsSuccessStatusCode)
|
if (serverResult.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
@ -7953,7 +7953,7 @@ namespace gehGassiApp.Core.Services
|
|||||||
|
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var serverResult = await _httpClient.PostAsync($"api/v2/walks/CreateWalkDirect", stringContent, token).ConfigureAwait(false);
|
var serverResult = await _httpClient.PostAsync($"api/walks/CreateWalkDirect", stringContent, token).ConfigureAwait(false);
|
||||||
|
|
||||||
if (serverResult.IsSuccessStatusCode)
|
if (serverResult.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
@ -8032,7 +8032,7 @@ namespace gehGassiApp.Core.Services
|
|||||||
|
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var serverResult = await _httpClient.PostAsync($"api/v2/walks/CreateWalkRequest", stringContent, token).ConfigureAwait(false);
|
var serverResult = await _httpClient.PostAsync($"api/walks/CreateWalkRequest", stringContent, token).ConfigureAwait(false);
|
||||||
|
|
||||||
if (serverResult.IsSuccessStatusCode)
|
if (serverResult.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
@ -8106,7 +8106,7 @@ namespace gehGassiApp.Core.Services
|
|||||||
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
var json = JsonSerializer.Serialize(requestDto, _jsonOptions);
|
||||||
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
var stringContent = new StringContent(json, Encoding.UTF8, "application/json");
|
||||||
|
|
||||||
var serverResult = await _httpClient.PostAsync($"api/v2/walks/AcceptWalk", stringContent, token).ConfigureAwait(false);
|
var serverResult = await _httpClient.PostAsync($"api/walks/AcceptWalk", stringContent, token).ConfigureAwait(false);
|
||||||
|
|
||||||
if (serverResult.IsSuccessStatusCode)
|
if (serverResult.IsSuccessStatusCode)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1,11 +1,6 @@
|
|||||||
|
|
||||||
migrations:
|
migrations:
|
||||||
|
|
||||||
dotnet ef migrations add XXX --project gehGassiApp.Data --startup-project gehGassiApp.DbConfig
|
|
||||||
|
|
||||||
dotnet ef database update --project gehGassiApp.Data --startup-project gehGassiApp.DbConfig
|
|
||||||
|
|
||||||
|
|
||||||
add-migration xxx -Project gehGassiApp.Data -StartupProject gehGassiApp.DbConfig
|
add-migration xxx -Project gehGassiApp.Data -StartupProject gehGassiApp.DbConfig
|
||||||
|
|
||||||
add-migration Initial -Project gehGassiApp.Data -StartupProject gehGassiApp.DbConfig
|
add-migration Initial -Project gehGassiApp.Data -StartupProject gehGassiApp.DbConfig
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -1,29 +0,0 @@
|
|||||||
using Microsoft.EntityFrameworkCore.Migrations;
|
|
||||||
|
|
||||||
#nullable disable
|
|
||||||
|
|
||||||
namespace gehGassiApp.Data.Migrations
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
public partial class Walk_PaymentType_Added : Migration
|
|
||||||
{
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.AddColumn<int>(
|
|
||||||
name: "PaymentType",
|
|
||||||
table: "Walks",
|
|
||||||
type: "INTEGER",
|
|
||||||
nullable: false,
|
|
||||||
defaultValue: 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <inheritdoc />
|
|
||||||
protected override void Down(MigrationBuilder migrationBuilder)
|
|
||||||
{
|
|
||||||
migrationBuilder.DropColumn(
|
|
||||||
name: "PaymentType",
|
|
||||||
table: "Walks");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -15,7 +15,7 @@ namespace gehGassiApp.Data.Migrations
|
|||||||
protected override void BuildModel(ModelBuilder modelBuilder)
|
protected override void BuildModel(ModelBuilder modelBuilder)
|
||||||
{
|
{
|
||||||
#pragma warning disable 612, 618
|
#pragma warning disable 612, 618
|
||||||
modelBuilder.HasAnnotation("ProductVersion", "8.0.12");
|
modelBuilder.HasAnnotation("ProductVersion", "7.0.2");
|
||||||
|
|
||||||
modelBuilder.Entity("gehGassiApp.Domain.Common.Rating", b =>
|
modelBuilder.Entity("gehGassiApp.Domain.Common.Rating", b =>
|
||||||
{
|
{
|
||||||
@ -1345,9 +1345,6 @@ namespace gehGassiApp.Data.Migrations
|
|||||||
b.Property<int>("PaymentStatus")
|
b.Property<int>("PaymentStatus")
|
||||||
.HasColumnType("INTEGER");
|
.HasColumnType("INTEGER");
|
||||||
|
|
||||||
b.Property<int>("PaymentType")
|
|
||||||
.HasColumnType("INTEGER");
|
|
||||||
|
|
||||||
b.Property<double>("PickupAddressLat")
|
b.Property<double>("PickupAddressLat")
|
||||||
.HasColumnType("REAL");
|
.HasColumnType("REAL");
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
@ -130,20 +130,7 @@ namespace gehGassiApp.Domain.Common
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
GehGassi = 10
|
GehGassi = 10
|
||||||
}
|
}
|
||||||
/// <summary>
|
|
||||||
/// Zahlungsart für einen Walk
|
|
||||||
/// </summary>
|
|
||||||
public enum WalkPaymentType
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Mit MangoPay bezahlen (z.B. Kreditkarte)
|
|
||||||
/// </summary>
|
|
||||||
MangoPay = 1,
|
|
||||||
/// <summary>
|
|
||||||
/// Barzahlung
|
|
||||||
/// </summary>
|
|
||||||
Cash = 10
|
|
||||||
}
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Zahlungsstatus in der App
|
/// Zahlungsstatus in der App
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -176,11 +176,7 @@ namespace gehGassiApp.Domain.Walks
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[Required]
|
[Required]
|
||||||
public PaymentStatus PaymentStatus { get; set; }
|
public PaymentStatus PaymentStatus { get; set; }
|
||||||
/// <summary>
|
|
||||||
/// Welche Art von Bezahlung wurde verwendet
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
public WalkPaymentType PaymentType { get; set; }
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Datum der Erstellung des Walks
|
/// Datum der Erstellung des Walks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -441,11 +437,7 @@ namespace gehGassiApp.Domain.Walks
|
|||||||
/// Zahlungsstatus des Walks
|
/// Zahlungsstatus des Walks
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public PaymentStatus PaymentStatus { get; set; }
|
public PaymentStatus PaymentStatus { get; set; }
|
||||||
/// <summary>
|
|
||||||
/// Welche Art von Bezahlung wurde verwendet
|
|
||||||
/// </summary>
|
|
||||||
[Required]
|
|
||||||
public WalkPaymentType PaymentType { get; set; }
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Id des Gutscheins der verwendet wurde, wenn einer verwendet wurde
|
/// Id des Gutscheins der verwendet wurde, wenn einer verwendet wurde
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@ -150,7 +150,7 @@
|
|||||||
<Switch Grid.Column="1" VerticalOptions="Center" HorizontalOptions="End" IsToggled="{Binding ViewModel.AcceptedPrivacy}"></Switch>
|
<Switch Grid.Column="1" VerticalOptions="Center" HorizontalOptions="End" IsToggled="{Binding ViewModel.AcceptedPrivacy}"></Switch>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- <Grid ColumnDefinitions="*,Auto" ColumnSpacing="10"
|
<Grid ColumnDefinitions="*,Auto" ColumnSpacing="10"
|
||||||
IsVisible="{Binding ViewModel.AppUserType, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static enum:AppUserType.DogWalker}}" >
|
IsVisible="{Binding ViewModel.AppUserType, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static enum:AppUserType.DogWalker}}" >
|
||||||
<Label Grid.Column="0" Text="{x:Static res:Text.Register_AcceptTermsMangopay}" Style="{StaticResource LinkLabelStyle}" HorizontalOptions="Start" Padding="0,0,0,0" LineBreakMode="TailTruncation">
|
<Label Grid.Column="0" Text="{x:Static res:Text.Register_AcceptTermsMangopay}" Style="{StaticResource LinkLabelStyle}" HorizontalOptions="Start" Padding="0,0,0,0" LineBreakMode="TailTruncation">
|
||||||
<Label.GestureRecognizers>
|
<Label.GestureRecognizers>
|
||||||
@ -158,7 +158,7 @@
|
|||||||
</Label.GestureRecognizers>
|
</Label.GestureRecognizers>
|
||||||
</Label>
|
</Label>
|
||||||
<Switch Grid.Column="1" VerticalOptions="Center" HorizontalOptions="End" IsToggled="{Binding ViewModel.AcceptedTermsMangopay}"></Switch>
|
<Switch Grid.Column="1" VerticalOptions="Center" HorizontalOptions="End" IsToggled="{Binding ViewModel.AcceptedTermsMangopay}"></Switch>
|
||||||
</Grid> -->
|
</Grid>
|
||||||
</VerticalStackLayout>
|
</VerticalStackLayout>
|
||||||
|
|
||||||
<VerticalStackLayout Spacing="0" IsVisible="{Binding ViewModel.AppUserType, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static enum:AppUserType.DogWalker}}" Margin="{StaticResource MarginBig}">
|
<VerticalStackLayout Spacing="0" IsVisible="{Binding ViewModel.AppUserType, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static enum:AppUserType.DogWalker}}" Margin="{StaticResource MarginBig}">
|
||||||
|
|||||||
@ -117,7 +117,7 @@
|
|||||||
<Switch Grid.Column="1" VerticalOptions="Center" HorizontalOptions="End" IsToggled="{Binding ViewModel.AcceptedPrivacy}"></Switch>
|
<Switch Grid.Column="1" VerticalOptions="Center" HorizontalOptions="End" IsToggled="{Binding ViewModel.AcceptedPrivacy}"></Switch>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- <Grid ColumnDefinitions="*,Auto" ColumnSpacing="10"
|
<Grid ColumnDefinitions="*,Auto" ColumnSpacing="10"
|
||||||
IsVisible="{Binding ViewModel.AppUserType, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static enum:AppUserType.DogWalker}}" >
|
IsVisible="{Binding ViewModel.AppUserType, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static enum:AppUserType.DogWalker}}" >
|
||||||
<Label Grid.Column="0" Text="{x:Static res:Text.Register_AcceptTermsMangopay}" Style="{StaticResource LinkLabelStyle}" HorizontalOptions="Start" Padding="0,0,0,0" LineBreakMode="TailTruncation">
|
<Label Grid.Column="0" Text="{x:Static res:Text.Register_AcceptTermsMangopay}" Style="{StaticResource LinkLabelStyle}" HorizontalOptions="Start" Padding="0,0,0,0" LineBreakMode="TailTruncation">
|
||||||
<Label.GestureRecognizers>
|
<Label.GestureRecognizers>
|
||||||
@ -125,7 +125,7 @@
|
|||||||
</Label.GestureRecognizers>
|
</Label.GestureRecognizers>
|
||||||
</Label>
|
</Label>
|
||||||
<Switch Grid.Column="1" VerticalOptions="Center" HorizontalOptions="End" IsToggled="{Binding ViewModel.AcceptedTermsMangopay}"></Switch>
|
<Switch Grid.Column="1" VerticalOptions="Center" HorizontalOptions="End" IsToggled="{Binding ViewModel.AcceptedTermsMangopay}"></Switch>
|
||||||
</Grid> -->
|
</Grid>
|
||||||
</VerticalStackLayout>
|
</VerticalStackLayout>
|
||||||
|
|
||||||
<VerticalStackLayout Spacing="0" IsVisible="{Binding ViewModel.AppUserType, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static enum:AppUserType.DogWalker}}" Margin="{StaticResource MarginBig}">
|
<VerticalStackLayout Spacing="0" IsVisible="{Binding ViewModel.AppUserType, Converter={StaticResource EnumToBoolConverter}, ConverterParameter={x:Static enum:AppUserType.DogWalker}}" Margin="{StaticResource MarginBig}">
|
||||||
|
|||||||
@ -103,7 +103,7 @@ public static class MauiProgram
|
|||||||
fonts.AddFont("Inter-Medium.ttf", "InterMedium");
|
fonts.AddFont("Inter-Medium.ttf", "InterMedium");
|
||||||
fonts.AddFont("Inter-SemiBold.ttf", "InterSemiBold");
|
fonts.AddFont("Inter-SemiBold.ttf", "InterSemiBold");
|
||||||
fonts.AddFont("icomoon.ttf", "IconMoon");
|
fonts.AddFont("icomoon.ttf", "IconMoon");
|
||||||
fonts.AddFont("MaterialIcons-Regular.ttf", "MaterialIconsRegular");
|
fonts.AddFont("MaterialIcons-Regular.ttf", "IconFont");
|
||||||
}).UseLocalNotifications()
|
}).UseLocalNotifications()
|
||||||
.ConfigureMauiHandlers((handlers) =>
|
.ConfigureMauiHandlers((handlers) =>
|
||||||
{
|
{
|
||||||
@ -504,7 +504,7 @@ public static class MauiProgram
|
|||||||
#endif
|
#endif
|
||||||
#if IOS
|
#if IOS
|
||||||
handler.PlatformView.BorderStyle = UITextBorderStyle.None;
|
handler.PlatformView.BorderStyle = UITextBorderStyle.None;
|
||||||
// handler.PlatformView.SecureTextEntry = false;
|
handler.PlatformView.SecureTextEntry = false;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -27,6 +27,8 @@
|
|||||||
<string>Assets.xcassets/appicon.appiconset</string>
|
<string>Assets.xcassets/appicon.appiconset</string>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleIdentifier</key>
|
||||||
<string></string>
|
<string></string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>1.274</string>
|
||||||
<key>NSAppTransportSecurity</key>
|
<key>NSAppTransportSecurity</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSAllowsArbitraryLoads</key>
|
<key>NSAllowsArbitraryLoads</key>
|
||||||
@ -67,7 +69,7 @@
|
|||||||
<array>
|
<array>
|
||||||
<string>remote-notification</string>
|
<string>remote-notification</string>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleIdentifier</key>
|
<key>CFBundleVersion</key>
|
||||||
<string></string>
|
<string>274</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@ -184,7 +184,7 @@
|
|||||||
<Image.Source>
|
<Image.Source>
|
||||||
<FontImageSource
|
<FontImageSource
|
||||||
x:Name="homeImageSource"
|
x:Name="homeImageSource"
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
Glyph="home"
|
Glyph="home"
|
||||||
Color="{StaticResource Primary_DarkBlue}" />
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
</Image.Source>
|
</Image.Source>
|
||||||
@ -217,7 +217,7 @@
|
|||||||
<Image.Source>
|
<Image.Source>
|
||||||
<FontImageSource
|
<FontImageSource
|
||||||
x:Name="homeWalkerImageSource"
|
x:Name="homeWalkerImageSource"
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
Glyph="home"
|
Glyph="home"
|
||||||
Color="{StaticResource Primary_DarkBlue}" />
|
Color="{StaticResource Primary_DarkBlue}" />
|
||||||
</Image.Source>
|
</Image.Source>
|
||||||
@ -505,7 +505,7 @@
|
|||||||
Background="Transparent"
|
Background="Transparent"
|
||||||
Command="{TemplateBinding BindingContext.NavigateBackCommand}"
|
Command="{TemplateBinding BindingContext.NavigateBackCommand}"
|
||||||
FontAttributes="Bold"
|
FontAttributes="Bold"
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
FontSize="40"
|
FontSize="40"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="End"
|
||||||
Text="close"
|
Text="close"
|
||||||
|
|||||||
@ -203,9 +203,7 @@ namespace gehGassiApp.ViewModels.Account
|
|||||||
if (AppUserType == AppUserType.DogOwner)
|
if (AppUserType == AppUserType.DogOwner)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
// if (AcceptedTermsMangopay && SelectedNationality != null && SelectedMainResidence != null)
|
if (AcceptedTermsMangopay && SelectedNationality != null && SelectedMainResidence != null)
|
||||||
// return true;
|
|
||||||
if (SelectedNationality != null && SelectedMainResidence != null)
|
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -112,12 +112,6 @@ namespace gehGassiApp.ViewModels
|
|||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private ObservableCollection<DogWalkerLookup> _walkers;
|
private ObservableCollection<DogWalkerLookup> _walkers;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// First 10 walkers for the home screen display
|
|
||||||
/// </summary>
|
|
||||||
[ObservableProperty]
|
|
||||||
private ObservableCollection<DogWalkerLookup> _first10Walkers;
|
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private DogWalkerLookup _selectedWalker;
|
private DogWalkerLookup _selectedWalker;
|
||||||
|
|
||||||
@ -547,9 +541,6 @@ namespace gehGassiApp.ViewModels
|
|||||||
|
|
||||||
Walkers = requests.Value.ToObservableCollection();
|
Walkers = requests.Value.ToObservableCollection();
|
||||||
|
|
||||||
// Set First10Walkers for the home screen display
|
|
||||||
First10Walkers = requests.Value.Take(10).ToObservableCollection();
|
|
||||||
|
|
||||||
_total = requests.Total;
|
_total = requests.Total;
|
||||||
_skip = requests.Skip + requests.Take;
|
_skip = requests.Skip + requests.Take;
|
||||||
}
|
}
|
||||||
@ -558,7 +549,6 @@ namespace gehGassiApp.ViewModels
|
|||||||
_total = 0;
|
_total = 0;
|
||||||
_skip = 0;
|
_skip = 0;
|
||||||
Walkers = null;
|
Walkers = null;
|
||||||
First10Walkers = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@ -567,7 +557,6 @@ namespace gehGassiApp.ViewModels
|
|||||||
_total = 0;
|
_total = 0;
|
||||||
_skip = 0;
|
_skip = 0;
|
||||||
Walkers = null;
|
Walkers = null;
|
||||||
First10Walkers = null;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -81,7 +81,7 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
/// Hat der Benutzer die MangoPay-AGB akzeptiert?
|
/// Hat der Benutzer die MangoPay-AGB akzeptiert?
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool _acceptedTermsMangopay = true;
|
private bool _acceptedTermsMangopay;
|
||||||
|
|
||||||
#region Commands
|
#region Commands
|
||||||
|
|
||||||
@ -177,7 +177,7 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
{
|
{
|
||||||
SelectedNationality = null;
|
SelectedNationality = null;
|
||||||
SelectedMainResidence = null;
|
SelectedMainResidence = null;
|
||||||
AcceptedTermsMangopay = true;
|
AcceptedTermsMangopay = false;
|
||||||
|
|
||||||
IsBusy = true;
|
IsBusy = true;
|
||||||
await Task.Delay(Core.Common.Constants.AnimationDelayDetails);
|
await Task.Delay(Core.Common.Constants.AnimationDelayDetails);
|
||||||
|
|||||||
@ -91,7 +91,7 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
/// Hat der Benutzer die MangoPay-AGB akzeptiert?
|
/// Hat der Benutzer die MangoPay-AGB akzeptiert?
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private bool _acceptedTermsMangopay = true;
|
private bool _acceptedTermsMangopay;
|
||||||
|
|
||||||
#region Commands
|
#region Commands
|
||||||
|
|
||||||
@ -193,7 +193,7 @@ namespace gehGassiApp.ViewModels.More
|
|||||||
{
|
{
|
||||||
SelectedNationality = null;
|
SelectedNationality = null;
|
||||||
SelectedMainResidence = null;
|
SelectedMainResidence = null;
|
||||||
AcceptedTermsMangopay = true;
|
AcceptedTermsMangopay = false;
|
||||||
|
|
||||||
IsBusy = true;
|
IsBusy = true;
|
||||||
await Task.Delay(Core.Common.Constants.AnimationDelayDetails);
|
await Task.Delay(Core.Common.Constants.AnimationDelayDetails);
|
||||||
|
|||||||
@ -1,57 +0,0 @@
|
|||||||
using CommunityToolkit.Maui.Views;
|
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
|
||||||
using CommunityToolkit.Mvvm.Input;
|
|
||||||
|
|
||||||
namespace gehGassiApp.ViewModels.Popups
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// ViewModel für das Zahlungshinweis-Popup
|
|
||||||
///
|
|
||||||
/// Verwendung:
|
|
||||||
/// // Prüfen ob bereits angezeigt
|
|
||||||
/// if (!PaymentInfoPopupViewModel.HasInfoBeenShown())
|
|
||||||
/// {
|
|
||||||
/// var popup = new PaymentInfoPopup();
|
|
||||||
/// await Shell.Current.CurrentPage.ShowPopupAsync(popup);
|
|
||||||
/// }
|
|
||||||
/// </summary>
|
|
||||||
public partial class PaymentInfoPopupViewModel : ObservableObject
|
|
||||||
{
|
|
||||||
private readonly Popup _popup;
|
|
||||||
private const string PAYMENT_INFO_SHOWN_KEY = "payment_info_july_shown_2025";
|
|
||||||
|
|
||||||
public PaymentInfoPopupViewModel(Popup popup)
|
|
||||||
{
|
|
||||||
_popup = popup;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Prüft, ob der Zahlungshinweis bereits angezeigt wurde
|
|
||||||
/// </summary>
|
|
||||||
public static bool HasInfoBeenShown()
|
|
||||||
{
|
|
||||||
return Preferences.Get(PAYMENT_INFO_SHOWN_KEY, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Markiert den Hinweis als angezeigt
|
|
||||||
/// </summary>
|
|
||||||
private static void MarkInfoAsShown()
|
|
||||||
{
|
|
||||||
Preferences.Set(PAYMENT_INFO_SHOWN_KEY, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// User hat den Hinweis zur Kenntnis genommen
|
|
||||||
/// </summary>
|
|
||||||
[RelayCommand]
|
|
||||||
private async Task Acknowledge()
|
|
||||||
{
|
|
||||||
// Hinweis als angezeigt markieren
|
|
||||||
MarkInfoAsShown();
|
|
||||||
|
|
||||||
// Popup schließen
|
|
||||||
await _popup.CloseAsync(true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -35,7 +35,6 @@
|
|||||||
<Entry
|
<Entry
|
||||||
x:Name="email"
|
x:Name="email"
|
||||||
Keyboard="Email"
|
Keyboard="Email"
|
||||||
AutomationId="Login"
|
|
||||||
Placeholder="{x:Static res:Text.Login_Username}"
|
Placeholder="{x:Static res:Text.Login_Username}"
|
||||||
Text="{Binding Email}">
|
Text="{Binding Email}">
|
||||||
<Entry.Behaviors>
|
<Entry.Behaviors>
|
||||||
@ -49,7 +48,6 @@
|
|||||||
<Entry
|
<Entry
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
HorizontalOptions="Fill"
|
HorizontalOptions="Fill"
|
||||||
AutomationId="Password"
|
|
||||||
IsPassword="{Binding Source={x:Reference showPasswordTrigger}, Path=HidePassword}"
|
IsPassword="{Binding Source={x:Reference showPasswordTrigger}, Path=HidePassword}"
|
||||||
Keyboard="Text"
|
Keyboard="Text"
|
||||||
Placeholder="{x:Static res:Text.Login_Password}"
|
Placeholder="{x:Static res:Text.Login_Password}"
|
||||||
|
|||||||
@ -77,7 +77,7 @@
|
|||||||
WidthRequest="40">
|
WidthRequest="40">
|
||||||
<Button.ImageSource>
|
<Button.ImageSource>
|
||||||
<FontImageSource
|
<FontImageSource
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
Glyph="photo_camera"
|
Glyph="photo_camera"
|
||||||
Size="20"
|
Size="20"
|
||||||
Color="{StaticResource Primary_White}" />
|
Color="{StaticResource Primary_White}" />
|
||||||
|
|||||||
@ -76,7 +76,7 @@
|
|||||||
WidthRequest="40">
|
WidthRequest="40">
|
||||||
<Button.ImageSource>
|
<Button.ImageSource>
|
||||||
<FontImageSource
|
<FontImageSource
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
Glyph="photo_camera"
|
Glyph="photo_camera"
|
||||||
Size="20"
|
Size="20"
|
||||||
Color="{StaticResource Primary_White}" />
|
Color="{StaticResource Primary_White}" />
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
<controls:BaseContentPage
|
<controls:BaseContentPage
|
||||||
x:Class="gehGassiApp.Views.HomeView"
|
x:Class="gehGassiApp.Views.HomeView"
|
||||||
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
||||||
@ -23,147 +23,189 @@
|
|||||||
</controls:BaseContentPage.TitleView>
|
</controls:BaseContentPage.TitleView>
|
||||||
|
|
||||||
<ContentPage.Content>
|
<ContentPage.Content>
|
||||||
<AbsoluteLayout>
|
<Grid
|
||||||
<!-- Main scrollable content (full screen) -->
|
x:Name="rootHomeGrid"
|
||||||
|
Padding="20,20,20,0"
|
||||||
|
HorizontalOptions="FillAndExpand"
|
||||||
|
RowDefinitions="Auto,*"
|
||||||
|
VerticalOptions="FillAndExpand">
|
||||||
|
|
||||||
|
<VerticalStackLayout
|
||||||
|
x:Name="rootVerticalStackLayout"
|
||||||
|
Grid.Row="0"
|
||||||
|
HorizontalOptions="Fill"
|
||||||
|
SizeChanged="rootVerticalStackLayout_SizeChanged"
|
||||||
|
Spacing="0"
|
||||||
|
VerticalOptions="FillAndExpand">
|
||||||
|
<Border x:Name="permissionStatusBorder" 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="LocationPermissionStatus" />
|
||||||
|
<Binding Path="ShowPermissionStatus" />
|
||||||
|
</MultiBinding>
|
||||||
|
</Border.IsVisible>
|
||||||
|
<Border.GestureRecognizers>
|
||||||
|
<TapGestureRecognizer Command="{Binding ShowPermissionsCommand}" />
|
||||||
|
</Border.GestureRecognizers>
|
||||||
|
</Border>
|
||||||
|
<controls:ProfileNotFinishedControl
|
||||||
|
Margin="{StaticResource MarginMid}"
|
||||||
|
HorizontalOptions="Fill"
|
||||||
|
IsVisible="{Binding ProfileNotFinished}"
|
||||||
|
VerticalOptions="StartAndExpand"
|
||||||
|
ViewModel="{Binding .}" />
|
||||||
|
|
||||||
|
<ownerDashboardControls:NextWalkControlSmall
|
||||||
|
HorizontalOptions="FillAndExpand"
|
||||||
|
IsVisible="{Binding HasNextWalk}"
|
||||||
|
NextWalk="{Binding NextWalk}"
|
||||||
|
ShowCommand="{Binding WalkSelectedCommand}"
|
||||||
|
VerticalOptions="StartAndExpand" />
|
||||||
|
|
||||||
|
<Grid
|
||||||
|
HeightRequest="130"
|
||||||
|
HorizontalOptions="Fill"
|
||||||
|
VerticalOptions="StartAndExpand">
|
||||||
|
<CollectionView ItemsSource="{Binding NextWalks}" VerticalOptions="StartAndExpand">
|
||||||
|
<CollectionView.ItemsLayout>
|
||||||
|
<GridItemsLayout
|
||||||
|
HorizontalItemSpacing="10"
|
||||||
|
Orientation="Horizontal"
|
||||||
|
SnapPointsAlignment="Center"
|
||||||
|
SnapPointsType="MandatorySingle" />
|
||||||
|
</CollectionView.ItemsLayout>
|
||||||
|
<CollectionView.ItemTemplate>
|
||||||
|
<DataTemplate>
|
||||||
|
<ownerDashboardControls:NextWalkListControl
|
||||||
|
NextWalk="{Binding .}"
|
||||||
|
NextWalkWidth="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:HomeViewModel}}, Path=NextWalkWidth}"
|
||||||
|
ShowCommand="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:HomeViewModel}}, Path=NextWalkSelectedCommand}" />
|
||||||
|
</DataTemplate>
|
||||||
|
</CollectionView.ItemTemplate>
|
||||||
|
</CollectionView>
|
||||||
|
<Grid.IsVisible>
|
||||||
|
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
||||||
|
<Binding Converter="{StaticResource InvertedBoolConverter}" Path="HasNextWalk" />
|
||||||
|
<Binding Converter="{StaticResource IsListNotNullOrEmptyConverter}" Path="NextWalks" />
|
||||||
|
<Binding Converter="{StaticResource ListContainsMoreThanOneItemConverter}" Path="NextWalks" />
|
||||||
|
</MultiBinding>
|
||||||
|
</Grid.IsVisible>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<Image
|
||||||
|
Margin="{Binding BannerMargin}"
|
||||||
|
HeightRequest="{Binding Banner.Height}"
|
||||||
|
IsVisible="{Binding HasBanner}"
|
||||||
|
WidthRequest="{Binding Banner.Width}">
|
||||||
|
<Image.Source>
|
||||||
|
<UriImageSource CachingEnabled="True" Uri="{Binding Banner.Image}" />
|
||||||
|
</Image.Source>
|
||||||
|
<Image.GestureRecognizers>
|
||||||
|
<TapGestureRecognizer Command="{Binding ShowBannerCommand}" />
|
||||||
|
</Image.GestureRecognizers>
|
||||||
|
</Image>
|
||||||
|
|
||||||
|
<Label
|
||||||
|
Grid.Row="1"
|
||||||
|
Margin="{Binding ListMargin}"
|
||||||
|
Style="{StaticResource H6_Blue}"
|
||||||
|
Text="{x:Static res:Text.Common_DogWalkers_NearYou}" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</VerticalStackLayout>
|
||||||
|
|
||||||
|
<controls:EmptyListViewControl
|
||||||
|
Grid.Row="1"
|
||||||
|
ImageHeight="150"
|
||||||
|
IsBusy="{Binding IsBusy}"
|
||||||
|
IsNotBusy="{Binding IsNotBusy}"
|
||||||
|
IsVisible="{Binding Walkers, Converter={StaticResource IsListNullOrEmptyConverter}}"
|
||||||
|
ListSource="{Binding Walkers}"
|
||||||
|
NotFoundImage="walking_dogs"
|
||||||
|
NotFoundText="{x:Static res:Text.Walker_NotFound}"
|
||||||
|
RefreshCommand="{Binding RefreshWalkersCommand}"
|
||||||
|
SearchImage="walking_dogs"
|
||||||
|
SearchText="{x:Static res:Text.Walker_Searching}" />
|
||||||
|
|
||||||
<RefreshView
|
<RefreshView
|
||||||
x:Name="homeRefreshView"
|
x:Name="homeRefreshView"
|
||||||
AbsoluteLayout.LayoutBounds="0,0,1,1"
|
Grid.Row="1"
|
||||||
AbsoluteLayout.LayoutFlags="All"
|
|
||||||
BackgroundColor="#ffffff"
|
BackgroundColor="#ffffff"
|
||||||
Command="{Binding RefreshWalkersCommand}"
|
Command="{Binding RefreshWalkersCommand}"
|
||||||
IsRefreshing="{Binding WalkersRefreshing}">
|
HorizontalOptions="FillAndExpand"
|
||||||
<ScrollView>
|
IsRefreshing="{Binding WalkersRefreshing}"
|
||||||
<Grid
|
IsVisible="{Binding Walkers, Converter={StaticResource IsListNotNullOrEmptyConverter}}"
|
||||||
x:Name="rootHomeGrid"
|
Refreshing="RefreshView_Refreshing"
|
||||||
Padding="20,20,20,90"
|
VerticalOptions="FillAndExpand">
|
||||||
|
<Grid HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand">
|
||||||
|
<CollectionView
|
||||||
|
x:Name="homeCollectionView"
|
||||||
|
Background="#ffffff"
|
||||||
HorizontalOptions="FillAndExpand"
|
HorizontalOptions="FillAndExpand"
|
||||||
RowDefinitions="Auto,Auto"
|
ItemsSource="{Binding Walkers}"
|
||||||
VerticalOptions="FillAndExpand">
|
RemainingItemsThreshold="5"
|
||||||
|
RemainingItemsThresholdReachedCommand="{Binding LoadMoreCommand}"
|
||||||
<VerticalStackLayout
|
Scrolled="homeCollectionView_Scrolled"
|
||||||
x:Name="rootVerticalStackLayout"
|
SelectedItem="{Binding SelectedWalker}"
|
||||||
Grid.Row="0"
|
SelectionMode="Single"
|
||||||
HorizontalOptions="Fill"
|
VerticalOptions="Fill"
|
||||||
Spacing="0"
|
VerticalScrollBarVisibility="Never">
|
||||||
VerticalOptions="Start">
|
<CollectionView.ItemsLayout>
|
||||||
<Border x:Name="permissionStatusBorder" Style="{StaticResource PermissionStatusBorder}">
|
<GridItemsLayout Orientation="Vertical" VerticalItemSpacing="12" />
|
||||||
<Label Style="{StaticResource PermissionStatusLabel}" Text="{x:Static res:Text.Permission_Location_Error}" />
|
</CollectionView.ItemsLayout>
|
||||||
<Border.IsVisible>
|
<CollectionView.ItemTemplate>
|
||||||
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
<DataTemplate>
|
||||||
<Binding Converter="{StaticResource PermissionsStatusToBoolConverter}" Path="LocationPermissionStatus" />
|
<!--<SwipeView BackgroundColor="{StaticResource Primary_White}" Margin="0,0,0,12">
|
||||||
<Binding Path="ShowPermissionStatus" />
|
<SwipeView.LeftItems>
|
||||||
</MultiBinding>
|
<SwipeItems>
|
||||||
</Border.IsVisible>
|
<SwipeItemView Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:HomeViewModel}}, Path=BlockCommand}" CommandParameter="{Binding .}">
|
||||||
<Border.GestureRecognizers>
|
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
|
||||||
<TapGestureRecognizer Command="{Binding ShowPermissionsCommand}" />
|
<Image Source="block_user" WidthRequest="24" HeightRequest="24" HorizontalOptions="Center" VerticalOptions="Center"/>
|
||||||
</Border.GestureRecognizers>
|
<Label Text="{x:Static res:Text.Common_Block}" HorizontalOptions="Center" Style="{StaticResource BodyS_GreyDark}"></Label>
|
||||||
</Border>
|
</StackLayout>
|
||||||
<controls:ProfileNotFinishedControl
|
</SwipeItemView>
|
||||||
Margin="{StaticResource MarginMid}"
|
</SwipeItems>
|
||||||
HorizontalOptions="Fill"
|
</SwipeView.LeftItems>
|
||||||
IsVisible="{Binding ProfileNotFinished}"
|
<SwipeView.RightItems>
|
||||||
VerticalOptions="StartAndExpand"
|
<SwipeItems>
|
||||||
ViewModel="{Binding .}" />
|
<SwipeItemView Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:HomeViewModel}}, Path=ReportCommand}" CommandParameter="{Binding .}">
|
||||||
|
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
|
||||||
<ownerDashboardControls:NextWalkControlSmall
|
<Image Source="report_user" WidthRequest="24" HeightRequest="24" HorizontalOptions="Center" VerticalOptions="Center"/>
|
||||||
HorizontalOptions="FillAndExpand"
|
<Label Text="{x:Static res:Text.Common_Report}" HorizontalOptions="Center" Style="{StaticResource BodyS_GreyDark}"></Label>
|
||||||
IsVisible="{Binding HasNextWalk}"
|
</StackLayout>
|
||||||
NextWalk="{Binding NextWalk}"
|
</SwipeItemView>
|
||||||
ShowCommand="{Binding WalkSelectedCommand}"
|
</SwipeItems>
|
||||||
VerticalOptions="StartAndExpand" />
|
</SwipeView.RightItems>-->
|
||||||
|
<controls:WalkerListControl DogOwnerHasPremium="{Binding IsPremiumUser}" Walker="{Binding .}">
|
||||||
<Grid
|
<controls:WalkerListControl.GestureRecognizers>
|
||||||
HeightRequest="130"
|
<TapGestureRecognizer Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:HomeViewModel}}, Path=WalkerSelectedCommand}" CommandParameter="{Binding .}" />
|
||||||
HorizontalOptions="Fill"
|
</controls:WalkerListControl.GestureRecognizers>
|
||||||
VerticalOptions="StartAndExpand">
|
</controls:WalkerListControl>
|
||||||
<CollectionView ItemsSource="{Binding NextWalks}" VerticalOptions="StartAndExpand">
|
<!--<VisualStateManager.VisualStateGroups>
|
||||||
<CollectionView.ItemsLayout>
|
<VisualStateGroup Name="CommonStates">
|
||||||
<GridItemsLayout
|
<VisualState Name="Selected">
|
||||||
HorizontalItemSpacing="10"
|
<VisualState.Setters>
|
||||||
Orientation="Horizontal"
|
<Setter Property="BackgroundColor" Value="{StaticResource Primary_White}" />
|
||||||
SnapPointsAlignment="Center"
|
</VisualState.Setters>
|
||||||
SnapPointsType="MandatorySingle" />
|
</VisualState>
|
||||||
</CollectionView.ItemsLayout>
|
</VisualStateGroup>
|
||||||
<CollectionView.ItemTemplate>
|
</VisualStateManager.VisualStateGroups>-->
|
||||||
<DataTemplate>
|
<!--</SwipeView>-->
|
||||||
<ownerDashboardControls:NextWalkListControl
|
</DataTemplate>
|
||||||
NextWalk="{Binding .}"
|
</CollectionView.ItemTemplate>
|
||||||
NextWalkWidth="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:HomeViewModel}}, Path=NextWalkWidth}"
|
</CollectionView>
|
||||||
ShowCommand="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:HomeViewModel}}, Path=NextWalkSelectedCommand}" />
|
</Grid>
|
||||||
</DataTemplate>
|
|
||||||
</CollectionView.ItemTemplate>
|
|
||||||
</CollectionView>
|
|
||||||
<Grid.IsVisible>
|
|
||||||
<MultiBinding Converter="{StaticResource AllTrueMultiConverter}">
|
|
||||||
<Binding Converter="{StaticResource InvertedBoolConverter}" Path="HasNextWalk" />
|
|
||||||
<Binding Converter="{StaticResource IsListNotNullOrEmptyConverter}" Path="NextWalks" />
|
|
||||||
<Binding Converter="{StaticResource ListContainsMoreThanOneItemConverter}" Path="NextWalks" />
|
|
||||||
</MultiBinding>
|
|
||||||
</Grid.IsVisible>
|
|
||||||
</Grid>
|
|
||||||
|
|
||||||
<Image
|
|
||||||
Margin="{Binding BannerMargin}"
|
|
||||||
HeightRequest="{Binding Banner.Height}"
|
|
||||||
IsVisible="{Binding HasBanner}"
|
|
||||||
WidthRequest="{Binding Banner.Width}">
|
|
||||||
<Image.Source>
|
|
||||||
<UriImageSource CachingEnabled="True" Uri="{Binding Banner.Image}" />
|
|
||||||
</Image.Source>
|
|
||||||
<Image.GestureRecognizers>
|
|
||||||
<TapGestureRecognizer Command="{Binding ShowBannerCommand}" />
|
|
||||||
</Image.GestureRecognizers>
|
|
||||||
</Image>
|
|
||||||
|
|
||||||
<Label
|
|
||||||
Grid.Row="1"
|
|
||||||
Margin="{Binding ListMargin}"
|
|
||||||
Style="{StaticResource H6_Blue}"
|
|
||||||
Text="{x:Static res:Text.Common_DogWalkers_NearYou}" />
|
|
||||||
|
|
||||||
<!-- Walker StackLayout (first 10) -->
|
|
||||||
<StackLayout
|
|
||||||
x:Name="walkersStackLayout"
|
|
||||||
BindableLayout.ItemsSource="{Binding First10Walkers}"
|
|
||||||
Spacing="12">
|
|
||||||
<BindableLayout.ItemTemplate>
|
|
||||||
<DataTemplate>
|
|
||||||
<controls:WalkerListControl DogOwnerHasPremium="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:HomeViewModel}}, Path=IsPremiumUser}" Walker="{Binding .}">
|
|
||||||
<controls:WalkerListControl.GestureRecognizers>
|
|
||||||
<TapGestureRecognizer Command="{Binding Source={RelativeSource AncestorType={x:Type viewmodels:HomeViewModel}}, Path=WalkerSelectedCommand}" CommandParameter="{Binding .}" />
|
|
||||||
</controls:WalkerListControl.GestureRecognizers>
|
|
||||||
</controls:WalkerListControl>
|
|
||||||
</DataTemplate>
|
|
||||||
</BindableLayout.ItemTemplate>
|
|
||||||
</StackLayout>
|
|
||||||
|
|
||||||
<!-- "Alle anzeigen" Link Label -->
|
|
||||||
<Label
|
|
||||||
Margin="0,16,0,0"
|
|
||||||
Style="{StaticResource LinkLabelStyle}"
|
|
||||||
HorizontalOptions="Center"
|
|
||||||
Text="Alle anzeigen">
|
|
||||||
<Label.GestureRecognizers>
|
|
||||||
<TapGestureRecognizer Command="{Binding NavigateCommand}" CommandParameter="{x:Static viewmodels:MenuSelected.Walkers}" />
|
|
||||||
</Label.GestureRecognizers>
|
|
||||||
</Label>
|
|
||||||
|
|
||||||
</VerticalStackLayout>
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
</ScrollView>
|
|
||||||
</RefreshView>
|
</RefreshView>
|
||||||
|
|
||||||
<!-- Floating Public Request Button (over content) -->
|
|
||||||
<Button
|
<Button
|
||||||
Margin="0,0,0,20"
|
Grid.Row="0"
|
||||||
AbsoluteLayout.LayoutBounds="0.5,1,300,90"
|
Grid.RowSpan="2"
|
||||||
AbsoluteLayout.LayoutFlags="PositionProportional"
|
Margin="0,0,0,10"
|
||||||
BackgroundColor="{StaticResource Primary}"
|
|
||||||
Command="{Binding CreatePublicWalkRequestCommand}"
|
Command="{Binding CreatePublicWalkRequestCommand}"
|
||||||
ContentLayout="Left, 5"
|
ContentLayout="Left, 5"
|
||||||
CornerRadius="15"
|
HorizontalOptions="CenterAndExpand"
|
||||||
HorizontalOptions="Center"
|
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
Text="{x:Static res:Text.PublicWalkRequest_Title}"
|
Text="{x:Static res:Text.PublicWalkRequest_Title}"
|
||||||
VerticalOptions="End">
|
VerticalOptions="End">
|
||||||
@ -175,7 +217,7 @@
|
|||||||
</Button.ImageSource>
|
</Button.ImageSource>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
</AbsoluteLayout>
|
</Grid>
|
||||||
</ContentPage.Content>
|
</ContentPage.Content>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -10,11 +10,9 @@ public partial class HomeView : BaseContentPage
|
|||||||
IDeviceInstallationService _deviceInstallationService;
|
IDeviceInstallationService _deviceInstallationService;
|
||||||
IDeviceInstallationService DeviceInstallationService => _deviceInstallationService ??= ServiceHelper.GetService<IDeviceInstallationService>();
|
IDeviceInstallationService DeviceInstallationService => _deviceInstallationService ??= ServiceHelper.GetService<IDeviceInstallationService>();
|
||||||
private HomeViewModel ViewModel => BindingContext as HomeViewModel;
|
private HomeViewModel ViewModel => BindingContext as HomeViewModel;
|
||||||
|
private bool _isRowHidden = false;
|
||||||
// COMMENTED OUT: Animation variables for collapsing header
|
private double _initialRowHeight;
|
||||||
//private bool _isRowHidden = false;
|
private bool _animationRunning = false;
|
||||||
//private double _initialRowHeight;
|
|
||||||
//private bool _animationRunning = false;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Erstellt eine Instanz
|
/// Erstellt eine Instanz
|
||||||
@ -33,13 +31,10 @@ public partial class HomeView : BaseContentPage
|
|||||||
await ViewModel.InitializeAsync(this);
|
await ViewModel.InitializeAsync(this);
|
||||||
var width = DeviceDisplay.Current.MainDisplayInfo.Width / DeviceDisplay.Current.MainDisplayInfo.Density;
|
var width = DeviceDisplay.Current.MainDisplayInfo.Width / DeviceDisplay.Current.MainDisplayInfo.Density;
|
||||||
ViewModel.NextWalkWidth = width * 0.8;
|
ViewModel.NextWalkWidth = width * 0.8;
|
||||||
|
_isRowHidden = false;
|
||||||
// COMMENTED OUT: Animation initialization
|
_initialRowHeight = 0;
|
||||||
//_isRowHidden = false;
|
_animationRunning = false;
|
||||||
//_initialRowHeight = 0;
|
rootVerticalStackLayout.HeightRequest = -1;
|
||||||
//_animationRunning = false;
|
|
||||||
//rootVerticalStackLayout.HeightRequest = -1;
|
|
||||||
|
|
||||||
#if IOS
|
#if IOS
|
||||||
if (DeviceInstallationService.NotificationsSupported)
|
if (DeviceInstallationService.NotificationsSupported)
|
||||||
{
|
{
|
||||||
@ -55,78 +50,74 @@ public partial class HomeView : BaseContentPage
|
|||||||
await ViewModel.DisappearingAsync(this);
|
await ViewModel.DisappearingAsync(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
// COMMENTED OUT: Workaround für den IOS-Bug der Höhenberechnung! Siehe https://github.com/dotnet/maui/issues/8820
|
//Workaround für den IOS-Bug der Höhenberechnung! Siehe https://github.com/dotnet/maui/issues/8820
|
||||||
//private void rootVerticalStackLayout_SizeChanged(object sender, EventArgs e)
|
private void rootVerticalStackLayout_SizeChanged(object sender, EventArgs e)
|
||||||
//{
|
{
|
||||||
// if(!_isRowHidden && rootVerticalStackLayout.Height > _initialRowHeight)
|
if(!_isRowHidden && rootVerticalStackLayout.Height > _initialRowHeight)
|
||||||
// _initialRowHeight = rootVerticalStackLayout.Height;
|
_initialRowHeight = rootVerticalStackLayout.Height;
|
||||||
//}
|
}
|
||||||
|
|
||||||
// COMMENTED OUT: Scroll handler for collapsing animation
|
private async void homeCollectionView_Scrolled(object sender, ItemsViewScrolledEventArgs e)
|
||||||
//private async void homeCollectionView_Scrolled(object sender, ItemsViewScrolledEventArgs e)
|
{
|
||||||
//{
|
if(_animationRunning)
|
||||||
// if(_animationRunning)
|
return;
|
||||||
// return;
|
|
||||||
//
|
|
||||||
// if (e.VerticalDelta > 0 && e.VerticalOffset >= 50 && !_isRowHidden)
|
|
||||||
// {
|
|
||||||
// await HideHeader();
|
|
||||||
// }
|
|
||||||
// else if (e.VerticalDelta < 0 && e.VerticalOffset <= 50 && _isRowHidden)
|
|
||||||
// {
|
|
||||||
// await ShowHeader();
|
|
||||||
// }
|
|
||||||
//}
|
|
||||||
|
|
||||||
// COMMENTED OUT: Show header animation
|
if (e.VerticalDelta > 0 && e.VerticalOffset >= 50 && !_isRowHidden)
|
||||||
//private async Task ShowHeader()
|
{
|
||||||
//{
|
await HideHeader();
|
||||||
// homeRefreshView.IsEnabled = false;
|
}
|
||||||
// homeCollectionView.IsEnabled = false;
|
else if (e.VerticalDelta < 0 && e.VerticalOffset <= 50 && _isRowHidden)
|
||||||
// _isRowHidden = false;
|
{
|
||||||
// _animationRunning = true;
|
await ShowHeader();
|
||||||
// var animation = new Animation(v => rootVerticalStackLayout.HeightRequest = v, 0, _initialRowHeight);
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// MainThread.BeginInvokeOnMainThread(() =>
|
private async Task ShowHeader()
|
||||||
// {
|
{
|
||||||
// animation.Commit(this, "HideRowAnimation", length: 500, easing: Easing.SinIn);
|
homeRefreshView.IsEnabled = false;
|
||||||
//
|
homeCollectionView.IsEnabled = false;
|
||||||
// });
|
_isRowHidden = false;
|
||||||
|
_animationRunning = true;
|
||||||
|
var animation = new Animation(v => rootVerticalStackLayout.HeightRequest = v, 0, _initialRowHeight);
|
||||||
|
|
||||||
// await Task.Delay(500);
|
MainThread.BeginInvokeOnMainThread(() =>
|
||||||
// _animationRunning = false;
|
{
|
||||||
// homeCollectionView.IsEnabled = true;
|
animation.Commit(this, "HideRowAnimation", length: 500, easing: Easing.SinIn);
|
||||||
// homeRefreshView.IsEnabled = true;
|
|
||||||
//}
|
|
||||||
|
|
||||||
// COMMENTED OUT: Hide header animation
|
});
|
||||||
//private async Task HideHeader()
|
|
||||||
//{
|
|
||||||
// homeRefreshView.IsEnabled = false;
|
|
||||||
// homeCollectionView.IsEnabled = false;
|
|
||||||
// _isRowHidden = true;
|
|
||||||
// _animationRunning = true;
|
|
||||||
// var animation = new Animation(v => rootVerticalStackLayout.HeightRequest = v, _initialRowHeight, 0);
|
|
||||||
//
|
|
||||||
// MainThread.BeginInvokeOnMainThread(() =>
|
|
||||||
// {
|
|
||||||
// animation.Commit(this, "HideRowAnimation", length: 500, easing: Easing.SinOut);
|
|
||||||
//
|
|
||||||
// });
|
|
||||||
//
|
|
||||||
// await Task.Delay(500);
|
|
||||||
// _animationRunning = false;
|
|
||||||
// homeCollectionView.IsEnabled = true;
|
|
||||||
// homeRefreshView.IsEnabled = true;
|
|
||||||
//}
|
|
||||||
|
|
||||||
// COMMENTED OUT: RefreshView refreshing handler
|
await Task.Delay(500);
|
||||||
//private async void RefreshView_Refreshing(object sender, EventArgs e)
|
_animationRunning = false;
|
||||||
//{
|
homeCollectionView.IsEnabled = true;
|
||||||
// if (_isRowHidden)
|
homeRefreshView.IsEnabled = true;
|
||||||
// {
|
}
|
||||||
// await ShowHeader();
|
|
||||||
// }
|
private async Task HideHeader()
|
||||||
//}
|
{
|
||||||
|
homeRefreshView.IsEnabled = false;
|
||||||
|
homeCollectionView.IsEnabled = false;
|
||||||
|
_isRowHidden = true;
|
||||||
|
_animationRunning = true;
|
||||||
|
var animation = new Animation(v => rootVerticalStackLayout.HeightRequest = v, _initialRowHeight, 0);
|
||||||
|
|
||||||
|
MainThread.BeginInvokeOnMainThread(() =>
|
||||||
|
{
|
||||||
|
animation.Commit(this, "HideRowAnimation", length: 500, easing: Easing.SinOut);
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
await Task.Delay(500);
|
||||||
|
_animationRunning = false;
|
||||||
|
homeCollectionView.IsEnabled = true;
|
||||||
|
homeRefreshView.IsEnabled = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async void RefreshView_Refreshing(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (_isRowHidden)
|
||||||
|
{
|
||||||
|
await ShowHeader();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -64,7 +64,7 @@
|
|||||||
ItemsSource="{Binding MainResidences}"
|
ItemsSource="{Binding MainResidences}"
|
||||||
SelectedItem="{Binding SelectedMainResidence}" />
|
SelectedItem="{Binding SelectedMainResidence}" />
|
||||||
</Border>
|
</Border>
|
||||||
<!-- <Grid
|
<Grid
|
||||||
Margin="{StaticResource MarginBig}"
|
Margin="{StaticResource MarginBig}"
|
||||||
ColumnDefinitions="*,Auto"
|
ColumnDefinitions="*,Auto"
|
||||||
ColumnSpacing="10">
|
ColumnSpacing="10">
|
||||||
@ -83,7 +83,7 @@
|
|||||||
HorizontalOptions="End"
|
HorizontalOptions="End"
|
||||||
IsToggled="{Binding AcceptedTermsMangopay}"
|
IsToggled="{Binding AcceptedTermsMangopay}"
|
||||||
VerticalOptions="Center" />
|
VerticalOptions="Center" />
|
||||||
</Grid> -->
|
</Grid>
|
||||||
|
|
||||||
<ActivityIndicator
|
<ActivityIndicator
|
||||||
HorizontalOptions="Center"
|
HorizontalOptions="Center"
|
||||||
|
|||||||
@ -65,7 +65,7 @@
|
|||||||
ItemsSource="{Binding MainResidences}"
|
ItemsSource="{Binding MainResidences}"
|
||||||
SelectedItem="{Binding SelectedMainResidence}" />
|
SelectedItem="{Binding SelectedMainResidence}" />
|
||||||
</Border>
|
</Border>
|
||||||
<!-- <Grid
|
<Grid
|
||||||
Margin="{StaticResource MarginBig}"
|
Margin="{StaticResource MarginBig}"
|
||||||
ColumnDefinitions="*,Auto"
|
ColumnDefinitions="*,Auto"
|
||||||
ColumnSpacing="10">
|
ColumnSpacing="10">
|
||||||
@ -84,7 +84,7 @@
|
|||||||
HorizontalOptions="End"
|
HorizontalOptions="End"
|
||||||
IsToggled="{Binding AcceptedTermsMangopay}"
|
IsToggled="{Binding AcceptedTermsMangopay}"
|
||||||
VerticalOptions="Center" />
|
VerticalOptions="Center" />
|
||||||
</Grid>-->
|
</Grid>
|
||||||
|
|
||||||
<ActivityIndicator
|
<ActivityIndicator
|
||||||
HorizontalOptions="Center"
|
HorizontalOptions="Center"
|
||||||
|
|||||||
@ -476,7 +476,7 @@
|
|||||||
</Grid.GestureRecognizers>
|
</Grid.GestureRecognizers>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- <Border Style="{StaticResource Separator}" />
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
<Grid
|
<Grid
|
||||||
ColumnDefinitions="24,*,24"
|
ColumnDefinitions="24,*,24"
|
||||||
@ -599,7 +599,7 @@
|
|||||||
<Grid.GestureRecognizers>
|
<Grid.GestureRecognizers>
|
||||||
<TapGestureRecognizer Command="{Binding PayoutsCommand}" />
|
<TapGestureRecognizer Command="{Binding PayoutsCommand}" />
|
||||||
</Grid.GestureRecognizers>
|
</Grid.GestureRecognizers>
|
||||||
</Grid> -->
|
</Grid>
|
||||||
|
|
||||||
<Border Style="{StaticResource Separator}" />
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
|
|||||||
@ -441,7 +441,7 @@
|
|||||||
</Grid.GestureRecognizers>
|
</Grid.GestureRecognizers>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- <Border Style="{StaticResource Separator}" />
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
<Grid
|
<Grid
|
||||||
ColumnDefinitions="24,*,24"
|
ColumnDefinitions="24,*,24"
|
||||||
@ -484,9 +484,9 @@
|
|||||||
<Grid.GestureRecognizers>
|
<Grid.GestureRecognizers>
|
||||||
<TapGestureRecognizer Command="{Binding BankAccountCommand}" />
|
<TapGestureRecognizer Command="{Binding BankAccountCommand}" />
|
||||||
</Grid.GestureRecognizers>
|
</Grid.GestureRecognizers>
|
||||||
</Grid> -->
|
</Grid>
|
||||||
|
|
||||||
<!-- <Border Style="{StaticResource Separator}" />
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
<Grid
|
<Grid
|
||||||
ColumnDefinitions="24,*,24"
|
ColumnDefinitions="24,*,24"
|
||||||
@ -529,9 +529,9 @@
|
|||||||
<Grid.GestureRecognizers>
|
<Grid.GestureRecognizers>
|
||||||
<TapGestureRecognizer Command="{Binding IdentityProofCommand}" />
|
<TapGestureRecognizer Command="{Binding IdentityProofCommand}" />
|
||||||
</Grid.GestureRecognizers>
|
</Grid.GestureRecognizers>
|
||||||
</Grid> -->
|
</Grid>
|
||||||
|
|
||||||
<!-- <Border Style="{StaticResource Separator}" />
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
<Grid
|
<Grid
|
||||||
ColumnDefinitions="24,*,24"
|
ColumnDefinitions="24,*,24"
|
||||||
@ -564,7 +564,7 @@
|
|||||||
<Grid.GestureRecognizers>
|
<Grid.GestureRecognizers>
|
||||||
<TapGestureRecognizer Command="{Binding PayoutsCommand}" />
|
<TapGestureRecognizer Command="{Binding PayoutsCommand}" />
|
||||||
</Grid.GestureRecognizers>
|
</Grid.GestureRecognizers>
|
||||||
</Grid> -->
|
</Grid>
|
||||||
|
|
||||||
<Border Style="{StaticResource Separator}" />
|
<Border Style="{StaticResource Separator}" />
|
||||||
|
|
||||||
|
|||||||
@ -136,7 +136,7 @@
|
|||||||
BorderWidth="1"
|
BorderWidth="1"
|
||||||
Command="{Binding PreviousStepCommand}"
|
Command="{Binding PreviousStepCommand}"
|
||||||
CornerRadius="30"
|
CornerRadius="30"
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
FontSize="40"
|
FontSize="40"
|
||||||
HeightRequest="60"
|
HeightRequest="60"
|
||||||
HorizontalOptions="Start"
|
HorizontalOptions="Start"
|
||||||
@ -158,7 +158,7 @@
|
|||||||
BorderWidth="1"
|
BorderWidth="1"
|
||||||
Command="{Binding NextStepCommand}"
|
Command="{Binding NextStepCommand}"
|
||||||
CornerRadius="30"
|
CornerRadius="30"
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
FontSize="40"
|
FontSize="40"
|
||||||
HeightRequest="60"
|
HeightRequest="60"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="End"
|
||||||
|
|||||||
@ -1,98 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="utf-8" ?>
|
|
||||||
<toolkit:Popup
|
|
||||||
x:Class="gehGassiApp.Views.Popups.PaymentInfoPopup"
|
|
||||||
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
|
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
|
||||||
xmlns:res="clr-namespace:gehGassiApp.Resources"
|
|
||||||
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
|
|
||||||
CanBeDismissedByTappingOutsideOfPopup="True"
|
|
||||||
Color="Transparent">
|
|
||||||
|
|
||||||
<!-- Popup Content -->
|
|
||||||
<Border
|
|
||||||
Padding="0"
|
|
||||||
BackgroundColor="White"
|
|
||||||
StrokeShape="RoundRectangle 16"
|
|
||||||
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="8"
|
|
||||||
Offset="0,4" />
|
|
||||||
</Border.Shadow>
|
|
||||||
|
|
||||||
<Grid RowDefinitions="Auto,Auto,Auto">
|
|
||||||
|
|
||||||
<!-- Header -->
|
|
||||||
<Border
|
|
||||||
Grid.Row="0"
|
|
||||||
Padding="20,16"
|
|
||||||
BackgroundColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
|
||||||
Dark={StaticResource Primary_DarkBlue_Dark}}"
|
|
||||||
StrokeShape="RoundRectangle 16,16,0,0"
|
|
||||||
StrokeThickness="0">
|
|
||||||
<Label
|
|
||||||
Style="{StaticResource H4}"
|
|
||||||
Text="Zahlungshinweis"
|
|
||||||
TextColor="{AppThemeBinding Light={StaticResource Primary_White},
|
|
||||||
Dark={StaticResource Primary_White_Dark}}"
|
|
||||||
VerticalOptions="Center" />
|
|
||||||
</Border>
|
|
||||||
|
|
||||||
<!-- Content Bereich -->
|
|
||||||
<VerticalStackLayout
|
|
||||||
Grid.Row="1"
|
|
||||||
Padding="20,20"
|
|
||||||
Spacing="16">
|
|
||||||
|
|
||||||
<!-- Info Icon -->
|
|
||||||
<Label
|
|
||||||
FontFamily="MaterialIconsRegular"
|
|
||||||
FontSize="48"
|
|
||||||
HorizontalOptions="Center"
|
|
||||||
Text="info"
|
|
||||||
TextColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
|
||||||
Dark={StaticResource Primary_DarkBlue_Dark}}" />
|
|
||||||
|
|
||||||
<!-- Info Text -->
|
|
||||||
<Label
|
|
||||||
HorizontalTextAlignment="Center"
|
|
||||||
LineHeight="1.4"
|
|
||||||
Style="{StaticResource BodyM}"
|
|
||||||
Text="Leider sind diese Funktionen im Juli nicht verfügbar. Wir arbeiten aber fleißig an einer Lösung."
|
|
||||||
TextColor="{AppThemeBinding Light={StaticResource Grey_Dark},
|
|
||||||
Dark={StaticResource Grey_Dark_Dark}}" />
|
|
||||||
|
|
||||||
<!-- Additional Info -->
|
|
||||||
<Label
|
|
||||||
HorizontalTextAlignment="Center"
|
|
||||||
LineHeight="1.4"
|
|
||||||
Style="{StaticResource BodyM}"
|
|
||||||
Text="Im Juli sind nur Barzahlungen verfügbar."
|
|
||||||
TextColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
|
||||||
Dark={StaticResource Primary_DarkBlue_Dark}}"
|
|
||||||
FontAttributes="Bold" />
|
|
||||||
|
|
||||||
</VerticalStackLayout>
|
|
||||||
|
|
||||||
<!-- Action Button -->
|
|
||||||
<Button
|
|
||||||
Grid.Row="2"
|
|
||||||
Margin="20,0,20,20"
|
|
||||||
BackgroundColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
|
||||||
Dark={StaticResource Primary_DarkBlue_Dark}}"
|
|
||||||
Command="{Binding AcknowledgeCommand}"
|
|
||||||
CornerRadius="12"
|
|
||||||
FontAttributes="Bold"
|
|
||||||
FontSize="{StaticResource FontLabelM}"
|
|
||||||
Text="Verstanden"
|
|
||||||
TextColor="White" />
|
|
||||||
|
|
||||||
</Grid>
|
|
||||||
</Border>
|
|
||||||
</toolkit:Popup>
|
|
||||||
@ -1,13 +0,0 @@
|
|||||||
using CommunityToolkit.Maui.Views;
|
|
||||||
using gehGassiApp.ViewModels.Popups;
|
|
||||||
|
|
||||||
namespace gehGassiApp.Views.Popups;
|
|
||||||
|
|
||||||
public partial class PaymentInfoPopup : Popup
|
|
||||||
{
|
|
||||||
public PaymentInfoPopup()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
BindingContext = new PaymentInfoPopupViewModel(this);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -36,7 +36,7 @@
|
|||||||
Background="Transparent"
|
Background="Transparent"
|
||||||
Command="{Binding DeclineCommand}"
|
Command="{Binding DeclineCommand}"
|
||||||
FontAttributes="Bold"
|
FontAttributes="Bold"
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
FontSize="40"
|
FontSize="40"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="End"
|
||||||
Text="close"
|
Text="close"
|
||||||
@ -53,7 +53,7 @@
|
|||||||
|
|
||||||
<!-- Icon - Gestapelte Napf-Icons -->
|
<!-- Icon - Gestapelte Napf-Icons -->
|
||||||
<Image
|
<Image
|
||||||
Margin="0,0,0,-20"
|
Margin="0,0,0,-10"
|
||||||
HeightRequest="120"
|
HeightRequest="120"
|
||||||
HorizontalOptions="Center"
|
HorizontalOptions="Center"
|
||||||
Source="coins.png"
|
Source="coins.png"
|
||||||
@ -109,7 +109,7 @@
|
|||||||
<!-- Action Button -->
|
<!-- Action Button -->
|
||||||
<Button
|
<Button
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Margin="30,0,30,20"
|
Margin="30,0,30,30"
|
||||||
BackgroundColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
BackgroundColor="{AppThemeBinding Light={StaticResource Primary_DarkBlue},
|
||||||
Dark={StaticResource Primary_DarkBlue_Dark}}"
|
Dark={StaticResource Primary_DarkBlue_Dark}}"
|
||||||
Command="{Binding AcceptCommand}"
|
Command="{Binding AcceptCommand}"
|
||||||
|
|||||||
@ -36,7 +36,7 @@
|
|||||||
BackgroundColor="Transparent"
|
BackgroundColor="Transparent"
|
||||||
Command="{Binding CloseCommand}"
|
Command="{Binding CloseCommand}"
|
||||||
FontAttributes="Bold"
|
FontAttributes="Bold"
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
FontSize="40"
|
FontSize="40"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="End"
|
||||||
Style="{StaticResource LinkButton}"
|
Style="{StaticResource LinkButton}"
|
||||||
|
|||||||
@ -89,7 +89,7 @@
|
|||||||
WidthRequest="40">
|
WidthRequest="40">
|
||||||
<Button.ImageSource>
|
<Button.ImageSource>
|
||||||
<FontImageSource
|
<FontImageSource
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
Glyph="photo_camera"
|
Glyph="photo_camera"
|
||||||
Size="20"
|
Size="20"
|
||||||
Color="{StaticResource Primary_White}" />
|
Color="{StaticResource Primary_White}" />
|
||||||
@ -442,7 +442,7 @@
|
|||||||
SelectedItem="{Binding SelectedMainResidence}" />
|
SelectedItem="{Binding SelectedMainResidence}" />
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<!-- <Grid Margin="{StaticResource MarginVerySmall}" ColumnDefinitions="*,*">
|
<Grid Margin="{StaticResource MarginVerySmall}" ColumnDefinitions="*,*">
|
||||||
<Label
|
<Label
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
@ -467,7 +467,7 @@
|
|||||||
<Label
|
<Label
|
||||||
Margin="{StaticResource MarginBig}"
|
Margin="{StaticResource MarginBig}"
|
||||||
Style="{StaticResource BodyCaption_GreyDark}"
|
Style="{StaticResource BodyCaption_GreyDark}"
|
||||||
Text="{x:Static res:Text.Profile_AutoPayout_Desc}" /> -->
|
Text="{x:Static res:Text.Profile_AutoPayout_Desc}" />
|
||||||
|
|
||||||
<ActivityIndicator
|
<ActivityIndicator
|
||||||
HorizontalOptions="Center"
|
HorizontalOptions="Center"
|
||||||
|
|||||||
@ -95,7 +95,7 @@
|
|||||||
WidthRequest="40">
|
WidthRequest="40">
|
||||||
<Button.ImageSource>
|
<Button.ImageSource>
|
||||||
<FontImageSource
|
<FontImageSource
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
Glyph="photo_camera"
|
Glyph="photo_camera"
|
||||||
Size="20"
|
Size="20"
|
||||||
Color="{StaticResource Primary_White}" />
|
Color="{StaticResource Primary_White}" />
|
||||||
@ -500,7 +500,7 @@
|
|||||||
SelectedItem="{Binding SelectedMainResidence}" />
|
SelectedItem="{Binding SelectedMainResidence}" />
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<!-- <Grid Margin="{StaticResource MarginVerySmall}" ColumnDefinitions="*,*">
|
<Grid Margin="{StaticResource MarginVerySmall}" ColumnDefinitions="*,*">
|
||||||
<Label
|
<Label
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
LineBreakMode="TailTruncation"
|
LineBreakMode="TailTruncation"
|
||||||
@ -522,7 +522,7 @@
|
|||||||
</Switch>
|
</Switch>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Label Style="{StaticResource BodyCaption_GreyDark}" Text="{x:Static res:Text.Profile_AutoPayout_Desc}" /> -->
|
<Label Style="{StaticResource BodyCaption_GreyDark}" Text="{x:Static res:Text.Profile_AutoPayout_Desc}" />
|
||||||
|
|
||||||
<ActivityIndicator
|
<ActivityIndicator
|
||||||
HorizontalOptions="Center"
|
HorizontalOptions="Center"
|
||||||
|
|||||||
@ -51,7 +51,7 @@
|
|||||||
<Button
|
<Button
|
||||||
Margin="0,0,-5,-35"
|
Margin="0,0,-5,-35"
|
||||||
Command="{Binding NavigateBackCommand}"
|
Command="{Binding NavigateBackCommand}"
|
||||||
FontFamily="MaterialIconsRegular"
|
FontFamily="IconFont"
|
||||||
FontSize="30"
|
FontSize="30"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="End"
|
||||||
Style="{StaticResource LinkButton}"
|
Style="{StaticResource LinkButton}"
|
||||||
|
|||||||
@ -45,12 +45,16 @@
|
|||||||
<GenerateSatelliteAssembliesForCore>True</GenerateSatelliteAssembliesForCore>
|
<GenerateSatelliteAssembliesForCore>True</GenerateSatelliteAssembliesForCore>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-android|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-android|AnyCPU'">
|
||||||
|
<ApplicationDisplayVersion>1.274</ApplicationDisplayVersion>
|
||||||
|
<ApplicationVersion>274</ApplicationVersion>
|
||||||
<AndroidUseAapt2>True</AndroidUseAapt2>
|
<AndroidUseAapt2>True</AndroidUseAapt2>
|
||||||
<AndroidCreatePackagePerAbi>False</AndroidCreatePackagePerAbi>
|
<AndroidCreatePackagePerAbi>False</AndroidCreatePackagePerAbi>
|
||||||
<AndroidPackageFormat>apk</AndroidPackageFormat>
|
<AndroidPackageFormat>apk</AndroidPackageFormat>
|
||||||
<ApplicationId>com.gehgassi.local</ApplicationId>
|
<ApplicationId>com.gehgassi.local</ApplicationId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='DebugStaging|net8.0-android|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='DebugStaging|net8.0-android|AnyCPU'">
|
||||||
|
<ApplicationDisplayVersion>1.274</ApplicationDisplayVersion>
|
||||||
|
<ApplicationVersion>274</ApplicationVersion>
|
||||||
<AndroidUseAapt2>True</AndroidUseAapt2>
|
<AndroidUseAapt2>True</AndroidUseAapt2>
|
||||||
<AndroidCreatePackagePerAbi>False</AndroidCreatePackagePerAbi>
|
<AndroidCreatePackagePerAbi>False</AndroidCreatePackagePerAbi>
|
||||||
<AndroidPackageFormat>apk</AndroidPackageFormat>
|
<AndroidPackageFormat>apk</AndroidPackageFormat>
|
||||||
@ -58,6 +62,8 @@
|
|||||||
<ApplicationId>com.gehgassi.local</ApplicationId>
|
<ApplicationId>com.gehgassi.local</ApplicationId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-android|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-android|AnyCPU'">
|
||||||
|
<ApplicationDisplayVersion>1.274</ApplicationDisplayVersion>
|
||||||
|
<ApplicationVersion>274</ApplicationVersion>
|
||||||
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
|
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
|
||||||
<RunAOTCompilation>True</RunAOTCompilation>
|
<RunAOTCompilation>True</RunAOTCompilation>
|
||||||
<PublishTrimmed>True</PublishTrimmed>
|
<PublishTrimmed>True</PublishTrimmed>
|
||||||
@ -67,6 +73,8 @@
|
|||||||
<ApplicationId>com.gehgassi.gehgassi</ApplicationId>
|
<ApplicationId>com.gehgassi.gehgassi</ApplicationId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Staging|net8.0-android|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Staging|net8.0-android|AnyCPU'">
|
||||||
|
<ApplicationDisplayVersion>1.274</ApplicationDisplayVersion>
|
||||||
|
<ApplicationVersion>274</ApplicationVersion>
|
||||||
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
|
<EmbedAssembliesIntoApk>True</EmbedAssembliesIntoApk>
|
||||||
<RunAOTCompilation>True</RunAOTCompilation>
|
<RunAOTCompilation>True</RunAOTCompilation>
|
||||||
<PublishTrimmed>True</PublishTrimmed>
|
<PublishTrimmed>True</PublishTrimmed>
|
||||||
@ -76,6 +84,8 @@
|
|||||||
<ApplicationId>com.gehgassi.local</ApplicationId>
|
<ApplicationId>com.gehgassi.local</ApplicationId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-ios|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net8.0-ios|AnyCPU'">
|
||||||
|
<ApplicationDisplayVersion>1.274</ApplicationDisplayVersion>
|
||||||
|
<ApplicationVersion>274</ApplicationVersion>
|
||||||
<ApplicationId>com.gehgassi.local</ApplicationId>
|
<ApplicationId>com.gehgassi.local</ApplicationId>
|
||||||
<MtouchDebug>True</MtouchDebug>
|
<MtouchDebug>True</MtouchDebug>
|
||||||
<MtouchLink>None</MtouchLink>
|
<MtouchLink>None</MtouchLink>
|
||||||
@ -84,12 +94,16 @@
|
|||||||
<ForceSimulatorX64ArchitectureInIDE>true</ForceSimulatorX64ArchitectureInIDE>
|
<ForceSimulatorX64ArchitectureInIDE>true</ForceSimulatorX64ArchitectureInIDE>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='DebugStaging|net8.0-ios|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='DebugStaging|net8.0-ios|AnyCPU'">
|
||||||
|
<ApplicationDisplayVersion>1.274</ApplicationDisplayVersion>
|
||||||
|
<ApplicationVersion>274</ApplicationVersion>
|
||||||
<ApplicationId>com.gehgassi.local</ApplicationId>
|
<ApplicationId>com.gehgassi.local</ApplicationId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-ios|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-ios|AnyCPU'">
|
||||||
<UseInterpreter>True</UseInterpreter>
|
<UseInterpreter>True</UseInterpreter>
|
||||||
|
<ApplicationDisplayVersion>1.274</ApplicationDisplayVersion>
|
||||||
|
<ApplicationVersion>274</ApplicationVersion>
|
||||||
<CodesignEntitlements>Platforms\iOS\Entitlements.production.plist</CodesignEntitlements>
|
<CodesignEntitlements>Platforms\iOS\Entitlements.production.plist</CodesignEntitlements>
|
||||||
<CodesignKey></CodesignKey>
|
<CodesignKey></CodesignKey>
|
||||||
<CodesignProvision></CodesignProvision>
|
<CodesignProvision></CodesignProvision>
|
||||||
@ -99,6 +113,8 @@
|
|||||||
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Staging|net8.0-ios|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Staging|net8.0-ios|AnyCPU'">
|
||||||
|
<ApplicationDisplayVersion>1.274</ApplicationDisplayVersion>
|
||||||
|
<ApplicationVersion>274</ApplicationVersion>
|
||||||
<ApplicationId>com.gehgassi.local</ApplicationId>
|
<ApplicationId>com.gehgassi.local</ApplicationId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
@ -124,13 +140,8 @@
|
|||||||
<MauiImage Include="Resources\Images\*" />
|
<MauiImage Include="Resources\Images\*" />
|
||||||
|
|
||||||
<!-- Custom Fonts -->
|
<!-- Custom Fonts -->
|
||||||
<!-- <MauiFont Include="Resources\Fonts\*" /> -->
|
<MauiFont Include="Resources\Fonts\*" />
|
||||||
<!-- Durch akuellen Bug müssen alle Fonts einzeln referenziert werden: https://learn.microsoft.com/en-us/answers/questions/1684493/custom-fonts-not-working-when-uploading-maui-andro -->
|
|
||||||
<MauiFont Include="Resources\Fonts\icomoon.ttf" Alias="IconMoon" />
|
|
||||||
<MauiFont Include="Resources\Fonts\Inter-Medium.ttf" Alias="InterMedium" />
|
|
||||||
<MauiFont Include="Resources\Fonts\Inter-Regular.ttf" Alias="InterRegular" />
|
|
||||||
<MauiFont Include="Resources\Fonts\Inter-SemiBold.ttf" Alias="InterSemiBold" />
|
|
||||||
<MauiFont Include="Resources\Fonts\MaterialIcons-Regular.ttf" Alias="MaterialIconsRegular" />
|
|
||||||
<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
|
<!-- Raw Assets (also remove the "Resources\Raw" prefix) -->
|
||||||
<!-- https://github.com/dotnet/maui/issues/14044 -->
|
<!-- https://github.com/dotnet/maui/issues/14044 -->
|
||||||
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
|
<MauiAsset Include="Resources\Raw\**" LogicalName="%(RecursiveDir)%(Filename)%(Extension)" />
|
||||||
@ -147,6 +158,10 @@
|
|||||||
<None Remove="Platforms\Android\google-services_Live.json" />
|
<None Remove="Platforms\Android\google-services_Live.json" />
|
||||||
<None Remove="Platforms\Android\Resources\drawable\appiconpush2.svg" />
|
<None Remove="Platforms\Android\Resources\drawable\appiconpush2.svg" />
|
||||||
<None Remove="Platforms\Android\Resources\xml\auto_backup_rules.xml" />
|
<None Remove="Platforms\Android\Resources\xml\auto_backup_rules.xml" />
|
||||||
|
<None Remove="Resources\Fonts\icomoon.ttf" />
|
||||||
|
<None Remove="Resources\Fonts\Inter-Medium.ttf" />
|
||||||
|
<None Remove="Resources\Fonts\Inter-Regular.ttf" />
|
||||||
|
<None Remove="Resources\Fonts\Inter-SemiBold.ttf" />
|
||||||
<None Remove="Resources\Images\aggression_level_high.svg" />
|
<None Remove="Resources\Images\aggression_level_high.svg" />
|
||||||
<None Remove="Resources\Images\aggression_level_low.svg" />
|
<None Remove="Resources\Images\aggression_level_low.svg" />
|
||||||
<None Remove="Resources\Images\aggression_level_medium.svg" />
|
<None Remove="Resources\Images\aggression_level_medium.svg" />
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user