2023-04-19 12:14:14 +02:00
using System ;
2021-05-13 20:03:07 +02:00
using System.Collections.Generic ;
using TINK.View ;
using Xamarin.Forms ;
namespace TINK.ViewModel.Info.BikeInfo
{
2022-09-06 16:08:19 +02:00
public class BikeInfoViewModel
{
/// <summary>
/// Reference on view service to show modal notifications and to perform navigation.
/// </summary>
private readonly IViewService m_oViewService ;
2023-04-19 12:14:14 +02:00
/// <param name="p_oViewService">Interface to actuate methods on GUI.</param>
2022-09-06 16:08:19 +02:00
public BikeInfoViewModel ( Func < string , ImageSource > imageSourceFunc , IViewService p_oViewService )
{
m_oViewService = p_oViewService
? ? throw new ArgumentException ( "Can not instantiate bike info page view model- object. No view available." ) ;
CarouselItems = new List < CourouselPageItemViewModel > ( ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Anleitung Benutzung Lastenräder" ,
$"Diese Anleitung wird einmalig nach der Anmeldung angezeigt.\r\nZum Blättern auf die nächste Seite bitte nach links wischen.\r\nNach Anzeige aller Seiten kann die Anleitung geschlossen werden." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Zweirädriges TINK Rad: Hochklappen des Fahrradständers (1/3)" ,
"So abgestellt hat das zweirädrige Transportrad einen sicheren Stand." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "trike_stand1_image.4HJ5PY_679_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Zweirädriges TINK Rad: Hochklappen des Fahrradständers (2/3)" ,
"Zum Weiterfahren das Transportrad nach vorne bewegen, bis kein Gewicht mehr auf dem Fahrradständer liegt." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "trike_stand2_image.RIX2PY_679_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Zweirädriges TINK Rad: Hochklappen des Fahrradständers (3/3)." ,
"Den Fahrradständer mit dem Fuß nach oben drücken, bis er hörbar am Magneten (Pfeil) einrastet. So fällt er unterwegs nicht herunter." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "trike_stand3_image.FDR7PY_679_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Dreirädriges TINK Rad: Lösen und Aktivieren der Feststellbremse (1/3)." ,
"Die Feststellbremse ist der graue Stift, der aus der Bremse herausragt. Ist sie aktiv, kann das Dreirad nicht wegrollen." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "trike_brake1_image.HZ17PY_678_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Dreirädriges TINK Rad: Lösen und Aktivieren der Feststellbremse (2/3)." ,
"Lösen der Feststellbremse: Die Bremse vollständig anziehen, bis der Stift wieder auf seine ursprüngliche Position herausspringt." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "trike_brake2_image.1YBAQY_679_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Dreirädriges TINK Rad: Lösen und Aktivieren der Feststellbremse (3/3)." ,
"Aktivieren der Feststellbremse: Die Bremse vollständig anziehen und den Stift hineindrücken." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "trike_brake3_image.FJM2PY_679_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Höhenregulierung des Sattels (1/3)." ,
"Hier im Bild ist der Hebel zum Einstellen des Sattels zu sehen." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "seat1_image.ZQ65PY_680_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Höhenregulierung des Sattels (2/3)." ,
"Durch Drücken des Hebels ist die Sattelhöhe frei verstellbar. Vergleichbar mit einem Bürostuhl bewegt sich der Sattel automatisch nach oben." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "seat2_image.QQZCQY_679_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Höhenregulierung des Sattels (3/3)." ,
"Durch kräftiges Herunterdrücken des Sattels (und gleichzeitigem Betätigen des Hebels) kann der Sattel nach unten verstellt werden. Tipp: Eventuell draufsetzen und dann den Hebel betätigen, um den Sattel nach unten zu drücken." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "seat3_image.NQ5FQY_679_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Verbinden des Kindergurts (1/3)." ,
"Der Gurt besteht aus drei Einzelteilen. Zunächst die oberen beiden Einzelstücke nehmen." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "belt1_image.4XWCQY_679_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Verbinden des Kindergurts (2/3)." ,
"Die beiden Einzelstücke zusammenfügen." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "belt2_image.X3F1PY_679_382.png" ) ) ) ;
CarouselItems . Add (
new CourouselPageItemViewModel (
"Verbinden des Kindergurts (3/3)." ,
"Das obere und untere Teilstück verbinden (bis zum Einrasten). Lösen der Teilstücke durch Drücken auf den roten Knopf." ,
CarouselItems . Count + 1 ,
( ) = > CarouselItems . Count ,
( ) = > CloseAction ( ) ,
imageSourceFunc ( "belt3_image.DYOXPY_679_382.png" ) ) ) ;
}
/// <summary> Gets the carousel page items</summary>
public IList < CourouselPageItemViewModel > CarouselItems { get ; }
/// <summary> Command object to bind close button to view model. </summary>
2021-08-28 10:04:10 +02:00
#if USEFLYOUT
2021-05-13 20:03:07 +02:00
private Action CloseAction
2021-06-26 20:57:55 +02:00
= > ( ) = > m_oViewService . ShowPage ( ViewTypes . MapPage ) ;
#else
2022-09-06 16:08:19 +02:00
private Action CloseAction
= > async ( ) = > await m_oViewService . ShowPage ( "//MapPage" ) ;
2021-06-26 20:57:55 +02:00
#endif
2022-09-06 16:08:19 +02:00
}
2021-05-13 20:03:07 +02:00
}