protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); ViewModel = MainPageViewFragment.ViewModel; SetContentView(Resource.Layout.custom_entry_dialog_layout); Window.SetLayout(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.WrapContent); SetCancelable(false); cancelButton = (Button)FindViewById(Resource.Id.cancel_button); addButton = (Button)FindViewById(Resource.Id.add_button); activityNameEditText = (EditText)FindViewById(Resource.Id.add_entry_item); activityNameEditText.ClearComposingText(); activityNameEditText.TextChanged += OnTextChanged; }
protected override void DoAttachBindings() { base.DoAttachBindings(); Bindings.Add(this.SetBinding(() => ViewModel.HeaderViewModel.ChatName, () => _chatNameEditText.Text, BindingMode.TwoWay)); Bindings.Add(this.SetBinding(() => ViewModel.HeaderViewModel.ChatName, () => _chatNameText.Text)); Bindings.Add(this.SetBinding(() => ViewModel.MembersCountText, () => _chatMembersCountTextView.Text)); Bindings.Add(this.SetBinding(() => ViewModel.HeaderViewModel.AvatarUrl).WhenSourceChanges(() => { Execute.BeginOnUIThread(() => { _chatPhotoImageView.LoadImageWithTextPlaceholder( ViewModel.HeaderViewModel.AvatarUrl, ViewModel.HeaderViewModel.ChatName, new AvatarPlaceholderDrawable.AvatarStyles { BackgroundHexColors = StyleHelper.Style.ChatAvatarStyles.BackgroundHexColors, Size = new System.Drawing.Size(64, 64) }, x => x.Transform(new CircleTransformation())); }); })); Bindings.Add(this.SetBinding(() => _imagePicker.ViewModel.ImageCacheKey).WhenSourceChanges(() => { var newImageCacheKey = _imagePicker.ViewModel.ImageCacheKey; if (string.IsNullOrEmpty(newImageCacheKey) || newImageCacheKey == _previewImageKey) { return; } _previewImageKey = newImageCacheKey; Execute.BeginOnUIThread(() => { ViewModel.HeaderViewModel.StartEditingCommand.Execute(null); }); ImageService.Instance .LoadFile(_previewImageKey) .DownSampleInDip(95, 95) .Transform(new CircleTransformation()) .IntoAsync(_chatEditedPhotoImageView); })); Bindings.Add(this.SetBinding(() => ViewModel.HeaderViewModel.IsMuted, () => _muteNotificationsSwitch.Checked) .ConvertSourceToTarget(x => !x)); Bindings.Add(this.SetBinding(() => ViewModel.IsBusy, () => _muteNotificationsSwitch.Clickable) .ConvertSourceToTarget(x => !x)); Bindings.Add(this.SetBinding(() => ViewModel.IsLoading).WhenSourceChanges(() => { _busyOverlayView.Visibility = BoolToViewStateConverter.ConvertGone(ViewModel.IsLoading); _chatMembersCountTextView.Visibility = BoolToViewStateConverter.ConvertGone(!ViewModel.IsLoading); })); Bindings.Add(this.SetBinding(() => ViewModel.CanEdit, BindingMode.OneTime).WhenSourceChanges(() => { if (ViewModel.CanEdit) { _changeChatPhotoButton.Visibility = ViewStates.Visible; _chatNameEditText.Visibility = ViewStates.Visible; _chatNameText.Visibility = ViewStates.Gone; } else { _changeChatPhotoButton.Visibility = ViewStates.Gone; _chatNameEditText.Visibility = ViewStates.Gone; _chatNameText.Visibility = ViewStates.Visible; _chatNameText.Selected = true; } })); Bindings.Add(this.SetBinding(() => ViewModel.HeaderViewModel.IsInEditMode).WhenSourceChanges(() => { if (ViewModel.HeaderViewModel.IsInEditMode) { _navigationBarView.RightTextButton.Visibility = ViewStates.Visible; _chatEditedPhotoImageView.Visibility = ViewStates.Visible; } else { _previewImageKey = null; _navigationBarView.RightTextButton.Visibility = ViewStates.Gone; _chatNameEditText.ClearFocus(); _chatNameEditText.ClearComposingText(); KeyboardService.HideSoftKeyboard(_chatNameEditText); } })); _chatNameEditText.FocusChange += OnEditTextFocusChanged; _addMemberContainer.Click += OnAddMemberClick; }