public GenerateViewModel(IMvxMessenger messenger, IDisplayDimensionsService displayDimensionsService,
                          IMandelbrotTaskGenerator mandelbrotTaskGenerator)
 {
     _displayDimensionsService = displayDimensionsService;
     _mandelbrotTaskGenerator = mandelbrotTaskGenerator;
     _mvxSubscriptionToken = messenger.SubscribeOnMainThread<TickMessage>(OnTick);
     _autoPlay = true;
 }
        public override void Prepare()
        {
            base.Prepare();

            _languageToken = Messenger.Subscribe <LanguageChangedMessage>(OnLanguageChanged);
        }
        public TouchNotifications()
        {
            var messenger = Mvx.Resolve <IMvxMessenger>();

            _notificationRegisterMessageToken = messenger.Subscribe <NotificationRegisterMessage>(message =>
            {
                if (message.Registered)
                {
                    RegistrationId = message.RegistrationId;
                    IsRegistered   = true;

                    if (Registered != null)
                    {
                        Registered(
                            this, new DidRegisterForNotificationsEventArgs {
                            RegistrationId = RegistrationId
                        });
                    }
                }
                else
                {
                    IsRegistered = false;

                    if (Unregistered != null)
                    {
                        Unregistered(this, EventArgs.Empty);
                    }
                }
            });
            _errorMessageToken = messenger.Subscribe <NotificationErrorMessage>(message => {
                if (Error != null)
                {
                    Error(
                        this, new NotificationErrorEventArgs {
                        Message = message.Message
                    });
                }
            });
            _notificationsToken = messenger.Subscribe <NotificationReceivedMessage>(async message => {
                if (message.Local)
                {
                    if (Configuration.LocalNotification != null)
                    {
                        await Configuration.LocalNotification(message.AlertAction, message.Body);
                    }
                    else
                    {
                        await
                        Configuration.DefaultLocalNotification(message.AlertAction, message.Body);
                    }
                }
                else
                {
                    if (Configuration.RemoteNotification != null)
                    {
                        await Configuration.RemoteNotification(message.Body);
                    }
                    else
                    {
                        await Configuration.DefaultRemoteNotification(message.Body);
                    }
                }
            });
        }
示例#4
0
 public void Unsubscribe(MvxSubscriptionToken token)
 {
     RemoveDisposable(token);
     token.Dispose();
 }
 public void RegisterConnectionStatusChangeNotificationListener()
 {
     _tokenConnectionChange = _messenger.Subscribe <ConnectionStatusChangeNotification>(OnConnectionStatusChangeNotification);
 }
 public CloudToDeviceCommunicationViewModel(IMvxMessenger messageService)
 {
     _outputChangedMessageToken = messageService.Subscribe <CloudMessageReceivedMessage>(HandleCloudToDeviceMessage);
 }
示例#7
0
 public MessengerTestHelper(IMvxMessenger messenger)
 {
     _messenger = messenger;
     _token     = _messenger.Subscribe <T>(t => Message = t);
 }
