Пример #1
0
        private void SetupMenu()
        {
            _drawerLayout   = FindViewById <DrawerLayout>(Resource.Id.hamburgerMenu_layout);
            _drawerList     = FindViewById <ListView>(Resource.Id.hamburgerMenu_menu);
            _drawerTitle    = FindViewById <ImageView>(Resource.Id.DrawerAppName);
            _drawerTopText  = FindViewById <TextView>(Resource.Id.DrawerTopText);
            _drawerButton   = FindViewById <Button>(Resource.Id.DrawerFooterButton);
            _drawerSubtitle = FindViewById <TextView>(Resource.Id.DrawerSubTitle);

            _drawerSubtitle.Visibility = _menuViewModel.ShowSubtitle ? ViewStates.Visible : ViewStates.Gone;

            _drawerButton.SetCommand("Click", _menuViewModel.PrimaryCommand);
            _drawerButton.Text = _menuViewModel.PrimaryButtonText;

            _drawerTitle.Visibility = _menuViewModel.ShowTitleLogo ? ViewStates.Visible : ViewStates.Invisible;
            _drawerTopText.Text     = _menuViewModel.Title;

            _drawerList.Adapter = new ObservableAdapter <IListItem>
            {
                DataSource          = _menuViewModel.ItemViewModels,
                GetTemplateDelegate = AdapterHelpers.SetupMenuCell
            };

            _drawerToggle = new ActionBarDrawerToggle(this, _drawerLayout, _toolbar, Resource.String.abc_action_bar_home_description, Resource.String.abc_toolbar_collapse_description);
            _drawerLayout.SetDrawerListener(_drawerToggle);
            _drawerLayout.DrawerClosed += RaiseOnDrawerClosed;
            _drawerToggle.SyncState();
        }
Пример #2
0
        protected override void OnCreateActivity(Bundle state)
        {
            base.OnCreateActivity(state);

            SetContentView(Resource.Layout.MainDrawerActivity);

            MainToolbar    = FindViewById <Toolbar> (Resource.Id.MainToolbar);
            DrawerListView = FindViewById <ListView> (Resource.Id.DrawerListView);
            DrawerUserView = LayoutInflater.Inflate(Resource.Layout.MainDrawerListHeader, null);
            DrawerUserName = DrawerUserView.FindViewById <TextView> (Resource.Id.TitleTextView);
            DrawerImage    = DrawerUserView.FindViewById <ProfileImageView> (Resource.Id.IconProfileImageView);
            DrawerListView.AddHeaderView(DrawerUserView);
            DrawerListView.Adapter    = drawerAdapter = new DrawerListAdapter();
            DrawerListView.ItemClick += OnDrawerListViewItemClick;

            var authManager = ServiceContainer.Resolve <AuthManager> ();

            authManager.PropertyChanged += OnUserChangedEvent;

            DrawerLayout = FindViewById <DrawerLayout> (Resource.Id.DrawerLayout);
            DrawerToggle = new ActionBarDrawerToggle(this, DrawerLayout, MainToolbar, Resource.String.EntryName, Resource.String.EntryName);

            DrawerLayout.SetDrawerShadow(Resource.Drawable.drawershadow, (int)GravityFlags.Start);
            DrawerLayout.SetDrawerListener(DrawerToggle);

            var drawerFrameLayout = FindViewById <FrameLayout> (Resource.Id.DrawerFrameLayout);

            drawerFrameLayout.Touch += (sender, e) => {
                // Do nothing, just absorb the event
                // TODO: Improve this dirty solution?
            };

            Timer.OnCreate(this);

            var lp = new Android.Support.V7.App.ActionBar.LayoutParams(ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent, (int)GravityFlags.Right);

            MainToolbar.SetNavigationIcon(Resource.Drawable.ic_menu_black_24dp);
            SetSupportActionBar(MainToolbar);
            SupportActionBar.SetTitle(Resource.String.MainDrawerTimer);
            SupportActionBar.SetCustomView(Timer.Root, lp);
            SupportActionBar.SetDisplayShowCustomEnabled(true);

            if (state == null)
            {
                OpenPage(DrawerListAdapter.TimerPageId);
            }
            else
            {
                // Restore page stack
                pageStack.Clear();
                var arr = state.GetIntArray(PageStackExtra);
                if (arr != null)
                {
                    pageStack.AddRange(arr);
                }
            }

            // Make sure that the user will see newest data when they start the activity
            ServiceContainer.Resolve <ISyncManager> ().Run();
        }
Пример #3
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.Main);

            Cheeseknife.Inject(this);

            var toolbar = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);


            mDrawerLayout = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);

            ListView mDrawerList = FindViewById <ListView>(Resource.Id.left_drawer);

            mDrawerList.Adapter = new LeftDrawerAdapter(this);

            mDrawerToggle = new Android.Support.V7.App.ActionBarDrawerToggle(this, mDrawerLayout, toolbar, Resource.String.opened, Resource.String.closed);

            mDrawerLayout.SetDrawerListener(mDrawerToggle);

            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);
        }
