public void ReportExperiment(string actionKey, string actionValue) { if (HasItems != CollectionState.NotEmpty && ServiceContainer.Resolve <ISettingsStore> ().ShowWelcome) { OBMExperimentManager.Send(actionKey, actionValue); } }
private void SetCollectionState() { // TODO RX OfflineMode needs to show the experiment screen. if (ViewModel.HasItems != LogTimeEntriesViewModel.CollectionState.NotReady) { View emptyView = emptyMessageView; var isWelcome = ServiceContainer.Resolve <ISettingsStore> ().ShowWelcome; var isInExperiment = OBMExperimentManager.IncludedInExperiment(); var hasItems = ViewModel.HasItems == LogTimeEntriesViewModel.CollectionState.NotEmpty; if (isWelcome && isInExperiment) { emptyView = experimentEmptyView; } else { // always keeps this view hidden if it is not needed. experimentEmptyView.Visibility = ViewStates.Gone; } // According to settings, show welcome message or no. welcomeMessage.Visibility = isWelcome ? ViewStates.Visible : ViewStates.Gone; noItemsMessage.Visibility = isWelcome ? ViewStates.Gone : ViewStates.Visible; emptyView.Visibility = hasItems ? ViewStates.Gone : ViewStates.Visible; recyclerView.Visibility = hasItems ? ViewStates.Visible : ViewStates.Gone; } }
private void ShowEmptyState() { //Empty state is experimental. if (!OBMExperimentManager.IncludedInExperiment(OBMExperimentManager.HomeEmptyState)) { return; } recyclerView.Visibility = ViewModel.HasMoreItems ? ViewStates.Visible : ViewStates.Gone; emptyMessageView.Visibility = ViewModel.HasMoreItems ? ViewStates.Gone : ViewStates.Visible; }
private async void OnActionButtonTouchUpInside(object sender, EventArgs e) { if (isActing) { return; } isActing = true; try { if (currentTimeEntry != null && currentTimeEntry.State == TimeEntryState.Running) { await TimeEntryModel.StopAsync(currentTimeEntry); // Ping analytics ServiceContainer.Resolve <ITracker>().SendTimerStopEvent(TimerStopSource.App); } else if (timeEntryManager != null) { currentTimeEntry = (TimeEntryModel)timeEntryManager.ActiveTimeEntry; if (currentTimeEntry == null) { return; } OBMExperimentManager.Send(OBMExperimentManager.HomeEmptyState, "startButton", "click"); await TimeEntryModel.StartAsync(currentTimeEntry); var controllers = new List <UIViewController> (parentController.NavigationController.ViewControllers); controllers.Add(new EditTimeEntryViewController((TimeEntryModel)currentTimeEntry)); if (ServiceContainer.Resolve <SettingsStore> ().ChooseProjectForNew) { controllers.Add(new ProjectSelectionViewController((TimeEntryModel)currentTimeEntry)); } parentController.NavigationController.SetViewControllers(controllers.ToArray(), true); // Ping analytics ServiceContainer.Resolve <ITracker>().SendTimerStartEvent(TimerStartSource.AppNew); } } finally { isActing = false; } }
private void SetCollectionState() { if (ViewModel.HasItems != LogTimeEntriesViewModel.CollectionState.NotReady) { UIView emptyView = defaultEmptyView; // Default empty view. var isWelcome = ServiceContainer.Resolve <ISettingsStore> ().ShowWelcome; var isInExperiment = OBMExperimentManager.IncludedInExperiment(); var hasItems = ViewModel.HasItems == LogTimeEntriesViewModel.CollectionState.NotEmpty; // According to settings, show welcome message or no. ((SimpleEmptyView)emptyView).Title = isWelcome ? "LogWelcomeTitle".Tr() : "LogEmptyTitle".Tr(); if (isWelcome && isInExperiment) { emptyView = obmEmptyView; } TableView.TableFooterView = hasItems ? new UIView() : emptyView; } }
protected virtual void UpdateFooter() { if (dataView.HasMore || dataView.IsLoading) { if (defaultFooterView == null) { defaultFooterView = new UIActivityIndicatorView(UIActivityIndicatorViewStyle.Gray); defaultFooterView.Frame = new CGRect(0, 0, 50, 50); } tableView.TableFooterView = defaultFooterView; defaultFooterView.StartAnimating(); } else if (IsEmpty && OBMExperimentManager.IncludedInExperiment(OBMExperimentManager.HomeEmptyState)) { tableView.TableFooterView = OBMEmptyView; } else if (IsEmpty) { tableView.TableFooterView = EmptyView; } }
public async void StartStopClick(object sender, EventArgs e) { var timeEntryData = await ViewModel.StartStopTimeEntry(); if (ViewModel.HasMoreItems) { OBMExperimentManager.Send(OBMExperimentManager.HomeWithTEListState, "startButton", "click"); } if (timeEntryData.State == Toggl.Phoebe.Data.TimeEntryState.Running) { NewTimeEntryStartedByFAB = true; var ids = new List <string> { timeEntryData.Id.ToString() }; var intent = new Intent(Activity, typeof(EditTimeEntryActivity)); intent.PutStringArrayListExtra(EditTimeEntryActivity.ExtraGroupedTimeEntriesGuids, ids); intent.PutExtra(EditTimeEntryActivity.IsGrouped, false); StartActivity(intent); } }