mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2024-11-05 02:26:29 +01:00
Version 3.0.365
This commit is contained in:
parent
0b9196a78d
commit
0eb7362cb8
64 changed files with 1423 additions and 1045 deletions
|
@ -237,7 +237,6 @@
|
|||
<GoogleServicesJson Include="google-services.json" />
|
||||
<None Include="Resources\AboutResources.txt" />
|
||||
<None Include="Assets\AboutAssets.txt" />
|
||||
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\layout\Tabbar.axml" />
|
||||
|
|
|
@ -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.364" android:versionCode="364">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.LastenradBayern" android:versionName="3.0.365" android:versionCode="365">
|
||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
||||
<!-- Google Maps related permissions -->
|
||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||
|
|
|
@ -12,7 +12,7 @@ using Xamarin.Forms;
|
|||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("LastenradBayern.Android")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
@ -41,5 +41,3 @@ using Xamarin.Forms;
|
|||
#endif
|
||||
|
||||
[assembly: MetaData("com.google.android.geo.API_KEY", Value = "000000000000000000000000000000000000000")]
|
||||
|
||||
[assembly: ExportFont("Font Awesome 5 Free-Solid-900.otf", Alias = "FA-S")]
|
||||
|
|
|
@ -56,8 +56,8 @@
|
|||
<key>CFBundleDisplayName</key>
|
||||
<string>LastenradBayern</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>364</string>
|
||||
<string>365</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.0.364</string>
|
||||
<string>3.0.365</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -241,7 +241,6 @@
|
|||
<ITunesArtwork Include="iTunesArtwork@2x" />
|
||||
<Compile Include="Device\AppInfo.cs" />
|
||||
<Compile Include="Device\ExternalBrowseService.cs" />
|
||||
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BundleResource Include="Resources\Icon-60%403x.png" />
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
|
@ -29,6 +29,10 @@ using Arendi.BleLibrary.Local;
|
|||
|
||||
// Required for support of binding package, see https://github.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings.
|
||||
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
|
||||
|
||||
// Add ExportFont attribute
|
||||
[assembly: ExportFont("Font Awesome 5 Free-Solid-900.otf", Alias = "FA-S")]
|
||||
|
||||
namespace TINK
|
||||
{
|
||||
public partial class App : Application
|
||||
|
|
|
@ -330,4 +330,9 @@
|
|||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Resources\Fonts\Font Awesome 5 Free-Solid-900.otf">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -56,12 +56,12 @@
|
|||
Text="{x:Static resources:AppResources.StatusTextCopriLock}"
|
||||
FontSize="Small"
|
||||
IsVisible="{Binding IsBikeWithCopriLock}"/>
|
||||
<!-- Rental description (tarif name, options and rental info -->
|
||||
<!-- Rental description (tariff name, options and rental info -->
|
||||
<Grid
|
||||
RowSpacing="0"
|
||||
IsVisible="{Binding TariffDescription.Header, Converter={StaticResource Label_Converter}}">
|
||||
<Grid.RowDefinitions>
|
||||
<!-- start tarif- entries -->
|
||||
<!-- start tariff entries -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
|
@ -84,7 +84,7 @@
|
|||
<ColumnDefinition Width="Auto" />
|
||||
<ColumnDefinition Width="*" />
|
||||
</Grid.ColumnDefinitions>
|
||||
<!-- start tarif- entries (should be a CollectionView) -->
|
||||
<!-- start tariff entries (should be a CollectionView) -->
|
||||
<Label
|
||||
Text= "{x:Static resources:AppResources.MessageBikesManagementTariffDescriptionTariffHeader}"
|
||||
IsVisible="{Binding TariffDescription.Header, Converter={StaticResource Label_Converter}}"
|
||||
|
@ -177,7 +177,7 @@
|
|||
IsVisible="{Binding TariffDescription.TarifEntry9.Value, Converter={StaticResource Label_Converter}}"
|
||||
Grid.Row="9"
|
||||
Grid.Column="1"/>
|
||||
<!-- start tarif- entries (should be a CollectionView) -->
|
||||
<!-- start tariff entries (should be a CollectionView) -->
|
||||
<Label
|
||||
Text= "{Binding TariffDescription.InfoEntry1}"
|
||||
IsVisible="{Binding TariffDescription.InfoEntry1, Converter={StaticResource Label_Converter}}"
|
||||
|
|
|
@ -67,23 +67,11 @@
|
|||
<StackLayout>
|
||||
<Label FormattedText="{Binding LikeTinkApp}"/>
|
||||
<!--- Mail to app- related support -->
|
||||
<Button
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.ActionContactMailAppReleated}"
|
||||
IsEnabled="{Binding IsSendMailAvailable}"
|
||||
Command="{Binding OnMailAppRelatedRequest}"/>
|
||||
<!--- Link to App Store
|
||||
inactivated since most feedback in App Store is not app-related-->
|
||||
<!--<Label
|
||||
Margin="0,10,0,0"
|
||||
TextType="Html"
|
||||
HorizontalOptions="Center"
|
||||
TextColor="{DynamicResource primary-back-title-color}"
|
||||
Text="{x:Static resources:AppResources.ActionContactRate}">
|
||||
<Label.GestureRecognizers>
|
||||
<TapGestureRecognizer Command="{Binding OnRateRequest}"/>
|
||||
</Label.GestureRecognizers>
|
||||
</Label>-->
|
||||
</StackLayout>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
|
|
@ -60,7 +60,7 @@
|
|||
HorizontalOptions="Center"
|
||||
WidthRequest="94"
|
||||
HeightRequest="40"
|
||||
BorderRadius="10"
|
||||
CornerRadius="10"
|
||||
Margin="3,0,0,0"
|
||||
FontSize="Small"
|
||||
FontAttributes="Bold"
|
||||
|
@ -79,7 +79,7 @@
|
|||
HorizontalOptions="Center"
|
||||
WidthRequest="94"
|
||||
HeightRequest="40"
|
||||
BorderRadius="10"
|
||||
CornerRadius="10"
|
||||
Margin="0,0,3,0"
|
||||
FontSize="Small"
|
||||
FontAttributes="Bold"
|
||||
|
|
|
@ -237,7 +237,6 @@
|
|||
<GoogleServicesJson Include="google-services.json" />
|
||||
<None Include="Resources\AboutResources.txt" />
|
||||
<None Include="Assets\AboutAssets.txt" />
|
||||
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\layout\Tabbar.axml" />
|
||||
|
|
|
@ -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.364" android:versionCode="364">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.Meinkonrad" android:versionName="3.0.365" android:versionCode="365">
|
||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
||||
<!-- Google Maps related permissions -->
|
||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||
|
|
|
@ -12,7 +12,7 @@ using Xamarin.Forms;
|
|||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Meinkonrad.Android")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2020")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
[assembly: ComVisible(false)]
|
||||
|
@ -41,5 +41,3 @@ using Xamarin.Forms;
|
|||
#endif
|
||||
|
||||
[assembly: MetaData("com.google.android.geo.API_KEY", Value = "000000000000000000000000000000000000000")]
|
||||
|
||||
[assembly: ExportFont("Font Awesome 5 Free-Solid-900.otf", Alias = "FA-S")]
|
||||
|
|
|
@ -56,8 +56,8 @@
|
|||
<key>CFBundleDisplayName</key>
|
||||
<string>Mein konrad</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>364</string>
|
||||
<string>365</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.0.364</string>
|
||||
<string>3.0.365</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -240,7 +240,6 @@
|
|||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Device\AppInfo.cs" />
|
||||
<Compile Include="Device\ExternalBrowseService.cs" />
|
||||
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<BundleResource Include="Resources\Icon-60%403x.png" />
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
|
@ -28,6 +28,10 @@ using Arendi.BleLibrary.Local;
|
|||
|
||||
// Required for support of binding package, see https://github.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings.
|
||||
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
|
||||
|
||||
// Add ExportFont attribute
|
||||
[assembly: ExportFont("Font Awesome 5 Free-Solid-900.otf", Alias = "FA-S")]
|
||||
|
||||
namespace TINK
|
||||
{
|
||||
public partial class App : Application
|
||||
|
|
|
@ -181,6 +181,7 @@
|
|||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Folder Include="$(MSBuildThisFileDirectory)Resources\Fonts\" />
|
||||
<Folder Include="$(MSBuildThisFileDirectory)View\BikesAtStation\" />
|
||||
<Folder Include="$(MSBuildThisFileDirectory)View\FeesAndBikes\" />
|
||||
<Folder Include="$(MSBuildThisFileDirectory)View\Login\" />
|
||||
|
@ -339,4 +340,9 @@
|
|||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Resources\Fonts\Font Awesome 5 Free-Solid-900.otf">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,11 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
mc:Ignorable="d"
|
||||
x:Class="TINK.View.Account.AccountPage">
|
||||
x:Class="TINK.View.Account.AccountPage"
|
||||
BackgroundColor="{DynamicResource background-color}">
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Image Style="{StaticResource Image-Navbar}"/>
|
||||
|
@ -13,24 +15,48 @@
|
|||
Text="{x:Static resources:AppResources.MarkingAccount}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
<ContentPage.Content>
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Label Text="{Binding LoggedInInfo}" />
|
||||
<Label IsVisible="{Binding IsBookingStateInfoVisible}"
|
||||
Text="{Binding BookingStateInfo}" />
|
||||
<Button Text="{x:Static resources:AppResources.MessageAccountPageManagePersonalData}"
|
||||
Command="{Binding OnManageAccount}"
|
||||
IsEnabled="{Binding IsLogoutPossible}"/>
|
||||
<Button Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.MessageAccountPageManageLogout}"
|
||||
Command="{Binding OnLogoutRequest}"
|
||||
IsEnabled="{Binding IsLogoutPossible}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
|
||||
<ContentPage.Content>
|
||||
|
||||
<ScrollView>
|
||||
|
||||
<StackLayout>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<StackLayout
|
||||
Padding="10">
|
||||
|
||||
<Label
|
||||
Text="{Binding LoggedInInfo}" />
|
||||
|
||||
<Label
|
||||
IsVisible="{Binding IsBookingStateInfoVisible}"
|
||||
Text="{Binding BookingStateInfo}" />
|
||||
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.MessageAccountPageManagePersonalData}"
|
||||
Command="{Binding OnManageAccount}"
|
||||
IsEnabled="{Binding IsLogoutPossible}"/>
|
||||
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.MessageAccountPageManageLogout}"
|
||||
Command="{Binding OnLogoutRequest}"
|
||||
IsEnabled="{Binding IsLogoutPossible}"/>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</ContentPage.Content>
|
||||
|
||||
</ContentPage>
|
||||
|
|
|
@ -9,13 +9,14 @@
|
|||
mc:Ignorable="d"
|
||||
x:Class="TINK.View.Bike.ILockItBike">
|
||||
<ContentView>
|
||||
|
||||
<ContentView.Resources>
|
||||
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="Label_Converter"/>
|
||||
</ContentView.Resources>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
Margin="0,10,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
VerticalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
xmlns:conv="clr-namespace:TINK.View"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.Contact.ContactPage">
|
||||
x:Class="TINK.View.Contact.ContactPage"
|
||||
BackgroundColor="{DynamicResource background-color}">
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Image Style="{StaticResource Image-Navbar}"/>
|
||||
|
@ -11,85 +13,110 @@
|
|||
Text="{x:Static resources:AppResources.MarkingContactPageTitle}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
|
||||
<ContentPage.Resources>
|
||||
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
|
||||
<conv:BoolInverterConverter x:Key="BoolInvert_Converter"/>
|
||||
</ContentPage.Resources>
|
||||
<ContentPage.Content>
|
||||
<ScrollView>
|
||||
<Frame>
|
||||
<StackLayout x:Name="ContactPageView">
|
||||
<Frame
|
||||
IsVisible="{Binding
|
||||
Path=IsOperatorInfoAvaliable,
|
||||
Converter={StaticResource BoolInvert_Converter}}">
|
||||
<!-- Button to select station and explanation text -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
TextType="Html"
|
||||
Text="{x:Static resources:AppResources.MarkingContactNoStationInfoAvailableNoButton}"/>
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.ActionSelectStation}"
|
||||
Command="{Binding OnSelectStationRequest}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding IsOperatorInfoAvaliable}">
|
||||
<!-- Operator info -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding IsOperatorInfoAvaliable}"
|
||||
HorizontalOptions="Center"
|
||||
FontAttributes="Bold"
|
||||
Text="{Binding ProviderNameText}"/>
|
||||
<!--- Mail to operator -->
|
||||
<Label
|
||||
IsVisible="{Binding MailAddressText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
FormattedText="{Binding MailAddressAndMotivationsText}"/>
|
||||
<Button
|
||||
x:Name="MailAddressButton"
|
||||
IsVisible="{Binding MailAddressText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
Text="{Binding MailAddressText}"
|
||||
IsEnabled="{Binding IsSendMailAvailable}"
|
||||
Command="{Binding OnMailToOperatorRequest}"/>
|
||||
<!--- Phone -->
|
||||
<Label
|
||||
IsVisible="{Binding PhoneNumberText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
FormattedText="{Binding PhoneContactText}"/>
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
x:Name="PhoneNumberButton"
|
||||
IsVisible="{Binding PhoneNumberText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
Text="{Binding PhoneNumberText}"
|
||||
IsEnabled="{Binding IsDoPhoncallAvailable}"
|
||||
Command="{Binding OnPhoneRequest}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Label FormattedText="{Binding LikeTinkApp}"/>
|
||||
<!--- Mail to app- related support -->
|
||||
<Button
|
||||
|
||||
<ContentPage.Content>
|
||||
|
||||
<ScrollView>
|
||||
|
||||
<StackLayout
|
||||
x:Name="ContactPageView">
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<StackLayout
|
||||
Padding="10">
|
||||
|
||||
<!-- Button to select station and explanation text -->
|
||||
<StackLayout
|
||||
IsVisible="{Binding Path=IsOperatorInfoAvaliable, Converter={StaticResource BoolInvert_Converter}}">
|
||||
|
||||
<Label
|
||||
TextType="Html"
|
||||
Text="{x:Static resources:AppResources.MarkingContactNoStationInfoAvailableNoButton}"/>
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.ActionSelectStation}"
|
||||
Command="{Binding OnSelectStationRequest}"/>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
<!-- Contact operator -->
|
||||
<StackLayout
|
||||
IsVisible="{Binding IsOperatorInfoAvaliable}">
|
||||
|
||||
<!--- Name of operator -->
|
||||
<Label
|
||||
IsVisible="{Binding IsOperatorInfoAvaliable}"
|
||||
HorizontalOptions="Center"
|
||||
FontAttributes="Bold"
|
||||
Text="{Binding ProviderNameText}"/>
|
||||
|
||||
<!--- Mail to operator -->
|
||||
<Label
|
||||
IsVisible="{Binding MailAddressText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
FormattedText="{Binding MailAddressAndMotivationsText}"/>
|
||||
<Button
|
||||
x:Name="MailAddressButton"
|
||||
IsVisible="{Binding MailAddressText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
Text="{Binding MailAddressText}"
|
||||
IsEnabled="{Binding IsSendMailAvailable}"
|
||||
Command="{Binding OnMailToOperatorRequest}"/>
|
||||
|
||||
<!--- Phone to operator -->
|
||||
<Label
|
||||
IsVisible="{Binding PhoneNumberText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
FormattedText="{Binding PhoneContactText}"/>
|
||||
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
x:Name="PhoneNumberButton"
|
||||
IsVisible="{Binding PhoneNumberText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
Text="{Binding PhoneNumberText}"
|
||||
IsEnabled="{Binding IsDoPhoncallAvailable}"
|
||||
Command="{Binding OnPhoneRequest}"/>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<!--- Contact app-developer -->
|
||||
<StackLayout
|
||||
Padding="10">
|
||||
|
||||
<Label
|
||||
FormattedText="{Binding LikeTinkApp}"/>
|
||||
|
||||
<!--- Mail to app-developer -->
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.ActionContactMailAppReleated}"
|
||||
IsEnabled="{Binding IsSendMailAvailable}"
|
||||
Command="{Binding OnMailAppRelatedRequest}"/>
|
||||
<!--- Link to App Store
|
||||
inactivated since most feedback in App Store is not app-related-->
|
||||
<!--<Label
|
||||
Margin="0,10,0,0"
|
||||
TextType="Html"
|
||||
HorizontalOptions="Center"
|
||||
TextColor="{DynamicResource primary-back-title-color}"
|
||||
Text="{x:Static resources:AppResources.ActionContactRate}">
|
||||
<Label.GestureRecognizers>
|
||||
<TapGestureRecognizer Command="{Binding OnRateRequest}"/>
|
||||
</Label.GestureRecognizers>
|
||||
</Label>-->
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</ScrollView>
|
||||
</ContentPage.Content>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</ContentPage.Content>
|
||||
|
||||
</ContentPage>
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
HorizontalOptions="Center"
|
||||
WidthRequest="94"
|
||||
HeightRequest="40"
|
||||
BorderRadius="10"
|
||||
CornerRadius="10"
|
||||
Margin="3,0,0,0"
|
||||
FontSize="Small"
|
||||
FontAttributes="Bold"
|
||||
|
@ -84,7 +84,7 @@
|
|||
HorizontalOptions="Center"
|
||||
WidthRequest="94"
|
||||
HeightRequest="40"
|
||||
BorderRadius="10"
|
||||
CornerRadius="10"
|
||||
Margin="0,0,3,0"
|
||||
FontSize="Small"
|
||||
FontAttributes="Bold"
|
||||
|
|
|
@ -7,77 +7,121 @@
|
|||
xmlns:sharedGui="clr-namespace:ShareeSharedGuiLib.View"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.FeedbackPopup">
|
||||
<xct:Popup.Resources>
|
||||
<x:String x:Key="check_circle"></x:String>
|
||||
</xct:Popup.Resources>
|
||||
<StackLayout>
|
||||
|
||||
<!-- Head and title -->
|
||||
<StackLayout
|
||||
Padding="30"
|
||||
BackgroundColor="{DynamicResource primary-back-title-color}">
|
||||
<Label
|
||||
HorizontalTextAlignment="Center"
|
||||
FontSize="Large"
|
||||
TextColor="White"
|
||||
Text="{x:Static resources:AppResources.MarkingReturnBikeMainMessage}"/>
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource Size="60" Glyph="{StaticResource check_circle}" FontFamily="FA-S" Color="White"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
</StackLayout>
|
||||
<xct:Popup.Resources>
|
||||
<x:String x:Key="check_circle"></x:String>
|
||||
</xct:Popup.Resources>
|
||||
|
||||
<!-- Co2saving -->
|
||||
<Frame
|
||||
x:Name="Co2SavingFrame">
|
||||
<Label
|
||||
x:Name="Co2SavingLabel"
|
||||
Text=""/>
|
||||
</Frame>
|
||||
<ScrollView
|
||||
Orientation="Vertical"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
VerticalOptions="FillAndExpand">
|
||||
|
||||
<!-- Checkbox and input elements -->
|
||||
<ScrollView>
|
||||
<StackLayout>
|
||||
<!-- Battery level -->
|
||||
<StackLayout
|
||||
HorizontalOptions="FillAndExpand"
|
||||
VerticalOptions="FillAndExpand"
|
||||
Padding="0,0,0,300">
|
||||
|
||||
<!-- Head and title -->
|
||||
<StackLayout
|
||||
Padding="20"
|
||||
BackgroundColor="{DynamicResource primary-back-title-color}">
|
||||
<Label
|
||||
HorizontalTextAlignment="Center"
|
||||
FontSize="Large"
|
||||
TextColor="White"
|
||||
Text="{x:Static resources:AppResources.MarkingReturnBikeMainMessage}"/>
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource Size="60" Glyph="{StaticResource check_circle}" FontFamily="FA-S" Color="White"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
</StackLayout>
|
||||
|
||||
<!-- Content -->
|
||||
<StackLayout
|
||||
Margin="10"
|
||||
Spacing="10">
|
||||
|
||||
<!-- Co2saving -->
|
||||
<Frame
|
||||
x:Name="Co2SavingFrame">
|
||||
<Label
|
||||
x:Name="Co2SavingLabel"
|
||||
Text=""/>
|
||||
</Frame>
|
||||
|
||||
<!-- Battery level -->
|
||||
<sharedGui:BarLevelInputView
|
||||
x:Name="BarLevelInputView"
|
||||
HorizontalOptions="Center"/>
|
||||
<!-- Checkbox Is Broken -->
|
||||
<StackLayout Orientation="Horizontal">
|
||||
<CheckBox x:Name="brockenCheckBox" IsChecked="True" HeightRequest="20"/>
|
||||
<Label
|
||||
FontSize="Medium"
|
||||
Text= "{x:Static resources:AppResources.MarkingReturnBikeBikeStateIsOK}"/>
|
||||
</StackLayout>
|
||||
<Editor
|
||||
x:Name="feedbackMessage"
|
||||
AutoSize="TextChanges"
|
||||
Placeholder="{x:Static resources:AppResources.MarkingReturnBikeFeedbackInputPlaceholder}"
|
||||
Text="">
|
||||
<Editor.Triggers>
|
||||
<DataTrigger TargetType="Editor"
|
||||
Binding="{Binding Source={x:Reference brockenCheckBox}, Path=IsChecked}"
|
||||
Value="true">
|
||||
<Setter Property="Placeholder"
|
||||
Value="{x:Static resources:AppResources.MarkingReturnBikeFeedbackInputPlaceholder}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger TargetType="Editor"
|
||||
Binding="{Binding Source={x:Reference brockenCheckBox}, Path=IsChecked}"
|
||||
Value="false">
|
||||
<Setter Property="Placeholder"
|
||||
Value="{x:Static resources:AppResources.MarkingReturnBikeErrorDescriptionInputPlaceholder}" />
|
||||
</DataTrigger>
|
||||
</Editor.Triggers>
|
||||
</Editor>
|
||||
</StackLayout>
|
||||
</ScrollView>
|
||||
x:Name="BarLevelInputView"
|
||||
HorizontalOptions="Center"/>
|
||||
|
||||
<!-- Is bike okay? -->
|
||||
<Grid
|
||||
ColumnDefinitions="*,Auto,Auto,Auto,*"
|
||||
RowDefinitions="Auto,Auto"
|
||||
Margin="0,20,0,0">
|
||||
<Label
|
||||
Grid.Column="1"
|
||||
Grid.Row="0"
|
||||
FontSize="Medium"
|
||||
FontAttributes="Bold"
|
||||
Text= "{x:Static resources:AppResources.MarkingReturnBikeBikeIsStateOkQuestion}">
|
||||
</Label>
|
||||
<Switch
|
||||
Grid.Column="2"
|
||||
Grid.Row="0"
|
||||
VerticalOptions="Center"
|
||||
HorizontalOptions="End"
|
||||
x:Name="bikeIsOkSwitch"
|
||||
IsToggled="True"/>
|
||||
<Label
|
||||
Grid.Column="3"
|
||||
Grid.Row="0"
|
||||
VerticalOptions="Center"
|
||||
HorizontalOptions="Start">
|
||||
<Label.Triggers>
|
||||
<DataTrigger TargetType="Label" Binding="{Binding Source={x:Reference bikeIsOkSwitch}, Path=IsToggled}" Value="False">
|
||||
<Setter Property="Text" Value="{x:Static resources:AppResources.QuestionAnswerNo}"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger TargetType="Label" Binding="{Binding Source={x:Reference bikeIsOkSwitch}, Path=IsToggled}" Value="True">
|
||||
<Setter Property="Text" Value="{x:Static resources:AppResources.QuestionAnswerYes}"/>
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
|
||||
<!-- Text input bike is not OK -->
|
||||
<Editor
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="5"
|
||||
Grid.Row="1"
|
||||
x:Name="feedbackMessage"
|
||||
AutoSize="TextChanges"
|
||||
Placeholder="{x:Static resources:AppResources.MarkingReturnBikeErrorDescriptionInputPlaceholder}"
|
||||
Text=""
|
||||
IsVisible="False">
|
||||
<Editor.Triggers>
|
||||
<DataTrigger TargetType="Editor"
|
||||
Binding="{Binding Source={x:Reference bikeIsOkSwitch}, Path=IsToggled}"
|
||||
Value="False">
|
||||
<Setter Property="IsVisible" Value="True"/>
|
||||
<Setter Property="Text" Value=""/>
|
||||
</DataTrigger>
|
||||
</Editor.Triggers>
|
||||
</Editor>
|
||||
|
||||
</Grid>
|
||||
|
||||
<!-- Buttons -->
|
||||
<Button
|
||||
WidthRequest="100"
|
||||
Clicked="OnOkClicked"
|
||||
Text="{x:Static resources:AppResources.MessageAnswerOk}"/>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
<!-- Buttons -->
|
||||
<Button
|
||||
WidthRequest="100"
|
||||
Clicked="OnOkClicked"
|
||||
Text="OK"
|
||||
Margin="0,0,0,3"/>
|
||||
</StackLayout>
|
||||
</xct:Popup>
|
||||
|
|
|
@ -43,7 +43,7 @@ namespace TINK.View
|
|||
return new Result
|
||||
{
|
||||
CurrentChargeBars = int.TryParse(BarLevelInputView.Current, out int current) ? (int?)current : null,
|
||||
IsBikeBroken = brockenCheckBox.IsChecked,
|
||||
IsBikeBroken = bikeIsOkSwitch.IsToggled,
|
||||
Message = feedbackMessage.Text
|
||||
};
|
||||
}
|
||||
|
@ -53,7 +53,7 @@ namespace TINK.View
|
|||
var result = new Result
|
||||
{
|
||||
CurrentChargeBars = int.TryParse(BarLevelInputView.Current, out int current) ? (int?)current : null,
|
||||
IsBikeBroken = brockenCheckBox.IsChecked,
|
||||
IsBikeBroken = bikeIsOkSwitch.IsToggled,
|
||||
Message = feedbackMessage.Text
|
||||
};
|
||||
|
||||
|
|
|
@ -39,23 +39,42 @@
|
|||
<sharedGui:NotConnectedToNetView/>
|
||||
|
||||
<!--Search bike-->
|
||||
<StackLayout
|
||||
BackgroundColor="White"
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
IsVisible="{Binding IsSelectBikeVisible}"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<StackLayout
|
||||
Padding="20">
|
||||
|
||||
<Entry
|
||||
Placeholder="{x:Static resources:AppResources.PlaceholderFindBike}"
|
||||
MaxLength="10"
|
||||
CursorPosition="0"
|
||||
Text="{Binding BikeIdUserInput}"/>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingFindBikeLabel}"
|
||||
Margin="0,0,0,-5">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference FindBikeEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
<Entry
|
||||
x:Name="FindBikeEntry"
|
||||
Placeholder="{x:Static resources:AppResources.PlaceholderFindBike}"
|
||||
MaxLength="10"
|
||||
CursorPosition="0"
|
||||
Text="{Binding BikeIdUserInput}"/>
|
||||
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.MarkingFindBike}"
|
||||
IsEnabled="{Binding IsSelectBikeEnabled}"
|
||||
Command="{Binding OnSelectBikeRequest}"/>
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.MarkingSearchBike}"
|
||||
IsEnabled="{Binding IsSelectBikeEnabled}"
|
||||
Command="{Binding OnSelectBikeRequest}"/>
|
||||
|
||||
</StackLayout>
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
<!-- Bike -->
|
||||
<StackLayout
|
||||
|
|
|
@ -3,7 +3,9 @@
|
|||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
xmlns:sharedGui="clr-namespace:ShareeSharedGuiLib.View"
|
||||
x:Class="TINK.View.Login.LoginPage">
|
||||
x:Class="TINK.View.Login.LoginPage"
|
||||
BackgroundColor="{DynamicResource background-color}">
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Image Style="{StaticResource Image-Navbar}"/>
|
||||
|
@ -11,91 +13,119 @@
|
|||
Text="{x:Static resources:AppResources.MarkingLogin}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
<ScrollView>
|
||||
<Frame>
|
||||
<StackLayout x:Name="LoginPageView">
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingLoginEmailAddressLabel}"
|
||||
Margin="0,0,0,-10">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference EMailEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
<Entry
|
||||
Placeholder="{x:Static resources:AppResources.MarkingLoginEmailAddressPlaceholder}"
|
||||
Keyboard="Email"
|
||||
AutomationId="mail_address_text"
|
||||
x:Name="EMailEntry"
|
||||
Text="{Binding MailAddress}"
|
||||
IsEnabled="{Binding IsLoggedOut}"/>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||
Margin="0,0,0,-10">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
<sharedGui:TogglePasswordEntry
|
||||
Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||
Text="{Binding Password}"
|
||||
HidePassword="True"
|
||||
AutomationId="password_text"
|
||||
x:Name="PasswordEntry"
|
||||
IsEnabled="{Binding IsLoggedOut}"/>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"
|
||||
HorizontalOptions="End"
|
||||
Margin="0,-10,0,5"
|
||||
FontSize="Small">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.ActionLoginLogin}"
|
||||
AutomationId="login_button"
|
||||
Command="{Binding OnLoginRequest}"
|
||||
IsEnabled="{Binding IsLoginRequestAllowed}">
|
||||
</Button>
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.ActionLoginRegister}"
|
||||
AutomationId="register_button"
|
||||
Command="{Binding OnRegisterRequest}"
|
||||
IsVisible="{Binding IsWebViewElementsVisible}">
|
||||
</Button>
|
||||
<Label
|
||||
IsVisible="{Binding IsRegisterTargetsInfoVisible}"
|
||||
FormattedText="{Binding RegisterTargetsInfo}">
|
||||
</Label>
|
||||
<Label
|
||||
Margin="0,10,0,0"
|
||||
TextType="Html"
|
||||
AutomationId="password_forgotten_button"
|
||||
HorizontalOptions="Center"
|
||||
TextColor="{DynamicResource primary-back-title-color}"
|
||||
Text="{x:Static resources:AppResources.ActionLoginPasswordForgotten}">
|
||||
<Label.GestureRecognizers>
|
||||
<TapGestureRecognizer Command="{Binding OnPasswordForgottonRequest}"/>
|
||||
</Label.GestureRecognizers>
|
||||
</Label>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</ScrollView>
|
||||
|
||||
<StackLayout>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<StackLayout
|
||||
x:Name="LoginPageView"
|
||||
Padding="10">
|
||||
|
||||
<Label
|
||||
Text="{x:Static resources:AppResources.MarkingLoginEmailAddressLabel}"
|
||||
Margin="0,0,0,-5">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference EMailEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter
|
||||
Property="IsVisible"
|
||||
Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
|
||||
<Entry
|
||||
Placeholder="{x:Static resources:AppResources.MarkingLoginEmailAddressPlaceholder}"
|
||||
Keyboard="Email"
|
||||
AutomationId="mail_address_text"
|
||||
x:Name="EMailEntry"
|
||||
Text="{Binding MailAddress}"
|
||||
IsEnabled="{Binding IsLoggedOut}"/>
|
||||
|
||||
<Label
|
||||
Text="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||
Margin="0,0,0,-5">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter
|
||||
Property="IsVisible"
|
||||
Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
|
||||
<sharedGui:TogglePasswordEntry
|
||||
Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||
Text="{Binding Password}"
|
||||
HidePassword="True"
|
||||
AutomationId="password_text"
|
||||
x:Name="PasswordEntry"
|
||||
IsEnabled="{Binding IsLoggedOut}"/>
|
||||
|
||||
<Label
|
||||
Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"
|
||||
HorizontalOptions="End"
|
||||
Margin="0,-10,0,5"
|
||||
FontSize="Small">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter
|
||||
Property="IsVisible"
|
||||
Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.ActionLoginLogin}"
|
||||
AutomationId="login_button"
|
||||
Command="{Binding OnLoginRequest}"
|
||||
IsEnabled="{Binding IsLoginRequestAllowed}">
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.ActionLoginRegister}"
|
||||
AutomationId="register_button"
|
||||
Command="{Binding OnRegisterRequest}"
|
||||
IsVisible="{Binding IsWebViewElementsVisible}">
|
||||
</Button>
|
||||
|
||||
<Label
|
||||
IsVisible="{Binding IsRegisterTargetsInfoVisible}"
|
||||
FormattedText="{Binding RegisterTargetsInfo}">
|
||||
</Label>
|
||||
|
||||
<Label
|
||||
Margin="0,10,0,0"
|
||||
TextType="Html"
|
||||
AutomationId="password_forgotten_button"
|
||||
HorizontalOptions="Center"
|
||||
TextColor="{DynamicResource primary-back-title-color}"
|
||||
Text="{x:Static resources:AppResources.ActionLoginPasswordForgotten}">
|
||||
<Label.GestureRecognizers>
|
||||
<TapGestureRecognizer
|
||||
Command="{Binding OnPasswordForgottonRequest}"/>
|
||||
</Label.GestureRecognizers>
|
||||
</Label>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ContentPage>
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
x:Class="TINK.View.Settings.SettingsPage"
|
||||
xmlns:conv="clr-namespace:TINK.View.Settings;assembly=TINKLib"
|
||||
xmlns:account="clr-namespace:TINK.Model.User.Account;assembly=TINKLib"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib">
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
BackgroundColor="{DynamicResource background-color}">
|
||||
|
||||
<ContentPage.Resources>
|
||||
<conv:BackendPermissionsToVisibleConverter x:Key="Frame_Converter"/>
|
||||
|
@ -19,6 +20,7 @@
|
|||
<conv:PermissionToVisibleConverter x:Key="ShowDiagnostics_Converter" VisibleFlag="{x:Static account:Permissions.ShowDiagnostics}"/>
|
||||
<conv:PermissionToVisibleConverter x:Key="SwitchSiteCaching_Converter" VisibleFlag="{x:Static account:Permissions.SwitchNoSiteCaching}"/>
|
||||
</ContentPage.Resources>
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Image Style="{StaticResource Image-Navbar}"/>
|
||||
|
@ -26,224 +28,269 @@
|
|||
Text="{x:Static resources:AppResources.MarkingSettings}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
<ContentPage.Content>
|
||||
<ScrollView>
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<!--
|
||||
<Button Text="Feedback" Clicked="OnFeedbackClickedAsync"/>
|
||||
-->
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingCenterMapToCurrentPos}"/>
|
||||
<Switch IsToggled="{Binding CenterMapToCurrentLocation}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<!-- Filter on view TINK/ Konrad -->
|
||||
<Frame IsVisible="{Binding IsGroupFilterVisible}">
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingShowHideBikesOfType}"/>
|
||||
<ListView
|
||||
|
||||
<ContentPage.Content>
|
||||
|
||||
<ScrollView>
|
||||
|
||||
<StackLayout>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
<Grid ColumnDefinitions="*,Auto">
|
||||
<Label Text="{x:Static resources:AppResources.MarkingCenterMapToCurrentPos}"/>
|
||||
<Switch Grid.Column="1" IsToggled="{Binding CenterMapToCurrentLocation}"/>
|
||||
</Grid>
|
||||
</Frame>
|
||||
|
||||
<!-- Filter on view TINK/ Konrad -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding IsGroupFilterVisible}">
|
||||
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingShowHideBikesOfType}"/>
|
||||
<ListView
|
||||
HasUnevenRows="True"
|
||||
HeightRequest="120"
|
||||
x:Name="Filters">
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ViewCell IsEnabled="{Binding IsEnabled}">
|
||||
<StackLayout Orientation="Horizontal">
|
||||
<Label Text="{Binding Text}"/>
|
||||
<Switch IsToggled="{Binding IsActivated}"/>
|
||||
</StackLayout>
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<!-- Picker to selct startup page -->
|
||||
<Frame IsVisible="False">
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingStartupPage}"/>
|
||||
<Picker
|
||||
ItemsSource="{Binding StartupSettings.ServicesTextList}"
|
||||
SelectedItem="{Binding StartupSettings.ActiveText}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<!-- Themes -->
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchTheme_Converter}}">
|
||||
<StackLayout>
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ViewCell IsEnabled="{Binding IsEnabled}">
|
||||
<Grid ColumnDefinitions="*,Auto">
|
||||
<Label Text="{Binding Text}"/>
|
||||
<Switch Grid.Column="1" IsToggled="{Binding IsActivated}"/>
|
||||
</Grid>
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<Label
|
||||
<!-- Themes -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchTheme_Converter}}">
|
||||
<StackLayout>
|
||||
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchTheme_Converter}}"
|
||||
Text="Theme"/>
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchTheme_Converter}}"
|
||||
ItemsSource="{Binding Themes.ServicesTextList}"
|
||||
SelectedItem="{Binding Themes.ActiveText}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource Frame_Converter}}">
|
||||
<!-- COPRI server selection -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- COPRI server selection -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource Frame_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickCopriServer_Converter}}"
|
||||
Text="{Binding CopriServerUriList.CopriServerUriDescription}"/>
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickCopriServer_Converter}}"
|
||||
ItemsSource="{Binding CopriServerUriList.ServerTextList}"
|
||||
SelectedItem="{Binding CopriServerUriList.NextActiveServerText}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManagePolling_Converter}}"
|
||||
Text="{Binding Polling.PollingText}"/>
|
||||
<Switch
|
||||
<Switch
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManagePolling_Converter}}"
|
||||
IsToggled="{Binding Polling.IsActivated}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManagePolling_Converter}}"
|
||||
Text="{Binding Polling.PeriodeTotalSecondsText}"/>
|
||||
<Stepper
|
||||
<Stepper
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManagePolling_Converter}}"
|
||||
Minimum="5"
|
||||
Increment="5"
|
||||
Maximum="600"
|
||||
IsEnabled="{Binding Polling.IsActivated}"
|
||||
Value="{Binding Polling.PeriodeTotalSeconds}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManageCopriCacheExpiration_Converter}}"
|
||||
Text="Time after which COPRI-cache expires [s]"/>
|
||||
<Slider
|
||||
<Slider
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManageCopriCacheExpiration_Converter}}"
|
||||
x:Name="expiresAfter"
|
||||
Minimum="0"
|
||||
Maximum="15"
|
||||
Value="{Binding ExpiresAfterTotalSeconds}"/>
|
||||
<Entry
|
||||
<Entry
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManageCopriCacheExpiration_Converter}}"
|
||||
IsReadOnly="True"
|
||||
Text="{Binding ExpiresAfterTotalSecondsText}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}">
|
||||
<!-- Lock control -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Lock control -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingLockControl}" />
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
ItemsSource="{Binding LocksServices.Services.ServicesTextList}"
|
||||
SelectedItem="{Binding LocksServices.Services.ActiveText}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
Text="Bluetooth Connect Timeout [sec]"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
Text="{Binding LocksServices.ConnectTimeoutSecText}"/>
|
||||
<Stepper
|
||||
<Stepper
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
Minimum="0.1"
|
||||
Increment="0.25"
|
||||
Maximum="60"
|
||||
Value="{Binding LocksServices.ConnectTimeoutSec}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLocationServiceImplementation_Converter}}">
|
||||
<!-- Geolocation -->
|
||||
<StackLayout>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<Label
|
||||
<!-- Geolocation -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLocationServiceImplementation_Converter}}">
|
||||
<StackLayout>
|
||||
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLocationServiceImplementation_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingGeolocationControl}" />
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLocationServiceImplementation_Converter}}"
|
||||
ItemsSource="{Binding GeolocationServices.ServicesTextList}"
|
||||
SelectedItem="{Binding GeolocationServices.ActiveText}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchSiteCaching_Converter}}">
|
||||
<!-- Web site caching -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Web site caching -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchSiteCaching_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchSiteCaching_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingWebsiteCaching}"/>
|
||||
<Switch
|
||||
<Switch
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchSiteCaching_Converter}}"
|
||||
IsToggled="{Binding IsSiteCachingOnDisplayValue}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}">
|
||||
<!-- Logging -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Logging -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingLoggingLevel}" />
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}"
|
||||
ItemsSource="{Binding LoggingLevels}"
|
||||
SelectedItem="{Binding SelectedLoggingLevel}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}"
|
||||
Text="Logdatei in externen Pfad schreiben"/>
|
||||
<Switch
|
||||
<Switch
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}"
|
||||
IsToggled="{Binding LogToExternalFolderDisplayValue}"
|
||||
IsEnabled="{Binding IsLogToExternalFolderVisible}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ReportLevel_Converter}}">
|
||||
<!-- Logging -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Logging -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ReportLevel_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ReportLevel_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingVerboseErrorMessage}" />
|
||||
<Switch
|
||||
<Switch
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ReportLevel_Converter}}"
|
||||
IsToggled="{Binding IsReportLevelVerbose}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}">
|
||||
<!-- Display of parameters -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Display of parameters -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
Text="Device Identifier" />
|
||||
<Entry
|
||||
<Entry
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
IsEnabled="false"
|
||||
Text="{Binding DeviceIdentifier}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
Text="Copri Sitzungkeks"/>
|
||||
<Entry
|
||||
<Entry
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
IsEnabled="false"
|
||||
Text="{Binding SessionCookie}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
Text="Interner Pfad (Einstell./ ggf. Logging)"/>
|
||||
<Editor
|
||||
<Editor
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
IsEnabled="false"
|
||||
Text="{Binding InternalPath}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
Text="Externer Pfad (Mock/ ggf. Logging)"/>
|
||||
<Editor
|
||||
<Editor
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
IsEnabled="false"
|
||||
Text="{Binding ExternalPath}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</ScrollView>
|
||||
</ContentPage.Content>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</ContentPage.Content>
|
||||
|
||||
</ContentPage>
|
||||
|
|
|
@ -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.364" android:versionCode="364">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.hauffware.sharee" android:versionName="3.0.365" android:versionCode="365">
|
||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
||||
<!-- Google Maps related permissions -->
|
||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||
|
|
|
@ -41,5 +41,3 @@ using Xamarin.Forms;
|
|||
#endif
|
||||
|
||||
[assembly: MetaData("com.google.android.geo.API_KEY", Value = "000000000000000000000000000000000000000")]
|
||||
|
||||
[assembly: ExportFont("Font Awesome 5 Free-Solid-900.otf", Alias = "FA-S")]
|
||||
|
|
|
@ -237,7 +237,6 @@
|
|||
<GoogleServicesJson Include="google-services.json" />
|
||||
<None Include="Resources\AboutResources.txt" />
|
||||
<None Include="Assets\AboutAssets.txt" />
|
||||
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<AndroidResource Include="Resources\drawable\Location_Button.png">
|
||||
|
|
|
@ -56,8 +56,8 @@
|
|||
<key>CFBundleDisplayName</key>
|
||||
<string>sharee.bike</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>364</string>
|
||||
<string>365</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.0.364</string>
|
||||
<string>3.0.365</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -241,7 +241,6 @@
|
|||
<ITunesArtwork Include="iTunesArtwork@2x" />
|
||||
<Compile Include="Device\AppInfo.cs" />
|
||||
<Compile Include="Device\ExternalBrowseService.cs" />
|
||||
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
||||
<ITunesArtwork Include="iTunesArtwork" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
|
|
@ -14,13 +14,10 @@
|
|||
<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="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>
|
||||
|
||||
<!--TogglePasswortEntry-->
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Linq;
|
||||
|
@ -28,6 +28,11 @@ using Arendi.BleLibrary.Local;
|
|||
|
||||
// Required for support of binding package, see https://github.com/nuitsjp/Xamarin.Forms.GoogleMaps.Bindings.
|
||||
[assembly: XamlCompilation(XamlCompilationOptions.Compile)]
|
||||
|
||||
// Add ExportFont attribute
|
||||
[assembly: ExportFont("Font Awesome 5 Free-Solid-900.otf", Alias = "FA-S")]
|
||||
[assembly: ExportFont("Roboto-Regular.ttf", Alias = "RobotoRegular")]
|
||||
|
||||
namespace TINK
|
||||
{
|
||||
public partial class App : Application
|
||||
|
|
BIN
TINK/TINK/Resources/Fonts/Font Awesome 5 Free-Solid-900.otf
Normal file
BIN
TINK/TINK/Resources/Fonts/Font Awesome 5 Free-Solid-900.otf
Normal file
Binary file not shown.
BIN
TINK/TINK/Resources/Fonts/Roboto-Regular.ttf
Normal file
BIN
TINK/TINK/Resources/Fonts/Roboto-Regular.ttf
Normal file
Binary file not shown.
|
@ -1,36 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html xml:lang="de" lang="de">
|
||||
<title>TINK Konstanz</title>
|
||||
<meta charset="utf-8"/>
|
||||
<body>
|
||||
<h1>WIE FUNKTIONIERT DAS TRANSPORTRAD-MIETEN?</h1>
|
||||
<h2>Erstmalige Registrierung</h2><br>
|
||||
Vor der ersten Anmietung eines Transportrades ist es notwendig, sich
|
||||
kostenlos als Nutzerin oder Nutzer zu registrieren. Das dauert nur
|
||||
wenige Minuten und geht am einfachsten über den <a href="https://tink-konstanz.de/TINK-Konstanz/Mieten">Mieten</a> Button. Sobald der Account freigeschaltet ist, kann es losgehen.<br><br>
|
||||
<h2>Transportrad mieten</h2><br>
|
||||
Einfach zur nächsten TINK Station gehen (freie Räder siehe Karte) und den Code
|
||||
für das Zahlenschloss mittels SMS anfordern. Die Anleitung, wie es genau
|
||||
geht, findet sich direkt an den Stationen, auf den Rädern oder hier: <br><a href="https://tink-konstanz.de/TINK-Konstanz/Anleitungen#3401">
|
||||
<li>Anleitung Mietvorgang</a><br><a href="https://tink-konstanz.de/TINK-Konstanz/Anleitungen#3402">
|
||||
<li>Anleitung TINK Räder</a><br>
|
||||
<span style="font-weight:bold"> <li>Wichtig:</span> Nach der Nutzung das Rad an eine der TINK Stationen zurückbringen, an der Station anschließen und mittels SMS ausloggen.<br><br>
|
||||
Die erste Version der TINK APP ist verfügbar. Wir freuen uns auf konstruktives feedback.
|
||||
<br><br><h2>Preise</h2><br>
|
||||
Die erste Stunde pro Tag ist kostenfrei, danach kostet jede weitere halbe Stunde 1 Euro. Maximal
|
||||
kostet ein Rad pro 24 Stunden 9 Euro. Es kann ein Rad pro Account
|
||||
gemietet werden. Bezahlung per Abbuchung oder Kreditkarte.<br>Servicegebühren:
|
||||
Bei Abstellen eines Rades außerhalb der Stationen werden
|
||||
entfernungsabhängige Gebühren für die Rückführung berechnet. Aktuelle
|
||||
Preisliste siehe AGBs.</div>
|
||||
<h1>WELCHE TRANSPORTRÄDER GIBT ES BEI TINK?</h1>
|
||||
<div class="content2"><span class="content1">Zweirädriges Transportrad mit Platz für zwei Getränkekisten, Zuladung bis 80 kg. <br>Dreirädriges Transportrad sogar mit Platz für vier Getränkekisten, Zuladung bis 100 kg.</span><br>Jedes
|
||||
Rad verfügt über eine leichtgängige Achtgang-Schaltung und einen
|
||||
höhenverstellbaren Sattel. Im Zweirad können 2 Kinder, im Dreirad sogar 4
|
||||
Kinder bis 6 Jahre mitgenommen werden. Die wegklappbaren Kindersitze
|
||||
verfügen über Sicherheitsgurte.<br>Die Räder sind nach etwas Gewöhnung
|
||||
leicht und sicher zu fahren. Vor der ersten Nutzung empfehlen wir ein
|
||||
kurzes Üben ohne Beladung abseits des Straßenverkehrs. Einfach mal
|
||||
ausprobieren, es macht richtig Spaß!
|
||||
</body>
|
||||
</html>
|
|
@ -330,4 +330,14 @@
|
|||
<Generator>MSBuild:UpdateDesignTimeXaml</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Resources\Fonts\Roboto-Regular.ttf">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="$(MSBuildThisFileDirectory)Resources\Fonts\Font Awesome 5 Free-Solid-900.otf">
|
||||
<Generator>MSBuild:Compile</Generator>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -1,35 +1,61 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:d="http://xamarin.com/schemas/2014/forms/design"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
mc:Ignorable="d"
|
||||
x:Class="TINK.View.Account.AccountPage">
|
||||
x:Class="TINK.View.Account.AccountPage"
|
||||
BackgroundColor="{DynamicResource background-color}">
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Label Style="{StaticResource Label-Navbar}"
|
||||
Text="{x:Static resources:AppResources.MarkingAccount}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
|
||||
<ContentPage.Content>
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Label Text="{Binding LoggedInInfo}" />
|
||||
<Label IsVisible="{Binding IsBookingStateInfoVisible}"
|
||||
Text="{Binding BookingStateInfo}" />
|
||||
<Button Text="{x:Static resources:AppResources.MessageAccountPageManagePersonalData}"
|
||||
Command="{Binding OnManageAccount}"
|
||||
IsEnabled="{Binding IsLogoutPossible}"/>
|
||||
<Button Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.MessageAccountPageManageLogout}"
|
||||
Command="{Binding OnLogoutRequest}"
|
||||
IsEnabled="{Binding IsLogoutPossible}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</ContentPage.Content>
|
||||
</ContentPage>
|
||||
|
||||
<ScrollView>
|
||||
|
||||
<StackLayout>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<StackLayout
|
||||
Padding="10">
|
||||
|
||||
<Label
|
||||
Text="{Binding LoggedInInfo}" />
|
||||
|
||||
<Label
|
||||
IsVisible="{Binding IsBookingStateInfoVisible}"
|
||||
Text="{Binding BookingStateInfo}" />
|
||||
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.MessageAccountPageManagePersonalData}"
|
||||
Command="{Binding OnManageAccount}"
|
||||
IsEnabled="{Binding IsLogoutPossible}"/>
|
||||
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.MessageAccountPageManageLogout}"
|
||||
Command="{Binding OnLogoutRequest}"
|
||||
IsEnabled="{Binding IsLogoutPossible}"/>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</ContentPage.Content>
|
||||
|
||||
</ContentPage>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
Margin="0,10,0,0"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
VerticalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
@ -172,12 +172,12 @@
|
|||
IsVisible="{Binding IsLockitButtonVisible}"
|
||||
Command="{Binding OnLockitButtonClicked}"/>
|
||||
|
||||
<!-- Rental description (tarif name, options and rental info -->
|
||||
<!-- Rental description (tariff name, options and rental info -->
|
||||
<Grid
|
||||
RowSpacing="0"
|
||||
IsVisible="{Binding TariffDescription.Header, Converter={StaticResource Label_Converter}}">
|
||||
<Grid.RowDefinitions>
|
||||
<!-- start tarif- entries -->
|
||||
<!-- start tariff entries -->
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
<RowDefinition Height="Auto" />
|
||||
|
@ -202,7 +202,7 @@
|
|||
<ColumnDefinition Width="Auto" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<!-- start tarif- entries (should be a CollectionView) -->
|
||||
<!-- start tariff entries (should be a CollectionView) -->
|
||||
<Label
|
||||
Text= "{x:Static resources:AppResources.MessageBikesManagementTariffDescriptionTariffHeader}"
|
||||
IsVisible="{Binding TariffDescription.Header, Converter={StaticResource Label_Converter}}"
|
||||
|
@ -335,7 +335,7 @@
|
|||
Grid.Row="9"
|
||||
Grid.Column="1"
|
||||
Grid.ColumnSpan="2"/>
|
||||
<!-- start tarif- entries (should be a CollectionView) -->
|
||||
<!-- start tariff entries (should be a CollectionView) -->
|
||||
<Label
|
||||
Text= "{Binding TariffDescription.InfoEntry1}"
|
||||
IsVisible="{Binding TariffDescription.InfoEntry1, Converter={StaticResource Label_Converter}}"
|
||||
|
|
|
@ -3,92 +3,119 @@
|
|||
xmlns:conv="clr-namespace:TINK.View"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.Contact.ContactPage">
|
||||
x:Class="TINK.View.Contact.ContactPage"
|
||||
BackgroundColor="{DynamicResource background-color}">
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Label Style="{StaticResource Label-Navbar}"
|
||||
Text="{x:Static resources:AppResources.MarkingContactPageTitle}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
|
||||
<ContentPage.Resources>
|
||||
<conv:StringNotNullOrEmptyToVisibleConverter x:Key="StringNotNullOrEmpty_Converter"/>
|
||||
<conv:BoolInverterConverter x:Key="BoolInvert_Converter"/>
|
||||
</ContentPage.Resources>
|
||||
|
||||
<ContentPage.Content>
|
||||
<ScrollView>
|
||||
<Frame>
|
||||
<StackLayout x:Name="ContactPageView">
|
||||
<Frame
|
||||
IsVisible="{Binding
|
||||
Path=IsOperatorInfoAvaliable,
|
||||
Converter={StaticResource BoolInvert_Converter}}">
|
||||
<!-- Button to select station and explanation text -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
TextType="Html"
|
||||
Text="{x:Static resources:AppResources.MarkingContactNoStationInfoAvailableNoButton}"/>
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.ActionSelectStation}"
|
||||
Command="{Binding OnSelectStationRequest}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding IsOperatorInfoAvaliable}">
|
||||
<!-- Operator info -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding IsOperatorInfoAvaliable}"
|
||||
HorizontalOptions="Center"
|
||||
FontAttributes="Bold"
|
||||
Text="{Binding ProviderNameText}"/>
|
||||
<!--- Mail to operator -->
|
||||
<Label
|
||||
IsVisible="{Binding MailAddressText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
FormattedText="{Binding MailAddressAndMotivationsText}"/>
|
||||
<Button
|
||||
x:Name="MailAddressButton"
|
||||
IsVisible="{Binding MailAddressText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
Text="{Binding MailAddressText}"
|
||||
IsEnabled="{Binding IsSendMailAvailable}"
|
||||
Command="{Binding OnMailToOperatorRequest}"/>
|
||||
<!--- Phone -->
|
||||
<Label
|
||||
IsVisible="{Binding PhoneNumberText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
FormattedText="{Binding PhoneContactText}"/>
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
x:Name="PhoneNumberButton"
|
||||
IsVisible="{Binding PhoneNumberText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
Text="{Binding PhoneNumberText}"
|
||||
IsEnabled="{Binding IsDoPhoncallAvailable}"
|
||||
Command="{Binding OnPhoneRequest}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Label FormattedText="{Binding LikeTinkApp}"/>
|
||||
<!--- Mail to app- related support -->
|
||||
<Button
|
||||
|
||||
<ScrollView>
|
||||
|
||||
<StackLayout
|
||||
x:Name="ContactPageView">
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<StackLayout
|
||||
Padding="10">
|
||||
|
||||
<!-- Button to select station and explanation text -->
|
||||
<StackLayout
|
||||
IsVisible="{Binding Path=IsOperatorInfoAvaliable, Converter={StaticResource BoolInvert_Converter}}">
|
||||
|
||||
<Label
|
||||
TextType="Html"
|
||||
Text="{x:Static resources:AppResources.MarkingContactNoStationInfoAvailableNoButton}"/>
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.ActionSelectStation}"
|
||||
Command="{Binding OnSelectStationRequest}"/>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
<!-- Contact operator -->
|
||||
<StackLayout
|
||||
IsVisible="{Binding IsOperatorInfoAvaliable}">
|
||||
|
||||
<!--- Name of operator -->
|
||||
<Label
|
||||
IsVisible="{Binding IsOperatorInfoAvaliable}"
|
||||
HorizontalOptions="Center"
|
||||
FontAttributes="Bold"
|
||||
Text="{Binding ProviderNameText}"/>
|
||||
|
||||
<!--- Mail to operator -->
|
||||
<Label
|
||||
IsVisible="{Binding MailAddressText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
FormattedText="{Binding MailAddressAndMotivationsText}"/>
|
||||
<Button
|
||||
x:Name="MailAddressButton"
|
||||
IsVisible="{Binding MailAddressText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
Text="{Binding MailAddressText}"
|
||||
IsEnabled="{Binding IsSendMailAvailable}"
|
||||
Command="{Binding OnMailToOperatorRequest}"/>
|
||||
|
||||
<!--- Phone to operator -->
|
||||
<Label
|
||||
IsVisible="{Binding PhoneNumberText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
FormattedText="{Binding PhoneContactText}"/>
|
||||
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
x:Name="PhoneNumberButton"
|
||||
IsVisible="{Binding PhoneNumberText, Converter={StaticResource StringNotNullOrEmpty_Converter}}"
|
||||
Text="{Binding PhoneNumberText}"
|
||||
IsEnabled="{Binding IsDoPhoncallAvailable}"
|
||||
Command="{Binding OnPhoneRequest}"/>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<!--- Contact app-developer -->
|
||||
<StackLayout
|
||||
Padding="10">
|
||||
|
||||
<Label
|
||||
FormattedText="{Binding LikeTinkApp}"/>
|
||||
|
||||
<!--- Mail to app-developer -->
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.ActionContactMailAppReleated}"
|
||||
IsEnabled="{Binding IsSendMailAvailable}"
|
||||
Command="{Binding OnMailAppRelatedRequest}"/>
|
||||
<!--- Link to App Store
|
||||
inactivated since most feedback in App Store is not app-related-->
|
||||
<!--<Label
|
||||
Margin="0,10,0,0"
|
||||
TextType="Html"
|
||||
HorizontalOptions="Center"
|
||||
TextColor="{DynamicResource primary-back-title-color}"
|
||||
Text="{x:Static resources:AppResources.ActionContactRate}">
|
||||
<Label.GestureRecognizers>
|
||||
<TapGestureRecognizer Command="{Binding OnRateRequest}"/>
|
||||
</Label.GestureRecognizers>
|
||||
</Label>-->
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</ContentPage.Content>
|
||||
|
||||
</ContentPage>
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
Padding="0">
|
||||
<Button
|
||||
x:Name="KonradButton"
|
||||
AutomationId ="FilterKonrad_button"
|
||||
AutomationId ="FilterKonrad_button"
|
||||
Text="{x:Static resources:AppResources.MarkingCityBike}"
|
||||
Command="{Binding OnToggleTinkToKonrad}"
|
||||
IsVisible="false"
|
||||
|
@ -65,7 +65,7 @@
|
|||
HorizontalOptions="Center"
|
||||
WidthRequest="94"
|
||||
HeightRequest="40"
|
||||
BorderRadius="10"
|
||||
CornerRadius="10"
|
||||
Margin="3,0,0,0"
|
||||
FontSize="Small"
|
||||
FontAttributes="Bold"
|
||||
|
@ -84,7 +84,7 @@
|
|||
HorizontalOptions="Center"
|
||||
WidthRequest="94"
|
||||
HeightRequest="40"
|
||||
BorderRadius="10"
|
||||
CornerRadius="10"
|
||||
Margin="0,0,3,0"
|
||||
FontSize="Small"
|
||||
FontAttributes="Bold"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<?xml version="1.0" encoding="utf-8" ?>
|
||||
<xct:Popup xmlns="http://xamarin.com/schemas/2014/forms"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
|
||||
|
@ -7,78 +7,121 @@
|
|||
xmlns:sharedGui="clr-namespace:ShareeSharedGuiLib.View"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
x:Class="TINK.View.FeedbackPopup">
|
||||
|
||||
<xct:Popup.Resources>
|
||||
<x:String x:Key="check_circle"></x:String>
|
||||
</xct:Popup.Resources>
|
||||
|
||||
<StackLayout>
|
||||
|
||||
<!-- Head and title -->
|
||||
<StackLayout
|
||||
Padding="30"
|
||||
BackgroundColor="{DynamicResource primary-back-title-color}">
|
||||
<Label
|
||||
HorizontalTextAlignment="Center"
|
||||
FontSize="Large"
|
||||
TextColor="White"
|
||||
Text="{x:Static resources:AppResources.MarkingReturnBikeMainMessage}"/>
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource Size="60" Glyph="{StaticResource check_circle}" FontFamily="FA-S" Color="White"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
</StackLayout>
|
||||
|
||||
<!-- Co2saving -->
|
||||
<Frame
|
||||
x:Name="Co2SavingFrame">
|
||||
<Label
|
||||
x:Name="Co2SavingLabel"
|
||||
Text=""/>
|
||||
</Frame>
|
||||
|
||||
<!-- Checkbox and input elements -->
|
||||
<ScrollView>
|
||||
<StackLayout>
|
||||
<!-- Battery level -->
|
||||
<sharedGui:BarLevelInputView
|
||||
x:Name="BarLevelInputView"
|
||||
HorizontalOptions="Center"/>
|
||||
<!-- Checkbox Is Broken -->
|
||||
<StackLayout Orientation="Horizontal">
|
||||
<CheckBox x:Name="brockenCheckBox" IsChecked="True" HeightRequest="20"/>
|
||||
<Label
|
||||
FontSize="Medium"
|
||||
Text= "{x:Static resources:AppResources.MarkingReturnBikeBikeStateIsOK}"/>
|
||||
</StackLayout>
|
||||
<Editor
|
||||
x:Name="feedbackMessage"
|
||||
AutoSize="TextChanges"
|
||||
Placeholder="{x:Static resources:AppResources.MarkingReturnBikeFeedbackInputPlaceholder}"
|
||||
Text="">
|
||||
<Editor.Triggers>
|
||||
<DataTrigger TargetType="Editor"
|
||||
Binding="{Binding Source={x:Reference brockenCheckBox}, Path=IsChecked}"
|
||||
Value="true">
|
||||
<Setter Property="Placeholder"
|
||||
Value="{x:Static resources:AppResources.MarkingReturnBikeFeedbackInputPlaceholder}" />
|
||||
</DataTrigger>
|
||||
<DataTrigger TargetType="Editor"
|
||||
Binding="{Binding Source={x:Reference brockenCheckBox}, Path=IsChecked}"
|
||||
Value="false">
|
||||
<Setter Property="Placeholder"
|
||||
Value="{x:Static resources:AppResources.MarkingReturnBikeErrorDescriptionInputPlaceholder}" />
|
||||
</DataTrigger>
|
||||
</Editor.Triggers>
|
||||
</Editor>
|
||||
</StackLayout>
|
||||
</ScrollView>
|
||||
|
||||
<!-- Buttons -->
|
||||
<Button
|
||||
WidthRequest="100"
|
||||
Clicked="OnOkClicked"
|
||||
Text="OK"
|
||||
Margin="0,0,0,3"/>
|
||||
</StackLayout>
|
||||
</xct:Popup>
|
||||
|
||||
<ScrollView
|
||||
Orientation="Vertical"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
VerticalOptions="FillAndExpand">
|
||||
|
||||
<StackLayout
|
||||
HorizontalOptions="FillAndExpand"
|
||||
VerticalOptions="FillAndExpand"
|
||||
Padding="0,0,0,300">
|
||||
|
||||
<!-- Head and title -->
|
||||
<StackLayout
|
||||
Padding="20"
|
||||
BackgroundColor="{DynamicResource primary-back-title-color}">
|
||||
<Label
|
||||
HorizontalTextAlignment="Center"
|
||||
FontSize="Large"
|
||||
TextColor="White"
|
||||
Text="{x:Static resources:AppResources.MarkingReturnBikeMainMessage}"/>
|
||||
<Image>
|
||||
<Image.Source>
|
||||
<FontImageSource Size="60" Glyph="{StaticResource check_circle}" FontFamily="FA-S" Color="White"/>
|
||||
</Image.Source>
|
||||
</Image>
|
||||
</StackLayout>
|
||||
|
||||
<!-- Content -->
|
||||
<StackLayout
|
||||
Margin="10"
|
||||
Spacing="10">
|
||||
|
||||
<!-- Co2saving -->
|
||||
<Frame
|
||||
x:Name="Co2SavingFrame">
|
||||
<Label
|
||||
x:Name="Co2SavingLabel"
|
||||
Text=""/>
|
||||
</Frame>
|
||||
|
||||
<!-- Battery level -->
|
||||
<sharedGui:BarLevelInputView
|
||||
x:Name="BarLevelInputView"
|
||||
HorizontalOptions="Center"/>
|
||||
|
||||
<!-- Is bike okay? -->
|
||||
<Grid
|
||||
ColumnDefinitions="*,Auto,Auto,Auto,*"
|
||||
RowDefinitions="Auto,Auto"
|
||||
Margin="0,20,0,0">
|
||||
<Label
|
||||
Grid.Column="1"
|
||||
Grid.Row="0"
|
||||
FontSize="Medium"
|
||||
FontAttributes="Bold"
|
||||
Text= "{x:Static resources:AppResources.MarkingReturnBikeBikeIsStateOkQuestion}">
|
||||
</Label>
|
||||
<Switch
|
||||
Grid.Column="2"
|
||||
Grid.Row="0"
|
||||
VerticalOptions="Center"
|
||||
HorizontalOptions="End"
|
||||
x:Name="bikeIsOkSwitch"
|
||||
IsToggled="True"/>
|
||||
<Label
|
||||
Grid.Column="3"
|
||||
Grid.Row="0"
|
||||
VerticalOptions="Center"
|
||||
HorizontalOptions="Start">
|
||||
<Label.Triggers>
|
||||
<DataTrigger TargetType="Label" Binding="{Binding Source={x:Reference bikeIsOkSwitch}, Path=IsToggled}" Value="False">
|
||||
<Setter Property="Text" Value="{x:Static resources:AppResources.QuestionAnswerNo}"/>
|
||||
</DataTrigger>
|
||||
<DataTrigger TargetType="Label" Binding="{Binding Source={x:Reference bikeIsOkSwitch}, Path=IsToggled}" Value="True">
|
||||
<Setter Property="Text" Value="{x:Static resources:AppResources.QuestionAnswerYes}"/>
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
|
||||
<!-- Text input bike is not OK -->
|
||||
<Editor
|
||||
Grid.Column="0"
|
||||
Grid.ColumnSpan="5"
|
||||
Grid.Row="1"
|
||||
x:Name="feedbackMessage"
|
||||
AutoSize="TextChanges"
|
||||
Placeholder="{x:Static resources:AppResources.MarkingReturnBikeErrorDescriptionInputPlaceholder}"
|
||||
Text=""
|
||||
IsVisible="False">
|
||||
<Editor.Triggers>
|
||||
<DataTrigger TargetType="Editor"
|
||||
Binding="{Binding Source={x:Reference bikeIsOkSwitch}, Path=IsToggled}"
|
||||
Value="False">
|
||||
<Setter Property="IsVisible" Value="True"/>
|
||||
<Setter Property="Text" Value=""/>
|
||||
</DataTrigger>
|
||||
</Editor.Triggers>
|
||||
</Editor>
|
||||
|
||||
</Grid>
|
||||
|
||||
<!-- Buttons -->
|
||||
<Button
|
||||
WidthRequest="100"
|
||||
Clicked="OnOkClicked"
|
||||
Text="{x:Static resources:AppResources.MessageAnswerOk}"/>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</xct:Popup>
|
||||
|
|
|
@ -42,7 +42,7 @@ namespace TINK.View
|
|||
return new Result
|
||||
{
|
||||
CurrentChargeBars = int.TryParse(BarLevelInputView.Current, out int current) ? (int?)current : null,
|
||||
IsBikeBroken = brockenCheckBox.IsChecked,
|
||||
IsBikeBroken = bikeIsOkSwitch.IsToggled,
|
||||
Message = feedbackMessage.Text
|
||||
};
|
||||
}
|
||||
|
@ -52,7 +52,7 @@ namespace TINK.View
|
|||
var result = new Result
|
||||
{
|
||||
CurrentChargeBars = int.TryParse(BarLevelInputView.Current, out int current) ? (int?)current : null,
|
||||
IsBikeBroken = brockenCheckBox.IsChecked,
|
||||
IsBikeBroken = bikeIsOkSwitch.IsToggled,
|
||||
Message = feedbackMessage.Text
|
||||
};
|
||||
|
||||
|
|
|
@ -40,23 +40,42 @@
|
|||
<sharedGui:NotConnectedToNetView/>
|
||||
|
||||
<!--Search bike-->
|
||||
<StackLayout
|
||||
BackgroundColor="White"
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
IsVisible="{Binding IsSelectBikeVisible}"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<StackLayout
|
||||
Padding="20">
|
||||
|
||||
<Entry
|
||||
Placeholder="{x:Static resources:AppResources.PlaceholderFindBike}"
|
||||
MaxLength="10"
|
||||
CursorPosition="0"
|
||||
Text="{Binding BikeIdUserInput}"/>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingFindBikeLabel}"
|
||||
Margin="0,0,0,-5">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference FindBikeEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
<Entry
|
||||
x:Name="FindBikeEntry"
|
||||
Placeholder="{x:Static resources:AppResources.PlaceholderFindBike}"
|
||||
MaxLength="10"
|
||||
CursorPosition="0"
|
||||
Text="{Binding BikeIdUserInput}"/>
|
||||
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.MarkingFindBike}"
|
||||
IsEnabled="{Binding IsSelectBikeEnabled}"
|
||||
Command="{Binding OnSelectBikeRequest}"/>
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.MarkingSearchBike}"
|
||||
IsEnabled="{Binding IsSelectBikeEnabled}"
|
||||
Command="{Binding OnSelectBikeRequest}"/>
|
||||
|
||||
</StackLayout>
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
<!-- Bike -->
|
||||
<StackLayout
|
||||
|
|
|
@ -3,98 +3,128 @@
|
|||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
xmlns:sharedGui="clr-namespace:ShareeSharedGuiLib.View"
|
||||
x:Class="TINK.View.Login.LoginPage">
|
||||
x:Class="TINK.View.Login.LoginPage"
|
||||
BackgroundColor="{DynamicResource background-color}">
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Label Style="{StaticResource Label-Navbar}"
|
||||
Text="{x:Static resources:AppResources.MarkingLogin}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
<ScrollView>
|
||||
<Frame>
|
||||
<StackLayout x:Name="LoginPageView">
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingLoginEmailAddressLabel}"
|
||||
Margin="0,0,0,-10">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference EMailEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
<Entry
|
||||
Placeholder="{x:Static resources:AppResources.MarkingLoginEmailAddressPlaceholder}"
|
||||
Keyboard="Email"
|
||||
AutomationId="mail_address_text"
|
||||
x:Name="EMailEntry"
|
||||
Text="{Binding MailAddress}"
|
||||
IsEnabled="{Binding IsLoggedOut}"/>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||
Margin="0,0,0,-10">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
<sharedGui:TogglePasswordEntry
|
||||
Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||
Text="{Binding Password}"
|
||||
HidePassword="True"
|
||||
AutomationId="password_text"
|
||||
x:Name="PasswordEntry"
|
||||
IsEnabled="{Binding IsLoggedOut}"/>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"
|
||||
HorizontalOptions="End"
|
||||
Margin="0,-10,0,5"
|
||||
FontSize="Small">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter Property="IsVisible" Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.ActionLoginLogin}"
|
||||
AutomationId="login_button"
|
||||
Command="{Binding OnLoginRequest}"
|
||||
IsEnabled="{Binding IsLoginRequestAllowed}">
|
||||
</Button>
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.ActionLoginRegister}"
|
||||
AutomationId="register_button"
|
||||
Command="{Binding OnRegisterRequest}"
|
||||
IsVisible="{Binding IsWebViewElementsVisible}">
|
||||
</Button>
|
||||
<Label
|
||||
IsVisible="{Binding IsRegisterTargetsInfoVisible}"
|
||||
FormattedText="{Binding RegisterTargetsInfo}">
|
||||
</Label>
|
||||
<Label
|
||||
Margin="0,10,0,0"
|
||||
TextType="Html"
|
||||
AutomationId="password_forgotten_button"
|
||||
HorizontalOptions="Center"
|
||||
TextColor="{DynamicResource primary-back-title-color}"
|
||||
Text="{x:Static resources:AppResources.ActionLoginPasswordForgotten}">
|
||||
<Label.GestureRecognizers>
|
||||
<TapGestureRecognizer Command="{Binding OnPasswordForgottonRequest}"/>
|
||||
</Label.GestureRecognizers>
|
||||
</Label>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</ScrollView>
|
||||
|
||||
<StackLayout>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
|
||||
<StackLayout
|
||||
x:Name="LoginPageView"
|
||||
Padding="10">
|
||||
|
||||
<Label
|
||||
Text="{x:Static resources:AppResources.MarkingLoginEmailAddressLabel}"
|
||||
Margin="0,0,0,-5">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference EMailEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter
|
||||
Property="IsVisible"
|
||||
Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
|
||||
<Entry
|
||||
Placeholder="{x:Static resources:AppResources.MarkingLoginEmailAddressPlaceholder}"
|
||||
Keyboard="Email"
|
||||
AutomationId="mail_address_text"
|
||||
x:Name="EMailEntry"
|
||||
Text="{Binding MailAddress}"
|
||||
IsEnabled="{Binding IsLoggedOut}"/>
|
||||
|
||||
<Label
|
||||
Text="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||
Margin="0,0,0,-5">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter
|
||||
Property="IsVisible"
|
||||
Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
|
||||
<sharedGui:TogglePasswordEntry
|
||||
Placeholder="{x:Static resources:AppResources.MarkingLoginPasswordPlaceholder}"
|
||||
Text="{Binding Password}"
|
||||
HidePassword="True"
|
||||
AutomationId="password_text"
|
||||
x:Name="PasswordEntry"
|
||||
IsEnabled="{Binding IsLoggedOut}"/>
|
||||
|
||||
<Label
|
||||
Text="{x:Static resources:AppResources.MarkingLoginPasswordLabel}"
|
||||
HorizontalOptions="End"
|
||||
Margin="0,-10,0,5"
|
||||
FontSize="Small">
|
||||
<Label.Triggers>
|
||||
<DataTrigger
|
||||
TargetType="Label"
|
||||
Binding="{Binding Source={x:Reference PasswordEntry}, Path=Text, TargetNullValue=''}"
|
||||
Value="">
|
||||
<Setter
|
||||
Property="IsVisible"
|
||||
Value="False" />
|
||||
</DataTrigger>
|
||||
</Label.Triggers>
|
||||
</Label>
|
||||
|
||||
<Button
|
||||
Text="{x:Static resources:AppResources.ActionLoginLogin}"
|
||||
AutomationId="login_button"
|
||||
Command="{Binding OnLoginRequest}"
|
||||
IsEnabled="{Binding IsLoginRequestAllowed}">
|
||||
</Button>
|
||||
|
||||
<Button
|
||||
Style="{StaticResource SecondaryButton}"
|
||||
Text="{x:Static resources:AppResources.ActionLoginRegister}"
|
||||
AutomationId="register_button"
|
||||
Command="{Binding OnRegisterRequest}"
|
||||
IsVisible="{Binding IsWebViewElementsVisible}">
|
||||
</Button>
|
||||
|
||||
<Label
|
||||
IsVisible="{Binding IsRegisterTargetsInfoVisible}"
|
||||
FormattedText="{Binding RegisterTargetsInfo}">
|
||||
</Label>
|
||||
|
||||
<Label
|
||||
Margin="0,10,0,0"
|
||||
TextType="Html"
|
||||
AutomationId="password_forgotten_button"
|
||||
HorizontalOptions="Center"
|
||||
TextColor="{DynamicResource primary-back-title-color}"
|
||||
Text="{x:Static resources:AppResources.ActionLoginPasswordForgotten}">
|
||||
<Label.GestureRecognizers>
|
||||
<TapGestureRecognizer
|
||||
Command="{Binding OnPasswordForgottonRequest}"/>
|
||||
</Label.GestureRecognizers>
|
||||
</Label>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</Frame>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ContentPage>
|
||||
|
|
|
@ -4,7 +4,8 @@
|
|||
x:Class="TINK.View.Settings.SettingsPage"
|
||||
xmlns:conv="clr-namespace:TINK.View.Settings;assembly=TINKLib"
|
||||
xmlns:account="clr-namespace:TINK.Model.User.Account;assembly=TINKLib"
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib">
|
||||
xmlns:resources="clr-namespace:TINK.MultilingualResources;assembly=TINKLib"
|
||||
BackgroundColor="{DynamicResource background-color}">
|
||||
|
||||
<ContentPage.Resources>
|
||||
<conv:BackendPermissionsToVisibleConverter x:Key="Frame_Converter"/>
|
||||
|
@ -19,230 +20,288 @@
|
|||
<conv:PermissionToVisibleConverter x:Key="ShowDiagnostics_Converter" VisibleFlag="{x:Static account:Permissions.ShowDiagnostics}"/>
|
||||
<conv:PermissionToVisibleConverter x:Key="SwitchSiteCaching_Converter" VisibleFlag="{x:Static account:Permissions.SwitchNoSiteCaching}"/>
|
||||
</ContentPage.Resources>
|
||||
|
||||
<Shell.TitleView>
|
||||
<Grid ColumnDefinitions="Auto, 1*">
|
||||
<Label Style="{StaticResource Label-Navbar}"
|
||||
Text="{x:Static resources:AppResources.MarkingSettings}"/>
|
||||
</Grid>
|
||||
</Shell.TitleView>
|
||||
|
||||
<ContentPage.Content>
|
||||
<ScrollView>
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<!--
|
||||
<Button Text="Feedback" Clicked="OnFeedbackClickedAsync"/>
|
||||
-->
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingCenterMapToCurrentPos}"/>
|
||||
<Switch IsToggled="{Binding CenterMapToCurrentLocation}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<!-- Filter on view TINK/ Konrad -->
|
||||
<Frame IsVisible="{Binding IsGroupFilterVisible}">
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingShowHideBikesOfType}"/>
|
||||
<ListView
|
||||
|
||||
<ScrollView>
|
||||
|
||||
<StackLayout>
|
||||
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,10,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
<Grid ColumnDefinitions="*,Auto">
|
||||
<Label Text="{x:Static resources:AppResources.MarkingCenterMapToCurrentPos}"/>
|
||||
<Switch Grid.Column="1" IsToggled="{Binding CenterMapToCurrentLocation}"/>
|
||||
</Grid>
|
||||
</Frame>
|
||||
|
||||
<!-- Filter on view TINK/ Konrad -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding IsGroupFilterVisible}">
|
||||
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingShowHideBikesOfType}"/>
|
||||
<ListView
|
||||
HasUnevenRows="True"
|
||||
HeightRequest="120"
|
||||
x:Name="Filters">
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ViewCell IsEnabled="{Binding IsEnabled}">
|
||||
<StackLayout Orientation="Horizontal">
|
||||
<Label Text="{Binding Text}"/>
|
||||
<Switch IsToggled="{Binding IsActivated}"/>
|
||||
</StackLayout>
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<!-- Picker to selct startup page -->
|
||||
<Frame>
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingStartupPage}"/>
|
||||
<Picker
|
||||
<ListView.ItemTemplate>
|
||||
<DataTemplate>
|
||||
<ViewCell IsEnabled="{Binding IsEnabled}">
|
||||
<Grid ColumnDefinitions="*,Auto">
|
||||
<Label Text="{Binding Text}"/>
|
||||
<Switch Grid.Column="1" IsToggled="{Binding IsActivated}"/>
|
||||
</Grid>
|
||||
</ViewCell>
|
||||
</DataTemplate>
|
||||
</ListView.ItemTemplate>
|
||||
</ListView>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Picker to select startup page -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White">
|
||||
<StackLayout>
|
||||
<Label Text="{x:Static resources:AppResources.MarkingStartupPage}"/>
|
||||
<Picker
|
||||
ItemsSource="{Binding StartupSettings.ServicesTextList}"
|
||||
SelectedItem="{Binding StartupSettings.ActiveText}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<!-- Themes -->
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchTheme_Converter}}">
|
||||
<StackLayout>
|
||||
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Themes -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchTheme_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchTheme_Converter}}"
|
||||
Text="Theme"/>
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchTheme_Converter}}"
|
||||
ItemsSource="{Binding Themes.ServicesTextList}"
|
||||
SelectedItem="{Binding Themes.ActiveText}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource Frame_Converter}}">
|
||||
<!-- COPRI server selection -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- COPRI server selection -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource Frame_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickCopriServer_Converter}}"
|
||||
Text="{Binding CopriServerUriList.CopriServerUriDescription}"/>
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickCopriServer_Converter}}"
|
||||
ItemsSource="{Binding CopriServerUriList.ServerTextList}"
|
||||
SelectedItem="{Binding CopriServerUriList.NextActiveServerText}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManagePolling_Converter}}"
|
||||
Text="{Binding Polling.PollingText}"/>
|
||||
<Switch
|
||||
<Switch
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManagePolling_Converter}}"
|
||||
IsToggled="{Binding Polling.IsActivated}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManagePolling_Converter}}"
|
||||
Text="{Binding Polling.PeriodeTotalSecondsText}"/>
|
||||
<Stepper
|
||||
<Stepper
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManagePolling_Converter}}"
|
||||
Minimum="5"
|
||||
Increment="5"
|
||||
Maximum="600"
|
||||
IsEnabled="{Binding Polling.IsActivated}"
|
||||
Value="{Binding Polling.PeriodeTotalSeconds}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManageCopriCacheExpiration_Converter}}"
|
||||
Text="Time after which COPRI-cache expires [s]"/>
|
||||
<Slider
|
||||
<Slider
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManageCopriCacheExpiration_Converter}}"
|
||||
x:Name="expiresAfter"
|
||||
Minimum="0"
|
||||
Maximum="15"
|
||||
Value="{Binding ExpiresAfterTotalSeconds}"/>
|
||||
<Entry
|
||||
<Entry
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ManageCopriCacheExpiration_Converter}}"
|
||||
IsReadOnly="True"
|
||||
Text="{Binding ExpiresAfterTotalSecondsText}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}">
|
||||
<!-- Lock control -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Lock control -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingLockControl}" />
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
ItemsSource="{Binding LocksServices.Services.ServicesTextList}"
|
||||
SelectedItem="{Binding LocksServices.Services.ActiveText}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
Text="Bluetooth Connect Timeout [sec]"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
Text="{Binding LocksServices.ConnectTimeoutSecText}"/>
|
||||
<Stepper
|
||||
<Stepper
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLockServiceImplementation_Converter}}"
|
||||
Minimum="0.1"
|
||||
Increment="0.25"
|
||||
Maximum="60"
|
||||
Value="{Binding LocksServices.ConnectTimeoutSec}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLocationServiceImplementation_Converter}}">
|
||||
<!-- Geolocation -->
|
||||
<StackLayout>
|
||||
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Geolocation -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLocationServiceImplementation_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLocationServiceImplementation_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingGeolocationControl}" />
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLocationServiceImplementation_Converter}}"
|
||||
ItemsSource="{Binding GeolocationServices.ServicesTextList}"
|
||||
SelectedItem="{Binding GeolocationServices.ActiveText}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchSiteCaching_Converter}}">
|
||||
<!-- Web site caching -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Web site caching -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchSiteCaching_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchSiteCaching_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingWebsiteCaching}"/>
|
||||
<Switch
|
||||
<Switch
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource SwitchSiteCaching_Converter}}"
|
||||
IsToggled="{Binding IsSiteCachingOnDisplayValue}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}">
|
||||
<!-- Logging -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Logging -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingLoggingLevel}" />
|
||||
<Picker
|
||||
<Picker
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}"
|
||||
ItemsSource="{Binding LoggingLevels}"
|
||||
SelectedItem="{Binding SelectedLoggingLevel}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}"
|
||||
Text="Logdatei in externen Pfad schreiben"/>
|
||||
<Switch
|
||||
<Switch
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource PickLoggingLevel_Converter}}"
|
||||
IsToggled="{Binding LogToExternalFolderDisplayValue}"
|
||||
IsEnabled="{Binding IsLogToExternalFolderVisible}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ReportLevel_Converter}}">
|
||||
<!-- Logging -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Logging -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ReportLevel_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ReportLevel_Converter}}"
|
||||
Text="{x:Static resources:AppResources.MarkingVerboseErrorMessage}" />
|
||||
<Switch
|
||||
<Switch
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ReportLevel_Converter}}"
|
||||
IsToggled="{Binding IsReportLevelVerbose}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
<Frame
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}">
|
||||
<!-- Display of parameters -->
|
||||
<StackLayout>
|
||||
<Label
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
<!-- Display of parameters -->
|
||||
<Frame
|
||||
Padding="10"
|
||||
Margin="0,5,0,5"
|
||||
HorizontalOptions="FillAndExpand"
|
||||
BackgroundColor="White"
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}">
|
||||
<StackLayout>
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
Text="Device Identifier" />
|
||||
<Entry
|
||||
<Entry
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
IsEnabled="false"
|
||||
Text="{Binding DeviceIdentifier}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
Text="Copri Sitzungkeks"/>
|
||||
<Entry
|
||||
<Entry
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
IsEnabled="false"
|
||||
Text="{Binding SessionCookie}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
Text="Interner Pfad (Einstell./ ggf. Logging)"/>
|
||||
<Editor
|
||||
<Editor
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
IsEnabled="false"
|
||||
Text="{Binding InternalPath}"/>
|
||||
<Label
|
||||
<Label
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
Text="Externer Pfad (Mock/ ggf. Logging)"/>
|
||||
<Editor
|
||||
<Editor
|
||||
IsVisible="{Binding DebugLevel, Converter={StaticResource ShowDiagnostics_Converter}}"
|
||||
IsEnabled="false"
|
||||
Text="{Binding ExternalPath}"/>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
</ScrollView>
|
||||
</StackLayout>
|
||||
</Frame>
|
||||
|
||||
</StackLayout>
|
||||
|
||||
</ScrollView>
|
||||
|
||||
</ContentPage.Content>
|
||||
|
||||
</ContentPage>
|
||||
|
|
|
@ -42,17 +42,17 @@ namespace TINK.Model.Connector
|
|||
{
|
||||
if (string.IsNullOrEmpty(mail))
|
||||
{
|
||||
throw new ArgumentNullException("Can not loging user. Mail address must not be null or empty.");
|
||||
throw new ArgumentNullException("Can not login user. Mail address must not be null or empty.");
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(password))
|
||||
{
|
||||
throw new ArgumentNullException("Can not loging user. Password must not be null or empty.");
|
||||
throw new ArgumentNullException("Can not login user. Password must not be null or empty.");
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(deviceId))
|
||||
{
|
||||
throw new ArgumentNullException("Can not loging user. Device not be null or empty.");
|
||||
throw new ArgumentNullException("Can not login user. Device not be null or empty.");
|
||||
}
|
||||
|
||||
AuthorizationResponse response;
|
||||
|
@ -103,7 +103,7 @@ namespace TINK.Model.Connector
|
|||
/// <param name="bike">Bike to book.</param>
|
||||
public async Task CalculateAuthKeys(Bikes.BikeInfoNS.BluetoothLock.IBikeInfoMutable bike)
|
||||
{
|
||||
Log.ForContext<Command>().Error("Unexpected request to get authenticatin keys detected. No user logged in.");
|
||||
Log.ForContext<Command>().Error("Unexpected request to get authentication keys detected. No user logged in.");
|
||||
await Task.CompletedTask;
|
||||
}
|
||||
|
||||
|
|
|
@ -41,7 +41,7 @@ namespace TINK.Model.Connector
|
|||
{
|
||||
if (string.IsNullOrEmpty(mail))
|
||||
{
|
||||
throw new ArgumentNullException("Can not loging user. Mail address must not be null or empty.");
|
||||
throw new ArgumentNullException("Can not login user. Mail address must not be null or empty.");
|
||||
}
|
||||
|
||||
throw new Exception($"Fehler beim Anmelden von unter {mail}. Benutzer {Mail} ist bereits angemeldet.");
|
||||
|
@ -90,7 +90,7 @@ namespace TINK.Model.Connector
|
|||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Exception was not expected or too many subsequent excepitons detected.
|
||||
// Exception was not expected or too many subsequent exceptions detected.
|
||||
throw;
|
||||
}
|
||||
|
||||
|
@ -114,7 +114,7 @@ namespace TINK.Model.Connector
|
|||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Exception was not expected or too many subsequent excepitons detected.
|
||||
// Exception was not expected or too many subsequent exceptions detected.
|
||||
throw;
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@ namespace TINK.Model.Connector
|
|||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Exception was not expected or too many subsequent excepitons detected.
|
||||
// Exception was not expected or too many subsequent exceptions detected.
|
||||
throw;
|
||||
}
|
||||
|
||||
|
@ -178,7 +178,7 @@ namespace TINK.Model.Connector
|
|||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Exception was not expected or too many subsequent excepitons detected.
|
||||
// Exception was not expected or too many subsequent exceptions detected.
|
||||
throw;
|
||||
}
|
||||
|
||||
|
@ -231,7 +231,7 @@ namespace TINK.Model.Connector
|
|||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// Exception was not expected or too many subsequent excepitons detected.
|
||||
// Exception was not expected or too many subsequent exceptions detected.
|
||||
throw;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,7 @@ namespace TINK.Model.Connector
|
|||
server = copriServer as ICachedCopriServer;
|
||||
if (server == null)
|
||||
{
|
||||
throw new ArgumentException($"Copri server is not of expected typ. Type detected is {copriServer.GetType()}.");
|
||||
throw new ArgumentException($"Copri server is not of expected type. Type detected is {copriServer.GetType()}.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ namespace TINK.Model.Connector
|
|||
server = copriServer as ICopriServer;
|
||||
if (server == null)
|
||||
{
|
||||
throw new ArgumentException($"Copri server is not of expected typ. Type detected is {copriServer.GetType()}.");
|
||||
throw new ArgumentException($"Copri server is not of expected type. Type detected is {copriServer.GetType()}.");
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ namespace TINK.Model.Connector
|
|||
server = copriServer as ICopriServer;
|
||||
if (server == null)
|
||||
{
|
||||
throw new ArgumentException($"Copri server is not of expected typ. Type detected is {copriServer.GetType()}.");
|
||||
throw new ArgumentException($"Copri server is not of expected type. Type detected is {copriServer.GetType()}.");
|
||||
}
|
||||
|
||||
server = copriServer as ICopriServer;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
|
||||
namespace TINK.Model.State
|
||||
{
|
||||
|
@ -24,7 +24,7 @@ namespace TINK.Model.State
|
|||
Reserved,
|
||||
|
||||
/// <summary>
|
||||
/// Bike is booked. Corresponding COPRI statie is "occupied".
|
||||
/// Bike is booked. Corresponding COPRI state is "occupied".
|
||||
/// </summary>
|
||||
Booked
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ namespace TINK.Model.State
|
|||
/// <summary>
|
||||
/// Constructs a state info object when state is available.
|
||||
/// </summary>
|
||||
/// <param name="isFeedbackPending">Specifieds whether feedback is pending or not.</param>
|
||||
/// <param name="isFeedbackPending">Specifies whether feedback is pending or not.</param>
|
||||
public StateInfo(bool isFeedbackPending = false)
|
||||
{
|
||||
_InUseState = isFeedbackPending
|
||||
|
@ -54,7 +54,7 @@ namespace TINK.Model.State
|
|||
/// <param name="requestedAt">Date time when bike was requested</param>
|
||||
/// <param name="mailAddress">Mail address of user which requested bike.</param>
|
||||
/// <param name="code">Booking code.</param>
|
||||
/// <param name="dateTimeNowProvider">Date time provider to calculate reaining time.</param>
|
||||
/// <param name="dateTimeNowProvider">Date time provider to calculate remaining time.</param>
|
||||
public StateInfo(
|
||||
Func<DateTime> dateTimeNowProvider,
|
||||
DateTime requestedAt,
|
||||
|
|
|
@ -12,7 +12,7 @@ namespace TINK.Model.State
|
|||
public class StateInfoMutable : INotifyPropertyChanged, IStateInfoMutable
|
||||
{
|
||||
/// <summary>
|
||||
/// Provider for current date time to calculate remainig time on demand for state of type reserved.
|
||||
/// Provider for current date time to calculate remaining time on demand for state of type reserved.
|
||||
/// </summary>
|
||||
private readonly Func<DateTime> _DateTimeNowProvider;
|
||||
|
||||
|
|
|
@ -688,8 +688,8 @@ namespace TINK.Model
|
|||
new List<AppFlavor> { AppFlavor.MeinKonrad, AppFlavor.ShareeBike }
|
||||
},
|
||||
{
|
||||
new Version(3, 0, 364),
|
||||
AppResources.ChangeLog_MinorImprovements,
|
||||
new Version(3, 0, 365),
|
||||
AppResources.ChangeLog_3_0_365_MK_SB,
|
||||
new List<AppFlavor> { AppFlavor.MeinKonrad, AppFlavor.ShareeBike }
|
||||
},
|
||||
};
|
||||
|
|
|
@ -97,7 +97,7 @@ namespace TINK.MultilingualResources {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Feedback about the app.
|
||||
/// Looks up a localized string similar to Sent e-mail.
|
||||
/// </summary>
|
||||
public static string ActionContactMailAppReleated {
|
||||
get {
|
||||
|
@ -793,6 +793,15 @@ namespace TINK.MultilingualResources {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Minor design and performance improvements..
|
||||
/// </summary>
|
||||
public static string ChangeLog_3_0_365_MK_SB {
|
||||
get {
|
||||
return ResourceManager.GetString("ChangeLog_3_0_365_MK_SB", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to We have fixed some bugs. Enjoy the ride!.
|
||||
/// </summary>
|
||||
|
@ -2093,6 +2102,15 @@ namespace TINK.MultilingualResources {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Bike ID including prefix.
|
||||
/// </summary>
|
||||
public static string MarkingFindBikeLabel {
|
||||
get {
|
||||
return ResourceManager.GetString("MarkingFindBikeLabel", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Menu.
|
||||
/// </summary>
|
||||
|
@ -2275,7 +2293,16 @@ namespace TINK.MultilingualResources {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Bike is ok.
|
||||
/// Looks up a localized string similar to Is bike okay?.
|
||||
/// </summary>
|
||||
public static string MarkingReturnBikeBikeIsStateOkQuestion {
|
||||
get {
|
||||
return ResourceManager.GetString("MarkingReturnBikeBikeIsStateOkQuestion", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to bike is ok.
|
||||
/// </summary>
|
||||
public static string MarkingReturnBikeBikeStateIsOK {
|
||||
get {
|
||||
|
@ -2284,7 +2311,7 @@ namespace TINK.MultilingualResources {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Please describe condition/defect here..
|
||||
/// Looks up a localized string similar to Please describe technical defect of bike here..
|
||||
/// </summary>
|
||||
public static string MarkingReturnBikeErrorDescriptionInputPlaceholder {
|
||||
get {
|
||||
|
@ -2310,6 +2337,15 @@ namespace TINK.MultilingualResources {
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Search bike.
|
||||
/// </summary>
|
||||
public static string MarkingSearchBike {
|
||||
get {
|
||||
return ResourceManager.GetString("MarkingSearchBike", resourceCulture);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Select Station.
|
||||
/// </summary>
|
||||
|
@ -2749,7 +2785,7 @@ namespace TINK.MultilingualResources {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to No bike with id {0} found..
|
||||
/// Looks up a localized string similar to No bike with id {0} found. It may already be reserved by another user or it may be defective..
|
||||
/// </summary>
|
||||
public static string MessageErrorSelectBikeNoBikeFound {
|
||||
get {
|
||||
|
@ -2886,7 +2922,7 @@ namespace TINK.MultilingualResources {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Are you enjoying the {0}-app?.
|
||||
/// Looks up a localized string similar to Feedback to app development?.
|
||||
/// </summary>
|
||||
public static string MessageRateMail {
|
||||
get {
|
||||
|
@ -3003,7 +3039,7 @@ namespace TINK.MultilingualResources {
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Enter bike number here.
|
||||
/// Looks up a localized string similar to Bike ID including prefix e.g. TR15.
|
||||
/// </summary>
|
||||
public static string PlaceholderFindBike {
|
||||
get {
|
||||
|
|
|
@ -158,7 +158,7 @@ Mietende ist nur möglich, wenn das Rad in Reichweite ist und Standortinformatio
|
|||
<value>Fragen? Hinweise?</value>
|
||||
</data>
|
||||
<data name="MessageRateMail" xml:space="preserve">
|
||||
<value>Gefällt Ihnen die {0}-App?</value>
|
||||
<value>Rückmeldung an die App-Entwicklung?</value>
|
||||
</data>
|
||||
<data name="MessageWaring" xml:space="preserve">
|
||||
<value>Warnung</value>
|
||||
|
@ -734,7 +734,7 @@ Fehlerbehebung: Supportmails können wieder verschickt werden.</value>
|
|||
{0}</value>
|
||||
</data>
|
||||
<data name="MessageErrorSelectBikeNoBikeFound" xml:space="preserve">
|
||||
<value>Kein Rad mit ID {0} gefunden.</value>
|
||||
<value>Kein Rad mit ID {0} gefunden. Möglicherweise ist es bereits durch einen anderen Nutzer / eine andere Nutzerin reserviert oder defekt.</value>
|
||||
</data>
|
||||
<data name="MessageErrorSelectBikeTitle" xml:space="preserve">
|
||||
<value>Fehler beim Auswählen des Rads!</value>
|
||||
|
@ -908,7 +908,7 @@ Kleinere Fehlerbehebungen.
|
|||
<value>Rückmeldung geben</value>
|
||||
</data>
|
||||
<data name="ActionContactMailAppReleated" xml:space="preserve">
|
||||
<value>Rückmeldung zur App</value>
|
||||
<value>E-Mail senden</value>
|
||||
</data>
|
||||
<data name="MiscContactMailAppReleatedSubject" xml:space="preserve">
|
||||
<value>{0}-App Anfrage</value>
|
||||
|
@ -947,14 +947,8 @@ Kleinere Fehlerbehebungen.
|
|||
<data name="MarkingDriveBatteryChargingLevelNotAvailable" xml:space="preserve">
|
||||
<value>Ladestand: -</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeBikeStateIsOK" xml:space="preserve">
|
||||
<value>Rad ist in Ordnung</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeErrorDescriptionInputPlaceholder" xml:space="preserve">
|
||||
<value>Bitte Zustand/Defekt hier beschreiben.</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeFeedbackInputPlaceholder" xml:space="preserve">
|
||||
<value>Bei Bedarf bitte hier Rückmeldung eingeben.</value>
|
||||
<value>Bitte technischen Defekt des Rads hier beschreiben.</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeMainMessage" xml:space="preserve">
|
||||
<value>Rad erfolgreich zurückgegeben!</value>
|
||||
|
@ -1013,7 +1007,7 @@ Außerdem: Kleine Grafiken lassen auf einen Blick erkennen um was für einen Rad
|
|||
<value>Einwilligung</value>
|
||||
</data>
|
||||
<data name="PlaceholderFindBike" xml:space="preserve">
|
||||
<value>Rad-Nummer hier eingeben</value>
|
||||
<value>Rad-ID inklusive Präfix, z.B. TR15</value>
|
||||
</data>
|
||||
<data name="ChangeLog3_0_339_MK" xml:space="preserve">
|
||||
<value>Die Lastenräder aus den Vororten zeigen nun ihre Heimatstation im Namen an. Diese Räder müssen dort wieder abgeben werden!
|
||||
|
@ -1176,4 +1170,22 @@ Außerdem:<br/>
|
|||
- Fehlerbehebungen<br/>
|
||||
- Paketaktualisierungen</value>
|
||||
</data>
|
||||
<data name="MarkingFindBikeLabel" xml:space="preserve">
|
||||
<value>Rad-ID inklusive Präfix</value>
|
||||
</data>
|
||||
<data name="MarkingSearchBike" xml:space="preserve">
|
||||
<value>Rad suchen</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeBikeIsStateOkQuestion" xml:space="preserve">
|
||||
<value>Ist das Rad in Ordnung?</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeBikeStateIsOK" xml:space="preserve">
|
||||
<value>Rad ist in Ordnung</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeFeedbackInputPlaceholder" xml:space="preserve">
|
||||
<value>Bei Bedarf bitte hier Rückmeldung eingeben.</value>
|
||||
</data>
|
||||
<data name="ChangeLog_3_0_365_MK_SB" xml:space="preserve">
|
||||
<value>Kleine Verbesserungen in Design und Performance.</value>
|
||||
</data>
|
||||
</root>
|
|
@ -249,7 +249,7 @@ Please log in again.</value>
|
|||
<value>Urgent questions?</value>
|
||||
</data>
|
||||
<data name="MessageRateMail" xml:space="preserve">
|
||||
<value>Are you enjoying the {0}-app?</value>
|
||||
<value>Feedback to app development?</value>
|
||||
</data>
|
||||
<data name="MessageWaring" xml:space="preserve">
|
||||
<value>Warning</value>
|
||||
|
@ -842,7 +842,7 @@ Bugfix: Sending support mails works again. </value>
|
|||
{0}</value>
|
||||
</data>
|
||||
<data name="MessageErrorSelectBikeNoBikeFound" xml:space="preserve">
|
||||
<value>No bike with id {0} found.</value>
|
||||
<value>No bike with id {0} found. It may already be reserved by another user or it may be defective.</value>
|
||||
</data>
|
||||
<data name="MessageErrorSelectBikeTitle" xml:space="preserve">
|
||||
<value>Error Selecting Bike!</value>
|
||||
|
@ -1013,7 +1013,7 @@ Minor bugfixes.</value>
|
|||
<value>Give feedback</value>
|
||||
</data>
|
||||
<data name="ActionContactMailAppReleated" xml:space="preserve">
|
||||
<value>Feedback about the app</value>
|
||||
<value>Sent e-mail</value>
|
||||
</data>
|
||||
<data name="MiscContactMailAppReleatedSubject" xml:space="preserve">
|
||||
<value>{0}-app releated request</value>
|
||||
|
@ -1052,14 +1052,8 @@ Minor bugfixes.</value>
|
|||
<data name="MarkingDriveBatteryChargingLevelNotAvailable" xml:space="preserve">
|
||||
<value>Charging level: -</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeBikeStateIsOK" xml:space="preserve">
|
||||
<value>Bike is ok</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeErrorDescriptionInputPlaceholder" xml:space="preserve">
|
||||
<value>Please describe condition/defect here.</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeFeedbackInputPlaceholder" xml:space="preserve">
|
||||
<value>Please enter feedback here if needed.</value>
|
||||
<value>Please describe technical defect of bike here.</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeMainMessage" xml:space="preserve">
|
||||
<value>Rental successfully ended!</value>
|
||||
|
@ -1118,7 +1112,7 @@ In addition: Small graphics let you see at a glance what type of bike it is.</va
|
|||
<value>Consent</value>
|
||||
</data>
|
||||
<data name="PlaceholderFindBike" xml:space="preserve">
|
||||
<value>Enter bike number here</value>
|
||||
<value>Bike ID including prefix e.g. TR15</value>
|
||||
</data>
|
||||
<data name="ChangeLog3_0_339_MK" xml:space="preserve">
|
||||
<value>The cargo bikes from the suburbs now show their home station in their name. These bikes must be returned there!
|
||||
|
@ -1265,4 +1259,22 @@ Also:<br/>
|
|||
- Bug fixes<br/>
|
||||
- Package updates</value>
|
||||
</data>
|
||||
<data name="MarkingFindBikeLabel" xml:space="preserve">
|
||||
<value>Bike ID including prefix</value>
|
||||
</data>
|
||||
<data name="MarkingSearchBike" xml:space="preserve">
|
||||
<value>Search bike</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeBikeIsStateOkQuestion" xml:space="preserve">
|
||||
<value>Is bike okay?</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeBikeStateIsOK" xml:space="preserve">
|
||||
<value>bike is ok</value>
|
||||
</data>
|
||||
<data name="MarkingReturnBikeFeedbackInputPlaceholder" xml:space="preserve">
|
||||
<value>Please enter feedback here if needed.</value>
|
||||
</data>
|
||||
<data name="ChangeLog_3_0_365_MK_SB" xml:space="preserve">
|
||||
<value>Minor design and performance improvements.</value>
|
||||
</data>
|
||||
</root>
|
|
@ -203,8 +203,8 @@ Mietende ist nur möglich, wenn das Rad in Reichweite ist und Standortinformatio
|
|||
<target state="translated">Fragen? Hinweise?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MessageRateMail" translate="yes" xml:space="preserve">
|
||||
<source>Are you enjoying the {0}-app?</source>
|
||||
<target state="translated">Gefällt Ihnen die {0}-App?</target>
|
||||
<source>Feedback to app development?</source>
|
||||
<target state="translated">Rückmeldung an die App-Entwicklung?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MessageWaring" translate="yes" xml:space="preserve">
|
||||
<source>Warning</source>
|
||||
|
@ -992,8 +992,8 @@ Fehlerbehebung: Supportmails können wieder verschickt werden.</target>
|
|||
{0}</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MessageErrorSelectBikeNoBikeFound" translate="yes" xml:space="preserve">
|
||||
<source>No bike with id {0} found.</source>
|
||||
<target state="translated">Kein Rad mit ID {0} gefunden.</target>
|
||||
<source>No bike with id {0} found. It may already be reserved by another user or it may be defective.</source>
|
||||
<target state="translated">Kein Rad mit ID {0} gefunden. Möglicherweise ist es bereits durch einen anderen Nutzer / eine andere Nutzerin reserviert oder defekt.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MessageErrorSelectBikeTitle" translate="yes" xml:space="preserve">
|
||||
<source>Error Selecting Bike!</source>
|
||||
|
@ -1235,9 +1235,8 @@ Kleinere Fehlerbehebungen.
|
|||
<target state="translated">Rückmeldung geben</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="ActionContactMailAppReleated" translate="yes" xml:space="preserve">
|
||||
<source>Feedback about the app</source>
|
||||
<target state="translated">Rückmeldung zur App</target>
|
||||
<note from="MultilingualUpdate" annotates="source" priority="2">Please verify the translation’s accuracy as the source string was updated after it was translated.</note>
|
||||
<source>Sent e-mail</source>
|
||||
<target state="translated">E-Mail senden</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MiscContactMailAppReleatedSubject" translate="yes" xml:space="preserve">
|
||||
<source>{0}-app releated request</source>
|
||||
|
@ -1289,17 +1288,9 @@ Kleinere Fehlerbehebungen.
|
|||
<source>Charging level: -</source>
|
||||
<target state="translated">Ladestand: -</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MarkingReturnBikeBikeStateIsOK" translate="yes" xml:space="preserve">
|
||||
<source>Bike is ok</source>
|
||||
<target state="translated">Rad ist in Ordnung</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MarkingReturnBikeErrorDescriptionInputPlaceholder" translate="yes" xml:space="preserve">
|
||||
<source>Please describe condition/defect here.</source>
|
||||
<target state="translated">Bitte Zustand/Defekt hier beschreiben.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MarkingReturnBikeFeedbackInputPlaceholder" translate="yes" xml:space="preserve">
|
||||
<source>Please enter feedback here if needed.</source>
|
||||
<target state="translated">Bei Bedarf bitte hier Rückmeldung eingeben.</target>
|
||||
<source>Please describe technical defect of bike here.</source>
|
||||
<target state="translated">Bitte technischen Defekt des Rads hier beschreiben.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MarkingReturnBikeMainMessage" translate="yes" xml:space="preserve">
|
||||
<source>Rental successfully ended!</source>
|
||||
|
@ -1382,8 +1373,8 @@ Außerdem: Kleine Grafiken lassen auf einen Blick erkennen um was für einen Rad
|
|||
<target state="translated">Einwilligung</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="PlaceholderFindBike" translate="yes" xml:space="preserve">
|
||||
<source>Enter bike number here</source>
|
||||
<target state="translated">Rad-Nummer hier eingeben</target>
|
||||
<source>Bike ID including prefix e.g. TR15</source>
|
||||
<target state="translated">Rad-ID inklusive Präfix, z.B. TR15</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="ChangeLog3_0_339_MK" translate="yes" xml:space="preserve">
|
||||
<source>The cargo bikes from the suburbs now show their home station in their name. These bikes must be returned there!
|
||||
|
@ -1628,6 +1619,30 @@ Außerdem:<br/>
|
|||
- Fehlerbehebungen<br/>
|
||||
- Paketaktualisierungen</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MarkingFindBikeLabel" translate="yes" xml:space="preserve">
|
||||
<source>Bike ID including prefix</source>
|
||||
<target state="translated">Rad-ID inklusive Präfix</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MarkingSearchBike" translate="yes" xml:space="preserve">
|
||||
<source>Search bike</source>
|
||||
<target state="translated">Rad suchen</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MarkingReturnBikeBikeIsStateOkQuestion" translate="yes" xml:space="preserve">
|
||||
<source>Is bike okay?</source>
|
||||
<target state="translated">Ist das Rad in Ordnung?</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MarkingReturnBikeBikeStateIsOK" translate="yes" xml:space="preserve">
|
||||
<source>bike is ok</source>
|
||||
<target state="translated">Rad ist in Ordnung</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="MarkingReturnBikeFeedbackInputPlaceholder" translate="yes" xml:space="preserve">
|
||||
<source>Please enter feedback here if needed.</source>
|
||||
<target state="translated">Bei Bedarf bitte hier Rückmeldung eingeben.</target>
|
||||
</trans-unit>
|
||||
<trans-unit id="ChangeLog_3_0_365_MK_SB" translate="yes" xml:space="preserve">
|
||||
<source>Minor design and performance improvements.</source>
|
||||
<target state="translated">Kleine Verbesserungen in Design und Performance.</target>
|
||||
</trans-unit>
|
||||
</group>
|
||||
</body>
|
||||
</file>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<Setter Property="WidthRequest" Value="400" />
|
||||
<Setter Property="HorizontalOptions" Value="Center" />
|
||||
<Setter Property="BorderWidth" Value="1"/>
|
||||
<Setter Property="BorderRadius" Value="10" />
|
||||
<Setter Property="CornerRadius" Value="10" />
|
||||
<Setter Property="FontSize" Value="Medium"/>
|
||||
<Setter Property="TextColor" Value="White"/>
|
||||
<Style.Triggers>
|
||||
|
@ -44,7 +44,7 @@
|
|||
<Setter Property="WidthRequest" Value="400" />
|
||||
<Setter Property="HorizontalOptions" Value="Center" />
|
||||
<Setter Property="BorderWidth" Value="1"/>
|
||||
<Setter Property="BorderRadius" Value="10" />
|
||||
<Setter Property="CornerRadius" Value="10" />
|
||||
<Setter Property="FontSize" Value="Medium"/>
|
||||
<Setter Property="TextColor" Value="{DynamicResource Key=primary-back-title-color}"/>
|
||||
<Style.Triggers>
|
||||
|
|
|
@ -6,81 +6,6 @@
|
|||
<!--Main color-->
|
||||
<Color x:Key="primary-back-title-color">#009BDB</Color>
|
||||
|
||||
<!--Primary Button-->
|
||||
<!--<<Style TargetType="Button">
|
||||
<Setter Property="WidthRequest" Value="400" />
|
||||
<Setter Property="HorizontalOptions" Value="Center" />
|
||||
<Setter Property="BorderWidth" Value="1"/>
|
||||
<Setter Property="BorderRadius" Value="10" />
|
||||
<Setter Property="FontSize" Value="Medium"/>
|
||||
<Setter Property="TextColor" Value="White"/>
|
||||
<Style.Triggers>
|
||||
<Trigger TargetType="Button"
|
||||
Property="IsEnabled"
|
||||
Value="True">
|
||||
<Setter Property="BorderColor" Value="{DynamicResource Key=primary-back-title-color}"/>
|
||||
<Setter Property="BackgroundColor" Value="{DynamicResource Key=primary-back-title-color}"/>
|
||||
</Trigger>
|
||||
<Trigger TargetType="Button"
|
||||
Property="IsEnabled"
|
||||
Value="False">
|
||||
<Setter Property="BorderColor" Value="LightGray"/>
|
||||
<Setter Property="BackgroundColor" Value="LightGray"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>-->
|
||||
|
||||
<!--Sedondary Button-->
|
||||
<!--<Style x:Key="SecondaryButton" TargetType="Button">
|
||||
<Setter Property="WidthRequest" Value="400" />
|
||||
<Setter Property="HorizontalOptions" Value="Center" />
|
||||
<Setter Property="BorderWidth" Value="1"/>
|
||||
<Setter Property="BorderRadius" Value="10" />
|
||||
<Setter Property="FontSize" Value="Medium"/>
|
||||
<Setter Property="TextColor" Value="{DynamicResource Key=primary-back-title-color}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger TargetType="Button"
|
||||
Property="IsEnabled"
|
||||
Value="True">
|
||||
<Setter Property="BorderColor" Value="{DynamicResource Key=primary-back-title-color}"/>
|
||||
<Setter Property="BackgroundColor" Value="White"/>
|
||||
</Trigger>
|
||||
<Trigger TargetType="Button"
|
||||
Property="IsEnabled"
|
||||
Value="False">
|
||||
<Setter Property="BorderColor" Value="LightGray"/>
|
||||
<Setter Property="BackgroundColor" Value="DimGray"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>-->
|
||||
|
||||
<!--Switch-->
|
||||
<!--<Style TargetType="Switch">
|
||||
<Style.Triggers>
|
||||
<Trigger TargetType="Switch"
|
||||
Property="IsToggled"
|
||||
Value="True">
|
||||
<Setter Property="ThumbColor" Value="{DynamicResource Key=primary-back-title-color}"/>
|
||||
</Trigger>
|
||||
<Trigger TargetType="Switch"
|
||||
Property="IsToggled"
|
||||
Value="False">
|
||||
<Setter Property="ThumbColor" Value="DimGray"/>
|
||||
</Trigger>
|
||||
</Style.Triggers>
|
||||
</Style>-->
|
||||
|
||||
<!--Slider-->
|
||||
<!--<Style TargetType="Slider">
|
||||
<Setter Property="ThumbColor" Value="{DynamicResource Key=primary-back-title-color}"/>
|
||||
<Setter Property="Background" Value="LightGray"/>
|
||||
</Style>-->
|
||||
|
||||
<!--Label-->
|
||||
<!--<Style TargetType="Label">
|
||||
<Setter Property="FontSize" Value="Default"/>
|
||||
</Style>-->
|
||||
|
||||
<!--Flyout Item-->
|
||||
<Style TargetType="FlyoutItem">
|
||||
<Setter Property="Shell.BackgroundColor" Value="{DynamicResource Key=primary-back-title-color}" />
|
||||
|
@ -88,9 +13,8 @@
|
|||
|
||||
<!--Navbar-->
|
||||
<Style x:Key="Label-Navbar" TargetType="Label">
|
||||
<Setter Property="FontSize" Value="20"/>
|
||||
<!--<Setter Property="TextTransform" Value="Uppercase"/>-->
|
||||
<Setter Property="TextColor" Value="White"/>
|
||||
<Setter Property="FontSize" Value="20"/>
|
||||
<Setter Property="TextColor" Value="White"/>
|
||||
<Setter Property="VerticalOptions" Value="Center"/>
|
||||
<Setter Property="HorizontalOptions" Value="Start"/>
|
||||
<Setter Property="Grid.Column" Value="1"/>
|
||||
|
|
|
@ -17,8 +17,9 @@
|
|||
<Setter Property="WidthRequest" Value="400" />
|
||||
<Setter Property="HorizontalOptions" Value="Center" />
|
||||
<Setter Property="BorderWidth" Value="1"/>
|
||||
<Setter Property="BorderRadius" Value="10" />
|
||||
<Setter Property="CornerRadius" Value="10" />
|
||||
<Setter Property="FontSize" Value="Medium"/>
|
||||
<Setter Property="FontFamily" Value="RobotoRegular"/>
|
||||
<Setter Property="TextColor" Value="White"/>
|
||||
<Style.Triggers>
|
||||
<Trigger TargetType="Button"
|
||||
|
@ -41,8 +42,9 @@
|
|||
<Setter Property="WidthRequest" Value="400" />
|
||||
<Setter Property="HorizontalOptions" Value="Center" />
|
||||
<Setter Property="BorderWidth" Value="1"/>
|
||||
<Setter Property="BorderRadius" Value="10" />
|
||||
<Setter Property="CornerRadius" Value="10" />
|
||||
<Setter Property="FontSize" Value="Medium"/>
|
||||
<Setter Property="FontFamily" Value="RobotoRegular"/>
|
||||
<Setter Property="TextColor" Value="{DynamicResource Key=primary-back-title-color}"/>
|
||||
<Style.Triggers>
|
||||
<Trigger TargetType="Button"
|
||||
|
@ -85,8 +87,15 @@
|
|||
<!--Label-->
|
||||
<Style TargetType="Label">
|
||||
<Setter Property="FontSize" Value="Default"/>
|
||||
<Setter Property="FontFamily" Value="RobotoRegular"/>
|
||||
</Style>
|
||||
|
||||
<!--Entry-->
|
||||
<Style TargetType="Entry">
|
||||
<Setter Property="FontSize" Value="Default"/>
|
||||
<Setter Property="FontFamily" Value="RobotoRegular"/>
|
||||
</Style>
|
||||
|
||||
<!--Flyout Item-->
|
||||
<Style TargetType="FlyoutItem">
|
||||
<Setter Property="Shell.BackgroundColor" Value="{DynamicResource Key=primary-back-title-color}" />
|
||||
|
@ -97,6 +106,7 @@
|
|||
<Setter Property="FontSize" Value="20"/>
|
||||
<!--<Setter Property="TextTransform" Value="Uppercase"/>-->
|
||||
<Setter Property="TextColor" Value="White"/>
|
||||
<Setter Property="FontFamily" Value="RobotoRegular"/>
|
||||
<Setter Property="VerticalOptions" Value="Center"/>
|
||||
<Setter Property="HorizontalOptions" Value="Start"/>
|
||||
<Setter Property="Grid.Column" Value="1"/>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using TINK.Model.State;
|
||||
|
@ -29,11 +29,11 @@ namespace TestTINKLib
|
|||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", null).From);
|
||||
|
||||
Assert.IsTrue(
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", null).GetIsStillReserved(out TimeSpan? l_oRemainigTime));
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", null).GetIsStillReserved(out TimeSpan? remainingTime));
|
||||
|
||||
Assert.AreEqual(
|
||||
14,
|
||||
l_oRemainigTime.Value.Minutes);
|
||||
remainingTime.Value.Minutes);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -56,11 +56,11 @@ namespace TestTINKLib
|
|||
new StateRequestedInfo(() => new DateTime(2017, 09, 20), new DateTime(2017, 09, 19), "a@b", "372").From);
|
||||
|
||||
Assert.IsTrue(
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 12, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", "372").GetIsStillReserved(out TimeSpan? l_oRemainigTime));
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 12, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", "372").GetIsStillReserved(out TimeSpan? remainingTime));
|
||||
|
||||
Assert.AreEqual(
|
||||
3,
|
||||
l_oRemainigTime.Value.Minutes);
|
||||
remainingTime.Value.Minutes);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -77,13 +77,13 @@ namespace TestTINKLib
|
|||
Assert.AreEqual(new DateTime(2017, 09, 20, 22, 01, 00), l_oReservedInfo.From, "a@b");
|
||||
|
||||
// Invoke first update (after simulated 4mns)
|
||||
Assert.IsTrue(l_oReservedInfo.GetIsStillReserved(out TimeSpan? l_oRemainigTime));
|
||||
Assert.AreEqual(11, l_oRemainigTime.Value.Minutes);
|
||||
Assert.IsTrue(l_oReservedInfo.GetIsStillReserved(out TimeSpan? remainingTime));
|
||||
Assert.AreEqual(11, remainingTime.Value.Minutes);
|
||||
Assert.AreEqual(new DateTime(2017, 09, 20, 22, 01, 00), l_oReservedInfo.From, "a@b");
|
||||
|
||||
// Invoke second update (after simulated 16 mns)
|
||||
Assert.IsFalse(l_oReservedInfo.GetIsStillReserved(out l_oRemainigTime));
|
||||
Assert.IsNull(l_oRemainigTime);
|
||||
Assert.IsFalse(l_oReservedInfo.GetIsStillReserved(out remainingTime));
|
||||
Assert.IsNull(remainingTime);
|
||||
Assert.AreEqual(new DateTime(2017, 09, 20, 22, 01, 00), l_oReservedInfo.From, "a@b");
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue