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 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 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); }
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 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); }
public void SearchFromASINReturnsNoResults() { IKernel kernal = new StandardKernel(new BindModule()); var amazonItemRepo = kernal.Get <IAmazonItemRepository>(); var itunesItemRepo = kernal.Get <IItunesItemRepository>(); var resultsObj = new ReleaseDetails(amazonItemRepo, itunesItemRepo).GetReleaseDetailsFromASIN("sdasdasd"); Assert.IsTrue(resultsObj.Items.Count == 0); }
public void SearchFromASINIsNotNull() { IKernel kernal = new StandardKernel(new BindModule()); var amazonItemRepo = kernal.Get <IAmazonItemRepository>(); var itunesItemRepo = kernal.Get <IItunesItemRepository>(); var resultsObj = new ReleaseDetails(amazonItemRepo, itunesItemRepo).GetReleaseDetailsFromASIN("B06XSS46GQ"); Assert.IsNotNull(resultsObj); }
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); }
private bool OnReleaseAvailable(ReleaseDetails releaseDetails) { Analytics.TrackEvent("Release Available."); var info = GetUpdateDetail(releaseDetails); Analytics.TrackEvent(info); _updateService.Update = info; return(true); }
public static string GetUpdateDetail(ReleaseDetails info) { var sb = new StringBuilder(); sb.AppendLine($"{nameof(info.Id)}: {info.Id}"); sb.AppendLine($"{nameof(info.Version)}: {info.Version}"); sb.AppendLine($"{nameof(info.ShortVersion)}: {info.ShortVersion}"); sb.AppendLine($"{nameof(info.ReleaseNotes)}: {info.ReleaseNotes}"); sb.AppendLine($"{nameof(info.ReleaseNotesUrl)}: {info.ReleaseNotesUrl}"); sb.AppendLine($"{nameof(info.MandatoryUpdate)}: {info.MandatoryUpdate}"); return(sb.ToString()); }
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); } }
public List <ReleaseDetails> GetReleaseDetails(string projectName, string repositoryGuid) { List <ReleaseDetails> releases = new List <ReleaseDetails>(); var commits = GetReleaseMergeCommits(repositoryGuid); var start = commits.Max(x => x.end); var end = DateTime.Now; var futureRelease = new ReleaseCommit(new Commit { }, "Future", start, end); commits.Add(futureRelease); commits.Reverse(); foreach (var item in commits) { var release = new ReleaseDetails { commit = item, workItems = GetClosedWorkItems(projectName, item.start, item.end), workItemDetails = new List <WorkItemDetails>() }; var result = Parallel.ForEach(release.workItems, new ParallelOptions { MaxDegreeOfParallelism = 5 }, x => release.workItemDetails.Add(GetWorkItem(x.url))); releases.Add(release); } // Revert back to descending order releases.Reverse(); return(releases); }
public ReleaseDetails GetReleaseInfo(string name, string version) { var release = _queryProvider.SelectRelease(name, version); if (release != null) { var details = new ReleaseDetails { Created = release.Created, Description = release.Description, IconUrl = release.IconUrl, IsAbsoluteLatestVersion = release.IsAbsoluteLatestVersion, IsLatestVersion = release.IsLatestVersion, IsPrerelease = release.IsPrerelease, ReleaseNotes = release.ReleaseNotes, Name = name, Version = version }; return(details); } return(null); }
public ReleaseDetails GetReleaseInfo(string name, string version) { var release = _queryProvider.SelectRelease(name, version); if (release != null) { var details = new ReleaseDetails { Created = release.Created, Description = release.Description, IconUrl = release.IconUrl, IsAbsoluteLatestVersion = release.IsAbsoluteLatestVersion, IsLatestVersion = release.IsLatestVersion, IsPrerelease = release.IsPrerelease, ReleaseNotes = release.ReleaseNotes, Name = name, Version = version }; return details; } return null; }
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); }