Пример #4
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            mToolbar = FindViewById <Toolbar>(Resource.Id.mToolbar);
            SetSupportActionBar(mToolbar);
            this.SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            this.SupportActionBar.SetHomeButtonEnabled(true);

            mDrawerTitle  = this.Title;
            mPlanetTitles = this.Resources.GetStringArray(Resource.Array.planets_array);
            mDrawerLayout = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);
            mDrawerList   = FindViewById <RecyclerView>(Resource.Id.left_drawer);

            mDrawerLayout.SetDrawerShadow(Resource.Drawable.drawer_shadow, GravityCompat.Start);
            mDrawerList.HasFixedSize = true;
            mDrawerList.SetLayoutManager(new LinearLayoutManager(this));

            mDrawerList.SetAdapter(new PlanetAdapter(mPlanetTitles, this));


            mDrawerToggle = new ActionBarDrawerToggle(
                this, mDrawerLayout, mToolbar, Resource.String.drawer_open, Resource.String.drawer_close);

            mDrawerLayout.AddDrawerListener(mDrawerToggle);

            var fragment        = AgendaFragment.NewInstance();
            var fragmentManager = this.SupportFragmentManager;
            var ft = fragmentManager.BeginTransaction();

            ft.Replace(Resource.Id.content_frame, fragment);
            ft.Commit();
        }
Пример #5
0
        void RegisterToolbar()
        {
            Context  context = Context;
            AToolbar bar     = _toolbar;
            Element  page    = Element.RealParent;

            _masterDetailPage = null;
            while (page != null)
            {
                if (page is MasterDetailPage)
                {
                    _masterDetailPage = page as MasterDetailPage;
                    break;
                }
                page = page.RealParent;
            }

            if (_masterDetailPage == null)
            {
                _masterDetailPage = PageController.InternalChildren[0] as MasterDetailPage;
                if (_masterDetailPage == null)
                {
                    return;
                }
            }

            if (((IMasterDetailPageController)_masterDetailPage).ShouldShowSplitMode)
            {
                return;
            }

            var renderer = Android.Platform.GetRenderer(_masterDetailPage) as MasterDetailPageRenderer;

            if (renderer == null)
            {
                return;
            }

            _drawerLayout = renderer;

            FastRenderers.AutomationPropertiesProvider.GetDrawerAccessibilityResources(context, _masterDetailPage, out int resourceIdOpen, out int resourceIdClose);

            _drawerToggle = new ActionBarDrawerToggle((Activity)context, _drawerLayout, bar,
                                                      resourceIdOpen == 0 ? global::Android.Resource.String.Ok : resourceIdOpen,
                                                      resourceIdClose == 0 ? global::Android.Resource.String.Ok : resourceIdClose)
            {
                ToolbarNavigationClickListener = new ClickListener(Element)
            };

            if (_drawerListener != null)
            {
                _drawerLayout.RemoveDrawerListener(_drawerListener);
            }

            _drawerListener = new DrawerMultiplexedListener {
                Listeners = { _drawerToggle, renderer }
            };
            _drawerLayout.AddDrawerListener(_drawerListener);
        }
        void RegisterToolbar()
        {
            Context  context = Context;
            AToolbar bar     = _toolbar;
            Element  page    = Element.RealParent;

            MasterDetailPage masterDetailPage = null;

            while (page != null)
            {
                if (page is MasterDetailPage)
                {
                    masterDetailPage = page as MasterDetailPage;
                    break;
                }
                page = page.RealParent;
            }

            if (masterDetailPage == null)
            {
                masterDetailPage = PageController.InternalChildren[0] as MasterDetailPage;
                if (masterDetailPage == null)
                {
                    return;
                }
            }

            if (((IMasterDetailPageController)masterDetailPage).ShouldShowSplitMode)
            {
                return;
            }

            var renderer = Android.Platform.GetRenderer(masterDetailPage) as MasterDetailPageRenderer;

            if (renderer == null)
            {
                return;
            }

            _drawerLayout = renderer;
            _drawerToggle = new ActionBarDrawerToggle((Activity)context, _drawerLayout, bar, global::Android.Resource.String.Ok, global::Android.Resource.String.Ok)
            {
                ToolbarNavigationClickListener = new ClickListener(Element)
            };

            if (_drawerListener != null)
            {
                _drawerLayout.RemoveDrawerListener(_drawerListener);
            }

            _drawerListener = new DrawerMultiplexedListener {
                Listeners = { _drawerToggle, renderer }
            };
            _drawerLayout.AddDrawerListener(_drawerListener);

            _drawerToggle.DrawerIndicatorEnabled = true;
        }
        protected void SetupNavigationDrawer()
        {
            drawer = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);
            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            drawerToggle = new ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.open, Resource.String.close);
            drawer.SetDrawerListener(drawerToggle);
            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);
        }
