private void DataTemplateFull(View view, UserFeedEntryModel userFeedEntryModel)
        {
            var img = view.FindViewById <ImageViewAsync>(Resource.Id.FriendsFeedsPageItemImage);

            if (img.Tag == null || (string)img.Tag != $"{userFeedEntryModel.Date.Ticks}{userFeedEntryModel.User.Name}")
            {
                img.Tag = $"{userFeedEntryModel.Date.Ticks}{userFeedEntryModel.User.Name}";
                string imgUrl = null;
                if (AnimeImageQuery.IsCached(userFeedEntryModel.Id, true, ref imgUrl))
                {
                    img.Into(imgUrl);
                }
                else
                {
                    img.IntoWithTask(AnimeImageQuery.GetImageUrl(userFeedEntryModel.Id, true));
                }
                view.FindViewById <ImageViewAsync>(Resource.Id.FriendsFeedsPageItemUserImage).Into(userFeedEntryModel.User.ImgUrl, new CircleTransformation());
                view.FindViewById(Resource.Id.FriendsFeedsPageItemUserImageButton).Tag        = userFeedEntryModel.User.Wrap();
                view.FindViewById(Resource.Id.FriendsFeedsPageItemUserImageButton).Visibility = ViewStates.Visible;
                view.FindViewById(Resource.Id.FriendsFeedsPageItemImgPlaceholder).Visibility  = ViewStates.Gone;
                view.FindViewById <TextView>(Resource.Id.FriendsFeedsPageItemUserName).Text   = userFeedEntryModel.User.Name;
                view.FindViewById <TextView>(Resource.Id.FriendsFeedsPageItemTitle).Text      = userFeedEntryModel.Title;
                view.FindViewById <TextView>(Resource.Id.FriendsFeedsPageItemContent).Text    = userFeedEntryModel.Description;
                view.FindViewById <TextView>(Resource.Id.FriendsFeedsPageItemDate).Text       = userFeedEntryModel.Date.ToDiffString();
            }
        }
Пример #2
0
        protected override void OnPause()
        {
            _videoAd.Pause(this);
            MemoryWatcher.Watcher.Pause();
#pragma warning disable 4014
            if (Settings.IsCachingEnabled)
            {
                if (AnimeUpdateQuery.UpdatedSomething)
                {
                    DataCache.SaveDataForUser(Credentials.UserName,
                                              ResourceLocator.AnimeLibraryDataStorage.AllLoadedAnimeItemAbstractions.Select(
                                                  abstraction => abstraction.EntryData), AnimeListWorkModes.Anime);
                    AnimeUpdateQuery.UpdatedSomething = false;
                }
                if (MangaUpdateQuery.UpdatedSomething)
                {
                    DataCache.SaveDataForUser(Credentials.UserName,
                                              ResourceLocator.AnimeLibraryDataStorage.AllLoadedMangaItemAbstractions.Select(
                                                  abstraction => abstraction.EntryData), AnimeListWorkModes.Manga);
                    MangaUpdateQuery.UpdatedSomething = false;
                }
            }
            DataCache.SaveVolatileData();
            DataCache.SaveHumMalIdDictionary();
            ViewModelLocator.ForumsMain.SavePinnedTopics();
            FavouritesManager.SaveData();
            AnimeImageQuery.SaveData();
            ResourceLocator.HandyDataStorage.SaveData();
#pragma warning restore 4014
            base.OnPause();
        }
Пример #3
0
        private void DataTemplateFull(View view, int i, UserFeedEntryModel userFeedEntryModel)
        {
            var img = view.FindViewById <ImageViewAsync>(Resource.Id.FriendsFeedsPageItemImage);

            string imgUrl = null;

            if (AnimeImageQuery.IsCached(userFeedEntryModel.Id, true, ref imgUrl))
            {
                img.Into(imgUrl);
            }
            else
            {
                img.IntoWithTask(AnimeImageQuery.GetImageUrl(userFeedEntryModel.Id, true));
            }


            view.FindViewById(Resource.Id.FriendsFeedsPageItemUserImageButton).Tag = userFeedEntryModel.User.Wrap();

            var accImg = view.FindViewById <ImageViewAsync>(Resource.Id.FriendsFeedsPageItemUserImage);

            if (img.Tag == null || (string)img.Tag != userFeedEntryModel.User.ImgUrl)
            {
                accImg.Into(userFeedEntryModel.User.ImgUrl, new CircleTransformation());
            }
        }
        private void DataTemplateFling(View view1, int i, Tuple <string, string> arg3)
        {
            var img = view1.FindViewById <ImageViewAsync>(Resource.Id.AnimeLightItemImage);

            string link = null;

            if (AnimeImageQuery.IsCached(int.Parse(arg3.Item2), true, ref link))
            {
                img.Visibility = img.IntoIfLoaded(link) ? ViewStates.Visible : ViewStates.Gone;
            }
        }
