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();
        }
Пример #2
0
        /// <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;
                }
            }
        }