protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.SimpleList); discussionViewModel = new DiscussionsViewModel(); FindViewById<TextView>(Resource.Id.screen_title).Text = "Fóruns Disponíveis"; ListView list = FindViewById<ListView>(Resource.Id.list); adapter = new SimpleListAdapter<Discussion>(this, discussionViewModel.discussions); list.Adapter = adapter; list.ItemClick += new System.EventHandler<AdapterView.ItemClickEventArgs>(list_ItemClick); actionBar = SupportActionBar; actionBar.SetHomeButtonEnabled(false); actionBar.SetDisplayHomeAsUpEnabled(false); actionBar.SetDisplayUseLogoEnabled(false); actionBar.SetDisplayShowHomeEnabled(false); actionBar.Title = "Fóruns"; ServiceLocator.Messenger.Subscribe<BaseViewMessage>(m => { switch (m.Content.message) { case BaseViewMessage.MessageTypes.CONNECTION_ERROR: ServiceLocator.Dispatcher.invoke(() => { Toast.MakeText(this, "Erro de conexão", ToastLength.Short).Show(); dialog.Dismiss(); }); break; case BaseViewMessage.MessageTypes.FUTURE_POSTS_LOADED: ServiceLocator.Dispatcher.invoke(() => { intent = new Intent(this, typeof(PostActivity)); StartActivity(intent); }); break; case BaseViewMessage.MessageTypes.NO_NEW_POSTS: ServiceLocator.Dispatcher.invoke(() => { Toast.MakeText(this, "Não há novos posts", ToastLength.Short).Show(); dialog.Dismiss(); }); break; default: break; } }); }
void DiscussionPage_Loaded(object sender, RoutedEventArgs e) { progressBar = new PerformanceProgressBar(); progressBar.IsIndeterminate = true; ServiceLocator.Dispatcher = new DispatchAdapter(); discussionViewModel = new DiscussionsViewModel(); _discussions.ItemsSource = discussionViewModel.discussions; _discussions.SelectionChanged -= _discussions_SelectionChanged; _discussions.SelectionChanged += new SelectionChangedEventHandler(_discussions_SelectionChanged); ServiceLocator.Messenger.Subscribe<BaseViewMessage>(m => { switch (m.Content.message) { case BaseViewMessage.MessageTypes.CONNECTION_ERROR: ServiceLocator.Dispatcher.invoke(() => { ToastPrompt toast = new ToastPrompt(); toast.Message = "Erro de conexão"; toast.Show(); if (ContentPanel.Children.Contains(progressBar)) this.ContentPanel.Children.Remove(progressBar); _discussions.SelectedIndex = -1; }); break; case BaseViewMessage.MessageTypes.FUTURE_POSTS_LOADED: ServiceLocator.Dispatcher.invoke(() => { NavigationService.Navigate(new Uri("/Views/PostPage.xaml", UriKind.Relative)); }); break; case BaseViewMessage.MessageTypes.NO_NEW_POSTS: ServiceLocator.Dispatcher.invoke(() => { ToastPrompt noNewMessages = new ToastPrompt(); noNewMessages.Message = "Não há novos posts"; noNewMessages.Show(); }); break; default: break; } }); }