private void isFavorite_Clicked(object sender, EventArgs e) { AbMediaContent curMedia = cardMediaViewModels[carouselView.Position].media; MediaManager.favoriteManager.setFavorite(!curMedia.isFavorited, curMedia); MediaManager.saveFavoriteManager(); isFavoritedImage.Source = (curMedia.isFavorited ? "FavoriteIcon.png" : "NonFavoriteIcon"); //save media changes to its parent card card?.saveToFile(); }
/// <summary> /// Add media to card and link card to media /// </summary> /// <param name="card"></param> private async void addMediaToCard(Card card) { LinkManager linkManager; if (mediasToAddCard != null) { linkManager = mediasToAddCard.linkManager; } else { linkManager = MediaManager.mediaLinkManager; } CardMediaContent cardMediaContent = new CardMediaContent(card.name); foreach (AbMediaContent media in mediasToAdd) { card.addMedia(media); linkManager.addLink(media, cardMediaContent); } if (mediasToAddCard != null) { mediasToAddCard.saveToFile(); } else { MediaManager.saveMediaLinkManager(); } EventWaitHandle waitHandle = new EventWaitHandle(false, EventResetMode.AutoReset); CardPage cardPage = new CardPage(card); cardPage.Disappearing += (e, v) => { waitHandle.Set(); }; await Navigation.PushAsync(cardPage); await Task.Run(() => waitHandle.WaitOne()); // TODO fix issue, crashes only in IOS not android ... //await Navigation.PopAsync(); mediasToAdd = null; }
protected override void OnDisappearing() { if (mediaSelectPageOpen) { mediaSelectPageOpen = false; } else { if (card == null) { MediaManager.saveMediaLinkManager(); } else { card.saveToFile(); } // Clear selection foreach (AbMediaContent media in selectedMedia) { media.isSelected = false; } } }