Пример #5
0
        /// <summary>
        ///     Invoked when application execution is being suspended.  Application state is saved
        ///     without knowing whether the application will be terminated or resumed with the contents
        ///     of memory still intact.
        /// </summary>
        /// <param name="sender">The source of the suspend request.</param>
        /// <param name="e">Details about the suspend request.</param>
        private async void OnSuspending(object sender, SuspendingEventArgs e)
        {
            var deferral = e.SuspendingOperation.GetDeferral();

            if (Settings.IsCachingEnabled)
            {
                if (AnimeUpdateQuery.UpdatedSomething)
                {
                    await
                    DataCache.SaveDataForUser(Credentials.UserName,
                                              ResourceLocator.AnimeLibraryDataStorage.AllLoadedAnimeItemAbstractions.Select(
                                                  abstraction => abstraction.EntryData), AnimeListWorkModes.Anime);
                }
                if (MangaUpdateQuery.UpdatedSomething)
                {
                    await
                    DataCache.SaveDataForUser(Credentials.UserName,
                                              ResourceLocator.AnimeLibraryDataStorage.AllLoadedMangaItemAbstractions.Select(
                                                  abstraction => abstraction.EntryData), AnimeListWorkModes.Manga);
                }
            }
            try
            {
                foreach (
                    var file in
                    await ApplicationData.Current.TemporaryFolder.GetFilesAsync(CommonFileQuery.DefaultQuery))
                {
                    if (file.Name.Contains("_cropTemp"))
                    {
                        await file.DeleteAsync(StorageDeleteOption.PermanentDelete);
                    }
                }
            }
            catch (Exception)
            {
                //well...
            }
            await DataCache.SaveVolatileData();

            await DataCache.SaveHumMalIdDictionary();

            await ViewModelLocator.ForumsMain.SavePinnedTopics();

            await FavouritesManager.SaveData();

            await AnimeImageQuery.SaveData();

            await ResourceLocator.HandyDataStorage.SaveData();

            deferral.Complete();
        }
Пример #6
0
        private void DataTemplateFull(View view1, int i, RelatedAnimeData arg3)
        {
            var    img    = view1.FindViewById <ImageViewAsync>(Resource.Id.Image);
            string imgUrl = null;

            if (AnimeImageQuery.IsCached(arg3.Id, arg3.Type == RelatedItemType.Anime, ref imgUrl))
            {
                img.Into(imgUrl);
            }
            else
            {
                img.IntoWithTask(AnimeImageQuery.GetImageUrl(arg3.Id, arg3.Type == RelatedItemType.Anime));
            }
        }
        private void DataTemplateFull(View view1, int i, Tuple <string, string> arg3)
        {
            var    img    = view1.FindViewById <ImageViewAsync>(Resource.Id.AnimeLightItemImage);
            string imgUrl = null;
            var    id     = int.Parse(arg3.Item2);

            if (AnimeImageQuery.IsCached(id, true, ref imgUrl))
            {
                img.Into(imgUrl);
            }
            else
            {
                img.IntoWithTask(AnimeImageQuery.GetImageUrl(id, true));
            }
        }
Пример #8
0
 public static void InitApp()
 {
     Credentials.Init();
     HtmlClassMgr.Init();
     FavouritesManager.LoadData();
     AnimeImageQuery.Init();
     ViewModelLocator.ForumsMain.LoadPinnedTopics();
     if (Settings.NotificationCheckInRuntime && Credentials.Authenticated)
     {
         ResourceLocator.SchdeuledJobsManger.StartJob(ScheduledJob.FetchNotifications, 5, () =>
         {
             ResourceLocator.NotificationsTaskManager.CallTask(BgTasks.Notifications);
         });
     }
     ResourceLocator.HandyDataStorage.Init();
 }
Пример #9
0
        private static async void GuessedSourcePropertyChangedCallback(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            var id = (int)e.NewValue;

            var foundAbstraction =
                ResourceLocator.AnimeLibraryDataStorage.AllLoadedAnimeItemAbstractions.FirstOrDefault(
                    abstraction => abstraction.Id == id);

            if (foundAbstraction != null)
            {
                d.SetValue(AnimeImageExtensions.MalBaseImageSourceProperty, foundAbstraction.ImgUrl);
            }
            else
            {
                d.SetValue(AnimeImageExtensions.MalBaseImageSourceProperty, await AnimeImageQuery.GetImageUrl(id, GetAnimeSource(d)));
            }
        }
Пример #10
0
        private void DataTemplateFling(View view1, int i, RelatedAnimeData arg3)
        {
            var    img  = view1.FindViewById <ImageViewAsync>(Resource.Id.Image);
            string link = null;

            if (AnimeImageQuery.IsCached(arg3.Id, arg3.Type == RelatedItemType.Anime, ref link))
            {
                if (!img.IntoIfLoaded(link))
                {
                    img.Visibility = ViewStates.Invisible;
                }
            }
            else
            {
                img.Visibility = ViewStates.Invisible;
            }
        }
Пример #11
0
        public static async Task InitApp()
        {
            ResourceLocator.ConnectionInfoProvider.Init();
            Credentials.Init();
            FavouritesManager.LoadData();
            AnimeImageQuery.Init();
            ViewModelLocator.ForumsMain.LoadPinnedTopics();
            await ResourceLocator.AiringInfoProvider.Init(false);

            if (Settings.NotificationCheckInRuntime && Credentials.Authenticated)
            {
                ResourceLocator.SchdeuledJobsManger.StartJob(ScheduledJob.FetchNotifications, 5, () =>
                {
                    ResourceLocator.NotificationsTaskManager.CallTask(BgTasks.Notifications);
                });
            }
            ResourceLocator.HandyDataStorage.Init();
            AwaitableCompletion.SetResult(true);
        }
Пример #12
0
        private void DataTemplateFling(View view, int i, UserFeedEntryModel userFeedEntryModel)
        {
            var    img    = view.FindViewById <ImageViewAsync>(Resource.Id.FriendsFeedsPageItemImage);
            var    accImg = view.FindViewById <ImageViewAsync>(Resource.Id.FriendsFeedsPageItemUserImage);
            string link   = null;

            if (AnimeImageQuery.IsCached(userFeedEntryModel.Id, true, ref link))
            {
                img.Visibility = img.IntoIfLoaded(link) ? ViewStates.Visible : ViewStates.Gone;
            }
            else
            {
                img.Visibility = ViewStates.Gone;
            }

            if (!accImg.IntoIfLoaded(userFeedEntryModel.User.ImgUrl, new CircleTransformation()))
            {
                accImg.Visibility = ViewStates.Gone;
            }
        }