Ejemplo n.º 1
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

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

            //Создаем адаптер для отображения
            var lvTasks = FindViewById <ListView>(Resource.Id.lvTasks);

            tasklist        = new TaskListAdapter(this, UpdateTasks(true));
            lvTasks.Adapter = tasklist;

            // Initialize the "storage"
            Storage.Instance.Init();


            FloatingActionButton fab = FindViewById <FloatingActionButton>(Resource.Id.fab);

            fab.Click += FabOnClick;
            FloatingActionButton fabNext = FindViewById <FloatingActionButton>(Resource.Id.fabNextPage);
            FloatingActionButton fabPrev = FindViewById <FloatingActionButton>(Resource.Id.fabPrevPage);

            fabNext.Click     += FabNext_Click;
            fabPrev.Click     += FabPrev_Click;
            fabPrev.Visibility = ViewStates.Invisible;

            RadioButton rb = FindViewById <RadioButton>(Resource.Id.rbSortId);

            rb.Click += Rb_Click;
            rb        = FindViewById <RadioButton>(Resource.Id.rbSortUsename);
            rb.Click += Rb_Click;
            rb        = FindViewById <RadioButton>(Resource.Id.rbSortEmail);
            rb.Click += Rb_Click;
            rb        = FindViewById <RadioButton>(Resource.Id.rbSortStatus);
            rb.Click += Rb_Click;

            lvTasks.ItemClick += LvTasks_Click;

            // Instance dialogs and set actions when hiding dialogs
            authDialog = new AuthDialog(this);
            authDialog.OnHide(() => { // When hiding the authorization dialog, we check whether it has been completed. And if so, change the menu items
                if (!string.IsNullOrEmpty(Storage.Instance.GetToken()))
                {
                    mnuAuth.SetVisible(false);
                    mnuLogoff.SetVisible(true);
                }
            });
            taskEditDialog = new TaskEditDialog(this);
            taskEditDialog.OnHide((modified) => { // When hiding the dialog, we update the task list data if there are changes.
                if (modified)
                {
                    if (taskEditDialog.IsNewItem) // If we created a new task, then reload the data with the current sorting parameters.
                    {
                        tasklist.ListSource = UpdateTasks(false) ?? tasklist.ListSource;
                    }
                    tasklist.NotifyDataSetChanged();
                }
            });
        }
Ejemplo n.º 2
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            SetContentView(Resource.Layout.activity_main);

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

            //Создаем адаптер для отображения
            var lvTasks = FindViewById <ListView>(Resource.Id.lvTasks);

            tasklist        = new TaskListAdapter(this, UpdateTasks(true));
            lvTasks.Adapter = tasklist;

            //Инициализируем "хранилище"
            Storage.Instance.Init();

            //Вешаем обработчики событий
            FloatingActionButton fab = FindViewById <FloatingActionButton>(Resource.Id.fab);

            fab.Click += FabOnClick;
            FloatingActionButton fabNext = FindViewById <FloatingActionButton>(Resource.Id.fabNextPage);
            FloatingActionButton fabPrev = FindViewById <FloatingActionButton>(Resource.Id.fabPrevPage);

            fabNext.Click     += FabNext_Click;
            fabPrev.Click     += FabPrev_Click;
            fabPrev.Visibility = ViewStates.Invisible; //Скрываем кнопку предидущей страницы, т.к. стартуем на первой странице.

            RadioButton rb = FindViewById <RadioButton>(Resource.Id.rbSortId);

            rb.Click += Rb_Click;
            rb        = FindViewById <RadioButton>(Resource.Id.rbSortUsename);
            rb.Click += Rb_Click;
            rb        = FindViewById <RadioButton>(Resource.Id.rbSortEmail);
            rb.Click += Rb_Click;
            rb        = FindViewById <RadioButton>(Resource.Id.rbSortStatus);
            rb.Click += Rb_Click;

            lvTasks.ItemClick += LvTasks_Click;

            //Инстансим диалоги и задаем действия при скрытии диалогов
            authDialog = new AuthDialog(this);
            authDialog.OnHide(() => { //При скрытии диалога авторизации проверяем была ли она выполнена. И если да, то меняем пункты меню
                if (!string.IsNullOrEmpty(Storage.Instance.GetToken()))
                {
                    mnuAuth.SetVisible(false);
                    mnuLogoff.SetVisible(true);
                }
            });
            taskEditDialog = new TaskEditDialog(this);
            taskEditDialog.OnHide((modified) => { //При скрытии диалога выполняем обновление данных списка задач в случае наличия изменений.
                if (modified)
                {
                    if (taskEditDialog.IsNewItem) //Если создали новую задачу, тогда перезагружаем данные с текущими параметрами сортировки.
                    {
                        tasklist.ListSource = UpdateTasks(false) ?? tasklist.ListSource;
                    }
                    tasklist.NotifyDataSetChanged();
                }
            });
        }