diff --git a/ZicMoove/ZicMoove.Droid/MainActivity.cs b/ZicMoove/ZicMoove.Droid/MainActivity.cs index 274c7e38..c5e81e86 100644 --- a/ZicMoove/ZicMoove.Droid/MainActivity.cs +++ b/ZicMoove/ZicMoove.Droid/MainActivity.cs @@ -53,9 +53,9 @@ namespace ZicMoove.Droid using Xamarin.Forms; [Activity( - Name = Constants.ApplicationName+".MainActivity", - Label = Constants.ApplicationLabel, - Theme = "@style/MainTheme", + Name = Constants.ApplicationName + ".MainActivity", + Label = Constants.ApplicationLabel, + Theme = "@style/MainTheme", Icon = "@drawable/icon", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)] @@ -74,8 +74,8 @@ namespace ZicMoove.Droid .LanguageOrLocale("fr") .RememberUser(true) .AcceptCreditCards(true) // needs card.io - // TODO .MerchantPrivacyPolicyUri(new Uri("http://")) - // TODO .MerchantUserAgreementUri(new Uri("http://")) + // TODO .MerchantPrivacyPolicyUri(new Uri("http://")) + // TODO .MerchantUserAgreementUri(new Uri("http://")) .ClientId(Constants.PaypalClientId) .SandboxUserPassword(Constants.PaypalClientSecret) ; @@ -85,7 +85,7 @@ namespace ZicMoove.Droid TabLayoutResource = Resource.Layout.Tabbar; ToolbarResource = Resource.Layout.Toolbar; base.OnCreate(bundle); - + XamSvg.Setup.InitSvgLib(); // FIXME usefull? SetPersistent(true); // global::Xamarin.Forms.Forms.SetTitleBarVisibility(Xamarin.Forms.AndroidTitleBarVisibility.Never); @@ -152,7 +152,8 @@ namespace ZicMoove.Droid public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content.PM.Permission[] grantResults) { base.OnRequestPermissionsResult(requestCode, permissions, grantResults); - if (requestCode == Constants.AllowBeATarget) { + if (requestCode == Constants.AllowBeATarget) + { if (grantResults.Length > 0) { if (grantResults[0] == Android.Content.PM.Permission.Granted) @@ -279,7 +280,7 @@ namespace ZicMoove.Droid { Task.Run(async () => { - var query = DataManager.Instance.BookQueries.LocalGet(queryId); + var query = DataManager.Instance.BookQueries.LocalGet(queryId); App.ShowBookQuery(query); }); } @@ -315,7 +316,7 @@ namespace ZicMoove.Droid return manager.FindAccountsForService(Constants.ApplicationLabel); }); } - + public void AddAccount() { var auth = new YaOAuth2Authenticator( @@ -392,9 +393,9 @@ namespace ZicMoove.Droid // TODO handle } - - + + public T Resolve() { @@ -441,7 +442,7 @@ namespace ZicMoove.Droid } } - public void Pay(double amount, PayMethod method, string name= null ) + public void Pay(double amount, PayMethod method, string name = null) { if (name == null) name = $"Votre commande {Constants.ApplicationLabel}"; var payment = new PayPalPayment(new BigDecimal(amount), "EUR", "the item", @@ -450,40 +451,40 @@ namespace ZicMoove.Droid var intent = new Intent(this, typeof(PaymentActivity)); intent.PutExtra(PayPalService.ExtraPaypalConfiguration, config); intent.PutExtra(PaymentActivity.ExtraPayment, payment); - this.StartActivityForResult(intent, (int) RequestCode.PayImmediate); + this.StartActivityForResult(intent, (int)RequestCode.PayImmediate); } protected override void OnActivityResult(int requestCode, Result resultCode, Intent data) { - if (requestCode == (int) RequestCode.PayDelayed) - if (resultCode == Result.Ok) - { - var confirm = data.GetParcelableExtra(PaymentActivity.ExtraResultConfirmation); - if (confirm != null) + if (requestCode == (int)RequestCode.PayDelayed) + if (resultCode == Result.Ok) { - try + var confirm = data.GetParcelableExtra(PaymentActivity.ExtraResultConfirmation); + if (confirm != null) { - Log.Info("xam.paypal.test", confirm.ToString()); + try + { + Log.Info("xam.paypal.test", confirm.ToString()); - // TODO: send 'confirm' to your server for verification. - // see https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/ - // for more details. + // TODO: send 'confirm' to your server for verification. + // see https://developer.paypal.com/webapps/developer/docs/integration/mobile/verify-mobile-payment/ + // for more details. - } - catch (JSONException e) - { - Log.Error("xam.paypal.test", "something went really wrong here: ", e); + } + catch (JSONException e) + { + Log.Error("xam.paypal.test", "something went really wrong here: ", e); + } } } - } - else if (resultCode == Result.Canceled) - { - Log.Info("xam.paypal.test", "Canceled."); - } - else if ((int)resultCode == PaymentActivity.ResultExtrasInvalid) - { - Log.Info("xam.paypal.test", "Invalid Payment or PayPalConfiguration."); - } + else if (resultCode == Result.Canceled) + { + Log.Info("xam.paypal.test", "Canceled."); + } + else if ((int)resultCode == PaymentActivity.ResultExtrasInvalid) + { + Log.Info("xam.paypal.test", "Invalid Payment or PayPalConfiguration."); + } } @@ -493,11 +494,61 @@ namespace ZicMoove.Droid base.OnDestroy(); } - enum RequestCode : int { + enum RequestCode : int + { PayImmediate = 1, PayDelayed } - + private static string imagesFolder = null; + public static string ImagesFolder + { + get + { + if (imagesFolder != null) return imagesFolder; + var appData = + System.Environment.GetFolderPath(System.Environment.SpecialFolder.ApplicationData); + imagesFolder = System.IO.Path.Combine(appData, Constants.ImagePath); + DirectoryInfo di = new DirectoryInfo(imagesFolder); + if (!di.Exists) di.Create(); + return imagesFolder; + } + } + + public void UpdateAppImages() + { + var images = ImagesFolder; + + using (var client = new HttpClient()) + { + client.BaseAddress = new Uri(Constants.YavscHomeUrl); + var targets = DataManager.Instance.Activities.Select( + a => new string[2] { a.Photo, a.Code } + ).ToArray(); + foreach (var photo in targets) + { + if (photo[0] != null) + { + var streamtask = client.GetStreamAsync(photo[0]); + streamtask.Wait(); + if (streamtask.IsCompleted) + { + using (streamtask.Result) + { + FileInfo fi = new FileInfo(Path.Combine(images, $"{photo[1]}.svg")); + using (var ostr = fi.OpenWrite()) + { + streamtask.Result.CopyTo(ostr); + } + } + } + + } + } + foreach (var act in DataManager.Instance.Activities) + { act.LocalPhoto = Path.Combine(images, $"{act.Code}.svg"); } + DataManager.Instance.Activities.SaveEntity(); + } + } } } diff --git a/ZicMoove/ZicMoove.Droid/Rendering/ImageButtonRenderer.cs b/ZicMoove/ZicMoove.Droid/Rendering/ImageButtonRenderer.cs index 3007d81c..09b3abc5 100644 --- a/ZicMoove/ZicMoove.Droid/Rendering/ImageButtonRenderer.cs +++ b/ZicMoove/ZicMoove.Droid/Rendering/ImageButtonRenderer.cs @@ -67,7 +67,7 @@ namespace ZicMoove.Rendering _density = Resources.DisplayMetrics.Density; var targetButton = Control; - if (targetButton != null) targetButton.SetOnTouchListener(TouchListener.Instance.Value); + if (targetButton != null) targetButton.SetOnTouchListener(ImageButtonTouchListener.Instance.Value); if (Element != null && Element.Font != Font.Default && targetButton != null) targetButton.Typeface = Element.Font.ToExtendedTypeface(Context); @@ -274,14 +274,14 @@ namespace ZicMoove.Rendering } //Hot fix for the layout positioning issue on Android as described in http://forums.xamarin.com/discussion/20608/fix-for-button-layout-bug-on-android - class TouchListener : Java.Lang.Object, View.IOnTouchListener + class ImageButtonTouchListener : Java.Lang.Object, View.IOnTouchListener { - public static readonly Lazy Instance = new Lazy(() => new TouchListener()); + public static readonly Lazy Instance = new Lazy(() => new ImageButtonTouchListener()); /// /// Make TouchListener a singleton. /// - private TouchListener() + private ImageButtonTouchListener() { } public bool OnTouch(View v, MotionEvent e) diff --git a/ZicMoove/ZicMoove.Droid/Rendering/SvgRenderer.cs b/ZicMoove/ZicMoove.Droid/Rendering/SvgRenderer.cs new file mode 100644 index 00000000..65535203 --- /dev/null +++ b/ZicMoove/ZicMoove.Droid/Rendering/SvgRenderer.cs @@ -0,0 +1,65 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Net.Http; +using Android.App; +using Android.Content; +using Android.OS; +using Android.Runtime; +using Android.Views; +using Android.Widget; +using Android.Graphics; +using Xamarin.Forms; +using ZicMoove.Views; +using XamSvg; +using Xamarin.Forms.Platform.Android; + +[assembly: ExportRenderer(typeof(SvgImage), typeof(ZicMoove.Droid.Rendering.SvgRenderer))] +namespace ZicMoove.Droid.Rendering +{ + class SvgRenderer : Xamarin.Forms.Platform.Android.AppCompat.ViewRenderer + { + private ImageView view; + private ImageView CreateNativeControl() + { + view = new ImageView(Context); + view.LayoutParameters = new Gallery.LayoutParams(LayoutParams.WrapContent, LayoutParams.FillParent); + + return view; + } + protected override void OnElementChanged(ElementChangedEventArgs e) + { + base.OnElementChanged(e); + + if (Control == null) + { + // Init + SetNativeControl(CreateNativeControl()); + } + if (e.OldElement != null) + { + // Unsubscribe + } + if (e.NewElement != null) if (e.NewElement.Svg != null) + { + // Subscribe + + if (!e.NewElement.Svg.EndsWith(".svg")) + throw new NotSupportedException("Source must end width '.svg'"); + var fi = new System.IO.FileInfo(e.NewElement.Svg); + if (fi.Exists) + { + using (var stream = fi.OpenRead()) + { + var svg = SvgFactory.GetSvg(System.Threading.CancellationToken.None, + stream); + var drawable = XamSvg.SvgFactory.GetDrawable(svg, XamSvg.Shared.Cross.SvgFillMode.Fill); + view.SetImageDrawable(drawable); + } + } + + } + } + } +} \ No newline at end of file diff --git a/ZicMoove/ZicMoove.Droid/Rendering/YaSvgImageView.cs b/ZicMoove/ZicMoove.Droid/Rendering/YaSvgImageView.cs new file mode 100644 index 00000000..63a4875a --- /dev/null +++ b/ZicMoove/ZicMoove.Droid/Rendering/YaSvgImageView.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +using Android.App; +using Android.Content; +using Android.Graphics; +using Android.OS; +using Android.Runtime; +using Android.Util; +using Android.Views; +using Android.Widget; + +namespace ZicMoove.Droid.Rendering +{ + public class YaSvgImageView : ImageView + { + Bitmap currentBitmap; + public YaSvgImageView(Context context, IAttributeSet attrs) : + base(context, attrs) + { + Initialize(); + } + public YaSvgImageView(Context context) : base(context) + { + Initialize(); + } + public YaSvgImageView(Context context, IAttributeSet attrs, int defStyle) : + base(context, attrs, defStyle) + { + Initialize(); + } + + private void Initialize() + { + } + XamSvg.Svg svg; + XamSvg.SvgPictureDrawable drawable; + + public void SetSvg(XamSvg.Svg svg) + { + this.svg = svg; + this.drawable = XamSvg.SvgFactory.GetDrawable(svg, XamSvg.Shared.Cross.SvgFillMode.Fill); + this.SetImageDrawable(drawable); + } + } +} \ No newline at end of file diff --git a/ZicMoove/ZicMoove.Droid/Resources/Resource.Designer.cs b/ZicMoove/ZicMoove.Droid/Resources/Resource.Designer.cs index fd36580d..41ba1446 100644 --- a/ZicMoove/ZicMoove.Droid/Resources/Resource.Designer.cs +++ b/ZicMoove/ZicMoove.Droid/Resources/Resource.Designer.cs @@ -29,6 +29,17 @@ namespace ZicMoove.Droid global::SQLite.Net.Platform.XamarinAndroid.Resource.String.ApplicationName = global::ZicMoove.Droid.Resource.String.ApplicationName; global::SQLite.Net.Platform.XamarinAndroid.Resource.String.Hello = global::ZicMoove.Droid.Resource.String.Hello; global::Xamarin.Forms.Platform.Android.Resource.Attribute.actionBarSize = global::ZicMoove.Droid.Resource.Attribute.actionBarSize; + global::XamSvg.Resource.Attribute.colorMapping = global::ZicMoove.Droid.Resource.Attribute.colorMapping; + global::XamSvg.Resource.Attribute.colorMappingSelected = global::ZicMoove.Droid.Resource.Attribute.colorMappingSelected; + global::XamSvg.Resource.Attribute.loadAsync = global::ZicMoove.Droid.Resource.Attribute.loadAsync; + global::XamSvg.Resource.Attribute.svg = global::ZicMoove.Droid.Resource.Attribute.svg; + global::XamSvg.Resource.Attribute.traceEnabled = global::ZicMoove.Droid.Resource.Attribute.traceEnabled; + global::XamSvg.Resource.Styleable.SvgImageView = global::ZicMoove.Droid.Resource.Styleable.SvgImageView; + global::XamSvg.Resource.Styleable.SvgImageView_colorMapping = global::ZicMoove.Droid.Resource.Styleable.SvgImageView_colorMapping; + global::XamSvg.Resource.Styleable.SvgImageView_colorMappingSelected = global::ZicMoove.Droid.Resource.Styleable.SvgImageView_colorMappingSelected; + global::XamSvg.Resource.Styleable.SvgImageView_loadAsync = global::ZicMoove.Droid.Resource.Styleable.SvgImageView_loadAsync; + global::XamSvg.Resource.Styleable.SvgImageView_svg = global::ZicMoove.Droid.Resource.Styleable.SvgImageView_svg; + global::XamSvg.Resource.Styleable.SvgImageView_traceEnabled = global::ZicMoove.Droid.Resource.Styleable.SvgImageView_traceEnabled; global::XLabs.Forms.Droid.Resource.Animation.abc_fade_in = global::ZicMoove.Droid.Resource.Animation.abc_fade_in; global::XLabs.Forms.Droid.Resource.Animation.abc_fade_out = global::ZicMoove.Droid.Resource.Animation.abc_fade_out; global::XLabs.Forms.Droid.Resource.Animation.abc_grow_fade_in_from_bottom = global::ZicMoove.Droid.Resource.Animation.abc_grow_fade_in_from_bottom; @@ -2229,6 +2240,12 @@ namespace ZicMoove.Droid // aapt resource value: 0x7f0100b9 public const int colorControlNormal = 2130772153; + // aapt resource value: 0x7f010157 + public const int colorMapping = 2130772311; + + // aapt resource value: 0x7f010158 + public const int colorMappingSelected = 2130772312; + // aapt resource value: 0x7f0100b6 public const int colorPrimary = 2130772150; @@ -2520,6 +2537,9 @@ namespace ZicMoove.Droid // aapt resource value: 0x7f010006 public const int liteMode = 2130771974; + // aapt resource value: 0x7f01015a + public const int loadAsync = 2130772314; + // aapt resource value: 0x7f01004a public const int logo = 2130772042; @@ -2760,6 +2780,9 @@ namespace ZicMoove.Droid // aapt resource value: 0x7f0100f3 public const int suggestionRowLayout = 2130772211; + // aapt resource value: 0x7f010156 + public const int svg = 2130772310; + // aapt resource value: 0x7f0100f9 public const int switchMinWidth = 2130772217; @@ -2898,6 +2921,9 @@ namespace ZicMoove.Droid // aapt resource value: 0x7f01009e public const int toolbarStyle = 2130772126; + // aapt resource value: 0x7f010159 + public const int traceEnabled = 2130772313; + // aapt resource value: 0x7f0100f6 public const int track = 2130772214; @@ -5482,6 +5508,9 @@ namespace ZicMoove.Droid // aapt resource value: 0x7f070000 public const int gtm_analytics = 2131165184; + // aapt resource value: 0x7f070001 + public const int it = 2131165185; + static Raw() { global::Android.Runtime.ResourceIdManager.UpdateIdValues(); @@ -8523,6 +8552,28 @@ namespace ZicMoove.Droid // aapt resource value: 4 public const int Spinner_popupTheme = 4; + public static int[] SvgImageView = new int[] { + 2130772310, + 2130772311, + 2130772312, + 2130772313, + 2130772314}; + + // aapt resource value: 1 + public const int SvgImageView_colorMapping = 1; + + // aapt resource value: 2 + public const int SvgImageView_colorMappingSelected = 2; + + // aapt resource value: 4 + public const int SvgImageView_loadAsync = 4; + + // aapt resource value: 0 + public const int SvgImageView_svg = 0; + + // aapt resource value: 3 + public const int SvgImageView_traceEnabled = 3; + public static int[] SwitchCompat = new int[] { 16843044, 16843045, diff --git a/ZicMoove/ZicMoove.Droid/Resources/layout/Payment.axml b/ZicMoove/ZicMoove.Droid/Resources/layout/Payment.axml index bdf33690..53ea1ef4 100644 --- a/ZicMoove/ZicMoove.Droid/Resources/layout/Payment.axml +++ b/ZicMoove/ZicMoove.Droid/Resources/layout/Payment.axml @@ -10,7 +10,7 @@ android:layout_height="wrap_content" android:id="@+id/relativeLayout1" /> + + + + + + + + + + image/svg+xml + + + + + Openclipart + + + Web 2.0 + 2013-01-18T05:56:20 + Icon for web 2.0 + https://openclipart.org/detail/174317/web-2.0-by-fallerton-174317 + + + Fallerton + + + + + 2.0 + extended + web + wide + world + www + + + + + + + + + + + diff --git a/ZicMoove/ZicMoove.Droid/Services/GcmRegistrationIntentService.cs b/ZicMoove/ZicMoove.Droid/Services/GcmRegistrationIntentService.cs index 4b33057b..26fd3ad8 100644 --- a/ZicMoove/ZicMoove.Droid/Services/GcmRegistrationIntentService.cs +++ b/ZicMoove/ZicMoove.Droid/Services/GcmRegistrationIntentService.cs @@ -20,10 +20,8 @@ namespace ZicMoove.Droid static object locker = new object(); public GcmRegistrationIntentService() : base("RegistrationIntentService") { - } - static PowerManager.WakeLock sWakeLock; static object LOCK = new object(); @@ -102,9 +100,9 @@ namespace ZicMoove.Droid { var pubSub = GcmPubSub.GetInstance(this); pubSub.Subscribe(token, "/topics/global", null); - if (MainSettings.CurrentUser.Roles.Contains("Performer")) + ///if (MainSettings.CurrentUser.Roles.Contains("Performer")) // TODO add activity codes in the bundle - pubSub.Subscribe(token, "/topics/jobs", null); + //pubSub.Subscribe(token, "/topics/jobs", null); // TODO if a Activity is specified, // and general annonces in this activity are accepted: // pubSub.Subscribe(token, "/topics/jobs/"+ActivityCode, null); diff --git a/ZicMoove/ZicMoove.Droid/ZicMoove.Droid.csproj b/ZicMoove/ZicMoove.Droid/ZicMoove.Droid.csproj index 98b8ccc7..4b56829f 100644 --- a/ZicMoove/ZicMoove.Droid/ZicMoove.Droid.csproj +++ b/ZicMoove/ZicMoove.Droid/ZicMoove.Droid.csproj @@ -394,6 +394,14 @@ ..\..\packages\Xamarin.PayPal.Android.CardIO.1.0.0\lib\MonoAndroid10\Xamarin.PayPal.Android.CardIO.dll True + + ..\..\packages\Softlion.XamSvg.Free.2.3.2.5\lib\MonoAndroid44\XamSvg.Droid.dll + True + + + ..\..\packages\Softlion.XamSvg.Free.2.3.2.5\lib\MonoAndroid44\XamSvg.Shared.dll + True + ..\..\packages\XLabs.Caching.2.3.0-pre02\lib\portable-net45+netcore45+wpa81+wp8+monoandroid+monotouch+xamarinios10+xamarinmac\XLabs.Caching.dll True @@ -463,6 +471,8 @@ + + @@ -645,6 +655,7 @@ + diff --git a/ZicMoove/ZicMoove.Droid/packages.config b/ZicMoove/ZicMoove.Droid/packages.config index 9675bba1..9c0a8475 100644 --- a/ZicMoove/ZicMoove.Droid/packages.config +++ b/ZicMoove/ZicMoove.Droid/packages.config @@ -8,6 +8,7 @@ + diff --git a/ZicMoove/ZicMoove/App.xaml.cs b/ZicMoove/ZicMoove/App.xaml.cs index ea3bdf16..eafcafc0 100644 --- a/ZicMoove/ZicMoove/App.xaml.cs +++ b/ZicMoove/ZicMoove/App.xaml.cs @@ -379,8 +379,6 @@ namespace ZicMoove public void SetupHubConnection() { - if (chatHubConnection != null) - chatHubConnection.Dispose(); chatHubConnection = new HubConnection(Constants.SignalRHubsUrl); chatHubConnection.Error += ChatHubConnection_Error; @@ -452,9 +450,11 @@ namespace ZicMoove } } - public static async Task PostDeviceInfo() + + public static async Task PostDeviceInfo() { var info = GetDeviceInfo(); + bool updateImages = false; if (!string.IsNullOrWhiteSpace(info.GCMRegistrationId)) { if (MainSettings.CurrentUser != null) @@ -479,7 +479,7 @@ namespace ZicMoove if ((bool)jvalue["UpdateActivities"]) { DataManager.Instance.Activities.Execute(null); - DataManager.Instance.Activities.SaveEntity(); + updateImages = true; } } } @@ -491,7 +491,9 @@ namespace ZicMoove } } } + return (updateImages); } + public static GCMRegIdDeclaration GetDeviceInfo() { var devinfo = CrossDeviceInfo.Current; @@ -511,7 +513,6 @@ namespace ZicMoove }; } - public static void ShowBookQuery(BookQuery query) { var page = new BookQueryPage diff --git a/ZicMoove/ZicMoove/Constants.cs b/ZicMoove/ZicMoove/Constants.cs index 22c62e47..46a055ec 100644 --- a/ZicMoove/ZicMoove/Constants.cs +++ b/ZicMoove/ZicMoove/Constants.cs @@ -28,6 +28,6 @@ namespace ZicMoove public const string PermissionMapReceive = Constants.ApplicationName + ".permission.MAPS_RECEIVE"; public const string PermissionC2DMessage = Constants.ApplicationName + ".permission.C2D_MESSAGE"; - + public const string ImagePath = "images"; } } diff --git a/ZicMoove/ZicMoove/Data/RemoteEntityRO.cs b/ZicMoove/ZicMoove/Data/RemoteEntityRO.cs index 62a50364..85556bf9 100644 --- a/ZicMoove/ZicMoove/Data/RemoteEntityRO.cs +++ b/ZicMoove/ZicMoove/Data/RemoteEntityRO.cs @@ -3,18 +3,17 @@ using System.Linq; namespace ZicMoove.Data { + /// + /// Use to not try and update any remote data ... + /// TODO implementation ... + /// + /// + /// public class RemoteEntityRO: RemoteEntity where K: IEquatable { public RemoteEntityRO (string controllerName, Func getKey) : base(controllerName,getKey) { } - - public override void Merge(V item) - { - var key = GetKey(item); - if (this.Any(x => GetKey(x).Equals(key))) { return; } - Add(item); - } } } diff --git a/ZicMoove/ZicMoove/Interfaces/IPlatform.cs b/ZicMoove/ZicMoove/Interfaces/IPlatform.cs index 730e5608..d8a89263 100644 --- a/ZicMoove/ZicMoove/Interfaces/IPlatform.cs +++ b/ZicMoove/ZicMoove/Interfaces/IPlatform.cs @@ -21,6 +21,7 @@ namespace ZicMoove.Interfaces void Pay(double amount, PayMethod method, string paymentName); + void UpdateAppImages(); } } diff --git a/ZicMoove/ZicMoove/Model/Workflow/Activity.cs b/ZicMoove/ZicMoove/Model/Workflow/Activity.cs index 1724d734..39149d20 100644 --- a/ZicMoove/ZicMoove/Model/Workflow/Activity.cs +++ b/ZicMoove/ZicMoove/Model/Workflow/Activity.cs @@ -74,5 +74,6 @@ namespace ZicMoove.Model.Workflow get; set; } + public string LocalPhoto { get; set; } } } diff --git a/ZicMoove/ZicMoove/Pages/ClientPages/ActivityPage.xaml b/ZicMoove/ZicMoove/Pages/ClientPages/ActivityPage.xaml index 678b7df7..cfb658e5 100644 --- a/ZicMoove/ZicMoove/Pages/ClientPages/ActivityPage.xaml +++ b/ZicMoove/ZicMoove/Pages/ClientPages/ActivityPage.xaml @@ -3,6 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="ZicMoove.Pages.ClientPages.ActivityPage" xmlns:local="clr-namespace:ZicMoove;assembly=ZicMoove" + xmlns:views="clr-namespace:ZicMoove.Views;assembly=ZicMoove" > @@ -13,22 +14,32 @@ -