private void EnsureAdapter ()
 {
     if (recyclerView.GetAdapter() == null) {
         var isGrouped = ServiceContainer.Resolve<SettingsStore> ().GroupedTimeEntries;
         collectionView = isGrouped ? (TimeEntriesCollectionView)new GroupedTimeEntriesView () : new LogTimeEntriesView ();
         logAdapter = new LogTimeEntriesAdapter (recyclerView, collectionView);
         recyclerView.SetAdapter (logAdapter);
         SetupRecyclerView ();
     }
 }
 private void EnsureAdapter ()
 {
     if (ListAdapter == null && UserVisibleHint) {
         var adapter = new LogTimeEntriesAdapter ();
         adapter.HandleTimeEntryDeletion = ConfirmTimeEntryDeletion;
         adapter.HandleTimeEntryEditing = OpenTimeEntryEdit;
         adapter.HandleTimeEntryContinue = ContinueTimeEntry;
         ListAdapter = adapter;
     }
 }
示例#3
0
 private void EnsureAdapter()
 {
     if (recyclerView.GetAdapter() == null)
     {
         var isGrouped = ServiceContainer.Resolve <SettingsStore> ().GroupedTimeEntries;
         collectionView = isGrouped ? (TimeEntriesCollectionView) new GroupedTimeEntriesView() : new LogTimeEntriesView();
         logAdapter     = new LogTimeEntriesAdapter(recyclerView, collectionView);
         recyclerView.SetAdapter(logAdapter);
         SetupRecyclerView();
     }
 }
 private void EnsureAdapter()
 {
     if (ListAdapter == null && UserVisibleHint)
     {
         var adapter = new LogTimeEntriesAdapter();
         adapter.HandleTimeEntryDeletion = ConfirmTimeEntryDeletion;
         adapter.HandleTimeEntryEditing  = OpenTimeEntryEdit;
         adapter.HandleTimeEntryContinue = ContinueTimeEntry;
         ListAdapter = adapter;
     }
 }
