using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace gehGassiApp.Core.Common { /// /// Hilfskonstanten für das Projekt /// public static class Constants { #region Navigation /// /// Gibt an ob bei einem Seitenwechsel dieser animiert stattfinden soll, oder nicht /// public static bool AnimateNavigation = false; #endregion #region DetailViews /// /// Maximale Höhe des Bildes in einer Sliding-View /// public static double SlidingMaxImageHeight = 400; /// /// Minimale Höhe des Bildes in einer Sliding-View /// public static double SlidingMinImageHeight = 0; #endregion #region Lists /// /// Wie viele Items sollen in Listen auf einmal geladen werden - Standard /// public const int ListPageSizeDefault = 20; /// /// Wie viele Items sollen in Listen auf einmal geladen werden - wenige Daten /// public const int ListPageSizeSmall = 10; /// /// Wie viele Items sollen in Listen auf einmal geladen werden - viele Daten /// public const int ListPageSizeBig = 50; #endregion #region Delays /// /// Delay für den loading-Screen, damit man das Logo des Sponsors sieht /// public static TimeSpan LoadingDelay = TimeSpan.FromSeconds(3); /// /// Delay für die Abfrage des Online-Status /// public static TimeSpan CheckOnlineTokenDelay = TimeSpan.FromSeconds(30); /// /// Delay für die Abfrage des Refreshtokens /// public static TimeSpan RefreshTokenDelay = TimeSpan.FromMinutes(2); /// /// 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. /// public static int AccessTokenExpiresModifier = 20; /// /// Delay für die Synchronisierung /// public static TimeSpan SyncDelay = TimeSpan.FromMinutes(2); /// /// Delay für die Systemnachrichten /// public static TimeSpan SystemMessageDelay = TimeSpan.FromMinutes(2); /// /// Delay für Prüfung SignalR /// public static TimeSpan SignalRDelay = TimeSpan.FromMinutes(1); /// /// Delay für das Prüfen ob der Server erreichbar ist. /// Je länger, desto weniger oft wird dies durchgeführt /// public static int OnlineCheckDelay = 15; /// /// Delay für die prüfung auf eine neue App-Version /// public static TimeSpan AppVersionDelay = TimeSpan.FromMinutes(60); #if ANDROID /// /// Delay für Animationen beim Laden einer Seite mit Listen /// public static TimeSpan AnimationDelayList = TimeSpan.FromMilliseconds(350); /// /// Delay für Animationen beim Laden einer Seite mit Details /// public static TimeSpan AnimationDelayDetails = TimeSpan.FromMilliseconds(350); #endif #if IOS /// /// Delay für Animationen beim Laden einer Seite mit Listen /// public static TimeSpan AnimationDelayList = TimeSpan.FromMilliseconds(50); /// /// Delay für Animationen beim Laden einer Seite mit Details /// public static TimeSpan AnimationDelayDetails = TimeSpan.FromMilliseconds(50); #endif #endregion #region Timeouts /// /// Timeout für die Prüfung ab online oder nicht /// public static TimeSpan IsConnectedTimeout = TimeSpan.FromSeconds(10); /// /// Timeout für das Anlegen von Daten /// public static TimeSpan CreateTimeout = TimeSpan.FromSeconds(30); /// /// Timeout für das abrufen von Listen /// public static TimeSpan ListTimeout = TimeSpan.FromSeconds(15); /// /// Timeout für das abrufen von Refreshtokens /// public static TimeSpan RefreshTokenTimeout = TimeSpan.FromSeconds(30); /// /// Timeout für das Abrufen von Bannern /// public static TimeSpan BannerTimeout = TimeSpan.FromSeconds(15); /// /// Timeout für die Prüfung ab online oder nicht /// public static TimeSpan PushPullTimeout = TimeSpan.FromSeconds(45); /// /// Timeout für die Abfrage von Echtzeit GPS-Daten /// public static TimeSpan GpsRealtimeTimout = TimeSpan.FromSeconds(5); /// /// Gibt an wie lange eine Location gecached bleiben soll /// public static TimeSpan LocationCacheTimeout = TimeSpan.FromSeconds(15); /// /// Session-Timeout für die MangoPay-Zahlungs-Session /// 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 /// /// Link zum AppStore für Android /// public const string StoreUrl_Android = "https://play.google.com/store/apps/details?id=com.gehgassi.gehgassi"; /// /// Link zum AppStore für IOS /// public const string StoreUrl_iOS = "https://apps.apple.com/at/app/gehgassi/id1662116305"; /// /// Wie lange soll die Anzeige, dass ein neues Update verfügbar ist in der Snackbar angezeigt werden? /// public static TimeSpan ShowUpdateAvailableDelay = TimeSpan.FromSeconds(20); #endregion #region Subscriptions /// /// Wie viele öffentliche Anfragen bein Hundebesitzer maximal ohne Abo erstellen kann /// public const int Subscription_Max_PublicWalkRequests = 3; /// /// Prefix für die Subscription-Codes für Hundebesitzer /// public const string Subscription_Owner_Prefix = "do_"; /// /// Code für die Subscription für Hundebesitzer - 1 Jahr /// public const string Subscription_Owner_Year = "do_oneyear"; /// /// Code für die Subscription für Hundebesitzer - 1 Monat /// public const string Subscription_Owner_Month = "do_onemonth"; #endregion } }