Пример #8
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            this.HideKeyboard();

            SetContentView(Resource.Layout.main_activity);

            SupportActionBar.SetDisplayHomeAsUpEnabled(true);

            mDrawerLayout = FindViewById <DrawerLayout>(Resource.Id.myDrawer);


            mDrawerToggle = new Android.Support.V7.App.ActionBarDrawerToggle(this, mDrawerLayout, Resource.String.open_drawer, Resource.String.close_drawer);
            mDrawerToggle.DrawerIndicatorEnabled = true;

            mDrawerLayout.SetDrawerListener(mDrawerToggle);
            mDrawerToggle.SyncState();

            if (ChadderApp.UIHelper.Source.IsOnline == false)
            {
                ChadderApp.UIHelper.Source_OnNotAuthorized();
            }
            else
            {
                if (fragmentNavigater == null)
                {
                    fragmentNavigater = new ProfileFragment();
                    SupportFragmentManager.BeginTransaction().Replace(Resource.Id.navigation_drawer, fragmentNavigater).Commit();
                }
                if (this.Intent.GetBooleanExtra("new_user", false))
                {
                    SupportFragmentManager.BeginTransaction()
                    .Replace(Resource.Id.content_frame, new RegisterNameFragment())
                    .Commit();
                }
                else if (ChadderApp.UIHelper.Source.HasUserKey == false)
                {
                    var newFragment = new NewKeySplashScreenFragment();
                    SupportFragmentManager.BeginTransaction()
                    .Replace(Resource.Id.content_frame, newFragment)
                    .Commit();
                }
                else
                {
                    SupportFragmentManager.BeginTransaction()
                    .Replace(Resource.Id.content_frame, new ConversationListFragment())
                    .Commit();
                }
            }
        }
Пример #9
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate (bundle);

            // Set our view from the "main" layout resource
            SetContentView (Resource.Layout.activity_main);
            var toolbar = FindViewById<Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            var drawer = FindViewById<Android.Support.V4.Widget.DrawerLayout>(Resource.Id.drawer_layout);
            var toggle = new Android.Support.V7.App.ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);
            toggle.SyncState();

            var navigationView = FindViewById<Android.Support.Design.Widget.NavigationView>(Resource.Id.nav_view);
            navigationView.SetNavigationItemSelectedListener(this);
        }
Пример #10
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            SetContentView(Resource.Layout.side_bar);
            var toolbar = FindViewById <Toolbar>(Resource.Id.toolbar);

            SetSupportActionBar(toolbar);

            _drawerLayout = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);
            var drawerToggle = new Android.Support.V7.App.ActionBarDrawerToggle(this, _drawerLayout, toolbar, Resource.String.SideBar_OpenMenu, Resource.String.SideBar_CloseMenu);

            _drawerLayout.AddDrawerListener(drawerToggle);
            drawerToggle.SyncState();

            SupportFragmentManager.BackStackChangedWeakSubscribe(SupportFragmentManager_BackStackChanged);
            ViewModel.CloseMenuInteraction.RequestedWeakSubscribe(CloseMenuInteraction_Requested);
        }
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);

            drawerLayout = FindViewById <Android.Support.V4.Widget.DrawerLayout>(Resource.Id.drawerLayout);

            drawerToggle = new Android.Support.V7.App.ActionBarDrawerToggle(this, drawerLayout, Resource.String.OpenNavDrawer, Resource.String.CloseNavDrawer);

            drawerLayout.AddDrawerListener(drawerToggle);

            ActionBar.SetDisplayHomeAsUpEnabled(true);

            menuListView            = FindViewById <ListView>(Resource.Id.menuListView);
            menuListView.Adapter    = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, Android.Resource.Id.Text1, titles);
            menuListView.ItemClick += (object sender, AdapterView.ItemClickEventArgs e) => OnMenuItemClick(e.Position);
            menuListView.SetItemChecked(0, true);
            OnMenuItemClick(0);
        }
Пример #12
0
        //IMenuItem menuSearch;
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            StringResource = this.MyApplication.CurrentLangSetting.GetStringResourceContents();
            toolbar        = FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);
            drawer = FindViewById <Android.Support.V4.Widget.DrawerLayout>(Resource.Id.drawer_layout);
            Android.Support.V7.App.ActionBarDrawerToggle toggle = new Android.Support.V7.App.ActionBarDrawerToggle(this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_close);
            drawer.AddDrawerListener(toggle);
            toggle.SyncState();
            leftNav = FindViewById <NavigationView>(Resource.Id.nav_view);
            leftNav.NavigationItemSelected += LeftNav_NavigationItemSelected;

            InitMenuTitle();
            tabLayout = FindViewById <TabLayout>(Resource.Id.tabContent);
            InitTabLayout();
            CURRENT_FRAGMENT = FRAGMENT_TYPE.FRAGMENT_EMPTY;
            SetFragment(FRAGMENT_TYPE.FRAGMENT_CHAT);
            SetMeOnline();
        }
