public async Task OnNavigatedToAsync(object parameter, NavigationMode mode, IDictionary<string, object> state) { if (state.Any()) { Sub = JsonConvert.DeserializeObject<SubredditItem>((string)state["sub"]); Images = IncrementalSubredditGallery.fromJson((string)state["images"]); state.Clear(); } else { if (mode == NavigationMode.Back) { if (galleryMetaInfo == null) { galleryMetaInfo = BootStrapper.Current.SessionState["GalleryInfo"] as GalleryMetaInfo; Images = galleryMetaInfo?.Gallery as IncrementalSubredditGallery; var sub = (await Reddits.SearchSubreddits(Images.Subreddit)).First(s => s.Data.DisplayName == Images.Subreddit); Sub = new SubredditItem(sub); } ImageSelectedIndex = galleryMetaInfo?.SelectedIndex ?? 0; } else { Activate(parameter); } } await Task.CompletedTask; }
private View GetSubredditView(int position, SubredditItem item, View convertView) { View ret = convertView ?? Activity.LayoutInflater.Inflate(Resource.Layout.Tmpl_SubredditItem, null); ret.FindViewById<TextView>(Resource.Id.TitleTextView).Text = item.Title; ret.FindViewById<TextView>(Resource.Id.SubtitleTextView).Text = $"/r/{item.Url}"; return ret; }
public async Task RemoveSubreddit(SubredditItem subreddit) { subreddit.IsFavorited = false; Subreddits.Remove(Subreddits.Where(s => s.Url == subreddit.Url).First()); await SaveSubreddits(); }
public async Task AddSubreddit(SubredditItem subreddit) { subreddit.IsFavorited = true; Subreddits.Insert(0, subreddit); await SaveSubreddits(); }
protected void NavigateToSub(SubredditItem sub) { string navigationParamName = "Subreddit"; StateHelper.SessionState[navigationParamName] = sub; navigationService.NavigateTo(PageKeyHolder.SubGalleryPageKey, navigationParamName); }
private void BindRedditView(CachingViewHolder holder, SubredditItem item, int position) { holder.FindCachedViewById<TextView>(Resource.Id.TitleTextView).Text = item.Title.Replace("&", "&"); holder.FindCachedViewById<TextView>(Resource.Id.SubtitleTextView).Text = $"/r/{item.Url} • {item.Subscribers} Subscribers"; var addButton = holder.FindCachedViewById<View>(Resource.Id.AddButton); var addButtonVisibilityBinding = new Binding<bool, ViewStates>(item, () => item.IsFavorited, addButton, () => addButton.Visibility).ConvertSourceToTarget((flag) => flag ? ViewStates.Gone : ViewStates.Visible); holder.DeleteBinding(nameof(addButtonVisibilityBinding)); holder.SaveBinding(nameof(addButtonVisibilityBinding), addButtonVisibilityBinding); //addButton.SetCommand("Click", Vm.ToggleFavorite, item); var checkButton = holder.FindCachedViewById<View>(Resource.Id.CheckButton); var checkButtonVisibilityBinding = new Binding<bool, ViewStates>(item, () => item.IsFavorited, checkButton, () => checkButton.Visibility).ConvertSourceToTarget((flag) => !flag ? ViewStates.Gone : ViewStates.Visible); holder.DeleteBinding(nameof(checkButtonVisibilityBinding)); holder.SaveBinding(nameof(checkButtonVisibilityBinding), checkButtonVisibilityBinding); //checkButton.SetCommand("Click", Vm.ToggleFavorite, item); var toggleContainer = holder.FindCachedViewById<View>(Resource.Id.ToggleContainer); toggleContainer.SetCommand("Click", Vm.ToggleFavorite, item); }