Пример #1
0
            public override void OnActivityCreated(Bundle p0)
            {
                base.OnActivityCreated(p0);

                // Give some text to display if there is no data.  In a real
                // application this would come from a resource.
                SetEmptyText("No phone numbers");

                // We have a menu item to show in action bar.
                HasOptionsMenu = true;

                // Create an empty adapter we will use to display the loaded data.
                _adapter = new SimpleCursorAdapter(Activity,
                                                   Android.Resource.Layout.SimpleListItem1, null,
                                                   new string[] { Android.Provider.Contacts.People.InterfaceConsts.DisplayName },
                                                   new int[] { Android.Resource.Id.Text1 });

                ListAdapter = _adapter;

                // Start out with a progress indicator.
                SetListShown(false);


                // Prepare the loader.  Either re-connect with an existing one,
                // or start a new one.
                LoaderManager.InitLoader(0, null, this);
            }
			public override void OnActivityCreated (Bundle p0)
			{
				base.OnActivityCreated (p0);
				
				// Give some text to display if there is no data.  In a real
	            // application this would come from a resource.
	            SetEmptyText("No phone numbers");
	
	            // We have a menu item to show in action bar.
				HasOptionsMenu = true;
	
	            // Create an empty adapter we will use to display the loaded data.
	            _adapter = new SimpleCursorAdapter(Activity,
	                    Android.Resource.Layout.SimpleListItem1, null,
	                    new string[] { Android.Provider.Contacts.People.InterfaceConsts.DisplayName },
	                    new int[] {Android.Resource.Id.Text1});
	            
				ListAdapter = _adapter;
	
	            // Start out with a progress indicator.
	            SetListShown(false);
				
	
	            // Prepare the loader.  Either re-connect with an existing one,
	            // or start a new one.
				LoaderManager.InitLoader (0, null, this);
			}
