mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2025-06-22 13:57:28 +02:00
Version 3.0.375
This commit is contained in:
parent
2c790239cb
commit
ca080c87c0
194 changed files with 10092 additions and 10464 deletions
|
@ -1,153 +0,0 @@
|
|||
using System;
|
||||
using System.Collections.Generic;
|
||||
using TINK.View;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace TINK.ViewModel.Info.BikeInfo
|
||||
{
|
||||
public class BikeInfoViewModel
|
||||
{
|
||||
/// <summary>
|
||||
/// Reference on view service to show modal notifications and to perform navigation.
|
||||
/// </summary>
|
||||
private readonly IViewService m_oViewService;
|
||||
|
||||
|
||||
/// <param name="p_oViewService">Interface to actuate methods on GUI.</param>
|
||||
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>
|
||||
#if USEFLYOUT
|
||||
private Action CloseAction
|
||||
=> () => m_oViewService.ShowPage(ViewTypes.MapPage);
|
||||
#else
|
||||
private Action CloseAction
|
||||
=> async () => await m_oViewService.ShowPage("//MapPage");
|
||||
#endif
|
||||
}
|
||||
}
|
|
@ -1,79 +0,0 @@
|
|||
using System;
|
||||
using System.Windows.Input;
|
||||
using Xamarin.Forms;
|
||||
|
||||
namespace TINK.ViewModel.Info.BikeInfo
|
||||
{
|
||||
public class CourouselPageItemViewModel
|
||||
{
|
||||
public CourouselPageItemViewModel(
|
||||
string p_strTitle,
|
||||
string p_strLegend,
|
||||
int p_iCurrentPageIndex,
|
||||
Func<int> p_iPagesCountProvider,
|
||||
Action p_oCloseAction,
|
||||
ImageSource image = null)
|
||||
{
|
||||
Title = p_strTitle;
|
||||
IsImageVisble = image != null;
|
||||
if (IsImageVisble)
|
||||
{
|
||||
Image = image;
|
||||
}
|
||||
|
||||
DescriptionText = p_strLegend;
|
||||
CurrentPageIndex = p_iCurrentPageIndex;
|
||||
PagesCountProvider = p_iPagesCountProvider;
|
||||
CloseAction = p_oCloseAction;
|
||||
}
|
||||
|
||||
/// <summary> Gets the title of the navigation page. </summary>
|
||||
public string Title { get; }
|
||||
|
||||
public bool IsImageVisble { get; }
|
||||
|
||||
/// <summary> Gets the image. </summary>
|
||||
public ImageSource Image { get; }
|
||||
|
||||
/// <summary> Gets the text which describes the image. </summary>
|
||||
public string DescriptionText { get; }
|
||||
|
||||
/// <summary> Get the progress of the carousselling progress.</summary>
|
||||
public double ProgressValue
|
||||
{
|
||||
get
|
||||
{
|
||||
var l_oCount = PagesCountProvider();
|
||||
|
||||
return l_oCount > 0 ? (double)CurrentPageIndex / l_oCount : 0;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary> Gets if user can leave carousel page.</summary>
|
||||
public bool IsCloseVisible
|
||||
{
|
||||
get
|
||||
{
|
||||
return PagesCountProvider() == CurrentPageIndex;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary> Command object to bind close button to view model. </summary>
|
||||
public ICommand OnCloseRequest
|
||||
{
|
||||
get
|
||||
{
|
||||
return new Command(() => CloseAction());
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary> Returns one based index of the current page. </summary>
|
||||
private int CurrentPageIndex { get; }
|
||||
|
||||
/// <summary> Gets the count of carousel pages. </summary>
|
||||
private Func<int> PagesCountProvider { get; }
|
||||
|
||||
/// <summary> Action to actuate when close is invoked. </summary>
|
||||
private Action CloseAction { get; }
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue