Version 3.0.352
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 150 B |
|
@ -240,6 +240,10 @@
|
||||||
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable\Location_Button.png">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
||||||
|
</AndroidResource>
|
||||||
<AndroidResource Include="Resources\layout\Tabbar.axml" />
|
<AndroidResource Include="Resources\layout\Tabbar.axml" />
|
||||||
<AndroidResource Include="Resources\layout\Toolbar.axml" />
|
<AndroidResource Include="Resources\layout\Toolbar.axml" />
|
||||||
<AndroidResource Include="Resources\values\styles.xml">
|
<AndroidResource Include="Resources\values\styles.xml">
|
||||||
|
@ -345,11 +349,6 @@
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<AndroidResource Include="Resources\drawable-xxxhdpi\sharee_no_background.png" />
|
<AndroidResource Include="Resources\drawable-xxxhdpi\sharee_no_background.png" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<AndroidResource Include="Resources\drawable\Location_Button.png">
|
|
||||||
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
|
||||||
</AndroidResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="..\TINK\LastenradBayern.projitems" Label="Shared" Condition="Exists('..\TINK\LastenradBayern.projitems')" />
|
<Import Project="..\TINK\LastenradBayern.projitems" Label="Shared" Condition="Exists('..\TINK\LastenradBayern.projitems')" />
|
||||||
<Import Project="..\..\ShareeSharedGuiLib\ShareeSharedGuiLib.projitems" Label="Shared" />
|
<Import Project="..\..\ShareeSharedGuiLib\ShareeSharedGuiLib.projitems" Label="Shared" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?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.350" android:versionCode="350">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.LastenradBayern" android:versionName="3.0.352" android:versionCode="352">
|
||||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
||||||
<!-- Google Maps related permissions -->
|
<!-- Google Maps related permissions -->
|
||||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||||
|
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -55,8 +55,8 @@
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>LastenradBayern</string>
|
<string>LastenradBayern</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>350</string>
|
<string>352</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>3.0.350</string>
|
<string>3.0.352</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -328,7 +328,7 @@
|
||||||
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Contents.json">
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Contents.json">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Location_Button.svg">
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Location_Button.pdf">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\Icon-40.png">
|
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\Icon-40.png">
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "Location_Button.svg",
|
"filename" : "Location_Button.pdf",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
69
LastenradBayern/TINK.iOS/Media.xcassets/Location_Button.imageset/Location_Button.pdf
vendored
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
%PDF-1.5
|
||||||
|
%µí®û
|
||||||
|
4 0 obj
|
||||||
|
<< /Length 5 0 R
|
||||||
|
/Filter /FlateDecode
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
xœmPËN1¼û+æ0‰“<E280B0>Í !q( ©‡–¿<>³qئ<C398>Uì<55>±Ç<C2B1>x8ý®¼š(ìôHF=БGŒûp‹ë‡ý —v<¾ÉãNï'==kŽÃ+EÜã¿VìVaÉâÙIÀg–°7'ªð‘/† …ó¦4ÐÕ ÌM)T“<54>bÖjj´ýø3ý#vÓÃœö<C593>Ä)¥5Å-š2pàX¤¹ÊJj´%µXGºàÂ)$ø›så@½n¸It”®lÜVÖÕÑu„Ó¹rž·-y¹Á;ù <09>³dý=½ý’î‚íÄk\0ö?rG?nðxæ
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
5 0 obj
|
||||||
|
243
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/ExtGState <<
|
||||||
|
/a0 << /CA 1 /ca 1 >>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<< /Type /Page % 1
|
||||||
|
/Parent 1 0 R
|
||||||
|
/MediaBox [ 0 0 42.000168 42.000027 ]
|
||||||
|
/Contents 4 0 R
|
||||||
|
/Group <<
|
||||||
|
/Type /Group
|
||||||
|
/S /Transparency
|
||||||
|
/I true
|
||||||
|
/CS /DeviceRGB
|
||||||
|
>>
|
||||||
|
/Resources 3 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
1 0 obj
|
||||||
|
<< /Type /Pages
|
||||||
|
/Kids [ 2 0 R ]
|
||||||
|
/Count 1
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
||||||
|
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
||||||
|
/CreationDate (D:20221124081702+01'00)
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<< /Type /Catalog
|
||||||
|
/Pages 1 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
xref
|
||||||
|
0 8
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000659 00000 n
|
||||||
|
0000000429 00000 n
|
||||||
|
0000000357 00000 n
|
||||||
|
0000000015 00000 n
|
||||||
|
0000000335 00000 n
|
||||||
|
0000000724 00000 n
|
||||||
|
0000001007 00000 n
|
||||||
|
trailer
|
||||||
|
<< /Size 8
|
||||||
|
/Root 7 0 R
|
||||||
|
/Info 6 0 R
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
1059
|
||||||
|
%%EOF
|
|
@ -90,7 +90,7 @@
|
||||||
</Frame>
|
</Frame>
|
||||||
|
|
||||||
<!--Center to currentLocation Button-->
|
<!--Center to currentLocation Button-->
|
||||||
<ImageButton
|
<!--<ImageButton
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.ColumnSpan="3"
|
Grid.ColumnSpan="3"
|
||||||
x:Name="CurrentLocation"
|
x:Name="CurrentLocation"
|
||||||
|
@ -98,14 +98,16 @@
|
||||||
Command="{Binding OnCurrentLocationButtonClicked}"
|
Command="{Binding OnCurrentLocationButtonClicked}"
|
||||||
IsVisible="True"
|
IsVisible="True"
|
||||||
BackgroundColor="Transparent"
|
BackgroundColor="Transparent"
|
||||||
|
BorderWidth="1"
|
||||||
|
BorderColor="LightGray"
|
||||||
VerticalOptions="End"
|
VerticalOptions="End"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="Center"
|
||||||
Margin="0,0,11,100"
|
Margin="0,0,0,12"
|
||||||
Source="Location_Button.png"
|
Source="Location_Button.png"
|
||||||
WidthRequest="40"
|
WidthRequest="40"
|
||||||
HeightRequest="40"
|
HeightRequest="40"
|
||||||
CornerRadius="20">
|
CornerRadius="20">
|
||||||
</ImageButton>
|
</ImageButton>-->
|
||||||
|
|
||||||
<!--While process is running-->
|
<!--While process is running-->
|
||||||
<!--Spinner-->
|
<!--Spinner-->
|
||||||
|
|
|
@ -240,6 +240,10 @@
|
||||||
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
<EmbeddedResource Include="Resources\Font Awesome 5 Free-Solid-900.otf" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
<AndroidResource Include="Resources\drawable\Location_Button.png">
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
||||||
|
</AndroidResource>
|
||||||
<AndroidResource Include="Resources\layout\Tabbar.axml" />
|
<AndroidResource Include="Resources\layout\Tabbar.axml" />
|
||||||
<AndroidResource Include="Resources\layout\Toolbar.axml" />
|
<AndroidResource Include="Resources\layout\Toolbar.axml" />
|
||||||
<AndroidResource Include="Resources\values\styles.xml">
|
<AndroidResource Include="Resources\values\styles.xml">
|
||||||
|
@ -461,11 +465,6 @@
|
||||||
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
||||||
</AndroidResource>
|
</AndroidResource>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
|
||||||
<AndroidResource Include="Resources\drawable\Location_Button.png">
|
|
||||||
<Generator>MSBuild:UpdateGeneratedFiles</Generator>
|
|
||||||
</AndroidResource>
|
|
||||||
</ItemGroup>
|
|
||||||
<Import Project="..\TINK\Meinkonrad.projitems" Label="Shared" Condition="Exists('..\TINK\Meinkonrad.projitems')" />
|
<Import Project="..\TINK\Meinkonrad.projitems" Label="Shared" Condition="Exists('..\TINK\Meinkonrad.projitems')" />
|
||||||
<Import Project="..\..\ShareeSharedGuiLib\ShareeSharedGuiLib.projitems" Label="Shared" />
|
<Import Project="..\..\ShareeSharedGuiLib\ShareeSharedGuiLib.projitems" Label="Shared" />
|
||||||
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
<Import Project="$(MSBuildExtensionsPath)\Xamarin\Android\Xamarin.Android.CSharp.targets" />
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?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.350" android:versionCode="350">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.TeilRad.Meinkonrad" android:versionName="3.0.352" android:versionCode="352">
|
||||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
||||||
<!-- Google Maps related permissions -->
|
<!-- Google Maps related permissions -->
|
||||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||||
|
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -55,8 +55,8 @@
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>Mein konrad</string>
|
<string>Mein konrad</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>350</string>
|
<string>352</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>3.0.350</string>
|
<string>3.0.352</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "Location_Button.svg",
|
"filename" : "Location_Button.pdf",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
69
Meinkonrad/TINK.iOS/Media.xcassets/Location_Button.imageset/Location_Button.pdf
vendored
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
%PDF-1.5
|
||||||
|
%µí®û
|
||||||
|
4 0 obj
|
||||||
|
<< /Length 5 0 R
|
||||||
|
/Filter /FlateDecode
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
xœmPËN1¼û+æ0‰“<E280B0>Í !q( ©‡–¿<>³qئ<C398>Uì<55>±Ç<C2B1>x8ý®¼š(ìôHF=БGŒûp‹ë‡ý —v<¾ÉãNï'==kŽÃ+EÜã¿VìVaÉâÙIÀg–°7'ªð‘/† …ó¦4ÐÕ ÌM)T“<54>bÖjj´ýø3ý#vÓÃœö<C593>Ä)¥5Å-š2pàX¤¹ÊJj´%µXGºàÂ)$ø›så@½n¸It”®lÜVÖÕÑu„Ó¹rž·-y¹Á;ù <09>³dý=½ý’î‚íÄk\0ö?rG?nðxæ
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
5 0 obj
|
||||||
|
243
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/ExtGState <<
|
||||||
|
/a0 << /CA 1 /ca 1 >>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<< /Type /Page % 1
|
||||||
|
/Parent 1 0 R
|
||||||
|
/MediaBox [ 0 0 42.000168 42.000027 ]
|
||||||
|
/Contents 4 0 R
|
||||||
|
/Group <<
|
||||||
|
/Type /Group
|
||||||
|
/S /Transparency
|
||||||
|
/I true
|
||||||
|
/CS /DeviceRGB
|
||||||
|
>>
|
||||||
|
/Resources 3 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
1 0 obj
|
||||||
|
<< /Type /Pages
|
||||||
|
/Kids [ 2 0 R ]
|
||||||
|
/Count 1
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
||||||
|
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
||||||
|
/CreationDate (D:20221124081702+01'00)
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<< /Type /Catalog
|
||||||
|
/Pages 1 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
xref
|
||||||
|
0 8
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000659 00000 n
|
||||||
|
0000000429 00000 n
|
||||||
|
0000000357 00000 n
|
||||||
|
0000000015 00000 n
|
||||||
|
0000000335 00000 n
|
||||||
|
0000000724 00000 n
|
||||||
|
0000001007 00000 n
|
||||||
|
trailer
|
||||||
|
<< /Size 8
|
||||||
|
/Root 7 0 R
|
||||||
|
/Info 6 0 R
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
1059
|
||||||
|
%%EOF
|
|
@ -5,12 +5,11 @@
|
||||||
/Filter /FlateDecode
|
/Filter /FlateDecode
|
||||||
>>
|
>>
|
||||||
stream
|
stream
|
||||||
xœÕ<EFBFBD>A
|
xœÕOIÂ0¼ûóLœfi_€„Ä¡pDPEH=|—¤UáÈŠ3£Ob<4F>ÑZ‰6‰lL¬cƒÔÓ@‚±ö¬ÏÝ“,»è<C2BB>ª/•¶zît<Á°Á…v Ÿ¬Ü5B<Ljš½qè‘™XöækáÈ8Á±kìäf[Õ4»GVÜ©°ì.3=ãô5J%uù”vûùí-é\…:ب Zñ¡Á£Ã?¯u¥–Þ<Q`3
|
||||||
1E÷9Å¿€1iÆNç‚àbt).dÄÁÅèÂë›jg@=<3D>
ýä“ßGª¯™ºTÊ!˜iDw¥<77>¹6KÌ‚þN‘%Ÿü^h·‡°àHÖ /Ö[a)ó„£®(Þ„õ#R\N©.ž0½ƒ<>·%3F'F–tá}Ñ&ÆùgÃ-ZòåÙbŠ¡ö¦ºˆ
n=þï3'jé Õ[ƒ
|
|
||||||
endstream
|
endstream
|
||||||
endobj
|
endobj
|
||||||
5 0 obj
|
5 0 obj
|
||||||
165
|
171
|
||||||
endobj
|
endobj
|
||||||
3 0 obj
|
3 0 obj
|
||||||
<<
|
<<
|
||||||
|
@ -22,7 +21,7 @@ endobj
|
||||||
2 0 obj
|
2 0 obj
|
||||||
<< /Type /Page % 1
|
<< /Type /Page % 1
|
||||||
/Parent 1 0 R
|
/Parent 1 0 R
|
||||||
/MediaBox [ 0 0 41.223316 41.223316 ]
|
/MediaBox [ 0 0 17.007875 17.007879 ]
|
||||||
/Contents 4 0 R
|
/Contents 4 0 R
|
||||||
/Group <<
|
/Group <<
|
||||||
/Type /Group
|
/Type /Group
|
||||||
|
@ -42,7 +41,7 @@ endobj
|
||||||
6 0 obj
|
6 0 obj
|
||||||
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
||||||
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
||||||
/CreationDate (D:20221116092441+01'00)
|
/CreationDate (D:20221118084115+01'00)
|
||||||
>>
|
>>
|
||||||
endobj
|
endobj
|
||||||
7 0 obj
|
7 0 obj
|
||||||
|
@ -53,18 +52,18 @@ endobj
|
||||||
xref
|
xref
|
||||||
0 8
|
0 8
|
||||||
0000000000 65535 f
|
0000000000 65535 f
|
||||||
0000000581 00000 n
|
0000000587 00000 n
|
||||||
0000000351 00000 n
|
0000000357 00000 n
|
||||||
0000000279 00000 n
|
0000000285 00000 n
|
||||||
0000000015 00000 n
|
0000000015 00000 n
|
||||||
0000000257 00000 n
|
0000000263 00000 n
|
||||||
0000000646 00000 n
|
0000000652 00000 n
|
||||||
0000000929 00000 n
|
0000000935 00000 n
|
||||||
trailer
|
trailer
|
||||||
<< /Size 8
|
<< /Size 8
|
||||||
/Root 7 0 R
|
/Root 7 0 R
|
||||||
/Info 6 0 R
|
/Info 6 0 R
|
||||||
>>
|
>>
|
||||||
startxref
|
startxref
|
||||||
981
|
987
|
||||||
%%EOF
|
%%EOF
|
||||||
|
|
|
@ -327,7 +327,7 @@
|
||||||
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Contents.json">
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Contents.json">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Location_Button.svg">
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Location_Button.pdf">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\swk_theme.imageset\swk_theme.pdf">
|
<ImageAsset Include="Media.xcassets\swk_theme.imageset\swk_theme.pdf">
|
||||||
|
|
|
@ -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"
|
<xct:Popup xmlns="http://xamarin.com/schemas/2014/forms"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
|
||||||
xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
|
xmlns:xct="http://xamarin.com/schemas/2020/toolkit"
|
||||||
|
@ -40,12 +40,12 @@
|
||||||
<ScrollView>
|
<ScrollView>
|
||||||
<StackLayout>
|
<StackLayout>
|
||||||
<!-- Battery level -->
|
<!-- Battery level -->
|
||||||
<sharedGui:BarLevelInputView
|
<sharedGui:BarLevelInputView
|
||||||
x:Name="BarLevelInputView"
|
x:Name="BarLevelInputView"
|
||||||
HorizontalOptions="Center"/>
|
HorizontalOptions="Center"/>
|
||||||
<!-- Checkbox Is Broken -->
|
<!-- Checkbox Is Broken -->
|
||||||
<StackLayout Orientation="Horizontal">
|
<StackLayout Orientation="Horizontal">
|
||||||
<CheckBox x:Name="brockenCheckBox" IsChecked="True" HeightRequest="20"/>
|
<CheckBox x:Name="brockenCheckBox" IsChecked="True" HeightRequest="20"/>
|
||||||
<Label
|
<Label
|
||||||
FontSize="Medium"
|
FontSize="Medium"
|
||||||
Text= "{x:Static resources:AppResources.MarkingReturnBikeBikeStateIsOK}"/>
|
Text= "{x:Static resources:AppResources.MarkingReturnBikeBikeStateIsOK}"/>
|
||||||
|
|
|
@ -99,9 +99,11 @@
|
||||||
Command="{Binding OnCurrentLocationButtonClicked}"
|
Command="{Binding OnCurrentLocationButtonClicked}"
|
||||||
IsVisible="True"
|
IsVisible="True"
|
||||||
BackgroundColor="Transparent"
|
BackgroundColor="Transparent"
|
||||||
|
BorderWidth="1"
|
||||||
|
BorderColor="LightGray"
|
||||||
VerticalOptions="End"
|
VerticalOptions="End"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="Center"
|
||||||
Margin="0,0,11,100"
|
Margin="0,0,0,12"
|
||||||
Source="Location_Button.png"
|
Source="Location_Button.png"
|
||||||
WidthRequest="40"
|
WidthRequest="40"
|
||||||
HeightRequest="40"
|
HeightRequest="40"
|
||||||
|
|
|
@ -35,9 +35,11 @@
|
||||||
<!--Info text-->
|
<!--Info text-->
|
||||||
<Label
|
<Label
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
|
TextType="Html"
|
||||||
Text="{Binding StatusInfoText}"
|
Text="{Binding StatusInfoText}"
|
||||||
FontSize="Small"
|
FontSize="Small"
|
||||||
HorizontalOptions="Center"
|
HorizontalOptions="Center"
|
||||||
|
HorizontalTextAlignment="Center"
|
||||||
Padding="0,0,0,10"/>
|
Padding="0,0,0,10"/>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?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.350" android:versionCode="350">
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="com.hauffware.sharee" android:versionName="3.0.352" android:versionCode="352">
|
||||||
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
<uses-sdk android:minSdkVersion="19" android:targetSdkVersion="31" />
|
||||||
<!-- Google Maps related permissions -->
|
<!-- Google Maps related permissions -->
|
||||||
<!-- Permission to receive remote notifications from Google Play Services -->
|
<!-- Permission to receive remote notifications from Google Play Services -->
|
||||||
|
|
139
TINK/TINK.Android/Resources/Resource.Designer.cs
generated
|
@ -23987,208 +23987,211 @@ namespace TINK.Droid
|
||||||
public const int ic_vol_unmute = 2131165504;
|
public const int ic_vol_unmute = 2131165504;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070141
|
// aapt resource value: 0x7F070141
|
||||||
public const int material_cursor_drawable = 2131165505;
|
public const int Location_Button = 2131165505;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070142
|
// aapt resource value: 0x7F070142
|
||||||
public const int material_ic_calendar_black_24dp = 2131165506;
|
public const int material_cursor_drawable = 2131165506;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070143
|
// aapt resource value: 0x7F070143
|
||||||
public const int material_ic_clear_black_24dp = 2131165507;
|
public const int material_ic_calendar_black_24dp = 2131165507;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070144
|
// aapt resource value: 0x7F070144
|
||||||
public const int material_ic_edit_black_24dp = 2131165508;
|
public const int material_ic_clear_black_24dp = 2131165508;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070145
|
// aapt resource value: 0x7F070145
|
||||||
public const int material_ic_keyboard_arrow_left_black_24dp = 2131165509;
|
public const int material_ic_edit_black_24dp = 2131165509;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070146
|
// aapt resource value: 0x7F070146
|
||||||
public const int material_ic_keyboard_arrow_next_black_24dp = 2131165510;
|
public const int material_ic_keyboard_arrow_left_black_24dp = 2131165510;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070147
|
// aapt resource value: 0x7F070147
|
||||||
public const int material_ic_keyboard_arrow_previous_black_24dp = 2131165511;
|
public const int material_ic_keyboard_arrow_next_black_24dp = 2131165511;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070148
|
// aapt resource value: 0x7F070148
|
||||||
public const int material_ic_keyboard_arrow_right_black_24dp = 2131165512;
|
public const int material_ic_keyboard_arrow_previous_black_24dp = 2131165512;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070149
|
// aapt resource value: 0x7F070149
|
||||||
public const int material_ic_menu_arrow_down_black_24dp = 2131165513;
|
public const int material_ic_keyboard_arrow_right_black_24dp = 2131165513;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07014A
|
// aapt resource value: 0x7F07014A
|
||||||
public const int material_ic_menu_arrow_up_black_24dp = 2131165514;
|
public const int material_ic_menu_arrow_down_black_24dp = 2131165514;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07014B
|
// aapt resource value: 0x7F07014B
|
||||||
public const int mr_button_connected_dark = 2131165515;
|
public const int material_ic_menu_arrow_up_black_24dp = 2131165515;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07014C
|
// aapt resource value: 0x7F07014C
|
||||||
public const int mr_button_connected_light = 2131165516;
|
public const int mr_button_connected_dark = 2131165516;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07014D
|
// aapt resource value: 0x7F07014D
|
||||||
public const int mr_button_connecting_dark = 2131165517;
|
public const int mr_button_connected_light = 2131165517;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07014E
|
// aapt resource value: 0x7F07014E
|
||||||
public const int mr_button_connecting_light = 2131165518;
|
public const int mr_button_connecting_dark = 2131165518;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07014F
|
// aapt resource value: 0x7F07014F
|
||||||
public const int mr_button_dark = 2131165519;
|
public const int mr_button_connecting_light = 2131165519;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070150
|
// aapt resource value: 0x7F070150
|
||||||
public const int mr_button_dark_static = 2131165520;
|
public const int mr_button_dark = 2131165520;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070151
|
// aapt resource value: 0x7F070151
|
||||||
public const int mr_button_light = 2131165521;
|
public const int mr_button_dark_static = 2131165521;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070152
|
// aapt resource value: 0x7F070152
|
||||||
public const int mr_button_light_static = 2131165522;
|
public const int mr_button_light = 2131165522;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070153
|
// aapt resource value: 0x7F070153
|
||||||
public const int mr_cast_checkbox = 2131165523;
|
public const int mr_button_light_static = 2131165523;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070154
|
// aapt resource value: 0x7F070154
|
||||||
public const int mr_cast_group_seekbar_track = 2131165524;
|
public const int mr_cast_checkbox = 2131165524;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070155
|
// aapt resource value: 0x7F070155
|
||||||
public const int mr_cast_mute_button = 2131165525;
|
public const int mr_cast_group_seekbar_track = 2131165525;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070156
|
// aapt resource value: 0x7F070156
|
||||||
public const int mr_cast_route_seekbar_track = 2131165526;
|
public const int mr_cast_mute_button = 2131165526;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070157
|
// aapt resource value: 0x7F070157
|
||||||
public const int mr_cast_stop = 2131165527;
|
public const int mr_cast_route_seekbar_track = 2131165527;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070158
|
// aapt resource value: 0x7F070158
|
||||||
public const int mr_cast_thumb = 2131165528;
|
public const int mr_cast_stop = 2131165528;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070159
|
// aapt resource value: 0x7F070159
|
||||||
public const int mr_dialog_close_dark = 2131165529;
|
public const int mr_cast_thumb = 2131165529;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07015A
|
// aapt resource value: 0x7F07015A
|
||||||
public const int mr_dialog_close_light = 2131165530;
|
public const int mr_dialog_close_dark = 2131165530;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07015B
|
// aapt resource value: 0x7F07015B
|
||||||
public const int mr_dialog_material_background_dark = 2131165531;
|
public const int mr_dialog_close_light = 2131165531;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07015C
|
// aapt resource value: 0x7F07015C
|
||||||
public const int mr_dialog_material_background_light = 2131165532;
|
public const int mr_dialog_material_background_dark = 2131165532;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07015D
|
// aapt resource value: 0x7F07015D
|
||||||
public const int mr_group_collapse = 2131165533;
|
public const int mr_dialog_material_background_light = 2131165533;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07015E
|
// aapt resource value: 0x7F07015E
|
||||||
public const int mr_group_expand = 2131165534;
|
public const int mr_group_collapse = 2131165534;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07015F
|
// aapt resource value: 0x7F07015F
|
||||||
public const int mr_media_pause_dark = 2131165535;
|
public const int mr_group_expand = 2131165535;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070160
|
// aapt resource value: 0x7F070160
|
||||||
public const int mr_media_pause_light = 2131165536;
|
public const int mr_media_pause_dark = 2131165536;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070161
|
// aapt resource value: 0x7F070161
|
||||||
public const int mr_media_play_dark = 2131165537;
|
public const int mr_media_pause_light = 2131165537;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070162
|
// aapt resource value: 0x7F070162
|
||||||
public const int mr_media_play_light = 2131165538;
|
public const int mr_media_play_dark = 2131165538;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070163
|
// aapt resource value: 0x7F070163
|
||||||
public const int mr_media_stop_dark = 2131165539;
|
public const int mr_media_play_light = 2131165539;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070164
|
// aapt resource value: 0x7F070164
|
||||||
public const int mr_media_stop_light = 2131165540;
|
public const int mr_media_stop_dark = 2131165540;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070165
|
// aapt resource value: 0x7F070165
|
||||||
public const int mr_vol_type_audiotrack_dark = 2131165541;
|
public const int mr_media_stop_light = 2131165541;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070166
|
// aapt resource value: 0x7F070166
|
||||||
public const int mr_vol_type_audiotrack_light = 2131165542;
|
public const int mr_vol_type_audiotrack_dark = 2131165542;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070167
|
// aapt resource value: 0x7F070167
|
||||||
public const int mtrl_dialog_background = 2131165543;
|
public const int mr_vol_type_audiotrack_light = 2131165543;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070168
|
// aapt resource value: 0x7F070168
|
||||||
public const int mtrl_dropdown_arrow = 2131165544;
|
public const int mtrl_dialog_background = 2131165544;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070169
|
// aapt resource value: 0x7F070169
|
||||||
public const int mtrl_ic_arrow_drop_down = 2131165545;
|
public const int mtrl_dropdown_arrow = 2131165545;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07016A
|
// aapt resource value: 0x7F07016A
|
||||||
public const int mtrl_ic_arrow_drop_up = 2131165546;
|
public const int mtrl_ic_arrow_drop_down = 2131165546;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07016B
|
// aapt resource value: 0x7F07016B
|
||||||
public const int mtrl_ic_cancel = 2131165547;
|
public const int mtrl_ic_arrow_drop_up = 2131165547;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07016C
|
// aapt resource value: 0x7F07016C
|
||||||
public const int mtrl_ic_error = 2131165548;
|
public const int mtrl_ic_cancel = 2131165548;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07016D
|
// aapt resource value: 0x7F07016D
|
||||||
public const int mtrl_navigation_bar_item_background = 2131165549;
|
public const int mtrl_ic_error = 2131165549;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07016E
|
// aapt resource value: 0x7F07016E
|
||||||
public const int mtrl_popupmenu_background = 2131165550;
|
public const int mtrl_navigation_bar_item_background = 2131165550;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07016F
|
// aapt resource value: 0x7F07016F
|
||||||
public const int mtrl_popupmenu_background_dark = 2131165551;
|
public const int mtrl_popupmenu_background = 2131165551;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070170
|
// aapt resource value: 0x7F070170
|
||||||
public const int mtrl_tabs_default_indicator = 2131165552;
|
public const int mtrl_popupmenu_background_dark = 2131165552;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070171
|
// aapt resource value: 0x7F070171
|
||||||
public const int navigation_empty_icon = 2131165553;
|
public const int mtrl_tabs_default_indicator = 2131165553;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070172
|
// aapt resource value: 0x7F070172
|
||||||
public const int notification_action_background = 2131165554;
|
public const int navigation_empty_icon = 2131165554;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070173
|
// aapt resource value: 0x7F070173
|
||||||
public const int notification_bg = 2131165555;
|
public const int notification_action_background = 2131165555;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070174
|
// aapt resource value: 0x7F070174
|
||||||
public const int notification_bg_low = 2131165556;
|
public const int notification_bg = 2131165556;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070175
|
// aapt resource value: 0x7F070175
|
||||||
public const int notification_bg_low_normal = 2131165557;
|
public const int notification_bg_low = 2131165557;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070176
|
// aapt resource value: 0x7F070176
|
||||||
public const int notification_bg_low_pressed = 2131165558;
|
public const int notification_bg_low_normal = 2131165558;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070177
|
// aapt resource value: 0x7F070177
|
||||||
public const int notification_bg_normal = 2131165559;
|
public const int notification_bg_low_pressed = 2131165559;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070178
|
// aapt resource value: 0x7F070178
|
||||||
public const int notification_bg_normal_pressed = 2131165560;
|
public const int notification_bg_normal = 2131165560;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070179
|
// aapt resource value: 0x7F070179
|
||||||
public const int notification_icon_background = 2131165561;
|
public const int notification_bg_normal_pressed = 2131165561;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07017A
|
// aapt resource value: 0x7F07017A
|
||||||
public const int notification_template_icon_bg = 2131165562;
|
public const int notification_icon_background = 2131165562;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07017B
|
// aapt resource value: 0x7F07017B
|
||||||
public const int notification_template_icon_low_bg = 2131165563;
|
public const int notification_template_icon_bg = 2131165563;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07017C
|
// aapt resource value: 0x7F07017C
|
||||||
public const int notification_tile_bg = 2131165564;
|
public const int notification_template_icon_low_bg = 2131165564;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07017D
|
// aapt resource value: 0x7F07017D
|
||||||
public const int notify_panel_notification_icon_bg = 2131165565;
|
public const int notification_tile_bg = 2131165565;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07017E
|
// aapt resource value: 0x7F07017E
|
||||||
public const int preference_list_divider_material = 2131165566;
|
public const int notify_panel_notification_icon_bg = 2131165566;
|
||||||
|
|
||||||
// aapt resource value: 0x7F07017F
|
// aapt resource value: 0x7F07017F
|
||||||
public const int sharee = 2131165567;
|
public const int preference_list_divider_material = 2131165567;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070180
|
// aapt resource value: 0x7F070180
|
||||||
public const int sharee_no_background = 2131165568;
|
public const int sharee = 2131165568;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070181
|
// aapt resource value: 0x7F070181
|
||||||
public const int test_custom_background = 2131165569;
|
public const int sharee_no_background = 2131165569;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070182
|
// aapt resource value: 0x7F070182
|
||||||
public const int test_level_drawable = 2131165570;
|
public const int test_custom_background = 2131165570;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070183
|
// aapt resource value: 0x7F070183
|
||||||
public const int tooltip_frame_dark = 2131165571;
|
public const int test_level_drawable = 2131165571;
|
||||||
|
|
||||||
// aapt resource value: 0x7F070184
|
// aapt resource value: 0x7F070184
|
||||||
public const int tooltip_frame_light = 2131165572;
|
public const int tooltip_frame_dark = 2131165572;
|
||||||
|
|
||||||
|
// aapt resource value: 0x7F070185
|
||||||
|
public const int tooltip_frame_light = 2131165573;
|
||||||
|
|
||||||
static Drawable()
|
static Drawable()
|
||||||
{
|
{
|
||||||
|
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
@ -55,8 +55,8 @@
|
||||||
<key>CFBundleDisplayName</key>
|
<key>CFBundleDisplayName</key>
|
||||||
<string>sharee.bike</string>
|
<string>sharee.bike</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>350</string>
|
<string>352</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>3.0.350</string>
|
<string>3.0.352</string>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "Location_Button.svg",
|
"filename" : "Location_Button.pdf",
|
||||||
"idiom" : "universal"
|
"idiom" : "universal"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
69
TINK/TINK.iOS/Media.xcassets/Location_Button.imageset/Location_Button.pdf
vendored
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
%PDF-1.5
|
||||||
|
%µí®û
|
||||||
|
4 0 obj
|
||||||
|
<< /Length 5 0 R
|
||||||
|
/Filter /FlateDecode
|
||||||
|
>>
|
||||||
|
stream
|
||||||
|
xœmPËN1¼û+æ0‰“<E280B0>Í !q( ©‡–¿<>³qئ<C398>Uì<55>±Ç<C2B1>x8ý®¼š(ìôHF=БGŒûp‹ë‡ý —v<¾ÉãNï'==kŽÃ+EÜã¿VìVaÉâÙIÀg–°7'ªð‘/† …ó¦4ÐÕ ÌM)T“<54>bÖjj´ýø3ý#vÓÃœö<C593>Ä)¥5Å-š2pàX¤¹ÊJj´%µXGºàÂ)$ø›så@½n¸It”®lÜVÖÕÑu„Ó¹rž·-y¹Á;ù <09>³dý=½ý’î‚íÄk\0ö?rG?nðxæ
|
||||||
|
endstream
|
||||||
|
endobj
|
||||||
|
5 0 obj
|
||||||
|
243
|
||||||
|
endobj
|
||||||
|
3 0 obj
|
||||||
|
<<
|
||||||
|
/ExtGState <<
|
||||||
|
/a0 << /CA 1 /ca 1 >>
|
||||||
|
>>
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
2 0 obj
|
||||||
|
<< /Type /Page % 1
|
||||||
|
/Parent 1 0 R
|
||||||
|
/MediaBox [ 0 0 42.000168 42.000027 ]
|
||||||
|
/Contents 4 0 R
|
||||||
|
/Group <<
|
||||||
|
/Type /Group
|
||||||
|
/S /Transparency
|
||||||
|
/I true
|
||||||
|
/CS /DeviceRGB
|
||||||
|
>>
|
||||||
|
/Resources 3 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
1 0 obj
|
||||||
|
<< /Type /Pages
|
||||||
|
/Kids [ 2 0 R ]
|
||||||
|
/Count 1
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
6 0 obj
|
||||||
|
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
||||||
|
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
||||||
|
/CreationDate (D:20221124081702+01'00)
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
7 0 obj
|
||||||
|
<< /Type /Catalog
|
||||||
|
/Pages 1 0 R
|
||||||
|
>>
|
||||||
|
endobj
|
||||||
|
xref
|
||||||
|
0 8
|
||||||
|
0000000000 65535 f
|
||||||
|
0000000659 00000 n
|
||||||
|
0000000429 00000 n
|
||||||
|
0000000357 00000 n
|
||||||
|
0000000015 00000 n
|
||||||
|
0000000335 00000 n
|
||||||
|
0000000724 00000 n
|
||||||
|
0000001007 00000 n
|
||||||
|
trailer
|
||||||
|
<< /Size 8
|
||||||
|
/Root 7 0 R
|
||||||
|
/Info 6 0 R
|
||||||
|
>>
|
||||||
|
startxref
|
||||||
|
1059
|
||||||
|
%%EOF
|
|
@ -5,12 +5,11 @@
|
||||||
/Filter /FlateDecode
|
/Filter /FlateDecode
|
||||||
>>
|
>>
|
||||||
stream
|
stream
|
||||||
xœÕ<EFBFBD>A
|
xœÕOIÂ0¼ûóLœfi_€„Ä¡pDPEH=|—¤UáÈŠ3£Ob<4F>ÑZ‰6‰lL¬cƒÔÓ@‚±ö¬ÏÝ“,»è<C2BB>ª/•¶zît<Á°Á…v Ÿ¬Ü5B<Ljš½qè‘™XöækáÈ8Á±kìäf[Õ4»GVÜ©°ì.3=ãô5J%uù”vûùí-é\…:ب Zñ¡Á£Ã?¯u¥–Þ<Q`3
|
||||||
1E÷9Å¿€1iÆNç‚àbt).dÄÁÅèÂë›jg@=<3D>
ýä“ßGª¯™ºTÊ!˜iDw¥<77>¹6KÌ‚þN‘%Ÿü^h·‡°àHÖ /Ö[a)ó„£®(Þ„õ#R\N©.ž0½ƒ<>·%3F'F–tá}Ñ&ÆùgÃ-ZòåÙbŠ¡ö¦ºˆ
n=þï3'jé Õ[ƒ
|
|
||||||
endstream
|
endstream
|
||||||
endobj
|
endobj
|
||||||
5 0 obj
|
5 0 obj
|
||||||
165
|
171
|
||||||
endobj
|
endobj
|
||||||
3 0 obj
|
3 0 obj
|
||||||
<<
|
<<
|
||||||
|
@ -22,7 +21,7 @@ endobj
|
||||||
2 0 obj
|
2 0 obj
|
||||||
<< /Type /Page % 1
|
<< /Type /Page % 1
|
||||||
/Parent 1 0 R
|
/Parent 1 0 R
|
||||||
/MediaBox [ 0 0 41.223316 41.223316 ]
|
/MediaBox [ 0 0 17.007875 17.007879 ]
|
||||||
/Contents 4 0 R
|
/Contents 4 0 R
|
||||||
/Group <<
|
/Group <<
|
||||||
/Type /Group
|
/Type /Group
|
||||||
|
@ -42,7 +41,7 @@ endobj
|
||||||
6 0 obj
|
6 0 obj
|
||||||
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
<< /Producer (cairo 1.17.4 (https://cairographics.org))
|
||||||
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
/Creator <FEFF0049006E006B0073006300610070006500200031002E0031002E00320020002800680074007400700073003A002F002F0069006E006B00730063006100700065002E006F007200670029>
|
||||||
/CreationDate (D:20221116092441+01'00)
|
/CreationDate (D:20221118084115+01'00)
|
||||||
>>
|
>>
|
||||||
endobj
|
endobj
|
||||||
7 0 obj
|
7 0 obj
|
||||||
|
@ -53,18 +52,18 @@ endobj
|
||||||
xref
|
xref
|
||||||
0 8
|
0 8
|
||||||
0000000000 65535 f
|
0000000000 65535 f
|
||||||
0000000581 00000 n
|
0000000587 00000 n
|
||||||
0000000351 00000 n
|
0000000357 00000 n
|
||||||
0000000279 00000 n
|
0000000285 00000 n
|
||||||
0000000015 00000 n
|
0000000015 00000 n
|
||||||
0000000257 00000 n
|
0000000263 00000 n
|
||||||
0000000646 00000 n
|
0000000652 00000 n
|
||||||
0000000929 00000 n
|
0000000935 00000 n
|
||||||
trailer
|
trailer
|
||||||
<< /Size 8
|
<< /Size 8
|
||||||
/Root 7 0 R
|
/Root 7 0 R
|
||||||
/Info 6 0 R
|
/Info 6 0 R
|
||||||
>>
|
>>
|
||||||
startxref
|
startxref
|
||||||
981
|
987
|
||||||
%%EOF
|
%%EOF
|
||||||
|
|
|
@ -383,7 +383,7 @@
|
||||||
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Contents.json">
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Contents.json">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Location_Button.svg">
|
<ImageAsset Include="Media.xcassets\Location_Button.imageset\Location_Button.pdf">
|
||||||
<Visible>false</Visible>
|
<Visible>false</Visible>
|
||||||
</ImageAsset>
|
</ImageAsset>
|
||||||
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\1024-1.png">
|
<ImageAsset Include="Media.xcassets\AppIcons.appiconset\1024-1.png">
|
||||||
|
|
|
@ -98,9 +98,11 @@
|
||||||
Command="{Binding OnCurrentLocationButtonClicked}"
|
Command="{Binding OnCurrentLocationButtonClicked}"
|
||||||
IsVisible="True"
|
IsVisible="True"
|
||||||
BackgroundColor="Transparent"
|
BackgroundColor="Transparent"
|
||||||
|
BorderWidth="1"
|
||||||
|
BorderColor="LightGray"
|
||||||
VerticalOptions="End"
|
VerticalOptions="End"
|
||||||
HorizontalOptions="End"
|
HorizontalOptions="Center"
|
||||||
Margin="0,0,11,100"
|
Margin="0,0,0,12"
|
||||||
Source="Location_Button.png"
|
Source="Location_Button.png"
|
||||||
WidthRequest="40"
|
WidthRequest="40"
|
||||||
HeightRequest="40"
|
HeightRequest="40"
|
||||||
|
|
|
@ -642,6 +642,16 @@ namespace TINK.Model
|
||||||
AppResources.ChangeLog_3_0_350_SB_MK,
|
AppResources.ChangeLog_3_0_350_SB_MK,
|
||||||
new List<AppFlavor> { AppFlavor.MeinKonrad, AppFlavor.ShareeBike }
|
new List<AppFlavor> { AppFlavor.MeinKonrad, AppFlavor.ShareeBike }
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
new Version(3, 0, 351),
|
||||||
|
AppResources.ChangeLog_MinorBugFixes,
|
||||||
|
new List<AppFlavor> { AppFlavor.MeinKonrad, AppFlavor.ShareeBike }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
new Version(3, 0, 352),
|
||||||
|
AppResources.ChangeLog_MinorDesignImprovements,
|
||||||
|
new List<AppFlavor> { AppFlavor.MeinKonrad, AppFlavor.ShareeBike }
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
/// <summary> Manges the whats new information.</summary>
|
/// <summary> Manges the whats new information.</summary>
|
||||||
|
|
|
@ -259,7 +259,7 @@ namespace TINK.MultilingualResources {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Closing lock....
|
/// Looks up a localized string similar to <h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string ActivityTextClosingLock {
|
public static string ActivityTextClosingLock {
|
||||||
get {
|
get {
|
||||||
|
@ -484,7 +484,7 @@ namespace TINK.MultilingualResources {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Opening lock....
|
/// Looks up a localized string similar to <h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string ActivityTextOpeningLock {
|
public static string ActivityTextOpeningLock {
|
||||||
get {
|
get {
|
||||||
|
|
|
@ -334,7 +334,7 @@ Freigabedialog öffen?</value>
|
||||||
<value>Einen Moment bitte...</value>
|
<value>Einen Moment bitte...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActivityTextOpeningLock" xml:space="preserve">
|
<data name="ActivityTextOpeningLock" xml:space="preserve">
|
||||||
<value>Öffne Schloss...</value>
|
<value><h4><b>Schloss öffnet.<br/>Bitte warten Sie, bis es komplett geöffnet ist.</b></h4></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActivityTextStartingUpdater" xml:space="preserve">
|
<data name="ActivityTextStartingUpdater" xml:space="preserve">
|
||||||
<value>Starte Aktualisierung...</value>
|
<value>Starte Aktualisierung...</value>
|
||||||
|
@ -355,7 +355,7 @@ Freigabedialog öffen?</value>
|
||||||
<value>Kein Netz beim Aktualisieren des Schlossstatusses.</value>
|
<value>Kein Netz beim Aktualisieren des Schlossstatusses.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActivityTextClosingLock" xml:space="preserve">
|
<data name="ActivityTextClosingLock" xml:space="preserve">
|
||||||
<value>Schließe Schloss...</value>
|
<value><h4><b>Schloss schließt.<br/>Bitte überprüfen Sie visuell, ob es komplett geschlossen ist.</b></h4></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeLog3_0_203" xml:space="preserve">
|
<data name="ChangeLog3_0_203" xml:space="preserve">
|
||||||
<value>Aktualisierrt auf aktuelle Schloss-Firmware.</value>
|
<value>Aktualisierrt auf aktuelle Schloss-Firmware.</value>
|
||||||
|
|
|
@ -439,7 +439,7 @@ Open sharing dialog?</value>
|
||||||
<value>One moment please...</value>
|
<value>One moment please...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActivityTextOpeningLock" xml:space="preserve">
|
<data name="ActivityTextOpeningLock" xml:space="preserve">
|
||||||
<value>Opening lock...</value>
|
<value><h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActivityTextStartingUpdater" xml:space="preserve">
|
<data name="ActivityTextStartingUpdater" xml:space="preserve">
|
||||||
<value>Updating...</value>
|
<value>Updating...</value>
|
||||||
|
@ -460,7 +460,7 @@ Open sharing dialog?</value>
|
||||||
<value>No web error on updating locking status.</value>
|
<value>No web error on updating locking status.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ActivityTextClosingLock" xml:space="preserve">
|
<data name="ActivityTextClosingLock" xml:space="preserve">
|
||||||
<value>Closing lock...</value>
|
<value><h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4></value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ChangeLog3_0_203" xml:space="preserve">
|
<data name="ChangeLog3_0_203" xml:space="preserve">
|
||||||
<value>Updated to latest lock firmware.</value>
|
<value>Updated to latest lock firmware.</value>
|
||||||
|
|
|
@ -441,8 +441,8 @@ Freigabedialog öffen?</target>
|
||||||
<target state="translated">Einen Moment bitte...</target>
|
<target state="translated">Einen Moment bitte...</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="ActivityTextOpeningLock" translate="yes" xml:space="preserve">
|
<trans-unit id="ActivityTextOpeningLock" translate="yes" xml:space="preserve">
|
||||||
<source>Opening lock...</source>
|
<source><bpt id="1"><h4></bpt><bpt id="2"><b></bpt>Lock is opening.<br/>Please wait until it is completely open.<ept id="2"></b></ept><ept id="1"></h4></ept></source>
|
||||||
<target state="translated">Öffne Schloss...</target>
|
<target state="translated"><bpt id="1"><h4></bpt><bpt id="2"><b></bpt>Schloss öffnet.<br/>Bitte warten Sie, bis es komplett geöffnet ist.<ept id="2"></b></ept><ept id="1"></h4></ept></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="ActivityTextStartingUpdater" translate="yes" xml:space="preserve">
|
<trans-unit id="ActivityTextStartingUpdater" translate="yes" xml:space="preserve">
|
||||||
<source>Updating...</source>
|
<source>Updating...</source>
|
||||||
|
@ -469,8 +469,8 @@ Freigabedialog öffen?</target>
|
||||||
<target state="translated">Kein Netz beim Aktualisieren des Schlossstatusses.</target>
|
<target state="translated">Kein Netz beim Aktualisieren des Schlossstatusses.</target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="ActivityTextClosingLock" translate="yes" xml:space="preserve">
|
<trans-unit id="ActivityTextClosingLock" translate="yes" xml:space="preserve">
|
||||||
<source>Closing lock...</source>
|
<source><bpt id="1"><h4></bpt><bpt id="2"><b></bpt>Lock is closing.<br/>Please visually check if it is completely closed.<ept id="2"></b></ept><ept id="1"></h4></ept></source>
|
||||||
<target state="translated">Schließe Schloss...</target>
|
<target state="translated"><bpt id="1"><h4></bpt><bpt id="2"><b></bpt>Schloss schließt.<br/>Bitte überprüfen Sie visuell, ob es komplett geschlossen ist.<ept id="2"></b></ept><ept id="1"></h4></ept></target>
|
||||||
</trans-unit>
|
</trans-unit>
|
||||||
<trans-unit id="ChangeLog3_0_203" translate="yes" xml:space="preserve">
|
<trans-unit id="ChangeLog3_0_203" translate="yes" xml:space="preserve">
|
||||||
<source>Updated to latest lock firmware.</source>
|
<source>Updated to latest lock firmware.</source>
|
||||||
|
|
|
@ -478,16 +478,16 @@ namespace TINK.ViewModel.Map
|
||||||
{
|
{
|
||||||
if (Pins.Count > 0 && Pins.Count != stations.Count)
|
if (Pins.Count > 0 && Pins.Count != stations.Count)
|
||||||
{
|
{
|
||||||
// Either
|
// Either
|
||||||
// - user logged in/ logged out which might lead to more/ less stations beeing available
|
// - user logged in/ logged out which might lead to more/ less stations beeing available
|
||||||
// - new stations were added/ existing ones remove
|
// - new stations were added/ existing ones remove
|
||||||
Pins.Clear();
|
Pins.Clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check if there are alreay any pins to the map
|
// Check if there are alreay any pins to the map
|
||||||
// i.e detecte first call of member OnAppearing after construction
|
// i.e detecte first call of member OnAppearing after construction
|
||||||
if (Pins.Count <= 0)
|
if (Pins.Count <= 0)
|
||||||
{
|
{
|
||||||
Log.ForContext<MapPageViewModel>().Debug($"{(ActiveFilterMap.GetGroup().Any() ? $"Active map filter is {string.Join(",", ActiveFilterMap.GetGroup())}." : "Map filter is off.")}");
|
Log.ForContext<MapPageViewModel>().Debug($"{(ActiveFilterMap.GetGroup().Any() ? $"Active map filter is {string.Join(",", ActiveFilterMap.GetGroup())}." : "Map filter is off.")}");
|
||||||
|
|
||||||
// Map was not yet initialized.
|
// Map was not yet initialized.
|
||||||
|
@ -598,7 +598,7 @@ namespace TINK.ViewModel.Map
|
||||||
{
|
{
|
||||||
// Start task which periodically updates pins.
|
// Start task which periodically updates pins.
|
||||||
return new PollingUpdateTaskManager(
|
return new PollingUpdateTaskManager(
|
||||||
() =>
|
async () =>
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -893,26 +893,148 @@ namespace TINK.ViewModel.Map
|
||||||
/// <summary> User request to center to currentLocation. </summary>
|
/// <summary> User request to center to currentLocation. </summary>
|
||||||
public async Task CenterToCurrentLocation()
|
public async Task CenterToCurrentLocation()
|
||||||
{
|
{
|
||||||
Location currentLocation = null;
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
currentLocation = await GeolocationService.GetAsync();
|
IsMapPageEnabled = false;
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Log.ForContext<MapPageViewModel>().Error("Getting location failed. {Exception}", ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (currentLocation != null)
|
Log.ForContext<MapPageViewModel>().Information($"Request to center to current position.");
|
||||||
{
|
|
||||||
TinkApp.UserMapSpan = MapSpan.FromCenterAndRadius(
|
|
||||||
new Xamarin.Forms.GoogleMaps.Position(currentLocation.Latitude, currentLocation.Longitude),
|
|
||||||
TinkApp.ActiveMapSpan.Radius);
|
|
||||||
|
|
||||||
|
// Stop polling.
|
||||||
|
//ActionText = AppResources.ActivityTextOneMomentPlease;
|
||||||
|
await m_oViewUpdateManager.StopUpdatePeridically();
|
||||||
|
|
||||||
|
// Clear error info.
|
||||||
|
Exception = null;
|
||||||
|
|
||||||
|
ActiveFilterMap = tinkKonradToggleViewModel.FilterDictionary;
|
||||||
|
TinkApp.GroupFilterMapPage = ActiveFilterMap;
|
||||||
TinkApp.Save();
|
TinkApp.Save();
|
||||||
}
|
|
||||||
|
|
||||||
MoveAndScale(m_oMoveToRegionDelegate, TinkApp.ActiveMapSpan);
|
TinkApp.UpdateConnector();
|
||||||
|
|
||||||
|
// Check location permission
|
||||||
|
//ActionText = AppResources.ActivityTextRequestingLocationPermissions;
|
||||||
|
|
||||||
|
var status = await PermissionsService.CheckStatusAsync();
|
||||||
|
if (!GeolocationService.IsSimulation
|
||||||
|
&& status != Status.Granted)
|
||||||
|
{
|
||||||
|
status = await PermissionsService.RequestAsync();
|
||||||
|
|
||||||
|
if (status != Status.Granted)
|
||||||
|
{
|
||||||
|
var dialogResult = await ViewService.DisplayAlert(
|
||||||
|
AppResources.MessageTitleHint,
|
||||||
|
AppResources.MessageCenterMapLocationPermissionOpenDialog,
|
||||||
|
AppResources.MessageAnswerYes,
|
||||||
|
AppResources.MessageAnswerNo);
|
||||||
|
if (dialogResult)
|
||||||
|
{
|
||||||
|
// User decided to give access to locations permissions.
|
||||||
|
PermissionsService.OpenAppSettings();
|
||||||
|
ActionText = "";
|
||||||
|
IsRunning = false;
|
||||||
|
IsMapPageEnabled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Do not use property .State to get bluetooth state due
|
||||||
|
// to issue https://hausource.visualstudio.com/TINK/_workitems/edit/116 /
|
||||||
|
// see https://github.com/xabre/xamarin-bluetooth-le/issues/112#issuecomment-380994887
|
||||||
|
if (await BluetoothService.GetBluetoothState() != Plugin.BLE.Abstractions.Contracts.BluetoothState.On)
|
||||||
|
{
|
||||||
|
await ViewService.DisplayAlert(
|
||||||
|
AppResources.MessageTitleHint,
|
||||||
|
AppResources.MessageBikesManagementBluetoothActivation,
|
||||||
|
AppResources.MessageAnswerOk);
|
||||||
|
ActionText = "";
|
||||||
|
IsRunning = false;
|
||||||
|
IsMapPageEnabled = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Move and scale before getting stations and bikes which takes some time.
|
||||||
|
Location currentLocation = null;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
currentLocation = await GeolocationService.GetAsync();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Log.ForContext<MapPageViewModel>().Error("Getting location failed. {Exception}", ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentLocation != null)
|
||||||
|
{
|
||||||
|
IsRunning = true;
|
||||||
|
ActionText = AppResources.ActivityTextCenterMap;
|
||||||
|
|
||||||
|
TinkApp.UserMapSpan = MapSpan.FromCenterAndRadius(
|
||||||
|
new Xamarin.Forms.GoogleMaps.Position(currentLocation.Latitude, currentLocation.Longitude),
|
||||||
|
TinkApp.ActiveMapSpan.Radius);
|
||||||
|
|
||||||
|
TinkApp.Save();
|
||||||
|
|
||||||
|
MoveAndScale(m_oMoveToRegionDelegate, TinkApp.ActiveMapSpan);
|
||||||
|
|
||||||
|
//Pins.Clear();
|
||||||
|
|
||||||
|
//// Update stations
|
||||||
|
//ActionText = AppResources.ActivityTextMapLoadingStationsAndBikes;
|
||||||
|
//IsConnected = TinkApp.GetIsConnected();
|
||||||
|
//var resultStationsAndBikes = await TinkApp.GetConnector(IsConnected).Query.GetBikesAndStationsAsync();
|
||||||
|
|
||||||
|
//// Set pins to their positions on map.
|
||||||
|
//InitializePins(resultStationsAndBikes.Response.StationsAll);
|
||||||
|
//Log.ForContext<MapPageViewModel>().Verbose("Update of pins done...");
|
||||||
|
|
||||||
|
//// Update pin colors.
|
||||||
|
//Log.ForContext<MapPageViewModel>().Verbose("Starting update pins color...");
|
||||||
|
//var l_oColors = GetStationColors(
|
||||||
|
// Pins.Select(x => x.Tag.ToString()).ToList(),
|
||||||
|
// resultStationsAndBikes.Response.Bikes);
|
||||||
|
|
||||||
|
//// Update pins color form count of bikes located at station.
|
||||||
|
//UpdatePinsColor(l_oColors);
|
||||||
|
|
||||||
|
//Log.ForContext<MapPageViewModel>().Verbose("Update pins color done.");
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Update bikes at station or my bikes depending on context.
|
||||||
|
await m_oViewUpdateManager.StartUpdateAyncPeridically(Polling);
|
||||||
|
}
|
||||||
|
catch (Exception)
|
||||||
|
{
|
||||||
|
// Excpetions are handled insde update task;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ActionText = AppResources.ActivityTextErrorQueryLocationWhenAny;
|
||||||
|
}
|
||||||
|
|
||||||
|
IsRunning = false;
|
||||||
|
IsMapPageEnabled = true;
|
||||||
|
Log.ForContext<MapPageViewModel>().Information($"Center to current Position done.");
|
||||||
|
ActionText = "";
|
||||||
|
}
|
||||||
|
catch (Exception l_oException)
|
||||||
|
{
|
||||||
|
Log.ForContext<MapPageViewModel>().Error("An error occurred while centering to current position.");
|
||||||
|
ActionText = "";
|
||||||
|
IsRunning = false;
|
||||||
|
|
||||||
|
await ViewService.DisplayAlert(
|
||||||
|
"Fehler",
|
||||||
|
AppResources.MessageMapPageErrorSwitch,
|
||||||
|
String.Format(AppResources.MessageMapPageErrorSwitch, l_oException.Message),
|
||||||
|
AppResources.MessageAnswerOk);
|
||||||
|
|
||||||
|
IsMapPageEnabled = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary> Command object to bind login button to view model.</summary>
|
/// <summary> Command object to bind login button to view model.</summary>
|
||||||
|
@ -980,7 +1102,7 @@ namespace TINK.ViewModel.Map
|
||||||
Pins.Clear();
|
Pins.Clear();
|
||||||
|
|
||||||
// Check location permission
|
// Check location permission
|
||||||
ActionText = AppResources.ActivityTextRequestingLocationPermissions;
|
//ActionText = AppResources.ActivityTextRequestingLocationPermissions;
|
||||||
|
|
||||||
var status = await PermissionsService.CheckStatusAsync();
|
var status = await PermissionsService.CheckStatusAsync();
|
||||||
if (TinkApp.CenterMapToCurrentLocation
|
if (TinkApp.CenterMapToCurrentLocation
|
||||||
|
@ -1024,10 +1146,10 @@ namespace TINK.ViewModel.Map
|
||||||
}
|
}
|
||||||
|
|
||||||
// Move and scale before getting stations and bikes which takes some time.
|
// Move and scale before getting stations and bikes which takes some time.
|
||||||
ActionText = AppResources.ActivityTextCenterMap;
|
|
||||||
|
|
||||||
if (TinkApp.CenterMapToCurrentLocation)
|
if (TinkApp.CenterMapToCurrentLocation)
|
||||||
{
|
{
|
||||||
|
//ActionText = AppResources.ActivityTextCenterMap;
|
||||||
|
|
||||||
Location currentLocation = null;
|
Location currentLocation = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -1045,12 +1167,12 @@ namespace TINK.ViewModel.Map
|
||||||
TinkApp.ActiveMapSpan.Radius);
|
TinkApp.ActiveMapSpan.Radius);
|
||||||
|
|
||||||
TinkApp.Save();
|
TinkApp.Save();
|
||||||
|
|
||||||
|
//MoveAndScale(m_oMoveToRegionDelegate, TinkApp.ActiveMapSpan);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update stations
|
// Update stations
|
||||||
MoveAndScale(m_oMoveToRegionDelegate, TinkApp.ActiveMapSpan);
|
|
||||||
|
|
||||||
ActionText = AppResources.ActivityTextMapLoadingStationsAndBikes;
|
ActionText = AppResources.ActivityTextMapLoadingStationsAndBikes;
|
||||||
IsConnected = TinkApp.GetIsConnected();
|
IsConnected = TinkApp.GetIsConnected();
|
||||||
var resultStationsAndBikes = await TinkApp.GetConnector(IsConnected).Query.GetBikesAndStationsAsync();
|
var resultStationsAndBikes = await TinkApp.GetConnector(IsConnected).Query.GetBikesAndStationsAsync();
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<Project Sdk="Microsoft.NET.Sdk">
|
<Project Sdk="Microsoft.NET.Sdk">
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
<TargetFramework>net5.0</TargetFramework>
|
||||||
|
|
||||||
<IsPackable>false</IsPackable>
|
<IsPackable>false</IsPackable>
|
||||||
|
|
||||||
|
|
|
@ -693,7 +693,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -755,7 +755,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Lock cannot be opened until bike is near.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Lock cannot be opened until bike is near.", "OK");
|
||||||
|
@ -815,7 +815,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Lock is blocked. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Lock is blocked. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
||||||
|
@ -876,7 +876,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "After try to open lock state closed is reported.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "After try to open lock state closed is reported.", "OK");
|
||||||
|
@ -936,7 +936,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be opened!", "Lock was blocked and might still be. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
viewService.DisplayAlert("Lock can not be opened!", "Lock was blocked and might still be. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
||||||
|
@ -996,7 +996,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Exception message.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Exception message.", "OK");
|
||||||
|
@ -1057,7 +1057,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -1121,7 +1121,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -1186,7 +1186,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -1251,7 +1251,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -1317,7 +1317,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
|
|
@ -154,7 +154,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Query location...";
|
bikesViewModel.ActionText = "Query location...";
|
||||||
bikesViewModel.ActionText = "Returning bike...";
|
bikesViewModel.ActionText = "Returning bike...";
|
||||||
|
@ -226,7 +226,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
bike.LockInfo.State = LockingState.UnknownDisconnected;
|
bike.LockInfo.State = LockingState.UnknownDisconnected;
|
||||||
|
@ -431,7 +431,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
bike.LockInfo.State = LockingState.UnknownDisconnected;
|
bike.LockInfo.State = LockingState.UnknownDisconnected;
|
||||||
|
@ -503,7 +503,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
bike.LockInfo.State = LockingState.Open;
|
bike.LockInfo.State = LockingState.Open;
|
||||||
|
@ -577,7 +577,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bike.LockInfo.State = LockingState.Open;
|
bike.LockInfo.State = LockingState.Open;
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
|
@ -648,7 +648,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Query location...";
|
bikesViewModel.ActionText = "Query location...";
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
|
@ -720,7 +720,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Query location...";
|
bikesViewModel.ActionText = "Query location...";
|
||||||
bikesViewModel.ActionText = "Returning bike...";
|
bikesViewModel.ActionText = "Returning bike...";
|
||||||
|
@ -797,7 +797,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Query location...";
|
bikesViewModel.ActionText = "Query location...";
|
||||||
bikesViewModel.ActionText = "Returning bike...";
|
bikesViewModel.ActionText = "Returning bike...";
|
||||||
|
@ -873,7 +873,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Query location...";
|
bikesViewModel.ActionText = "Query location...";
|
||||||
bikesViewModel.ActionText = "Returning bike...";
|
bikesViewModel.ActionText = "Returning bike...";
|
||||||
|
@ -949,7 +949,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Query location...";
|
bikesViewModel.ActionText = "Query location...";
|
||||||
bikesViewModel.ActionText = "Returning bike...";
|
bikesViewModel.ActionText = "Returning bike...";
|
||||||
|
@ -1023,7 +1023,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Starting bike return...";
|
bikesViewModel.ActionText = "Starting bike return...";
|
||||||
connector.Command.StartReturningBike(bike); // Notify about start
|
connector.Command.StartReturningBike(bike); // Notify about start
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Query location...";
|
bikesViewModel.ActionText = "Query location...";
|
||||||
bikesViewModel.ActionText = "Returning bike...";
|
bikesViewModel.ActionText = "Returning bike...";
|
||||||
|
@ -1084,7 +1084,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
@ -1144,7 +1144,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be closed!", "Lock cannot be closed until bike is near.", "OK");
|
viewService.DisplayAlert("Lock can not be closed!", "Lock cannot be closed until bike is near.", "OK");
|
||||||
|
@ -1204,7 +1204,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be closed!", "Exception message.", "OK");
|
viewService.DisplayAlert("Lock can not be closed!", "Exception message.", "OK");
|
||||||
|
@ -1265,7 +1265,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
@ -1327,7 +1327,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
@ -1390,7 +1390,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
|
|
@ -93,7 +93,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -155,7 +155,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Lock cannot be opened until bike is near.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Lock cannot be opened until bike is near.", "OK");
|
||||||
|
@ -215,7 +215,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Lock is blocked. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Lock is blocked. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
||||||
|
@ -275,7 +275,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "After try to open lock state closed is reported.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "After try to open lock state closed is reported.", "OK");
|
||||||
|
@ -335,7 +335,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be opened!", "Lock was blocked and might still be. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
viewService.DisplayAlert("Lock can not be opened!", "Lock was blocked and might still be. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
||||||
|
@ -395,7 +395,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Exception message.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Exception message.", "OK");
|
||||||
|
@ -456,7 +456,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -521,7 +521,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -586,7 +586,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -651,7 +651,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -717,7 +717,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -779,7 +779,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
@ -839,7 +839,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be closed!", "Lock cannot be closed until bike is near.", "OK");
|
viewService.DisplayAlert("Lock can not be closed!", "Lock cannot be closed until bike is near.", "OK");
|
||||||
|
@ -899,7 +899,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be closed!", "Exception message.", "OK");
|
viewService.DisplayAlert("Lock can not be closed!", "Exception message.", "OK");
|
||||||
|
@ -960,7 +960,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
@ -1022,7 +1022,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
@ -1085,7 +1085,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
|
|
@ -158,7 +158,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
|
|
@ -91,7 +91,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks[0].CloseAsync();
|
locks[0].CloseAsync();
|
||||||
bikesViewModel.ActionText = "Disconnecting lock...";
|
bikesViewModel.ActionText = "Disconnecting lock...";
|
||||||
locks.DisconnectAsync(Arg.Any<int>(), Arg.Any<Guid>());
|
locks.DisconnectAsync(Arg.Any<int>(), Arg.Any<Guid>());
|
||||||
|
@ -154,7 +154,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks[0].CloseAsync();
|
locks[0].CloseAsync();
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be closed!", "Lock cannot be closed until bike is near.", "OK");
|
viewService.DisplayAlert("Lock can not be closed!", "Lock cannot be closed until bike is near.", "OK");
|
||||||
|
@ -217,7 +217,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks[0].CloseAsync();
|
locks[0].CloseAsync();
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be closed!", "Exception message.", "OK");
|
viewService.DisplayAlert("Lock can not be closed!", "Exception message.", "OK");
|
||||||
|
|
|
@ -473,7 +473,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -680,7 +680,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Lock cannot be opened until bike is near.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Lock cannot be opened until bike is near.", "OK");
|
||||||
|
@ -747,7 +747,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Exception message.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Exception message.", "OK");
|
||||||
|
@ -813,7 +813,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "Updating...";
|
bikesViewModel.ActionText = "Updating...";
|
||||||
pollingManager.StartUpdateAyncPeridically(); // polling must be restarted again
|
pollingManager.StartUpdateAyncPeridically(); // polling must be restarted again
|
||||||
|
@ -879,7 +879,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -950,7 +950,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -1021,7 +1021,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -1092,7 +1092,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -1164,7 +1164,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
|
|
@ -423,7 +423,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
bikesViewModel.ActionText = "Renting bike...";
|
bikesViewModel.ActionText = "Renting bike...";
|
||||||
connector.Command.DoBook(bike); // Booking must be performed
|
connector.Command.DoBook(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be opened
|
locks.Received()[0].OpenAsync(); // Lock must be opened
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
|
|
@ -288,7 +288,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks[0].CloseAsync();
|
locks[0].CloseAsync();
|
||||||
bikesViewModel.ActionText = "Canceling reservation...";
|
bikesViewModel.ActionText = "Canceling reservation...";
|
||||||
connector.Command.DoCancelReservation(bike);
|
connector.Command.DoCancelReservation(bike);
|
||||||
|
@ -360,7 +360,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks[0].CloseAsync();
|
locks[0].CloseAsync();
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert(
|
viewService.DisplayAlert(
|
||||||
|
@ -434,7 +434,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks[0].CloseAsync();
|
locks[0].CloseAsync();
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert(
|
viewService.DisplayAlert(
|
||||||
|
@ -512,7 +512,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks[0].CloseAsync();
|
locks[0].CloseAsync();
|
||||||
bikesViewModel.ActionText = "Canceling reservation...";
|
bikesViewModel.ActionText = "Canceling reservation...";
|
||||||
connector.Command.DoCancelReservation(bike);
|
connector.Command.DoCancelReservation(bike);
|
||||||
|
@ -583,7 +583,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks[0].CloseAsync();
|
locks[0].CloseAsync();
|
||||||
bikesViewModel.ActionText = "Canceling reservation...";
|
bikesViewModel.ActionText = "Canceling reservation...";
|
||||||
connector.Command.DoCancelReservation(bike);
|
connector.Command.DoCancelReservation(bike);
|
||||||
|
@ -654,7 +654,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Bikes.Bike.BluetoothLock.Re
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks[0].CloseAsync();
|
locks[0].CloseAsync();
|
||||||
bikesViewModel.ActionText = "Canceling reservation...";
|
bikesViewModel.ActionText = "Canceling reservation...";
|
||||||
connector.Command.DoCancelReservation(bike);
|
connector.Command.DoCancelReservation(bike);
|
||||||
|
|
|
@ -95,7 +95,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -157,7 +157,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Lock cannot be opened until bike is near.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Lock cannot be opened until bike is near.", "OK");
|
||||||
|
@ -217,7 +217,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Lock is blocked. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Lock is blocked. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
||||||
|
@ -277,7 +277,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "After try to open lock state closed is reported.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "After try to open lock state closed is reported.", "OK");
|
||||||
|
@ -337,7 +337,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be opened!", "Lock was blocked and might still be. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
viewService.DisplayAlert("Lock can not be opened!", "Lock was blocked and might still be. Please ensure that no obstacle prevents lock from opening and try again.", "OK");
|
||||||
|
@ -397,7 +397,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Error while opening lock!", "Exception message.", "OK");
|
viewService.DisplayAlert("Error while opening lock!", "Exception message.", "OK");
|
||||||
|
@ -459,7 +459,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -524,7 +524,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -590,7 +590,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
locks.Received()[0].OpenAsync(); // Lock must be closed
|
locks.Received()[0].OpenAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Reading charging level...";
|
bikesViewModel.ActionText = "Reading charging level...";
|
||||||
locks[0].GetBatteryPercentageAsync();
|
locks[0].GetBatteryPercentageAsync();
|
||||||
|
@ -652,7 +652,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
@ -708,7 +708,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be closed!", "Lock cannot be closed until bike is near.", "OK");
|
viewService.DisplayAlert("Lock can not be closed!", "Lock cannot be closed until bike is near.", "OK");
|
||||||
|
@ -768,7 +768,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert("Lock can not be closed!", "Exception message.", "OK");
|
viewService.DisplayAlert("Lock can not be closed!", "Exception message.", "OK");
|
||||||
|
@ -830,7 +830,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
@ -892,7 +892,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
@ -955,7 +955,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.BluetoothLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Closing lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is closing.<br/>Please visually check if it is completely closed.</b></h4>";
|
||||||
locks.Received()[0].CloseAsync(); // Lock must be closed
|
locks.Received()[0].CloseAsync(); // Lock must be closed
|
||||||
bikesViewModel.ActionText = "Updating lock state...";
|
bikesViewModel.ActionText = "Updating lock state...";
|
||||||
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
connector.Command.UpdateLockingStateAsync(bike, Arg.Any<LocationDto>());
|
||||||
|
|
|
@ -57,7 +57,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.CopriLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAdvancedAlert(
|
viewService.DisplayAdvancedAlert(
|
||||||
|
@ -127,7 +127,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.CopriLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert(
|
viewService.DisplayAlert(
|
||||||
|
@ -194,7 +194,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.CopriLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Updating...";
|
bikesViewModel.ActionText = "Updating...";
|
||||||
pollingManager.StartUpdateAyncPeridically(); // polling must be restarted again
|
pollingManager.StartUpdateAyncPeridically(); // polling must be restarted again
|
||||||
|
|
|
@ -57,7 +57,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.CopriLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAdvancedAlert(
|
viewService.DisplayAdvancedAlert(
|
||||||
|
@ -127,7 +127,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.CopriLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "";
|
bikesViewModel.ActionText = "";
|
||||||
viewService.DisplayAlert(
|
viewService.DisplayAlert(
|
||||||
|
@ -194,7 +194,7 @@ namespace TestShareeLib.ViewModel.Bikes.Bike.CopriLock.RequestHandler
|
||||||
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
bikesViewModel.Received(1).IsIdle = false; // GUI must be locked
|
||||||
bikesViewModel.ActionText = "One moment please...";
|
bikesViewModel.ActionText = "One moment please...";
|
||||||
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
pollingManager.StopUpdatePeridically(); // Polling must be stopped before any COPR and lock service action
|
||||||
bikesViewModel.ActionText = "Opening lock...";
|
bikesViewModel.ActionText = "<h4><b>Lock is opening.<br/>Please wait until it is completely open.</b></h4>";
|
||||||
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
connector.Command.OpenLockAsync(bike); // Booking must be performed
|
||||||
bikesViewModel.ActionText = "Updating...";
|
bikesViewModel.ActionText = "Updating...";
|
||||||
pollingManager.StartUpdateAyncPeridically(); // polling must be restarted again
|
pollingManager.StartUpdateAyncPeridically(); // polling must be restarted again
|
||||||
|
|