Пример #3
0
        private void InitBindings()
        {
            Bindings.Add(
                this.SetBinding(() => ViewModel.CurrentStatus,
                                () => MainPageCurrentStatus.Text));


            Bindings.Add(
                this.SetBinding(() => ViewModel.RefreshButtonVisibility,
                                () => MainPageRefreshButton.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));
            MainPageRefreshButton.Click += (sender, args) => ViewModel.RefreshDataCommand.Execute(null);

            Bindings.Add(
                this.SetBinding(() => ViewModel.SearchToggleVisibility,
                                () => MainPageSearchView.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));
            Bindings.Add(
                this.SetBinding(() => ViewModel.SearchInputVisibility).WhenSourceChanges(() =>
            {
                MainPageSearchView.Iconified = !ViewModel.SearchInputVisibility;
                if (ViewModel.SearchInputVisibility)
                {
                    MainPageSearchView.SetQuery(ViewModel.CurrentSearchQuery, false);
                }
                MainPageSearchView.ClearFocus();
            }));


            Bindings.Add(this.SetBinding(() => ViewModel.CurrentStatusSub).WhenSourceChanges(() =>
            {
                MainPageCurrentSatusSubtitle.Text = ViewModel.CurrentStatusSub;
                if (string.IsNullOrEmpty(ViewModel.CurrentStatusSub))
                {
                    MainPageCurrentSatusSubtitle.Visibility = ViewStates.Gone;
                    MainPageCurrentStatus.SetMaxLines(2);
                }
                else
                {
                    MainPageCurrentSatusSubtitle.Visibility = ViewStates.Visible;
                    MainPageCurrentStatus.SetMaxLines(1);
                }
            }));

            _searchFrame = MainPageSearchView.FindViewById(Resource.Id.search_edit_frame);

            Bindings.Add(this.SetBinding(() => ViewModel.SearchToggleLock).WhenSourceChanges(
                             () =>
            {
                if (ViewModel.SearchToggleLock)
                {
                    MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Alpha     = 0;
                    MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Clickable = false;
                    if (ViewModel.CurrentMainPage == PageIndex.PageSearch)
                    {
                        InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
                        imm.ToggleSoftInput(ShowFlags.Forced, HideSoftInputFlags.NotAlways);
                    }
                }
                else
                {
                    MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Alpha     = 1;
                    MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Clickable = true;
                }
            }));

            //MainPageSearchView.LayoutChange += MainPageSearchViewOnLayoutChange;

            //var padding = (int)(11*Resources.DisplayMetrics.Density);
            //searchBtn.SetScaleType(ImageView.ScaleType.FitEnd);
            //searchBtn.SetPadding(padding, padding, padding, padding);
            var observer       = _searchFrame.ViewTreeObserver;
            var prevVisibility = _searchFrame.Visibility;

            observer.GlobalLayout += (sender, args) =>
            {
                if (prevVisibility == _searchFrame.Visibility)
                {
                    return;
                }
                prevVisibility = _searchFrame.Visibility;
                MainPageCurrentStatus.Visibility = Converters.VisibilityInverterConverter(_searchFrame.Visibility);
                var param = MainPageSearchView.LayoutParameters as LinearLayout.LayoutParams;
                Debug.WriteLine(_searchFrame.Visibility);
                if (_searchFrame.Visibility == ViewStates.Visible)
                {
                    var diff = ViewModel.SearchToggleStatus != true;
                    ViewModel.SearchToggleStatus = true;
                    param.Width = ViewGroup.LayoutParams.MatchParent;
                    param.SetMargins(0, 0, DimensionsHelper.DpToPx(20), 0);
                    param.Weight = 1;
                    if (diff)
                    {
                        MainPageSearchView.RequestFocusFromTouch();
                        InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
                        imm.ToggleSoftInput(ShowFlags.Forced, HideSoftInputFlags.None);
                    }
                }
                else
                {
                    var diff = ViewModel.SearchToggleStatus != false;
                    ViewModel.SearchToggleStatus = false;
                    param.Width = (int)DimensionsHelper.DpToPx(50);
                    param.SetMargins(0, 0, 0, 0);
                    param.Weight = 0;
                    if (diff)
                    {
                        InputMethodManager imm = (InputMethodManager)GetSystemService(Context.InputMethodService);
                        imm.HideSoftInputFromWindow(MainPageSearchView.WindowToken, HideSoftInputFlags.None);
                    }
                }
            };

            _searchSuggestionAdapter = new SimpleCursorAdapter(this, Resource.Layout.SuggestionItem,
                                                               null, new string[] { "hint" }, new int[]
            {
                Resource.Id.SuggestionItemTextView
            });

            //
            MainPageStatusContainer.SetOnClickListener(new OnClickListener(view =>
            {
                if (ViewModel.CurrentMainPage == PageIndex.PageAnimeList)
                {
                    if (ViewModelLocator.AnimeList.WorkMode == AnimeListWorkModes.SeasonalAnime)
                    {
                        _upperFilterMenu = FlyoutMenuBuilder.BuildGenericFlyout(this, MainPageCurrentStatus,
                                                                                ViewModelLocator.AnimeList.SeasonSelection.Select(season => season.Name).ToList(),
                                                                                OnUpperStatusSeasonSelected);
                    }
                    else
                    {
                        _upperFilterMenu = AnimeListPageFlyoutBuilder.BuildForAnimeStatusSelection(this, MainPageCurrentStatus,
                                                                                                   OnUpperFlyoutStatusChanged, (AnimeStatus)ViewModelLocator.AnimeList.CurrentStatus,
                                                                                                   ViewModelLocator.AnimeList.IsMangaWorkMode);
                    }

                    _upperFilterMenu.Show();
                }
            }));


            Bindings.Add(this.SetBinding(() => ViewModel.MediaElementVisibility)
                         .WhenSourceChanges(() =>
            {
                if (ViewModel.MediaElementVisibility)
                {
                    MainPageVideoViewContainer.Visibility = ViewStates.Visible;
                    MainPageVideoView.Visibility          = ViewStates.Visible;
                    MainUpperNavBar.Visibility            = ViewStates.Gone;
                    MainPageVideoView.SetZOrderOnTop(true);
                    _drawer?.DrawerLayout.SetDrawerLockMode(DrawerLayout.LockModeLockedClosed);
                }
                else
                {
                    MainPageVideoViewContainer.Visibility = ViewStates.Gone;
                    MainPageVideoView.Visibility          = ViewStates.Gone;
                    MainUpperNavBar.Visibility            = ViewStates.Visible;
                    MainPageVideoView.SetZOrderOnTop(false);
                    _drawer?.DrawerLayout.SetDrawerLockMode(DrawerLayout.LockModeUnlocked);
                    ViewModelLocator.NavMgr.ResetOneTimeOverride();
                }
            }));



            Bindings.Add(
                this.SetBinding(() => ViewModel.MediaElementSource).WhenSourceChanges(() =>
            {
                if (string.IsNullOrEmpty(ViewModel.MediaElementSource))
                {
                    return;
                }

                var mediaController = new MediaController(this);
                mediaController.SetAnchorView(MainPageVideoView);
                MainPageVideoView.SetMediaController(mediaController);
                MainPageVideoView.SetVideoURI(Uri.Parse(ViewModel.MediaElementSource));
                MainPageVideoView.RequestFocus();
            }));

            MainPageSearchView.SuggestionsAdapter = _searchSuggestionAdapter;
            MainPageSearchView.QueryTextChange   += MainPageSearchViewOnQueryTextChange;
            MainPageSearchView.QueryTextSubmit   += MainPageSearchViewOnQueryTextSubmit;
            MainPageSearchView.SuggestionClick   += MainPageSearchViewOnSuggestionClick;
            MainPageCloseVideoButton.Click       += MainPageCloseVideoButtonOnClick;
            MainPageCopyVideoLinkButton.Click    += MainPageCopyVideoLinkButtonOnClick;
            MainPageVideoView.Prepared           += MainPageVideoViewOnPrepared;
            MainPageSearchView.Visibility         = ViewStates.Visible;
            ((EditText)MainPageSearchView.FindViewById(Resource.Id.search_src_text)).SetTextColor(Color.White);


            MainPageHamburgerButton.Click += MainPageHamburgerButtonOnClick;
            ViewModel.PropertyChanged     += ViewModelOnPropertyChanged;
            BuildDrawer();
            _drawer.OnDrawerItemClickListener = new HamburgerItemClickListener(OnHamburgerItemClick);

            MainPageCloseVideoButton.SetZ(0);
            MainPageCopyVideoLinkButton.SetZ(0);
        }
