diff --git a/Assets/Icon-set-users.svg b/Assets/Icon-set-users.svg new file mode 100644 index 00000000..0d51c712 --- /dev/null +++ b/Assets/Icon-set-users.svg @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + Openclipart + + + Users Icon Set + 2012-09-06T18:37:31 + Check others icons on my "Minimal Icon Set" collection.\nSet of six simple icons for user management, useful for applications and user interface design + https://openclipart.org/detail/172195/users-icon-set-by-mi_brami-172195 + + + mi_brami + + + + + User + b&w + black + grey + icon + icons + round + set + simple + transparent + users + white + + + + + + + + + + + \ No newline at end of file diff --git a/BookAStar/BookAStar.Droid/Assets/test.html b/BookAStar/BookAStar.Droid/Assets/test.html new file mode 100644 index 00000000..1a5fbf10 --- /dev/null +++ b/BookAStar/BookAStar.Droid/Assets/test.html @@ -0,0 +1,71 @@ + + + + + + + + + +

Title

+
+

Hello Estimate!

+
+
+ + + + + + + + + + + + diff --git a/BookAStar/BookAStar.Droid/BookAStar.Droid.csproj b/BookAStar/BookAStar.Droid/BookAStar.Droid.csproj index e2410b5b..063681b9 100644 --- a/BookAStar/BookAStar.Droid/BookAStar.Droid.csproj +++ b/BookAStar/BookAStar.Droid/BookAStar.Droid.csproj @@ -33,7 +33,7 @@ bin\Debug\ DEBUG;TRACE prompt - 4 + 0 True None False @@ -42,6 +42,10 @@ 1100m Xamarin False + + False + False + False pdbonly @@ -62,45 +66,103 @@ False False False + - - False - ..\..\packages\Xam.Plugin.DeviceInfo.1.0.0.2\lib\MonoAndroid10\DeviceInfo.Plugin.dll - - - False - ..\..\packages\Xam.Plugin.DeviceInfo.1.0.0.2\lib\MonoAndroid10\DeviceInfo.Plugin.Abstractions.dll + + ..\..\packages\ExifLib.PCL.1.0.1\lib\portable-net45+sl50+win+WindowsPhoneApp81+wp80+Xamarin.iOS10+MonoAndroid10+MonoTouch10\ExifLib.dll + True - ..\..\packages\Xamarin.Forms.2.3.0.107\lib\MonoAndroid10\FormsViewGroup.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\FormsViewGroup.dll True + + ..\..\Components\GoogleMediaFramework-1.0\lib\android\GoogleMediaFramework.dll + ..\..\packages\MarkdownDeep-av.NET.1.5.2\lib\MonoAndroid10\MarkdownDeep.dll True - - ..\..\packages\Xam.Plugin.Media.1.0.1\lib\MonoAndroid10\Media.Plugin.dll - True + + False + ..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v7.0\Mono.Android.dll - - ..\..\packages\Xam.Plugin.Media.1.0.1\lib\MonoAndroid10\Media.Plugin.Abstractions.dll - True + + False + ..\..\..\..\..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\MonoAndroid\v7.0\Mono.Android.Export.dll - ..\..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll True - - ..\..\packages\Xam.Plugins.Settings.2.1.0\lib\MonoAndroid10\Plugin.Settings.dll + + ..\..\packages\Xam.Plugin.Connectivity.2.2.12\lib\MonoAndroid10\Plugin.Connectivity.dll + True + + + ..\..\packages\Xam.Plugin.Connectivity.2.2.12\lib\MonoAndroid10\Plugin.Connectivity.Abstractions.dll + True + + + ..\..\packages\Plugin.CurrentActivity.1.0.1\lib\MonoAndroid10\Plugin.CurrentActivity.dll + True + + + ..\..\packages\Xam.Plugin.DeviceInfo.2.0.2\lib\MonoAndroid10\Plugin.DeviceInfo.dll + True + + + ..\..\packages\Xam.Plugin.DeviceInfo.2.0.2\lib\MonoAndroid10\Plugin.DeviceInfo.Abstractions.dll + True + + + ..\..\packages\Xam.Plugin.Geolocator.3.0.4\lib\MonoAndroid10\Plugin.Geolocator.dll True - - ..\..\packages\Xam.Plugins.Settings.2.1.0\lib\MonoAndroid10\Plugin.Settings.Abstractions.dll + + ..\..\packages\Xam.Plugin.Geolocator.3.0.4\lib\MonoAndroid10\Plugin.Geolocator.Abstractions.dll + True + + + ..\..\packages\Xam.Plugin.Media.2.3.0\lib\MonoAndroid10\Plugin.Media.dll + True + + + ..\..\packages\Xam.Plugin.Media.2.3.0\lib\MonoAndroid10\Plugin.Media.Abstractions.dll + True + + + ..\..\packages\Plugin.Permissions.1.1.7\lib\MonoAndroid10\Plugin.Permissions.dll + True + + + ..\..\packages\Plugin.Permissions.1.1.7\lib\MonoAndroid10\Plugin.Permissions.Abstractions.dll + True + + + ..\..\packages\Xam.Plugins.Settings.2.5.1.0\lib\MonoAndroid10\Plugin.Settings.dll + True + + + ..\..\packages\Xam.Plugins.Settings.2.5.1.0\lib\MonoAndroid10\Plugin.Settings.Abstractions.dll + True + + + ..\..\packages\Xamarin.Controls.SignaturePad.1.4.0\lib\MonoAndroid\SignaturePad.dll + True + + + ..\..\packages\SQLite.Net.Core-PCL.3.1.1\lib\portable-win8+net45+wp8+wpa81+MonoAndroid1+MonoTouch1\SQLite.Net.dll + + + ..\..\packages\SQLite.Net.Async-PCL.3.1.1\lib\portable-win8+net45+wp8+wpa81+MonoAndroid1+MonoTouch1\SQLite.Net.Async.dll + True + + + ..\..\packages\SQLite.Net.Platform.XamarinAndroid.2.5.1\lib\MonoAndroid\SQLite.Net.Platform.XamarinAndroid.dll True @@ -149,46 +211,103 @@ ..\..\Components\xamarin.auth-1.2.3.1\lib\android\Xamarin.Auth.Android.dll - ..\..\packages\Xamarin.Forms.2.3.0.107\lib\MonoAndroid10\Xamarin.Forms.Core.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Core.dll True - False - ..\..\packages\Xamarin.Forms.Maps.2.3.0.107\lib\MonoAndroid10\Xamarin.Forms.Maps.dll + ..\..\packages\Xamarin.Forms.Maps.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Maps.dll + True - - ..\..\packages\Xamarin.Forms.Maps.2.3.0.107\lib\MonoAndroid10\Xamarin.Forms.Maps.Android.dll + + ..\..\packages\Xamarin.Forms.Maps.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Maps.Android.dll + True - ..\..\packages\Xamarin.Forms.2.3.0.107\lib\MonoAndroid10\Xamarin.Forms.Platform.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Platform.dll True - ..\..\packages\Xamarin.Forms.2.3.0.107\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Platform.Android.dll True - ..\..\packages\Xamarin.Forms.2.3.0.107\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\MonoAndroid10\Xamarin.Forms.Xaml.dll + True + + + ..\..\packages\Xamarin.GooglePlayServices.Ads.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.Ads.dll + True + + + ..\..\packages\Xamarin.GooglePlayServices.Analytics.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.Analytics.dll True - ..\..\packages\Xamarin.GooglePlayServices.Base.29.0.0.2\lib\MonoAndroid41\Xamarin.GooglePlayServices.Base.dll + ..\..\packages\Xamarin.GooglePlayServices.Base.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.Base.dll True - ..\..\packages\Xamarin.GooglePlayServices.Basement.29.0.0.2\lib\MonoAndroid41\Xamarin.GooglePlayServices.Basement.dll + ..\..\packages\Xamarin.GooglePlayServices.Basement.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.Basement.dll True - ..\..\packages\Xamarin.GooglePlayServices.Gcm.29.0.0.2\lib\MonoAndroid41\Xamarin.GooglePlayServices.Gcm.dll + ..\..\packages\Xamarin.GooglePlayServices.Gcm.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.Gcm.dll True - ..\..\packages\Xamarin.GooglePlayServices.Maps.29.0.0.2\lib\MonoAndroid41\Xamarin.GooglePlayServices.Maps.dll + ..\..\packages\Xamarin.GooglePlayServices.Maps.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.Maps.dll True - ..\..\packages\Xamarin.GooglePlayServices.Measurement.29.0.0.2\lib\MonoAndroid41\Xamarin.GooglePlayServices.Measurement.dll + ..\..\packages\Xamarin.GooglePlayServices.Measurement.29.0.0.1\lib\MonoAndroid41\Xamarin.GooglePlayServices.Measurement.dll + True + + + ..\..\packages\XLabs.Caching.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Caching.dll + True + + + ..\..\packages\XLabs.Caching.SQLite.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Caching.Sqlite.dll + True + + + ..\..\packages\XLabs.Core.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Core.dll + True + + + ..\..\packages\XLabs.Forms.2.3.0-pre02\lib\monoandroid\XLabs.Forms.dll + True + + + ..\..\packages\XLabs.Forms.2.3.0-pre02\lib\monoandroid\XLabs.Forms.Droid.dll + True + + + ..\..\packages\XLabs.IoC.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.IOC.dll + True + + + ..\..\packages\XLabs.Platform.2.3.0-pre02\lib\MonoAndroid\XLabs.Platform.dll + True + + + ..\..\packages\XLabs.Platform.2.3.0-pre02\lib\MonoAndroid\XLabs.Platform.Droid.dll + True + + + ..\..\packages\XLabs.Serialization.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Serialization.dll + True + + + ..\..\packages\XLabs.Serialization.JSON.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Serialization.Json.NET.dll + True + + + ..\..\packages\XLabs.Settings.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Settings.dll + True + + + ..\..\packages\XLabs.Settings.XamSettings.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Settings.XamSettings.dll True @@ -203,6 +322,7 @@ True MarkdownEditor.cshtml + @@ -211,19 +331,26 @@ + Designer + RazorTemplatePreprocessor MarkdownEditor.cs None - + + Designer + + + Designer + @@ -234,7 +361,9 @@ - + + Designer + @@ -247,6 +376,10 @@ + + False + 1.0.3 + False 1.0.0.2 @@ -255,6 +388,14 @@ False 1.0.3 + + False + 1.0 + + + False + 22.0.0.0 + False 7.0.1 @@ -267,6 +408,18 @@ False 1.5.2 + + False + 1.4.0.0 + + + False + 21.0.3.0 + + + False + 23.1.1.1 + False 1.2.3.1 @@ -288,9 +441,9 @@ - - - + + Designer + @@ -301,6 +454,7 @@ + @@ -312,13 +466,11 @@ Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}. - - + - - + + + diff --git a/BookAStar/BookAStar.Droid/Services/GcmListenerService.cs b/BookAStar/BookAStar.Droid/Services/GcmListenerService.cs index 9dc7f15a..148fbdd5 100644 --- a/BookAStar/BookAStar.Droid/Services/GcmListenerService.cs +++ b/BookAStar/BookAStar.Droid/Services/GcmListenerService.cs @@ -43,7 +43,7 @@ namespace BookAStar.Droid.Services var topic = data.GetString("Topic"); if (topic == "BookQuery") { - DateTime eventdate,enddate; + DateTime eventdate; var sdatestr = data.GetString("EventDate"); DateTime.TryParse(sdatestr, out eventdate); diff --git a/BookAStar/BookAStar.Droid/app.config b/BookAStar/BookAStar.Droid/app.config index 5ff34869..c8df8462 100644 --- a/BookAStar/BookAStar.Droid/app.config +++ b/BookAStar/BookAStar.Droid/app.config @@ -2,6 +2,10 @@ + + + + @@ -30,6 +34,10 @@ + + + + diff --git a/BookAStar/BookAStar.Droid/google-services.json b/BookAStar/BookAStar.Droid/google-services.json new file mode 100644 index 00000000..a6bd9aad --- /dev/null +++ b/BookAStar/BookAStar.Droid/google-services.json @@ -0,0 +1,78 @@ +{ + "project_info": { + "project_number": "325408689282", + "project_id": "yavsc-001" + }, + "client": [ + { + "client_info": { + "android_client_info": { + "package_name": "fr.pschneider.android.wearable.speedtracker" + } + }, + "oauth_client": [ + { + "client_id": "325408689282-6bekh7p3guj4k0f3301a6frf025cnrk1.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBCAE_pc6lrxLf8_Vyho0KSxLsqjxecPFk" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 1 + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:325408689282:android:50a2328516f10af3", + "android_client_info": { + "package_name": "fr.pschneider.bas" + } + }, + "oauth_client": [ + { + "client_id": "325408689282-emdeucmt5pr9jg7170t0q9gnndacsqqf.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "fr.pschneider.bas", + "certificate_hash": "E97A345457861B8E2E7BA79BB814BB1ACC0471A6" + } + }, + { + "client_id": "325408689282-6bekh7p3guj4k0f3301a6frf025cnrk1.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyBCAE_pc6lrxLf8_Vyho0KSxLsqjxecPFk" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 1 + } + } + } + ], + "configuration_version": "1" +} \ No newline at end of file diff --git a/BookAStar/BookAStar.Droid/packages.config b/BookAStar/BookAStar.Droid/packages.config index 3c8a0a89..a196ada6 100644 --- a/BookAStar/BookAStar.Droid/packages.config +++ b/BookAStar/BookAStar.Droid/packages.config @@ -1,12 +1,19 @@  + - - - - - + + + + + + + + + + + @@ -15,11 +22,24 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BookAStar/BookAStar.iOS/AppDelegate.cs b/BookAStar/BookAStar.iOS/AppDelegate.cs index 78b47126..dbcd76b8 100644 --- a/BookAStar/BookAStar.iOS/AppDelegate.cs +++ b/BookAStar/BookAStar.iOS/AppDelegate.cs @@ -4,6 +4,9 @@ using System.Linq; using Foundation; using UIKit; +using BookAStar; +using BookAStar.Interfaces; +using Yavsc.Models.Identity; namespace App2.iOS { @@ -11,8 +14,27 @@ namespace App2.iOS // User Interface of the application, as well as listening (and optionally responding) to // application events from iOS. [Register("AppDelegate")] - public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate + public partial class AppDelegate : global::Xamarin.Forms.Platform.iOS.FormsApplicationDelegate, + IPlatform { + public string GCMStatusMessage + { + get + { + throw new NotImplementedException(); + } + } + + public void AddAccount() + { + throw new NotImplementedException(); + } + + public bool EnablePushNotifications(bool enable) + { + throw new NotImplementedException(); + } + // // This method is invoked when the application has loaded and is ready to run. In this // method you should instantiate the window, load the UI into it and then make the window @@ -23,9 +45,34 @@ namespace App2.iOS public override bool FinishedLaunching(UIApplication app, NSDictionary options) { global::Xamarin.Forms.Forms.Init(); - LoadApplication(new App()); + LoadApplication(new App(this)); return base.FinishedLaunching(app, options); } + + public IGCMDeclaration GetDeviceInfo() + { + throw new NotImplementedException(); + } + + public object InvokeApi(string method, object arg) + { + throw new NotImplementedException(); + } + + public TAnswer InvokeApi(string method, object arg) + { + throw new NotImplementedException(); + } + + public void OpenWeb(string Uri) + { + throw new NotImplementedException(); + } + + public void RevokeAccount(string userName) + { + throw new NotImplementedException(); + } } } diff --git a/BookAStar/BookAStar.iOS/BookAStar.iOS.csproj b/BookAStar/BookAStar.iOS/BookAStar.iOS.csproj index 1c69864b..59e07669 100644 --- a/BookAStar/BookAStar.iOS/BookAStar.iOS.csproj +++ b/BookAStar/BookAStar.iOS/BookAStar.iOS.csproj @@ -26,6 +26,7 @@ i386, x86_64 None true + none @@ -36,6 +37,7 @@ None i386, x86_64 false + true @@ -50,6 +52,7 @@ iPhone Developer true Entitlements.plist + none @@ -61,6 +64,7 @@ false iPhone Developer Entitlements.plist + none @@ -74,6 +78,7 @@ Automatic:AdHoc iPhone Distribution Entitlements.plist + none @@ -86,6 +91,13 @@ Automatic:AppStore iPhone Distribution Entitlements.plist + + + + + + + @@ -121,35 +133,59 @@ - ..\..\packages\Xamarin.Forms.2.0.0.6482\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Core.dll + True + + + ..\..\packages\Xamarin.Forms.Maps.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Maps.dll + True + + + ..\..\packages\Xamarin.Forms.Maps.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Maps.iOS.dll True - ..\..\packages\Xamarin.Forms.2.0.0.6482\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Platform.dll True - ..\..\packages\Xamarin.Forms.2.0.0.6482\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Platform.iOS.dll True - ..\..\packages\Xamarin.Forms.2.0.0.6482\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\Xamarin.iOS10\Xamarin.Forms.Xaml.dll True + + ..\..\packages\XLabs.Caching.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Caching.dll + True + + + ..\..\packages\XLabs.Serialization.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Serialization.dll + True + + + ..\..\packages\XLabs.Settings.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Settings.dll + True + + + {67F9D3A8-F71E-4428-913F-C37AE82CDB24} + Yavsc.Client + {A0815650-0A0A-47B0-8826-771F0E1AD137} BookAStar - + Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}. - + \ No newline at end of file diff --git a/BookAStar/BookAStar.iOS/app.config b/BookAStar/BookAStar.iOS/app.config index 8460dd43..bb76392c 100644 --- a/BookAStar/BookAStar.iOS/app.config +++ b/BookAStar/BookAStar.iOS/app.config @@ -6,6 +6,10 @@ + + + + \ No newline at end of file diff --git a/BookAStar/BookAStar.iOS/packages.config b/BookAStar/BookAStar.iOS/packages.config index c044abf8..fa5dcff1 100644 --- a/BookAStar/BookAStar.iOS/packages.config +++ b/BookAStar/BookAStar.iOS/packages.config @@ -1,4 +1,8 @@  - + + + + + \ No newline at end of file diff --git a/BookAStar/BookAStar/App.xaml b/BookAStar/BookAStar/App.xaml index a92e358b..8b32a8c3 100644 --- a/BookAStar/BookAStar/App.xaml +++ b/BookAStar/BookAStar/App.xaml @@ -1,31 +1,73 @@  + x:Class="BookAStar.App" + xmlns:sys="clr-namespace:System;assembly=mscorlib"> + + + + #30FAFAFA + #ffffff + #000000 + Black + Blue + #5050ff + - - - - - #30FAFAFA - #FF103010 - #FF303010 - + + - + + + + + + - - + + - \ No newline at end of file diff --git a/BookAStar/BookAStar/App.xaml.cs b/BookAStar/BookAStar/App.xaml.cs index 15f18aad..e5e319b7 100644 --- a/BookAStar/BookAStar/App.xaml.cs +++ b/BookAStar/BookAStar/App.xaml.cs @@ -1,15 +1,19 @@ -using BookAStar.Model; -using BookAStar.Model.Auth.Account; +using BookAStar.Interfaces; +using BookAStar.Model; using BookAStar.Pages; +using BookAStar.ViewModels; using System; -using System.Diagnostics; -using System.Net; -using System.Net.Http; -using System.Net.Http.Headers; -using System.Text; -using System.Threading.Tasks; using Xamarin.Forms; -using Xamarin.Forms.Xaml; +using XLabs.Forms.Mvvm; +using XLabs.Forms.Pages; +using XLabs.Forms.Services; +using XLabs.Ioc; +using XLabs.Platform.Mvvm; +using XLabs.Platform.Services; +using XLabs.Settings; +using XLabs; +using XLabs.Enums; + /* Glyphish icons from http://www.glyphish.com/ @@ -22,118 +26,218 @@ namespace BookAStar { public partial class App : Application // superclass new in 1.3 { - SearchPage searchPage; - NavigationPage mp; - SettingsPage settingsPage; - PinPage pinPage; - ContentPage deviceInfoPage; - BookQueryPage bookQueryPage; - BookQueriesPage bookQueriesPage; - public static IPlatform PlateformSpecificInstance { get; set; } + public static IPlatform PlatformSpecificInstance { get; set; } public static string AppName { get; set; } + + + // Exists in order to dispose of a static instance strongly typed + // TODO : replace all references to this field + // by Views resolution, and then, drop it public static App CurrentApp { get { return Current as App; } } - public DataManager DataManager { get; set; } + public static bool MasterPresented + { + get + { return CurrentApp.masterDetail.IsPresented; } + internal set + { CurrentApp.masterDetail.IsPresented = value; } + } - public App(IPlatform instance) + public void Init() { - DataManager = new DataManager(); - deviceInfoPage = new DeviceInfoPage(instance.GetDeviceInfo()); - bookQueriesPage = new BookQueriesPage(); + var app = Resolver.Resolve(); - PlateformSpecificInstance = instance; - searchPage = new SearchPage - { - Title = "Trouvez votre artiste", - Icon = "glyphish_07_map_marker.png" - }; - mp = new NavigationPage(searchPage); - settingsPage = new SettingsPage + if (app == null) { - Title = "Settings", - Icon = "ic_corp_icon.png" - }; + return; + } + Configure(app); + app.Closing += OnClosing; + app.Error += OnError; + app.Initialize += OnInitialize; + app.Resumed += OnAppResumed; + app.Rotation += OnRotation; + app.Startup += OnStartup; + app.Suspended += OnSuspended; + } - var r = this.Resources; - //var hasLabelStyle = r.ContainsKey("labelStyle"); + // omg + private void OnError(object sender, EventArgs e) + { + + } + + // Called on rotation after OnSuspended + private void OnClosing(object sender, EventArgs e) + { + + } - // var stid = this.StyleId; - // null var appsstyle = settingsPage.Style; - // appsstyle.CanCascade = true; - MainPage = mp; - ToolbarItem tiSetts = new ToolbarItem() - { - Text = "Settings", - Icon = "ic_corp_icon.png" - }; - mp.ToolbarItems.Add(tiSetts); - tiSetts.Clicked += (object sender, EventArgs e) => - { - if (settingsPage.Parent == null) - mp.Navigation.PushAsync(settingsPage); - else - { - settingsPage.Focus(); - } - }; - ToolbarItem tiQueries = new ToolbarItem + // FIXME Not called + private void OnInitialize(object sender, EventArgs e) + { + + } + + // called on app startup, not on rotation + private void OnStartup(object sender, EventArgs e) + { + // TODO special starup pages as + // notification details or wizard setup page + } + + // Called on rotation + private void OnSuspended(object sender, EventArgs e) + { + // TODO the navigation stack persistence (save) + } + + // called on app startup, after OnStartup, not on rotation + private void OnAppResumed(object sender, EventArgs e) + { + // TODO the navigation stack persistence (restore) + base.OnResume(); + } + + // FIXME Not called ... see OnSuspended + private void OnRotation(object sender, EventArgs e) + { + // TODO the navigation stack persistence (restore?) + } + + public static GenericConfigSettingsMgr ConfigManager { protected set; get; } + + private void Configure(IXFormsApp app) + { + ViewFactory.EnableCache = true; + ViewFactory.Register( + resolver => new DashboardViewModel()); + ViewFactory.Register(); + ViewFactory.Register(); + ViewFactory.Register(); + ViewFactory.Register(); + ConfigManager = new XLabs.Settings.GenericConfigSettingsMgr(s => + MainSettings.AppSettings.GetValueOrDefault(s, MainSettings.SettingsDefault), null); + + } + + ExtendedMasterDetailPage masterDetail; + + public App(IPlatform instance) + { + // This declaration became obsolete by introduction + // of the XLabs App that + // refers this instance with + // its application context property + // and is obtained using the `Resolver` + PlatformSpecificInstance = instance; + // Xaml + InitializeComponent(); + // Static properties construction + Init(); + // Builds the Main page + BuildMainPage(); + + } + + BookQueriesPage bQueriesPage; + AccountChooserPage accChooserPage; + HomePage home; + + private void BuildMainPage() + { + accChooserPage = new AccountChooserPage(); + + bQueriesPage = new BookQueriesPage { - Text = "Demandes" + Title = "Demandes", + Icon = "icon.png", + BindingContext = new BookQueriesViewModel() }; + home = new HomePage() { Title = "Accueil", Icon = "icon.png" }; - tiQueries.Clicked += (object sender, EventArgs e) => + // var mainPage = new NavigationPage(bQueriesPage); + + masterDetail = new ExtendedMasterDetailPage() { - if (bookQueriesPage.Parent == null) - mp.Navigation.PushAsync(bookQueriesPage); - else bookQueriesPage.Focus(); + Title = "MainPage" }; - mp.ToolbarItems.Add(tiQueries); - ToolbarItem tiMap = new ToolbarItem + + masterDetail.Master = new DashboardPage { - Text = "Carte", - Icon = "glyphish_07_map_marker.png" + Title = "Bookingstar", + BindingContext = new DashboardViewModel() }; - mp.ToolbarItems.Add(tiMap); - pinPage = new PinPage + + // masterDetail.Detail = home; + + masterDetail.Detail = new NavigationPage(home); + ToolbarItem tiSetts = new ToolbarItem() { - Title = "Carte", - Icon = "glyphish_07_map_marker.png" + Text = "Paramètres", + Icon = "ic_corp_icon.png" }; - tiMap.Clicked += (object sender, EventArgs e) => - { - if (pinPage.Parent == null) - mp.Navigation.PushAsync(pinPage); - else pinPage.Focus(); + ToolbarItem tiHome = new ToolbarItem() + { + Text = "Accueil", + Icon = "icon.png" }; + /* + var navPage = new NavigationPage(masterDetail) { + Title = "Navigation", + Icon = "icon.png" + } ; + //var navPage = new NavigationPage(mainTab); + + navPage.ToolbarItems.Add(tiHome); + navPage.ToolbarItems.Add(tiSetts); + */ + this.MainPage = masterDetail; + masterDetail.ToolbarItems.Add(tiHome); + masterDetail.ToolbarItems.Add(tiSetts); + NavigationService = new NavigationService(masterDetail.Detail.Navigation); } - - public void ShowDeviceInfo() - { - if (deviceInfoPage.Parent == null) - mp.Navigation.PushAsync(deviceInfoPage); - else deviceInfoPage.Focus(); - } - + public INavigationService NavigationService { protected set; get; } public void PostDeviceInfo() { - var res = PlateformSpecificInstance.InvokeApi( + var res = PlatformSpecificInstance.InvokeApi( "gcm/register", - PlateformSpecificInstance.GetDeviceInfo()); + PlatformSpecificInstance.GetDeviceInfo()); } - public void ShowBookQuery(BookQueryData data) + public static void ShowBookQuery (BookQueryData query) { - bookQueriesPage.BindingContext = data; - mp.Navigation.PushAsync(bookQueriesPage); + var page = ViewFactory.CreatePage((b, p) => p.BindingContext = new BookQueryViewModel(query)); + App.Current.MainPage.Navigation.PushAsync(page as Page); } - public void CloseWindow() + // TODO système de persistance de l'état de l'appli + /* + /// + /// Shows a page asynchronously by locating the default constructor, creating the page, + /// the pushing it onto the navigation stack. + /// + /// Parent Page + /// Type of page to show + /// + public static async Task ShowPage(VisualElement parentPage, Type pageType) { - mp.Navigation.PopAsync(); - } + // Get all the constructors of the page type. + var constructors = pageType.GetTypeInfo().DeclaredConstructors; + + foreach (var page in + from constructor in constructors + where constructor.GetParameters().Length == 0 + select (Page)constructor.Invoke(null)) + { + await parentPage.Navigation.PushAsync(page); + break; + } + }*/ } } diff --git a/BookAStar/BookAStar/BookAStar.csproj b/BookAStar/BookAStar/BookAStar.csproj index 45bd3104..908d00f0 100644 --- a/BookAStar/BookAStar/BookAStar.csproj +++ b/BookAStar/BookAStar/BookAStar.csproj @@ -25,6 +25,7 @@ DEBUG;TRACE prompt 4 + pdbonly @@ -33,13 +34,33 @@ TRACE prompt 4 + App.xaml - + + + + + + + + + + + + + + + + + + + + BookQueriesPage.xaml @@ -47,21 +68,23 @@ BookQueryPage.xaml - + + EditBillingLinePage.xaml + + + DashboardPage.xaml + EventDetail.xaml - - - MainPage.xaml - + - + @@ -96,31 +119,34 @@ - - MakeAnEstimatePage.xaml + + EditEstimatePage.xaml - - MarkdownEditorPage.xaml + + HomePage.xaml + + + + + + + + + CommandLineEditor.xaml + - - QueriesPage.xaml - SearchPage.xaml - - SettingsPage.xaml + + AccountChooserPage.xaml - - Designer - MSBuild:UpdateDesignTimeXaml - Designer MSBuild:UpdateDesignTimeXaml @@ -129,7 +155,9 @@ - + + Designer + @@ -140,7 +168,7 @@ MSBuild:UpdateDesignTimeXaml Designer - + MSBuild:UpdateDesignTimeXaml Designer @@ -149,6 +177,10 @@ + + ..\..\packages\ExifLib.PCL.1.0.1\lib\portable-net45+sl50+win+WindowsPhoneApp81+wp80+Xamarin.iOS10+MonoAndroid10+MonoTouch10\ExifLib.dll + True + ..\..\packages\Json.NET.Web.1.0.49\lib\portable45-net45+win8+wpa81\Json.NET.Web.dll @@ -161,28 +193,64 @@ ..\..\packages\Newtonsoft.Json.9.0.1\lib\portable-net45+wp80+win8+wpa81\Newtonsoft.Json.dll - - ..\..\packages\Xam.Plugins.Settings.2.1.0\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Plugin.Settings.dll + + ..\..\packages\Xam.Plugins.Settings.2.5.1.0\lib\portable-net45+wp80+win8+wpa81\Plugin.Settings.dll True - - ..\..\packages\Xam.Plugins.Settings.2.1.0\lib\portable-net45+wp8+wpa81+win8+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10\Plugin.Settings.Abstractions.dll + + ..\..\packages\Xam.Plugins.Settings.2.5.1.0\lib\portable-net45+wp80+win8+wpa81\Plugin.Settings.Abstractions.dll + True + + + ..\..\packages\SQLite.Net-PCL.3.1.1\lib\portable-win8+net45+wp8+wpa81+MonoAndroid1+MonoTouch1\SQLite.Net.dll True - ..\..\packages\Xamarin.Forms.2.3.0.107\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Core.dll True - ..\..\packages\Xamarin.Forms.Maps.2.3.0.107\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Maps.dll + ..\..\packages\Xamarin.Forms.Maps.2.3.2.127\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Maps.dll True - ..\..\packages\Xamarin.Forms.2.3.0.107\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Platform.dll True - ..\..\packages\Xamarin.Forms.2.3.0.107\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll + ..\..\packages\Xamarin.Forms.2.3.2.127\lib\portable-win+net45+wp80+win81+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10\Xamarin.Forms.Xaml.dll + True + + + ..\..\packages\XLabs.Caching.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Caching.dll + True + + + ..\..\packages\XLabs.Core.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Core.dll + True + + + ..\..\packages\XLabs.Forms.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+monoandroid+MonoTouch+Xamarin.iOS10\XLabs.Forms.dll + True + + + ..\..\packages\XLabs.IoC.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.IOC.dll + True + + + ..\..\packages\XLabs.Platform.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+monoandroid+MonoTouch+Xamarin.iOS10\XLabs.Platform.dll + True + + + ..\..\packages\XLabs.Serialization.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Serialization.dll + True + + + ..\..\packages\XLabs.Serialization.JSON.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Serialization.Json.NET.dll + True + + + ..\..\packages\XLabs.Settings.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Settings.dll True @@ -199,36 +267,56 @@ - + MSBuild:UpdateDesignTimeXaml Designer - + MSBuild:UpdateDesignTimeXaml Designer - + + Designer + MSBuild:UpdateDesignTimeXaml + + + + MSBuild:UpdateDesignTimeXaml Designer - + + MSBuild:UpdateDesignTimeXaml + Designer + + + + + + + + + + + + MSBuild:UpdateDesignTimeXaml Designer - + Ce projet fait référence à des packages NuGet qui sont manquants sur cet ordinateur. Utilisez l'option de restauration des packages NuGet pour les télécharger. Pour plus d'informations, consultez http://go.microsoft.com/fwlink/?LinkID=322105. Le fichier manquant est : {0}. - +