Пример #13
0
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            AndroidExtensions.Initialize(this);
            AnalyticsHelper.Initialize(ApplicationContext);

            SetContentView(Resource.Layout.Main);

            var toolbar = FindViewById <Android.Support.V7.Widget.Toolbar> (Resource.Id.toolbar);

            ViewCompat.SetElevation(toolbar, TypedValue.ApplyDimension(ComplexUnitType.Dip, 2, Resources.DisplayMetrics));
            SetSupportActionBar(toolbar);

            this.drawer = FindViewById <DrawerLayout> (Resource.Id.drawer_layout);
            drawer.SetDrawerShadow(Resource.Drawable.drawer_shadow, (int)GravityFlags.Start);

            drawerToggle = new Android.Support.V7.App.ActionBarDrawerToggle(this,
                                                                            drawer,
                                                                            Resource.String.open_drawer,
                                                                            Resource.String.close_drawer);
            drawer.AddDrawerListener(drawerToggle);

            SupportActionBar.SetDisplayHomeAsUpEnabled(true);
            SupportActionBar.SetHomeButtonEnabled(true);

            Hubway.Instance.Subscribe(this);
            FavoriteManager.FavoritesChanged += (sender, e) => aroundAdapter.Refresh();

            drawerAround            = FindViewById <ListView> (Resource.Id.left_drawer_around);
            drawerAround.ItemClick += HandleAroundItemClick;
            drawerAround.Adapter    = aroundAdapter = new DrawerAroundAdapter(this);

            drawerMenu = FindViewById <NavigationView> (Resource.Id.left_drawer);
            drawerMenu.NavigationItemSelected += HandlerNavigationItemSelected;

            if (CheckGooglePlayServices())
            {
                PostCheckGooglePlayServices();
            }
        }
        private void OpenMainview()
        {
            SetContentView(Resource.Layout.activity_main);
            Android.Support.V7.Widget.Toolbar toolbar =
                FindViewById <Android.Support.V7.Widget.Toolbar>(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            DrawerLayout drawer = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);

            Android.Support.V7.App.ActionBarDrawerToggle toggle =
                new Android.Support.V7.App.ActionBarDrawerToggle(
                    this, drawer, toolbar, Resource.String.navigation_drawer_open,
                    Resource.String.navigation_drawer_close);
            drawer.AddDrawerListener(toggle);
            toggle.SyncState();

            NavigationView navigationView = FindViewById <NavigationView>(Resource.Id.nav_view);

            navigationView.SetNavigationItemSelectedListener(this);

            ChangeNavigationView(Resource.Id.nav_submit);
            Toast.MakeText(this, Resource.String.auth_success, ToastLength.Short).Show();
        }
Пример #15
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            // Action bar
            v7.Widget.Toolbar toolbar = (v7.Widget.Toolbar)FindViewById(Resource.Id.toolbar);
            SetSupportActionBar(toolbar);

            // App drawer
            drawer = (DrawerLayout)FindViewById(Resource.Id.drawer_layout);
            v7.App.ActionBarDrawerToggle toggle = new v7.App.ActionBarDrawerToggle(
                this, drawer, toolbar, Resource.String.navigation_drawer_open, Resource.String.navigation_drawer_open
                );
            drawer.AddDrawerListener(toggle);
            toggle.SyncState();

            navigation = (NavigationView)FindViewById(Resource.Id.nav_view);
            navigation.NavigationItemSelected += (sender, e) =>
            {
                Navigate(e.MenuItem.ItemId);
            };

            inboxListener = new InboxListener(this);

            // message center stuff
            if (savedInstanceState != null)
            {
                Navigate(savedInstanceState.GetInt(NavId));
                Title = savedInstanceState.GetString(TitleKey);
            }
            else
            {
                navigation.SetCheckedItem(Resource.Id.nav_home);
                Navigate(Resource.Id.nav_home);
            }
        }
Пример #16
0
        protected override void OnCreateActivity (Bundle state)
        {
            base.OnCreateActivity (state);

            SetContentView (Resource.Layout.MainDrawerActivity);

            MainToolbar = FindViewById<Toolbar> (Resource.Id.MainToolbar);
            DrawerListView = FindViewById<ListView> (Resource.Id.DrawerListView);
            DrawerUserView = LayoutInflater.Inflate (Resource.Layout.MainDrawerListHeader, null);
            DrawerUserName = DrawerUserView.FindViewById<TextView> (Resource.Id.TitleTextView);
            DrawerEmail = DrawerUserView.FindViewById<TextView> (Resource.Id.EmailTextView);
            DrawerImage = DrawerUserView.FindViewById<ProfileImageView> (Resource.Id.IconProfileImageView);
            if (!ServiceContainer.Resolve<AuthManager>().OfflineMode) {
                DrawerListView.AddHeaderView (DrawerUserView);
            }
            DrawerListView.Adapter = drawerAdapter = new DrawerListAdapter ();
            DrawerListView.ItemClick += OnDrawerListViewItemClick;

            authManager = ServiceContainer.Resolve<AuthManager> ();
            authManager.PropertyChanged += OnUserChangedEvent;

            DrawerLayout = FindViewById<DrawerLayout> (Resource.Id.DrawerLayout);
            DrawerToggle = new ActionBarDrawerToggle (this, DrawerLayout, MainToolbar, Resource.String.EntryName, Resource.String.EntryName);

            DrawerLayout.SetDrawerShadow (Resource.Drawable.drawershadow, (int)GravityFlags.Start);
            DrawerLayout.SetDrawerListener (DrawerToggle);

            var drawerFrameLayout = FindViewById<FrameLayout> (Resource.Id.DrawerFrameLayout);
            drawerFrameLayout.Touch += (sender, e) => {
                // Do nothing, just absorb the event
                // TODO: Improve this dirty solution?
            };

            Timer.OnCreate (this);

            var lp = new Android.Support.V7.App.ActionBar.LayoutParams (ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent, (int)GravityFlags.Right);

            MainToolbar.SetNavigationIcon (Resource.Drawable.ic_menu_black_24dp);
            SetSupportActionBar (MainToolbar);
            SupportActionBar.SetTitle (Resource.String.MainDrawerTimer);
            SupportActionBar.SetCustomView (Timer.Root, lp);
            SupportActionBar.SetDisplayShowCustomEnabled (true);

            if (state == null) {
                OpenPage (DrawerListAdapter.TimerPageId);
            } else {
                // Restore page stack
                pageStack.Clear ();
                var arr = state.GetIntArray (PageStackExtra);
                if (arr != null) {
                    pageStack.AddRange (arr);
                }
            }

            // Make sure that the user will see newest data when they start the activity
            ServiceContainer.Resolve<ISyncManager> ().Run ();
        }
