예제 #1
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var source = new FriendsDataSource(friendsList, "FriendCell", FriendCell.Key);

            friendsList.RowHeight = 100;

            var set = this.CreateBindingSet <FriendsViewController, FriendsViewModel>();

            set.Bind(showFriendsButton).To(vm => vm.GetFriendsCommand);
            set.Bind(source).To(vm => vm.Friends);
            set.Apply();

            source.OnRowSelected += (f) => ViewModel.NavigateToCreateMessageCommand.Execute(f);

            friendsList.Source = source;

            friendsListener = new MvxPropertyChangedListener(ViewModel).Listen(() => ViewModel.Friends, (sender, e) =>
            {
                friendsList.ReloadData();
            });

            NavigationController.TopViewController.NavigationItem.BackBarButtonItem =
                new UIBarButtonItem("Message", UIBarButtonItemStyle.Plain, (sender, e) => { ViewModel.ExitCommand.Execute(); });
        }
예제 #2
0
        protected override void OnDestroy()
        {
            base.OnDestroy();

            _urlChangedListener.Dispose();
            _urlChangedListener = null;
        }
예제 #3
0
        public override View OnCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
        {
            var ignored = base.OnCreateView(inflater, container, savedInstanceState);

            this.EnsureBindingContextIsSet(savedInstanceState);
            var view = this.BindingInflate(Resource.Layout.FriendsFragmentView, container, false);

            friendsListView = view.FindViewById <ListView>(Resource.Id.friendsList);
            progress        = view.FindViewById <ProgressBar>(Resource.Id.busyIndicator);

            friendsAdapter          = new FriendsAdapter(this.Activity, ViewModel);
            friendsListView.Adapter = friendsAdapter;

            friendsListener = new MvxPropertyChangedListener(ViewModel).Listen(() => ViewModel.Friends, (sender, e) =>
            {
                friendsAdapter.NotifyDataSetChanged();
            });

            friendsListView.ItemClick += (sender, e) =>
            {
                var selected = ViewModel.Friends[e.Position];
                ViewModel.NavigateToCreateMessageCommand.Execute(selected);
            };

            return(view);
        }
예제 #4
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SupportActionBar.SetDisplayHomeAsUpEnabled(true);

            _webView = FindViewById <WebView>(Resource.Id.webbrowser_view_webview);
            WebSettings settings = _webView.Settings;

            settings.JavaScriptEnabled = true;
            settings.SetAppCacheEnabled(true);
            settings.BuiltInZoomControls = true;
            settings.SetPluginState(WebSettings.PluginState.On);

            _webView.SetWebChromeClient(new WebChromeClient());

            CookieSyncManager.CreateInstance(this);
            CookieManager cookieManager = CookieManager.Instance;

            cookieManager.RemoveSessionCookie();
            String cookieString = "param=value";

            cookieManager.SetCookie("https://thebridge.spaces.nexudus.com/", cookieString);
            CookieSyncManager.Instance.Sync();

            var abc = new Dictionary <String, String> {
                ["Cookie"] = cookieString
            };

            _webView.LoadUrl(ViewModel.Url, abc);

            try
            {
                if (!string.IsNullOrEmpty(ViewModel.Url))
                {
                    _webView?.SetWebViewClient(new WebViewClient());
                    _webView?.LoadUrl(ViewModel.Url);
                }
            }
            catch (Exception ex)
            {
                Mvx.Resolve <IExceptionService>().HandleException(ex);
            }

            _urlChangedListener = new MvxPropertyChangedListener(ViewModel).Listen(() => ViewModel.Url, () =>
            {
                RunOnUiThread(() =>
                {
                    _webView.StopLoading();
                    _webView.LoadUrl(ViewModel.Url);
                });
            });
        }
예제 #5
0
        public void SetupBindings()
        {
            this.DelayBind(() =>
            {
                _stateListener = new MvxPropertyChangedListener(ViewModel).Listen(() => ViewModel.State, () =>
                {
                    BeginInvokeOnMainThread(() =>
                    {
                        UIImage image;

                        if (ViewModel.State == LockState.Open)
                        {
                            image = UIImage.FromFile("Icons/doorlock_icon_003.png").ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);

                            TitleLabel.TextColor = UIColor.White;
                            TitleLabel.TextColor = UIColor.White;
                            Image.Image          = image;
                        }
                        else if (ViewModel.State == LockState.Opening)
                        {
                            image = UIImage.FromFile("Icons/doorlock_icon_002.png").ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);

                            Image.Image = image;
                        }
                        else
                        {
                            image = UIImage.FromFile("Icons/doorlock_icon_001.png").ImageWithRenderingMode(UIImageRenderingMode.AlwaysOriginal);

                            TitleLabel.TextColor    = iOS.Appearance.Colors.DefaultTextColor;
                            SubTitleLabel.TextColor = iOS.Appearance.Colors.SubTextColor;
                        }

                        Image.Image = image;
                    });
                });

                var set = this.CreateBindingSet <LockItemView, AccessControlItemViewModel>();
                set.Bind(TitleLabel).To(vm => vm.Title);
                set.Bind(SubTitleLabel).To(vm => vm.SubTitle);
                set.Bind(BackPanel).For("AccessControlBackground").To(vm => vm.State);
                set.Bind(BackPanel).For("AccessControlBorder").To(vm => vm.State);
                //set.Bind(ImageView).For("AccessControlImage").To(vm => vm.State);
                set.Bind(LockButton).To(vm => vm.OpenCommand);
                set.Apply();
            });
        }
예제 #6
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            var source = new HistoryDataSource(historyTable, "HistoryCell", HistoryCell.Key);

            historyTable.RowHeight = 70;
            var set = this.CreateBindingSet <HistoryViewController, HistoryViewModel>();

            set.Bind(source).To(vm => vm.SentMessages);
            set.Apply();

            historyTable.Source = source;

            historyListener = new MvxPropertyChangedListener(ViewModel).Listen(() => ViewModel.SentMessages, (sender, e) =>
            {
                historyTable.ReloadData();
            });
        }
예제 #7
0
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            busyListener = new MvxPropertyChangedListener(ViewModel).Listen(() => ViewModel.IsBusy, (sender, e) =>
            {
                var indicator = new UIActivityIndicatorView(new CGRect(0, 0, 20, 20));
                var button    = new UIBarButtonItem(indicator);

                if (ViewModel.IsBusy)
                {
                    NavigationController.TopViewController.NavigationItem.SetRightBarButtonItem(button, true);
                    indicator.StartAnimating();
                }
                else
                {
                    NavigationController.TopViewController.NavigationItem.RightBarButtonItem = null;
                    indicator.StopAnimating();
                }
            });
        }