Пример #4
0
        private void InitBindings()
        {
            Bindings.Add(MainPageCurrentStatus.Id, new List <Binding>());
            Bindings[MainPageCurrentStatus.Id].Add(
                this.SetBinding(() => ViewModel.CurrentStatus,
                                () => MainPageCurrentStatus.Text));

            Bindings.Add(MainPageRefreshButton.Id, new List <Binding>());
            Bindings[MainPageRefreshButton.Id].Add(
                this.SetBinding(() => ViewModel.RefreshButtonVisibility,
                                () => MainPageRefreshButton.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));

            Bindings.Add(MainPageSearchView.Id, new List <Binding>());
            Bindings[MainPageSearchView.Id].Add(
                this.SetBinding(() => ViewModel.SearchToggleVisibility,
                                () => MainPageSearchView.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));
            Bindings[MainPageSearchView.Id].Add(
                this.SetBinding(() => ViewModel.SearchInputVisibility).WhenSourceChanges(() =>
            {
                MainPageSearchView.Iconified = !ViewModel.SearchInputVisibility;
                if (ViewModel.SearchInputVisibility)
                {
                    MainPageSearchView.SetQuery(ViewModel.CurrentSearchQuery, false);
                }
                MainPageSearchView.ClearFocus();
            }));

            Bindings.Add(MainPageCurrentSatusSubtitle.Id, new List <Binding>());
            Bindings[MainPageCurrentSatusSubtitle.Id].Add(
                this.SetBinding(() => ViewModel.CurrentStatusSub,
                                () => MainPageCurrentSatusSubtitle.Text));

            _searchFrame = MainPageSearchView.FindViewById(Resource.Id.search_edit_frame);

            Bindings[MainPageSearchView.Id].Add(this.SetBinding(() => ViewModel.SearchToggleLock).WhenSourceChanges(
                                                    () =>
            {
                if (ViewModel.SearchToggleLock)
                {
                    MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Alpha     = 0;
                    MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Clickable = false;
                }
                else
                {
                    MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Alpha     = 1;
                    MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Clickable = true;
                }
            }));

            //MainPageSearchView.LayoutChange += MainPageSearchViewOnLayoutChange;

            //var padding = (int)(11*Resources.DisplayMetrics.Density);
            //searchBtn.SetScaleType(ImageView.ScaleType.FitEnd);
            //searchBtn.SetPadding(padding, padding, padding, padding);
            var observer = _searchFrame.ViewTreeObserver;

            observer.GlobalLayout += (sender, args) =>
            {
                MainPageCurrentStatus.Visibility = Converters.VisibilityInverterConverter(_searchFrame.Visibility);
                var param = MainPageSearchView.LayoutParameters as LinearLayout.LayoutParams;
                if (_searchFrame.Visibility == ViewStates.Visible)
                {
                    ViewModel.SearchToggleStatus = true;
                    param.Width  = ViewGroup.LayoutParams.WrapContent;
                    param.Weight = 1;
                }
                else
                {
                    ViewModel.SearchToggleStatus = false;
                    param.Width  = (int)DimensionsHelper.DpToPx(50);
                    param.Weight = 0;
                }
            };

            _searchSuggestionAdapter = new SimpleCursorAdapter(this, Resource.Layout.SuggestionItem,
                                                               null, new string[] { "hint" }, new int[]
            {
                Resource.Id.SuggestionItemTextView
            });

            //
            MainPageCurrentStatus.Clickable = true;
            MainPageCurrentStatus.SetOnClickListener(new OnClickListener(view =>
            {
                if (ViewModel.CurrentMainPage == PageIndex.PageAnimeList)
                {
                    _upperFilterMenu = AnimeListPageFlyoutBuilder.BuildForAnimeStatusSelection(this, MainPageCurrentStatus,
                                                                                               OnUpperFlyoutStatusChanged, (AnimeStatus)ViewModelLocator.AnimeList.CurrentStatus,
                                                                                               ViewModelLocator.AnimeList.IsMangaWorkMode);
                    _upperFilterMenu.Show();
                }
            }));



            Bindings.Add(MainPageVideoViewContainer.Id, new List <Binding>());
            Bindings[MainPageVideoViewContainer.Id].Add(
                this.SetBinding(() => ViewModel.MediaElementVisibility,
                                () => MainPageVideoViewContainer.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));

            Bindings.Add(MainPageVideoView.Id, new List <Binding>());
            Bindings[MainPageVideoView.Id].Add(
                this.SetBinding(() => ViewModel.MediaElementSource).WhenSourceChanges(() =>
            {
                if (string.IsNullOrEmpty(ViewModel.MediaElementSource))
                {
                    return;
                }

                var mediaController = new MediaController(this);
                mediaController.SetAnchorView(MainPageVideoView);

                MainPageVideoView.SetMediaController(mediaController);
                MainPageVideoView.SetVideoURI(Uri.Parse(ViewModel.MediaElementSource));
                MainPageVideoView.RequestFocus();
            }));

            MainPageSearchView.SuggestionsAdapter = _searchSuggestionAdapter;
            MainPageSearchView.QueryTextChange   += MainPageSearchViewOnQueryTextChange;
            MainPageSearchView.QueryTextSubmit   += MainPageSearchViewOnQueryTextSubmit;
            MainPageSearchView.SuggestionClick   += MainPageSearchViewOnSuggestionClick;
            MainPageSearchView.QueryTextSubmit   += MainPageSearchViewOnQueryTextSubmit;
            MainPageCloseVideoButton.Click       += MainPageCloseVideoButtonOnClick;
            MainPageVideoView.Prepared           += MainPageVideoViewOnPrepared;
            MainPageSearchView.Visibility         = ViewStates.Visible;


            MainPageHamburgerButton.Click += MainPageHamburgerButtonOnClick;
            ViewModel.PropertyChanged     += ViewModelOnPropertyChanged;
            BuildDrawer();
            _drawer.OnDrawerItemClickListener = new HamburgerItemClickListener(OnHamburgerItemClick);
        }
