bool OnReleaseAvailable(ReleaseDetails releaseDetails) { AppCenterLog.Info(LogTag, "OnReleaseAvailable id=" + releaseDetails.Id + " version=" + releaseDetails.Version + " releaseNotesUrl=" + releaseDetails.ReleaseNotesUrl); var custom = releaseDetails.ReleaseNotes?.ToLowerInvariant().Contains("custom") ?? false; if (custom) { var title = "Version " + releaseDetails.ShortVersion + " available!"; Task answer; if (releaseDetails.MandatoryUpdate) { answer = Current.MainPage.DisplayAlert(title, releaseDetails.ReleaseNotes, "Update now!"); } else { answer = Current.MainPage.DisplayAlert(title, releaseDetails.ReleaseNotes, "Update now!", "Maybe tomorrow..."); } answer.ContinueWith((task) => { if (releaseDetails.MandatoryUpdate || ((Task <bool>)task).Result) { Distribute.NotifyUpdateAction(UpdateAction.Update); } else { Distribute.NotifyUpdateAction(UpdateAction.Postpone); } }); } return(custom); }
private bool OnReleaseAvailable(ReleaseDetails releaseDetails) { // Look at releaseDetails public properties to get version information, // release notes text or release notes URL string versionName = releaseDetails.ShortVersion; string verionCodeOrBuildNumber = releaseDetails.Version; string releaseNotes = releaseDetails.ReleaseNotes; Uri releaseNotesUrl = releaseDetails.ReleaseNotesUrl; // Build dialog AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); AlertDialog alert = dialogBuilder.Create(); alert.SetTitle("Version: " + versionName + " is available!"); alert.SetMessage(verionCodeOrBuildNumber); alert.SetButton("Ok", (sender, e) => { Distribute.NotifyUpdateAction(UpdateAction.Update); if (!releaseDetails.MandatoryUpdate) { alert.SetButton2("Cancel", (sender1, e1) => { Distribute.NotifyUpdateAction(UpdateAction.Postpone); }); } }); alert.SetCancelable(false); alert.Show(); // Return true if you are using your own dialog // Return false otherwise return(true); }
private static bool OnReleaseAvailable(ReleaseDetails release) { AppCenterLog.Info(Constants.AppCenterLogTag, $"{nameof(OnReleaseAvailable)} id={release.Id} version={release.Version} mandatory={release.MandatoryUpdate}"); var message = $"New release {release.ShortVersion}({release.Version}) available"; // On mandatory update, user cannot postpone var answer = release.MandatoryUpdate ? UserDialogs.Instance.AlertAsync(message, "Warning!", "Download and install") : UserDialogs.Instance.ConfirmAsync(message, "Warning!", "Download and install", "Not now"); answer.ContinueWith(task => { // If mandatory or if answer was positive if (release.MandatoryUpdate || ((Task <bool>)task).Result) { // Notify SDK that user selected update AppCenterLog.Info(Constants.AppCenterLogTag, "Notify Update"); Distribute.NotifyUpdateAction(UpdateAction.Update); } else { // Notify SDK that user selected postpone (for 1 day) // Note that this method call is ignored by the SDK if the update is mandatory AppCenterLog.Info(Constants.AppCenterLogTag, "Notify Postpone"); Distribute.NotifyUpdateAction(UpdateAction.Postpone); } }); // Return true if you are using your own dialog, false otherwise return(true); }
bool OnReleaseAvailable(ReleaseDetails releaseDetails) { AppCenterLog.Info(LogTag, "OnReleaseAvailable id=" + releaseDetails.Id + " version=" + releaseDetails.Version + " releaseNotesUrl=" + releaseDetails.ReleaseNotesUrl); var custom = releaseDetails.ReleaseNotes?.ToLowerInvariant().Contains("custom") ?? false; if (custom) { var builder = new AlertDialog.Builder(this); builder.SetTitle(string.Format(GetString(Resource.String.version_x_available), releaseDetails.ShortVersion)); builder.SetMessage(releaseDetails.ReleaseNotes); builder.SetPositiveButton(Microsoft.AppCenter.Distribute.Resource.String.appcenter_distribute_update_dialog_download, delegate { Distribute.NotifyUpdateAction(UpdateAction.Update); }); builder.SetCancelable(false); if (!releaseDetails.MandatoryUpdate) { builder.SetNegativeButton(Microsoft.AppCenter.Distribute.Resource.String.appcenter_distribute_update_dialog_postpone, delegate { Distribute.NotifyUpdateAction(UpdateAction.Postpone); }); } builder.Create().Show(); } return(custom); }
private static bool OnReleaseAvailable(ReleaseDetails releaseDetails) { // Look at releaseDetails public properties to get version information, release notes text or release notes URL var versionName = releaseDetails.ShortVersion; var versionCodeOrBuildNumber = releaseDetails.Version; var releaseNotes = releaseDetails.ReleaseNotes; var releaseNotesUrl = releaseDetails.ReleaseNotesUrl; // custom dialog var title = "Version " + versionName + " available!"; // On mandatory update, user cannot postpone var answer = releaseDetails.MandatoryUpdate ? Current.MainPage.DisplayAlert(title, releaseNotes, "Download and Install") : Current.MainPage.DisplayAlert(title, releaseNotes, "Download and Install", "Maybe tomorrow..."); answer.ContinueWith((task) => { // If mandatory or if answer was positive if (releaseDetails.MandatoryUpdate || (task as Task <bool>).Result) { // Notify SDK that user selected update Distribute.NotifyUpdateAction(UpdateAction.Update); } else { // Notify SDK that user selected postpone (for 1 day) // Note that this method call is ignored by the SDK if the update is mandatory Distribute.NotifyUpdateAction(UpdateAction.Postpone); } }); // Return true if you are using your own dialog, false otherwise return(true); }
public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions) { bool OnReleaseAvailable(ReleaseDetails releaseDetails) { MobileCenterLog.Info("MobileCenterDemo", "OnReleaseAvailable id=" + releaseDetails.Id + " version=" + releaseDetails.Version + " releaseNotesUrl=" + releaseDetails.ReleaseNotesUrl); var custom = releaseDetails.ReleaseNotes?.ToLowerInvariant().Contains("custom") ?? false; if (custom) { var title = "Version " + releaseDetails.ShortVersion + " available!"; UIAlertView messageBox = new UIAlertView(); messageBox.Title = title; messageBox.Message = releaseDetails.ReleaseNotes; if (releaseDetails.MandatoryUpdate) { messageBox.AddButton("Update now!"); } else { messageBox.AddButton("Update now!"); messageBox.AddButton("Maybe tomorrow..."); } messageBox.Clicked += (sender, e) => { if (releaseDetails.MandatoryUpdate || (e.ButtonIndex == 0)) { Distribute.NotifyUpdateAction(UpdateAction.Update); } else { Distribute.NotifyUpdateAction(UpdateAction.Postpone); } }; messageBox.Show(); } return(custom); } Distribute.ReleaseAvailable = OnReleaseAvailable; MobileCenter.Start("47c882b4-21ce-41dd-96fc-8e80c41c61ea", typeof(Analytics), typeof(Crashes), typeof(Push), typeof(Distribute)); Analytics.TrackEvent("OnResignActivation"); Analytics.TrackEvent("DidEnterBackground"); Analytics.TrackEvent("WillEnterForeground"); // Override point for customization after application launch. // If not required for your application you can safely delete this method // Code to start the Xamarin Test Cloud Agent #if ENABLE_TEST_CLOUD Xamarin.Calabash.Start(); #endif return(true); }
bool OnReleaseAvailable(ReleaseDetails releaseDetails) { string versionName = releaseDetails.ShortVersion; string versionCodeOrBuildNumber = releaseDetails.Version; string releaseNotes = releaseDetails.ReleaseNotes; Uri releaseNotesUrl = releaseDetails.ReleaseNotesUrl; // custom dialog var title = "Version " + versionName + " available!"; if (releaseDetails.MandatoryUpdate) { Distribute.NotifyUpdateAction(UpdateAction.Update); return(true); } else { Distribute.NotifyUpdateAction(UpdateAction.Postpone); return(false); } }
protected override void OnStart() { AppCenter.Start("android=db6315f6-be53-46f8-bf99-4e384ee1e0f7;", typeof(Analytics), typeof(Crashes), typeof(Distribute)); Analytics.SetEnabledAsync(true); Distribute.ReleaseAvailable = OnReleaseAvailable; bool OnReleaseAvailable(ReleaseDetails releaseDetails) { string versionName = releaseDetails.ShortVersion; string versionCodeOrBuildNumber = releaseDetails.Version; string releaseNotes = releaseDetails.ReleaseNotes; Uri releaseNotesUrl = releaseDetails.ReleaseNotesUrl; var title = "Version " + versionName + " available!"; Task answer; if (releaseDetails.MandatoryUpdate) { answer = Current.MainPage.DisplayAlert(title, releaseNotes, "Download and Install"); } else { answer = Current.MainPage.DisplayAlert(title, releaseNotes, "Download and Install", "Ask Later"); } answer.ContinueWith((task) => { if (releaseDetails.MandatoryUpdate || (task as Task <bool>).Result) { Distribute.NotifyUpdateAction(UpdateAction.Update); } else { Distribute.NotifyUpdateAction(UpdateAction.Postpone); } }); return(true); } }
private static bool OnReleaseAvailable(ReleaseDetails releaseDetails) { // Get public properties for the new release var versionName = releaseDetails.ShortVersion; var versionCodeOrBuildNumber = releaseDetails.Version; var releaseNotes = releaseDetails.ReleaseNotes; var releaseNotesUrl = releaseDetails.ReleaseNotesUrl; if (string.IsNullOrWhiteSpace(releaseNotes)) { releaseNotes = "A new version for this app is available."; } // custom dialog var title = $"New version available {versionName} !"; Task answer; answer = Application.Current.MainPage.DisplayAlert(title, releaseNotes, "Download and install now", "later"); answer.ContinueWith((task) => { // If mandatory or if answer was positive, then update the app if (releaseDetails.MandatoryUpdate || (task as Task <bool>).Result) { Distribute.NotifyUpdateAction(UpdateAction.Update); } else { // Postpone the update for 1 day. // This method call is ignored by the SDK if the update is mandatory Distribute.NotifyUpdateAction(UpdateAction.Postpone); } }); return(true); }
bool OnReleaseAvailable(ReleaseDetails releaseDetails) { var title = "Version " + releaseDetails.ShortVersion + " available!"; var alert = UIAlertController.Create(title, releaseDetails.ReleaseNotes, UIAlertControllerStyle.Alert); alert.AddAction(UIAlertAction.Create("OK", UIAlertActionStyle.Default, x => Distribute.NotifyUpdateAction(UpdateAction.Update))); if (!releaseDetails.MandatoryUpdate) { alert.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, x => Distribute.NotifyUpdateAction(UpdateAction.Postpone))); } return(true); }