Пример #17
0
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                _disposed = true;

                if (_titleViewRenderer != null)
                {
                    Android.Platform.ClearRenderer(_titleViewRenderer.View);
                    _titleViewRenderer.Dispose();
                    _titleViewRenderer = null;
                }

                _toolbar.RemoveView(_titleView);
                _titleView?.Dispose();
                _titleView = null;

                _toolbar.RemoveView(_titleIconView);
                _titleIconView?.Dispose();
                _titleIconView = null;

                _imageSource = null;

                if (_toolbarTracker != null)
                {
                    _toolbarTracker.CollectionChanged -= ToolbarTrackerOnCollectionChanged;
                    _toolbarTracker.Target             = null;
                    _toolbarTracker = null;
                }

                if (_toolbar != null)
                {
                    _toolbar.SetNavigationOnClickListener(null);
                    _toolbar.Dispose();
                    _toolbar = null;
                }

                if (_drawerLayout != null && _drawerListener != null)
                {
                    _drawerLayout.RemoveDrawerListener(_drawerListener);
                }

                if (_drawerListener != null)
                {
                    _drawerListener.Dispose();
                    _drawerListener = null;
                }

                if (_drawerToggle != null)
                {
                    _drawerToggle.Dispose();
                    _drawerToggle = null;
                }

                if (_backgroundDrawable != null)
                {
                    _backgroundDrawable.Dispose();
                    _backgroundDrawable = null;
                }

                Current = null;

                // We dispose the child renderers after cleaning up everything related to DrawerLayout in case
                // one of the children is a MasterDetailPage (which may dispose of the DrawerLayout).
                if (Element != null)
                {
                    foreach (Element element in PageController.InternalChildren)
                    {
                        var child = element as VisualElement;
                        if (child == null)
                        {
                            continue;
                        }

                        IVisualElementRenderer renderer = Android.Platform.GetRenderer(child);
                        renderer?.Dispose();
                    }

                    var navController = NavigationPageController;

                    navController.PushRequested             -= OnPushed;
                    navController.PopRequested              -= OnPopped;
                    navController.PopToRootRequested        -= OnPoppedToRoot;
                    navController.InsertPageBeforeRequested -= OnInsertPageBeforeRequested;
                    navController.RemovePageRequested       -= OnRemovePageRequested;
                }

                Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;

                // API only exists on newer android YAY
                if ((int)Build.VERSION.SdkInt >= 17)
                {
                    FragmentManager fm = FragmentManager;

                    if (!fm.IsDestroyed)
                    {
                        FragmentTransaction trans = fm.BeginTransactionEx();
                        foreach (Fragment fragment in _fragmentStack)
                        {
                            trans.RemoveEx(fragment);
                        }
                        trans.CommitAllowingStateLossEx();
                        fm.ExecutePendingTransactionsEx();
                    }
                }
            }

            base.Dispose(disposing);
        }
