Version 3.0.371
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.LastenradBayern" android:versionName="3.0.370" android:versionCode="370">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.LastenradBayern" android:versionName="3.0.371" android:versionCode="371">
|
||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="33" />
|
||||
<!-- Google Maps related permissions -->
|
||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||
|
|
|
@ -56,8 +56,8 @@
|
|||
<key>CFBundleDisplayName</key>
|
||||
<string>LastenradBayern</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>370</string>
|
||||
<string>371</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.0.370</string>
|
||||
<string>3.0.371</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using TINK.ViewModel;
|
||||
using TINK.ViewModel;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -150,7 +150,7 @@ namespace TINK.View.Account
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
|
@ -251,7 +251,7 @@ namespace TINK.View.BikesAtStation
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using Serilog;
|
||||
using Serilog;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
|
@ -28,8 +28,11 @@ namespace TINK.View.Contact
|
|||
{
|
||||
InitializeComponent();
|
||||
|
||||
var l_oModel = App.ModelRoot;
|
||||
|
||||
ViewModel = new ContactPageViewModel(
|
||||
App.ModelRoot.Flavor.GetDisplayName(),
|
||||
l_oModel,
|
||||
() => App.CreateAttachment(),
|
||||
() => DependencyService.Get<IExternalBrowserService>().OpenUrl(DependencyService.Get<IAppInfo>().StoreUrl),
|
||||
this);
|
||||
|
@ -120,7 +123,7 @@ namespace TINK.View.Contact
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
#if USEFLYOUT
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
#if USEFLYOUT
|
||||
using TINK.View.MasterDetail;
|
||||
|
@ -116,7 +116,7 @@ namespace TINK.View.Contact
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
#if USEFLYOUT
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace TINK.View
|
|||
/// <param name="battery">Object holding info about battery. For some batteries charging level might need to be updated by user.</param>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
public FeedbackPopup(
|
||||
IBattery battery = null,
|
||||
IBatteryMutable battery = null,
|
||||
string co2Saving = null)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using System.Globalization;
|
||||
using Serilog;
|
||||
using TINK.ViewModel;
|
||||
using TINK.ViewModel.Contact;
|
||||
|
@ -36,6 +37,7 @@ namespace TINK.View.Contact
|
|||
App.ModelRoot.ResourceUrls.FeesResourcePath,
|
||||
App.ModelRoot.ResourceUrls.BikesResourcePath,
|
||||
App.ModelRoot.IsSiteCachingOn,
|
||||
CultureInfo.CurrentUICulture.TwoLetterISOLanguageName,
|
||||
() => App.ModelRoot.GetConnector(App.ModelRoot.GetIsConnected()).Query,
|
||||
resourceUrls => App.ModelRoot.ResourceUrls = resourceUrls);
|
||||
|
||||
|
|
|
@ -181,7 +181,7 @@ namespace TINK.View.FindBike
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -123,7 +123,7 @@ namespace TINK.View.Info.BikeInfo
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
using TINK.Model.Device;
|
||||
|
@ -117,7 +117,7 @@ namespace TINK.View.Login
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
|
@ -121,7 +121,7 @@ namespace TINK.View.Map
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
#if USEFLYOUT
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
using TINK.ViewModel.MiniSurvey;
|
||||
|
@ -94,7 +94,7 @@ namespace TINK.View.MiniSurvey
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
|
@ -181,7 +181,7 @@ namespace TINK.View.MyBikes
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using TINK.ViewModel;
|
||||
using TINK.ViewModel;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -150,7 +150,7 @@ namespace TINK.View.Settings
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
|
||||
#if USERFEEDBACKDLG_TRYOUT
|
||||
|
|
|
@ -77,7 +77,7 @@ namespace TINK.View.WhatsNew.Agb
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
using TINK.Model.Device;
|
||||
|
@ -80,7 +80,7 @@ namespace TINK.View.WhatsNew
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.Meinkonrad" android:versionName="3.0.370" android:versionCode="370">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.Meinkonrad" android:versionName="3.0.371" android:versionCode="371">
|
||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="33" />
|
||||
<!-- Google Maps related permissions -->
|
||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||
|
|
|
@ -56,8 +56,8 @@
|
|||
<key>CFBundleDisplayName</key>
|
||||
<string>Mein konrad</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>370</string>
|
||||
<string>371</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.0.370</string>
|
||||
<string>3.0.371</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
Before Width: | Height: | Size: 18 KiB |
|
@ -14,14 +14,12 @@
|
|||
<x:String x:Key="IconMyBikes"></x:String>
|
||||
<x:String x:Key="IconAccount"></x:String>
|
||||
<x:String x:Key="IconLogin"></x:String>
|
||||
<x:String x:Key="IconSettings"></x:String>
|
||||
<!--<x:String x:Key="IconFeesAndBikes"></x:String>-->
|
||||
<x:String x:Key="IconFeesAndBikes"></x:String>
|
||||
<!--<x:String x:Key="IconContact"></x:String>-->
|
||||
<x:String x:Key="IconContact"></x:String>
|
||||
<x:String x:Key="IconInfo"></x:String>
|
||||
<!--<x:String x:Key="IconClose"></x:String>-->
|
||||
<x:String x:Key="IconClose"></x:String>
|
||||
<x:String x:Key="IconSettings"></x:String>
|
||||
<x:String x:Key="IconFeesAndBikes"></x:String>
|
||||
<x:String x:Key="IconContact"></x:String>
|
||||
<x:String x:Key="IconInfo"></x:String>
|
||||
<x:String x:Key="IconClose"></x:String>
|
||||
<x:String x:Key="IconLegalInfo"></x:String>
|
||||
|
||||
<!--TogglePasswortEntry-->
|
||||
<x:String x:Key="EyeOpen"></x:String>
|
||||
|
|
Before Width: | Height: | Size: 582 B |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 344 KiB |
Before Width: | Height: | Size: 451 KiB |
Before Width: | Height: | Size: 1,004 KiB |
Before Width: | Height: | Size: 356 KiB |
Before Width: | Height: | Size: 804 KiB |
Before Width: | Height: | Size: 283 KiB |
Before Width: | Height: | Size: 399 KiB |
Before Width: | Height: | Size: 500 KiB |
Before Width: | Height: | Size: 886 KiB |
Before Width: | Height: | Size: 322 KiB |
Before Width: | Height: | Size: 1.2 MiB |
Before Width: | Height: | Size: 457 KiB |
Before Width: | Height: | Size: 396 KiB |
Before Width: | Height: | Size: 1.1 MiB |
Before Width: | Height: | Size: 388 KiB |
Before Width: | Height: | Size: 997 KiB |
Before Width: | Height: | Size: 352 KiB |
Before Width: | Height: | Size: 488 KiB |
Before Width: | Height: | Size: 622 KiB |
Before Width: | Height: | Size: 1.6 MiB |
Before Width: | Height: | Size: 600 KiB |
Before Width: | Height: | Size: 965 KiB |
Before Width: | Height: | Size: 338 KiB |
|
@ -1,4 +1,4 @@
|
|||
using TINK.ViewModel;
|
||||
using TINK.ViewModel;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -150,7 +150,7 @@ namespace TINK.View.Account
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
|
@ -11,8 +11,13 @@
|
|||
<ContentView>
|
||||
|
||||
<ContentView.Resources>
|
||||
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="Label_Converter"/>
|
||||
</ContentView.Resources>
|
||||
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="Label_Converter"/>
|
||||
<conv:BoolInverterConverter x:Key="BoolInverterConverter"/>
|
||||
<x:String x:Key="InfoCircle"></x:String>
|
||||
<x:String x:Key="LocationPin"></x:String>
|
||||
<x:String x:Key="CityPin"></x:String>
|
||||
<x:String x:Key="ArrowReturnBack"></x:String>
|
||||
</ContentView.Resources>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
|
@ -113,50 +118,115 @@
|
|||
Grid.RowSpan="2"
|
||||
Spacing="0"
|
||||
HorizontalOptions="End"
|
||||
VerticalOptions="End"
|
||||
IsVisible="{Binding AaRideType}">
|
||||
VerticalOptions="End">
|
||||
<StackLayout
|
||||
Orientation="Horizontal"
|
||||
HorizontalOptions="End">
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource LocationPin}"
|
||||
Color="Black"
|
||||
FontFamily="FA-S"
|
||||
Size="20"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource ArrowReturnBack}"
|
||||
Color="Black"
|
||||
FontFamily="FA-S"
|
||||
Size="20"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
<Button
|
||||
Command="{Binding ShowRideTypeInfoCommand}"
|
||||
WidthRequest="24"
|
||||
HeightRequest="24"
|
||||
BackgroundColor="Transparent"
|
||||
BorderWidth="0"
|
||||
Padding="0"
|
||||
Margin="5,0,0,0">
|
||||
<Button.ImageSource>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource InfoCircle}"
|
||||
Color="DimGray"
|
||||
FontFamily="FA-S"
|
||||
Size="20"/>
|
||||
</Button.ImageSource>
|
||||
</Button>
|
||||
</StackLayout>
|
||||
<Label
|
||||
Spacing="0"
|
||||
IsVisible="{Binding AaRideType}">
|
||||
<StackLayout.Triggers>
|
||||
<DataTrigger TargetType="StackLayout"
|
||||
Binding="{Binding Path=IsVisible}"
|
||||
Value="false">
|
||||
<Setter Property="HeightRequest" Value="0" />
|
||||
</DataTrigger>
|
||||
</StackLayout.Triggers>
|
||||
<StackLayout
|
||||
Orientation="Horizontal"
|
||||
HorizontalOptions="End">
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource LocationPin}"
|
||||
Color="Black"
|
||||
FontFamily="FA-S"
|
||||
Size="20"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource ArrowReturnBack}"
|
||||
Color="Black"
|
||||
FontFamily="FA-S"
|
||||
Size="20"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
<Button
|
||||
Command="{Binding ShowRideTypeInfoCommand}"
|
||||
WidthRequest="24"
|
||||
HeightRequest="24"
|
||||
BackgroundColor="Transparent"
|
||||
BorderWidth="0"
|
||||
Padding="0"
|
||||
Margin="5,0,0,0">
|
||||
<Button.ImageSource>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource InfoCircle}"
|
||||
Color="DimGray"
|
||||
FontFamily="FA-S"
|
||||
Size="20"/>
|
||||
</Button.ImageSource>
|
||||
</Button>
|
||||
</StackLayout>
|
||||
<Label
|
||||
Text= "{Binding StationId}"
|
||||
FontSize="Small"
|
||||
HorizontalOptions="End"/>
|
||||
</StackLayout>
|
||||
<!-- BikeIsBoundToCityArea -->
|
||||
<!-- later, when value comes from backend: IsVisible="{Binding CityAreaType}"-->
|
||||
<StackLayout
|
||||
Spacing="0"
|
||||
IsVisible="{Binding IsBikeBoundToCity}">
|
||||
<StackLayout.Triggers>
|
||||
<DataTrigger TargetType="StackLayout"
|
||||
Binding="{Binding Path=IsVisible}"
|
||||
Value="false">
|
||||
<Setter Property="HeightRequest" Value="0" />
|
||||
</DataTrigger>
|
||||
</StackLayout.Triggers>
|
||||
<StackLayout
|
||||
Orientation="Horizontal"
|
||||
HorizontalOptions="End">
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource CityPin}"
|
||||
Color="Black"
|
||||
FontFamily="FA-S"
|
||||
Size="20"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource ArrowReturnBack}"
|
||||
Color="Black"
|
||||
FontFamily="FA-S"
|
||||
Size="20"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
<Button
|
||||
Command="{Binding ShowBikeIsBoundToCityInfoCommand}"
|
||||
WidthRequest="24"
|
||||
HeightRequest="24"
|
||||
BackgroundColor="Transparent"
|
||||
BorderWidth="0"
|
||||
Padding="0"
|
||||
Margin="5,0,0,0">
|
||||
<Button.ImageSource>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource InfoCircle}"
|
||||
Color="DimGray"
|
||||
FontFamily="FA-S"
|
||||
Size="20"/>
|
||||
</Button.ImageSource>
|
||||
</Button>
|
||||
</StackLayout>
|
||||
<Label
|
||||
Text="{x:Static resources:AppResources.MarkingBikeIsBoundToCity}"
|
||||
FontSize="Small"
|
||||
HorizontalOptions="End"/>
|
||||
</StackLayout>
|
||||
</StackLayout>
|
||||
|
||||
</Grid>
|
||||
|
|
|
@ -250,7 +250,7 @@ namespace TINK.View.BikesAtStation
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using Serilog;
|
||||
using Serilog;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
|
@ -29,8 +29,11 @@ namespace TINK.View.Contact
|
|||
{
|
||||
InitializeComponent();
|
||||
|
||||
var l_oModel = App.ModelRoot;
|
||||
|
||||
ViewModel = new ContactPageViewModel(
|
||||
App.ModelRoot.Flavor.GetDisplayName(),
|
||||
l_oModel,
|
||||
() => App.CreateAttachment(),
|
||||
() => DependencyService.Get<IExternalBrowserService>().OpenUrl(DependencyService.Get<IAppInfo>().StoreUrl),
|
||||
this);
|
||||
|
@ -121,7 +124,7 @@ namespace TINK.View.Contact
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
#if USEFLYOUT
|
||||
|
|
|
@ -118,7 +118,7 @@ namespace TINK.View.Contact
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
#if USEFLYOUT
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace TINK.View
|
|||
/// <param name="battery">Object holding info about battery. For some batteries charging level might need to be updated by user.</param>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
public FeedbackPopup(
|
||||
IBattery battery = null,
|
||||
IBatteryMutable battery = null,
|
||||
string co2Saving = null)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
|
|
@ -1,8 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.Contact.FeesAndBikesPage">
|
||||
<TabbedPage
|
||||
xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.Contact.FeesAndBikesPage"
|
||||
Style="{StaticResource TabbedPageStyle}">
|
||||
|
||||
<TabbedPage.Resources>
|
||||
<x:String x:Key="IconSmartphone"></x:String>
|
||||
<x:String x:Key="IconTariff"></x:String>
|
||||
<x:String x:Key="IconFaq"></x:String>
|
||||
</TabbedPage.Resources>
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Image Style="{StaticResource Image-Navbar}"/>
|
||||
|
@ -10,44 +19,113 @@
|
|||
Text="{x:Static resources:AppResources.MarkingFeesAndBikes}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
<!--Pages can be added as references or inline-->
|
||||
<ContentPage
|
||||
|
||||
<!--Pages can be added as references or in line-->
|
||||
<ContentPage
|
||||
x:Name="FaqPage"
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="FAQ">
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconFaq}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="FAQWebView"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000"
|
||||
Source="{Binding FAQ}"/>
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
x:Name="ManualPage"
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabBikes}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<WebView
|
||||
x:Name="InfoTypesOfBikesWebView"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000"
|
||||
Source="{Binding TypesOfBikesText}"/>
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconSmartphone}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoTypesOfBikesWebView"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000"
|
||||
Source="{Binding TypesOfBikesText}"/>
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
x:Name="TariffPage"
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabFees}">
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconTariff}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<WebView
|
||||
x:Name="InfoRentBikeWebView"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000"
|
||||
Source="{Binding RentBikeText}"/>
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoRentBikeWebView"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000"
|
||||
Source="{Binding RentBikeText}"/>
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using System.Globalization;
|
||||
using Serilog;
|
||||
using TINK.ViewModel;
|
||||
using TINK.ViewModel.Contact;
|
||||
|
@ -36,6 +37,7 @@ namespace TINK.View.Contact
|
|||
App.ModelRoot.ResourceUrls.FeesResourcePath,
|
||||
App.ModelRoot.ResourceUrls.BikesResourcePath,
|
||||
App.ModelRoot.IsSiteCachingOn,
|
||||
CultureInfo.CurrentUICulture.TwoLetterISOLanguageName,
|
||||
() => App.ModelRoot.GetConnector(App.ModelRoot.GetIsConnected()).Query,
|
||||
resourceUrls => App.ModelRoot.ResourceUrls = resourceUrls);
|
||||
|
||||
|
|
|
@ -177,7 +177,7 @@ namespace TINK.View.FindBike
|
|||
#if USCSHARP9
|
||||
public async Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup());
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -123,7 +123,7 @@ namespace TINK.View.Info.BikeInfo
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,105 +3,163 @@
|
|||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.Info.InfoPage"
|
||||
Style="{StaticResource TabbedPageStyle}"
|
||||
x:Name="TabbedInfoPage">
|
||||
<Shell.TitleView>
|
||||
|
||||
<TabbedPage.Resources>
|
||||
<x:String x:Key="IconSmartphone"></x:String>
|
||||
<x:String x:Key="IconPersonSafety"></x:String>
|
||||
<x:String x:Key="IconDataSafety"></x:String>
|
||||
<x:String x:Key="IconLegalInfo"></x:String>
|
||||
</TabbedPage.Resources>
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Image Style="{StaticResource Image-Navbar}"/>
|
||||
<Label Style="{StaticResource Label-Navbar}"
|
||||
Text="{x:Static resources:AppResources.MarkingAbout}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
<!--Pages can be added as references or inline-->
|
||||
<ContentPage
|
||||
|
||||
<!--Pages can be added as references or in line-->
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabApp}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
x:Name="InfoLicenses"
|
||||
Source="{Binding InfoLicenses}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconSmartphone}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoLicenses"
|
||||
Source="{Binding InfoLicenses}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabPrivacy}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
x:Name="InfoDatenschutz"
|
||||
Source="{Binding InfoPrivacy}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconPersonSafety}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoDatenschutz"
|
||||
Source="{Binding InfoPrivacy}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabGtc}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
x:Name="InfoABG"
|
||||
Source ="{Binding InfoAgb}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconDataSafety}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoABG"
|
||||
Source ="{Binding InfoAgb}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabImpress}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
x:Name="InfoImpressum"
|
||||
Source="{Binding InfoImpressum}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconLegalInfo}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoImpressum"
|
||||
Source="{Binding InfoImpressum}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
</TabbedPage>
|
||||
|
|
|
@ -121,7 +121,7 @@ namespace TINK.View.Login
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -128,12 +128,12 @@
|
|||
<TapGestureRecognizer Command="{Binding OnMyBikesButtonClicked}" />
|
||||
</Frame.GestureRecognizers>
|
||||
<Grid
|
||||
RowDefinitions="18,Auto,1*"
|
||||
RowDefinitions="20,Auto,1*"
|
||||
ColumnDefinitions="Auto"
|
||||
RowSpacing="0">
|
||||
<Image
|
||||
Grid.Row="1"
|
||||
Margin="-5">
|
||||
Margin="-3">
|
||||
<Image.Source>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource IconMyBikes}"
|
||||
|
|
|
@ -121,7 +121,7 @@ namespace TINK.View.Map
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
#if USEFLYOUT
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
using TINK.ViewModel.MiniSurvey;
|
||||
|
@ -93,7 +93,7 @@ namespace TINK.View.MiniSurvey
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
|
@ -181,7 +181,7 @@ namespace TINK.View.MyBikes
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -13,80 +13,103 @@
|
|||
xmlns:header="clr-namespace:TINK.View.RootShell"
|
||||
Title="Shell"
|
||||
x:Class="TINK.View.RootShell.AppShell">
|
||||
<Shell.FlyoutHeader>
|
||||
|
||||
<Shell.FlyoutHeader>
|
||||
<header:FlyoutHeader/>
|
||||
</Shell.FlyoutHeader>
|
||||
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingMapPage}"
|
||||
Icon="menu_bikelocations.png"
|
||||
Route="MapPage"
|
||||
ContentTemplate="{DataTemplate mappage:MapPage}"/>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingFindBike}"
|
||||
Icon="menu_looking.png"
|
||||
IsVisible="{Binding IsFindBikePageVisible}"
|
||||
ContentTemplate="{DataTemplate findbike:FindBikePage}">
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingMyBikes}"
|
||||
Icon="menu_mybikes.png"
|
||||
IsVisible="{Binding IsMyBikesPageVisible}"
|
||||
ContentTemplate="{DataTemplate mybikes:MyBikesPage}">
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingAccount}"
|
||||
Icon="menu_account.png"
|
||||
IsVisible="{Binding IsAccountPageVisible}"
|
||||
ContentTemplate="{DataTemplate account:AccountPage}">
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingLogin}"
|
||||
Icon="menu_account.png"
|
||||
Route="LoginPage"
|
||||
IsVisible="{Binding IsLoginPageVisible}"
|
||||
ContentTemplate="{DataTemplate login:LoginPage}">
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingSettings}"
|
||||
Icon="menu_settings.png"
|
||||
ContentTemplate="{DataTemplate settings:SettingsPage}">
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingFeesAndBikes}"
|
||||
Icon="menu_using.png"
|
||||
ContentTemplate="{DataTemplate contact:FeesAndBikesPage}">
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingFeedbackAndContact}"
|
||||
Icon="menu_contact.png"
|
||||
Route="ContactPage"
|
||||
ContentTemplate="{DataTemplate contact:ContactPage}">
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{Binding TabbedPageIngoTitle}"
|
||||
Icon="menu_info.png"
|
||||
ContentTemplate="{DataTemplate info:InfoPage}">
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<Shell.FlyoutFooter>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingMapPage}"
|
||||
Route="MapPage"
|
||||
ContentTemplate="{DataTemplate mappage:MapPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconMap}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingFindBike}"
|
||||
IsVisible="{Binding IsFindBikePageVisible}"
|
||||
ContentTemplate="{DataTemplate findbike:FindBikePage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconFindBike}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingMyBikes}"
|
||||
IsVisible="{Binding IsMyBikesPageVisible}"
|
||||
ContentTemplate="{DataTemplate mybikes:MyBikesPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconMyBikes}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingAccount}"
|
||||
IsVisible="{Binding IsAccountPageVisible}"
|
||||
ContentTemplate="{DataTemplate account:AccountPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconAccount}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingLogin}"
|
||||
Route="LoginPage"
|
||||
IsVisible="{Binding IsLoginPageVisible}"
|
||||
ContentTemplate="{DataTemplate login:LoginPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconLogin}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingFeedbackAndContact}"
|
||||
Route="ContactPage"
|
||||
ContentTemplate="{DataTemplate contact:ContactPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconContact}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingSettings}"
|
||||
ContentTemplate="{DataTemplate settings:SettingsPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconSettings}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingFeesAndBikes}"
|
||||
ContentTemplate="{DataTemplate contact:FeesAndBikesPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconFeesAndBikes}" Color="DimGray" FontFamily="FA-S"/>
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{Binding TabbedPageIngoTitle}"
|
||||
ContentTemplate="{DataTemplate info:InfoPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconLegalInfo}" Color="DimGray" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
|
||||
<Shell.FlyoutFooter>
|
||||
<header:FlyoutFooter/>
|
||||
</Shell.FlyoutFooter>
|
||||
|
||||
</Shell>
|
||||
|
|
|
@ -1,20 +1,22 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ContentView xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.RootShell.FlyoutHeader">
|
||||
<Grid Padding="0">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="80"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition Width="75"/>
|
||||
<ColumnDefinition Width="1*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Image Source="menu_swk_theme.png"
|
||||
Aspect="AspectFill"
|
||||
Grid.ColumnSpan="2"/>
|
||||
<Label Style="{StaticResource Label-Navbar}"
|
||||
Text="{x:Static resources:AppResources.MarkingFlyoutHeader}"/>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="80"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Image Grid.Row="0"
|
||||
Source="menu_swk_theme.png"
|
||||
Aspect="AspectFill"/>
|
||||
<Label Grid.Row="0"
|
||||
FontSize="20"
|
||||
TextTransform="Uppercase"
|
||||
TextColor="White"
|
||||
VerticalOptions="Center"
|
||||
HorizontalOptions="Start"
|
||||
Padding="20"
|
||||
Text="{x:Static resources:AppResources.MarkingFlyoutHeader}"/>
|
||||
</Grid>
|
||||
</ContentView>
|
|
@ -1,4 +1,4 @@
|
|||
using TINK.ViewModel;
|
||||
using TINK.ViewModel;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -150,7 +150,7 @@ namespace TINK.View.Settings
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
|
||||
#if USERFEEDBACKDLG_TRYOUT
|
||||
|
|
|
@ -77,7 +77,7 @@ namespace TINK.View.WhatsNew.Agb
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
using TINK.Model.Device;
|
||||
|
@ -80,7 +80,7 @@ namespace TINK.View.WhatsNew
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -1,8 +1,3 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using ShareeSharedGuiLib.ViewModel;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
|
@ -24,7 +19,7 @@ namespace ShareeSharedGuiLib.View
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Create bindable property to to allow "Maximum"- proptery to act as a valid target for data binding.
|
||||
/// Create bindable property to allow "Maximum"- property to act as a valid target for data binding.
|
||||
/// </summary>
|
||||
public static readonly BindableProperty MaximumProperty = BindableProperty.Create(
|
||||
"Maximum",
|
||||
|
@ -34,7 +29,7 @@ namespace ShareeSharedGuiLib.View
|
|||
propertyChanged: OnMaximumChanged);
|
||||
|
||||
/// <summary>
|
||||
/// Holds the count of bars wich represent charing level full.
|
||||
/// Holds the count of bars which represent charing level full.
|
||||
/// </summary>
|
||||
public string Maximum
|
||||
{
|
||||
|
@ -58,7 +53,7 @@ namespace ShareeSharedGuiLib.View
|
|||
|
||||
|
||||
/// <summary>
|
||||
/// Create bindable property to to allow "Current"- proptery to act as a valid target for data binding.
|
||||
/// Create bindable property to allow "Current"- property to act as a valid target for data binding.
|
||||
/// </summary>
|
||||
public static readonly BindableProperty CurrentProperty = BindableProperty.Create(
|
||||
"Current",
|
||||
|
@ -68,7 +63,7 @@ namespace ShareeSharedGuiLib.View
|
|||
propertyChanged: OnCurrentChanged);
|
||||
|
||||
/// <summary>
|
||||
/// Holds the count of bars wich represent the current charing level.
|
||||
/// Holds the count of bars which represent the current charing level.
|
||||
/// </summary>
|
||||
public string Current
|
||||
{
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.hauffware.sharee" android:versionName="3.0.370" android:versionCode="370">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.hauffware.sharee" android:versionName="3.0.371" android:versionCode="371">
|
||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="33" />
|
||||
<!-- Google Maps related permissions -->
|
||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||
|
|
|
@ -56,8 +56,8 @@
|
|||
<key>CFBundleDisplayName</key>
|
||||
<string>sharee.bike</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>370</string>
|
||||
<string>371</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.0.370</string>
|
||||
<string>3.0.371</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -15,10 +15,11 @@
|
|||
<x:String x:Key="IconAccount"></x:String>
|
||||
<x:String x:Key="IconLogin"></x:String>
|
||||
<x:String x:Key="IconSettings"></x:String>
|
||||
<x:String x:Key="IconFeesAndBikes"></x:String>
|
||||
<x:String x:Key="IconFeesAndBikes"></x:String>
|
||||
<x:String x:Key="IconContact"></x:String>
|
||||
<x:String x:Key="IconInfo"></x:String>
|
||||
<x:String x:Key="IconClose"></x:String>
|
||||
<x:String x:Key="IconLegalInfo"></x:String>
|
||||
|
||||
<!--TogglePasswortEntry-->
|
||||
<x:String x:Key="EyeOpen"></x:String>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using TINK.ViewModel;
|
||||
using TINK.ViewModel;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -150,7 +150,7 @@ namespace TINK.View.Account
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
|
@ -250,7 +250,7 @@ namespace TINK.View.BikesAtStation
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using Serilog;
|
||||
using Serilog;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
|
@ -29,8 +29,11 @@ namespace TINK.View.Contact
|
|||
{
|
||||
InitializeComponent();
|
||||
|
||||
var l_oModel = App.ModelRoot;
|
||||
|
||||
ViewModel = new ContactPageViewModel(
|
||||
App.ModelRoot.Flavor.GetDisplayName(),
|
||||
l_oModel,
|
||||
() => App.CreateAttachment(),
|
||||
() => DependencyService.Get<IExternalBrowserService>().OpenUrl(DependencyService.Get<IAppInfo>().StoreUrl),
|
||||
this);
|
||||
|
@ -122,7 +125,7 @@ namespace TINK.View.Contact
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
#if USEFLYOUT
|
||||
|
|
|
@ -117,7 +117,7 @@ namespace TINK.View.Contact
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
#if USEFLYOUT
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace TINK.View
|
|||
/// <param name="battery">Object holding info about battery. For some batteries charging level might need to be updated by user.</param>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
public FeedbackPopup(
|
||||
IBattery battery = null,
|
||||
IBatteryMutable battery = null,
|
||||
string co2Saving = null)
|
||||
{
|
||||
InitializeComponent();
|
||||
|
|
|
@ -1,29 +1,88 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.Contact.FeesAndBikesPage">
|
||||
<TabbedPage
|
||||
xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.Contact.FeesAndBikesPage"
|
||||
Style="{StaticResource TabbedPageStyle}">
|
||||
|
||||
<TabbedPage.Resources>
|
||||
<x:String x:Key="IconSmartphone"></x:String>
|
||||
<x:String x:Key="IconTariff"></x:String>
|
||||
<x:String x:Key="IconFaq"></x:String>
|
||||
</TabbedPage.Resources>
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Label Style="{StaticResource Label-Navbar}"
|
||||
Text="{x:Static resources:AppResources.MarkingFeesAndBikes}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
<!--Pages can be added as references or inline-->
|
||||
<ContentPage
|
||||
|
||||
<!--Pages can be added as references or in line-->
|
||||
<ContentPage
|
||||
x:Name="FaqPage"
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="FAQ">
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconFaq}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="FAQWebView"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000"
|
||||
Source="{Binding FAQ}"/>
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
x:Name="ManualPage"
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabBikes}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconSmartphone}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoTypesOfBikesWebView"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000"
|
||||
Source="{Binding TypesOfBikesText}"/>
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
|
@ -34,19 +93,32 @@
|
|||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
x:Name="TariffPage"
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabFees}">
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconTariff}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoRentBikeWebView"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000"
|
||||
Source="{Binding RentBikeText}"/>
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
using System.Globalization;
|
||||
using Serilog;
|
||||
using TINK.ViewModel;
|
||||
using TINK.ViewModel.Contact;
|
||||
|
@ -36,6 +37,7 @@ namespace TINK.View.Contact
|
|||
App.ModelRoot.ResourceUrls.FeesResourcePath,
|
||||
App.ModelRoot.ResourceUrls.BikesResourcePath,
|
||||
App.ModelRoot.IsSiteCachingOn,
|
||||
CultureInfo.CurrentUICulture.TwoLetterISOLanguageName,
|
||||
() => App.ModelRoot.GetConnector(App.ModelRoot.GetIsConnected()).Query,
|
||||
resourceUrls => App.ModelRoot.ResourceUrls = resourceUrls);
|
||||
|
||||
|
|
|
@ -182,7 +182,7 @@ namespace TINK.View.FindBike
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -123,7 +123,7 @@ namespace TINK.View.Info.BikeInfo
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,104 +3,162 @@
|
|||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
x:Class="TINK.View.Info.InfoPage"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
Style="{StaticResource TabbedPageStyle}"
|
||||
x:Name="TabbedInfoPage">
|
||||
<Shell.TitleView>
|
||||
|
||||
<TabbedPage.Resources>
|
||||
<x:String x:Key="IconSmartphone"></x:String>
|
||||
<x:String x:Key="IconPersonSafety"></x:String>
|
||||
<x:String x:Key="IconDataSafety"></x:String>
|
||||
<x:String x:Key="IconLegalInfo"></x:String>
|
||||
</TabbedPage.Resources>
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Label Style="{StaticResource Label-Navbar}"
|
||||
Text="{x:Static resources:AppResources.MarkingAbout}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
<!--Pages can be added as references or inline-->
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabApp}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
x:Name="InfoLicenses"
|
||||
Source="{Binding InfoLicenses}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
|
||||
<!--Pages can be added as references or in line-->
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabApp}">
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconSmartphone}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoLicenses"
|
||||
Source="{Binding InfoLicenses}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabPrivacy}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
x:Name="InfoDatenschutz"
|
||||
Source="{Binding InfoPrivacy}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabPrivacy}">
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconPersonSafety}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoDatenschutz"
|
||||
Source="{Binding InfoPrivacy}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabGtc}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
x:Name="InfoABG"
|
||||
Source ="{Binding InfoAgb}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabGtc}">
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconDataSafety}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoABG"
|
||||
Source ="{Binding InfoAgb}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabImpress}">
|
||||
<ContentPage.Content>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<WebView
|
||||
x:Name="InfoImpressum"
|
||||
Source="{Binding InfoImpressum}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<ActivityIndicator Grid.Row="0"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
<ContentPage
|
||||
IsEnabled="{Binding IsIdle}"
|
||||
Title="{x:Static resources:AppResources.MarkingTabImpress}">
|
||||
<ContentPage.IconImageSource>
|
||||
<FontImageSource Glyph="{StaticResource IconLegalInfo}" FontFamily="FA-S" />
|
||||
</ContentPage.IconImageSource>
|
||||
<ContentPage.Content>
|
||||
<Grid
|
||||
RowDefinitions="Auto,*,Auto"
|
||||
RowSpacing="0">
|
||||
<BoxView Grid.Row="0"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<WebView Grid.Row="1"
|
||||
x:Name="InfoImpressum"
|
||||
Source="{Binding InfoImpressum}"
|
||||
HeightRequest="1000"
|
||||
WidthRequest="1000" />
|
||||
<BoxView Grid.Row="2"
|
||||
HeightRequest="1"
|
||||
WidthRequest="400"
|
||||
HorizontalOptions="Center"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
<ActivityIndicator Grid.Row="0" Grid.RowSpan="3"
|
||||
IsRunning="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
IsVisible="{Binding IsIdle, Converter={StaticResource InvertedBoolConverter}}"
|
||||
Scale="2"
|
||||
VerticalOptions="CenterAndExpand"
|
||||
HorizontalOptions="CenterAndExpand"
|
||||
Color="{x:DynamicResource primary-back-title-color}"/>
|
||||
</Grid>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
</TabbedPage>
|
||||
|
|
|
@ -121,7 +121,7 @@ namespace TINK.View.Login
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -126,12 +126,12 @@
|
|||
<TapGestureRecognizer Command="{Binding OnMyBikesButtonClicked}" />
|
||||
</Frame.GestureRecognizers>
|
||||
<Grid
|
||||
RowDefinitions="18,Auto,1*"
|
||||
RowDefinitions="20,Auto,1*"
|
||||
ColumnDefinitions="Auto"
|
||||
RowSpacing="0">
|
||||
<Image
|
||||
Grid.Row="1"
|
||||
Margin="-5">
|
||||
Margin="-3">
|
||||
<Image.Source>
|
||||
<FontImageSource
|
||||
Glyph="{StaticResource IconMyBikes}"
|
||||
|
|
|
@ -121,7 +121,7 @@ namespace TINK.View.Map
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
#if USEFLYOUT
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
using TINK.ViewModel.MiniSurvey;
|
||||
|
@ -93,7 +93,7 @@ namespace TINK.View.MiniSurvey
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
|
@ -181,7 +181,7 @@ namespace TINK.View.MyBikes
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,6 +70,16 @@
|
|||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingFeedbackAndContact}"
|
||||
Route="ContactPage"
|
||||
ContentTemplate="{DataTemplate contact:ContactPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconContact}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingSettings}"
|
||||
|
@ -79,22 +89,13 @@
|
|||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingFeesAndBikes}"
|
||||
ContentTemplate="{DataTemplate contact:FeesAndBikesPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconFeesAndBikes}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
<FlyoutItem FlyoutDisplayOptions="AsMultipleItems">
|
||||
<ShellContent
|
||||
Title="{x:Static resources:AppResources.MarkingFeedbackAndContact}"
|
||||
Route="ContactPage"
|
||||
ContentTemplate="{DataTemplate contact:ContactPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconContact}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
<FontImageSource Glyph="{StaticResource IconFeesAndBikes}" Color="DimGray" FontFamily="FA-S"/>
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
|
@ -103,7 +104,7 @@
|
|||
Title="{Binding TabbedPageIngoTitle}"
|
||||
ContentTemplate="{DataTemplate info:InfoPage}">
|
||||
<ShellContent.FlyoutIcon>
|
||||
<FontImageSource Glyph="{StaticResource IconInfo}" Color="{DynamicResource Key=primary-back-title-color}" FontFamily="FA-S" />
|
||||
<FontImageSource Glyph="{StaticResource IconLegalInfo}" Color="DimGray" FontFamily="FA-S" />
|
||||
</ShellContent.FlyoutIcon>
|
||||
</ShellContent>
|
||||
</FlyoutItem>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using TINK.ViewModel;
|
||||
using TINK.ViewModel;
|
||||
using Xamarin.Forms;
|
||||
using Xamarin.Forms.Xaml;
|
||||
using System.Threading.Tasks;
|
||||
|
@ -150,7 +150,7 @@ namespace TINK.View.Settings
|
|||
/// <summary> Displays user feedback popup.</summary>
|
||||
/// <param name="co2Saving"> Co2 saving information.</param>
|
||||
/// <returns>User feedback.</returns>
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => await Navigation.ShowPopupAsync<FeedbackPopup.Result>(new FeedbackPopup(battery, co2Saving));
|
||||
#endif
|
||||
|
||||
#if USERFEEDBACKDLG_TRYOUT
|
||||
|
|
|
@ -77,7 +77,7 @@ namespace TINK.View.WhatsNew.Agb
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
|
||||
using TINK.Model.Device;
|
||||
|
@ -80,7 +80,7 @@ namespace TINK.View.WhatsNew
|
|||
#if USCSHARP9
|
||||
public Task<IViewService.IUserFeedback> DisplayUserFeedbackPopup() => throw new NotSupportedException();
|
||||
#else
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBattery battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
public async Task<IUserFeedback> DisplayUserFeedbackPopup(IBatteryMutable battery = null, string co2Saving = null) => throw new NotSupportedException();
|
||||
#endif
|
||||
|
||||
/// <summary>
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BC
|
|||
/// <summary>
|
||||
/// Holds the drive object.
|
||||
/// </summary>
|
||||
public Drive Drive { get; }
|
||||
public DriveMutable Drive { get; }
|
||||
|
||||
/// <summary> Gets the information where the data origins from. </summary>
|
||||
public DataSource DataSource { get; }
|
||||
|
@ -32,7 +32,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BC
|
|||
protected BikeInfo(
|
||||
IStateInfo stateInfo,
|
||||
Bike bike,
|
||||
Drive drive,
|
||||
DriveMutable drive,
|
||||
DataSource dataSource,
|
||||
bool? isDemo = DEFAULTVALUEISDEMO,
|
||||
IEnumerable<string> group = null,
|
||||
|
|
|
@ -15,7 +15,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BC
|
|||
private readonly Bike _Bike;
|
||||
|
||||
/// <summary> Holds the drive of the bike. </summary>
|
||||
private readonly Drive _Drive;
|
||||
private readonly DriveMutable _Drive;
|
||||
|
||||
/// <summary> Holds the state info of the bike. </summary>
|
||||
private readonly StateInfoMutable _StateInfo;
|
||||
|
@ -31,7 +31,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BC
|
|||
/// <param name="stateInfo">Bike state info.</param>
|
||||
protected BikeInfoMutable(
|
||||
Bike bike,
|
||||
Drive drive,
|
||||
DriveMutable drive,
|
||||
DataSource dataSource,
|
||||
bool isDemo = BikeInfo.DEFAULTVALUEISDEMO,
|
||||
IEnumerable<string> group = null,
|
||||
|
@ -105,7 +105,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BC
|
|||
|
||||
public string Description => _Bike.Description;
|
||||
|
||||
public Drive Drive => _Drive;
|
||||
public DriveMutable Drive => _Drive;
|
||||
|
||||
/// <summary>
|
||||
/// Fired whenever property of bike changes.
|
||||
|
|
|
@ -18,7 +18,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BC
|
|||
/// <summary>
|
||||
/// Holds the drive.
|
||||
/// </summary>
|
||||
Drive Drive { get; }
|
||||
DriveMutable Drive { get; }
|
||||
|
||||
/// <summary> Gets or sets the information where the data origins from. </summary>
|
||||
DataSource DataSource { get; }
|
||||
|
|
|
@ -59,7 +59,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BC
|
|||
/// <summary>
|
||||
/// Hold the drive object.
|
||||
/// </summary>
|
||||
Drive Drive { get; }
|
||||
DriveMutable Drive { get; }
|
||||
|
||||
/// <summary> Gets or sets the information where the data origins from. </summary>
|
||||
DataSource DataSource { get; set; }
|
||||
|
|
|
@ -20,7 +20,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock
|
|||
/// <param name="tariffDescription">Hold tariff description of bike.</param>
|
||||
public BikeInfo(
|
||||
Bike bike,
|
||||
Drive drive,
|
||||
DriveMutable drive,
|
||||
DataSource dataSource,
|
||||
int lockId,
|
||||
Guid lockGuid,
|
||||
|
@ -65,7 +65,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock
|
|||
/// <param name="dateTimeProvider">Date time provider to calculate remaining time.</param>
|
||||
public BikeInfo(
|
||||
Bike bike,
|
||||
Drive drive,
|
||||
DriveMutable drive,
|
||||
DataSource dataSource,
|
||||
int lockId,
|
||||
Guid lockGuid,
|
||||
|
@ -121,7 +121,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock
|
|||
/// <param name="wheelType"></param>
|
||||
public BikeInfo(
|
||||
Bike bike,
|
||||
Drive drive,
|
||||
DriveMutable drive,
|
||||
DataSource dataSource,
|
||||
int lockId,
|
||||
Guid lockGuid,
|
||||
|
|
|
@ -32,7 +32,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Possible steps of closing a lock.
|
||||
/// Possible states of closing a lock.
|
||||
/// </summary>
|
||||
public enum State
|
||||
{
|
||||
|
@ -182,7 +182,8 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command
|
|||
}
|
||||
}
|
||||
|
||||
// Start query geolocation data.
|
||||
//// Start Action
|
||||
//// Step: Start query geolocation data.
|
||||
Log.ForContext<T>().Debug($"Starting step {Step.StartingQueryingLocation}...");
|
||||
InvokeCurrentStep(Step.StartingQueryingLocation);
|
||||
var ctsLocation = new CancellationTokenSource();
|
||||
|
@ -199,7 +200,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command
|
|||
await InvokeCurrentStateAsync(State.StartGeolocationException, ex.Message);
|
||||
}
|
||||
|
||||
// Close lock.
|
||||
//// Step: Close lock.
|
||||
IGeolocation currentLocation;
|
||||
Log.ForContext<T>().Debug($"Starting step {Step.ClosingLock}...");
|
||||
InvokeCurrentStep(Step.ClosingLock);
|
||||
|
@ -236,7 +237,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command
|
|||
// Signal cts to cancel getting geolocation.
|
||||
ctsLocation.Cancel();
|
||||
|
||||
//// Step: Wait until getting geolocation and stop polling has completed.
|
||||
// Wait until getting geolocation and stop polling has completed.
|
||||
currentLocation = await WaitForPendingTasks(currentLocationTask);
|
||||
|
||||
// Update current state from exception
|
||||
|
@ -256,14 +257,14 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command
|
|||
throw;
|
||||
}
|
||||
|
||||
// Step: Update backend.
|
||||
// Update backend.
|
||||
// Do this even if current lock state is open (lock state must not necessarily be open before try to open, i.e. something undefined between open and closed).
|
||||
await UpdateLockingState(currentLocation, timeStampNow);
|
||||
|
||||
throw;
|
||||
}
|
||||
|
||||
//// Step: Wait until getting geolocation and stop polling has completed.
|
||||
//// Step: Wait until getting geolocation and stop polling has completed.
|
||||
currentLocation = await WaitForPendingTasks(currentLocationTask);
|
||||
|
||||
bike.LockInfo.State = lockingState?.GetLockingState() ?? LockingState.UnknownDisconnected;
|
||||
|
@ -276,7 +277,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command
|
|||
return;
|
||||
}
|
||||
|
||||
//// Step: Update backend.
|
||||
//// Step: Update backend.
|
||||
await UpdateLockingState(currentLocation, timeStampNow);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -97,6 +97,8 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command
|
|||
}
|
||||
}
|
||||
|
||||
//// Start Action
|
||||
//// Step: Start query geolocation data.
|
||||
InvokeCurrentStep(Step.StartingQueryLocation);
|
||||
|
||||
// Get geolocation which was requested when closing lock.
|
||||
|
@ -123,7 +125,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command
|
|||
|
||||
await InvokeCurrentStateAsync(State.DisconnetedNoLocationError, "");
|
||||
|
||||
// Disconnect lock.
|
||||
//// Step: Disconnect lock.
|
||||
InvokeCurrentStep(Step.DisconnectingLockOnDisconnectedNoLocationError);
|
||||
try
|
||||
{
|
||||
|
|
|
@ -22,7 +22,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.CopriLock
|
|||
/// <param name="tariffDescription">Hold tariff description of bike.</param>
|
||||
public BikeInfo(
|
||||
Bike bike,
|
||||
Drive drive,
|
||||
DriveMutable drive,
|
||||
DataSource dataSource,
|
||||
string currentStationId,
|
||||
LockInfo lockInfo,
|
||||
|
@ -70,7 +70,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.CopriLock
|
|||
/// <param name="dateTimeProvider">Provider for current date time to calculate remaining time on demand for state of type reserved.</param>
|
||||
public BikeInfo(
|
||||
Bike bike,
|
||||
Drive drive,
|
||||
DriveMutable drive,
|
||||
DataSource dataSource,
|
||||
DateTime requestedAt,
|
||||
string mailAddress,
|
||||
|
@ -122,7 +122,7 @@ namespace TINK.Model.Bikes.BikeInfoNS.CopriLock
|
|||
/// <param name="tariffDescription">Hold tariff description of bike.</param>
|
||||
public BikeInfo(
|
||||
Bike bike,
|
||||
Drive drive,
|
||||
DriveMutable drive,
|
||||
DataSource dataSource,
|
||||
DateTime bookedAt,
|
||||
string mailAddress,
|
||||
|
|
|
@ -2,32 +2,35 @@ using Serilog;
|
|||
|
||||
namespace TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS
|
||||
{
|
||||
/// <summary>
|
||||
/// Holds the state of a chargeable battery.
|
||||
/// </summary>
|
||||
public class Battery : IBattery
|
||||
{
|
||||
private Battery() { }
|
||||
|
||||
/// <summary>
|
||||
/// Holds the current charging level of the battery in percent, double.NaN if unknown.
|
||||
/// Gets the current charging level of the battery in percent, double.NaN if unknown.
|
||||
/// </summary>
|
||||
public double CurrentChargePercent { get; private set; } = double.NaN;
|
||||
|
||||
/// <summary>
|
||||
/// Holds the current charging level of the battery in bars, null if unknown.
|
||||
/// Gets the current charging level of the battery in bars, null if unknown.
|
||||
/// </summary>
|
||||
public int? CurrentChargeBars { get; private set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// Holds the maximum charging level of the battery in bars, null if unknown.
|
||||
/// Gets the maximum charging level of the battery in bars, null if unknown.
|
||||
/// </summary>
|
||||
public int? MaxChargeBars { get; private set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// Holds whether backend is aware of battery charging level.
|
||||
/// Gets whether backend is aware of battery charging level.
|
||||
/// </summary>
|
||||
public bool? IsBackendAccessible { get; private set; } = null;
|
||||
|
||||
/// <summary>
|
||||
/// Holds whether to display battery level or not.
|
||||
/// Gets whether to display battery level or not.
|
||||
/// </summary>
|
||||
public bool? IsHidden { get; private set; } = null;
|
||||
|
||||
|
|