public static async void CheckNewMusic(FolderTree tree, Action <FolderTree> afterTreeUpdated = null) { MainPage.Instance?.Loader.ShowIndeterminant("ProcessRequest"); var data = new TreeUpdateData(); if (!await tree.CheckNewFile(data)) { if (!string.IsNullOrEmpty(data.Message)) { MainPage.Instance.ShowNotification(data.Message); } MainPage.Instance?.Loader.Hide(); return; } if (data.More != 0 || data.Less != 0) { Settings.settings.Tree.FindTree(tree).CopyFrom(tree); MusicLibraryPage.SortAndSetAllSongs(Settings.settings.Tree.Flatten()); foreach (var listener in listeners) { listener.PathSet(tree.Path); } if (data.Less != 0) { MediaHelper.RemoveBadMusic(); } afterTreeUpdated?.Invoke(tree); App.Save(); } MainPage.Instance?.Loader.Hide(); string message; if (data.More == 0 && data.Less == 0) { message = Helper.LocalizeMessage("CheckNewMusicResultNoChange"); } else if (data.More == 0) { message = Helper.LocalizeMessage("CheckNewMusicResultRemoved", data.Less); } else if (data.Less == 0) { message = Helper.LocalizeMessage("CheckNewMusicResultAdded", data.More); } else { message = Helper.LocalizeMessage("CheckNewMusicResultChange", data.More, data.Less); } Helper.ShowNotificationWithoutLocalization(message); }