Пример #18
0
        void UpdateToolbar()
        {
            if (_disposed)
            {
                return;
            }

            Context  context             = Context;
            var      activity            = (FormsAppCompatActivity)context;
            AToolbar bar                 = _toolbar;
            ActionBarDrawerToggle toggle = _drawerToggle;

            if (bar == null)
            {
                return;
            }

            bool isNavigated = NavigationPageController.StackDepth > 1;

            bar.NavigationIcon = null;
            Page currentPage = Element.CurrentPage;

            if (isNavigated)
            {
                if (toggle != null)
                {
                    toggle.DrawerIndicatorEnabled = false;
                    toggle.SyncState();
                }

                if (NavigationPage.GetHasBackButton(currentPage))
                {
                    var icon = new DrawerArrowDrawable(activity.SupportActionBar.ThemedContext);
                    icon.Progress      = 1;
                    bar.NavigationIcon = icon;

                    var prevPage = Element.Peek(1);
                    _defaultNavigationContentDescription = bar.SetNavigationContentDescription(prevPage, _defaultNavigationContentDescription);
                }
            }
            else
            {
                if (toggle != null && _masterDetailPage != null)
                {
                    toggle.DrawerIndicatorEnabled = _masterDetailPage.ShouldShowToolbarButton();
                    toggle.SyncState();
                }
            }

            Color tintColor = Element.BarBackgroundColor;

            if (Forms.IsLollipopOrNewer)
            {
                if (tintColor.IsDefault)
                {
                    bar.BackgroundTintMode = null;
                }
                else
                {
                    bar.BackgroundTintMode = PorterDuff.Mode.Src;
                    bar.BackgroundTintList = ColorStateList.ValueOf(tintColor.ToAndroid());
                }
            }
            else
            {
                if (tintColor.IsDefault && _backgroundDrawable != null)
                {
                    bar.SetBackground(_backgroundDrawable);
                }
                else if (!tintColor.IsDefault)
                {
                    if (_backgroundDrawable == null)
                    {
                        _backgroundDrawable = bar.Background;
                    }
                    bar.SetBackgroundColor(tintColor.ToAndroid());
                }
            }

            Color textColor = Element.BarTextColor;

            if (!textColor.IsDefault)
            {
                bar.SetTitleTextColor(textColor.ToAndroid().ToArgb());
            }

            bar.Title = currentPage.Title ?? "";

            UpdateTitleIcon();

            UpdateTitleView();
        }
Пример #19
0
        private void setupDrawerContent()
        {
            navigationView.NavigationItemSelected += (object sender, NavigationView.NavigationItemSelectedEventArgs e) =>
            {
                SessionLog.StartPerformance("Navigate");
                var menuItem = e.MenuItem;
                menuItem.SetChecked(true);
                switch (menuItem.ItemId)
                {
                case Resource.Id.navigation_item_1:
                    SupportFragmentManager.BeginTransaction()
                    .Replace(Resource.Id.cab_stub, new TodayViewFragment())
                    .AddToBackStack(null)
                    .Commit();
                    SupportActionBar.SetTitle(Resource.String.Today);
                    break;

                case Resource.Id.navigation_item_2:

                    SupportFragmentManager.BeginTransaction()
                    .Replace(Resource.Id.cab_stub, new JournalViewFragment())
                    .AddToBackStack("JournalViewFragment")
                    .Commit();
                    //GrabAdIntertitials();
                    SupportActionBar.SetTitle(Resource.String.OpenJournal);
                    break;

                case Resource.Id.navigation_item_3:
                    SupportFragmentManager.BeginTransaction()
                    .Replace(Resource.Id.cab_stub, new ReportFragment())
                    .AddToBackStack("ReportViewFragment")
                    .Commit();
                    //GrabAdIntertitials();
                    SupportActionBar.SetTitle(Resource.String.Report);
                    break;

                case Resource.Id.navigation_item_4:
                    SupportFragmentManager.BeginTransaction()
                    .Replace(Resource.Id.cab_stub, new GoalViewFragment())
                    .AddToBackStack("GoalViewFragment")
                    .Commit();
                    SupportActionBar.SetTitle(Resource.String.Goals);
                    break;

                case Resource.Id.navigation_item_5:
                    Navigate.ToSettingsPage();
                    break;

                case Resource.Id.navigation_item_6:
                    Navigate.ToFeedback();
                    break;

                default:
                    break;
                }
                menuItem.SetChecked(true);
                drawerLayout.CloseDrawers();
            };

            drawerToggle = new ActionBarDrawerToggleAnonymousInnerClassHelper(this, drawerLayout, Resource.String.drawer_open, Resource.String.drawer_close);
            drawerLayout.SetDrawerListener(drawerToggle);
        }
Пример #20
0
        protected override void Dispose(bool disposing)
        {
            if (disposing && !_disposed)
            {
                _disposed = true;

                var activity = (FormsAppCompatActivity)Context;

                // API only exists on newer android YAY
                if ((int)Build.VERSION.SdkInt >= 17)
                {
                    if (!activity.IsDestroyed)
                    {
                        FragmentManager     fm    = FragmentManager;
                        FragmentTransaction trans = fm.BeginTransaction();
                        foreach (Fragment fragment in _fragmentStack)
                        {
                            trans.Remove(fragment);
                        }
                        trans.CommitAllowingStateLoss();
                        fm.ExecutePendingTransactions();
                    }
                }

                if (Element != null)
                {
                    foreach (Element element in PageController.InternalChildren)
                    {
                        var child = element as VisualElement;
                        if (child == null)
                        {
                            continue;
                        }

                        IVisualElementRenderer renderer = Android.Platform.GetRenderer(child);
                        renderer?.Dispose();
                    }

                    var navController = (INavigationPageController)Element;

                    navController.PushRequested             -= OnPushed;
                    navController.PopRequested              -= OnPopped;
                    navController.PopToRootRequested        -= OnPoppedToRoot;
                    navController.InsertPageBeforeRequested -= OnInsertPageBeforeRequested;
                    navController.RemovePageRequested       -= OnRemovePageRequested;
                }

                if (_toolbarTracker != null)
                {
                    _toolbarTracker.CollectionChanged -= ToolbarTrackerOnCollectionChanged;
                    _toolbarTracker.Target             = null;
                    _toolbarTracker = null;
                }

                if (_toolbar != null)
                {
                    _toolbar.NavigationClick -= BarOnNavigationClick;
                    _toolbar.Dispose();
                    _toolbar = null;
                }

                if (_drawerLayout != null && _drawerListener != null)
                {
                    _drawerLayout.RemoveDrawerListener(_drawerListener);
                    _drawerListener = null;
                }

                _drawerToggle = null;

                Current = null;

                Device.Info.PropertyChanged -= DeviceInfoPropertyChanged;
            }

            base.Dispose(disposing);
        }
