Ejemplo n.º 1
0
        private void setupTapToEditOnboardingStep()
        {
            tapToEditPopup = PopupWindowFactory.PopupWindowWithText(
                Context,
                Resource.Layout.TooltipWithLeftTopArrow,
                Resource.Id.TooltipText,
                Resource.String.OnboardingTapToEdit);

            editTimeEntryOnboardingStep = new EditTimeEntryOnboardingStep(
                ViewModel.OnboardingStorage, Observable.Return(false));

            var showTapToEditOnboardingStepObservable =
                Observable.CombineLatest(
                    editTimeEntryOnboardingStep.ShouldBeVisible,
                    mainRecyclerViewChangesObservable,
                    ViewModel.SyncProgressState,
                    (shouldShowStep, unit, syncState) => shouldShowStep && syncState == SyncProgress.Synced);

            showTapToEditOnboardingStepObservable
            .Where(shouldShowStep => shouldShowStep)
            .Select(_ => findOldestTimeEntryView())
            .ObserveOn(SynchronizationContext.Current)
            .Subscribe(updateTapToEditOnboardingStep)
            .DisposedBy(DisposeBag);
        }
        private void setupTapToEditOnboardingStep()
        {
            tapToEditPopup = PopupWindowFactory.PopupWindowWithText(
                Context,
                Resource.Layout.TooltipWithLeftTopArrow,
                Resource.Id.TooltipText,
                Shared.Resources.TapToEditIt);

            editTimeEntryOnboardingStep = new EditTimeEntryOnboardingStep(
                ViewModel.OnboardingStorage, Observable.Return(false));

            var showTapToEditOnboardingStepObservable =
                Observable.CombineLatest(
                    editTimeEntryOnboardingStep.ShouldBeVisible,
                    mainRecyclerViewChangesObservable,
                    ViewModel.SyncProgressState,
                    (shouldShowStep, unit, syncState) => shouldShowStep && syncState == SyncProgress.Synced);

            showTapToEditOnboardingStepObservable
            .Where(shouldShowStep => shouldShowStep)
            .Select(_ => findOldestTimeEntryView())
            .ObserveOn(AndroidDependencyContainer.Instance.SchedulerProvider.MainScheduler)
            .Subscribe(updateTapToEditOnboardingStep)
            .DisposedBy(DisposeBag);
        }