Пример #5
0
        private void InitBindings()
        {
            Bindings.Add(MainPageCurrentStatus.Id, new List<Binding>());
            Bindings[MainPageCurrentStatus.Id].Add(
                this.SetBinding(() => ViewModel.CurrentStatus,
                    () => MainPageCurrentStatus.Text));

            Bindings.Add(MainPageRefreshButton.Id, new List<Binding>());
            Bindings[MainPageRefreshButton.Id].Add(
                this.SetBinding(() => ViewModel.RefreshButtonVisibility,
                    () => MainPageRefreshButton.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));

            Bindings.Add(MainPageSearchView.Id, new List<Binding>());
            Bindings[MainPageSearchView.Id].Add(
                this.SetBinding(() => ViewModel.SearchToggleVisibility,
                    () => MainPageSearchView.Visibility).ConvertSourceToTarget(Converters.BoolToVisibility));
            Bindings[MainPageSearchView.Id].Add(
                this.SetBinding(() => ViewModel.SearchInputVisibility).WhenSourceChanges(() =>
                {
                    MainPageSearchView.Iconified = !ViewModel.SearchInputVisibility;
                    if(ViewModel.SearchInputVisibility)
                        MainPageSearchView.SetQuery(ViewModel.CurrentSearchQuery,false);
                    MainPageSearchView.ClearFocus();
                }));

            Bindings.Add(MainPageCurrentSatusSubtitle.Id, new List<Binding>());
            Bindings[MainPageCurrentSatusSubtitle.Id].Add(
                this.SetBinding(() => ViewModel.CurrentStatusSub,
                    () => MainPageCurrentSatusSubtitle.Text));

            _searchFrame = MainPageSearchView.FindViewById(Resource.Id.search_edit_frame);
            
            Bindings[MainPageSearchView.Id].Add(this.SetBinding(() => ViewModel.SearchToggleLock).WhenSourceChanges(
                () =>
                {
                    if (ViewModel.SearchToggleLock)
                    {
                        MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Alpha = 0;
                        MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Clickable = false;
                    }
                    else
                    {
                        MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Alpha = 1;
                        MainPageSearchView.FindViewById(Resource.Id.search_close_btn).Clickable = true;
                    }
                }));

            //MainPageSearchView.LayoutChange += MainPageSearchViewOnLayoutChange;

            //var padding = (int)(11*Resources.DisplayMetrics.Density);
            //searchBtn.SetScaleType(ImageView.ScaleType.FitEnd);
            //searchBtn.SetPadding(padding, padding, padding, padding);
            var observer = _searchFrame.ViewTreeObserver;
            observer.GlobalLayout += (sender, args) =>
            {
                MainPageCurrentStatus.Visibility = Converters.VisibilityInverterConverter(_searchFrame.Visibility);
                var param = MainPageSearchView.LayoutParameters as LinearLayout.LayoutParams;
                if (_searchFrame.Visibility == ViewStates.Visible)
                {
                    ViewModel.SearchToggleStatus = true;
                    param.Width = ViewGroup.LayoutParams.WrapContent;
                    param.Weight = 1;
                }
                else
                {
                    ViewModel.SearchToggleStatus = false;
                    param.Width = (int)DimensionsHelper.DpToPx(50);
                    param.Weight = 0;
                }
            };
                    
            _searchSuggestionAdapter = new SimpleCursorAdapter(this, Resource.Layout.SuggestionItem,
                null, new string[] {"hint"}, new int[]
                {
                    Resource.Id.SuggestionItemTextView
                });


            MainPageSearchView.SuggestionsAdapter = _searchSuggestionAdapter;
            MainPageSearchView.QueryTextChange += MainPageSearchViewOnQueryTextChange;
            MainPageSearchView.QueryTextSubmit += MainPageSearchViewOnQueryTextSubmit;
            MainPageSearchView.SuggestionClick += MainPageSearchViewOnSuggestionClick;
            MainPageSearchView.QueryTextSubmit += MainPageSearchViewOnQueryTextSubmit;
            MainPageSearchView.Visibility = ViewStates.Visible;


            MainPageHamburgerButton.Click +=  MainPageHamburgerButtonOnClick;      
            ViewModel.PropertyChanged += ViewModelOnPropertyChanged;
            BuildDrawer();     
            _drawer.OnDrawerItemClickListener = new HamburgerItemClickListener(OnHamburgerItemClick); 
        }