コード例 #1
0
        public MediaListViewModel(AniList.Models.MediaModels.MediaList model, MediaListDetailType primaryMediaListDetailType,
                                  MediaListDetailType secondaryMediaListDetailType, bool displayTimeUntilAiringCountdown,
                                  MediaListRecyclerAdapter.MediaListProgressDisplayType progressDisplayType,
                                  ScoreFormat scoreFormat) : base(model)
        {
            _displayTimeUntilAiringCountdown = displayTimeUntilAiringCountdown;
            _scoreFormat         = scoreFormat;
            _progressDisplayType = progressDisplayType;

            TitleText           = model.Media?.Title?.UserPreferred;
            DetailPrimaryText   = GetDetailString(model.Media?.Type, primaryMediaListDetailType);
            DetailSecondaryText = GetDetailString(model.Media?.Type, secondaryMediaListDetailType);
            ImageUri            = model.Media?.CoverImage?.Large ?? model.Media?.CoverImage?.Medium;
            IsPriority          = model.Priority > 0;
            ButtonIcon          = GetEpisodeAddIcon();
            ImageColor          = Color.ParseColor(model.Media?.CoverImage?.Color ?? "#00000000");
            WatchingStatus      = GetWatchingStatus();
        }
コード例 #2
0
        public static MediaListViewModel CreateViewModel(AniList.Models.MediaModels.MediaList model, ScoreFormat scoreFormat, bool displayTimeUntilAiringCountdown,
                                                         MediaListRecyclerAdapter.MediaListProgressDisplayType progressDisplayType, bool readOnly, bool showEpisodeAddButtonForRepeatingMedia)
        {
            var secondaryDetail = MediaListDetailType.Progress;

            if (model.Status?.Equals(MediaListStatus.Planning) == true)
            {
                secondaryDetail = MediaListDetailType.EpisodeCountOrMovieLength;
            }
            else if (model.Status?.Equals(MediaListStatus.Completed) == true)
            {
                secondaryDetail = MediaListDetailType.Rating;
            }

            return(new MediaListViewModel(model, MediaListDetailType.FormatAndAiringInfo, secondaryDetail, displayTimeUntilAiringCountdown,
                                          progressDisplayType, scoreFormat)
            {
                IsButtonVisible = !readOnly && (model.Status?.Equals(MediaListStatus.Current) == true || showEpisodeAddButtonForRepeatingMedia && model.Status?.Equals(MediaListStatus.Repeating) == true)
            });
        }
コード例 #3
0
        public void CreateMediaListProgressDisplayItem(MediaListRecyclerAdapter.MediaListProgressDisplayType mediaListProgressDisplay)
        {
            var options = new List <string> {
                "Never", "Releasing\nOnly", "Releasing +\n1 Week", "Always"
            };

            _settingsContainer.AddView(
                SettingsActivity.CreateSpinnerSettingRow(this, "Episode Progress Display",
                                                         "Choose how you'd like to display episode progress. This will change the title color for your currently watched Anime to show how up-to-date you are.",
                                                         options, (int)mediaListProgressDisplay, (sender, args) =>
            {
                Presenter.SetMediaListProgressDisplay((MediaListRecyclerAdapter.MediaListProgressDisplayType)args.Position);

                if (mediaListProgressDisplay != (MediaListRecyclerAdapter.MediaListProgressDisplayType)args.Position)
                {
                    _recreateActivity = true;
                    Intent.PutExtra(MainActivity.RecreateActivityIntentKey, true);
                }
            }));
            _settingsContainer.AddView(SettingsActivity.CreateSettingDivider(this));
        }
コード例 #4
0
 public void SetMediaListProgressDisplay(
     MediaListRecyclerAdapter.MediaListProgressDisplayType mediaListProgressDisplay)
 {
     AniDroidSettings.MediaListProgressDisplay = mediaListProgressDisplay;
 }