public async void Init(MalMessageDetailsNavArgs args, bool force = false) { if (args.WorkMode == MessageDetailsWorkMode.Message) { var arg = args.Arg as MalMessageModel; if (arg == null) //compose new { _newMessage = true; MessageSet.Clear(); NewMessageFieldsVisibility = true; ViewModelLocator.GeneralMain.OffRefreshButtonVisibility = false; MessageTarget = args.NewMessageTarget; RaisePropertyChanged(() => MessageTarget); return; } NewMessageFieldsVisibility = false; _newMessage = false; if (!force && _prevMsg?.Id == arg.Id) { return; } _prevMsg = arg; MessageSet.Clear(); LoadingVisibility = true; if (!force && arg.ThreadId != null && MessageThreads.ContainsKey(arg.ThreadId)) { MessageSet.AddRange(MessageThreads[arg.ThreadId]); } else { var msgs = await new MalMessageDetailsQuery().GetMessagesInThread(arg); msgs.Reverse(); MessageSet.AddRange(msgs); } } else { NewMessageFieldsVisibility = false; var arg = args.Arg as MalComment; if (!force && arg.ComToCom == (_prevArgs?.Arg as MalComment)?.ComToCom) { return; } _prevMsg = null; LoadingVisibility = true; MessageSet.Clear(); MessageSet = new SmartObservableCollection <MalMessageModel>( (await ProfileCommentQueries.GetComToComMessages(arg.ComToCom))); RaisePropertyChanged(() => MessageSet); } _prevArgs = args; LoadingVisibility = false; }
public MessagingDetailsPageFragment(MalMessageDetailsNavArgs args) { _args = args; if (!_args.BackNavHandled) { if (_args.WorkMode == MessageDetailsWorkMode.Message) { ViewModelLocator.NavMgr.RegisterBackNav(PageIndex.PageMessanging, null); } else { ViewModelLocator.NavMgr.RegisterBackNav(PageIndex.PageProfile, new ProfilePageNavigationArgs { TargetUser = ViewModelLocator.ProfilePage.CurrentData.User.Name }); } } }
protected override void OnNavigatedTo(NavigationEventArgs e) { _lastArgs = e.Parameter as MalMessageDetailsNavArgs; if (!_lastArgs.BackNavHandled) { if (_lastArgs.WorkMode == MessageDetailsWorkMode.Message) { ViewModelLocator.NavMgr.RegisterBackNav(PageIndex.PageMessanging, null); } else { ViewModelLocator.NavMgr.RegisterBackNav(PageIndex.PageProfile, new ProfilePageNavigationArgs { TargetUser = MobileViewModelLocator.ProfilePage.CurrentData.User.Name }); } } base.OnNavigatedTo(e); }
protected override void OnNavigatedTo(NavigationEventArgs e) { _lastArgs = e.Parameter as MalMessageDetailsNavArgs; base.OnNavigatedTo(e); }