private void OpenPage(int id)
        {
            // Configure timer component for selected page:
            if (id != DrawerListAdapter.TimerPageId)
            {
                Timer.HideAction   = true;
                Timer.HideDuration = false;
            }
            else
            {
                Timer.HideAction = false;
            }

            if (id == DrawerListAdapter.SettingsPageId)
            {
                DrawerListView.SetItemChecked(drawerAdapter.GetItemPosition(DrawerListAdapter.SettingsPageId), true);
                OpenFragment(settingsFragment.Value);
            }
            else
            {
                DrawerListView.SetItemChecked(drawerAdapter.GetItemPosition(DrawerListAdapter.TimerPageId), true);
                OpenFragment(trackingFragment.Value);
            }

            pageStack.Remove(id);
            pageStack.Add(id);
            // Make sure we don't store the timer page as the first page (this is implied)
            if (pageStack.Count == 1 && id == DrawerListAdapter.TimerPageId)
            {
                pageStack.Clear();
            }
        }
示例#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
        private void SetMenuSelection(int pos)
        {
            int parentPos = drawerAdapter.GetParentPosition(pos - 1);

            DrawerListView.ClearChoices();
            if (parentPos > -1)
            {
                DrawerListView.ChoiceMode = (ChoiceMode)ListView.ChoiceModeMultiple;
                DrawerListView.SetItemChecked(parentPos, true);
                DrawerListView.SetItemChecked(pos, true);
            }
            else
            {
                DrawerListView.ChoiceMode = (ChoiceMode)ListView.ChoiceModeSingle;
                DrawerListView.SetItemChecked(pos, true);
            }
        }
 private void SetMenuSelection(int pos)
 {
     DrawerListView.ClearChoices();
     DrawerListView.ChoiceMode = (ChoiceMode)ListView.ChoiceModeSingle;
     DrawerListView.SetItemChecked(pos, true);
 }