示例#8
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            ViewModel.View = this;
            // Perform any additional setup after loading the view, typically from a nib.



            //subscribe mapkit token
            mMapKitToken = Mvx.Resolve <IMvxMessenger> ().SubscribeOnMainThread <NavigateMapMessage> (message => {
                if (message.Sender.GetType() != typeof(ParkingSummaryViewModel) && message.Sender.GetType() != typeof(ParkingReservedViewModel))
                {
                    return;
                }

                if (!isShowRoute)
                {
                    //FindRouteAndDrawRoute (message.SourceLat, message.SourceLng, message.DestinationLat, message.DestinationLng, message.DirectionsMode);
                    FindRouteAndDrawRoute(message.DestinationLat, message.DestinationLng, message.DirectionsMode);
                }
            });

            btnBarStart = new UIBarButtonItem()
            {
                Title = ViewModel.TextSource.GetText("StartText")
            };
            btnBarOverviewResume = new UIBarButtonItem()
            {
                Title = ViewModel.TextSource.GetText("OverviewText")
            };

            var set = this.CreateBindingSet <ParkingMapView, ParkingMapViewModel> ();

            var source = new RouteTableSource(tableRoutes, this);

            set.Bind(source).For(v => v.ItemsSource).To(vm => vm.Routes);

            var stepSource = new StepsCollectionSource(collectionRoutes, StepCell.Key);

            set.Bind(stepSource).For(v => v.ItemsSource).To(vm => vm.Routes);

            set.Bind(btnInfo).To(vm => vm.ShowRouteInfoCommand);

            set.Bind(btnStart).To(vm => vm.StartNavigateCommand);
            set.Bind(collectionRoutes).For(v => v.Hidden).To(vm => vm.IsNavigating).WithConversion("BooleanToHidden");
            set.Bind(vStart).For(v => v.Hidden).To(vm => vm.HasStaredNavigation);
            set.Bind(vStart).For(v => v.Hidden).To(vm => vm.ExpectedTime).WithConversion("ExpectedTimeToBool");

            set.Bind(lbTravelDistance).To(vm => vm.TotalDistance).WithConversion("Distance");
            set.Bind(lbExpectedTime).To(vm => vm.ExpectedTime).WithConversion("ExpectedTime");

            set.Bind(btnBarOverviewResume).For(b => b.Title).To(vm => vm.OverviewResumeTitle);
            set.Bind(btnBarOverviewResume).To(vm => vm.ChangeNavigationModeCommand);
            set.Bind(btnBarStart).To(vm => vm.StartNavigateCommand);

            if (ViewModel.Status == ParkingStatus.Rented)
            {
                set.Bind(NavigationItem).For(v => v.Title).To(vm => vm.TotalParkingTime).WithConversion("ParkingTimer");
            }
            else
            {
                set.Bind(NavigationItem).For(v => v.Title).To(vm => vm.Title);
            }

            #region Language Binding

            #endregion

            set.Apply();

            tableRoutes.Source = source;
            tableRoutes.ReloadData();

            collectionRoutes.Source   = stepSource;
            collectionRoutes.Delegate = this;
            collectionRoutes.ReloadData();

            btnInfo.Hidden = true;

            mapView.WeakDelegate      = this;
            mapView.ShowsUserLocation = true;
            mapView.UserTrackingMode  = MKUserTrackingMode.Follow;

            UIRotationGestureRecognizer rotateGesture = new UIRotationGestureRecognizer(HeadingChanged);
            rotateGesture.ShouldRecognizeSimultaneously = ShouldRecognizeSimultaneously;

            mapView.AddGestureRecognizer(rotateGesture);

            //20151013 (Duy-BSS) : Whenever put back the Tab, please uncomment this to get the exacted Map height
            //cstBottomSpace.Constant = UIScreen.MainScreen.Bounds.Height / 8f;
        }
示例#9
0
 public ItemsViewModel(IItemService itemService, IMvxMessenger messenger)
 {
     _itemService = itemService;
     ReloadList();
     _collectionChangedToken = messenger.Subscribe <CollectionChangedMessage>(OnCollectionChanged);
 }
示例#10
0
 public TrailDetailsViewModel(ILocationService locationService, ITrailService trailService, IMvxMessenger messenger)
 {
     //SetTrailInfo(trailService.Trails[locationService.TrailId]);
     _token = messenger.Subscribe <TrailMessage>(OnTrailMessage);
 }
示例#11
0
 public SecondViewModel(ITickService tickService, IMvxMessenger messenger)
 {
     _tickService = tickService;
     _token       = messenger.Subscribe <TickMessage>(OnTick);
     Update();
 }
 protected void RegisterSubscriptions()
 {
     _propertyPickerToken = _messenger.Subscribe <PropertyPickerMessage>(OnPropertyPickeryMessage);
 }
 protected override void Dispose(bool disposing)
 {
     _token?.Dispose();
     _token = null;
     base.Dispose(disposing);
 }
