Пример #1
0
        public override async void OnViewCreated(View view, Bundle savedInstanceState)
        {
            try
            {
                base.OnViewCreated(view, savedInstanceState);
                var loadedChecklist = await LoadChecklist(fragmentDefconStatus);

                foreach (var checkListEntry in loadedChecklist)
                {
                    _checkList.Add(checkListEntry);
                }
                _recyclerView = view.FindViewById <RecyclerView>(Resource.Id.checkListRecyclerView);
                var layoutManager = new LinearLayoutManager(Context);
                _checklistRecyclerViewAdapter = new ChecklistRecyclerViewAdapter(_checkList);
                _recyclerView.SetLayoutManager(layoutManager);
                _recyclerView.SetAdapter(_checklistRecyclerViewAdapter);
                _checklistRecyclerViewAdapter.ViewHolderAction += async(s, e) =>
                {
                    switch (e.Item3)
                    {
                    case ActionType.LongClick:
                        _actionModeItemId   = e.Item2;
                        _actionModeItemView = (e.Item1 as LinearLayout);
                        _actionModeItemView.SetBackgroundColor(Color.ParseColor("#80ff0000"));
                        if (_actionMode != null)
                        {
                            break;
                        }
                        _actionMode = _onCreateView.StartActionMode(this);
                        break;

                    case ActionType.CheckedChange:
                        _checkList[e.Item2].Checked = (e.Item1 as CheckBox).Checked;
                        _checkList[e.Item2].UnixTimeStampUpdated = DateTimeOffset.Now.ToUnixTimeMilliseconds();
                        await _sqLiteAsyncConnection.UpdateAsync(_checkList[e.Item2]);
                        await SetCounter();

                        break;

                    case ActionType.AfterTextChanged:
                        _checkList[e.Item2].Item = (e.Item1 as AppCompatEditText).EditableText.ToString();
                        _checkList[e.Item2].UnixTimeStampUpdated = DateTimeOffset.Now.ToUnixTimeMilliseconds();
                        await _sqLiteAsyncConnection.UpdateAsync(_checkList[e.Item2]);

                        break;

                    default:
                        break;
                    }
                };
                _eventService.MenuItemPressedEvent  += _eventService_MenuItemPressedEvent;
                _eventService.ChecklistUpdatedEvent += (s, e) => Activity.RunOnUiThread(async() => await ReloadCheckList(fragmentDefconStatus));
                await InitButtonAndCounterColors(fragmentDefconStatus);
            }
            catch (Exception) { }
        }
Пример #2
0
 public override void OnResume()
 {
     base.OnResume();
     if (_checklistRecyclerViewAdapter != null && _recyclerView != null)
     {
         _recyclerView.GetLayoutManager().ScrollToPosition(_checklistRecyclerViewAdapter.ItemCount);
     }
     else
     {
         try
         {
             _checklistRecyclerViewAdapter = new ChecklistRecyclerViewAdapter(_checkList);
             _recyclerView.SetAdapter(_checklistRecyclerViewAdapter);
             _checklistRecyclerViewAdapter.NotifyDataSetChanged();
         }
         catch (Exception) { }
     }
 }