Пример #1
0
        private void Rebind()
        {
            ResetTrackedObservables();

            var currentEntry = ActiveTimeEntry;

            if (!canRebind || currentEntry == null)
            {
                return;
            }

            var res = activity.Resources;

            if (currentEntry.State == TimeEntryState.New && currentEntry.StopTime.HasValue)
            {
                // Save button
                ActionButton.Text = res.GetString(Resource.String.TimerSaveButtonText);
                ActionButton.SetBackgroundColor(res.GetColor(Resource.Color.gray));
            }
            else if (currentEntry.State == TimeEntryState.Running)
            {
                // Stop button
                ActionButton.Text = res.GetString(Resource.String.TimerStopButtonText);
                ActionButton.SetBackgroundColor(res.GetColor(Resource.Color.bright_red));
            }
            else
            {
                // Start button
                ActionButton.Text = res.GetString(Resource.String.TimerStartButtonText);
                ActionButton.SetBackgroundColor(res.GetColor(Resource.Color.bright_green));
            }

            ActionButton.Visibility = HideAction ? ViewStates.Gone : ViewStates.Visible;

            if (currentEntry.State == TimeEntryState.Running && !HideDuration)
            {
                var duration = currentEntry.GetDuration();
                DurationTextView.Text       = TimeSpan.FromSeconds((long)duration.TotalSeconds).ToString();
                DurationTextView.Visibility = ViewStates.Visible;

                // Schedule next rebind:
                handler.RemoveCallbacks(Rebind);
                handler.PostDelayed(Rebind, 1000 - duration.Milliseconds);
            }
            else
            {
                DurationTextView.Visibility = ViewStates.Gone;
            }
        }