Пример #21
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            drawerLayout = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);
            var navigationView = FindViewById <NavigationView>(Resource.Id.left_navigationView);

            drawerLayout.DrawerOpened += DrawerLayout_DrawerOpened;
            drawerLayout.DrawerClosed += DrawerLayout_DrawerClosed;
            //drawerLayout.SetBackgroundResource(Resource.Drawable.loginbackground);
            //navigationView.SetItemTextAppearance(Resource.Color.loginButton);
            var toggle = new Android.Support.V7.App.ActionBarDrawerToggle
                         (
                this,
                drawerLayout,
                Resource.String.drawer_open,
                Resource.String.drawer_close
                         );

            drawerLayout.AddDrawerListener(toggle);
            toggle.SyncState();

            navigationView.NavigationItemSelected += (sender, e) =>
            {
                if (previousItem != null)
                {
                    previousItem.SetChecked(false);
                }

                navigationView.SetCheckedItem(e.MenuItem.ItemId);

                previousItem = e.MenuItem;
                MenuItemClicked(e.MenuItem.ItemId);
                drawerLayout.CloseDrawers();
            };
            navigationView.ItemIconTintList = null;
            adapter = new TabsAdapter(this, SupportFragmentManager);
            pager   = FindViewById <ViewPager>(Resource.Id.viewpager);
            var tabs = FindViewById <TabLayout>(Resource.Id.tabs);

            pager.Adapter = adapter;
            tabs.SetupWithViewPager(pager);
            pager.OffscreenPageLimit = 3;

            pager.PageSelected += (sender, args) =>
            {
                var fragment = adapter.InstantiateItem(pager, args.Position) as IFragmentVisible;

                fragment?.BecameVisible();
            };

            Toolbar.MenuItemClick += (sender, e) =>
            {
            };
            int menuId = Intent.GetIntExtra("menuId", 0);

            if (menuId != 0)
            {
                if (previousItem != null)
                {
                    previousItem.SetChecked(false);
                }

                navigationView.SetCheckedItem(menuId);
                MenuItemClicked(menuId);
                Intent.RemoveExtra("menuId");
            }
        }