示例#14
0
 public MenuViewModel(IApplicationService application, IFeaturesService featuresService)
 {
     _application            = application;
     _featuresService        = featuresService;
     _notificationCountToken = Messenger.SubscribeOnMainThread <NotificationCountMessage>(OnNotificationCountMessage);
 }
示例#15
0
 void OnPage1ViewLoaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
 {
     logger.LogInfo("Page1View: OnPage1ViewLoaded.");
     timerMessageToken = messenger.SubscribeOnMainThread <TimerMessage>(OnTimerMessage);
 }
示例#16
0
        public ScanAsMessageViewModel(IMvxMessenger messenger, IWatcher watcher)
        {
            _watcher = watcher;

            _messageToken = messenger.SubscribeOnMainThread <MessageReceived>(MessageRecieved);
        }
示例#17
0
 private void RegisterSubscriptions()
 {
     _cityPickerToken  = _messenger.Subscribe <CityPickerMessage>(OnCityPickerMessage);
     _statePickerToken = _messenger.Subscribe <StatePickerMessage>(OnStatePickerMessage);
 }
示例#18
0
 protected void RegisterSubscriptions()
 {
     _usersUpdatedMessageToken      = _messenger.Subscribe <UsersUpdatedMessage> (OnUsersUpdatedMessaged);
     _propertiesUpdatedMessageToken = _messenger.Subscribe <PropertiesUpdatedMessage>(OnPropertiesUpdatedMessaged);
 }
