281 lines
9.1 KiB
C#
281 lines
9.1 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace gehGassiApp.Core.Common
|
|
{
|
|
/// <summary>
|
|
/// Hilfskonstanten für das Projekt
|
|
/// </summary>
|
|
public static class Constants
|
|
{
|
|
#region Navigation
|
|
|
|
/// <summary>
|
|
/// Gibt an ob bei einem Seitenwechsel dieser animiert stattfinden soll, oder nicht
|
|
/// </summary>
|
|
public static bool AnimateNavigation = false;
|
|
|
|
#endregion
|
|
|
|
#region DetailViews
|
|
|
|
/// <summary>
|
|
/// Maximale Höhe des Bildes in einer Sliding-View
|
|
/// </summary>
|
|
public static double SlidingMaxImageHeight = 400;
|
|
|
|
/// <summary>
|
|
/// Minimale Höhe des Bildes in einer Sliding-View
|
|
/// </summary>
|
|
public static double SlidingMinImageHeight = 0;
|
|
|
|
#endregion
|
|
|
|
#region Lists
|
|
|
|
/// <summary>
|
|
/// Wie viele Items sollen in Listen auf einmal geladen werden - Standard
|
|
/// </summary>
|
|
public const int ListPageSizeDefault = 20;
|
|
|
|
/// <summary>
|
|
/// Wie viele Items sollen in Listen auf einmal geladen werden - wenige Daten
|
|
/// </summary>
|
|
public const int ListPageSizeSmall = 10;
|
|
|
|
/// <summary>
|
|
/// Wie viele Items sollen in Listen auf einmal geladen werden - viele Daten
|
|
/// </summary>
|
|
public const int ListPageSizeBig = 50;
|
|
|
|
#endregion
|
|
|
|
#region Delays
|
|
|
|
/// <summary>
|
|
/// Delay für den loading-Screen, damit man das Logo des Sponsors sieht
|
|
/// </summary>
|
|
public static TimeSpan LoadingDelay = TimeSpan.FromSeconds(0);
|
|
|
|
/// <summary>
|
|
/// Delay für die Abfrage des Online-Status
|
|
/// </summary>
|
|
public static TimeSpan CheckOnlineTokenDelay = TimeSpan.FromSeconds(30);
|
|
|
|
/// <summary>
|
|
/// Delay für die Abfrage des Refreshtokens
|
|
/// </summary>
|
|
public static TimeSpan RefreshTokenDelay = TimeSpan.FromMinutes(2);
|
|
|
|
/// <summary>
|
|
/// Einstellung als Abzug für die Gültigkeit eines Accesstokens für dessen Prüfung in Minuten
|
|
/// Es wird geprüft ob die Gültiglkeit des Accesstokens Jetzt-Wert überschreitet.
|
|
/// Wenn ja, sollte ein neues geholt werden. Gilt ein AccessToken z.B. 60 Minuten, sollte bei 55 Minuten ein neues geholt werden.
|
|
/// </summary>
|
|
public static int AccessTokenExpiresModifier = 20;
|
|
|
|
/// <summary>
|
|
/// Delay für die Synchronisierung
|
|
/// </summary>
|
|
public static TimeSpan SyncDelay = TimeSpan.FromMinutes(2);
|
|
|
|
/// <summary>
|
|
/// Delay für die Systemnachrichten
|
|
/// </summary>
|
|
public static TimeSpan SystemMessageDelay = TimeSpan.FromMinutes(2);
|
|
|
|
/// <summary>
|
|
/// Delay für Prüfung SignalR
|
|
/// </summary>
|
|
public static TimeSpan SignalRDelay = TimeSpan.FromMinutes(1);
|
|
|
|
/// <summary>
|
|
/// Delay für das Prüfen ob der Server erreichbar ist.
|
|
/// Je länger, desto weniger oft wird dies durchgeführt
|
|
/// </summary>
|
|
public static int OnlineCheckDelay = 15;
|
|
|
|
/// <summary>
|
|
/// Delay für die prüfung auf eine neue App-Version
|
|
/// </summary>
|
|
public static TimeSpan AppVersionDelay = TimeSpan.FromMinutes(60);
|
|
|
|
#if ANDROID
|
|
/// <summary>
|
|
/// Delay für Animationen beim Laden einer Seite mit Listen
|
|
/// </summary>
|
|
public static TimeSpan AnimationDelayList = TimeSpan.FromMilliseconds(350);
|
|
|
|
/// <summary>
|
|
/// Delay für Animationen beim Laden einer Seite mit Details
|
|
/// </summary>
|
|
public static TimeSpan AnimationDelayDetails = TimeSpan.FromMilliseconds(350);
|
|
#endif
|
|
|
|
#if IOS
|
|
/// <summary>
|
|
/// Delay für Animationen beim Laden einer Seite mit Listen
|
|
/// </summary>
|
|
public static TimeSpan AnimationDelayList = TimeSpan.FromMilliseconds(50);
|
|
|
|
/// <summary>
|
|
/// Delay für Animationen beim Laden einer Seite mit Details
|
|
/// </summary>
|
|
public static TimeSpan AnimationDelayDetails = TimeSpan.FromMilliseconds(50);
|
|
#endif
|
|
|
|
#endregion
|
|
|
|
#region Timeouts
|
|
|
|
/// <summary>
|
|
/// Timeout für die Prüfung ab online oder nicht
|
|
/// </summary>
|
|
public static TimeSpan IsConnectedTimeout = TimeSpan.FromSeconds(10);
|
|
|
|
/// <summary>
|
|
/// Timeout für das Anlegen von Daten
|
|
/// </summary>
|
|
public static TimeSpan CreateTimeout = TimeSpan.FromSeconds(30);
|
|
|
|
/// <summary>
|
|
/// Timeout für das abrufen von Listen
|
|
/// </summary>
|
|
public static TimeSpan ListTimeout = TimeSpan.FromSeconds(15);
|
|
|
|
/// <summary>
|
|
/// Timeout für das abrufen von Refreshtokens
|
|
/// </summary>
|
|
public static TimeSpan RefreshTokenTimeout = TimeSpan.FromSeconds(30);
|
|
|
|
/// <summary>
|
|
/// Timeout für das Abrufen von Bannern
|
|
/// </summary>
|
|
public static TimeSpan BannerTimeout = TimeSpan.FromSeconds(15);
|
|
|
|
/// <summary>
|
|
/// Timeout für die Prüfung ab online oder nicht
|
|
/// </summary>
|
|
public static TimeSpan PushPullTimeout = TimeSpan.FromSeconds(45);
|
|
|
|
/// <summary>
|
|
/// Timeout für die Abfrage von Echtzeit GPS-Daten
|
|
/// </summary>
|
|
public static TimeSpan GpsRealtimeTimout = TimeSpan.FromSeconds(5);
|
|
|
|
/// <summary>
|
|
/// Gibt an wie lange eine Location gecached bleiben soll
|
|
/// </summary>
|
|
public static TimeSpan LocationCacheTimeout = TimeSpan.FromSeconds(15);
|
|
|
|
/// <summary>
|
|
/// Session-Timeout für die MangoPay-Zahlungs-Session
|
|
/// </summary>
|
|
public static TimeSpan MangoPaySessionTimeout = TimeSpan.FromMinutes(20);
|
|
|
|
#endregion
|
|
|
|
#region API Kommunikation
|
|
|
|
public const string HasHeader = "ggApp";
|
|
public const string HasHeaderValue = "{FCBF0361-E7C3-4267-A3F1-8FE1092B8696}";
|
|
|
|
#endregion
|
|
|
|
#region External Login
|
|
|
|
public const string ExternalAuth_CallbackUrl = "gehgassiapp://";
|
|
public const string ExternalAuth_Provider_Google = "Google";
|
|
public const string ExternalAuth_Provider_Apple = "Apple";
|
|
|
|
#endregion
|
|
|
|
#region Pushnotifications
|
|
|
|
public const string Pushnotifications_Channel_General = "gehgassihub";
|
|
public const string Pushnotifications_Channel_Important = "gehgassipush.important";
|
|
|
|
#endregion
|
|
|
|
#region Text-Seiten
|
|
|
|
public const string PageTerms = "TAC";
|
|
public const string PageFAQ = "FAQ";
|
|
public const string PageImprint = "IMPRINT";
|
|
public const string PagePrivacy = "PRIVACY";
|
|
public const string PagePublicRequestPrice = "PUBLICREQUESTPRICE";
|
|
public const string PageTermsMangoPay = "TACMANGO";
|
|
public const string PageCompetitionWalkerMonthly = "CWM";
|
|
public const string PageCompetitioOwnerYearly = "COY";
|
|
|
|
#endregion
|
|
|
|
#region Favoriten
|
|
|
|
public const string FavouriteCategory_Advertisement = "Advertisement";
|
|
public const string FavouriteCategory_Partner = "Listing";
|
|
public const string FavouriteCategory_Walker = "Walker";
|
|
public const string FavouriteCategory_Dog = "Dog";
|
|
|
|
#endregion
|
|
|
|
#region localPushNorifications
|
|
|
|
public const int LocalPush_Walk_ToStart = 1000;
|
|
|
|
public const int LocalPush_Walk_ToComplete = 2000;
|
|
|
|
public const int LocalPush_RemoveOutdated_Minutes = 1440;
|
|
public const int LocalPush_NotificationExists_Cancel_Minutes = 5;
|
|
public const int LocalPush_AddCompleteReminder_Cancel_Minutes = 5;
|
|
public const int LocalPush_AddCompleteReminder_Notify_Minutes = 60;
|
|
#endregion
|
|
|
|
#region AppVersion - Updates
|
|
|
|
/// <summary>
|
|
/// Link zum AppStore für Android
|
|
/// </summary>
|
|
public const string StoreUrl_Android = "https://play.google.com/store/apps/details?id=com.gehgassi.gehgassi";
|
|
|
|
/// <summary>
|
|
/// Link zum AppStore für IOS
|
|
/// </summary>
|
|
public const string StoreUrl_iOS = "https://apps.apple.com/at/app/gehgassi/id1662116305";
|
|
|
|
/// <summary>
|
|
/// Wie lange soll die Anzeige, dass ein neues Update verfügbar ist in der Snackbar angezeigt werden?
|
|
/// </summary>
|
|
public static TimeSpan ShowUpdateAvailableDelay = TimeSpan.FromSeconds(20);
|
|
|
|
#endregion
|
|
|
|
#region Subscriptions
|
|
|
|
/// <summary>
|
|
/// Wie viele öffentliche Anfragen bein Hundebesitzer maximal ohne Abo erstellen kann
|
|
/// </summary>
|
|
public const int Subscription_Max_PublicWalkRequests = 3;
|
|
|
|
/// <summary>
|
|
/// Prefix für die Subscription-Codes für Hundebesitzer
|
|
/// </summary>
|
|
public const string Subscription_Owner_Prefix = "do_";
|
|
|
|
/// <summary>
|
|
/// Code für die Subscription für Hundebesitzer - 1 Jahr
|
|
/// </summary>
|
|
public const string Subscription_Owner_Year = "do_oneyear";
|
|
|
|
/// <summary>
|
|
/// Code für die Subscription für Hundebesitzer - 1 Monat
|
|
/// </summary>
|
|
public const string Subscription_Owner_Month = "do_onemonth";
|
|
|
|
#endregion
|
|
}
|
|
}
|