diff --git a/Apps/Contoso.Android.Puppet/Properties/AndroidManifest.xml b/Apps/Contoso.Android.Puppet/Properties/AndroidManifest.xml index e9ad8a0d6..1e7efdd19 100644 --- a/Apps/Contoso.Android.Puppet/Properties/AndroidManifest.xml +++ b/Apps/Contoso.Android.Puppet/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/Apps/Contoso.Android.Puppet/Properties/AssemblyInfo.cs b/Apps/Contoso.Android.Puppet/Properties/AssemblyInfo.cs index 5ecce9c1c..9e94c913c 100644 --- a/Apps/Contoso.Android.Puppet/Properties/AssemblyInfo.cs +++ b/Apps/Contoso.Android.Puppet/Properties/AssemblyInfo.cs @@ -25,5 +25,5 @@ using System.Runtime.InteropServices; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("0.0.0.0")] -[assembly: AssemblyFileVersion("0.16.1.0")] -[assembly: AssemblyInformationalVersion("0.16.1-SNAPSHOT")] +[assembly: AssemblyFileVersion("0.17.0.0")] +[assembly: AssemblyInformationalVersion("0.17.0-SNAPSHOT")] diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/Contoso.Forms.Demo.Droid.csproj b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/Contoso.Forms.Demo.Droid.csproj index 759e31c74..0f513d9f1 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/Contoso.Forms.Demo.Droid.csproj +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/Contoso.Forms.Demo.Droid.csproj @@ -15,7 +15,7 @@ Properties\AndroidManifest.xml Resources Assets - true + false diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/Properties/AndroidManifest.xml b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/Properties/AndroidManifest.xml index e390a2e40..7f1fc737b 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/Properties/AndroidManifest.xml +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@ - + diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/project.json b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/project.json index e3ca08d05..eb7db0bb8 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/project.json +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.Droid/project.json @@ -1,4 +1,4 @@ -{ +{ "dependencies": { "Microsoft.Azure.Mobile.Analytics": "0.16.0", "Microsoft.Azure.Mobile.Crashes": "0.16.0", diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.UWP/project.json b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.UWP/project.json index 2edad10dd..0da7ca030 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.UWP/project.json +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.UWP/project.json @@ -1,4 +1,4 @@ -{ +{ "dependencies": { "Microsoft.Azure.Mobile.Analytics": "0.16.0", "Microsoft.Azure.Mobile.Crashes": "0.16.0", @@ -8,7 +8,7 @@ "Xamarin.Forms": "2.3.4.231" }, "frameworks": { - "uap10.0": {} + "uap10.0.10586": {} }, "runtimes": { "win10-arm": {}, diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/AppDelegate.cs b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/AppDelegate.cs index 5c1a51bc4..b1eeeeec1 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/AppDelegate.cs +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/AppDelegate.cs @@ -12,7 +12,14 @@ namespace Contoso.Forms.Demo.iOS Xamarin.Forms.Forms.Init(); Distribute.DontCheckForUpdatesInDebug(); LoadApplication(new App()); + UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; return base.FinishedLaunching(uiApplication, launchOptions); } + + public override void WillEnterForeground(UIApplication uiApplication) + { + base.WillEnterForeground(uiApplication); + UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; + } } } diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/Contoso.Forms.Demo.iOS.csproj b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/Contoso.Forms.Demo.iOS.csproj index e429180e6..49d69fe5f 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/Contoso.Forms.Demo.iOS.csproj +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/Contoso.Forms.Demo.iOS.csproj @@ -22,7 +22,7 @@ true true None - i386 + i386, x86_64 HttpClientHandler Default false diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/project.json b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/project.json index 97f0fdc2d..da82a9684 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/project.json +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo.iOS/project.json @@ -1,4 +1,4 @@ -{ +{ "dependencies": { "Microsoft.Azure.Mobile.Analytics": "0.16.0", "Microsoft.Azure.Mobile.Crashes": "0.16.0", diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/App.xaml.cs b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/App.xaml.cs index cb5ff1aa4..a590c2513 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/App.xaml.cs +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/App.xaml.cs @@ -71,8 +71,12 @@ namespace Contoso.Forms.Demo { Xamarin.Forms.Device.BeginInvokeOnMainThread(() => { - var customData = "{" + string.Join(",", e.CustomData.Select(kv => kv.Key + "=" + kv.Value)) + "}"; - Current.MainPage.DisplayAlert(e.Title, e.Message + "\nCustom data=" + customData, "OK"); + var message = e.Message; + if (e.CustomData != null && e.CustomData.Count > 0) + { + message += "\nCustom data = {" + string.Join(",", e.CustomData.Select(kv => kv.Key + "=" + kv.Value)) + "}"; + } + Current.MainPage.DisplayAlert(e.Title, message, "OK"); }); } diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/ModulePages/OthersContentPage.xaml b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/ModulePages/OthersContentPage.xaml index e018a89e3..e467f99e1 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/ModulePages/OthersContentPage.xaml +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/ModulePages/OthersContentPage.xaml @@ -10,5 +10,5 @@ - + diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/ModulePages/OthersContentPage.xaml.cs b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/ModulePages/OthersContentPage.xaml.cs index 43cbcce0e..74d4c6d00 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/ModulePages/OthersContentPage.xaml.cs +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/ModulePages/OthersContentPage.xaml.cs @@ -22,9 +22,11 @@ namespace Contoso.Forms.Demo protected override async void OnAppearing() { base.OnAppearing(); + var mcEnabled = await MobileCenter.IsEnabledAsync(); DistributeEnabledSwitchCell.On = await Distribute.IsEnabledAsync(); - DistributeEnabledSwitchCell.IsEnabled = await MobileCenter.IsEnabledAsync(); + DistributeEnabledSwitchCell.IsEnabled = mcEnabled; PushEnabledSwitchCell.On = await Push.IsEnabledAsync(); + PushEnabledSwitchCell.IsEnabled = mcEnabled; } async void UpdateDistributeEnabled(object sender, ToggledEventArgs e) diff --git a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/project.json b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/project.json index f7daa5301..e42364014 100644 --- a/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/project.json +++ b/Apps/Contoso.Forms.Demo/Contoso.Forms.Demo/project.json @@ -1,4 +1,4 @@ -{ +{ "dependencies": { "Microsoft.Azure.Mobile.Analytics": "0.16.0", "Microsoft.Azure.Mobile.Crashes": "0.16.0", @@ -9,7 +9,7 @@ }, "frameworks": { "netstandard1.0": { - "imports": "portable-net45+win8+wpa81" + "imports": "portable-net45+win8+wpa81" } } } \ No newline at end of file diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Contoso.Forms.Puppet.Droid.csproj b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Contoso.Forms.Puppet.Droid.csproj index 2e0722f26..b10c70fa1 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Contoso.Forms.Puppet.Droid.csproj +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Contoso.Forms.Puppet.Droid.csproj @@ -209,6 +209,14 @@ {80B9A47A-7A97-4E5A-9706-43ACB25A7240} Microsoft.Azure.Mobile.Push.Android.Bindings + + {7E130457-B427-4043-A5A2-9484CB5809BF} + Microsoft.Azure.Mobile.Rum.Android.Bindings + + + {7F7FA7ED-1386-41B5-A11E-656B7F85A8F9} + Microsoft.Azure.Mobile.Rum.Android + diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Properties/AndroidManifest.xml b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Properties/AndroidManifest.xml index 4f930349a..4bebeecf9 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Properties/AndroidManifest.xml +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Properties/AndroidManifest.xml @@ -1,5 +1,5 @@ - + diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Properties/AssemblyInfo.cs b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Properties/AssemblyInfo.cs index 06305d2bd..30b8e7568 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Properties/AssemblyInfo.cs +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.Droid/Properties/AssemblyInfo.cs @@ -19,8 +19,8 @@ using Android.App; // and "{Major}.{Minor}.{Build}.*" will update just the revision. [assembly: AssemblyVersion("0.0.0.0")] -[assembly: AssemblyFileVersion("0.16.1.0")] -[assembly: AssemblyInformationalVersion("0.16.1-SNAPSHOT")] +[assembly: AssemblyFileVersion("0.17.0.0")] +[assembly: AssemblyInformationalVersion("0.17.0-SNAPSHOT")] // The following attributes are used to specify the signing key for the assembly, // if desired. See the Mono documentation for more information about signing. diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Contoso.Forms.Puppet.UWP.csproj b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Contoso.Forms.Puppet.UWP.csproj index 8d76acd05..5b2233221 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Contoso.Forms.Puppet.UWP.csproj +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Contoso.Forms.Puppet.UWP.csproj @@ -146,6 +146,10 @@ {8072449c-c6a8-4b36-87dc-173f295d161c} Microsoft.Azure.Mobile.Push.UWP + + {bcd888d1-a62f-458c-a72b-9df731ee1a55} + Microsoft.Azure.Mobile.Rum.UWP + {15e3fc9b-7714-4468-a296-81627a5b8f01} Microsoft.Azure.Mobile.UWP diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Package.appxmanifest b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Package.appxmanifest index 625611dde..9de9330d1 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Package.appxmanifest +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Package.appxmanifest @@ -1,6 +1,6 @@ - + MobileCenter-Forms-UWP-Puppet diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Properties/AssemblyInfo.cs b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Properties/AssemblyInfo.cs index 893c694da..58dd9d70e 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Properties/AssemblyInfo.cs +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.UWP/Properties/AssemblyInfo.cs @@ -24,5 +24,5 @@ using System.Runtime.InteropServices; // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("0.0.0.0")] -[assembly: AssemblyFileVersion("0.16.1.0")] +[assembly: AssemblyFileVersion("0.17.0.0")] [assembly: ComVisible(false)] diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/AppDelegate.cs b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/AppDelegate.cs index 24a68445e..95a52e3d6 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/AppDelegate.cs +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/AppDelegate.cs @@ -15,8 +15,15 @@ namespace Contoso.Forms.Puppet.iOS Distribute.DontCheckForUpdatesInDebug(); MSAnalytics.SetDelegate(new AnalyticsDelegate()); LoadApplication(new App()); + UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; return base.FinishedLaunching(uiApplication, launchOptions); } + + public override void WillEnterForeground(UIApplication uiApplication) + { + base.WillEnterForeground(uiApplication); + UIApplication.SharedApplication.ApplicationIconBadgeNumber = 0; + } } public class AnalyticsDelegate : MSAnalyticsDelegate diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/Info.plist b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/Info.plist index 527490e5c..778a69c4d 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/Info.plist +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet.iOS/Info.plist @@ -5,9 +5,9 @@ CFBundleIdentifier com.microsoft.azure.mobile.xamarin.forms.puppet CFBundleShortVersionString - 0.16.1 + 0.17.0 CFBundleVersion - 0.16.1 + 0.17.0 LSRequiresIPhoneOS MinimumOSVersion diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/App.xaml.cs b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/App.xaml.cs index 208a3fdf2..4430c2f95 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/App.xaml.cs +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/App.xaml.cs @@ -1,14 +1,15 @@ -using Microsoft.Azure.Mobile; -using Microsoft.Azure.Mobile.Analytics; -using Microsoft.Azure.Mobile.Crashes; -using Microsoft.Azure.Mobile.Distribute; -using Microsoft.Azure.Mobile.Push; -using System; +using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; +using Microsoft.Azure.Mobile; +using Microsoft.Azure.Mobile.Analytics; +using Microsoft.Azure.Mobile.Crashes; +using Microsoft.Azure.Mobile.Distribute; +using Microsoft.Azure.Mobile.Push; +using Microsoft.Azure.Mobile.Rum; using Xamarin.Forms; namespace Contoso.Forms.Puppet @@ -42,8 +43,9 @@ namespace Contoso.Forms.Puppet MobileCenter.SetLogUrl("https://in-integration.dev.avalanch.es"); Distribute.SetInstallUrl("http://install.asgard-int.trafficmanager.net"); Distribute.SetApiUrl("https://asgard-int.trafficmanager.net/api/v0.1"); + RealUserMeasurements.SetRumKey("b1919553367d44d8b0ae72594c74e0ff"); MobileCenter.Start($"uwp={UwpKey};android={AndroidKey};ios={IosKey}", - typeof(Analytics), typeof(Crashes), typeof(Distribute), typeof(Push)); + typeof(Analytics), typeof(Crashes), typeof(Distribute), typeof(Push), typeof(RealUserMeasurements)); // Need to use reflection because moving this to the Android specific // code causes crash. (Unable to access properties before init is called). @@ -92,8 +94,12 @@ namespace Contoso.Forms.Puppet { Xamarin.Forms.Device.BeginInvokeOnMainThread(() => { - var customData = "{" + string.Join(",", e.CustomData.Select(kv => kv.Key + "=" + kv.Value)) + "}"; - Current.MainPage.DisplayAlert(e.Title, e.Message + "\nCustom data=" + customData, "OK"); + var message = e.Message; + if (e.CustomData != null && e.CustomData.Count > 0) + { + message += "\nCustom data = {" + string.Join(",", e.CustomData.Select(kv => kv.Key + "=" + kv.Value)) + "}"; + } + Current.MainPage.DisplayAlert(e.Title, message, "OK"); }); } @@ -222,7 +228,7 @@ namespace Contoso.Forms.Puppet } answer.ContinueWith((task) => { - if (releaseDetails.MandatoryUpdate || ((Task) task).Result) + if (releaseDetails.MandatoryUpdate || ((Task)task).Result) { Distribute.NotifyUpdateAction(UpdateAction.Update); } diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/Contoso.Forms.Puppet.csproj b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/Contoso.Forms.Puppet.csproj index 23de95cdf..e83587ca8 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/Contoso.Forms.Puppet.csproj +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/Contoso.Forms.Puppet.csproj @@ -123,6 +123,10 @@ {8EE6B5DA-6547-43C8-AEB6-8E0EAE3F81C9} Microsoft.Azure.Mobile.Push + + {254D5434-9087-4F05-A43F-23A790E42024} + Microsoft.Azure.Mobile.Rum + diff --git a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/ModulePages/CrashesContentPage.xaml b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/ModulePages/CrashesContentPage.xaml index 156930e7b..d7921e5d6 100644 --- a/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/ModulePages/CrashesContentPage.xaml +++ b/Apps/Contoso.Forms.Puppet/Contoso.Forms.Puppet/ModulePages/CrashesContentPage.xaml @@ -6,25 +6,26 @@ + - -