示例#19
0
 public RestaurantViewModel()
 {
     _dataService = Mvx.Resolve <IDataService>();
     _token       = Mvx.Resolve <IMvxMessenger>().Subscribe <DataChangeMessage>(OnDataChange);
     Items        = _dataService.AllItems();
     //Items = new List<RestaurantItem>() {
     //	new RestaurantItem() {
     //		Name = "Cafe Deadend",
     //		Type = "Coffee & Tea Shop",
     //		Location = "G/F,72 Po Hing Fong, Sheung Wan, Hong Kong",
     //		PhoneNumber = "232-923423",
     //		ImageName = "cafedeadend",
     //		IsVisited = false
     //	},
     //	new RestaurantItem() {
     //		Name = "Homei",
     //		Type = "Cafe",
     //		Location = "Shop B, G/F, 22-24A Tai Ping San Street SOHO, Sheung Wan, Hong Kong",
     //		PhoneNumber = "348 - 233423",
     //		ImageName = "homei",
     //		IsVisited = false
     //	},
     //	new RestaurantItem() {
     //		Name = "Teakha",
     //		Type =  "Tea House",
     //		Location =  "Shop B, 18 Tai Ping Shan Road SOHO, Sheung Wan, Hong Kong",
     //		PhoneNumber =  "354-243523",
     //		ImageName = "teakha",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Cafe loisl",
     //		Type =  "Austrian / Causual Drink",
     //		Location = "Shop B, 20 Tai Ping Shan Road SOHO, Sheung Wan, Hong Kong",
     //		PhoneNumber =  "453-333423",
     //		ImageName = "cafeloisl", IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Petite Oyster",
     //		Type =  "French",
     //		Location =  "24 Tai Ping Shan Road SOHO, Sheung Wan, Hong Kong",
     //		PhoneNumber =  "983-284334",
     //		ImageName = "petiteoyster",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "For Kee Restaurant",
     //		Type =  "Bakery",
     //		Location =  "Shop J-K., 200 Hollywood Road, SOHO, Sheung Wan, Hong Kong",
     //		PhoneNumber =  "232-434222",
     //		ImageName = "forkeerestaurant",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Po's Atelier",
     //		Type =  "Bakery",
     //		Location =  "G/F, 62 Po Hing Fong, Sheung Wan, Hong Kong",
     //		PhoneNumber =  "234-834322",
     //		ImageName = "posatelier",
     //		IsVisited =  false},
     //	new RestaurantItem() {
     //		Name = "Bourke Street Backery",
     //		Type =  "Chocolate",
     //		Location =  "633 Bourke St Sydney New South Wales 2010 Surry Hills",
     //		PhoneNumber =  "982-434343",
     //		ImageName = "bourkestreetbakery",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Haigh's Chocolate",
     //		Type =  "Cafe",
     //		Location =  "412-414 George St Sydney New South Wales",
     //		PhoneNumber =  "734-232323",
     //		ImageName = "haighschocolate",
     //		IsVisited =  false
     //			},
     //	new RestaurantItem() {
     //		Name = "Palomino Espresso",
     //		Type =  "American / Seafood",
     //		Location = "Shop 1 61 York St Sydney New South Wales",
     //		PhoneNumber =  "872-734343",
     //		ImageName = "palominoespresso",
     //		IsVisited =  false
     //			},
     //	new RestaurantItem() {
     //		Name = "Upstate",
     //		Type =  "American",
     //		Location =  "95 1st Ave New York, NY 10003",
     //		PhoneNumber =  "343-233221",
     //		ImageName = "upstate",
     //		IsVisited =  false
     //			},
     //	new RestaurantItem() {
     //		Name = "Traif",
     //		Type =  "American",
     //		Location =  "229 S 4th St Brooklyn, NY 11211",
     //		PhoneNumber =  "985-723623",
     //		ImageName = "traif",
     //		IsVisited = false
     //			},
     //	new RestaurantItem() {
     //		Name = "Graham Avenue Meats",
     //		Type =  "Breakfast & Brunch",
     //		Location =  "445 Graham Ave Brooklyn, NY 11211",
     //		PhoneNumber =  "455-232345",
     //		ImageName = "grahamavenuemeats",
     //		IsVisited =  false},
     //	new RestaurantItem() {
     //		Name = "Waffle & Wolf",
     //		Type =  "Coffee & Tea",
     //		Location =  "413 Graham Ave Brooklyn, NY 11211",
     //		PhoneNumber =  "434-232322",
     //		ImageName = "wafflewolf",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Five Leaves",
     //		Type =  "Coffee & Tea",
     //		Location =  "18 Bedford Ave Brooklyn, NY 11222",
     //		PhoneNumber =  "343-234553",
     //		ImageName = "fiveleaves",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Cafe Lore",
     //		Type =  "Latin American",
     //		Location =  "Sunset Park 4601 4th Ave Brooklyn, NY 11220",
     //		PhoneNumber =  "342-455433",
     //		ImageName = "cafelore",
     //		IsVisited =  false
     //			},
     //	new RestaurantItem() {
     //		Name = "Confessional",
     //		Type =  "Spanish",
     //		Location =  "308 E 6th St New York, NY 10003",
     //		PhoneNumber =  "643-332323",
     //		ImageName = "confessional",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Barrafina",
     //		Type =  "Spanish",
     //		Location =  "54 Frith Street London W1D 4SL United Kingdom",
     //		PhoneNumber =  "542-343434",
     //		ImageName = "barrafina",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Donostia",
     //		Type =  "Spanish",
     //		Location =  "10 Seymour Place London W1H 7ND United Kingdom",
     //		PhoneNumber =  "722-232323",
     //		ImageName = "donostia",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Royal Oak",
     //		Type =  "British",
     //		Location = "2 Regency Street London SW1P 4BZ United Kingdom",
     //		PhoneNumber =  "343-988834",
     //		ImageName = "royaloak",
     //		IsVisited =  false
     //	},
     //	new RestaurantItem() {
     //		Name = "Thai Cafe",
     //		Type =  "Thai",
     //		Location = "22 Charlwood Street London SW1V 2DY Pimlico",
     //		PhoneNumber =  "432-344050",
     //		ImageName = "thaicafe",
     //		IsVisited =  false
     //	}
     //};
 }
 protected void Unsubscribe <TMessage> (MvxSubscriptionToken id)
     where TMessage : MvxMessage
 {
     MvxMessenger.Unsubscribe <TMessage>(id);
 }
        public RoomViewModel(JabbrConnection jabbr, Room room) : base()
        {
            Connection = jabbr;
            Room       = room;

            TypedMessage = string.Empty;
            Messages     = new ObservableCollection <MessageViewModel> ();

            subTokMessageReceived = Messenger.SubscribeOnMainThread <JabbrMessageReceivedMessage> (msg => {
                if (!msg.RoomName.Equals(Room.Name, StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }

                lock (Messages)
                    Messages.Add(new MessageViewModel(msg.Message));
            });

            subTokUserJoin = Messenger.Subscribe <JabbrUserJoinedMessage> (msg => {
                if (!msg.RoomName.Equals(Room.Name, StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }

                var uvm = new UserViewModel(msg.User);

                lock (Users)
                {
                    if (!Users.Contains(uvm))
                    {
                        _users.Add(uvm);
                    }
                }

                RaisePropertyChanged(() => Users);
            });

            subTokUserLeft = Messenger.Subscribe <JabbrUserLeftMessage> (msg => {
                if (!msg.RoomName.Equals(Room.Name, StringComparison.OrdinalIgnoreCase))
                {
                    return;
                }

                var uvm = new UserViewModel(msg.User);

                lock (Users)
                {
                    if (Users.Contains(uvm))
                    {
                        _users.Remove(uvm);
                    }
                }

                RaisePropertyChanged(() => Users);
            });

            subTokCurrentRoomChgd = Messenger.Subscribe <CurrentRoomChangedMessage>(msg => {
                IsCurrent = msg.NewRoom.Room.Name.Equals(this.Room.Name, StringComparison.OrdinalIgnoreCase);
                RaisePropertyChanged(() => IsCurrent);
            });

            LoadRoom();
        }
示例#22
0
 public FirstViewModel(ILocationService service, IMvxMessenger messenger)
 {
     _token = messenger.Subscribe <LocationMessage>(OnLocationMessage);
 }
示例#23
0
 protected MessageHandler(IMvxMessenger messenger)
 {
     subscriptionToken = messenger.Subscribe <TMessage>(Handle);
 }
示例#24
0
 public void SetSubscription(Action <NavigationMessage> function)
 {
     _navigationSubscriptionToken = _messenger.Subscribe <NavigationMessage>(function);
 }
示例#25
0
        protected override void OnViewModelSet()
        {
            //this.Parent.RequestWindowFeature (WindowFeatures.NoTitle);

            //RequestWindowFeature (WindowFeatures.NoTitle);

            homeViewModel = (HomeViewModel)ViewModel;

            SetContentView(Resource.Layout.Content_Frame);

            MenuId = Resource.Menu.HomeMenu;


            LegacyBar = FindViewById <LegacyBar.Library.Bar.LegacyBar>(Resource.Id.actionbar);

            //LegacyBar.SetHomeLogo(Resource.Drawable.jabbr_home_icon);
            AddHomeAction(() => {
                slidingMenu.Toggle();
            }, Resource.Drawable.jabbr_home_icon);

            LegacyBar.Click += (sender, e) => {
                slidingMenu.Toggle();
            };
            LegacyBar.Title = "JabbR";



            slidingMenu = new SlidingMenu(this)
            {
                Mode                       = MenuMode.LeftRight,
                TouchModeAbove             = TouchMode.Fullscreen,
                BehindOffset               = 80,
                ShadowWidth                = 20,
                ShadowDrawableRes          = Resource.Drawable.SlidingMenuShadow,
                SecondaryShadowDrawableRes = Resource.Drawable.SlidingMenuShadowRight
            };

            slidingMenu.AttachToActivity(this, SlideStyle.Content);
            slidingMenu.SetMenu(Resource.Layout.Menu_Frame);
            //slidingMenu.ShadowDrawableRes = Resource.Drawable.SlidingMenuShadow;

            menuFragment           = new MenuFragment();
            menuFragment.ViewModel = ViewModel;

            SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.menu_frame, menuFragment).Commit();

            slidingMenu.SetSecondaryMenu(Resource.Layout.UserList_Frame);
            //slidingMenu.SecondaryShadowDrawableRes = Resource.Drawable.SlidingMenuShadowRight;

            emptyFragment           = new EmptyFragment();
            emptyFragment.ViewModel = this.ViewModel;

            SupportFragmentManager.BeginTransaction()
            .Replace(Resource.Id.content_frame, emptyFragment).Commit();


            //TODO: Put some kind of default view in the chat fragment space

            homeViewModel.PropertyChanged += (sender, e) => {
                Console.WriteLine("PropertyChanged: " + e.PropertyName);

                if (e.PropertyName == "CurrentRoom")
                {
                    if (homeViewModel.CurrentRoom == null)
                    {
                        if (emptyFragment == null)
                        {
                            emptyFragment = new EmptyFragment();
                        }

                        chatFragment = null;

                        SupportFragmentManager.BeginTransaction()
                        .Replace(Resource.Id.content_frame, emptyFragment).Commit();

                        LegacyBar.Title = "JabbR";

                        showActions = false;
                        ToggleActions();

                        userListFragment.ViewModel = null;

                        SupportFragmentManager.BeginTransaction()
                        .Replace(Resource.Id.userlist_frame, userListFragment).Commit();
                        return;
                    }

                    showActions = true;


                    if (chatFragment == null)
                    {
                        chatFragment           = new ChatFragment();
                        chatFragment.ViewModel = homeViewModel.CurrentRoom;

                        SupportFragmentManager.BeginTransaction()
                        .Replace(Resource.Id.content_frame, chatFragment).Commit();
                    }
                    else
                    {
                        chatFragment.ViewModel = homeViewModel.CurrentRoom;
                    }

                    if (userListFragment == null)
                    {
                        userListFragment           = new UserListFragment();
                        userListFragment.ViewModel = homeViewModel.CurrentRoom;

                        SupportFragmentManager.BeginTransaction()
                        .Replace(Resource.Id.userlist_frame, userListFragment).Commit();
                    }
                    else
                    {
                        userListFragment.ViewModel = homeViewModel.CurrentRoom;
                    }


                    ToggleActions();

                    slidingMenu.Toggle();

                    this.RunOnUiThread(() => LegacyBar.Title = homeViewModel.CurrentRoom.Room.Name);
                }
            };

            messenger = Mvx.Resolve <IMvxMessenger> ();
            _mvxMsgTokUserSelected = messenger.SubscribeOnMainThread <UserSelectedMessage> (msg => {
                chatFragment.AppendText("@" + msg.User.Name);

                slidingMenu.ShowContent(true);
            });
        }
 public BaseConferenceViewModel()
 {
     _mvxSubscription = Subscribe <LoadingChangedMessage>(message => RepositoryOnLoadingChanged());
 }
示例#27
0
 public override void Start()
 {
     _busySubscriptionToken = _messenger.Subscribe <BusyIndicatorMessage>(ChangeIsBusy);
 }
示例#28
0
 public HomeViewModel(ICollectionService collectionService, IMvxMessenger messenger)
 {
     _collectionService = collectionService;
     _collectionChangedSubscriptionToken = messenger.Subscribe <CollectionChangedMessage>(OnCollectionChanged);
     UpdateLatest();
 }
示例#29
0
 private void RegisterMessengers()
 {
     actionSubscriptionToken = Mvx.Resolve <IMvxMessenger>().SubscribeOnMainThread <ViewModelActionMessage>(HandleViewModelAction);
 }
示例#30
0
文件: MapView.cs 项目: klzig/MapX
 public MapView()
 {
     _messenger     = Mvx.Resolve <IMvxMessenger>();
     _locationToken = _messenger.Subscribe <LocationMessage>(OnLocationMessage);
 }
示例#31
0
 protected void RegisterSubscriptions()
 {
     _messenger = Mvx.Resolve <IMvxMessenger> ();
     _usersUpdatedMessageToken = _messenger.Subscribe <UsersUpdatedMessage> (OnUsersUpdatedMessaged);
 }