Пример #22
0
        protected override void OnCreateActivity (Bundle state)
        {
            base.OnCreateActivity (state);

            SetContentView (Resource.Layout.MainDrawerActivity);

            MainToolbar = FindViewById<Toolbar> (Resource.Id.MainToolbar);
            DrawerListView = FindViewById<ListView> (Resource.Id.DrawerListView);
            DrawerUserView = LayoutInflater.Inflate (Resource.Layout.MainDrawerListHeader, null);
            DrawerUserName = DrawerUserView.FindViewById<TextView> (Resource.Id.TitleTextView);
            DrawerImage = DrawerUserView.FindViewById<ProfileImageView> (Resource.Id.IconProfileImageView);
            DrawerListView.AddHeaderView (DrawerUserView);
            DrawerListView.Adapter = drawerAdapter = new DrawerListAdapter ();
            DrawerListView.ItemClick += OnDrawerListViewItemClick;

            var authManager = ServiceContainer.Resolve<AuthManager> ();
            authManager.PropertyChanged += OnUserChangedEvent;

            DrawerLayout = FindViewById<DrawerLayout> (Resource.Id.DrawerLayout);
            DrawerToggle = new ActionBarDrawerToggle (this, DrawerLayout, MainToolbar, Resource.String.EntryName, Resource.String.EntryName);

            DrawerLayout.SetDrawerShadow (Resource.Drawable.drawershadow, (int)GravityFlags.Start);
            DrawerLayout.SetDrawerListener (DrawerToggle);

            Timer.OnCreate (this);

            var lp = new Android.Support.V7.App.ActionBar.LayoutParams (ViewGroup.LayoutParams.MatchParent, ViewGroup.LayoutParams.MatchParent, (int)GravityFlags.Right);

            MainToolbar.SetNavigationIcon (Resource.Drawable.ic_menu_black_24dp);
            SetSupportActionBar (MainToolbar);
            SupportActionBar.SetTitle (Resource.String.MainDrawerTimer);
            SupportActionBar.SetCustomView (Timer.Root, lp);
            SupportActionBar.SetDisplayShowCustomEnabled (true);

            var bus = ServiceContainer.Resolve<MessageBus> ();
            drawerSyncStarted = bus.Subscribe<SyncStartedMessage> (SyncStarted);
            drawerSyncFinished = bus.Subscribe<SyncFinishedMessage> (SyncFinished);

            DrawerSyncView = FindViewById<FrameLayout> (Resource.Id.DrawerSyncStatus);

            syncRetryButton = DrawerSyncView.FindViewById<ImageButton> (Resource.Id.SyncRetryButton);
            syncRetryButton.Click += OnSyncRetryClick;

            syncStatusText = DrawerSyncView.FindViewById<TextView> (Resource.Id.SyncStatusText);

            if (state == null) {
                OpenPage (DrawerListAdapter.TimerPageId);
            } else {
                // Restore page stack
                pageStack.Clear ();
                var arr = state.GetIntArray (PageStackExtra);
                if (arr != null) {
                    pageStack.AddRange (arr);
                }
            }

            // Make sure that the user will see newest data when they start the activity
            ServiceContainer.Resolve<ISyncManager> ().Run ();
        }
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

            _drawerLayout            = FindViewById <DrawerLayout>(Resource.Id.drawer_layout);
            _contentLayout           = FindViewById <ViewGroup>(Resource.Id.main);
            _toolbar                 = FindViewById <Toolbar>(Resource.Id.toolbar);
            _chbTranslucent          = FindViewById <CheckBox>(Resource.Id.chb_translucent);
            _btnSetColor             = FindViewById <Button>(Resource.Id.btn_set_color);
            _btnSetTransparent       = FindViewById <Button>(Resource.Id.btn_set_transparent);
            _btnSetTranslucent       = FindViewById <Button>(Resource.Id.btn_set_translucent);
            _btnSetForImageView      = FindViewById <Button>(Resource.Id.btn_set_for_image_view);
            _btnUseInFragment        = FindViewById <Button>(Resource.Id.btn_use_in_fragment);
            _btnSetColorForSwipeBack = FindViewById <Button>(Resource.Id.btn_set_color_for_swipe_back);
            _sbChangeAlpha           = FindViewById <SeekBar>(Resource.Id.sb_change_alpha);
            _tvStatusAlpha           = FindViewById <TextView>(Resource.Id.tv_status_alpha);
            SetSupportActionBar(_toolbar);

            var toggle = new ActionBarDrawerToggle(this, _drawerLayout, _toolbar, Resource.String.navigation_drawer_open,
                                                   Resource.String.navigation_drawer_close);

            _drawerLayout.SetDrawerListener(toggle);
            toggle.SyncState();

            _btnSetColor.Click += (s, e) =>
            {
                var intent = new Intent(this, typeof(ColorStatusBarActivity));
                StartActivity(intent);
            };

            _btnSetTransparent.Click += (s, e) =>
            {
                var intent = new Intent(this, typeof(ImageStatusBarActivity));
                intent.PutExtra(ImageStatusBarActivity.ExtraIsTransparent, true);
                StartActivity(intent);
            };

            _btnSetTranslucent.Click += (s, e) =>
            {
                var intent = new Intent(this, typeof(ImageStatusBarActivity));
                intent.PutExtra(ImageStatusBarActivity.ExtraIsTransparent, false);
                StartActivity(intent);
            };

            _btnSetForImageView.Click += (s, e) =>
            {
                var intent = new Intent(this, typeof(ImageViewActivity));
                StartActivity(intent);
            };

            _btnUseInFragment.Click += (s, e) =>
            {
                var intent = new Intent(this, typeof(UseInFragmentActivity));
                StartActivity(intent);
            };

            _btnSetColorForSwipeBack.Click += (s, e) =>
            {
                var intent = new Intent(this, typeof(SwipeBackActivity));
                StartActivity(intent);
            };

            _chbTranslucent.Click += (s, e) =>
            {
                if (_chbTranslucent.Checked)
                {
                    _contentLayout.SetBackgroundDrawable(Resources.GetDrawable(Resource.Drawable.bg_monkey));
                    Jaeger.StatusBarUtil.SetTranslucentForDrawerLayout(this, _drawerLayout, _alpha);
                    _toolbar.SetBackgroundColor(Resources.GetColor(Android.Resource.Color.Transparent));
                }
                else
                {
                    _contentLayout.SetBackgroundDrawable(null);
                    _toolbar.SetBackgroundColor(Resources.GetColor(Resource.Color.colorPrimary));
                    Jaeger.StatusBarUtil.SetColorForDrawerLayout(this, _drawerLayout, Resources.GetColor(Resource.Color.colorPrimary), _alpha);
                }
            };

            _sbChangeAlpha.Max              = 255;
            _sbChangeAlpha.ProgressChanged += (s, e) =>
            {
                _alpha = e.Progress;
                if (_chbTranslucent.Checked)
                {
                    Jaeger.StatusBarUtil.SetTranslucentForDrawerLayout(this, _drawerLayout, _alpha);
                }
                else
                {
                    Jaeger.StatusBarUtil.SetColorForDrawerLayout(this, _drawerLayout, _statusBarColor, _alpha);
                }
                _tvStatusAlpha.Text = _alpha.ToString();
            };
            _sbChangeAlpha.Progress = Jaeger.StatusBarUtil.DefaultStatusBarAlpha;
        }