using System; using System.Collections.Generic; using TINK.View; using Xamarin.Forms; namespace TINK.ViewModel.Info.BikeInfo { public class BikeInfoViewModel { /// /// Reference on view service to show modal notifications and to perform navigation. /// private readonly IViewService m_oViewService; /// Interface to actuate methodes on GUI. public BikeInfoViewModel(Func 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(); 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"))); } /// Gets the carousel page items public IList CarouselItems { get; } /// Command object to bind close button to view model. #if USEFLYOUT private Action CloseAction => () => m_oViewService.ShowPage(ViewTypes.MapPage); #else private Action CloseAction => async () => await m_oViewService.ShowPage("//MapPage"); #endif } }