示例#5
0
        private void ReleaseRecyclerView()
        {
            recyclerView.RemoveItemDecoration(shadowDecoration);
            recyclerView.RemoveItemDecoration(dividerDecoration);
            recyclerView.RemoveOnItemTouchListener(itemTouchListener);

            recyclerView.GetAdapter().Dispose();
            recyclerView.Dispose();
            logAdapter = null;

            itemTouchListener.Dispose();
            dividerDecoration.Dispose();
            shadowDecoration.Dispose();
        }
        public async override void OnViewCreated(View view, Bundle savedInstanceState)
        {
            base.OnViewCreated(view, savedInstanceState);

            // init viewModel
            ViewModel = LogTimeEntriesViewModel.Init();

            collectionBinding = this.SetBinding(() => ViewModel.Collection).WhenSourceChanges(() => {
                logAdapter = new LogTimeEntriesAdapter(recyclerView, ViewModel);
                recyclerView.SetAdapter(logAdapter);
            });
            hasMoreBinging  = this.SetBinding(() => ViewModel.HasMoreItems).WhenSourceChanges(SetFooterState);
            hasErrorBinding = this.SetBinding(() => ViewModel.HasLoadErrors).WhenSourceChanges(SetFooterState);
            hasItemsBinding = this.SetBinding(() => ViewModel.HasItems).WhenSourceChanges(SetCollectionState);
            fabBinding      = this.SetBinding(() => ViewModel.IsTimeEntryRunning, () => StartStopBtn.ButtonAction)
                              .ConvertSourceToTarget(isRunning => isRunning ? FABButtonState.Stop : FABButtonState.Start);

            newMenuBinding = this.SetBinding(() => ViewModel.IsTimeEntryRunning)
                             .WhenSourceChanges(() => {
                if (AddNewMenuItem != null)
                {
                    AddNewMenuItem.SetVisible(!ViewModel.IsTimeEntryRunning);
                }
            });

            // Pass ViewModel to TimerComponent.
            timerComponent.SetViewModel(ViewModel);
            StartStopBtn.Click += StartStopClick;
            SetupRecyclerView(ViewModel);

            // TODO: Review this line.
            // Get data to fill the list. For the moment,
            // until a screenloader is added to the screen
            // is better to load the items after create
            // the viewModel and show the loader from RecyclerView
            await ViewModel.LoadMore();

            // Subscribe to sync messages
            var bus = ServiceContainer.Resolve <MessageBus> ();

            drawerSyncFinished = bus.Subscribe <SyncFinishedMessage> (SyncFinished);
        }
        public async override void OnViewCreated (View view, Bundle savedInstanceState)
        {
            base.OnViewCreated (view, savedInstanceState);
            ViewModel = new LogTimeEntriesViewModel ();
            await ViewModel.Init ();

            hasMoreBinding = this.SetBinding (
                                 ()=> ViewModel.HasMore)
                             .WhenSourceChanges (ShowEmptyState);

            collectionBinding = this.SetBinding (
                                    ()=> ViewModel.CollectionView)
            .WhenSourceChanges (() => {
                logAdapter = new LogTimeEntriesAdapter (recyclerView, ViewModel.CollectionView);
                recyclerView.SetAdapter (logAdapter);
            });

            fabBinding = this.SetBinding (
                             () => ViewModel.IsTimeEntryRunning,
                             () => StartStopBtn.ButtonAction)
                         .ConvertSourceToTarget (isRunning => isRunning ? FABButtonState.Stop : FABButtonState.Start);

            StartStopBtn.Click += StartStopClick;
        }
        public async override void OnViewCreated (View view, Bundle savedInstanceState)
        {
            base.OnViewCreated (view, savedInstanceState);

            // init viewModel
            ViewModel = LogTimeEntriesViewModel.Init ();

            collectionBinding = this.SetBinding (() => ViewModel.Collection).WhenSourceChanges (() => {
                logAdapter = new LogTimeEntriesAdapter (recyclerView, ViewModel);
                recyclerView.SetAdapter (logAdapter);
            });
            fabBinding = this.SetBinding (() => ViewModel.IsTimeEntryRunning, () => StartStopBtn.ButtonAction)
                         .ConvertSourceToTarget (isRunning => isRunning ? FABButtonState.Stop : FABButtonState.Start);

            newMenuBinding = this.SetBinding (() => ViewModel.IsTimeEntryRunning)
            .WhenSourceChanges (() => {
                if (AddNewMenuItem != null) {
                    AddNewMenuItem.SetVisible (!ViewModel.IsTimeEntryRunning);
                }
            });

            // Pass ViewModel to TimerComponent.
            timerComponent.SetViewModel (ViewModel);
            StartStopBtn.Click += StartStopClick;
            SetupRecyclerView (ViewModel);

            // TODO: Review this line.
            // Get data to fill the list. For the moment,
            // until a screenloader is added to the screen
            // is better to load the items after create
            // the viewModel and show the loader from RecyclerView
            await ViewModel.LoadMore ();

            // Subscribe to sync messages
            var bus = ServiceContainer.Resolve<MessageBus> ();
            drawerSyncFinished = bus.Subscribe<SyncFinishedMessage> (SyncFinished);
        }
        private void ReleaseRecyclerView ()
        {
            recyclerView.RemoveItemDecoration (shadowDecoration);
            recyclerView.RemoveItemDecoration (dividerDecoration);
            recyclerView.RemoveOnItemTouchListener (itemTouchListener);

            recyclerView.GetAdapter ().Dispose ();
            recyclerView.Dispose ();
            logAdapter = null;

            itemTouchListener.Dispose ();
            dividerDecoration.Dispose ();
            shadowDecoration.Dispose ();
        }
 private void EnsureAdapter ()
 {
     if (recyclerView.GetAdapter() == null) {
         var isGrouped = ServiceContainer.Resolve<SettingsStore> ().GroupedTimeEntries;
         if (isGrouped) {
             logAdapter = new LogTimeEntriesAdapter (recyclerView, new GroupedTimeEntriesView());
         } else {
             logAdapter = new LogTimeEntriesAdapter (recyclerView, new LogTimeEntriesView());
         }
         recyclerView.SetAdapter (logAdapter);
         SetupRecyclerView ();
     }
 }