Skip to content
This repository was archived by the owner on Feb 13, 2024. It is now read-only.

Commit

Permalink
Merge pull request #4724 from toggl-open-source/fix/timeline_ui/runni…
Browse files Browse the repository at this point in the history
…ng_te_below_line

Fix ConvertTimeIntervalToHeight can return negative height
  • Loading branch information
skel35 authored Dec 2, 2020
2 parents fe3248b + ee9337c commit 6bc496a
Showing 1 changed file with 7 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ public TimelineViewModel()
.ToPropertyEx(this, x => x.ActivityBlocks);
var blocksObservable = Toggl.TimelineTimeEntries
.CombineLatest(Toggl.RunningTimeEntry, scaleModeObservable,
(list, running, mode) => ConvertTimeEntriesToBlocks(list, running, mode, SelectedDate, CurrentTimeOffset));
(list, running, mode) => ConvertTimeEntriesToBlocks(list, running, mode, SelectedDate));
var blocksWithRunningObservable = blocksObservable.CombineLatest(Toggl.RunningTimeEntry,
(list, te) => (TimeEntries: list, Running: te))
.Where(_ => (TimeEntryBlocks == null || !TimeEntryBlocks.Any(item => item.Value.IsDragged)) &&
Expand Down Expand Up @@ -89,10 +89,10 @@ public TimelineViewModel()
this.WhenAnyValue(x => x.SelectedForEditTEId, x => x.RunningTimeEntryBlock)
.Where(pair => pair.Item2 != null)
.Subscribe(pair => pair.Item2.IsEditViewOpened = pair.Item1 == pair.Item2.TimeEntryId);
Observable.Timer(TimeSpan.Zero,TimeSpan.FromMinutes(1))
.Select(_ => ConvertTimeIntervalToHeight(DateTime.Today, DateTime.Now, SelectedScaleMode))
.Subscribe(h => CurrentTimeOffset = h);
this.WhenAnyValue(x => x.CurrentTimeOffset).Select(offset => (Offset: offset,
var curOffsetObservable = Observable.Timer(TimeSpan.Zero, TimeSpan.FromSeconds(1))
.Select(_ => ConvertTimeIntervalToHeight(DateTime.Today, DateTime.Now, SelectedScaleMode));
curOffsetObservable.Subscribe(h => CurrentTimeOffset = h);
curOffsetObservable.Select(offset => (Offset: offset,
Block: RunningTimeEntryBlock as TimelineBlockViewModel ?? RunningGapTimeEntryBlock))
.Where(tuple => tuple.Block != null)
.Subscribe(tuple => tuple.Block.Height = tuple.Offset - tuple.Block.VerticalOffset);
Expand Down Expand Up @@ -189,8 +189,7 @@ private enum TimeStampType
private static Dictionary<string, TimeEntryBlock> ConvertTimeEntriesToBlocks(List<Toggl.TogglTimeEntryView> timeEntries,
Toggl.TogglTimeEntryView? runningEntry,
int selectedScaleMode,
DateTime selectedDate,
double currentTimeOffset)
DateTime selectedDate)
{
var timeStampsList = new List<(TimeStampType Type, TimeEntryBlock Block)>();
var blocks = new Dictionary<string, TimeEntryBlock>();
Expand All @@ -206,7 +205,7 @@ private static Dictionary<string, TimeEntryBlock> ConvertTimeEntriesToBlocks(Lis

var startTime = entry.StartTime();
var ended = entry.GUID == runningEntry?.GUID
? TimelineUtils.ConvertOffsetToUnixTime(currentTimeOffset, selectedDate, TimelineConstants.ScaleModes[selectedScaleMode])
? (ulong)Toggl.UnixFromDateTime(DateTime.Now)
: entry.Ended;
var height = ConvertTimeIntervalToHeight(startTime, Toggl.DateTimeFromUnix(ended), selectedScaleMode);
var block = new TimeEntryBlock(entry, TimelineConstants.ScaleModes[selectedScaleMode], selectedDate)
Expand Down

0 comments on commit 6bc496a

Please sign in to comment.